:root{color:#182027;font-synthesis:none;text-rendering:optimizelegibility;--paper:#f2f1ed;--surface:#fff;--surface-muted:#f8f8f5;--ink:#182027;--ink-2:#34404a;--muted:#66717a;--faint:#8e979e;--line:#d8dddf;--line-dark:#bcc4c8;--navy:#151c22;--blue:#1769e0;--blue-soft:#eaf1fc;--red:#b93636;--red-soft:#faeceb;--amber:#a85f0e;--amber-soft:#fbf0df;--green:#18785d;--green-soft:#e8f3ef;--violet:#6652a3;--violet-soft:#f0ecfa;--mono:"IBM Plex Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;background:#f2f1ed;font-family:IBM Plex Sans Thai,Noto Sans Thai,Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--paper);min-width:320px;min-height:100%}body{background:var(--paper);min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline-offset:2px;outline:3px solid #1769e052}button:disabled{cursor:not-allowed;opacity:.5}h1,h2,h3,p{margin-top:0}.app-shell{min-height:100vh}.sidebar{z-index:40;background:var(--navy);color:#fff;border-right:1px solid #2b343b;flex-direction:column;width:188px;display:flex;position:fixed;inset:0 auto 0 0}.brand{border-bottom:1px solid #2b343b;align-items:center;gap:12px;height:82px;padding:0 20px;display:flex}.brand>div{font-family:var(--mono);letter-spacing:-2px;font-size:25px;font-weight:700}.brand>div span,.mobile-brand span{color:#4c8eeb}.brand p{color:#aeb8bf;font-family:var(--mono);letter-spacing:1.6px;margin:0;font-size:8px;font-weight:700;line-height:1.4}.sidebar nav{flex-direction:column;flex:1;gap:4px;padding:18px 12px;display:flex}.sidebar nav button{color:#93a0aa;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:12px;min-height:46px;padding:0 13px;transition:background .14s,color .14s;display:flex;position:relative}.sidebar nav button:hover{color:#fff;background:#202a32}.sidebar nav button.active{color:#fff;background:#25313b}.sidebar nav button.active:before{content:"";background:#4c8eeb;width:3px;position:absolute;top:10px;bottom:10px;left:-12px}.sidebar nav button span{letter-spacing:.2px;font-size:12px;font-weight:650}.sidebar-foot{border-top:1px solid #2b343b;padding:14px 13px 16px}.save-state,.student-card{align-items:center;display:flex}.save-state{gap:8px;margin-bottom:14px;padding:0 6px}.save-state>span{background:#50ad8c;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #50ad8c1a}.save-state div,.student-card span{flex-direction:column;display:flex}.save-state strong{color:#c9d2d8;font-family:var(--mono);letter-spacing:1px;font-size:8px}.save-state small{color:#6f7c85;margin-top:2px;font-size:8px}.student-card{border:1px solid #303b43;border-radius:7px;gap:10px;padding:10px}.student-card>div,.avatar-button{color:#1c252c;width:30px;height:30px;font-family:var(--mono);background:#e9edf0;border-radius:5px;flex:none;place-items:center;font-size:10px;font-weight:800;display:grid}.student-card strong{font-size:10px;font-weight:650}.student-card small{color:#7d8991;margin-top:2px;font-size:8px}.main-shell{min-height:100vh;margin-left:188px}.topbar{z-index:30;border-bottom:1px solid var(--line);background:#fffffff5;justify-content:space-between;align-items:center;height:64px;padding:0 26px;display:flex;position:sticky;top:0}.mobile-brand{display:none}.date-readout{flex-direction:column;gap:3px;display:flex}.date-readout span,.eyebrow{color:var(--faint);font-family:var(--mono);letter-spacing:1.25px;font-size:9px;font-weight:700}.date-readout strong{font-size:12px;font-weight:650}.topbar-right{align-items:center;gap:15px;display:flex}.sync-label,.refresh-time{color:var(--muted);font-family:var(--mono);letter-spacing:.7px;font-size:8px;font-weight:700}.sync-label{align-items:center;gap:7px;display:flex}.sync-button{cursor:pointer;background:0 0;border:0;padding:7px 5px}.sync-button:hover{color:var(--ink)}.sync-button.status-offline i,.sync-button.status-error i{background:var(--amber)}.sync-button.status-synced i{background:var(--green)}.sync-label i,.engine-state i{background:var(--green);border-radius:50%;width:6px;height:6px}.refresh-time{color:#9aa2a8}.avatar-button{border:1px solid var(--line);cursor:pointer}.button{border:1px solid var(--line-dark);min-height:36px;color:var(--ink);cursor:pointer;font-family:var(--mono);letter-spacing:.6px;background:#fff;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:0 13px;font-size:9px;font-weight:750;display:inline-flex}.button:hover{background:#f8f9f9;border-color:#a5afb4}.button.primary{border-color:var(--blue);background:var(--blue);color:#fff}.button.primary:hover{background:#1259c0;border-color:#1259c0}.button.ghost{color:#e8edf0;background:0 0;border-color:#53606a}.button.ghost:hover{background:#222d35}.button.text{color:#aab5bd;background:0 0;border-color:#0000}.button.large{min-height:42px;padding-inline:18px}.button.rebalance{background:#f9faf9;border-color:#abb4ba;min-height:34px}.button.danger{color:#a62c2c;background:#fff;border-color:#ca5555}.emergency-strip{background:var(--navy);color:#fff;grid-template-columns:minmax(230px,1.25fr) minmax(160px,.8fr) minmax(190px,.85fr) minmax(220px,1.25fr);align-items:center;min-height:72px;padding:0 26px;display:grid}.emergency-strip>div:not(:last-child){border-right:1px solid #303940;min-height:40px}.emergency-title{align-items:center;gap:12px;display:flex}.pulse-dot{background:#e25656;border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite pulse;box-shadow:0 0 0 5px #e256561c}@keyframes pulse{50%{box-shadow:0 0 0 8px #e256560a}}.emergency-title div,.phase-block,.protocol-block{flex-direction:column;gap:4px;display:flex}.emergency-title span,.phase-block span,.protocol-block span,.completion-block span{color:#7f8b94;font-family:var(--mono);letter-spacing:1.2px;font-size:8px;font-weight:700}.emergency-title strong{font-size:13px;font-weight:620}.phase-block,.protocol-block{padding-left:20px}.phase-block strong,.protocol-block strong{font-family:var(--mono);letter-spacing:.4px;font-size:11px}.phase-block strong{color:#83b0ee}.protocol-block strong i{background:#67747d;border-radius:50%;width:3px;height:3px;margin:0 7px 3px;display:inline-block}.completion-block{padding-left:22px}.completion-block>div:first-child{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.completion-block strong{font-family:var(--mono);font-size:10px}.completion-track,.score-track,.module-bars>div>div,.overall-track,.campbell-track{background:#333e46;height:3px;overflow:hidden}.completion-track i,.overall-track i{background:#548fe2;height:100%;display:block}.page-content{max-width:1780px;margin:0 auto;padding:24px 26px 42px}.dashboard-grid{grid-template-columns:minmax(0,1.58fr) minmax(340px,.82fr);gap:20px;display:grid}.dashboard-primary,.dashboard-aside,.page-stack{flex-direction:column;gap:20px;min-width:0;display:flex}.panel,.next-card,.countdown-card,.exam-day-card,.blueprint-card,.campbell-card{border:1px solid var(--line);background:var(--surface);border-radius:8px}.section-title{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:17px;display:flex}.section-title>div{flex-direction:column;gap:4px;display:flex}.section-title h2{letter-spacing:-.25px;margin:0;font-size:16px;font-weight:660}.next-card{background:var(--navy);color:#fff;border-color:#222d35;min-height:340px;position:relative;overflow:hidden}.next-card:after{content:"";background:#3f84e5;width:4px;height:100%;position:absolute;top:0;right:0}.next-card-topline{border-bottom:1px solid #303940;justify-content:space-between;align-items:center;min-height:48px;padding:0 22px;display:flex}.live-label{color:#b8c2c9;font-family:var(--mono);letter-spacing:1.2px;align-items:center;gap:9px;font-size:9px;font-weight:750;display:flex}.live-label span{background:#5a98ed;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #5a98ed1a}.next-time{color:#d4dade;font-family:var(--mono);align-items:center;gap:7px;font-size:10px;font-weight:700;display:flex}.next-time span{color:#6f7d86}.next-card-main{grid-template-columns:58px minmax(0,1fr) 78px;align-items:start;gap:22px;min-height:220px;padding:24px 24px 20px;display:grid}.next-index{color:#6f9fde;font-family:var(--mono);border-right:1px solid #33404a;font-size:24px;font-weight:700}.next-index span{color:#67737b;letter-spacing:.6px;margin-top:5px;font-size:7px;display:block}.next-chips,.block-labels{flex-wrap:wrap;gap:5px;display:flex}.status-chip{color:#66717a;min-height:20px;font-family:var(--mono);letter-spacing:.65px;background:#f4f6f7;border:1px solid #d4dade;border-radius:3px;align-items:center;gap:4px;padding:2px 6px;font-size:7px;font-weight:750;line-height:1;display:inline-flex}.status-chip.blue{background:var(--blue-soft);color:#1c5eaf;border-color:#bdd2ef}.status-chip.amber{background:var(--amber-soft);color:#92500a;border-color:#e8cda5}.status-chip.green{background:var(--green-soft);color:#11674e;border-color:#b8d9ce}.status-chip.violet{background:var(--violet-soft);color:#5e4898;border-color:#d1c6ed}.next-card .status-chip.blue{color:#8fbee9;background:#20364b;border-color:#395e87}.next-card .status-chip.amber{color:#e2b374;background:#362b20;border-color:#6d4f2c}.next-card .status-chip.violet{color:#c1b2e7;background:#2e293b;border-color:#51476b}.next-copy h1{letter-spacing:-1.1px;margin:11px 0 1px;font-size:clamp(26px,2.3vw,36px);font-weight:630;line-height:1.08}.next-thai{color:#8f9ca5;margin-bottom:16px;font-size:13px}.next-copy h3{color:#f2f4f5;margin-bottom:6px;font-size:13px;font-weight:620}.next-detail{color:#a4b0b8;max-width:680px;margin-bottom:14px;font-size:11px;line-height:1.65}.reason-list{flex-wrap:wrap;gap:5px;margin-top:10px;display:flex}.reason-list span{color:#6d777d;font-family:var(--mono);border:1px solid #dce0e2;border-radius:3px;align-items:center;gap:4px;padding:3px 6px;font-size:7px;font-weight:650;display:inline-flex}.next-card .reason-list span{color:#87949c;border-color:#36434c}.next-metric{color:#73818a;border-left:1px solid #303c45;flex-direction:column;align-items:flex-end;padding-left:14px;display:flex}.next-metric span,.next-metric small{font-family:var(--mono);letter-spacing:.7px;font-size:7px}.next-metric strong{color:#e4e9ec;font-family:var(--mono);margin:3px 0;font-size:30px;font-weight:500}.next-card-actions{border-top:1px solid #303940;align-items:center;gap:9px;min-height:68px;padding:0 23px;display:flex}.keyboard-hint{color:#66747d;font-family:var(--mono);letter-spacing:.8px;margin-left:auto;font-size:7px}.empty-card{border-color:var(--line);min-height:210px;color:var(--ink);background:#fff;align-items:center;gap:20px;padding:30px;display:flex}.empty-card:after{background:var(--green)}.empty-symbol{background:var(--green-soft);width:58px;height:58px;color:var(--green);border:1px solid #bcd9cf;border-radius:50%;place-items:center;display:grid}.empty-card h2{margin:6px 0;font-size:20px}.empty-card p{color:var(--muted);margin:0;font-size:12px}.timeline-panel{padding:20px 22px 24px;overflow:hidden}.timeline-summary{color:var(--muted);font-family:var(--mono);letter-spacing:.7px;font-size:8px;font-weight:700}.date-strip{border:1px solid var(--line);border-radius:6px;grid-template-columns:repeat(auto-fit,minmax(66px,1fr));margin-bottom:22px;display:grid}.date-tab{border:0;border-right:1px solid var(--line);cursor:pointer;background:#fbfbf9;flex-direction:column;justify-content:center;align-items:center;min-width:0;min-height:69px;display:flex;position:relative}.date-tab:last-child{border-right:0}.date-tab:hover{background:#f4f6f7}.date-tab.active{color:#1555a8;background:#eef4fc}.date-tab.active:after{background:var(--blue);content:"";height:3px;position:absolute;bottom:-1px;left:10px;right:10px}.date-tab span{color:var(--faint);font-family:var(--mono);letter-spacing:1px;font-size:7px;font-weight:750}.date-tab strong{font-family:var(--mono);margin:2px 0;font-size:18px}.date-tab small{color:#9aa3a9;font-size:7px}.timeline-list{flex-direction:column;display:flex}.timeline-unit{transition:opacity .14s}.timeline-unit.is-complete{opacity:.58}.timeline-unit.is-complete .block-content h3,.timeline-unit.is-complete .block-task{-webkit-text-decoration:line-through #9ba3a8;text-decoration:line-through #9ba3a8}.timeline-block{grid-template-columns:54px 18px minmax(0,1fr) auto;align-items:start;gap:10px;padding:13px 0;display:grid}.block-time{font-family:var(--mono);flex-direction:column;padding-top:2px;display:flex}.block-time strong{font-size:11px;font-weight:700}.block-time span{color:#a0a8ad;margin-top:3px;font-size:8px}.timeline-rail{justify-content:center;align-self:stretch;display:flex;position:relative}.timeline-rail:after{content:"";background:#d4dadd;width:1px;position:absolute;top:12px;bottom:-22px}.timeline-rail span{z-index:1;background:var(--blue);width:9px;height:9px;box-shadow:0 0 0 1px var(--blue);border:2px solid #fff;border-radius:50%;margin-top:3px;display:block;position:relative}.block-content{border-left:2px solid #b9cbe4;min-width:0;padding:0 15px 3px}.block-heading{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.block-heading h3{margin:7px 0 0;font-size:14px;font-weight:660}.thai-subject{color:var(--muted);margin:1px 0 0;font-size:10px}.block-score{font-family:var(--mono);flex-direction:column;align-items:flex-end;display:flex}.block-score span{color:#9aa2a7;letter-spacing:.7px;font-size:6px}.block-score strong{color:#5f6b73;margin-top:2px;font-size:13px}.block-task{color:#3a464e;margin:10px 0 3px;font-size:11px;font-weight:650}.block-detail{color:#778087;margin:0;font-size:10px;line-height:1.55}.block-actions{gap:4px;padding-top:1px;display:flex}.icon-button{border:1px solid var(--line);color:#7a858c;cursor:pointer;background:#fff;border-radius:5px;place-items:center;width:32px;height:32px;display:grid}.icon-button:hover{color:var(--ink);border-color:#abb5ba}.icon-button.primary{border-color:var(--blue);background:var(--blue);color:#fff}.break-row{color:#97a0a5;min-height:31px;font-family:var(--mono);letter-spacing:.35px;grid-template-columns:54px 18px minmax(0,1fr);align-items:center;gap:10px;font-size:7px;font-weight:650;display:grid}.break-time{text-align:left}.break-line{justify-content:center;align-self:stretch;display:flex;position:relative}.break-line:after{content:"";background:#d4dadd;width:1px;height:100%}.break-row>div:last-child{border-top:1px dashed #dde1e3;border-bottom:1px dashed #dde1e3;align-items:center;gap:5px;padding:7px 10px;display:flex}.break-row>div:last-child span{color:#b0b7bb}.inline-empty{border:1px dashed var(--line-dark);color:var(--muted);text-align:center;padding:30px;font-size:11px}.countdown-section{padding-top:2px}.countdown-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.countdown-card{border-top-width:3px;min-height:136px;padding:12px 13px 10px;position:relative;overflow:hidden}.countdown-card.urgent{border-top-color:var(--red)}.countdown-card.amber{border-top-color:var(--amber)}.countdown-card.blue{border-top-color:var(--blue)}.countdown-card.green{border-top-color:var(--green)}.countdown-card-head,.countdown-card-foot{color:#7a858b;font-family:var(--mono);letter-spacing:.65px;justify-content:space-between;align-items:center;font-size:6.5px;font-weight:750;display:flex}.countdown-status-dot{background:#acb4b9;border-radius:50%;width:5px;height:5px}.countdown-card.urgent .countdown-status-dot{background:var(--red)}.countdown-card.amber .countdown-status-dot{background:var(--amber)}.countdown-card.blue .countdown-status-dot{background:var(--blue)}.countdown-card.green .countdown-status-dot{background:var(--green)}.countdown-card-body{grid-template-columns:1fr auto 1fr;align-items:center;margin:13px 0 12px;display:grid}.countdown-card-body>div:not(.countdown-separator){flex-direction:column;display:flex}.countdown-card-body strong{color:#253039;font-family:var(--mono);letter-spacing:-1.8px;font-size:clamp(23px,2.2vw,31px);font-weight:500;line-height:1}.countdown-card-body span{color:#9ca4a9;font-family:var(--mono);letter-spacing:.7px;margin-top:4px;font-size:6px}.countdown-separator{color:#ccd1d4;font-family:var(--mono);align-self:start;font-size:20px;line-height:1}.countdown-card-foot{color:#9ba3a8;border-top:1px solid #eceeef;padding-top:8px}.countdown-card-foot span:first-child{color:#536068}.triage-panel,.campbell-mini{padding:18px}.engine-state{color:var(--green);font-family:var(--mono);letter-spacing:.6px;align-items:center;gap:6px;font-size:7px;font-weight:750;display:flex}.triage-list{flex-direction:column;display:flex}.triage-item{border-top:1px solid #eaedee;grid-template-columns:25px minmax(0,1fr) 28px;align-items:center;gap:9px;padding:11px 0;display:grid}.triage-item:first-child{border-top:0;padding-top:2px}.triage-item.deferred{opacity:.55}.triage-rank{color:#a1a9ae;font-family:var(--mono);font-size:10px}.triage-copy>div:first-child{justify-content:space-between;align-items:center;gap:8px;display:flex}.triage-copy strong{font-size:11px;font-weight:660}.triage-copy>div>span{color:#888f94;font-family:var(--mono);letter-spacing:.5px;font-size:6px;font-weight:750}.triage-copy p{color:#8a9399;text-overflow:ellipsis;white-space:nowrap;margin:2px 0 7px;font-size:8px;overflow:hidden}.score-track{background:#eceeef;height:2px}.score-track span{background:#4e83c7;height:100%;display:block}.triage-score{color:#5d6870;font-family:var(--mono);text-align:right;font-size:12px;font-weight:550}.score-legend{color:#9ca4a9;font-family:var(--mono);letter-spacing:.25px;border-top:1px solid #eaedee;padding-top:9px;font-size:6px}.text-link{color:var(--blue);cursor:pointer;font-family:var(--mono);background:0 0;border:0;align-items:center;gap:5px;padding:0;font-size:7px;font-weight:750;display:inline-flex}.campbell-overall{border-top:1px solid #eceeef;border-bottom:1px solid #eceeef;align-items:center;gap:15px;padding:13px 0;display:flex}.radial-mini{--progress:0;background:conic-gradient(var(--green) calc(var(--progress) * 1%), #e5e9e8 0);border-radius:50%;flex:none;place-items:center;width:54px;height:54px;display:grid;position:relative}.radial-mini:after{content:"";background:#fff;border-radius:50%;width:44px;height:44px;position:absolute}.radial-mini strong{z-index:1;font-family:var(--mono);font-size:10px;position:relative}.campbell-overall>div:last-child{flex-direction:column;display:flex}.campbell-overall>div:last-child strong{font-family:var(--mono);font-size:12px}.campbell-overall>div:last-child span{color:var(--muted);margin-top:2px;font-size:9px}.campbell-overall>div:last-child small{color:var(--amber);font-family:var(--mono);letter-spacing:.5px;margin-top:5px;font-size:6px;font-weight:700}.module-bars{flex-direction:column;gap:11px;padding-top:13px;display:flex}.module-bars>div>span{color:#58646b;justify-content:space-between;margin-bottom:5px;font-size:8px;display:flex}.module-bars>div>span strong{font-family:var(--mono);font-size:7px}.module-bars>div>div{background:#e9ecec;height:3px}.module-bars i{height:100%;display:block}.page-heading{justify-content:space-between;align-items:flex-start;gap:22px;min-height:74px;display:flex}.page-heading h1{letter-spacing:-.75px;margin:5px 0 4px;font-size:27px;font-weight:640}.page-heading p{color:var(--muted);margin:0;font-size:11px}.cap-control{border:1px solid var(--line);background:#fff;border-radius:6px;align-items:center;gap:8px;padding:7px 9px 7px 12px;display:flex}.cap-control>span{color:#899298;font-family:var(--mono);letter-spacing:.7px;margin-right:5px;font-size:7px;font-weight:700}.cap-control button{border:1px solid var(--line);cursor:pointer;background:#fafafa;border-radius:4px;place-items:center;width:27px;height:27px;display:grid}.cap-control strong{min-width:20px;font-family:var(--mono);text-align:center;font-size:14px}.warning-banner{border:1px solid #e6c28b;border-left:3px solid var(--amber);color:#885016;background:#fff9ee;border-radius:6px;align-items:flex-start;gap:12px;padding:13px 15px;display:flex}.warning-banner div{flex-direction:column;gap:3px;display:flex}.warning-banner strong{font-size:11px}.warning-banner span{color:#8a704e;font-size:9px}.schedule-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.schedule-day{border:1px solid var(--line);background:#fff;border-radius:8px;align-self:start;overflow:hidden}.schedule-day-head{border-bottom:1px solid var(--line);background:#f8f8f6;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:13px;padding:12px 14px;display:grid}.schedule-day-head>div:first-child{border-right:1px solid var(--line);flex-direction:column;align-items:center;display:flex}.schedule-day-head>div:first-child span,.schedule-day-head>span{color:#808b92;font-family:var(--mono);letter-spacing:.7px;font-size:7px;font-weight:700}.schedule-day-head>div:first-child strong{font-family:var(--mono);font-size:20px}.schedule-day-head h2{margin:0 0 2px;font-size:13px}.schedule-day-head p{color:#8d969b;font-family:var(--mono);letter-spacing:.4px;margin:0;font-size:6.5px;font-weight:700}.timeline-unit.compact{border-bottom:1px solid #eceeef;padding:0 14px}.timeline-unit.compact:last-child{border-bottom:0}.compact .timeline-block{grid-template-columns:46px 10px minmax(0,1fr) auto;gap:8px;padding:12px 0}.compact .timeline-rail:after{bottom:-12px}.compact .block-content{border-left:0;padding-left:8px}.compact .block-heading h3{font-size:12px}.compact .block-task{margin-top:6px;font-size:9px}.compact .block-actions .icon-button:nth-child(2){display:none}.compact .icon-button{width:28px;height:28px}.exam-days{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:15px;display:grid}.exam-day-card{overflow:hidden}.exam-day-card>header{border-bottom:1px solid var(--line);background:var(--navy);color:#fff;gap:14px;padding:17px;display:flex}.exam-day-card>header>div:first-child{border-right:1px solid #39444c;flex-direction:column;justify-content:center;align-items:center;min-width:48px;padding-right:14px;display:flex}.exam-day-card>header span{color:#7d8992;font-family:var(--mono);letter-spacing:.8px;font-size:7px;font-weight:700}.exam-day-card>header strong{font-family:var(--mono);font-size:23px}.exam-day-card>header h2{margin:1px 0 3px;font-size:14px;font-weight:620}.exam-day-card>header p{color:#8f9ba3;font-family:var(--mono);margin:0;font-size:7px}.exam-list article{border-bottom:1px solid #eceeef;grid-template-columns:46px 3px minmax(0,1fr) 35px;align-items:center;gap:11px;min-height:92px;padding:12px 14px;display:grid}.exam-list article:last-child{border-bottom:0}.exam-time{font-family:var(--mono);flex-direction:column;display:flex}.exam-time strong{font-size:10px}.exam-time span{color:#9ba3a8;margin-top:3px;font-size:8px}.exam-accent{background:#71808a;border-radius:2px;align-self:stretch}.exam-accent.red{background:var(--red)}.exam-accent.amber{background:var(--amber)}.exam-accent.blue{background:var(--blue)}.exam-accent.green{background:var(--green)}.exam-accent.violet{background:var(--violet)}.exam-copy h3{margin:0 0 2px;font-size:11px;font-weight:660;line-height:1.3}.exam-copy p{color:var(--muted);margin:0 0 7px;font-size:9px}.exam-copy>div{flex-wrap:wrap;gap:3px;display:flex}.exam-duration{font-family:var(--mono);border-left:1px solid #eceeef;flex-direction:column;align-items:flex-end;display:flex}.exam-duration span{color:#59656c;font-size:11px}.exam-duration small{color:#a0a8ad;margin-top:2px;font-size:6px}.blueprint-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}.blueprint-card{overflow:hidden}.blueprint-card>header{border-bottom:1px solid var(--line);background:#fafaf8;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:13px;padding:17px;display:grid}.blueprint-icon{background:var(--violet-soft);width:42px;height:42px;color:var(--violet);border:1px solid #cfc5e9;border-radius:6px;place-items:center;display:grid}.blueprint-card header span{color:#8b9499;font-family:var(--mono);letter-spacing:.8px;font-size:7px;font-weight:700}.blueprint-card header h2{margin:3px 0 1px;font-size:15px}.blueprint-card header p{color:var(--muted);margin:0;font-size:10px}.blueprint-count{border-left:1px solid var(--line);flex-direction:column;align-items:flex-end;padding-left:15px;display:flex}.blueprint-count strong{font-family:var(--mono);font-size:23px;font-weight:500}.source-constraint{color:#92530e;background:#fff8eb;border-bottom:1px solid #e9d3a9;grid-template-columns:22px auto 1fr;align-items:center;gap:8px;padding:10px 17px;display:grid}.source-constraint strong{font-family:var(--mono);letter-spacing:.7px;font-size:8px}.source-constraint span{color:#92724f;font-size:8px}.blueprint-tasks article{border-bottom:1px solid #eceeef;grid-template-columns:34px minmax(0,1fr);gap:12px;padding:15px 17px;display:grid}.blueprint-tasks article:last-child{border-bottom:0}.blueprint-tasks article.done{opacity:.72;background:#f4f9f7}.blueprint-step{color:#889197;width:28px;height:28px;font-family:var(--mono);border:1px solid #d3d8db;border-radius:50%;place-items:center;font-size:8px;display:grid}.done .blueprint-step{background:var(--green-soft);color:var(--green);border-color:#96c5b5}.blueprint-tasks h3{margin:0 0 4px;font-size:11px}.blueprint-tasks p{color:#707a81;margin:0 0 9px;font-size:9px;line-height:1.55}.blueprint-tasks article>div:last-child>div{flex-wrap:wrap;gap:5px;display:flex}.blueprint-tasks article>div:last-child>div span{color:#7b858b;font-family:var(--mono);border:1px solid #dfe3e5;border-radius:3px;padding:3px 5px;font-size:6.5px;font-weight:650}.posn-hero{background:var(--navy);color:#fff;border:1px solid #253039;border-radius:8px;justify-content:space-between;align-items:center;gap:30px;min-height:190px;padding:30px 34px;display:flex}.posn-hero h1{letter-spacing:-1px;margin:7px 0 3px;font-size:34px;font-weight:630}.posn-hero p{color:#8c989f;margin:0;font-size:11px}.posn-state{flex-wrap:wrap;gap:14px;margin-top:20px;display:flex}.posn-state span{color:#71808a;font-family:var(--mono);letter-spacing:.6px;align-items:center;gap:7px;font-size:7px;font-weight:750;display:flex}.posn-state i{background:#49a282;border-radius:50%;width:6px;height:6px}.posn-countdown{align-items:flex-start;gap:14px;display:flex}.posn-countdown>div{flex-direction:column;align-items:center;display:flex}.posn-countdown strong{font-family:var(--mono);letter-spacing:-3px;font-size:clamp(34px,4.2vw,58px);font-weight:400;line-height:1}.posn-countdown span{color:#6d7a83;font-family:var(--mono);letter-spacing:1px;margin-top:8px;font-size:7px;font-weight:700}.posn-countdown em{color:#45525b;font-family:var(--mono);font-size:31px;font-style:normal}.posn-progress-head{padding:18px 21px}.overall-number,.overall-meta{justify-content:space-between;align-items:center;display:flex}.overall-number span,.overall-meta span{color:#7d878d;font-family:var(--mono);letter-spacing:.7px;font-size:7px;font-weight:700}.overall-number strong{font-family:var(--mono);font-size:20px;font-weight:500}.overall-track{background:#e5e9e8;height:7px;margin:10px 0 8px}.overall-track i{background:var(--green)}.campbell-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;display:grid}.campbell-card{overflow:hidden}.campbell-card header{grid-template-columns:26px minmax(0,1fr) auto;align-items:start;gap:11px;padding:18px 18px 13px;display:grid}.campbell-card header>span{font-family:var(--mono);font-size:11px;font-weight:700}.campbell-card h2{margin:0 0 2px;font-size:15px}.campbell-card header p{color:var(--muted);margin:0;font-size:8px}.campbell-card header>strong{font-family:var(--mono);font-size:14px;font-weight:600}.campbell-track{background:#e7eae9;height:4px;margin:0 18px 3px}.campbell-track i{height:100%;display:block}.chapter-list label{cursor:pointer;border-top:1px solid #eceeef;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:50px;padding:8px 18px;display:grid}.chapter-list label:hover{background:#fafbf9}.chapter-list input{opacity:0;width:1px;height:1px;position:absolute}.custom-check{color:#0000;border:1px solid #cbd1d4;border-radius:4px;place-items:center;width:19px;height:19px;display:grid}.chapter-list input:checked+.custom-check{border-color:var(--green);background:var(--green);color:#fff}.chapter-list label>span:nth-of-type(2){font-size:10px;font-weight:560}.chapter-list small{color:#9ca4a9;font-family:var(--mono);letter-spacing:.4px;font-size:6px;font-weight:700}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;display:grid}.settings-card{min-height:230px;padding:21px}.settings-card>p{color:var(--muted);font-size:10px;line-height:1.65}.settings-card>small{color:#9ba3a8;text-align:center;font-size:8px;display:block}.large-stepper{grid-template-columns:44px 1fr 44px;align-items:center;gap:12px;margin:26px 0 18px;display:grid}.large-stepper button{border:1px solid var(--line-dark);cursor:pointer;background:#fafafa;border-radius:5px;place-items:center;width:44px;height:44px;display:grid}.large-stepper>div{flex-direction:column;align-items:center;display:flex}.large-stepper strong{font-family:var(--mono);font-size:31px;font-weight:500}.large-stepper span{color:#8e979c;font-family:var(--mono);letter-spacing:.7px;font-size:7px}.algorithm-card ul{margin:0;padding:0;list-style:none}.algorithm-card li{border-top:1px solid #eceeef;grid-template-columns:27px 1fr;gap:9px;padding:9px 0;display:grid}.algorithm-card li:first-child{border-top:0}.algorithm-card li>span{color:var(--blue);font-family:var(--mono);font-size:8px;font-weight:700}.algorithm-card li strong{font-size:10px}.algorithm-card li p{color:var(--muted);margin:2px 0 0;font-size:8px}.architecture-flow{justify-content:space-between;align-items:center;gap:7px;margin-top:28px;display:flex}.architecture-flow span{color:#5f6b72;font-family:var(--mono);text-align:center;background:#f7f9fa;border:1px solid #cdd5da;border-radius:4px;flex:1;padding:12px 5px;font-size:7px;font-weight:700}.danger-card{border-color:#e7c4c4}.danger-card .button{margin-top:25px}.cloud-card,.pwa-card{min-height:300px}.cloud-badge{color:#6e7980;min-height:24px;font-family:var(--mono);letter-spacing:.55px;background:#f6f7f7;border:1px solid #d3d9dc;border-radius:4px;align-items:center;gap:6px;padding:0 7px;font-size:6.5px;font-weight:750;display:inline-flex}.cloud-badge i{background:#8d979d;border-radius:50%;width:6px;height:6px}.cloud-badge.status-synced,.cloud-badge.status-link-sent{background:var(--green-soft);color:var(--green);border-color:#b8d8cd}.cloud-badge.status-synced i,.cloud-badge.status-link-sent i{background:var(--green)}.cloud-badge.status-syncing,.cloud-badge.status-connecting{background:var(--blue-soft);color:#255faa;border-color:#bdd1ec}.cloud-badge.status-syncing i,.cloud-badge.status-connecting i{background:var(--blue);animation:1.2s ease-in-out infinite pulse}.cloud-badge.status-offline,.cloud-badge.status-error{background:var(--amber-soft);color:#8f550e;border-color:#e5c99e}.cloud-badge.status-offline i,.cloud-badge.status-error i{background:var(--amber)}.cloud-setup-state,.install-visual,.cloud-user,.link-sent,.install-success{align-items:center;display:flex}.offline-ready-note{color:var(--green);font-family:var(--mono);letter-spacing:.35px;justify-content:center;align-items:center;gap:6px;margin-top:10px;font-size:7px;font-weight:700;display:flex}.cloud-setup-state{background:#fafbf9;border:1px dashed #c7d0d5;border-radius:6px;gap:13px;padding:17px}.cloud-symbol{background:var(--amber-soft);width:44px;height:44px;color:var(--amber);border-radius:50%;flex:none;place-items:center;display:grid}.cloud-setup-state strong,.install-visual strong{font-size:11px}.cloud-setup-state p,.install-visual p,.cloud-login>p{color:var(--muted);margin:4px 0 0;font-size:9px;line-height:1.55}.cloud-setup-state code{font-family:var(--mono);background:#f1f3f3;border:1px solid #d9dfe1;border-radius:3px;padding:1px 4px;font-size:8px}.cloud-login>div:first-of-type{grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-top:17px;display:grid}.cloud-login input{border:1px solid #c9d1d5;border-radius:5px;min-width:0;min-height:39px;padding:0 10px;font-size:10px}.link-sent{background:var(--green-soft);color:var(--green);border:1px solid #bad8cd;border-radius:5px;gap:9px;margin-top:11px;padding:9px 11px}.link-sent span{flex-direction:column;display:flex}.link-sent strong{font-size:9px}.link-sent small{color:#538071;margin-top:1px;font-size:7px}.cloud-error{background:var(--red-soft);color:#a13b3b;border:1px solid #e5bcbc;border-radius:5px;align-items:flex-start;gap:7px;margin-top:10px;padding:8px 10px;font-size:8px;display:flex}.cloud-user{border-bottom:1px solid #eceeef;gap:11px;padding-bottom:14px}.cloud-user>div{background:var(--blue-soft);color:#215ca8;width:38px;height:38px;font-family:var(--mono);border-radius:5px;place-items:center;font-size:10px;font-weight:750;display:grid}.cloud-user span{flex-direction:column;min-width:0;display:flex}.cloud-user strong{text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.cloud-user small{color:#899297;margin-top:3px;font-size:7px}.cloud-actions{gap:7px;margin-top:15px;display:flex}.cloud-footnote{color:#879197;align-items:center;gap:6px;margin:15px 0 0;font-size:7px;display:flex}.install-visual{gap:15px}.install-icon{background:var(--navy);color:#f3f5f6;width:66px;height:66px;font-family:var(--mono);letter-spacing:-1px;border:1px solid #33414a;border-radius:14px;flex:none;place-items:center;font-size:17px;font-weight:750;display:grid;box-shadow:inset 0 0 0 5px #1e2931}.install-icon span{color:#4c8eeb}.install-button{width:100%;margin-top:20px}.install-success{background:var(--green-soft);color:var(--green);border:1px solid #b8d9ce;border-radius:5px;gap:7px;margin-top:18px;padding:10px;font-size:8px;font-weight:650}.ipad-install-steps{grid-template-columns:repeat(3,1fr);gap:6px;margin:18px 0 0;padding:0;list-style:none;display:grid}.ipad-install-steps li{border:1px solid var(--line);color:#657078;text-align:center;border-radius:5px;flex-direction:column;justify-content:center;min-height:54px;padding:7px 8px;font-size:7px;display:flex}.ipad-install-steps li span{color:var(--blue);font-family:var(--mono);margin-bottom:3px;font-size:9px;font-weight:750}.ipad-install-steps li strong{font-size:13px}.install-hint{border:1px dashed var(--line-dark);color:var(--muted);text-align:center;border-radius:5px;margin-top:17px;padding:11px;font-size:8px}.focus-overlay{z-index:100;color:#fff;background:#10161b;flex-direction:column;justify-content:center;align-items:center;padding:46px 30px 26px;display:flex;position:fixed;inset:0;overflow:auto}.focus-overlay:before{pointer-events:none;content:"";border:1px solid #26313a;position:fixed;inset:20px}.focus-close{z-index:1;color:#87949c;cursor:pointer;background:0 0;border:1px solid #34404a;border-radius:5px;place-items:center;width:42px;height:42px;display:grid;position:fixed;top:34px;right:34px}.focus-brand{color:#65727b;font-family:var(--mono);letter-spacing:1px;font-size:8px;font-weight:700;position:fixed;top:38px;left:38px}.focus-brand span{color:#7da8e1;margin-right:8px;font-size:12px}.focus-layout{grid-template-columns:320px minmax(0,1fr);align-items:center;gap:65px;width:min(940px,90vw);display:grid}.focus-ring{width:300px;height:300px;position:relative}.focus-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.focus-ring circle{fill:none;stroke:#27323a;stroke-width:2px}.focus-ring circle.progress{stroke:#4e8cdf;stroke-linecap:round;stroke-width:4px;transition:stroke-dashoffset 1s linear}.focus-ring>div{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.focus-ring span,.focus-ring small{color:#6f7c84;font-family:var(--mono);letter-spacing:1.3px;font-size:8px;font-weight:700}.focus-ring strong{font-family:var(--mono);letter-spacing:-3px;margin:10px 0 7px;font-size:48px;font-weight:400}.focus-copy h1{letter-spacing:-1.5px;margin:9px 0 2px;font-size:clamp(30px,4vw,48px);font-weight:620}.focus-thai{color:#738089;margin-bottom:25px;font-size:13px}.focus-copy h2{color:#d8dfe3;margin-bottom:9px;font-size:16px}.focus-copy>p:last-of-type{color:#8e9aa2;max-width:560px;font-size:11px;line-height:1.65}.focus-reasons{flex-wrap:wrap;gap:6px;margin-top:20px;display:flex}.focus-reasons span{color:#76858e;font-family:var(--mono);border:1px solid #33414a;border-radius:3px;padding:5px 7px;font-size:7px}.focus-controls{align-items:center;gap:10px;margin-top:46px;display:flex}.focus-play{color:#fff;cursor:pointer;min-width:150px;min-height:48px;font-family:var(--mono);letter-spacing:.7px;background:#286ecb;border:1px solid #4a8ce5;border-radius:5px;justify-content:center;align-items:center;gap:10px;font-size:9px;font-weight:700;display:inline-flex}.button.ghost.light{min-height:48px}.focus-shortcuts{color:#4f5b63;font-family:var(--mono);letter-spacing:.7px;gap:25px;font-size:7px;font-weight:700;display:flex;position:fixed;bottom:38px}.bottom-nav{display:none}.schedule-heading-actions,.schedule-heading-actions .button,.quick-add-bar,.view-switch,.manual-actions{align-items:center;display:flex}.schedule-heading-actions{flex-wrap:wrap;justify-content:flex-end;gap:7px}.planner-command-bar{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:repeat(4,minmax(110px,1fr)) auto;display:grid;overflow:hidden}.planner-stat{border-right:1px solid var(--line);flex-direction:column;justify-content:center;min-height:84px;padding:12px 17px;display:flex}.planner-stat span{color:#8c959a;font-family:var(--mono);letter-spacing:.7px;font-size:7px;font-weight:700}.planner-stat strong{color:#344049;font-family:var(--mono);margin:4px 0 1px;font-size:22px;font-weight:500}.planner-stat small{color:#9aa2a7;font-size:8px}.planner-stat.attention{background:#fff8ed}.planner-stat.attention strong{color:var(--amber)}.planner-command-bar>.cap-control{border:0;border-radius:0;align-self:center;padding-inline:18px}.quick-add-bar{border:1px solid var(--line);background:#fff;border-radius:7px;gap:7px;min-height:55px;padding:8px 10px}.quick-add-bar>div:first-child{border-right:1px solid var(--line);color:var(--blue);align-items:center;gap:9px;margin-right:6px;padding-right:16px;display:flex}.quick-add-bar>div:first-child span{flex-direction:column;display:flex}.quick-add-bar>div:first-child strong{color:#657078;font-family:var(--mono);letter-spacing:.7px;font-size:7px}.quick-add-bar>div:first-child small{color:#a0a7ab;margin-top:2px;font-size:7px}.quick-add-bar>button,.view-switch button{border:1px solid var(--line);color:#5d6870;cursor:pointer;background:#fafbfa;border-radius:5px;align-items:center;gap:7px;min-height:34px;padding:0 10px;font-size:8px;font-weight:650;display:inline-flex}.quick-add-bar>button:hover,.view-switch button:hover{background:#f5f7f7;border-color:#aeb7bc}.category-dot{background:var(--blue);border-radius:50%;flex:none;width:7px;height:7px;display:inline-block}.category-dot.class{background:var(--violet)}.category-dot.unavailable{background:#68747c}.category-dot.personal{background:var(--green)}.view-switch{border-left:1px solid var(--line);gap:3px;margin-left:auto;padding-left:10px}.view-switch button{font-family:var(--mono);background:0 0;border-color:#0000;font-size:7px}.view-switch button.active{background:var(--blue-soft);color:#1e5eae;border-color:#bad0eb}.day-add,.calendar-day header button{color:#66727a;cursor:pointer;background:#fff;border:1px solid #cbd2d5;border-radius:4px;place-items:center;width:29px;height:29px;display:grid}.agenda-exam{min-height:48px;color:var(--red);background:#fff7f7;border-bottom:1px solid #ebdedf;grid-template-columns:44px 18px minmax(0,1fr);align-items:center;gap:8px;padding:8px 14px;display:grid}.agenda-exam>span{font-family:var(--mono);font-size:8px;font-weight:700}.agenda-exam div{flex-direction:column;display:flex}.agenda-exam strong{font-size:9px}.agenda-exam small{color:#a86b6b;margin-top:2px;font-size:7px}.manual-event-row{cursor:grab;background:#fff;border-bottom:1px solid #eceeef;grid-template-columns:45px 3px minmax(0,1fr) 38px auto;align-items:center;gap:10px;min-height:78px;padding:11px 14px;display:grid}.manual-event-row:active{cursor:grabbing}.manual-event-row.is-complete{opacity:.55}.manual-event-row.is-complete h3{text-decoration:line-through}.manual-time{font-family:var(--mono);flex-direction:column;display:flex}.manual-time strong{font-size:9px}.manual-time span{color:#9da5aa;margin-top:3px;font-size:7px}.manual-color{background:var(--blue);border-radius:2px;align-self:stretch}.category-class .manual-color{background:var(--violet)}.category-unavailable .manual-color{background:#68747c}.category-personal .manual-color{background:var(--green)}.manual-copy>div{flex-wrap:wrap;gap:4px;display:flex}.manual-copy h3{margin:6px 0 2px;font-size:11px}.manual-copy p{color:#798288;margin:0;font-size:8px}.manual-duration{color:#68737a;font-family:var(--mono);flex-direction:column;align-items:flex-end;display:flex}.manual-duration strong{font-size:11px}.manual-duration span{color:#a1a8ad;font-size:6px}.manual-actions{gap:4px}.empty-day-add{color:#7d878d;cursor:pointer;background:#fafaf8;border:1px dashed #c8cfd3;border-radius:5px;justify-content:center;align-items:center;gap:7px;width:calc(100% - 28px);min-height:52px;margin:14px;font-size:9px;display:flex}.calendar-board{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:11px;display:grid}.calendar-day{border:1px solid var(--line);background:#fff;border-radius:7px;min-height:220px;transition:border-color .12s,box-shadow .12s;overflow:hidden}.calendar-day.drag-over{border-color:var(--blue);box-shadow:0 0 0 3px #1769e01a}.calendar-day>header{border-bottom:1px solid var(--line);background:#f8f8f6;grid-template-columns:45px minmax(0,1fr) 29px;align-items:center;gap:9px;padding:9px 10px;display:grid}.calendar-day>header>div{align-items:center;gap:6px;display:flex}.calendar-day>header span,.calendar-day>header p{color:#8d969b;font-family:var(--mono);letter-spacing:.6px;font-size:6px;font-weight:700}.calendar-day>header strong{font-family:var(--mono);font-size:15px}.calendar-day>header p{margin:0}.calendar-day-body{flex-direction:column;gap:6px;padding:8px;display:flex}.calendar-entry{border:1px solid #d9e1e9;border-left:3px solid var(--blue);cursor:pointer;background:#f7fafe;border-radius:5px;flex-direction:column;min-height:61px;padding:8px 9px;display:flex;position:relative}.calendar-entry:hover{border-color:#aebdcb}.calendar-entry.exam{border-color:#ead0d0;border-left-color:var(--red);cursor:default;background:#fff7f7}.calendar-entry.manual.category-class{border-left-color:var(--violet);background:#faf8fe}.calendar-entry.manual.category-unavailable{background:#f5f6f6;border-left-color:#68747c}.calendar-entry.manual.category-personal{border-left-color:var(--green);background:#f4faf8}.calendar-entry.override{box-shadow:inset 0 0 0 1px #8caeda}.calendar-entry.done{opacity:.5}.calendar-entry>span{color:#818b92;font-family:var(--mono);font-size:6px;font-weight:700}.calendar-entry>strong{text-overflow:ellipsis;white-space:nowrap;margin:4px 0 2px;font-size:9px;overflow:hidden}.calendar-entry>small{color:#7c868c;text-overflow:ellipsis;white-space:nowrap;font-size:7px;overflow:hidden}.calendar-entry>svg{color:#4f79a9;position:absolute;top:7px;right:7px}.free-window{color:#658176;cursor:pointer;min-height:29px;font-family:var(--mono);background:#f8fbf9;border:1px dashed #bdc9c4;border-radius:4px;justify-content:center;align-items:center;gap:4px;font-size:6px;font-weight:700;display:flex}.editor-backdrop{z-index:110;background:#0c1115b8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0;overflow:auto}.schedule-editor{background:#fff;border:1px solid #3a464f;border-radius:9px;width:min(720px,100%);max-height:calc(100vh - 48px);overflow:auto;box-shadow:0 24px 80px #0000003d}.schedule-editor>header{border-bottom:1px solid var(--line);background:var(--navy);color:#fff;justify-content:space-between;align-items:center;min-height:72px;padding:13px 18px;display:flex}.schedule-editor>header span{color:#7d8a93;font-family:var(--mono);letter-spacing:.8px;font-size:7px;font-weight:700}.schedule-editor>header h2{margin:4px 0 0;font-size:17px}.schedule-editor>header button{color:#99a4ab;cursor:pointer;background:0 0;border:1px solid #39454e;border-radius:5px;place-items:center;width:36px;height:36px;display:grid}.editor-notice{color:#2862a4;background:#f0f6fd;border-bottom:1px solid #c5d8ee;align-items:center;gap:10px;padding:10px 18px;display:flex}.editor-notice div{flex-direction:column;display:flex}.editor-notice strong{font-size:9px}.editor-notice span{color:#6884a2;margin-top:1px;font-size:8px}.category-selector{border-bottom:1px solid var(--line);background:#f8f8f6;grid-template-columns:repeat(4,1fr);gap:7px;padding:12px 18px;display:grid}.category-selector button{border:1px solid var(--line);cursor:pointer;text-align:left;background:#fff;border-radius:5px;grid-template-columns:12px 1fr;align-content:center;gap:2px 6px;min-height:57px;padding:8px;display:grid;position:relative}.category-selector button.active{border-color:#7ea7db;box-shadow:inset 0 0 0 1px #7ea7db}.category-selector .category-dot{grid-row:1/3;align-self:start;margin-top:4px}.category-selector strong{font-size:9px}.category-selector small{color:#8a9398;text-overflow:ellipsis;white-space:nowrap;font-size:7px;overflow:hidden}.editor-form{grid-template-columns:repeat(3,1fr);gap:13px;padding:18px;display:grid}.editor-form label{flex-direction:column;gap:6px;display:flex}.editor-form label.wide{grid-column:1/-1}.editor-form label>span,.duration-row>span{color:#7b858b;font-family:var(--mono);letter-spacing:.7px;font-size:7px;font-weight:700}.editor-form input,.editor-form select{width:100%;min-height:41px;color:var(--ink);background:#fff;border:1px solid #cbd2d5;border-radius:5px;padding:0 10px;font-size:11px}.editor-form select{appearance:auto}.duration-row{border-top:1px solid #eceeef;border-bottom:1px solid #eceeef;align-items:center;gap:6px;padding:10px 18px;display:flex}.duration-row>span{margin-right:7px}.duration-row button{border:1px solid var(--line);color:#68737a;cursor:pointer;min-height:29px;font-family:var(--mono);background:#fafafa;border-radius:4px;padding:0 9px;font-size:7px}.duration-row button.active{border-color:var(--blue);background:var(--blue-soft);color:#1c5eaf}.duration-row strong{color:#566168;font-family:var(--mono);margin-left:auto;font-size:8px}.conflict-box{background:#fff9ef;border:1px solid #e2bc82;border-radius:6px;margin:14px 18px 0;overflow:hidden}.conflict-box>div{color:#9a5b14;grid-template-columns:22px 1fr;align-items:center;gap:2px 7px;padding:9px 11px;display:grid}.conflict-box>div svg{grid-row:1/3}.conflict-box>div strong{font-size:9px}.conflict-box>div span{color:#95744e;font-size:7px}.conflict-box ul{border-top:1px solid #edd4aa;margin:0;padding:5px 10px 8px;list-style:none}.conflict-box li{color:#7d6c59;gap:8px;padding:4px 0;font-size:8px;display:flex}.conflict-box li span{color:#a2631b;min-width:46px;font-family:var(--mono);font-size:6px;font-weight:700}.conflict-box li.error span{color:var(--red)}.schedule-editor>footer{border-top:1px solid var(--line);background:#f8f8f6;justify-content:flex-end;align-items:center;gap:8px;min-height:68px;margin-top:16px;padding:12px 18px;display:flex}.editor-delete{color:#a83b3b;cursor:pointer;min-height:36px;font-family:var(--mono);background:0 0;border:0;align-items:center;gap:6px;margin-right:auto;font-size:8px;font-weight:700;display:inline-flex}.toast-message{z-index:130;background:var(--navy);color:#e7ecef;border:1px solid #3a4851;border-radius:6px;align-items:center;gap:9px;min-height:44px;padding:0 15px;font-size:9px;animation:.18s ease-out toast-in;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 12px 35px #10171c38}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media (width<=1360px){.sidebar{width:76px}.main-shell{margin-left:76px}.brand{justify-content:center;padding:0}.brand p,.sidebar nav button span,.save-state div,.student-card span{display:none}.sidebar nav button{justify-content:center;padding:0}.sidebar nav button.active:before{left:-12px}.save-state{justify-content:center;padding:0}.student-card{border:0;justify-content:center;padding:4px}.dashboard-grid{grid-template-columns:minmax(0,1.48fr) minmax(320px,.82fr)}.emergency-strip{grid-template-columns:1.1fr .8fr .9fr 1fr}}@media (width<=1120px){.dashboard-grid{grid-template-columns:1fr}.dashboard-aside{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.countdown-section{grid-column:1/-1}.countdown-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.countdown-card-body strong{font-size:28px}.emergency-strip{grid-template-columns:1.1fr .8fr 1fr}.completion-block{display:none}.protocol-block{border-right:0!important}.exam-days{grid-template-columns:1fr}.exam-day-card{grid-template-columns:230px 1fr;display:grid}.exam-day-card>header{min-height:100%}.campbell-grid{grid-template-columns:1fr}.campbell-card{grid-template-columns:260px 1fr;display:grid}.campbell-card .chapter-list{border-left:1px solid var(--line)}.planner-command-bar{grid-template-columns:repeat(4,1fr)}.planner-command-bar>.cap-control{border-top:1px solid var(--line);grid-column:1/-1;justify-content:center}.calendar-board{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=880px){.sidebar{display:none}.main-shell{margin-left:0;padding-bottom:68px}.bottom-nav{z-index:50;background:var(--navy);min-height:62px;padding-bottom:env(safe-area-inset-bottom);border-top:1px solid #2c363d;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{color:#738089;cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:62px;font-size:8px;display:flex}.bottom-nav button.active{color:#7eace9}.mobile-brand{font-family:var(--mono);background:0 0;border:0;font-size:18px;font-weight:750;display:block}.topbar{padding:0 18px}.date-readout,.sync-label,.refresh-time,.avatar-button{display:none}.emergency-strip{grid-template-columns:1.2fr 1fr;min-height:64px;padding:0 18px}.protocol-block{display:none}.phase-block{border-right:0!important}.page-content{padding:18px 18px 34px}.dashboard-aside{display:flex}.countdown-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.blueprint-grid,.settings-grid,.schedule-board{grid-template-columns:1fr}.posn-hero{flex-direction:column;align-items:flex-start}.focus-layout{grid-template-columns:260px minmax(0,1fr);gap:35px}.focus-ring{width:250px;height:250px}.focus-ring strong{font-size:40px}.planner-command-bar{grid-template-columns:repeat(2,1fr)}.planner-stat:nth-child(2){border-right:0}.quick-add-bar{flex-wrap:wrap}.view-switch{border-top:1px solid var(--line);border-left:0;justify-content:flex-end;width:100%;padding-top:8px;padding-left:0}.calendar-board{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.topbar{height:58px}.button.rebalance{min-height:32px;padding-inline:9px;font-size:7px}.emergency-strip{grid-template-columns:1fr auto;min-height:62px}.emergency-title{gap:9px}.emergency-title div>span{font-size:6.5px}.emergency-title strong{font-size:11px}.phase-block{padding-left:14px}.phase-block span{display:none}.phase-block strong{font-size:8px}.page-content{padding:13px 12px 30px}.dashboard-primary,.dashboard-aside,.page-stack{gap:12px}.next-card{min-height:0}.next-card-topline{padding:0 15px}.next-time span{display:none}.next-card-main{grid-template-columns:1fr auto;gap:10px;padding:19px 16px}.next-index{display:none}.next-copy h1{font-size:26px}.next-detail{font-size:10px}.next-metric{padding-left:10px}.next-card-actions{min-height:62px;padding:9px 15px}.next-card-actions .button.text,.keyboard-hint{display:none}.next-card-actions .button{flex:1;padding-inline:8px;font-size:7px}.timeline-panel{padding:17px 13px}.date-strip{display:flex;overflow-x:auto}.date-tab{border-bottom:0;min-width:66px}.timeline-block{grid-template-columns:44px 12px minmax(0,1fr);gap:6px}.block-actions{grid-column:3;margin-top:5px}.block-content{padding-left:10px}.block-heading{display:block}.block-score{display:none}.break-row{grid-template-columns:44px 12px minmax(0,1fr);gap:6px}.countdown-card{min-height:126px}.countdown-card-body strong{font-size:25px}.page-heading{flex-direction:column;gap:12px;min-height:0}.page-heading h1{font-size:23px}.cap-control{justify-content:center;align-self:stretch}.schedule-day-head{grid-template-columns:44px 1fr auto}.compact .timeline-block{grid-template-columns:42px 8px minmax(0,1fr)}.compact .block-actions{grid-column:3}.exam-day-card{display:block}.exam-day-card>header{min-height:auto}.exam-list article{grid-template-columns:42px 3px minmax(0,1fr)}.exam-duration{display:none}.blueprint-card>header{grid-template-columns:40px minmax(0,1fr)}.blueprint-count{display:none}.source-constraint{grid-template-columns:20px 1fr}.source-constraint span{grid-column:2}.posn-hero{padding:24px 20px}.posn-countdown{gap:8px}.posn-countdown strong{letter-spacing:-2px;font-size:33px}.campbell-card{display:block}.campbell-card .chapter-list{border-left:0}.architecture-flow{flex-wrap:wrap}.architecture-flow svg{display:none}.architecture-flow span{flex-basis:100%}.focus-overlay{justify-content:flex-start;padding-top:78px}.focus-overlay:before{inset:10px}.focus-brand{top:23px;left:22px}.focus-close{top:18px;right:18px}.focus-layout{text-align:center;grid-template-columns:1fr;justify-items:center;gap:22px;width:100%}.focus-ring{width:220px;height:220px}.focus-ring strong{font-size:35px}.focus-copy h1{font-size:28px}.focus-copy h2{font-size:14px}.focus-reasons{justify-content:center}.focus-controls{margin-top:26px}.focus-shortcuts{display:none}.topbar-add{min-width:34px;padding:0;font-size:0}.schedule-heading-actions{justify-content:stretch;align-self:stretch}.schedule-heading-actions .button{flex:1;padding-inline:7px;font-size:6.5px}.planner-command-bar{grid-template-columns:repeat(2,1fr)}.planner-stat{min-height:71px;padding:10px 12px}.planner-stat strong{font-size:19px}.quick-add-bar{gap:5px}.quick-add-bar>div:first-child{border-right:0;border-bottom:1px solid var(--line);width:100%;margin:0;padding:2px 3px 9px}.quick-add-bar>button{flex:calc(50% - 5px);justify-content:center}.manual-event-row{grid-template-columns:42px 3px minmax(0,1fr) auto;gap:7px;padding:10px 11px}.manual-duration{display:none}.manual-actions{grid-column:3/5;justify-content:flex-end}.calendar-board{grid-template-columns:1fr}.calendar-day{min-height:0}.editor-backdrop{align-items:flex-end;padding:0}.schedule-editor{border-bottom:0;border-left:0;border-right:0;border-radius:12px 12px 0 0;width:100%;max-height:92vh}.category-selector{grid-template-columns:repeat(2,1fr);padding:10px 12px}.editor-form{grid-template-columns:repeat(2,1fr);gap:10px;padding:14px 12px}.editor-form label:nth-of-type(5){grid-column:1/-1}.duration-row{padding-inline:12px;overflow-x:auto}.duration-row>span{display:none}.schedule-editor>footer{padding-inline:12px}.schedule-editor>footer .button{padding-inline:9px;font-size:7px}.toast-message{justify-content:center;bottom:76px;left:12px;right:12px}.ipad-install-steps{grid-template-columns:1fr}.ipad-install-steps li{min-height:43px}.cloud-login>div:first-of-type{grid-template-columns:1fr}.cloud-login>div:first-of-type .button{width:100%}}@media (pointer:coarse){.sidebar nav button,.icon-button,.date-tab,.bottom-nav button,.chapter-list label{min-height:44px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-contrast:more){:root{--line:#9ea7ad;--muted:#4f5960}.status-chip,.icon-button,.button{border-width:2px}}
