:root{--page-max: 720px;--gap: 12px}html[data-color-mode=dark]{color-scheme:dark}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,Segoe UI,Roboto,sans-serif;background:var(--ds-surface-sunken);color:var(--ds-text)}.page{max-width:var(--page-max);margin:0 auto;padding:12px 12px 48px;display:flex;flex-direction:column;gap:var(--gap)}.card{background:var(--ds-surface-raised);border-radius:8px;padding:20px 16px;display:flex;flex-direction:column;gap:8px;box-shadow:0 1px 2px #091e4226}.login-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.card h1{margin:0 0 8px;font-size:20px}.card label{font-size:12px;font-weight:600;color:var(--ds-text-subtle);margin-top:4px}.actions{margin-top:8px}.error{color:var(--ds-text-danger);font-size:14px}.theme-toggle-row{display:flex;justify-content:flex-end}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:var(--ds-surface-raised);border-radius:8px;padding:12px 16px;box-shadow:0 1px 2px #091e4226}.identity{display:flex;align-items:center;gap:10px;min-width:0}.identity strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meta{font-size:12px;color:var(--ds-text-subtle)}.tabs,.filters{display:flex;gap:8px;flex-wrap:wrap}.schedule-top{display:flex;align-items:center;gap:8px;margin-bottom:4px}.live-banner{display:flex;align-items:center;gap:10px;background:var(--ds-background-danger-bold);color:var(--ds-text-inverse);border-radius:8px;padding:10px 14px;box-shadow:0 1px 2px #091e4226}.live-dot{flex:none;width:10px;height:10px;border-radius:50%;background:currentColor;animation:live-pulse 1.2s ease-in-out infinite}@keyframes live-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}.live-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.live-subject{font-size:14px;font-weight:600;margin-top:2px}.toggle-row{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;cursor:pointer}.chip{border:1px solid var(--ds-border);background:var(--ds-surface-raised);border-radius:16px;padding:6px 14px;font-size:14px;color:var(--ds-text);cursor:pointer}.chip.active{background:var(--ds-background-brand-bold);border-color:var(--ds-background-brand-bold);color:var(--ds-text-inverse)}.add-calendar{margin-left:auto;background:#ffc400;border-color:#e2ab0f;color:#1a1a1a;font-weight:700}.day h3{margin:16px 4px 8px;font-size:15px;text-transform:capitalize}.lesson{background:var(--ds-surface-raised);border-radius:8px;padding:12px;margin-bottom:8px;box-shadow:0 1px 2px #091e4226;border-left:3px solid var(--ds-background-brand-bold);cursor:pointer}.lesson.cancelled{border-left-color:var(--ds-icon-danger);opacity:.75}.lesson.completed{border-left-color:var(--ds-icon-subtle);opacity:.6}.lesson.live{border-left-color:var(--ds-icon-danger)}.lesson.live .subject{color:var(--ds-text-danger)}.lesson-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}.time{font-weight:600;font-size:13px}.subject{font-weight:600;font-size:15px}.summary{display:flex;justify-content:space-between;align-items:center;gap:8px;background:var(--ds-surface-raised);border-radius:8px;padding:12px 16px;box-shadow:0 1px 2px #091e4226}@media(min-width:720px){.page{padding:24px 24px 64px}._1bsb1gwv{width:33.333vw!important}}.head-merged{display:flex;align-items:center;gap:2px;min-width:110px;position:relative}.head-trigger{display:flex;align-items:center;gap:6px;background:none;border:0;padding:4px 2px;font:inherit;font-weight:600;color:inherit;cursor:pointer}.head-chevron{font-size:11px;color:var(--ds-text-subtle)}.sort-btn{background:none;border:0;padding:4px 6px;font-size:12px;color:var(--ds-text-subtle);cursor:pointer}.sort-btn.active{color:var(--ds-text-brand)}.subject-link{color:var(--ds-link);cursor:pointer;text-decoration:none;font-weight:500}.subject-link:hover{text-decoration:underline}.subject-link:focus,.subject-link:focus-visible{outline:2px solid var(--ds-border-focused);outline-offset:2px;border-radius:4px}@media(min-width:720px){.page{padding:24px 24px 64px}}@media(max-width:560px){div:has(>table){overflow-x:auto;max-width:100%}}
