:root{--primary:#0f766e;--primary-hover:#0c5f59;--secondary:#c2410c;--tertiary:#4f46e5;--success:#16a34a;--success-soft:#16a34a1a;--warning:#b45309;--warning-soft:#b453091a;--error:#dc2626;--error-soft:#dc26261a;--bg:#fffefc;--bg-alt:#f5f6f4;--bg-elevated:#fff;--border:#d8dcd6;--heading:var(--primary);--text:#1a1a1a;--font-body:"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--radius:.375rem}@media (prefers-color-scheme:dark){:root{--primary:#5eead4;--primary-hover:#99f6e4;--secondary:#fb923c;--tertiary:#a5b4fc;--success:#4ade80;--success-soft:#4ade8024;--warning:#fbbf24;--warning-soft:#fbbf2424;--error:#f87171;--error-soft:#f8717124;--bg:#14171a;--bg-alt:#1b1f22;--bg-elevated:#202427;--border:#33383c;--heading:var(--primary);--text:#e8eaed}}*{box-sizing:border-box}body{font-family:var(--font-body);color:var(--text);background:var(--bg);margin:0;padding:0;font-size:1.125rem;line-height:1.6}main{max-width:48rem;padding:var(--spacing-xl) var(--spacing-lg) 4rem;margin:0 auto}h1,h2,h3,h4{color:var(--heading);font-weight:700;line-height:1.25}h1{margin-block:0 var(--spacing-md);font-size:2.5rem}h2{margin-block:var(--spacing-xl) var(--spacing-sm);font-size:1.875rem}h3{margin-block:0 var(--spacing-sm);font-size:1.375rem}a{color:var(--primary);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--primary) 40%, transparent);text-underline-offset:.15em}a:hover{color:var(--primary-hover)}nav{align-items:center;gap:var(--spacing-lg);max-width:48rem;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border);margin:0 auto;display:flex}nav a{color:var(--text);font-weight:600;text-decoration:none}nav a:first-child{color:var(--heading);font-size:1.05rem}nav a:hover{color:var(--primary)}form{gap:var(--spacing-md);margin-block:var(--spacing-lg);max-width:32rem;padding:var(--spacing-lg);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;display:flex}.field{gap:var(--spacing-xs);flex-direction:column;display:flex}label{font-size:.875rem;font-weight:600}input,select,textarea{padding:var(--spacing-sm) var(--spacing-md);font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);font-size:1rem}select:focus,textarea:focus,input:focus{outline:2px solid var(--primary);outline-offset:1px}button{align-self:flex-start;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font:inherit;color:#fff;background:var(--primary);border:2px solid var(--primary);border-radius:var(--radius);cursor:pointer;font-size:.875rem;font-weight:600;transition:background-color .15s,border-color .15s,transform .15s;display:inline-flex}button:hover{background:var(--primary-hover);border-color:var(--primary-hover)}button:active{transform:translateY(1px)}table{border-collapse:collapse;width:100%;margin-block:var(--spacing-md);font-size:.9375rem}th,td{border:1px solid var(--border);padding:var(--spacing-sm) var(--spacing-md);text-align:left;vertical-align:top}th{background:var(--bg-alt);font-weight:600}.checklist{gap:var(--spacing-sm);flex-direction:column;padding-inline-start:0;list-style:none;display:flex}.checklist li{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius);border-inline-start:.25rem solid var(--border);background:var(--bg-alt)}.status-done{border-inline-start-color:var(--success);background:var(--success-soft)}.status-in-progress{border-inline-start-color:var(--warning);background:var(--warning-soft)}.status-missing{border-inline-start-color:var(--error);background:var(--error-soft)}.category{border:1px solid var(--border);border-inline-start:.25rem solid var(--tertiary);border-radius:var(--radius);background:var(--bg-elevated);padding:var(--spacing-md) var(--spacing-lg);margin-block-end:var(--spacing-md)}.category h3{color:var(--tertiary)}.warnings{border:1px solid var(--border);border-inline-start:.25rem solid var(--secondary);background:color-mix(in srgb, var(--secondary) 8%, var(--bg-elevated));border-radius:var(--radius);padding:var(--spacing-md) var(--spacing-lg);margin-block:var(--spacing-lg)}.warnings strong{color:var(--secondary)}.plan-legend{gap:var(--spacing-md);margin-block:var(--spacing-md);flex-wrap:wrap;padding-inline-start:0;font-size:.875rem;list-style:none;display:flex}.plan-legend-item{align-items:center;gap:var(--spacing-xs);display:inline-flex}.swatch{border-radius:.2rem;width:.75rem;height:.75rem;display:inline-block}.swatch--foundational{background:var(--primary)}.swatch--compulsory{background:var(--tertiary)}.swatch--elective{background:var(--secondary)}.swatch--unspecified{background:var(--warning)}.plan-grid{gap:var(--spacing-xl);margin-block:var(--spacing-lg);flex-direction:column;display:flex}.plan-year-label{border-block-end:2px solid var(--border);margin-block-end:var(--spacing-sm);padding-block-end:var(--spacing-xs)}.plan-semesters{gap:var(--spacing-lg);grid-template-columns:repeat(2,1fr);display:grid}@media (width<=40rem){.plan-semesters{grid-template-columns:1fr}}.plan-semester{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-alt);padding:var(--spacing-md)}.plan-semester-label{margin:0 0 var(--spacing-sm);color:var(--text);font-size:1rem}.plan-semester-units{color:color-mix(in srgb, var(--text) 60%, transparent);font-size:.8125rem;font-weight:400}.plan-courses{gap:var(--spacing-sm);flex-direction:column;display:flex}.course-box{padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-elevated);border:1px solid var(--border);border-inline-start:.25rem solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.15rem;display:flex}.course-box--foundational{border-inline-start-color:var(--primary)}.course-box--compulsory{border-inline-start-color:var(--tertiary)}.course-box--elective{border-inline-start-color:var(--secondary)}.course-box--unspecified{border-inline-start-color:var(--warning)}.course-code{color:var(--heading);font-family:Roboto Mono,ui-monospace,SFMono-Regular,monospace;font-size:.8125rem;font-weight:700}.course-title{font-size:.9375rem}.course-units{color:color-mix(in srgb, var(--text) 60%, transparent);font-size:.75rem}#plans{gap:var(--spacing-xs);flex-direction:column;padding-inline-start:0;list-style:none;display:flex}#plans li{padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-alt);border-radius:var(--radius)}
