:root{--bg:#fff;--ink:#1a1a1a;--muted:#5a5a5a;--border:#d8d8d8;--accent:#0b5fff;--danger:#b3261e;--surface:#f6f7f9;--course-0:#0b5fff;--course-1:#b3261e;--course-2:#0f7b3d;--course-3:#8a3ea0}*{box-sizing:border-box}body{color:var(--ink);background:var(--bg);margin:0;padding:1.5rem;font-family:system-ui,sans-serif;line-height:1.5}main{max-width:64rem;margin:0 auto}h1{font-size:1.6rem}a{color:var(--accent)}nav[aria-label=site]{border-block-end:1px solid var(--border);flex-wrap:wrap;gap:1rem;margin-block-end:1.5rem;padding-block-end:.75rem;display:flex}nav[aria-label=site] a{font-weight:600;text-decoration:none}nav[aria-label=site] a:hover{text-decoration:underline}.data-notice{background:var(--surface);border:1px solid var(--border);color:var(--muted);border-radius:.4rem;padding:.75rem 1rem;font-size:.9rem}fieldset{border:1px solid var(--border);border-radius:.5rem;margin:1.25rem 0;padding:1rem}legend{padding-inline:.4rem;font-weight:600}.course-list,.preference-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.course-list label,.preference-list label{align-items:baseline;gap:.5rem;display:flex}.commitment-list{flex-direction:column;gap:.4rem;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.commitment-list li,.add-commitment{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}input,select,button{font:inherit}input,select{border:1px solid var(--border);border-radius:.3rem;padding:.35rem .5rem}button{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:.3rem;padding:.4rem .9rem}button.secondary{color:var(--accent);background:#fff}button.danger{border-color:var(--danger);color:var(--danger);background:#fff}button:disabled{opacity:.5;cursor:not-allowed}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.status{margin:1rem 0;font-weight:600}.status[data-tone=error]{color:var(--danger)}.repair-candidates{flex-direction:column;gap:.4rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}#clash-notice:not(:empty){background:var(--surface);border:1px solid var(--danger);border-radius:.5rem;margin:1rem 0;padding:1rem}#clash-notice h2{color:var(--danger);margin-top:0}.hard-clashes{flex-direction:column;gap:.75rem;margin:.75rem 0;padding:0;list-style:none;display:flex}.hard-clashes li{border:1px solid var(--border);background:#fff;border-radius:.4rem;padding:.6rem .8rem}.hard-clashes p{margin:.2rem 0}.clash-actions{flex-wrap:wrap;gap:.5rem;display:flex}.results{gap:1.25rem;margin-top:1.5rem;display:grid}@media (width>=60rem){.results{grid-template-columns:repeat(auto-fit,minmax(18rem,1fr))}}.plan-card{border:1px solid var(--border);opacity:0;border-radius:.6rem;padding:1rem;animation:.2s ease-out forwards plan-card-in}@media (prefers-reduced-motion:reduce){.plan-card{opacity:1;animation:none}}@keyframes plan-card-in{0%{opacity:0;transform:translateY(.25rem)}to{opacity:1;transform:translateY(0)}}.plan-card h3{margin-block-start:0}.plan-card .tradeoff{color:var(--muted);font-size:.9rem}.metrics{flex-wrap:wrap;gap:.75rem 1.5rem;margin:.75rem 0;padding:0;display:flex}.metrics div{flex-direction:column;display:flex}.metrics dt{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem}.metrics dd{margin:0;font-size:1.1rem;font-weight:600}.selection-list{flex-direction:column;gap:.35rem;margin:.5rem 0;padding:0;list-style:none;display:flex}.selection-list li{border-inline-start:4px solid var(--course-color,var(--border));justify-content:space-between;align-items:center;gap:.5rem;padding-inline-start:.5rem;display:flex}.selection-list button{padding:.15rem .5rem;font-size:.8rem}.week-grid{--row-height:1.4rem;grid-template-columns:3.5rem repeat(var(--day-count,5), 1fr);border:1px solid var(--border);border-radius:.4rem;font-size:.8rem;display:grid;overflow:hidden}.week-grid__head{text-align:center;background:var(--surface);border-bottom:1px solid var(--border);grid-row:1;padding:.25rem;font-weight:600}.week-grid__hour{color:var(--muted);text-align:end;border-top:1px solid var(--border);padding-inline-end:.3rem}.week-grid__meeting{background:color-mix(in srgb, var(--course-color,var(--accent)) 18%, white);border:1px solid var(--course-color,var(--accent));border-radius:.3rem;margin:1px;padding:.15rem .3rem;overflow:hidden}.week-grid__meeting strong{display:block}.week-grid__meeting--block{background:repeating-linear-gradient(45deg, var(--surface), var(--surface) 6px, white 6px, white 12px);border-color:var(--muted);color:var(--muted);border-style:dashed}.day-agenda{flex-direction:column;gap:.75rem;display:none}.day-agenda h4{margin:0 0 .25rem}.day-agenda ul{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.day-agenda li{border-inline-start:4px solid var(--course-color,var(--border));padding-inline-start:.5rem}@media (width<=40rem){.week-grid{display:none}.day-agenda{display:flex}}.save-form{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.saved-plan-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.saved-plan-list li{border:1px solid var(--border);border-radius:.4rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem .9rem;display:flex}
