:root{--background:#f2f5f8;--surface:#fff;--surface-alt:#f1f3f6;--text:#10151c;--muted:#596880;--border:#dce2e9;--accent:#006be0;--accent-text:#fff;--link:#006be0;--warning:#795300;--warning-bg:#fff4d7;--focus:#9e4b00;color-scheme:light;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px}

:root[data-theme=dark]{--background:#171e26;--surface:#12181f;--surface-alt:#202832;--text:#f5f7fb;--muted:#b2bfd3;--border:#35414f;--accent:#006be0;--accent-text:#fff;--link:#80baff;--warning:#ffda8a;--warning-bg:#30291c;--focus:#ffd483;color-scheme:dark}

*{box-sizing:border-box}
body{margin:0;background:var(--background);color:var(--text)}
button,input,select{font:inherit}
button,a,input,summary,select{-webkit-tap-highlight-color:transparent}
button{cursor:pointer;min-height:44px;border:1px solid var(--border);border-radius:11px;padding:.65rem .85rem;color:var(--text);background:var(--surface-alt);overflow-wrap:anywhere}
button:disabled{cursor:default;opacity:.55}
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,select:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.warning :is(button,a,input,summary,select):focus-visible,.preview-controls :is(button,a,input,summary,select):focus-visible{outline-color:var(--warning)}
button[aria-pressed=true],.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}
button:hover:not(:disabled){filter:brightness(.96)}
a{color:var(--link,var(--accent));display:inline-block;min-height:44px;padding:.5rem 0}
p{line-height:1.5;margin:.45rem 0}
h1,h2,h3{overflow-wrap:anywhere}
h1{font-size:2.1rem;letter-spacing:-.045em;margin:0;font-weight:780}
h2{font-size:1.1rem}
h3{font-size:1.18rem;line-height:1.35;margin:.45rem 0}
.app-shell{max-width:620px;min-height:100dvh;margin:0 auto;background:var(--surface);border-inline:1px solid var(--border);padding: max(20px,env(safe-area-inset-top,0px),var(--tg-safe-area-inset-top,0px),var(--tg-content-safe-area-inset-top,0px)) max(18px,env(safe-area-inset-right,0px),var(--tg-content-safe-area-inset-right,0px)) max(100px,calc(85px + env(safe-area-inset-bottom,0px)),calc(85px + var(--tg-content-safe-area-inset-bottom,0px)) ) max(18px,env(safe-area-inset-left,0px),var(--tg-content-safe-area-inset-left,0px))}
.app-header{padding:8px 0 22px}
.panel{min-width:0}
.group-button{display:block;text-align:left;width:100%;background:var(--surface);font-size:1.2rem;font-weight:600;padding:.75rem 1rem}
.group-button:after{content:'⌄';float:right;color:var(--muted);padding-left:8px}
.range-controls{display:flex;align-items:center;justify-content:space-between;gap:4px;margin:16px -8px 12px}
.range-title{text-align:center;font-size:1rem;font-weight:650;line-height:1.3}
.icon-button{border:0;background:none;font-size:2rem;line-height:1;padding:.1rem .75rem;flex-shrink:0;color:var(--muted)}
.date-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.date-button{min-width:0;border:0;min-height:64px;padding:.5rem 0;display:flex;flex-direction:column;align-items:center;gap:4px;border-radius:10px}
.date-button span{font-size:.75rem;text-transform:capitalize}
.date-button strong{font-size:1.08rem}
.segmented{display:grid;grid-template-columns:1fr 1fr;background:var(--surface-alt);border:1px solid var(--border);border-radius:12px;padding:3px;margin-top:18px;gap:3px}
.segmented button{border:0;background:none}
.segmented button[aria-pressed=true]{background:var(--accent)}
.toolbar{display:flex;justify-content:space-between;gap:4px;margin:5px 0}
.text-button{border:0;background:none;color:var(--link,var(--accent));padding:.5rem}
.payload-meta{margin-bottom:10px}
.payload-owner{font-size:.85rem;font-weight:650}
.data-status{font-size:.8rem;color:var(--muted);margin:.3rem 0}
.muted,.week-type,.lesson-time,.lesson-details,.lesson-notes{color:var(--muted)}
.muted{font-size:.87rem}
.notice{padding:.8rem .9rem;background:var(--surface-alt);border:1px solid var(--border);border-radius:11px;font-size:.88rem;overflow-wrap:anywhere;margin:10px 0}
.notice h2{font-size:1rem;margin:0 0 .35rem}
.notice button{margin:.35rem .4rem .2rem 0}
.warning{background:var(--warning-bg);color:var(--warning)}
.day-title{text-transform:capitalize;font-size:1.03rem;margin:20px 0 2px}
.week-type{font-size:.78rem;margin-bottom:12px}
.lesson{padding:16px;border:1px solid var(--border);border-radius:12px;margin:10px 0;background:var(--surface);overflow-wrap:anywhere}
.lesson-time{font-size:.95rem}
.lesson-details,.lesson-notes{font-size:.9rem}
.badge{display:inline-block;padding:3px 7px;background:var(--surface-alt);font-size:.75rem;border-radius:5px}
.badge.warning{background:var(--warning-bg)}
.empty{padding:25px 14px;text-align:center;color:var(--muted);background:var(--surface-alt);border-radius:12px}
.sources{border-top:1px solid var(--border);margin-top:25px;padding-top:12px;font-size:.86rem}
.sources summary{min-height:44px;padding:10px 0;cursor:pointer;color:var(--muted)}
.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,620px);padding:8px 15px max(8px,env(safe-area-inset-bottom,0px),var(--tg-content-safe-area-inset-bottom,0px));display:grid;grid-template-columns:1fr 1fr;background:var(--surface);border:1px solid var(--border);z-index:2}
.nav-button{border:0;background:none;color:var(--muted);border-radius:8px;min-height:55px;font-size:.83rem;font-weight:600}
.nav-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.nav-button svg{width:25px;height:25px;flex-shrink:0}
.nav-button[aria-current=page]{color:var(--link,var(--accent));background:var(--surface-alt)}
.settings-title{margin:24px 0 12px;font-size:1.2rem}
.theme-options{display:grid;gap:9px;margin:20px 0 35px}
.theme-option{text-align:left;padding:1rem}
.theme-option[aria-pressed=true]:after{content:'✓';float:right}
.secondary{background:var(--surface-alt)}
.panel>.secondary{margin-top:20px}
.onboarding-title{margin-top:22px}
.group-dialog{color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:16px;width:calc(100% - 24px);max-width:560px;max-height:85dvh;padding:20px;overflow:auto}
.group-dialog::backdrop{background:#0009}
.group-dialog h2{margin-top:0}
.group-dialog label{display:block;font-size:.86rem;margin:20px 0 6px}
.search-row{display:flex;gap:7px}
.search-row input{width:100%;min-width:0;min-height:46px;border:1px solid var(--border);border-radius:9px;padding:10px;background:var(--surface-alt);color:var(--text)}
.catalog-list{display:grid;gap:7px;margin:12px 0}
.catalog-option{text-align:left}
.dialog-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.demo-banner{font-size:.75rem;font-weight:650;text-align:center;padding:9px;background:var(--warning-bg);color:var(--warning);border-radius:7px;margin:0 0 12px}
.preview-controls{max-width:620px;margin:0 auto;padding:12px;background:var(--warning-bg);color:var(--warning);font-size:.78rem;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.preview-controls select{max-width:100%;min-height:44px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:7px;padding:6px}
.preview-controls button{font-size:.78rem}
@media(min-width:700px){.app-shell{margin:24px auto;border-radius:16px;min-height:calc(100dvh - 48px);box-shadow:0 4px 28px #1018270c}
.bottom-nav{border-radius:0 0 14px 14px}
.preview-controls{border-radius:10px;margin-top:15px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}
.bottom-nav[data-social=true]{grid-template-columns:repeat(3,minmax(max-content,1fr));padding-inline:6px;overflow-x:auto}
.bottom-nav[data-social=true] .nav-button{padding-inline:.25rem;white-space:nowrap;overflow-wrap:normal;word-break:normal}
.social-card,.source-choice{border:1px solid var(--border);border-radius:12px;padding:12px;margin:12px 0;overflow-wrap:anywhere}
.social-card button,.source-choice button,.source-options button{margin:4px;max-width:100%}
.source-options{display:flex;flex-wrap:wrap;gap:4px;margin:12px 0}
.panel input{max-width:100%;min-width:0;min-height:44px;padding:8px;border-radius:8px;background:var(--surface-alt);border:1px solid var(--border);color:var(--text)}
.panel label{display:block;margin:10px 0}
.source-marker{font-weight:650;overflow-wrap:anywhere;border-inline-start:5px solid var(--source-color,var(--accent));padding-inline-start:8px}
.source-0{--source-color:#2777c9}.source-1{--source-color:#cf7254}.source-2{--source-color:#65954b}.source-3{--source-color:#a06bcc}.source-4{--source-color:#ab8a22}.source-5{--source-color:#399b9b}
.comparison-columns{display:none}.comparison-timeline{display:block}
.time-group{border-top:1px solid var(--border);margin:14px 0;padding-top:4px}
.timeline-source{border-inline-start:2px solid var(--border);padding-inline-start:8px;margin:12px 0;min-width:0}
.comparison-calendars .lesson{margin:6px 0}.comparison-calendars .day-title{font-size:.95rem}
.comparison-windows{margin:24px 0;padding:12px;border:1px solid var(--border);border-radius:12px}
@media(min-width:960px){.app-shell[data-social=true]{max-width:1500px}.app-shell[data-social=true] .panel{max-width:100%}.bottom-nav[data-social=true]{width:min(100%,1500px)}.comparison-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;align-items:start}.comparison-column{min-width:0}.comparison-timeline{display:none}.force-list .comparison-columns{display:none}.force-list .comparison-timeline{display:block}.preview-controls{max-width:1500px}}
