@font-face{font-family:Command;src:url('/assets/heading.otf') format('opentype');font-weight:700;font-display:swap}
:root{color-scheme:dark;--bg:#0b0b0f;--panel:#111116;--raised:#17171e;--line:#282831;--text:#eeeef2;--muted:#9999a8;--red:#f13c4e;--purple:#b396ed;--green:#a6d7b7;font:14px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,.button{border:1px solid #353540;color:var(--text);background:#18181f;border-radius:5px;padding:10px 14px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;font-size:13px;font-weight:600;transition:background .12s,border-color .12s}button:hover,.button:hover{background:#22222d;border-color:#777384}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--purple);outline-offset:3px}input,select,textarea{background:#101015;color:var(--text);border:1px solid #33333e;padding:10px 12px;border-radius:4px;min-width:0;width:100%}input::placeholder,textarea::placeholder{color:#757582}input[type=checkbox]{accent-color:var(--red);height:16px;width:16px;cursor:pointer}h1,h2,h3{font-family:Command,'Arial Narrow',sans-serif;font-weight:700;line-height:1.05}h1{font-size:44px;letter-spacing:.6px;margin:10px 0}h2{font-size:21px;letter-spacing:.7px;margin:0}h3{font-size:26px;letter-spacing:.5px}p{color:var(--muted)}small{color:var(--muted)}a{color:var(--purple)}[hidden]{display:none!important}.primary{background:var(--red);color:#fff;border-color:var(--red)}.primary:hover{background:#d62f42;border-color:#ff6877}.purple{color:var(--purple)}.muted{color:var(--muted);font-size:12px}.eyebrow,.nav-label,.badge,.edition,.breadcrumb,.time-label,.stats article>span,.table-footer,.prep-status,.tiny-red,footer{font:10px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:1.1px}.eyebrow{color:var(--purple)}
.sidebar{width:218px;background:#0e0e12;position:fixed;inset:0 auto 0 0;border-right:1px solid var(--line);padding:26px 15px;display:flex;flex-direction:column;z-index:3}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:#f3f3f5;padding:0 6px}.brand img{width:52px;height:52px;object-fit:contain}.brand span{font-family:Command,sans-serif;font-size:15px;line-height:1.1;letter-spacing:1px}.brand b{font-size:30px}.edition{border-bottom:1px solid var(--line);padding:20px 8px 22px;color:#777784;display:flex;justify-content:space-between}.edition span{color:var(--red)}.nav-label{color:#686877;margin:30px 12px 12px}.nav-item{width:100%;justify-content:flex-start;border:1px solid transparent;background:transparent;color:#a3a3b1;margin:3px 0;font-size:12px;padding:12px;position:relative}.nav-item>span{font-size:19px;line-height:1;width:20px;font-weight:400}.nav-item.active{color:#fff;background:#241317;border-color:#56232d}.nav-item.active:before{content:'';position:absolute;left:-16px;height:23px;width:3px;background:var(--red)}.nav-item small{margin-left:auto;background:#3b1b22;color:#fb6977;padding:1px 6px;border-radius:3px}.resource{font-size:12px;color:#9696a6;text-decoration:none;display:flex;justify-content:space-between;padding:10px 12px}.resource:hover{color:#fff}.sidebar-bottom{margin-top:auto;padding:20px 10px 0;border-top:1px solid var(--line)}.local-dot{font:10px ui-monospace,monospace;letter-spacing:1px}.local-dot:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-right:8px}.sidebar-bottom p{font-size:11px;margin:9px 0 24px}.sidebar-bottom small{font:9px ui-monospace,monospace;display:flex;justify-content:space-between;color:#666676}.shell{margin-left:218px}.topbar{height:76px;border-bottom:1px solid var(--line);padding:0 32px;display:flex;align-items:center;justify-content:space-between;gap:15px}.breadcrumb{color:#747485;white-space:nowrap}.breadcrumb span{margin:0 12px;color:#444453}.breadcrumb b{font-weight:400;color:#cccbd5}.top-right{display:flex;gap:24px;align-items:center}.save-state{font-size:11px;color:var(--green)}.save-state.dirty{color:var(--red)}.time-label{display:flex;flex-direction:column;color:#727282;font-size:9px}.time-label b{color:#d2d2db;font-size:13px;letter-spacing:.3px;font-weight:400}.term-button{font:10px ui-monospace,monospace;background:transparent;padding:9px 12px}.term-button b{font-size:12px;font-weight:400}main{padding:32px;max-width:1740px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.page-heading p{font-size:13px;margin:0}.page-actions{display:flex;gap:8px}.status-strip{margin:26px 0 0;border:1px solid #34303f;background:#17141e;display:flex;align-items:center;gap:10px;padding:12px 15px;font-size:11px;color:#a5a0b5;flex-wrap:wrap}.status-strip b{color:#dac9fa;font-weight:500}.status-mark{width:6px;height:6px;border-radius:50%;background:var(--purple)}.separator{color:#565060;margin:0 3px}.message{font-size:12px;min-height:24px;padding:6px 0;color:var(--green)}.message.error{color:#ff8d98}.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);margin:0 0 24px;background:#101014}.stats article{padding:19px 22px;border-right:1px solid var(--line)}.stats article:last-child{border-right:0}.stats article>span{color:#9696a6;font-size:9px}.stats strong{font-family:Command,sans-serif;display:block;font-size:41px;line-height:1;margin:13px 0 8px;font-weight:700}.stats small{font-size:10px;color:#757584}.work-grid{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:20px;align-items:start}.panel{border:1px solid var(--line);background:var(--panel);border-radius:6px;overflow:hidden}.panel-title{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:18px 20px;gap:10px}.badge{color:#868695;font-size:8px;background:#191920;border:1px solid #30303b;border-radius:3px;padding:4px 6px}.filters{display:flex;gap:10px;padding:16px 18px}.filters input{font-size:12px}.filters select{width:160px;font-size:11px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;white-space:nowrap}thead{background:#15151c}th{font:9px ui-monospace,monospace;color:#858594;letter-spacing:.5px;text-align:left;padding:11px 12px;border-block:1px solid var(--line)}td{padding:16px 12px;border-bottom:1px solid #22222a;font-size:12px}th:first-child,td:first-child{padding-left:20px}tbody tr:hover{background:#191920}tbody tr.is-selected{background:#16121a}td .code{font-family:Command,sans-serif;font-size:23px;letter-spacing:.6px;display:block}td .section{font-size:10px;color:#92929f}td .crns{font:11px ui-monospace,monospace;max-width:175px;white-space:normal;overflow-wrap:anywhere}td .review-tag{font-size:9px;color:var(--purple);margin-top:5px}.priority{font:11px ui-monospace,monospace;color:#8d8d9d}.outcome{display:inline-block;color:#a6a6b6;background:#22222b;border:1px solid #353541;border-radius:4px;font-size:9px;padding:4px 7px;text-transform:uppercase;letter-spacing:.5px}.outcome.registered{color:var(--green);background:#15241c;border-color:#304d3b}.outcome.uncertain,.outcome.rejected,.outcome.full{color:#ff9eaa;background:#301821;border-color:#62303c}.edit-button{font-size:11px;padding:5px 9px;background:transparent}.empty{text-align:center;padding:25px 20px 45px}.empty-reticle{position:relative;height:100px;display:flex;justify-content:center;align-items:center}.empty-reticle img{width:84px;height:84px;opacity:.65}.empty h3{margin:12px 0}.empty .eyebrow{font-size:9px;color:#79798c}.empty p{font-size:12px;line-height:1.8;margin-bottom:22px}.table-footer{display:flex;justify-content:space-between;padding:13px 18px;color:#737381;border-top:1px solid var(--line);font-size:9px;letter-spacing:0}.right-stack{display:grid;gap:16px}.prep-panel>p,.prep-panel>small{display:block;margin:16px 18px;color:#9696a7;font-size:12px;line-height:1.7}.prep-panel>small{font-size:10px}.prep-status{margin:18px 18px 8px;color:#8c8c9c;font-size:9px}.prep-status.ok{color:var(--green)}.prep-status.warn{color:var(--purple)}.prep-status.fail{color:#ff8a99}.prep-output{font:13px/1.8 ui-monospace,monospace;background:#09090d;border:1px dashed #383440;margin:0 18px 14px;padding:14px;min-height:72px;overflow-wrap:anywhere;color:#b9b8c6}.prep-panel .full{width:calc(100% - 36px);margin:0 18px 8px;display:flex;justify-content:space-between}.prep-panel .full:not(.primary){justify-content:center}.tiny-red{color:var(--red)}#prep-details{font-size:11px;padding:0 18px}#prep-details p{margin:0 0 10px;line-height:1.6;color:#b4a6cf}#prep-details .blocking{color:#ff9ca7}.next-panel{padding:20px}.next-panel h3{font-size:24px;line-height:1.1;margin:14px 0}.next-panel p{font-size:11px;line-height:1.8}.text-button{border:0;background:transparent!important;padding:8px 0;color:var(--purple);font-size:11px}.text-button:hover{color:#eee}.desk>p,.desk>.notice,.desk>.button{margin:20px}.timer-grid{display:grid;grid-template-columns:1fr 1fr;padding:6px 20px 20px;gap:20px}.timer-grid article{padding:18px;background:#0d0d12;border:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start}.timer{font-family:Command,sans-serif;font-size:64px;margin:10px 0;font-variant-numeric:tabular-nums}.timer-grid button{white-space:normal;font-size:11px}.notice{border-left:2px solid var(--purple);background:#191520;color:#b9b0ca;padding:16px;font-size:12px}.rules{padding:22px}.rules h2{font-size:19px}.rules ul{padding-left:16px}.rules li{font-size:12px;color:#a5a2b3;margin:16px 0}.rules b{color:#dddbe7;font-weight:500}.rules small{font-size:10px}.section-toolbar{display:flex;justify-content:space-between;align-items:center;margin:5px 0 20px}.section-toolbar p{font-size:12px}.override-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}.override-card{padding:22px}.override-card .panel-title{padding:0 0 15px}.override-card blockquote{font-size:14px;color:#d4cdda;margin:20px 0;overflow-wrap:anywhere}.override-card small{font-size:11px}.override-actions{display:flex;gap:8px;margin-top:20px}.panel-intro{margin:20px;font-size:12px}.history-entry{display:grid;grid-template-columns:170px 1fr;border-top:1px solid var(--line);padding:18px 20px;gap:20px}.history-entry time{font:11px ui-monospace,monospace;color:var(--purple)}.history-entry p{margin:0;font-size:12px;overflow-wrap:anywhere}footer{margin-top:32px;border-top:1px solid var(--line);padding-top:18px;display:flex;justify-content:space-between;color:#696979;letter-spacing:.5px;font-size:9px}footer b{color:var(--red);margin:0 7px}
dialog{border:1px solid #464051;border-radius:8px;background:#121218;color:var(--text);max-width:690px;width:calc(100% - 32px);max-height:90vh;padding:0;box-shadow:0 25px 100px #000b}dialog::backdrop{background:#050509c9;backdrop-filter:blur(3px)}dialog form{padding:26px}.dialog-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px}.dialog-heading h2{font-size:30px;margin-top:6px}.icon-button{font-size:24px;border:0;background:transparent;padding:0 7px;font-weight:400}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}label{font-size:11px;color:#b2aebf;display:flex;flex-direction:column;gap:7px}.wide{grid-column:1/-1}label small{font-size:10px;color:#777587}.check{flex-direction:row;align-items:center}.form-error{color:#ff97a5;font-size:12px;min-height:20px;margin:10px 0}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:18px}.dialog-actions .danger{margin-right:auto;color:#fa9aab;background:transparent;border-color:#5d303b}dialog p{font-size:12px}.loading{opacity:.65;pointer-events:none}#settings-dialog{max-width:450px}
@media(min-width:1600px){main{padding:38px 46px}.work-grid{grid-template-columns:minmax(0,1fr) 310px}.stats article{padding:22px 26px}}
@media(max-width:1200px){.sidebar{width:190px;padding-inline:10px}.brand img{width:42px;height:42px}.brand b{font-size:27px}.shell{margin-left:190px}.topbar{padding:0 22px}.top-right{gap:14px}.breadcrumb{font-size:9px}main{padding:25px 22px}.work-grid{grid-template-columns:minmax(0,1fr) 255px;gap:14px}.stats article{padding:16px}.page-actions{flex-wrap:wrap;justify-content:flex-end}.page-heading h1{font-size:38px}.stats small{font-size:9px}.table-scroll table{min-width:535px}}
@media(max-width:980px){.work-grid{grid-template-columns:1fr}.right-stack{grid-template-columns:1fr 1fr}.page-heading{align-items:flex-start}.page-actions button{padding:8px 10px}.topbar .breadcrumb{display:none}.topbar{justify-content:flex-end}.stats{grid-template-columns:repeat(2,1fr)}.stats article:nth-child(2){border-right:0}.stats article:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:700px){.sidebar{position:static;width:100%;padding:12px 16px;border-right:0;border-bottom:1px solid var(--line)}.brand img{width:42px;height:42px}.brand br{display:none}.brand span{font-size:16px}.brand b{font-size:23px;margin-left:6px}.edition,.nav-label,.resource,.sidebar-bottom{display:none}.sidebar nav{display:flex;gap:5px;overflow-x:auto;margin-top:10px}.nav-item{width:auto;font-size:10px;padding:8px;flex-shrink:0}.nav-item>span{font-size:15px;width:14px}.nav-item.active:before{display:none}.nav-item small{display:none}.shell{margin:0}.topbar{height:58px;padding:0 16px}.top-right{width:100%;justify-content:space-between;gap:10px}main{padding:22px 16px}.page-heading{display:block}.page-heading h1{font-size:37px}.page-actions{justify-content:flex-start;margin-top:20px}.status-strip{font-size:10px}.status-strip .separator{display:none}.stats article{padding:16px}.stats strong{font-size:34px}.stats article>span{font-size:8px}.right-stack,.override-list{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.timer-grid{grid-template-columns:1fr}.history-entry{grid-template-columns:1fr;gap:10px}footer{flex-direction:column;gap:10px}.section-toolbar{gap:10px}.section-toolbar button{font-size:11px}.filters{padding:12px;gap:8px}.filters select{width:130px}dialog form{padding:20px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.catalog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:22px 0}.catalog-toolbar p{font-size:12px;margin:8px 0}.catalog-toolbar>div:last-child{display:flex;gap:8px;flex-wrap:wrap}.catalog-toolbar>div:first-child{display:block}.builder-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px;margin-top:20px;align-items:start}.catalog-browser{max-height:900px;overflow:auto}.catalog-search{position:sticky;top:0;z-index:2;background:var(--panel);padding:16px;border-bottom:1px solid var(--line)}.catalog-search label{margin-top:10px}.catalog-course{border-bottom:1px solid var(--line)}.catalog-course-title{width:100%;border:0;background:transparent;white-space:normal;justify-content:space-between;align-items:start;text-align:left;padding:16px;gap:10px}.catalog-course-title>span:first-child{min-width:0}.catalog-course-title b{font-size:14px}.catalog-course-title small{display:block;font-size:11px;font-weight:400;margin-top:5px}.catalog-course-title .badge{white-space:nowrap;font-size:8px;padding:3px 5px}.component-list{padding:0 12px 15px}.component-list h3{font-family:inherit;font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--purple);margin:22px 4px 10px}.section-option{display:flex;flex-direction:column;align-items:stretch;text-align:left;width:100%;white-space:normal;margin:7px 0;font-weight:400;font-size:11px;padding:12px;gap:5px}.section-option.chosen{background:#2c1720;border-color:var(--red)}.section-option-head{display:flex;justify-content:space-between}.section-option-head b{font-size:15px}.section-option code{color:var(--purple);font-size:12px}.section-option small{font-size:10px;line-height:1.6}.schedule-summary{font:11px ui-monospace,monospace;color:var(--muted);padding:14px 18px;border-bottom:1px solid var(--line)}.timetable-scroll{overflow:auto;max-height:780px}.timetable-panel{min-width:0}#timetable{display:grid;min-width:600px;padding-right:6px}.tt-head{position:sticky;top:0;z-index:2;text-align:center;background:#1b1b23;border-right:1px solid var(--line);padding:12px 4px;font-size:11px}.tt-times,.tt-day{position:relative}.tt-times span{position:absolute;left:5px;color:var(--muted);font:9px ui-monospace,monospace}.tt-day{border-right:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 62px,#24242e 62px,#24242e 63px)}.tt-block{position:absolute;display:flex;flex-direction:column;align-items:start;justify-content:start;gap:3px;background:#282033;border:1px solid #675383;border-left:3px solid var(--purple);border-radius:4px;padding:7px 5px;overflow:hidden;white-space:normal;text-align:left;min-width:0;font-size:9px}.tt-block b{font-size:12px}.tt-block small{font-size:9px;color:#b9b0cb;line-height:1.3}.tt-block.tt-conflict{background:#3b1722;border-color:#a63e51;border-left-color:var(--red)}.schedule-issues{padding:8px 18px;font-size:11px;border-top:1px solid var(--line)}.schedule-issues p{margin:9px 0}.solver-result{padding:22px;margin-top:20px}.solver-result small{display:block;margin-top:15px}.rules-table{min-width:850px;width:100%;table-layout:fixed}.rules-table th:first-child{width:100px}.rules-table th:last-child{width:140px}.rules-table td{font-size:11px;white-space:normal;vertical-align:top;overflow-wrap:anywhere}.rules-table th{font-size:10px}.sidebar{overflow-y:auto}.sidebar-bottom{padding-top:15px}.nav-label{margin-top:20px}
@media(max-width:1150px){.builder-grid{grid-template-columns:270px minmax(0,1fr)}.catalog-toolbar{align-items:flex-start;flex-direction:column}.catalog-toolbar>div:last-child{width:100%}}
@media(max-width:850px){.builder-grid{grid-template-columns:1fr}.catalog-browser{max-height:440px}.catalog-toolbar button{font-size:11px}.timetable-scroll{max-height:650px}}
/* v0.4: functional, compact interface. */
:root{--bg:#070709;--panel:#0e0e12;--raised:#151519;--line:#292930;--red:#ec203a;--purple:#ad91db}.primary,button,input,select,textarea,.panel{border-radius:2px}h1{font-size:38px;letter-spacing:1.5px}.page-heading{min-height:45px}.status-strip{margin-top:14px;font:10px ui-monospace,monospace;letter-spacing:.7px;background:#141015;border-color:#42212a}.sidebar{border-right-color:#46202a}.brand img{width:44px;height:44px}.nav-item.active{background:#291017;border-color:#642132}.catalog-toolbar{margin-top:16px}.catalog-toolbar label{font-size:10px}.catalog-course-title b{letter-spacing:.8px}.section-option.chosen{background:#2a0e17;border-color:#e82741}.tt-block{border-radius:2px}.dialog-content{padding:24px}.dialog-content li{font-size:12px;line-height:1.6;margin:12px 0;color:var(--muted)}.change-card{padding:18px 22px;border-top:1px solid var(--line)}.change-card h3{font:14px ui-monospace,monospace;margin:0 0 10px}.change-card p{font-size:12px}.change-card pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;color:var(--muted)}.prep-panel{align-self:start}.resource{white-space:normal;text-align:left}.catalog-toolbar>div:last-child{align-items:center}.status-strip span:before{content:'·';padding-right:10px;color:var(--red)}
.save-fallback{border:0;background:transparent;font-size:10px;color:var(--purple);padding:3px 5px;margin:0 0 10px}.mock-main{max-width:1250px;padding:50px 25px}.mock-fields{display:flex;gap:8px;overflow-x:auto;padding:20px 0}.mock-fields label{min-width:72px;flex:0 0 72px}.mock-main form>label{max-width:320px;margin:20px 0}.mock-main #mock-status{margin:20px 0;color:var(--purple)}
/* v0.5: three views, a shared teaching-time axis, and public seat observations. */
.sidebar{width:190px;padding:25px 12px}.shell{margin-left:190px}.sidebar nav{margin-top:32px}.brand{gap:9px;padding:0}.brand img{width:43px;height:43px;flex-shrink:0}.brand span{font-size:13px;letter-spacing:.8px}.brand b{font-size:29px}.sidebar-bottom{border:0;padding:10px 0}.sidebar-bottom>button{width:100%}.nav-item{font-size:13px}.topbar{height:65px}.top-right .time-label b{font-size:16px;font-variant-numeric:tabular-nums}.message:empty{display:none}.page-heading{margin-bottom:18px}.catalog-toolbar{margin:10px 0 16px}.catalog-toolbar>p{margin:0;font-size:11px;color:var(--muted)}.builder-grid{grid-template-columns:280px minmax(0,1fr);margin-top:12px}.timetable-scroll{max-height:calc(100vh - 285px);min-height:380px}.catalog-browser{max-height:calc(100vh - 225px)}.panel-title{padding:15px}.panel-title h2{font-size:19px}.timetable-panel .panel-title{display:none}.schedule-summary{font-size:10px;padding:12px 15px}.tt-day{background:#09090d}.tt-cell{position:absolute;left:0;right:0;background:#111116;border-top:1px solid #303039;border-bottom:1px solid #23232c;pointer-events:none}.tt-times{background:#0e0e12}.tt-times span{left:5px;padding-top:5px;font-size:10px;color:#d3cfdd}.tt-times small{display:block;margin-top:43px;font-size:8px;color:#797383}.tt-block{padding:5px 7px;gap:2px;font-size:10px;z-index:1;line-height:1.2}.tt-block b{font-size:12px}.tt-block small{font-size:9px;line-height:1.2}.schedule-issues:empty{display:none}.settings-tools{padding:0 26px 26px;display:grid;gap:20px}.settings-tools>div{display:flex;flex-wrap:wrap;gap:8px}.settings-tools a{font-size:11px}.advanced-fields{padding-top:16px}summary{cursor:pointer;font-size:12px;color:var(--purple)}#prep-details details{margin-bottom:16px}#prep-details details p{margin:10px 0}.seat-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:20px 0}.seat-toolbar>div:first-child{display:flex;align-items:center;gap:15px}.seat-actions{display:flex;gap:8px;flex-wrap:wrap}.monitor-state{font-size:14px;white-space:nowrap}.monitor-state:before{content:'';display:inline-block;width:7px;height:7px;background:#747080;border-radius:50%;margin-right:8px}.monitor-state.on:before{background:var(--green)}.watch-config{display:flex;align-items:end;gap:12px;padding:18px;margin-bottom:20px}.watch-config label:first-child{flex:1}.watch-config label{min-width:130px}.seat-number{display:block;font:24px ui-monospace,monospace}.seat-number.available{color:var(--green)}.seats-table td small,.seat-source{display:block;margin-top:4px;font-size:11px}.seats-table td{white-space:normal}.seat-error{color:#ef919b;max-width:320px}.monitor-help{font-size:11px;line-height:1.7;max-width:850px;margin:18px 0 24px}.seat-event{display:flex;gap:25px;border-bottom:1px solid var(--line);padding:12px 0;font-size:12px}.seat-event time{color:var(--muted);white-space:nowrap}.seat-log{margin:20px 0}.seat-source{font-family:ui-monospace,monospace;text-decoration:none}.seat-actions [aria-pressed=true]{border-color:var(--purple);color:#d9c6fa}#monitor-message{margin-bottom:12px}.form-grid details{padding:10px 0}.resource{justify-content:center}#save-state{font-size:11px;color:var(--muted)}#save-state.dirty{color:var(--red)}
@media(max-width:1100px){.builder-grid{grid-template-columns:240px minmax(0,1fr)}.watch-config{flex-wrap:wrap}.watch-config label:first-child{flex-basis:65%}.seat-toolbar>div:first-child{flex-wrap:wrap}.catalog-toolbar{flex-direction:row;align-items:center}}
@media(max-width:850px){.builder-grid{grid-template-columns:1fr}.catalog-browser{max-height:360px}.timetable-scroll{max-height:650px}.watch-config label:first-child{flex-basis:100%}}
@media(max-width:700px){.sidebar{position:static;width:100%;padding:15px}.shell{margin:0}.sidebar nav{margin-top:16px}.brand span{font-size:15px}.brand b{font-size:26px}.sidebar-bottom{display:flex;margin-top:12px;padding:0;gap:8px}.sidebar-bottom>button{width:auto}.sidebar-bottom .resource{display:flex}.sidebar nav .nav-item{font-size:12px}.page-actions{margin-top:8px}.tt-block{padding-inline:3px}.seat-event{gap:10px}.seat-toolbar>div{width:100%}}
/* v0.6: plan-aware observations and direct handoff. */
main{padding-top:20px}.page-heading{margin-bottom:10px}h1{font-size:32px}.catalog-toolbar{margin-top:0}.catalog-search input{font-size:13px}.section-option{font-size:12px}.section-option small{font-size:11px}.tt-block b{font-size:13px}.tt-block small{font-size:10px}.builder-grid{margin-top:8px}.watch-options{display:grid;gap:5px;min-width:150px}.watch-config{flex-wrap:wrap}.watch-config label:first-child{min-width:240px}.combination-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:12px;margin-bottom:16px}.combination{border:1px solid var(--line);padding:15px;background:var(--panel)}.combination-state{display:block;font-size:13px;margin:5px 0 12px;color:var(--muted)}.combination-state.available{color:var(--green)}.combination-state.full{color:#ef919b}.component-chip{display:inline-block;padding:4px 6px;margin:0 6px 5px 0;border:1px solid var(--line);font-size:11px}.component-chip.available,.component-chip.registered{border-color:#315240}.combination>small{display:block;margin-top:8px;font-size:10px;color:#8c8698}.opportunity{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:13px 16px;margin-bottom:12px;background:#18121f;border-left:2px solid var(--purple);font-size:13px}.review-choice{margin-left:auto;padding:5px 8px;font-size:11px}.seat-event{align-items:center;flex-wrap:wrap}.seats-table summary{font-size:10px;color:var(--muted)}#phone-token{margin-bottom:12px}.phone-options{display:grid;gap:12px;margin:22px 0}#phone-command{display:block;user-select:all;background:#09090d;padding:14px;margin:12px 0;font-size:15px}#phone-status{color:var(--purple)}#choice-summary code{overflow-wrap:anywhere}#monitor-cycle{font-size:11px}

#crn-import-dialog{width:min(860px,94vw)}#crn-import-text{width:100%;font-family:monospace}#crn-import-result{margin:16px 0}#crn-import-result td{white-space:normal;font-size:13px;padding:12px}#crn-import-result details{margin:12px 0}

/* Course colors share one identity across lecture and companion sections. */
.tt-block{background:var(--course-bg,#30233e);border-color:var(--course-accent,#ba96e3);border-left-color:var(--course-accent,#ba96e3);color:#f4f5f8}
.tt-block small{color:#e0e2e8}
.tt-block:hover{filter:brightness(1.15);background:var(--course-bg,#30233e)}
.tt-block:focus-visible{outline:2px solid #fff;outline-offset:1px;z-index:1}
.tt-block.tt-conflict,.tt-block.tt-conflict:hover{background:#451c26;border-color:#ec5266;border-left-color:#ff3855;color:#fff}
.tt-block-title{display:flex;align-items:center;gap:5px;width:100%;min-width:0;line-height:1.15}
.tt-block-title>span{min-width:0;overflow-wrap:anywhere}
.tt-warning{display:block;flex:0 0 16px;width:16px;height:16px}

/* Fit the day using one shared time-to-pixel scale. */
.timetable-size{display:flex;align-items:center;gap:8px;font-size:11px;margin-left:auto;white-space:nowrap}
.timetable-size select{width:auto;padding:7px 9px}
.timetable-scroll{min-height:0}
.tt-times span{height:var(--hour-height);box-sizing:border-box}
.tt-times small{position:absolute;top:calc(var(--lesson-height) - 10px);margin:0;font-size:8px}
.tt-compact .tt-block{padding:3px 5px;gap:1px}

.tt-compact .tt-block small{white-space:nowrap}
.tt-compact .tt-block small br{display:none}
.tt-compact .tt-block small{font-size:8px}
.tt-compact .tt-block b{font-size:11px;white-space:nowrap}
.tt-compact .tt-block-title>span{overflow:hidden;text-overflow:ellipsis}


.tt-time,.tt-room{display:block}

/* Registration-day context and illustrated extension guide. */
a.nav-item{display:block;text-decoration:none;box-sizing:border-box}
.registration-profile{display:flex;align-items:end;gap:16px;flex-wrap:wrap;border-block:1px solid var(--line);padding:12px 0;margin-bottom:10px}
.registration-profile label{display:grid;gap:5px;font-size:11px;color:var(--muted);min-width:150px}
.registration-profile select{padding:7px 10px;min-height:35px;width:100%}
.registration-profile>small{margin-left:auto;align-self:center;font-size:10px;color:var(--muted)}
.registration-selection{display:flex;flex-wrap:wrap;gap:6px}
.registration-course{display:flex;align-items:center;gap:9px;padding:6px 9px;text-decoration:none;color:var(--text);border:1px solid var(--line);background:var(--panel);font-size:11px}
.registration-course:hover{border-color:#8b849d}.registration-course:focus-visible{outline:2px solid #fff}
.registration-badge{display:inline-block;width:fit-content;font:10px/1.3 ui-monospace,monospace;color:#d3dce8;white-space:normal}
.registration-badge.restricted{color:#f1d682}
.registration-note{font-size:10px;color:var(--muted);margin:8px 0 10px;line-height:1.5}
.catalog-course-title .registration-badge{margin-top:7px;color:#9bcbbd}
.tt-block>.registration-badge{font-size:8px;line-height:1.15;color:#fff;white-space:nowrap}
.tt-compact .tt-block>.registration-badge{display:block;font-size:8px}
.tt-compact .tt-block .tt-time{font-size:8px}
.extension-intro{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 0 30px}
.guide-kicker{font:11px ui-monospace,monospace;letter-spacing:1.5px;color:#b2a7c9}
.extension-intro h2{font-size:32px;margin:12px 0 10px}.extension-intro p{color:var(--muted);font-size:14px;margin:0;line-height:1.6}
.extension-intro>a{flex-shrink:0;text-decoration:none}
.guide-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.guide-card{border:1px solid var(--line);background:var(--panel);min-width:0}
.guide-step-heading{padding:20px;display:flex;gap:14px;align-items:center}
.guide-step-heading h2{font-size:20px;margin:0}.guide-number{color:#f74762;font:18px ui-monospace,monospace}
.guide-card>img{display:block;width:100%;height:auto;border-block:1px solid var(--line)}
.guide-copy{padding:20px}.guide-copy ol{padding-left:19px;margin:0}.guide-copy li{padding-left:3px;margin-bottom:14px;font-size:13px;line-height:1.7;color:#cdcbd6}
.guide-copy p{font-size:12px;color:var(--muted);line-height:1.6}.guide-copy code,.guide-help code{font-size:12px;overflow-wrap:anywhere;color:#c8b7e9}
.guide-copy button{font-size:11px}.guide-status{display:flex;gap:12px;padding:18px 20px;margin-top:20px;background:#211d14;border:1px solid #51452c}
.guide-status p{font-size:12px;line-height:1.6;margin:0;color:#dbd3be}.guide-status-dot{width:8px;height:8px;border-radius:50%;background:#f1d682;flex-shrink:0;margin-top:6px}
.guide-help{margin-top:24px;border-top:1px solid var(--line)}.guide-help details{padding:16px 4px;border-bottom:1px solid var(--line)}.guide-help summary{font-size:13px;color:#e2dfe9}.guide-help p{font-size:13px;line-height:1.7;max-width:850px;color:var(--muted)}
.guide-footnote{color:var(--muted);font-size:10px;padding:14px 0}
#extension-guide-status:empty{display:none}
@media(max-width:1250px){.guide-steps{grid-template-columns:1fr}.guide-card{display:grid;grid-template-columns:minmax(260px,1fr) 1fr}.guide-step-heading{grid-column:1/-1}.guide-card>img{align-self:center;border-bottom:0}.extension-intro{align-items:start}.extension-intro h2{font-size:28px}}
@media(max-width:700px){.guide-card{display:block}.extension-intro{flex-direction:column}.registration-profile>small{margin-left:0;width:100%}.registration-profile label{flex:1}.sidebar nav{flex-wrap:wrap}.guide-copy{padding:18px}}


.brand span{display:grid;gap:3px}.brand b{font-size:32px;letter-spacing:2px}.brand small{font:7px ui-monospace,monospace;letter-spacing:.8px;color:#a7a0b5}.brand img{width:42px;height:42px}
#boot-screen{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;background:#09090e}#boot-screen[hidden]{display:none}#boot-screen>b{font:700 24px Arial,sans-serif;letter-spacing:5px}#boot-screen>span{font-size:12px;color:#aaa3b9}#boot-dismiss{font-size:10px;margin-top:20px;background:transparent;color:#aaa3b9}
body:has(#view-home:not([hidden])) .page-heading{display:none}
.welcome-hero{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:70px 0 55px}.welcome-hero h2{font-size:clamp(38px,5vw,76px);line-height:1.04;margin:20px 0 24px;letter-spacing:-1px}.welcome-hero em{font-style:normal;color:#ef3654}.welcome-hero p{font-size:16px;line-height:1.7;max-width:570px;color:#aaa4b8}.welcome-hero>img{width:24%;height:auto;max-width:260px}.welcome-actions{display:flex;gap:12px;margin:26px 0 16px}.welcome-hero small{font-size:11px;color:#9b94a7}.welcome-features{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--line)}.welcome-features article{padding:28px 25px;border-right:1px solid var(--line)}.welcome-features article:first-child{padding-left:0}.welcome-features article:last-child{border-right:0}.welcome-features span{font:10px monospace;color:#d494a0;letter-spacing:1.5px}.welcome-features h3{font-size:22px;margin:13px 0}.welcome-features p,.welcome-bottom p{font-size:13px;line-height:1.7;color:#a9a2b5}.welcome-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0}.welcome-bottom a{font-size:12px;white-space:nowrap}.aimbot-guide{padding:25px 0;border-bottom:1px solid var(--line)}.aimbot-guide h2{font-size:25px;margin:14px 0}.aimbot-guide p{font-size:13px;line-height:1.7;max-width:850px;color:#b8b1c3}
@media(max-width:700px){.welcome-hero{padding:30px 0}.welcome-hero>img{display:none}.welcome-features{grid-template-columns:1fr}.welcome-features article,.welcome-features article:first-child{padding:20px 0;border-right:0;border-bottom:1px solid var(--line)}.welcome-bottom{display:block}.welcome-actions{flex-wrap:wrap}}

/* Preserve the established Registration Sniper identity. */
.brand span{display:block;font-size:13px;letter-spacing:.8px}.brand b{display:inline;font-size:29px;letter-spacing:.8px}.brand img{width:43px;height:43px}#boot-screen>b{font-size:19px;letter-spacing:2px;text-align:center}.welcome-hero>img{opacity:.9}

.welcome-credit{padding:12px 0 24px;text-align:center;font-size:12px;letter-spacing:.04em;color:var(--muted)}

/* Timetable view controls restored; no scrolling inside individual meetings. */
.tt-block{text-decoration:none;overflow:hidden}
.tt-compact .tt-block>span{display:none}
.tt-compact .tt-times small{display:none}
.tt-compact .tt-room{display:none}
.tt-tight>small,.tt-tight>span:not(.registration-badge){display:none}
.tt-tiny>.registration-badge{display:none!important}
.section-link{display:block;padding:5px 8px 12px;font-size:12px;color:var(--purple)}
.notifications-label{font-size:12px;font-weight:600}.seat-actions{flex-wrap:wrap}.watch-config>p{flex:1;font-size:13px}
.prep-panel>.check{margin:16px 18px}.table-scroll table{min-width:400px}

/* Store installation guide: equal cards, compact copy, one-column mobile layout. */
.extension-simple{max-width:1180px}
.extension-simple .extension-intro{padding:12px 0 24px;align-items:center}
.extension-simple .guide-steps{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
.extension-simple .guide-card{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto 1fr}
.extension-simple .guide-step-heading{grid-column:auto;padding:16px;min-height:58px;box-sizing:border-box}
.extension-simple .guide-card>img{width:100%;height:auto;aspect-ratio:2/1;object-fit:contain;align-self:start;border-block:1px solid var(--line)}
.extension-simple .guide-copy{padding:16px}.extension-simple .guide-copy p{margin:0;font-size:13px;line-height:1.6}
.extension-simple .extension-note{font-size:12px;line-height:1.6;color:var(--muted);margin:18px 0}
.extension-simple .guide-help{margin-top:12px}
@media(max-width:850px){.extension-simple .guide-steps{grid-template-columns:1fr}.extension-simple .guide-card{grid-template-columns:180px minmax(0,1fr);grid-template-rows:auto 1fr}.extension-simple .guide-step-heading{grid-column:1/-1}.extension-simple .guide-card>img{border:0}.extension-simple .extension-intro{align-items:flex-start;flex-wrap:wrap}}
@media(max-width:480px){.extension-simple .guide-card{grid-template-columns:1fr}.extension-simple .guide-card>img{display:none}}

/* CRNs is a compact list and one page action. */
.crn-panel{max-width:1000px}.crn-table{width:100%}.crn-table td{padding:12px 18px;font-size:14px}.crn-table .crns{font-size:14px}.settings-overlap{margin:16px 24px}

.extension-instructions{padding-left:20px;margin:24px 0;line-height:2}.extension-simple{max-width:760px}
