@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/atkinson-hyperlegible-latin-ext-400-normal.woff2) format("woff2"),url(/fonts/atkinson-hyperlegible-latin-ext-400-normal.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/atkinson-hyperlegible-latin-400-normal.woff2) format("woff2"),url(/fonts/atkinson-hyperlegible-latin-400-normal.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/atkinson-hyperlegible-latin-ext-700-normal.woff2) format("woff2"),url(/fonts/atkinson-hyperlegible-latin-ext-700-normal.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/atkinson-hyperlegible-latin-700-normal.woff2) format("woff2"),url(/fonts/atkinson-hyperlegible-latin-700-normal.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/ibm-plex-mono-cyrillic-ext-500-normal.woff2) format("woff2"),url(/fonts/ibm-plex-mono-cyrillic-ext-500-normal.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/ibm-plex-mono-cyrillic-500-normal.woff2) format("woff2"),url(/fonts/ibm-plex-mono-cyrillic-500-normal.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/ibm-plex-mono-vietnamese-500-normal.woff2) format("woff2"),url(/fonts/ibm-plex-mono-vietnamese-500-normal.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/ibm-plex-mono-latin-ext-500-normal.woff2) format("woff2"),url(/fonts/ibm-plex-mono-latin-ext-500-normal.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2"),url(/fonts/ibm-plex-mono-latin-500-normal.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/fonts/bricolage-grotesque-vietnamese-opsz-normal.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/fonts/bricolage-grotesque-latin-ext-opsz-normal.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/fonts/bricolage-grotesque-latin-opsz-normal.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#F3F4F8;--surface:#FFFFFF;--surface-2:#E9EBF2;--ink:#161A33;--muted:#575C78;--line:#D5D8E3;--accent:#24265D;--accent-ink:#FFFFFF;--accent-soft:#E3E4F1;--summer:#FAF6EC;--now:#ECEEF8;--good:#1D7A45;--warn:#9A6206;--crit:#B3302A;--c-eng:#B1502A;--c-math:#2C52C4;--c-sci:#2C7A38;--c-soc:#8A5812;--c-lang:#9E336D;--c-arts:#6847B0;--c-pe:#4C6175;--c-asmt:#3B6663;--k-act:#7A4FB5;--k-sport:#2E7D5B;--k-family:#B5652A;--k-personal:#5A6B7D;--f-display:"Bricolage Grotesque Variable", "Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;--f-body:"Atkinson Hyperlegible", "Segoe UI", system-ui, -apple-system, sans-serif;--f-data:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--shadow:0 1px 2px rgba(22,26,51,.06), 0 6px 20px rgba(22,26,51,.06)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0D0F1A;--surface:#151829;--surface-2:#1D2136;--ink:#E6E8F2;--muted:#A0A5BE;--line:#2C3150;--accent:#A9AEF0;--accent-ink:#14163A;--accent-soft:#23264A;--summer:#1B1A15;--now:#191C36;--good:#5BC285;--warn:#E3A947;--crit:#F0786F;--c-eng:#E68C64;--c-math:#8DA6F3;--c-sci:#73C381;--c-soc:#D9A657;--c-lang:#E688BE;--c-arts:#B09BF1;--c-pe:#9FB3C6;--c-asmt:#8DBCB8;--k-act:#B79AEE;--k-sport:#6CCB9F;--k-family:#E9A06A;--k-personal:#A5B6C8;--shadow:0 1px 2px rgba(0,0,0,.3), 0 6px 20px rgba(0,0,0,.25);color-scheme:dark}}:root[data-theme=dark]{--bg:#0D0F1A;--surface:#151829;--surface-2:#1D2136;--ink:#E6E8F2;--muted:#A0A5BE;--line:#2C3150;--accent:#A9AEF0;--accent-ink:#14163A;--accent-soft:#23264A;--summer:#1B1A15;--now:#191C36;--good:#5BC285;--warn:#E3A947;--crit:#F0786F;--c-eng:#E68C64;--c-math:#8DA6F3;--c-sci:#73C381;--c-soc:#D9A657;--c-lang:#E688BE;--c-arts:#B09BF1;--c-pe:#9FB3C6;--c-asmt:#8DBCB8;--k-act:#B79AEE;--k-sport:#6CCB9F;--k-family:#E9A06A;--k-personal:#A5B6C8;--shadow:0 1px 2px rgba(0,0,0,.3), 0 6px 20px rgba(0,0,0,.25);color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.45;padding-inline:16px;padding-block:0 40px}h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0;letter-spacing:-.01em}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,a:focus-visible,[role=button]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:var(--accent)}input,select,textarea{font:inherit;font-size:15px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:6px 8px;min-width:0;max-width:100%}textarea{resize:vertical;min-height:80px}input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}.num{font-family:var(--f-data);font-variant-numeric:tabular-nums}.eyebrow{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}.muted{color:var(--muted)}.wrap{max-width:1760px;margin:0 auto}.top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding-block:16px 10px}.brand{display:flex;align-items:center;gap:12px}.brand .logo{height:46px;width:auto;flex:none;display:block}.brand .mark{font-family:var(--f-display);font-weight:700;font-size:25px;letter-spacing:.01em;color:var(--accent);line-height:1}.brand .txt{display:flex;flex-direction:column;gap:3px}.brand .sub{color:var(--muted);font-size:14px}.student{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.avatar{width:40px;height:40px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-family:var(--f-display);font-weight:700}.student .who strong{display:block;font-size:17px}.student .who span{color:var(--muted);font-size:14px}.pill{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;padding:3px 9px;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:var(--surface);white-space:nowrap}.pill.sample{border-style:dashed}.pill .led{width:7px;height:7px;border-radius:50%;background:var(--muted)}.pill.saved .led{background:var(--good)}.pill.saving .led{background:var(--warn)}.pill.error .led,.pill.off .led{background:var(--crit)}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}.seg button{font:inherit;font-size:13.5px;font-weight:600;color:var(--ink);background:transparent;border:0;border-left:1px solid var(--line);padding:5px 10px;cursor:pointer}.seg button:first-child{border-left:0}.seg button:hover{background:color-mix(in srgb,var(--accent) 10%,var(--surface))}.seg button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.viewas{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--muted)}.viewas select{font-size:14px;padding:4px 6px;font-weight:700}.who select{font:inherit;font-size:16px;font-weight:700;border:1px solid var(--line);border-radius:7px;padding:2px 6px;margin-bottom:2px;display:block}.tabs{display:flex;gap:2px;overflow-x:auto;border-bottom:1px solid var(--line)}.tab{border:0;background:transparent;padding:10px 12px 9px;font-weight:700;font-size:15px;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap}.tab:hover{color:var(--ink)}.tab[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}.tab .ct{font-family:var(--f-data);font-size:13px;font-weight:500;background:var(--surface-2);border-radius:999px;padding:1px 6px;margin-left:6px;color:var(--muted)}.view{padding-top:16px}.state{padding:48px 16px;text-align:center;color:var(--muted)}.state h2{color:var(--ink);font-size:21px;margin-bottom:6px}.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.tile{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px;min-width:0}.tile .big{font-family:var(--f-display);font-size:31px;font-weight:700;line-height:1.05;margin-top:6px}.tile .big small{font-size:16px;color:var(--muted);font-weight:600;margin-left:4px}.tile .foot{color:var(--muted);font-size:14px;margin-top:6px}.cbar{display:flex;height:8px;border-radius:4px;overflow:hidden;background:var(--surface-2);margin-top:10px}.cbar i{display:block;height:100%}.cbar .e{background:var(--accent)}.cbar .n{background:color-mix(in srgb,var(--accent) 45%,var(--surface))}.cbar .p{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--accent) 22%,var(--surface)) 0 4px,var(--surface-2) 4px 8px)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}.layout>.main{min-width:0}.nextc{padding:0 16px 14px;font-size:14.5px}.nextc .when{font-family:var(--f-display);font-size:19px;font-weight:700}.nextc p{margin:2px 0 0}.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;min-width:0}.panel-h{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:14px 16px 10px}.panel-h h2{font-size:20px}.panel-h p{margin:2px 0 0;color:var(--muted);font-size:14.5px}.pad{padding:0 16px 16px}.controls{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;padding:0 16px 10px}.paths{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.lbl{font-size:13.5px;color:var(--muted)}.pbtn{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:3px 10px 3px 8px;font-size:13.5px;display:inline-flex;align-items:center;gap:6px}.pbtn .sw{width:9px;height:9px;border-radius:2px;background:var(--c)}.pbtn[aria-pressed=true]{border-color:var(--c);background:color-mix(in srgb,var(--c) 12%,var(--surface));font-weight:700}.legend{display:flex;flex-wrap:wrap;gap:6px 16px;padding:0 16px 12px;font-size:13px;color:var(--muted)}.legend span{display:inline-flex;align-items:center;gap:6px}.lg{width:22px;height:12px;border-radius:3px;--c:var(--muted)}.lg.done{background:color-mix(in srgb,var(--c) 18%,var(--surface));border:1px solid color-mix(in srgb,var(--c) 40%,transparent)}.lg.now{border:2px solid var(--c);background:var(--surface)}.lg.planned{border:1.5px dashed var(--c)}.lg.bar{width:34px;border:1px solid var(--c);background:color-mix(in srgb,var(--c) 12%,var(--surface));position:relative}.lg.bar:before,.lg.bar:after{content:"";position:absolute;top:2px;bottom:2px;width:2px;border-left:1px solid var(--c)}.lg.bar:before{left:2px}.lg.bar:after{right:2px}.dot{width:8px;height:8px;border-radius:50%;background:var(--warn);display:inline-block}.dot.crit{background:var(--crit)}.map-scroll{--lw:150px;overflow:auto;max-height:max(440px,calc(100vh - 24px));border-top:1px solid var(--line);border-radius:0 0 12px 12px;overscroll-behavior-x:contain;scroll-padding-left:var(--lw);scroll-snap-type:x proximity}.map{position:relative;display:grid;min-width:max-content}.map.panning,.map.panning *{cursor:grabbing!important;user-select:none}#links{position:absolute;left:0;top:0;pointer-events:none;z-index:1;overflow:visible}#links path{fill:none;stroke-width:1.5;opacity:.3;transition:opacity .15s}#links path.sup{stroke-dasharray:3 4}#links circle{opacity:.3}#links .x{opacity:0}.map.focus #links path,.map.focus #links circle{opacity:.05}.map.focus #links .hl{opacity:1;stroke-width:2.2}.hcell{position:sticky;top:0;z-index:5;padding:8px 8px 3px;background:var(--surface)}.hcell[data-pid]{scroll-snap-align:start}.hcell .hin{position:sticky;left:calc(var(--lw) + 8px);max-width:100%;width:max-content;min-width:0}.hcell .t{font-family:var(--f-display);font-weight:700;font-size:15px;line-height:1.2}.hcell .s{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.yschool{font:inherit;font-size:13px;color:var(--accent);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 35%,transparent);text-underline-offset:2px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yschool:hover{text-decoration-color:var(--accent)}.shcell{position:sticky;top:var(--hh, 56px);z-index:5;padding:3px 8px 5px;border-bottom:1px solid var(--line);background:var(--surface);font-size:13px;color:var(--muted);display:flex;justify-content:space-between;gap:6px;align-items:baseline;white-space:nowrap}.shcell b{color:var(--ink);font-weight:700}.shcell .cap{font-family:var(--f-data);font-size:13px}.shcell .cap.over{color:var(--crit);font-weight:700}.hcell.summer,.shcell.summer,.cell.summer{background:var(--summer)}.hcell.nowcol,.shcell.nowcol,.cell.nowcol{background:var(--now)}.hcell .nowtag{position:absolute;top:8px;right:8px;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink);background:var(--accent);border-radius:4px;padding:1px 6px}.corner{position:sticky;left:0;top:0;z-index:7;grid-row:1 / span 2;border-bottom:1px solid var(--line);border-right:1px solid var(--line);display:flex;align-items:flex-end}.sec{grid-column:1 / -1;padding:5px 0 4px;background:var(--surface-2);border-bottom:1px solid var(--line)}.sec span{position:sticky;left:0;padding-left:12px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--muted)}.rlabel{position:sticky;left:0;z-index:3;background:var(--surface);border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:8px 8px 6px 12px;display:flex;gap:8px;align-items:flex-start}.rlabel .sw{flex:none;width:10px;height:10px;border-radius:3px;margin-top:3px;background:var(--c)}.rlabel strong{font-size:14px;display:block;line-height:1.2}.rlabel small{font-size:13px;color:var(--muted);display:block;margin-top:1px}.cell{position:relative;border-bottom:1px solid var(--line);padding:4px 5px;display:flex;flex-direction:column;gap:4px;min-height:36px;transition:background .12s}.cell.sch{border-bottom:0}.cell.slot2{border-left:1px dashed color-mix(in srgb,var(--line) 80%,transparent)}.cell.first{border-left:1px solid color-mix(in srgb,var(--line) 70%,transparent)}@media(hover:hover){.map-scroll.can-pan .cell,.map-scroll.can-pan .orow{cursor:grab}}.cell .add{position:absolute;left:50%;bottom:-9px;transform:translate(-50%);z-index:6;width:20px;height:20px;border-radius:50%;border:1px solid var(--accent);background:var(--surface);color:var(--accent);font-size:16px;font-weight:700;line-height:1;display:grid;place-items:center;padding:0 0 1px;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .12s;box-shadow:var(--shadow)}.cell:hover .add,.cell .add:focus-visible{opacity:1;pointer-events:auto}.cell .add:hover{background:var(--accent);color:var(--accent-ink)}.map.dragging .cell .add,.map.panning .cell .add{display:none}.map.dragging .cell.drop-ok,.map.dragging .orow.drop-ok{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 45%,transparent)}.map.dragging .cell.drop-hover,.map.dragging .orow.drop-hover{background:color-mix(in srgb,var(--accent) 16%,var(--surface));box-shadow:inset 0 0 0 2px var(--accent)}.orow{grid-column:2 / -1;position:relative;border-bottom:1px solid var(--line);min-height:6px}.orow:not(.empty){border-top:1px dashed color-mix(in srgb,var(--line) 80%,transparent)}.orow.empty{height:5px}.map.dragging .orow.drop-ok.empty{height:34px}.oband{position:absolute;top:0;bottom:0;pointer-events:none}.oband.summer{background:var(--summer)}.oband.nowcol{background:var(--now)}.oband.first{border-left:1px solid color-mix(in srgb,var(--line) 70%,transparent)}.oband.slot2{border-left:1px dashed color-mix(in srgb,var(--line) 80%,transparent)}.ohint{position:absolute;top:50%;transform:translateY(-50%);font-size:13px;color:var(--muted);pointer-events:none;white-space:nowrap;display:none}.map.dragging .orow.drop-ok .ohint{display:block}.mapnav{display:flex;align-items:center;gap:6px;padding:0 16px 10px}.mapnav .lbl{font-size:13px;color:var(--muted);white-space:nowrap}.navtrack{position:relative;flex:1;height:26px;border-radius:7px;background:var(--surface-2);overflow:hidden;touch-action:none;cursor:pointer}.navseg{position:absolute;top:0;bottom:0;border:0;border-left:1px solid var(--surface);background:transparent;font:inherit;font-size:13px;font-weight:700;color:var(--muted);padding:0;overflow:hidden;white-space:nowrap;cursor:pointer}.navseg.summer{background:color-mix(in srgb,var(--summer) 70%,var(--surface-2))}.navseg.now{color:var(--accent)}.navseg.now:after{content:"";position:absolute;left:50%;bottom:3px;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--accent)}.navwin{position:absolute;top:1px;bottom:1px;border:2px solid var(--accent);border-radius:6px;background:color-mix(in srgb,var(--accent) 10%,transparent);pointer-events:none}.navtrack.over-win{cursor:grab}.navtrack.dragging .navwin{cursor:grabbing}.navbtn{flex:none;width:28px;height:26px;border:1px solid var(--line);border-radius:7px;background:var(--surface);font-size:17px;line-height:1;color:var(--ink);cursor:pointer}.navbtn:hover{border-color:var(--accent);color:var(--accent)}.legend[hidden]{display:none}.map-wide{margin-bottom:18px}.map-scroll.fit{scroll-snap-type:none}.map-scroll.fit .map{min-width:0;width:100%}.map-scroll.fit .chip{align-items:flex-start;padding-top:4px;padding-bottom:4px}.map-scroll.fit .chip.now{padding-top:3px;padding-bottom:3px}.map-scroll.fit .chip .nm{font-size:13px;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.2}.map-scroll.fit .chip .cr,.map-scroll.fit .shcell .sd{display:none}.map-scroll.fit .chip .prof i{width:4px}.map-scroll.fit .chip .flag{margin-top:4px}.shcell{overflow:hidden}.map-scroll.fit .hcell .s,.map-scroll.fit .yschool{font-size:13px}.qa-group{margin:4px 0 14px}.qa-group h3{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 6px;font-family:var(--f-body)}.qa-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;margin-bottom:6px;cursor:pointer;background:var(--surface)}.qa-row:hover{border-color:var(--accent)}.qa-row input{width:18px;height:18px;flex:none;accent-color:var(--accent)}.qa-row .nm{font-weight:700;font-size:15px}.qa-row .why{margin-left:auto;font-size:13px;color:var(--muted);text-align:right}.qa-row.have{opacity:.6;cursor:default}.qa-row:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.chip,.obar{--c:var(--muted)}.chip{position:relative;z-index:2;display:flex;align-items:center;gap:6px;width:100%;min-height:28px;text-align:left;border-radius:6px;padding:3px 7px;background:color-mix(in srgb,var(--c) 13%,var(--surface));border:1px solid color-mix(in srgb,var(--c) 38%,transparent);cursor:pointer;transition:opacity .15s,transform .15s,box-shadow .15s;user-select:none}.chip[draggable=true]{cursor:grab}.chip:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.chip .nm{flex:1 1 auto;min-width:0;font-weight:700;font-size:13px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip .mk{flex:none;font-family:var(--f-data);font-size:13px;color:var(--ink)}.chip .cr{flex:none;font-size:13px;color:var(--muted)}.chip .prof{flex:none}.chip .tag.ex{flex:none;font-size:13px;padding:0 4px}.chip.now{background:var(--surface);border:2px solid var(--c);padding:2px 6px}.chip.planned{background:transparent;border:1.5px dashed color-mix(in srgb,var(--c) 65%,var(--line))}.chip.planned .nm{color:color-mix(in srgb,var(--ink) 80%,var(--surface))}.chip .flag{position:static;flex:none;width:7px;height:7px;border-radius:50%;background:var(--warn)}.obar .flag{position:absolute;top:4px;right:14px;width:7px;height:7px;border-radius:50%;background:var(--warn)}.chip .flag.crit,.obar .flag.crit{background:var(--crit)}.chip.dragged{opacity:.35}.obar{position:absolute;z-index:2;height:24px;border-radius:6px;display:flex;align-items:center;gap:8px;padding:0 14px 0 12px;font-size:13px;white-space:nowrap;overflow:hidden;cursor:pointer;user-select:none;touch-action:pan-y;background:color-mix(in srgb,var(--c) 13%,var(--surface));border:1px solid color-mix(in srgb,var(--c) 38%,transparent);transition:opacity .15s,box-shadow .15s}.obar.now{background:var(--surface);border:2px solid var(--c)}.obar.planned{background:color-mix(in srgb,var(--c) 5%,var(--surface));border:1.5px dashed color-mix(in srgb,var(--c) 65%,var(--line))}.obar:hover{box-shadow:var(--shadow)}.obar.editable{cursor:grab;touch-action:none}.obar.moving{box-shadow:var(--shadow);cursor:grabbing;z-index:6}.obar.bad{border-color:var(--crit)!important}.obar .otag{flex:none;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--c)}.obar.narrow .otag{display:none}.obar .bn{font-weight:700;overflow:hidden;text-overflow:ellipsis;flex:none;max-width:60%}.obar.narrow .bd{display:none}.obar .bd{color:var(--muted);font-family:var(--f-data);font-size:13px;overflow:hidden;text-overflow:ellipsis;min-width:0}.obar .hh{position:absolute;top:0;bottom:0;width:10px;cursor:ew-resize}.obar .hh.l{left:0}.obar .hh.r{right:0}.obar .hh:after{content:"";position:absolute;top:6px;bottom:6px;left:3px;width:2px;border-left:1px solid var(--c);border-right:1px solid var(--c);opacity:.7}.tag{font-size:13px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:1px 5px;border-radius:3px;border:1px solid currentColor;color:var(--muted);white-space:nowrap}.tag.on{color:var(--c, var(--accent))}.tag.ex{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.prof{display:inline-flex;gap:2px;vertical-align:middle}.prof i{width:6px;height:9px;border-radius:1px;background:color-mix(in srgb,var(--c) 22%,var(--surface-2))}.prof i.on{background:var(--c)}.map.focus .chip:not(.hl),.map.focus .obar:not(.hl){opacity:.3}.map.focus .chip.hl,.map.focus .obar.hl{box-shadow:0 0 0 2px color-mix(in srgb,var(--c) 35%,transparent)}.rail{display:flex;flex-direction:column;gap:14px;min-width:0}.rail .panel-h{padding-bottom:6px}.nowlist{list-style:none;margin:0;padding:0 8px 8px}.nowlist li+li{border-top:1px solid var(--line)}.nowrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;width:100%;text-align:left;border:0;background:transparent;padding:10px 8px;border-radius:8px}.nowrow:hover{background:var(--surface-2)}.nowrow .nm{font-weight:700;font-size:15px;display:flex;align-items:center;gap:7px;min-width:0}.nowrow .nm .sw{flex:none;width:9px;height:9px;border-radius:2px;background:var(--c)}.nowrow .score{grid-row:span 3;text-align:right;align-self:center}.nowrow .score .num{font-size:19px;display:block}.nowrow .score small{color:var(--muted);font-size:13px;display:block}.nowrow .sub{font-size:13.5px;color:var(--muted);display:flex;gap:8px;align-items:center;flex-wrap:wrap}.status{font-size:13px;font-weight:700;padding:1px 7px;border-radius:999px;white-space:nowrap;display:inline-block}.status.good{color:var(--good);background:color-mix(in srgb,var(--good) 13%,transparent)}.status.warn{color:var(--warn);background:color-mix(in srgb,var(--warn) 15%,transparent)}.status.crit{color:var(--crit);background:color-mix(in srgb,var(--crit) 14%,transparent)}.status.muted{color:var(--muted);background:var(--surface-2)}.spark{display:block}.alerts{list-style:none;margin:0;padding:0 16px 14px;display:flex;flex-direction:column;gap:10px}.alerts li{display:grid;grid-template-columns:4px minmax(0,1fr);gap:10px;font-size:14.5px}.alerts .sev{border-radius:2px;background:var(--warn)}.alerts .sev.crit{background:var(--crit)}.alerts p{margin:0}.alerts button{margin-top:6px}.btn{border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:5px 11px;font-size:14px;font-weight:700;white-space:nowrap}.btn:hover:not(:disabled){background:var(--surface-2)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn.primary:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 88%,var(--ink))}.btn.danger{color:var(--crit);border-color:color-mix(in srgb,var(--crit) 40%,var(--line))}.btn.small{padding:3px 8px;font-size:13px}.linkbtn{border:0;background:none;padding:0;color:var(--accent);font-weight:700;font-size:14px}.signoff{padding:0 16px 14px;font-size:14.5px}.signoff p{margin:0 0 10px}.signoff .row{display:flex;gap:8px;flex-wrap:wrap}.ok{color:var(--good);font-weight:700}.news{list-style:none;margin:0;padding:0 16px 14px;display:flex;flex-direction:column;gap:12px}.news li{font-size:14.5px}.news .when{font-size:13px;color:var(--muted);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.news strong{display:block}.news.wide{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px 22px}.map-scroll.fit .chip .tag.ex{display:none}.news p{margin:2px 0 0;color:var(--muted)}.weekbar{height:8px;border-radius:4px;background:var(--surface-2);overflow:hidden;margin:6px 0 4px}.weekbar i{display:block;height:100%;background:var(--accent)}.lower{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin-top:18px;align-items:stretch}.collapser{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;text-align:left;border:0;background:transparent;padding:14px 16px;border-radius:12px}.collapser:hover{background:color-mix(in srgb,var(--surface-2) 50%,transparent)}.collapser h2{font-size:20px}.collapser p{margin:2px 0 0;color:var(--muted);font-size:14.5px}.collapser .right{display:flex;align-items:center;gap:10px}.collapser .chev{width:26px;height:26px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:13px;transition:transform .15s}.collapser[aria-expanded=true] .chev{transform:rotate(180deg)}.gsum{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 14px;margin-top:-6px}.reqs{list-style:none;margin:0;padding:0 16px 14px}.reqs li{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:10px;align-items:start;padding:7px 0;border-top:1px solid var(--line);font-size:14.5px}.reqs li:first-child{border-top:0}.reqs .by{color:var(--muted);font-size:13.5px}.ic{width:14px;height:14px;border-radius:50%;margin-top:3px;border:2px solid var(--muted);display:inline-block;flex:none}.ic.done{background:var(--good);border-color:var(--good)}.ic.now{border-color:var(--good);background:linear-gradient(90deg,var(--good) 50%,transparent 50%)}.ic.planned{border-style:dashed}.ic.none{border-color:var(--crit);background:color-mix(in srgb,var(--crit) 20%,transparent)}.ic.warn{border-color:var(--warn);background:linear-gradient(90deg,var(--warn) 50%,transparent 50%)}.counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:4px 16px 12px}.count{background:var(--surface-2);border-radius:8px;padding:8px 10px;min-width:0}.count .v{font-family:var(--f-data);font-size:16px}.count .l{font-size:13px;color:var(--muted)}.subh{padding:6px 16px 4px;font-size:13px;letter-spacing:.07em;text-transform:uppercase;font-weight:700;color:var(--muted)}.target h3{font-size:16.5px;padding:6px 16px 2px;display:flex;justify-content:space-between;gap:10px;align-items:baseline;flex-wrap:wrap}.cal-list{list-style:none;margin:0;padding:0 16px 14px}.cal-list li{display:grid;grid-template-columns:62px minmax(0,1fr) auto;gap:12px;padding:8px 0;border-top:1px solid var(--line);align-items:center;font-size:14.5px}.cal-list li:first-child{border-top:0}.cal-list .d{font-family:var(--f-data);font-size:13px;color:var(--muted);line-height:1.2}.cal-list .d b{display:block;font-family:var(--f-display);font-size:18px;color:var(--ink)}.cal-list .in{font-size:13px;color:var(--muted);white-space:nowrap}.notes{list-style:none;margin:0;padding:0 16px 14px;display:flex;flex-direction:column;gap:12px}.notes li{font-size:14.5px;border-left:2px solid var(--c);padding-left:10px}.notes .h{font-size:13px;color:var(--muted)}.notes .h b{color:var(--ink)}.notes p{margin:2px 0 0}.banner{margin:0 16px 12px;padding:9px 12px;border-radius:8px;font-size:14px;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}.banner.warn{background:color-mix(in srgb,var(--warn) 12%,var(--surface));border-color:color-mix(in srgb,var(--warn) 35%,transparent)}.plink{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:3px 8px;font-size:13.5px}.plink.me{background:color-mix(in srgb,var(--c) 14%,var(--surface));border-color:var(--c);font-weight:700;cursor:default}.tscroll{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:14.5px}.table th{text-align:left;font-weight:700;color:var(--muted);font-size:13px;letter-spacing:.04em;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}.table tr:last-child td{border-bottom:0}.table td.num,.table th.r{text-align:right}.table input,.table select{width:100%;font-size:14px;padding:5px 6px}.table .w-xs{width:70px}.table .w-s{width:110px}.table .w-m{width:160px}.table .w-l{width:300px}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:0 16px 12px}.toolbar .grow{flex:1 1 200px}.chips{display:flex;flex-wrap:wrap;gap:6px}.fchip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:3px 10px;font-size:13.5px}.fchip[aria-pressed=true]{background:var(--ink);color:var(--surface);border-color:var(--ink);font-weight:700}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;padding:0 16px 14px}.msgs{list-style:none;margin:0;padding:0 16px 16px;display:flex;flex-direction:column;gap:10px}.msg{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface);max-width:780px}.msg.in{margin-right:auto;border-left:3px solid var(--muted)}.msg.out{margin-left:auto;border-right:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--surface))}.msg .mh{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:13px;color:var(--muted)}.msg .mh b{color:var(--ink)}.msg h3{font-family:var(--f-body);font-size:15px;margin:4px 0 2px}.msg p{margin:0;font-size:15px;white-space:pre-wrap}.msg .lock{margin-left:auto}.pgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 16px 16px}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field.full{grid-column:1 / -1}.field label,.field .l{font-size:13.5px;font-weight:700;color:var(--muted)}.field .hint{font-size:13px;color:var(--muted)}.checks{display:flex;flex-direction:column;gap:8px;padding:0 16px 16px}.checks label{display:flex;gap:8px;align-items:center;font-size:15px}.cal-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}.calbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.calbar .wk{font-family:var(--f-display);font-weight:700;font-size:16px;min-width:150px;text-align:center}.cal-scroll{overflow-x:auto;border-top:1px solid var(--line)}.cal{display:grid;position:relative}.dayh{border:0;border-bottom:1px solid var(--line);border-left:1px solid var(--line);background:var(--surface);text-align:left;padding:8px 8px 6px}.dayh:hover{background:var(--surface-2)}.dayh .dn{display:block;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.dayh .dd{font-family:var(--f-display);font-size:21px;font-weight:700;line-height:1.1}.dayh .ds{display:block;font-size:13px;color:var(--muted)}.gcorner{border-bottom:1px solid var(--line);background:var(--surface)}.allday{border-bottom:1px solid var(--line);border-left:1px solid var(--line);padding:4px;display:flex;flex-direction:column;gap:3px;min-height:30px}.allday-l{border-bottom:1px solid var(--line);font-size:13px;color:var(--muted);padding:6px 6px 0 4px;text-align:right}.mkr{font-size:13px;padding:2px 6px;border-radius:4px;line-height:1.3;border:1px solid var(--line);background:var(--surface-2);text-align:left;width:100%}.mkr.test{background:color-mix(in srgb,var(--c) 14%,var(--surface));border-color:color-mix(in srgb,var(--c) 40%,transparent);font-weight:700}.mkr.off{background:repeating-linear-gradient(135deg,var(--surface-2) 0 5px,var(--surface) 5px 10px);font-weight:700}.mkr.pack{background:color-mix(in srgb,var(--warn) 12%,var(--surface));border-color:color-mix(in srgb,var(--warn) 35%,transparent)}.gutter{position:relative;border-right:1px solid var(--line)}.gutter span{position:absolute;right:6px;font-size:13px;color:var(--muted);transform:translateY(-50%);white-space:nowrap}.daycol{position:relative;border-left:1px solid var(--line);background-image:repeating-linear-gradient(to bottom,color-mix(in srgb,var(--line) 70%,transparent) 0 1px,transparent 1px 60px)}.daycol.off{background-color:color-mix(in srgb,var(--surface-2) 55%,var(--surface))}.daycol.today{background-color:var(--now)}.daycol.drop-hover{background-color:color-mix(in srgb,var(--accent) 6%,var(--surface))}.ev{--c:var(--muted);position:absolute;border-radius:6px;padding:3px 6px;font-size:13px;line-height:1.25;overflow:hidden;z-index:2;border:1px solid color-mix(in srgb,var(--c) 45%,transparent);background:color-mix(in srgb,var(--c) 15%,var(--surface));cursor:pointer;user-select:none}.ev b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ev .t{color:var(--muted);font-family:var(--f-data);font-size:13px;display:block}.ev .x2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--lines,2);color:var(--muted);font-size:13px;line-height:17px;overflow:hidden}.ev.school{background:color-mix(in srgb,var(--c) 20%,var(--surface))}.ev.exia{background:var(--surface);border:1.5px solid var(--accent)}.ev.exia b:after{content:"EXIA";margin-left:6px;font-size:13px;letter-spacing:.07em;padding:0 4px;border-radius:3px;background:var(--accent);color:var(--accent-ink);vertical-align:1px}.ev.study{border:1.5px dashed var(--c);background:color-mix(in srgb,var(--c) 8%,var(--surface))}.ev.study.done{border-style:solid;background:color-mix(in srgb,var(--good) 12%,var(--surface));border-color:var(--good)}.ev.study.done b:before{content:"✓ ";color:var(--good)}.ev[draggable=true]{cursor:grab}.ev:hover{box-shadow:var(--shadow);z-index:4}.ev .rz{position:absolute;left:0;right:0;bottom:0;height:7px;cursor:ns-resize}.ev .rz:after{content:"";position:absolute;left:50%;bottom:2px;width:16px;margin-left:-8px;border-top:2px solid color-mix(in srgb,var(--c) 60%,transparent);border-radius:2px}.ev.dragged{opacity:.35}.ghost{position:absolute;left:3px;right:3px;border:2px dashed var(--accent);border-radius:6px;background:color-mix(in srgb,var(--accent) 12%,transparent);pointer-events:none;z-index:5;font-size:13px;padding:2px 6px;color:var(--accent);font-weight:700}.tray{display:flex;flex-direction:column;gap:8px;padding:0 16px 16px}.tray h3{font-family:var(--f-body);font-size:13px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-top:4px}.stile{--c:var(--accent);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;padding:8px 10px;border-radius:8px;border:1.5px dashed var(--c);background:color-mix(in srgb,var(--c) 7%,var(--surface));cursor:grab;user-select:none}.stile:hover{box-shadow:var(--shadow)}.stile b{font-size:14px}.stile .s{font-size:13px;color:var(--muted)}.stile .du{font-family:var(--f-data);font-size:13px;grid-row:span 2;align-self:center;text-align:right}.stile .du button{margin-top:4px}.stile.dragged{opacity:.4}.daypick{display:none;gap:4px;padding:0 16px 10px;overflow-x:auto}.daypick button{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:4px 8px;font-size:13px;min-width:44px}.daypick button[aria-pressed=true]{background:var(--ink);color:var(--surface);border-color:var(--ink)}.sumrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;font-size:14px;padding:4px 0}.sumrow .bar{grid-column:1 / -1;height:6px;border-radius:3px;background:var(--surface-2);overflow:hidden}.sumrow .bar i{display:block;height:100%;background:var(--c)}#tip{position:fixed;z-index:50;max-width:300px;background:var(--ink);color:var(--bg);border-radius:9px;padding:10px 12px;font-size:13.5px;line-height:1.4;pointer-events:none;box-shadow:0 8px 30px #00000040}#tip strong{display:block;font-size:14.5px;margin-bottom:2px}#tip .r{display:flex;justify-content:space-between;gap:12px;border-top:1px solid color-mix(in srgb,var(--bg) 20%,transparent);padding-top:5px;margin-top:5px}#tip .r span:first-child{opacity:.72;flex:none}#tip .r span:last-child{text-align:right}#tip .iss{margin-top:6px;padding-top:5px;border-top:1px solid color-mix(in srgb,var(--bg) 20%,transparent)}#tip .hint{opacity:.65;margin-top:6px;font-size:13px}dialog#drawer{margin:0 0 0 auto;height:100%;max-height:100%;overflow-y:auto;width:min(520px,100%);max-width:100%;border:0;padding:0;background:var(--surface);color:var(--ink);box-shadow:-10px 0 40px #0003}dialog#drawer::backdrop{background:#0c0e206b}dialog#drawer[open]{animation:slide .22s ease-out}@keyframes slide{0%{transform:translate(24px);opacity:.6}to{transform:none;opacity:1}}.dr{padding:calc(env(safe-area-inset-top,0px) + 18px) 20px calc(env(safe-area-inset-bottom,0px) + 24px);display:flex;flex-direction:column;gap:18px}.dr-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.dr-top h2{font-size:24px;line-height:1.15;margin-top:6px}.x{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:34px;height:34px;flex:none;font-size:19px;line-height:1}.dr .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.fact{background:var(--surface-2);border-radius:8px;padding:9px 10px;min-width:0}.fact .l{font-size:13px;color:var(--muted)}.fact .v{font-weight:700;font-size:16px;overflow-wrap:anywhere}.dsec h3{font-size:14px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-family:var(--f-body);margin-bottom:8px}.dsec p{margin:0}.dsec p+p{margin-top:6px}.chart{width:100%;height:auto;display:block}.atable{width:100%;border-collapse:collapse;font-size:14px}.atable th{text-align:left;font-weight:700;color:var(--muted);font-size:13px;padding:4px 6px 4px 0;border-bottom:1px solid var(--line)}.atable td{padding:6px 6px 6px 0;border-bottom:1px solid var(--line)}.atable td.num,.atable th.r{text-align:right}.atable tr.up td{color:var(--muted)}.atable td.need{font-weight:700;color:var(--ink)}.atable td.hit{color:var(--good)}.atable td.miss{color:var(--warn)}.tgt{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:8px;font-size:14.5px}.tgt input{width:76px}.pathline{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:14px}.pathline .arrow{color:var(--muted)}.pace{height:10px;border-radius:5px;background:var(--surface-2);position:relative;overflow:hidden;margin:8px 0 6px}.pace i{position:absolute;inset:0 auto 0 0;background:var(--c)}.pace b{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--warn)}.meets{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:5px;font-size:14.5px}.meets li{display:flex;gap:8px;align-items:flex-start}.meets .ic{margin-top:4px;width:12px;height:12px}.callout{background:color-mix(in srgb,var(--warn) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--warn) 35%,transparent);border-radius:8px;padding:10px 12px;font-size:14.5px}.callout.crit{background:color-mix(in srgb,var(--crit) 10%,var(--surface));border-color:color-mix(in srgb,var(--crit) 35%,transparent)}.callout.info{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 30%,transparent)}.callout ul{margin:4px 0 0;padding-left:18px}.edit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.edit .full{grid-column:1 / -1}.provfacts{font-size:13.5px;color:var(--muted);margin-top:2px}.dr-actions{display:flex;gap:8px;flex-wrap:wrap}.daylist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.daylist li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px;font-size:14.5px;padding:8px 10px;border-radius:8px;background:color-mix(in srgb,var(--c, var(--muted)) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--c, var(--muted)) 25%,transparent)}.daylist .tm{font-family:var(--f-data);font-size:13px;color:var(--muted)}form.f{display:flex;flex-direction:column;gap:14px}form.f .grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}#toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 20px);transform:translate(-50%);background:var(--ink);color:var(--bg);padding:9px 14px;border-radius:8px;font-size:14.5px;z-index:60;max-width:calc(100% - 32px)}@media(max-width:1240px){.layout,.cal-layout{grid-template-columns:minmax(0,1fr)}.layout>.rail-top{order:-1}.rail{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start}}@media(max-width:960px){.lower,.pgrid{grid-template-columns:minmax(0,1fr)}#map-fit{display:none}}@media(max-width:700px){.map-scroll{--lw:98px}.rlabel{padding:7px 6px 6px 8px;gap:6px}.rlabel small{display:none}.rlabel strong{font-size:13px}.mapnav{padding:0 12px 10px}.mapnav .lbl{display:none}}@media(max-width:760px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.tile .big{font-size:25px}.counts,.fields,form.f .grid,.edit{grid-template-columns:minmax(0,1fr)}.facts{grid-template-columns:repeat(2,minmax(0,1fr))}.daypick{display:flex}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}[hidden]:not([hidden=until-found i]){display:none!important}.map-scroll{scroll-snap-type:none;overflow-x:auto}.map{min-width:0;width:auto}.hcell[data-pid]{scroll-snap-align:none}.chip .nt,.hcell .tt,.shcell .tt,.hcell.tight .tf,.shcell.tight .tf{display:none}.hcell.tight .tt,.shcell.tight .tt{display:inline}.chip .nm{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;line-height:1.2}.obar .nt{display:none}.cell.tight .chip .nf,.obar.narrow .nf{display:inline}.cell.tight .chip .nf{display:none}.cell.tight .chip .nt{display:inline}.cell.tight .chip{align-items:flex-start;padding:3px 1px 3px 2px;gap:1px;min-height:30px}.cell.tight .chip.now{padding:2px 2px 2px 3px}.cell.tight .chip .nm{font-size:13px;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;line-height:1.18;letter-spacing:-.03em;overflow-wrap:break-word;hyphens:manual;-webkit-hyphens:manual}.cell.tight .chip .cr,.cell.tight .chip .tag.ex,.cell.tight .chip .mk,.cell.tight .chip .prof{display:none}.cell.tight .chip .flag{margin-top:3px;width:6px;height:6px}.cell.tight{padding:4px 2px}.cell.tight .add{display:none}.hcell.tight{padding:8px 4px 3px}.hcell.tight .s{display:none}.hcell.tight .t,.hcell.tight.summer .t,.shcell.tight.summer b{font-size:13px}.hcell.tight .nowtag{top:4px;right:3px;font-size:13px;padding:0 4px}.hcell.tight .hin{left:calc(var(--lw) + 4px)}.shcell.tight{padding:3px 4px 5px}.shcell.tight .sd,.shcell.tight .cap{display:none}.shcell.tight b{font-size:13px}.obar .nf,.obar .nt{display:inline}.map .obar .nt{display:none}.map:has(.shcell.tight) .obar.narrow .nf{display:none}.map:has(.shcell.tight) .obar.narrow .nt{display:inline}.map:has(.shcell.tight) .obar.narrow{padding:0 4px;font-size:13px}.obar.narrow .bn{max-width:none}.obar.narrow .hh{width:6px}.obar.narrow .hh:after{display:none}.obar.narrow:hover .hh:after{display:block;left:1px}@media(prefers-reduced-motion:reduce){.cell,.chip{transition:none}}#tip.sticky{pointer-events:auto}#tip .tipact{margin-top:8px}.auth{max-width:440px;margin:8vh auto 0}.auth .panel{padding:22px 22px 24px}.auth h1{font-size:25px;margin:10px 0 4px}.auth .brand{margin-bottom:6px}.auth form{display:flex;flex-direction:column;gap:12px;margin-top:14px}.auth .seg{display:flex;gap:6px;margin-top:14px}.auth .seg button{flex:1;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:8px 10px;font-weight:700}.auth .seg button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.auth .err{color:var(--crit);font-size:14.5px;margin:0}.auth .qr{display:block;width:180px;height:180px;margin:6px auto}.auth .secret{font-family:var(--f-data);font-size:14px;word-break:break-all;background:var(--surface-2);padding:6px 8px;border-radius:6px}.signout{margin-left:4px}.atable input.asm{width:100%;min-width:0;padding:4px 6px;font-size:14px}.atable td:first-child input.asm{min-width:130px}.atable input.asm.w-xs{width:54px;text-align:right}.atable input.asm[type=date]{width:130px;padding-right:2px}.atable td{padding-right:4px}.atable .adel{padding:2px 8px;font-size:16px;line-height:1}.asm-add{display:grid;grid-template-columns:minmax(0,1fr) auto 90px auto;gap:6px;margin-top:8px;align-items:center}.asm-add input{min-width:0}@media(max-width:760px){.asm-add{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.dayh.today{background:color-mix(in srgb,var(--accent) 9%,var(--surface))}.dayh.today .dd{color:var(--accent)}.dayh.today .dn:after{content:" · today";text-transform:none;letter-spacing:0;font-weight:400}.daycol.today{background-color:color-mix(in srgb,var(--accent) 7%,var(--surface))}.nowline{position:absolute;left:0;right:0;height:0;border-top:2px solid var(--crit);z-index:3;pointer-events:none}.nowline i{position:absolute;left:-5px;top:-6px;width:10px;height:10px;border-radius:50%;background:var(--crit)}.tiles.two{grid-template-columns:repeat(2,minmax(0,1fr))}.fold>details>summary{list-style:none;cursor:pointer}.fold>details>summary::-webkit-details-marker{display:none}.fold>details>summary.collapser{display:flex}.fold>details[open]>summary .chev{transform:rotate(180deg)}.fold>details>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.fold .collapser h2{font-size:20px}.foldblock{margin:0 16px 10px}.foldblock>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:700;color:var(--accent);padding:4px 0}.foldblock>summary::-webkit-details-marker{display:none}.foldblock>summary .chev{width:22px;height:22px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:13px;transition:transform .15s}.foldblock[open]>summary .chev{transform:rotate(180deg)}.foldblock>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.foldblock .legend{margin:6px 0 0;padding:0}.dfold{border-top:1px solid var(--line);margin:12px 0 0}.dfold>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0 4px}.dfold>summary::-webkit-details-marker{display:none}.dfold>summary h3{margin:0}.dfold>summary .chev{width:22px;height:22px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:13px;transition:transform .15s;flex:none}.dfold[open]>summary .chev{transform:rotate(180deg)}.dfold>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dfold-body{padding-bottom:4px}.uplist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.upl{display:flex;gap:12px;align-items:flex-start;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.upl.mistake{opacity:.65}.upl .thumb{flex:none;width:64px;height:64px;border-radius:8px;background:var(--surface-2);display:grid;place-items:center;overflow:hidden;font-weight:700;color:var(--muted);font-size:13px}.upl .thumb img{width:100%;height:100%;object-fit:cover;display:block}.upl .ub{display:flex;flex-direction:column;gap:4px;min-width:0}.upl .ub strong{overflow-wrap:anywhere}.upl .row{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.atable tr.reported td{background:color-mix(in srgb,var(--warn) 8%,var(--surface));font-style:normal}.up-prev{margin:0 0 12px}.up-prev img{max-width:100%;max-height:240px;border-radius:10px;border:1px solid var(--line);display:block}.upload-cta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 14px;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.upload-cta .btn{min-height:48px;padding:10px 20px;font-size:16px}.ring-row{display:flex;align-items:center;gap:16px;padding:2px 0 12px}.ring{flex:none}.ring-bg{fill:none;stroke:var(--surface-2);stroke-width:9}.ring-fg{fill:none;stroke:var(--accent);stroke-width:9;stroke-linecap:round;transition:stroke-dasharray .6s ease}.ring-fg.met{stroke:var(--good)}.ring-pct{font-size:16px;font-weight:700;fill:var(--ink)}.ring-tick{fill:none;stroke:var(--good);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.streak{margin-top:4px}.wins{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.win{display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.win .wh{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.win .wk{flex:none;font-size:13px;font-weight:700;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:2px 9px;white-space:nowrap}.win .wt{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.win .cheered{color:var(--good);font-weight:700}.win .btn{flex:none}.cheer-pop{position:fixed;left:50%;top:38%;transform:translate(-50%,-50%);z-index:200;display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 28px;border-radius:18px;background:var(--surface);border:1px solid var(--line);box-shadow:0 12px 40px #0000002e;font-weight:700;pointer-events:none;animation:cp-in .25s ease both}.cheer-pop .cp-c{fill:color-mix(in srgb,var(--good) 14%,var(--surface));stroke:var(--good);stroke-width:3;stroke-dasharray:145;stroke-dashoffset:145;animation:cp-draw .55s ease .05s forwards}.cheer-pop .cp-t{fill:none;stroke:var(--good);stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:cp-draw .35s ease .5s forwards}.cheer-pop.still,.cheer-pop.still .cp-c,.cheer-pop.still .cp-t{animation:none}.cheer-pop.still .cp-c,.cheer-pop.still .cp-t{stroke-dashoffset:0}@keyframes cp-in{0%{opacity:0;transform:translate(-50%,-46%) scale(.92)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes cp-draw{to{stroke-dashoffset:0}}@media(prefers-reduced-motion:reduce){.cheer-pop,.cheer-pop .cp-c,.cheer-pop .cp-t{animation:none!important}.cheer-pop .cp-c,.cheer-pop .cp-t{stroke-dashoffset:0}.ring-fg{transition:none}}.lower>.fold{align-self:start}.tile-pair{display:contents}.tile-study .study-row{display:flex;align-items:center;gap:12px;margin-top:4px}.tile-study .big{margin-top:0;font-size:25px}.tile-study .ring{flex:none}.tile-today .foot .line{display:block}.credits-body .big{margin-top:4px}.wins-strip{margin-bottom:18px;background:linear-gradient(180deg,color-mix(in srgb,var(--good) 9%,var(--surface)),var(--surface) 70%);border-color:color-mix(in srgb,var(--good) 28%,var(--line))}.wins-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 18px 0}.wins-head h2{margin:0;font-size:18px}.wins-row{flex-direction:row;gap:10px;overflow-x:auto;padding:8px 18px 12px;scroll-snap-type:x proximity}.wins-row.wrap{flex-wrap:wrap;overflow-x:visible}.wins-row .win{flex:0 0 min(230px,78vw);flex-direction:column;align-items:flex-start;gap:6px;scroll-snap-align:start}.wins-row .win .btn{margin-top:auto}.map-row{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start;margin-bottom:18px}.map-row>.map-wide{margin-bottom:0;min-width:0}.map-row>.panel{min-width:0}.map-wide.map-full{position:fixed;inset:0;z-index:40;margin:0;border-radius:0;border:0;display:flex;flex-direction:column;overflow:hidden;background:var(--surface)}.map-full .map-scroll{flex:1 1 auto;max-height:none;min-height:0}.map-full-bar{display:flex;flex-direction:column;gap:8px;padding:0 18px 10px}.map-full-bar .years{display:flex;gap:6px;flex-wrap:wrap}.chipbtn{font:inherit;font-size:14px;padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}.chipbtn[aria-pressed=true]{background:var(--ink);color:var(--surface);border-color:var(--ink);font-weight:700}.tryout{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:8px 12px;border-radius:10px;background:var(--accent-soft);color:var(--ink);font-size:14.5px}.workload{flex:none;border-top:1px solid var(--line);padding:10px 18px 14px;max-height:34vh;overflow:auto}.workload h3{margin:0 0 8px;font-size:16px}.wl-row{list-style:none;margin:0;padding:0;display:flex;gap:10px;flex-wrap:wrap}.wl{flex:1 1 118px;max-width:200px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:3px;font-size:14px;background:var(--surface)}.wl.heavy{border-color:var(--warn)}.wl.over{border-color:var(--crit);box-shadow:inset 0 0 0 1px var(--crit)}.wl-h{font-weight:700}.wl-h small{color:var(--muted);font-weight:400;margin-left:6px}.wl .status{align-self:flex-start}@media(max-width:1180px){.map-row{grid-template-columns:minmax(0,1fr)}}.pbmark{color:var(--good)!important;font-weight:700}.todo-box{border-top:1px solid var(--line)}.todo-list{list-style:none;margin:0;padding:0 18px 4px;display:flex;flex-direction:column;gap:2px}.todo{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--line)}.todo:last-child{border-bottom:0}.todo[draggable=true]{cursor:grab}.todo .check{flex:none;width:24px;height:24px;border-radius:50%;border:2px solid var(--accent);background:transparent;cursor:pointer;padding:0;position:relative}.todo .check:hover:not(:disabled){background:color-mix(in srgb,var(--good) 18%,transparent);border-color:var(--good)}.todo .check:disabled{opacity:.5;cursor:default}.todo .check:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.todo .todo-t{flex:1 1 auto;min-width:0;text-align:left;font-weight:600;color:var(--ink);white-space:normal}.todo .todo-m{flex:none;font-size:13px}.todo.late .todo-m{color:var(--crit);font-weight:700}.todo-add{display:flex;gap:6px;flex-wrap:wrap;padding:8px 18px 14px}.todo-add input[name=title]{flex:1 1 200px;min-width:0}.mkr.todo{border-style:dashed}.mkr.todo.done,.ev.kind.done{opacity:.6;text-decoration:line-through}.notes .linkbtn[data-todo-note]{font-size:13.5px;margin-top:2px}.toast-act{margin-left:12px;font:inherit;font-weight:700;color:var(--bg);background:transparent;border:1px solid currentColor;border-radius:6px;padding:2px 10px;cursor:pointer}.toast-act:hover{background:color-mix(in srgb,var(--bg) 20%,transparent)}.check-wrap{flex:none;display:inline-flex}.usermenu{position:relative}.usermenu .menu{position:absolute;right:0;top:calc(100% + 6px);z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px;box-shadow:var(--shadow);min-width:190px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}.auth.consent{max-width:640px}.consent-body{font-size:16px;line-height:1.5;margin:8px 0 14px}.consent-check{display:flex;gap:10px;align-items:flex-start;font-weight:700;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);cursor:pointer}.consent-check input{width:22px;height:22px;flex:none;margin-top:1px}.consent-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:14px}#grad-credits{white-space:normal;max-width:100%}
