:root{--ink:#16181d;--ink-muted:#565c66;--surface:#fff;--surface-muted:#f4f5f7;--page-bg:#eef0f4;--border:#d8dbe1;--accent:#0b5fff;--accent-ink:#fff;--warning-bg:#fdecec;--warning-border:#e6a3a3;--warning-ink:#8a1f1f;--ok-bg:#e8f6ec;--ok-ink:#1f6b3a}*{box-sizing:border-box}body{color:var(--ink);background:var(--page-bg);margin:0;font-family:system-ui,sans-serif;line-height:1.6}a{color:var(--accent)}.site-header{background:var(--surface);border-bottom:1px solid var(--border)}.site-nav{gap:1.75rem;max-width:72rem;margin:0 auto;padding:1rem 1.5rem;display:flex}.site-nav a{color:var(--ink-muted);border-bottom:2px solid #0000;padding-block:.25rem;font-weight:600;text-decoration:none}.site-nav a:hover{color:var(--ink)}.site-nav a[aria-current=page]{color:var(--accent);border-bottom-color:var(--accent)}main{max-width:72rem;margin:0 auto;padding:2rem 1.5rem 4rem}h1{margin-bottom:.4rem}.lede{color:var(--ink-muted);max-width:42rem}.demo-notice{color:var(--ink-muted);border-left:3px solid var(--border);margin-block:1rem 2rem;padding-left:.75rem;font-size:.85rem}section.weekly-timetable,section.courses-section{margin-block:2rem}h2{margin-bottom:.75rem}.summary-stats{flex-wrap:wrap;gap:.75rem;margin-block:0 .75rem;display:flex}.stat{background:var(--surface-muted);border:1px solid var(--border);border-radius:2rem;align-items:center;gap:.35rem;padding:.4rem .9rem;font-size:.9rem;display:inline-flex}.stat-warning{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-ink);font-weight:600}.stat-ok{background:var(--ok-bg);color:var(--ok-ink);font-weight:600}.conflict-details{flex-wrap:wrap;gap:.5rem;margin:0 0 1.25rem;padding:0;list-style:none;display:flex}.conflict-details li{color:var(--warning-ink);background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:.4rem;padding:.3rem .6rem;font-size:.82rem}.timetable-empty{color:var(--ink-muted);background:var(--surface);border:1px dashed var(--border);border-radius:.6rem;padding:1rem}.timetable-grid-wrapper{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:.75rem;overflow-x:auto}.timetable-grid{grid-template-rows:auto repeat(20,minmax(1.2rem,auto));grid-template-columns:minmax(3.25rem,4rem) repeat(5,minmax(6.5rem,1fr));column-gap:.35rem;min-width:42rem;display:grid}.grid-corner{grid-area:1/1}.day-header{text-align:center;border-bottom:1px solid var(--border);grid-row:1;padding-block:.4rem;font-size:.85rem;font-weight:600}.hour-label{color:var(--ink-muted);text-align:right;border-top:1px solid var(--surface-muted);grid-column:1;padding-right:.4rem;font-size:.75rem}.class-block{color:var(--ink);border:1px solid #0000;border-radius:.4rem;margin-top:1px;padding:.4rem .55rem;font-size:.78rem;line-height:1.25;position:relative;overflow:hidden}.class-block-code{font-size:.85rem;font-weight:800;display:block}.class-block-meta{margin-top:.1rem;display:block}.class-block-label{font-weight:500}.class-block-time{opacity:.75;font-size:.72rem}.class-block-conflict{color:var(--warning-ink);white-space:nowrap;background:#ffffffb3;border-radius:.2rem;margin-top:.2rem;padding:0 .25rem;font-size:.65rem;font-weight:700;line-height:1.3;display:inline-block}.course-color-0{background:#dfeaff;border-color:#a9c4f0}.course-color-1{background:#ffe6cc;border-color:#eab887}.course-color-2{background:#dff5e1;border-color:#a5d9ac}.course-color-3{background:#fbe0ea;border-color:#e6a9c4}.course-color-4{background:#ebe1fb;border-color:#c5a9e6}.course-color-5{background:#dbf3f0;border-color:#9bd6cd}.class-block.has-conflict{border:2px dashed var(--warning-border);background-image:repeating-linear-gradient(45deg,#8a1f1f14,#8a1f1f14 6px,#0000 6px 12px)}.course-grid{grid-template-columns:1fr;gap:1.25rem;display:grid}@media (width>=641px){.course-grid{grid-template-columns:repeat(2,1fr)}}.course-card{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:1.25rem}.course-card h2{margin-block:0 .6rem;font-size:1.05rem}.current-selection{margin-block:0 .5rem;font-size:.92rem}.current-selection-label{font-weight:600}.current-selection-none{color:var(--ink-muted)}.conflict{color:var(--warning-ink);background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:.4rem;margin-block:.5rem;padding:.4rem .6rem;font-size:.88rem;font-weight:600}.option-form,.remove-form{margin:0}fieldset{border:1px solid var(--border);border-radius:.5rem;margin:.75rem 0 0;padding:.75rem 1rem}legend{padding-inline:.3rem;font-size:.9rem;font-weight:600}.option{align-items:baseline;gap:.5rem;margin-block:.5rem;font-size:.92rem;display:flex}.course-actions{gap:.6rem;margin-top:.9rem;display:flex}.btn{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:.4rem;padding:.45rem 1.1rem}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--border)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=640px){main{padding:1.5rem 1rem 3rem}.site-nav{padding:.85rem 1rem}}
