:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--color-bg:#f2f4f8;--color-surface:#fff;--color-surface-raised:#fff;--color-surface-hover:#f8f9fc;--color-border:#e0e4ed;--color-border-strong:#c6ccd9;--color-text:#0d1117;--color-text-muted:#58637a;--color-text-subtle:#8c96aa;--color-primary:#2f5fd6;--color-primary-hover:#2450be;--color-primary-active:#1c42a5;--color-primary-contrast:#fff;--color-primary-light:#edf1fc;--color-primary-medium:#c8d5f7;--color-critical:#c2271e;--color-critical-bg:#fef2f1;--color-critical-border:#f2c1bf;--color-important:#8a5a00;--color-important-bg:#fff8e8;--color-important-border:#eed99a;--color-advisory:#2f5fd6;--color-advisory-bg:#edf1fc;--color-advisory-border:#c2d1f5;--color-success:#1a7f3c;--color-success-bg:#edf7f2;--color-success-border:#aadbbf;--color-demo:#6b3fa0;--color-demo-bg:#f5f0fd;--color-demo-border:#cdb6ef;--radius-xs:6px;--radius-sm:8px;--radius:12px;--radius-lg:16px;--radius-full:9999px;--shadow-xs:0 1px 2px #0d11170d;--shadow:0 1px 3px #0d11170f, 0 4px 12px #0d11170d;--shadow-md:0 2px 8px #0d111712, 0 12px 32px #0d111714;--shadow-hover:0 4px 20px #2f5fd629, 0 2px 6px #0d11170f;--shadow-btn:0 1px 2px #2f5fd64d, inset 0 1px 0 #ffffff24;--ease:cubic-bezier(.16, 1, .3, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--dur-fast:.11s;--dur:.18s;--dur-slow:.32s;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.6}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--color-bg:#10121b;--color-surface:#181b28;--color-surface-raised:#1e2135;--color-surface-hover:#1e2135;--color-border:#2a2f46;--color-border-strong:#3c4260;--color-text:#eef0f8;--color-text-muted:#98a2bb;--color-text-subtle:#636e8a;--color-primary:#7fa2ff;--color-primary-hover:#93b2ff;--color-primary-active:#a5c0ff;--color-primary-contrast:#0d1224;--color-primary-light:#192240;--color-primary-medium:#253560;--color-critical:#ff8a80;--color-critical-bg:#381715;--color-critical-border:#6b2e2a;--color-important:#ffd270;--color-important-bg:#38290c;--color-important-border:#6b4e15;--color-advisory:#7fa2ff;--color-advisory-bg:#192240;--color-advisory-border:#2c3d6b;--color-success:#7de0a0;--color-success-bg:#0e2c1b;--color-success-border:#1d5235;--color-demo:#caaef0;--color-demo-bg:#241640;--color-demo-border:#472970;--shadow-xs:0 1px 2px #0000004d;--shadow:0 1px 3px #00000059, 0 4px 12px #00000047;--shadow-md:0 2px 8px #00000059, 0 12px 32px #0000004d;--shadow-hover:0 4px 20px #7fa2ff38, 0 2px 6px #0000004d;--shadow-btn:0 1px 2px #0006, inset 0 1px 0 #ffffff14}}*,:before,:after{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);margin:0}a{color:var(--color-primary);text-underline-offset:2px;transition:opacity var(--dur-fast) var(--ease)}a:hover{opacity:.8}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{box-shadow:0 0 0 2px var(--color-bg), 0 0 0 4px var(--color-primary);border-radius:var(--radius-sm);outline:none}.skip-link{background:var(--color-surface);color:var(--color-text);border-radius:var(--radius);z-index:1000;box-shadow:var(--shadow-md);padding:.75rem 1rem;position:absolute;top:auto;left:-999px}.skip-link:focus{top:1rem;left:1rem}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-nav{background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:100;height:52px;box-shadow:var(--shadow-xs);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;gap:.5rem;padding:0 1.5rem;display:flex;position:sticky;top:0}.app-nav__brand{letter-spacing:-.04em;background:linear-gradient(135deg,#2f5fd6 0%,#6e9dff 100%);-webkit-text-fill-color:transparent;transition:opacity var(--dur-fast) var(--ease);-webkit-background-clip:text;background-clip:text;margin-right:.5rem;font-size:1.05rem;font-weight:800;text-decoration:none}.app-nav__brand:hover{opacity:.75}.app-nav__links{flex:1;gap:0;margin:0;padding:0;list-style:none;display:flex}.app-nav__links a{height:52px;color:var(--color-text-muted);transition:color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);white-space:nowrap;border-bottom:2px solid #0000;align-items:center;padding:0 .8rem;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.app-nav__links a:hover{color:var(--color-text);opacity:1}.app-nav__links a[aria-current=page]{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.app-nav__spacer{flex:1}.app-nav>a:last-of-type{border-radius:var(--radius-full);height:30px;color:var(--color-text-muted);background:var(--color-bg);border:1px solid var(--color-border);transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);align-items:center;padding:0 .85rem;font-size:.83rem;font-weight:600;text-decoration:none;display:inline-flex}.app-nav>a:last-of-type:hover{background:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary-medium);opacity:1}.app-main{flex:1;width:100%;max-width:860px;margin:0 auto;padding:2.25rem 1.5rem 5rem}.page-title{letter-spacing:-.04em;color:var(--color-text);margin:0 0 .3rem;font-size:1.75rem;font-weight:800;line-height:1.15}.page-subtitle{color:var(--color-text-muted);margin:0 0 1.5rem;font-size:.9rem;line-height:1.55}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);transition:box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease), border-color var(--dur) var(--ease);margin-bottom:1rem;padding:1.3rem 1.5rem}.card:hover{box-shadow:var(--shadow-hover);border-color:var(--color-primary-medium);transform:translateY(-2px)}.card h3{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-subtle);margin:0 0 1rem;font-size:.78rem;font-weight:700}.button{border-radius:var(--radius-sm);cursor:pointer;background:var(--color-primary);color:var(--color-primary-contrast);box-shadow:var(--shadow-btn);transition:background var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);-webkit-user-select:none;user-select:none;white-space:nowrap;border:1px solid #0000;align-items:center;gap:.4rem;padding:.5rem 1.1rem;font-size:.9rem;font-weight:600;display:inline-flex}.button:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:0 2px 10px #2f5fd666,inset 0 1px #ffffff24}.button:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 2px #2f5fd633}.button:disabled{opacity:.5;cursor:not-allowed}.button--secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border);box-shadow:var(--shadow-xs)}.button--secondary:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-border-strong);box-shadow:var(--shadow)}.button--danger{background:var(--color-surface);color:var(--color-critical);border-color:var(--color-critical-border);box-shadow:var(--shadow-xs)}.button--danger:hover:not(:disabled){background:var(--color-critical-bg);box-shadow:var(--shadow)}.field{flex-direction:column;gap:.35rem;margin-bottom:1rem;display:flex}.field label{color:var(--color-text);font-size:.875rem;font-weight:600}.field input,.field select,.field textarea{border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);padding:.6rem .8rem}.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--color-border-strong)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2f5fd624}.badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;border:1px solid #0000;align-items:center;gap:.25rem;padding:.18rem .55rem;font-size:.7rem;font-weight:700;display:inline-flex}.badge--verified{background:var(--color-success-bg);color:var(--color-success);border-color:var(--color-success-border)}.badge--estimated{background:var(--color-important-bg);color:var(--color-important);border-color:var(--color-important-border)}.badge--student-reported{background:var(--color-advisory-bg);color:var(--color-advisory);border-color:var(--color-advisory-border)}.badge--demo{background:var(--color-demo-bg);color:var(--color-demo);border-color:var(--color-demo-border)}.warning-panel{border-radius:var(--radius);border:1px solid;margin-bottom:.75rem;padding:1rem 1.1rem}.warning-panel--critical{background:var(--color-critical-bg);border-color:var(--color-critical-border)}.warning-panel--important{background:var(--color-important-bg);border-color:var(--color-important-border)}.warning-panel--advisory{background:var(--color-advisory-bg);border-color:var(--color-advisory-border)}.warning-panel__title{color:var(--color-text);margin:0 0 .25rem;font-size:.92rem;font-weight:700}.warning-panel__body{color:var(--color-text-muted);margin:0 0 .5rem;font-size:.88rem}.task-list{margin:0;padding:0;list-style:none}.task-card{border-bottom:1px solid var(--color-border);border-radius:var(--radius-sm);transition:background var(--dur-fast) var(--ease);justify-content:space-between;align-items:flex-start;gap:1rem;margin:0 -.6rem;padding:.85rem .6rem;display:flex}.task-card:last-child{border-bottom:none}.task-card:hover{background:var(--color-surface-hover)}.task-card__due{color:var(--color-text-subtle);margin:0 0 .1rem;font-size:.77rem}.task-card__title{margin:0 0 .2rem;font-size:.92rem;font-weight:600;line-height:1.4}.readiness-item{align-items:center;gap:.75rem;padding:.4rem 0;display:flex}.readiness-item__label{color:var(--color-text-muted);flex:none;min-width:160px;font-size:.875rem}.readiness-bar{background:var(--color-border);border-radius:var(--radius-full);flex:1;height:6px;overflow:hidden}.readiness-bar__fill{background:linear-gradient(90deg, var(--color-primary) 0%, #7fa2ff 100%);border-radius:var(--radius-full);height:100%;transition:width var(--dur-slow) var(--ease);min-width:6px}.readiness-bar__fill--complete{background:linear-gradient(90deg, var(--color-success) 0%, #5ecb84 100%)}.readiness-item__fraction{color:var(--color-text-subtle);text-align:right;flex:none;min-width:36px;font-size:.78rem;font-weight:600}.state-message{color:var(--color-text-muted);text-align:center;padding:2.5rem 1rem;font-size:.9rem;line-height:1.6}.state-message--error{color:var(--color-critical)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-fade{0%,to{opacity:.4}50%{opacity:1}}.loading-spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:20px;height:20px;margin:0 auto .75rem;animation:.7s linear infinite spin}.source-link{font-size:.85rem}.plan-term{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);margin-bottom:1rem;padding:1.2rem 1.4rem}.plan-term:hover{border-color:var(--color-primary-medium);box-shadow:var(--shadow)}.plan-term h3{color:var(--color-text);letter-spacing:-.02em;margin:0 0 .85rem;font-size:1rem;font-weight:700}.plan-term ul{margin:0 0 1rem;padding:0;list-style:none}.plan-term li{border-radius:var(--radius-sm);transition:background var(--dur-fast) var(--ease);justify-content:space-between;align-items:center;gap:.75rem;margin:0 -.6rem;padding:.5rem .6rem;display:flex}.plan-term li:hover{background:var(--color-surface-hover)}.plan-term select{border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;color:var(--color-text);cursor:pointer;transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);margin-top:.35rem;padding:.55rem .75rem;display:block}.plan-term select:hover{border-color:var(--color-border-strong)}.plan-term select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2f5fd624}.place-list{margin:0;padding:0;list-style:none}.place-item{border-bottom:1px solid var(--color-border);border-radius:var(--radius-sm);transition:background var(--dur-fast) var(--ease);margin:0 -.6rem;padding:.9rem .6rem}.place-item:last-child{border-bottom:none}.place-item:hover{background:var(--color-surface-hover)}.chat-log{flex-direction:column;gap:1rem;margin-bottom:1.25rem;display:flex}.chat-exchange{flex-direction:column;gap:.5rem;display:flex}.chat-bubble{border-radius:var(--radius);max-width:42rem;padding:.85rem 1.1rem;font-size:.9rem;line-height:1.65}.chat-bubble--user{background:var(--color-primary);color:var(--color-primary-contrast);border-radius:var(--radius) var(--radius-xs) var(--radius) var(--radius);align-self:flex-end;box-shadow:0 2px 8px #2f5fd64d}.chat-bubble--assistant{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow);border-radius:var(--radius-xs) var(--radius) var(--radius) var(--radius)}.chat-input-row{align-items:stretch;gap:.6rem;display:flex}.chat-input{border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);flex:1;padding:.6rem .9rem;font-size:.9rem}.chat-input:hover{border-color:var(--color-border-strong)}.chat-input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2f5fd624}.chat-input::placeholder{color:var(--color-text-subtle)}.card--category{border-left:3px solid var(--color-primary-medium);transition:box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease), border-color var(--dur) var(--ease), border-left-color var(--dur) var(--ease);padding-left:1.2rem}.card--category:hover{border-left-color:var(--color-primary)}.card--category h3{align-items:center;gap:.5rem;font-size:.82rem;display:flex}.category-icon{font-size:1rem;line-height:1}.card--hero{border-left:4px solid var(--color-primary);background:linear-gradient(135deg, var(--color-surface) 0%, var(--color-primary-light) 100%)}.card--hero:hover{border-left-color:var(--color-primary-hover)}.onboarding-steps{flex-direction:column;gap:1.5rem;display:flex}.onboarding-step{align-items:flex-start;gap:1rem;display:flex}.onboarding-step__number{background:var(--color-primary);width:28px;height:28px;color:var(--color-primary-contrast);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;font-size:.8rem;font-weight:700;display:flex}.onboarding-step__number--done{background:var(--color-success)}
