:root{--paper: #fbfaf7;--card: #ffffff;--chip: #eeeae3;--hair: #e6e2da;--ink: #1a1c22;--muted: #5c6472;--faint: #8c93a1;--accent: #2f5fd0;--accent-soft: #f3f6ff;--warn-bg: #f7e6e0;--warn-fg: #a8431f;color-scheme:light}:root[data-scheme=dark]{--paper: #14161c;--card: #1b1e26;--chip: #232833;--hair: #2b303c;--ink: #eef0f5;--muted: #a6adbb;--faint: #767f90;--accent: #6f9bff;--accent-soft: #1e2536;--warn-bg: #3a1f1a;--warn-fg: #f0a68a;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:Golos Text,Segoe UI,system-ui,sans-serif;font-size:15px;line-height:1.45}button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}.num{font-variant-numeric:tabular-nums}.display{font-family:Unbounded,Golos Text,sans-serif;letter-spacing:-.015em}.app{max-width:720px;margin:0 auto;padding:calc(var(--top-inset, 0px) + 62px) 20px calc(96px + env(safe-area-inset-bottom))}.topbar{position:fixed;top:0;left:0;right:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:10px;height:calc(var(--top-inset, 0px) + 50px);padding:var(--top-inset, 0px) 20px 0;background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--hair)}.topbar .name{font-family:Unbounded,sans-serif;font-size:14px;font-weight:600;letter-spacing:-.01em}.head{margin-bottom:14px}.head .eyebrow{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.head .org{font-family:Unbounded,sans-serif;font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint)}.head h1{font-family:Unbounded,sans-serif;font-size:25px;font-weight:600;line-height:1.12;letter-spacing:-.015em;margin:0}.head p{margin:5px 0 0;font-size:13px;color:var(--faint)}.pill{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;background:var(--chip);font-size:13px;font-weight:600}.pill .dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.week{display:flex;gap:7px;margin-bottom:14px}.week button{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;padding:9px 0 8px;border-radius:13px;background:var(--card);border:1px solid var(--hair);min-height:62px}.week button[aria-pressed=true]{background:var(--accent);border-color:transparent;color:#fff}.week .wd{font-size:10px;letter-spacing:.07em;text-transform:uppercase;opacity:.72}.week .dnum{font-size:16px;font-weight:600;line-height:1}.week .mark{width:4px;height:4px;border-radius:50%;background:transparent}.week .mark.on{background:var(--accent)}.week button[aria-pressed=true] .mark.on{background:#ffffffb8}.lessons{display:flex;flex-direction:column;gap:10px}.lesson{display:flex;gap:12px;align-items:stretch}.lesson .when{flex:none;width:58px;padding-top:13px;text-align:right}.lesson .from{font-size:15px;font-weight:600;line-height:1.1}.lesson .to{font-size:12px;color:var(--faint);margin-top:2px}.lesson .body{flex:1;min-width:0;border-radius:16px;background:var(--card);border:1px solid var(--hair);padding:13px 14px 14px;position:relative;overflow:hidden}.lesson.now .body{background:var(--accent-soft);border-color:var(--accent)}.lesson.now .body:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}.lesson .top{display:flex;align-items:center;gap:7px;margin-bottom:7px}.tag{font-size:10px;font-weight:700;letter-spacing:.06em;padding:3px 7px;border-radius:6px;background:var(--chip);color:var(--muted)}.tag.solid{background:var(--accent);color:#fff}.tag.warn{background:var(--warn-bg);color:var(--warn-fg)}.lesson .name{font-size:15px;font-weight:600;line-height:1.32;text-wrap:pretty}.lesson .meta{margin-top:8px;display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12.5px;color:var(--muted)}.lesson .live{font-size:11px;font-weight:600;color:var(--accent)}.gap{display:flex;align-items:center;gap:10px;padding:2px 0 2px 4px;color:var(--faint);font-size:12px}.gap .len{flex:none;width:58px;text-align:right}.gap .rule{flex:1;height:1px;background:var(--hair)}.card{border-radius:16px;background:var(--card);border:1px solid var(--hair);padding:14px 15px 15px;margin-bottom:10px}.card .row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}.card .stamp{font-size:11.5px;color:var(--faint)}.card .title{font-size:15px;font-weight:600;line-height:1.3}.card .text{margin-top:6px;font-size:13.5px;line-height:1.45;color:var(--muted);text-wrap:pretty;white-space:pre-line}.card .before{font-size:13.5px;line-height:1.4;color:var(--faint);text-decoration:line-through;text-decoration-color:var(--hair)}.card .after{font-size:14px;line-height:1.4;font-weight:600;margin-top:5px}.empty{margin-top:34px;text-align:center;color:var(--faint)}.empty strong{display:block;font-family:Unbounded,sans-serif;font-size:17px;font-weight:600;color:var(--ink)}.empty span{display:block;margin-top:6px;font-size:13px}.error{background:var(--warn-bg);color:var(--warn-fg);border-radius:14px;padding:13px 15px;margin-bottom:10px;font-size:13.5px}.section{margin-bottom:18px}.section>h2{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);margin:0 0 8px}.choice{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:13px 14px;border-radius:14px;background:var(--card);border:1px solid var(--hair);margin-bottom:7px}.choice[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent)}.choice .radio{flex:none;width:18px;height:18px;border-radius:50%;border:2px solid var(--hair);display:flex;align-items:center;justify-content:center}.choice[aria-pressed=true] .radio{border-color:var(--accent)}.choice .radio i{width:8px;height:8px;border-radius:50%;background:transparent}.choice[aria-pressed=true] .radio i{background:var(--accent)}.choice strong{display:block;font-size:14.5px;font-weight:600}.choice small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}.seg{display:flex;gap:7px}.seg button{flex:1;padding:11px 0;border-radius:13px;font-size:14px;font-weight:600;background:var(--card);border:1px solid var(--hair);min-height:44px}.seg button[aria-pressed=true]{background:var(--accent);border-color:transparent;color:#fff}.switch{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:13px 14px;border-radius:14px;background:var(--card);border:1px solid var(--hair)}.switch .track{flex:none;width:46px;height:27px;border-radius:999px;background:var(--hair);position:relative;transition:background .18s}.switch[aria-pressed=true] .track{background:var(--accent)}.switch .knob{position:absolute;top:3px;left:3px;width:21px;height:21px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #10141e47;transition:left .18s}.switch[aria-pressed=true] .knob{left:22px}select,input{font:inherit;color:inherit;background:var(--card);border:1px solid var(--hair);border-radius:12px;padding:11px 12px;width:100%;min-height:44px}.tabs{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;padding:8px 12px calc(14px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--hair)}.tabs button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 0 2px;color:var(--faint);font-size:10.5px;font-weight:500;min-height:46px}.tabs button[aria-selected=true]{color:var(--accent);font-weight:600}@media(min-width:900px){.app{max-width:1200px;padding:26px 30px 40px}.topbar{display:none}.tabs{position:static;display:flex;justify-content:flex-start;gap:4px;border-top:none;border-bottom:1px solid var(--hair);padding:0 0 10px;margin-bottom:18px}.tabs button{flex-direction:row;gap:8px;padding:9px 14px;border-radius:11px;font-size:14.5px}.tabs button[aria-selected=true]{background:var(--accent-soft)}.head h1{font-size:28px}.grid{display:grid;grid-template-columns:62px repeat(6,minmax(0,1fr));gap:10px}.grid .colhead{padding:9px 12px;border-radius:12px;background:var(--chip)}.grid .colhead[data-today=true]{background:var(--accent);color:#fff}.grid .colhead .wd{font-size:11px;letter-spacing:.07em;text-transform:uppercase;opacity:.72}.grid .colhead .dnum{font-size:17px;font-weight:600;margin-top:2px}.grid .slot{padding-top:12px;font-size:12.5px;color:var(--faint);text-align:right;line-height:1.5;white-space:pre-line}.grid .cell{min-height:84px;border-radius:14px;border:1px solid transparent}.grid .cell.filled{background:var(--card);border-color:var(--hair);padding:11px 12px 12px}.grid .cell.filled .name{font-size:13px;font-weight:600;line-height:1.3;margin-top:7px;text-wrap:pretty}.grid .cell.filled .meta{font-size:11.5px;color:var(--muted);margin-top:6px;line-height:1.35}}
