:root{--color-canvas: #F7F4EC;--color-surface: #FFFFFF;--color-surface-soft: #EEE9DE;--color-ink: #1D2B36;--color-muted: #52616B;--color-thread: #98452F;--color-thread-hover: #7E3927;--color-aegean: #1D5556;--color-sage: #41664F;--color-warning: #80530F;--color-border: #D8D3C8;--color-focus: #175E9A;--color-destructive: #9B2C2C;--color-disabled: #9AA3AB;--brand-primary: var(--color-thread);--brand-primary-hover: var(--color-thread-hover);--brand-secondary: var(--color-aegean);--brand-accent: var(--color-thread);--font-heading: "Source Serif 4", Georgia, "Times New Roman", serif;--font-body: Inter, ui-sans-serif, system-ui, sans-serif;--h1-size: 2.25rem;--h1-weight: 600;--h2-size: 1.35rem;--h2-weight: 600;--h3-size: 1.1rem;--h3-weight: 600;--paragraph-size: 1rem;--paragraph-weight: 400;--card-radius: .5rem;--card-shadow: 0 1px 2px rgb(29 43 54 / .06), 0 4px 12px rgb(29 43 54 / .04);--button-radius: .4rem;--button-shadow: none;--input-radius: .4rem;--input-shadow: none;color-scheme:light;--background: var(--color-canvas);--foreground: var(--color-ink);--border: var(--color-border);--container: var(--color-surface);--muted: var(--color-muted);--nav-background: var(--color-surface);--nav-foreground: var(--color-ink);--banner-background: var(--color-surface);--link: var(--color-aegean);--focus: var(--color-focus);--soft-button-bg: var(--color-surface-soft);--soft-button-fg: var(--color-aegean);--soft-button-hover: #E4DED1;--code-bg: var(--color-surface-soft);--status-error-bg: #F8E8E6;--status-error-fg: #7A2A22;--status-warn-bg: #F5EDD9;--status-warn-fg: var(--color-warning);--status-ok-bg: #E7EFE9;--status-ok-fg: var(--color-sage);--bar-track: var(--color-surface-soft);--card: var(--color-surface);--card-foreground: var(--color-ink);--primary: var(--color-thread);--primary-foreground: #ffffff;--secondary: var(--color-surface-soft);--secondary-foreground: var(--color-aegean);--muted-foreground: var(--color-muted);--accent: var(--color-surface-soft);--accent-foreground: var(--color-ink);--destructive: var(--color-destructive);--destructive-foreground: #ffffff;--input: var(--color-border);--ring: var(--color-focus);--radius: var(--button-radius)}html[data-theme=dark],html.dark{color-scheme:dark;--color-canvas: #121A21;--color-surface: #1A242C;--color-surface-soft: #232E37;--color-ink: #F3EFE4;--color-muted: #A8B4BC;--color-thread: #C46A4F;--color-thread-hover: #D4846A;--color-aegean: #6CB3B4;--color-sage: #8FBA9C;--color-warning: #D4A04A;--color-border: #3A4650;--color-focus: #5BA3D9;--color-destructive: #E07A6A;--color-disabled: #6B7680;--background: var(--color-canvas);--foreground: var(--color-ink);--border: var(--color-border);--container: var(--color-surface);--muted: var(--color-muted);--nav-background: var(--color-surface);--nav-foreground: var(--color-ink);--banner-background: var(--color-surface);--link: var(--color-aegean);--focus: var(--color-focus);--soft-button-bg: var(--color-surface-soft);--soft-button-fg: var(--color-aegean);--soft-button-hover: #2C3944;--code-bg: var(--color-surface-soft);--status-error-bg: #3A2220;--status-error-fg: #F0C4BC;--status-warn-bg: #3A2F1A;--status-warn-fg: #F0D39A;--status-ok-bg: #1F3328;--status-ok-fg: #B8D6C2;--bar-track: var(--color-surface-soft);--card: var(--color-surface);--card-foreground: var(--color-ink);--primary: var(--color-thread);--primary-foreground: #ffffff;--secondary: var(--color-surface-soft);--secondary-foreground: var(--color-aegean);--muted-foreground: var(--color-muted);--accent: var(--color-surface-soft);--accent-foreground: var(--color-ink);--destructive: var(--color-destructive);--destructive-foreground: #121A21;--input: var(--color-border);--ring: var(--color-focus)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--background);color:var(--foreground);font-family:var(--font-body);font-size:var(--paragraph-size);font-weight:var(--paragraph-weight);line-height:1.55}h1,h2,h3{font-family:var(--font-heading);margin:0 0 .6rem;color:var(--foreground)}h1{font-size:clamp(1.65rem,3.5vw,var(--h1-size));font-weight:var(--h1-weight);letter-spacing:-.02em}h2{font-family:var(--font-body);font-size:var(--h2-size);font-weight:var(--h2-weight)}h3{font-family:var(--font-body);font-size:var(--h3-size);font-weight:var(--h3-weight)}p{margin:0 0 .75rem}a{color:var(--link)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.skip{position:absolute;left:.5rem;top:-4rem;background:var(--container);color:var(--foreground);border:1px solid var(--border);padding:.5rem;z-index:20}.skip:focus{top:.5rem}.app-frame{display:flex;flex-direction:column;min-height:100vh;background:var(--background);color:var(--foreground);position:relative}.brand-banner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;background:var(--banner-background);padding:.75rem 1.25rem;border-bottom:1px solid var(--border)}.brand-banner__link{display:inline-flex;align-items:center;line-height:0;text-decoration:none}.brand-banner__link:first-child{justify-self:start}.brand-banner__link:last-child{justify-self:end}.brand-banner__link img{display:block;height:2.25rem;width:auto;max-width:min(14rem,32vw);object-fit:contain}.brand-identity{justify-self:center;display:inline-flex;align-items:center;gap:.7rem;text-align:left;text-decoration:none;color:var(--foreground)}.brand-identity__mark{width:2.35rem;height:2.35rem;flex:0 0 auto;color:var(--color-thread)}.brand-identity__copy{display:flex;flex-direction:column;gap:.05rem;line-height:1.15}.brand-identity__name{font-family:var(--font-heading);font-size:1.45rem;font-weight:600;letter-spacing:-.02em}.brand-identity__subtitle{font-family:var(--font-body);font-size:.8rem;font-weight:500;color:var(--muted)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;background:var(--background);color:var(--foreground);border:1px solid var(--border);border-radius:var(--button-radius);box-shadow:var(--button-shadow);cursor:pointer}.theme-toggle:hover{background:var(--color-surface-soft);border-color:color-mix(in srgb,var(--color-thread) 40%,var(--border));color:var(--color-thread)}.theme-toggle__icon{width:1.15rem;height:1.15rem;display:block}.theme-toggle--corner{position:fixed;right:1rem;bottom:1rem;z-index:15;margin:0;width:2.5rem;height:2.5rem}.shell{display:grid;grid-template-columns:16rem 1fr;flex:1;min-height:0}.side-nav{display:flex;flex-direction:column;background:var(--nav-background);color:var(--nav-foreground);padding:1rem;border-right:1px solid var(--border);min-height:0}.side-nav strong,.side-nav p{color:var(--nav-foreground)}.side-nav p{margin:.25rem 0 1rem;color:var(--muted);font-size:.92rem}.side-nav a{color:var(--nav-foreground);display:block;padding:.45rem .55rem;margin:.1rem 0;border-radius:var(--button-radius);text-decoration:none}.side-nav a:hover{background:color-mix(in srgb,var(--color-thread) 10%,transparent)}.side-nav a[aria-current=page]{background:color-mix(in srgb,var(--color-thread) 14%,transparent);color:var(--color-thread);font-weight:600}.side-nav>button.secondary{width:100%;margin-top:.5rem}.side-nav__footer{margin-top:auto;display:flex;justify-content:flex-end;align-items:center;padding-top:1.25rem;border-top:1px solid var(--border)}.side-nav__footer .theme-toggle{margin:0;width:2.25rem}main{padding:1.35rem 1.5rem}.app-frame>main{flex:1}.card,.panel{background:var(--container);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--card-shadow);padding:1rem 1.1rem;margin-bottom:1rem}.row{display:flex;gap:1rem;flex-wrap:wrap}.compare{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem}button,.button{background:var(--brand-primary);color:#fff;border:0;border-radius:var(--button-radius);box-shadow:var(--button-shadow);padding:.55rem .85rem;font:inherit;font-weight:600;cursor:pointer}button:hover,.button:hover{background:var(--brand-primary-hover)}button:disabled{background:var(--color-disabled);opacity:.85;cursor:progress}button.secondary{background:var(--soft-button-bg);color:var(--soft-button-fg)}button.secondary:hover{background:var(--soft-button-hover)}label{display:block;font-weight:600;margin-top:.6rem}input:not(.stack-scope),select:not(.stack-scope),textarea:not(.stack-scope){width:100%;max-width:28rem;padding:.5rem .65rem;font:inherit;color:var(--foreground);background:var(--color-surface);border:1px solid var(--border);border-radius:var(--input-radius);box-shadow:var(--input-shadow)}.stack-scope{--background: 40 33% 95%;--foreground: 205 30% 16%;--card: 0 0% 100%;--card-foreground: 205 30% 16%;--primary: 12 53% 39%;--primary-foreground: 0 0% 100%;--secondary: 42 28% 90%;--secondary-foreground: 181 49% 23%;--muted: 42 28% 90%;--muted-foreground: 205 14% 37%;--accent: 42 28% 90%;--accent-foreground: 205 30% 16%;--destructive: 0 55% 39%;--destructive-foreground: 0 0% 100%;--border: 40 16% 82%;--input: 40 16% 82%;--ring: 206 74% 35%;color:hsl(var(--foreground))}html[data-theme=dark] .stack-scope,html.dark .stack-scope{--background: 205 28% 10%;--foreground: 40 33% 92%;--card: 205 25% 14%;--card-foreground: 40 33% 92%;--primary: 12 48% 54%;--primary-foreground: 0 0% 100%;--secondary: 205 22% 18%;--secondary-foreground: 181 32% 56%;--muted: 205 22% 18%;--muted-foreground: 205 12% 70%;--accent: 205 22% 18%;--accent-foreground: 40 33% 92%;--destructive: 8 55% 65%;--destructive-foreground: 205 28% 10%;--border: 205 14% 28%;--input: 205 14% 28%;--ring: 206 58% 60%}input.stack-scope,textarea.stack-scope,select.stack-scope{width:100%;max-width:none;min-height:2.25rem;padding:.35rem .75rem;font:inherit;color:hsl(var(--foreground))!important;background-color:hsl(var(--background))!important;border:1px solid hsl(var(--input))!important;border-radius:var(--input-radius);box-shadow:none}input.stack-scope:focus-visible,textarea.stack-scope:focus-visible,select.stack-scope:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:1px}form.stack-scope,form.stack-scope.flex{max-width:24rem;margin:1.25rem auto;padding:1.25rem;background:hsl(var(--card));color:hsl(var(--card-foreground));border:1px solid hsl(var(--border));border-radius:var(--card-radius);box-shadow:var(--card-shadow)}.banner{padding:.7rem .9rem;border-radius:var(--button-radius);margin-bottom:.8rem;border:1px solid var(--border);background:var(--container)}.banner.error{background:var(--status-error-bg);color:var(--status-error-fg);border-color:transparent}.banner.warn{background:var(--status-warn-bg);color:var(--status-warn-fg);border-color:transparent}.banner.ok{background:var(--status-ok-bg);color:var(--status-ok-fg);border-color:transparent}.feature-list{list-style:none;padding:0;display:grid;gap:.5rem;max-width:28rem}.feature-list li{display:flex;gap:.6rem;align-items:center}.feature-list .banner{margin:0;min-width:3rem;text-align:center}table{width:100%;border-collapse:collapse}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.5rem .45rem}.muted{color:var(--muted)}.rich-text{background:var(--container);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--card-shadow);padding:1rem 1.1rem;max-width:42rem}.rich-text h2,.rich-text h3{margin:.2rem 0 .45rem}.rich-text h2{font-size:var(--h2-size)}.rich-text h3{font-size:var(--h3-size)}.rich-text p,.rich-text ul,.rich-text blockquote{margin:.45rem 0}.rich-text ul{padding-left:1.25rem}.rich-text li+li{margin-top:.25rem}.rich-text blockquote{margin-left:0;padding-left:.8rem;border-left:3px solid var(--color-thread);color:var(--foreground)}.rich-text code{background:var(--code-bg);padding:.05rem .3rem;border-radius:4px}.charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem}.charts figure{margin:0}.charts svg{width:10rem;height:10rem}.legend{list-style:none;padding:0}.legend li{display:flex;gap:.4rem;align-items:center}.legend span{width:.8rem;height:.8rem;display:inline-block;border-radius:2px}.bars{display:grid;gap:.8rem}.bar-row{display:grid;grid-template-columns:8rem 1fr 2rem;gap:.4rem;align-items:center}.bar-track{background:var(--bar-track);border-radius:4px}.bar{height:.7rem;border-radius:4px}button[role=tab]{background:transparent;color:var(--muted);box-shadow:none;border:1px solid var(--border);margin-right:.35rem}button[role=tab][data-state=active]{background:var(--soft-button-bg);color:var(--soft-button-fg)}.chip{display:inline-block;padding:.15rem .5rem;border-radius:var(--button-radius);border:1px solid var(--border);font-size:.85rem;font-weight:600}.chip.ok{background:var(--status-ok-bg);color:var(--status-ok-fg);border-color:transparent}.chip.warn{background:var(--status-warn-bg);color:var(--status-warn-fg);border-color:transparent}.chip.bad{background:var(--status-error-bg);color:var(--status-error-fg);border-color:transparent}.chip.selected{background:color-mix(in srgb,var(--color-thread) 16%,var(--container));color:var(--color-thread);border-color:color-mix(in srgb,var(--color-thread) 35%,var(--border))}.wizard-steps{display:flex;align-items:center;gap:0;list-style:none;padding:0;margin:0 0 1.25rem;flex-wrap:wrap}.wizard-steps li{position:relative;display:inline-flex;align-items:center;gap:.45rem;padding:.35rem .85rem .35rem .35rem;color:var(--muted);font-weight:500}.wizard-steps li:before{content:"";width:.7rem;height:.7rem;border-radius:50%;border:2px solid var(--border);background:var(--container);flex:0 0 auto}.wizard-steps li:not(:last-child):after{content:"";position:absolute;left:calc(100% - .35rem);top:50%;width:1.1rem;height:2px;background:var(--border);transform:translateY(-50%)}.wizard-steps li.active{color:var(--color-thread);font-weight:700}.wizard-steps li.active:before{border-color:var(--color-thread);background:var(--color-thread);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-thread) 22%,transparent)}.wizard-steps li.done{color:var(--color-sage)}.wizard-steps li.done:before{border-color:var(--color-sage);background:var(--color-sage)}.wizard-steps li.done:not(:last-child):after,.wizard-steps li.active:not(:last-child):after{background:var(--color-thread)}@media(prefers-reduced-motion:no-preference){.wizard-steps li.active:before{transition:box-shadow .16s ease,background .16s ease}.card.selected,.schedule-option.selected{transition:border-color .16s ease,box-shadow .16s ease}}.day-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0 1rem}.day-chip{display:inline-flex;align-items:center;gap:.35rem;margin:0;font-weight:600}.progress-ring{--pct: 0%;width:min(12rem,100%);aspect-ratio:1;margin:1rem 0;border-radius:50%;display:grid;place-items:center;background:radial-gradient(closest-side,var(--background) 72%,transparent 73% 100%),conic-gradient(var(--color-sage) var(--pct),var(--bar-track) 0)}.progress-ring strong{font-size:1.75rem;font-family:var(--font-heading)}.progress-ring span{font-size:.85rem;color:var(--muted);text-align:center;max-width:7rem}.timeline{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(12rem,1fr);gap:.75rem;overflow-x:auto;padding-bottom:.5rem}.timeline-term{min-width:12rem}.schedule-compare{grid-template-columns:repeat(3,minmax(0,1fr))}.schedule-option.selected,.card.selected{border-color:var(--color-thread);box-shadow:0 0 0 1px var(--color-thread),var(--card-shadow)}.tradeoffs,.violations,.pathway,.select-list{padding-left:1.1rem}.tradeoffs{list-style:none;padding-left:0;display:grid;gap:.25rem;margin:.5rem 0 .75rem}.tradeoffs li{display:flex;justify-content:space-between;gap:.75rem;padding:.35rem .5rem;background:var(--color-surface-soft);border-radius:var(--button-radius);font-size:.92rem}.tradeoffs li strong{font-weight:600}.select-list{list-style:none;padding-left:0}.select-list label{display:flex;align-items:center;gap:.5rem;font-weight:500;margin:.25rem 0}.select-list input{width:auto;max-width:none}.stat{font-size:2rem;font-weight:700;margin:0;font-family:var(--font-heading);color:var(--color-thread)}.handoff-steps{display:grid;gap:.5rem;margin:0 0 1rem;padding:.85rem 1rem;background:var(--color-surface-soft);border:1px solid var(--border);border-radius:var(--card-radius)}.handoff-steps ol{margin:.35rem 0 0;padding-left:1.2rem}a.button{display:inline-block;text-decoration:none;background:var(--brand-primary);color:#fff;border-radius:var(--button-radius);padding:.55rem .85rem;font-weight:600}a.button.secondary{background:var(--soft-button-bg);color:var(--soft-button-fg)}.nav-toggle{display:none;width:auto;margin:0 0 .75rem}.bottom-nav{display:none}.login-brand{margin-bottom:1rem}.university-landing{max-width:56rem;margin:0 auto;padding:1.5rem 1rem 3rem}.university-grid{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}.university-card{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:1rem 1.1rem 1.2rem;display:grid;gap:.55rem;min-height:100%}.university-card h2{font-family:"Source Serif 4",Georgia,serif;font-size:1.25rem;margin:0}.university-card__logo,.login-university__logo{width:3.5rem;height:3.5rem;border-radius:.65rem;object-fit:cover;background:var(--surface-soft)}.login-university{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem 1rem;margin-bottom:1rem}.login-university h1{margin:.15rem 0 0;font-family:"Source Serif 4",Georgia,serif}.new-student-checklist{list-style:none;margin:.75rem 0 0;padding:0;display:grid;gap:.75rem}.new-student-checklist__item{display:grid;grid-template-columns:auto 1fr;gap:.75rem;align-items:start;cursor:pointer}.new-student-checklist__item span{display:grid;gap:.25rem}@media(max-width:800px){.shell{grid-template-columns:1fr}.nav-toggle{display:inline-flex}.side-nav{border-right:0;border-bottom:1px solid var(--border)}.side-nav:not(.open)>:not(.nav-toggle):not(.side-nav__footer){display:none}.side-nav:not(.open){display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.5rem}.side-nav:not(.open) .nav-toggle{margin:0}.side-nav:not(.open) .side-nav__footer{display:flex;border-top:0;padding-top:0;margin-top:0;justify-content:flex-end}.bottom-nav{display:grid;grid-template-columns:repeat(5,1fr);gap:.15rem;position:fixed;left:0;right:0;bottom:0;z-index:5;background:var(--nav-background);border-top:1px solid var(--border);padding:.35rem}.bottom-nav a{text-align:center;font-size:.75rem;padding:.45rem .2rem;margin:0}main.has-bottom-nav{padding-bottom:4.5rem}.schedule-compare{grid-template-columns:1fr}.timeline{grid-auto-flow:row;grid-auto-columns:auto}.brand-banner{padding:.55rem .85rem;gap:.5rem}.brand-banner__link img{height:1.7rem}.brand-identity__name{font-size:1.2rem}.brand-identity__subtitle{font-size:.72rem}.brand-identity__mark,.theme-toggle{width:2rem;height:2rem}.theme-toggle__icon{width:1.05rem;height:1.05rem}input:not(.stack-scope),select:not(.stack-scope),textarea:not(.stack-scope),button{min-height:2.5rem}}
