:root{--bg:#eef1f8;--card-bg:#fff;--sidebar-bg:#14204a;--sidebar-fg:#b9c2e0;--sidebar-fg-active:#fff;--primary:#3457d5;--primary-dark:#24399e;--success:#16a34a;--success-bg:#e7f6ec;--warning:#b45309;--warning-bg:#fef3e2;--danger:#b3261e;--danger-bg:#fdecea;--text:#1b2138;--muted:#626b8a;--border:#dde2f0;--star:#eab308;--star-track:#d8dbe0;--radius:.9rem;--sidebar-width:15rem}*{box-sizing:border-box}body{color:var(--text);background:var(--bg);margin:0;font-family:system-ui,sans-serif;line-height:1.6}main{max-width:60rem;margin:0 auto;margin-left:var(--sidebar-width);padding:2rem 2.5rem 4rem}main h1{margin-bottom:.25rem}main h2{color:var(--text);margin-top:2rem;font-size:1.15rem}a{color:var(--primary)}button{font:inherit;color:#fff;background:var(--primary);cursor:pointer;border:none;border-radius:2rem;padding:.45rem 1.1rem;font-weight:600}button:hover{background:var(--primary-dark)}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}nav[aria-label=site]{width:var(--sidebar-width);background:var(--sidebar-bg);flex-direction:column;gap:.15rem;padding:1.25rem .75rem;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.nav-brand{color:var(--sidebar-fg-active);letter-spacing:.02em;padding:.5rem .75rem 1.25rem;font-size:.95rem;font-weight:700}nav[aria-label=site] a{color:var(--sidebar-fg);border-radius:.6rem;padding:.6rem .9rem;font-size:.95rem;text-decoration:none}nav[aria-label=site] a:hover{color:var(--sidebar-fg-active);background:#ffffff0f}nav[aria-label=site] a[aria-current=page]{background:var(--primary);color:#fff;font-weight:600}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);margin-block:1rem;padding:1.1rem 1.25rem;box-shadow:0 1px 2px #14204a0a}.summary{padding:.9rem 1.25rem}.current-term-form{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.current-term-form select{font:inherit;border:1px solid var(--border);border-radius:.5rem;padding:.4rem .6rem}.banner{border-radius:var(--radius);margin-block:1rem;padding:.75rem 1rem}.banner-stack{flex-direction:column;gap:.4rem;margin-block:1rem;display:flex}.banner-stack .banner{margin-block:0}.term-tabs{flex-wrap:wrap;gap:.5rem;margin-block:1rem;display:flex}.term-tab{border:1px solid var(--border);background:var(--card-bg);color:var(--text);border-radius:2rem;align-items:center;gap:.5rem;padding:.5rem .9rem;font-size:.9rem;font-weight:600;text-decoration:none;display:flex}.term-tab:hover{border-color:var(--primary)}.term-tab.active{background:var(--primary);border-color:var(--primary);color:#fff}.term-tab.active .badge{color:#fff;background:#fff3}.slot-badge{width:1.8rem;height:1.8rem;color:var(--muted);background:#eef1f5;border-radius:50%;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:inline-flex}.slot.conflict .slot-badge{background:var(--danger-bg);color:var(--danger)}.banner-warning{background:var(--warning-bg);color:var(--warning);border:1px solid #f6d9a8}.banner-success{background:var(--success-bg);color:var(--success);border:1px solid #b7e4c7}.stat-cards{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:1rem;display:grid}.stat-card{flex-direction:column;gap:.25rem;display:flex}.stat-card .stat-value{color:var(--primary);font-size:1.7rem;font-weight:700}.stat-card .stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.8rem}.progress-ring{--pct:0;background:conic-gradient(var(--primary) calc(var(--pct) * 1%), var(--border) 0);border-radius:50%;flex-shrink:0;place-items:center;width:4.5rem;height:4.5rem;display:grid}.progress-ring:before{content:"";background:var(--card-bg);border-radius:50%;width:3.3rem;height:3.3rem}.progress-ring-wrap{align-items:center;gap:1rem;display:flex}.bar-track{background:var(--border);border-radius:1rem;height:.5rem;margin-top:.35rem;overflow:hidden}.bar-fill{background:var(--primary);border-radius:1rem;height:100%}.progress-item.done .bar-fill{background:var(--success)}.progress-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.progress-list.card{padding:.9rem 1.1rem}.progress-item{background:#f4f6fb;border-radius:.6rem;padding:.55rem .8rem}.progress-item.done{background:var(--success-bg);color:var(--success)}.progress-item.pending{background:var(--danger-bg);color:var(--danger)}.progress-item.locked{background:var(--warning-bg);color:var(--warning)}.term-row{grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:1rem;display:grid}.term-card{border-top:4px solid var(--border);margin-block:0}.term-card h3{margin:0 0 .25rem}.term-card-label{color:var(--muted);font-size:.85em;font-weight:400}.term-card.status-done{border-top-color:var(--success)}.term-card.status-current{border-top-color:var(--primary)}.term-card.status-future{border-top-color:var(--border)}.badge{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:#eef1f5;border-radius:1rem;margin:.25rem 0 .5rem;padding:.2rem .65rem;font-size:.72rem;font-weight:700;display:inline-block}.badge.status-done{background:var(--success-bg);color:var(--success)}.badge.status-current{color:var(--primary);background:#e3e9fd}.badge.status-future{color:var(--muted);background:#eef1f5}.badge.locked{background:var(--warning-bg);color:var(--warning)}.term-slot-list{color:var(--muted);margin:0 0 .5rem;padding:0;font-size:.9rem;list-style:none}.select-layout{grid-template-columns:minmax(0,2fr) minmax(12rem,1fr);align-items:start;gap:1.5rem;display:grid}.select-layout .card{margin-block:0}.requirement-panel h2{margin-top:0}.plan-grid{border-collapse:collapse;width:100%}.plan-grid th,.plan-grid td{border-bottom:1px solid var(--border);vertical-align:top;text-align:left;padding:.65rem .5rem}.slot-grid{table-layout:fixed}.slot-grid th[scope=row]{width:3rem}.slot-grid td{overflow:hidden}.plan-grid tr:last-child th,.plan-grid tr:last-child td{border-bottom:none}.plan-grid th[scope=col]{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:700}.plan-grid tbody tr:hover{background:#f7f8fd}.plan-grid select{width:100%;min-width:0;font:inherit;border:1px solid var(--border);border-radius:.5rem;padding:.4rem .6rem}.btn-save-all{margin-top:.75rem;padding:.5rem 1.1rem;font-size:.9rem}.slot-detail{color:var(--muted);margin:.4rem 0 0;font-size:.85rem}.star-rating{letter-spacing:.1em;color:var(--star-track);display:inline-block;position:relative}.star-rating:before{content:"★★★★★";width:var(--pct);white-space:nowrap;color:var(--star);position:absolute;inset:0;overflow:hidden}.rating-value{color:var(--star);margin-left:.3em;font-weight:600}.slot.conflict{background:var(--danger-bg)}.slot.conflict .slot-detail strong{color:var(--danger)}@media (width<=40rem){:root{--sidebar-width:0}nav[aria-label=site]{flex-flow:wrap;align-items:center;width:auto;position:static}.nav-brand{padding:.5rem .75rem}main{margin-left:0;padding:1.25rem 1.25rem 3rem}.select-layout{grid-template-columns:1fr}}
