:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--ns-bg: #ffffff;--ns-surface: #ffffff;--ns-surface-2: #f9fafb;--ns-border: #e5e7eb;--ns-text: #213547;--ns-text-muted: #6b7280;--ns-input-bg: #ffffff;--ns-accent: #2563eb;--ns-danger: #b91c1c;--ns-ok: #047857;--ns-primary: #2563eb;--ns-primary-hover: #1d4ed8;--ns-on-primary: #ffffff;--ns-focus-ring: rgba(37, 99, 235, .45);--ns-hover: #f3f4f6;--ns-accent-soft: #dbeafe;--ns-accent-on-soft: #1d4ed8;--ns-tone-danger-fg: #b91c1c;--ns-tone-danger-bg: #fef2f2;--ns-tone-danger-border: #ef4444;--ns-tone-danger-soft: #fca5a5;--ns-tone-warn-fg: #b45309;--ns-tone-warn-bg: #fffbeb;--ns-tone-warn-border: #f59e0b;--ns-tone-ok-fg: #047857;--ns-tone-ok-bg: #ecfdf5;--ns-tone-ok-border: #10b981;--ns-tone-gut-fg: #7e22ce;--ns-tone-gut-bg: #faf5ff;--ns-tone-gut-border: #c084fc;--ns-tone-gut-solid: #9333ea;--ns-tone-gut-on: #ffffff;--ns-tone-info-fg: #0369a1;--ns-tone-info-bg: #f0f9ff;--ns-tone-info-border: #bae6fd;--ns-tone-heat-yellow: #eab308;--ns-tone-heat-yellow-green: #84cc16;--ns-tone-neutral: #6b7280;--ns-tone-on-solid: #ffffff;--ns-popover-bg: #ffffff;--ns-popover-fg: #111827;--ns-popover-muted: #6b7280;--ns-radius-xs: 6px;--ns-radius-sm: 8px;--ns-radius-md: 12px;--ns-radius-lg: 16px;--ns-radius-xl: 20px;--ns-radius-pill: 999px}html.dark{--ns-bg: #242424;--ns-surface: #1f2937;--ns-surface-2: #111827;--ns-border: #374151;--ns-text: rgba(255, 255, 255, .92);--ns-text-muted: #9ca3af;--ns-input-bg: #1f2937;--ns-accent: #60a5fa;--ns-danger: #f87171;--ns-ok: #34d399;--ns-hover: rgba(255, 255, 255, .06);--ns-accent-soft: #1e3a8a;--ns-accent-on-soft: #bfdbfe;--ns-tone-danger-fg: #fca5a5;--ns-tone-danger-bg: #450a0a;--ns-tone-danger-border: #f87171;--ns-tone-danger-soft: #f87171;--ns-tone-warn-fg: #fcd34d;--ns-tone-warn-bg: #451a03;--ns-tone-warn-border: #fbbf24;--ns-tone-ok-fg: #6ee7b7;--ns-tone-ok-bg: #052e1c;--ns-tone-ok-border: #34d399;--ns-tone-gut-fg: #e9d5ff;--ns-tone-gut-bg: #3b0764;--ns-tone-gut-border: #c084fc;--ns-tone-gut-solid: #a855f7;--ns-tone-gut-on: #faf5ff;--ns-tone-info-fg: #7dd3fc;--ns-tone-info-bg: #082f49;--ns-tone-info-border: #0369a1;--ns-tone-heat-yellow: #facc15;--ns-tone-heat-yellow-green: #a3e635;--ns-tone-neutral: #9ca3af;--ns-popover-bg: #111827;--ns-popover-fg: #f9fafb;--ns-popover-muted: #9ca3af}body{margin:0;min-width:320px;min-height:100vh;background:var(--ns-bg);color:var(--ns-text)}a{font-weight:500;color:inherit;text-decoration:inherit}button{border-radius:var(--ns-radius-sm);border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:transparent;color:inherit;cursor:pointer;transition:border-color .25s}button:focus-visible{outline:2px solid var(--ns-focus-ring, rgba(37, 99, 235, .45));outline-offset:2px}.ns-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 1.25rem;border-radius:var(--ns-radius-md);font-size:1rem;font-weight:600;line-height:1.2;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,opacity .15s ease;border:1px solid transparent}.ns-btn:disabled{opacity:.6;cursor:not-allowed}.ns-btn-primary{background:var(--ns-primary);color:var(--ns-on-primary);border-color:var(--ns-primary)}.ns-btn-primary:hover:not(:disabled){background:var(--ns-primary-hover);border-color:var(--ns-primary-hover)}.ns-btn-primary:focus-visible{outline:2px solid var(--ns-focus-ring);outline-offset:2px}.ns-card{border:1px solid var(--ns-border);border-radius:var(--ns-radius-lg);background:var(--ns-surface);color:var(--ns-text);padding:1.25rem}.ns-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .75rem;border-radius:var(--ns-radius-pill);font-size:.8125rem;line-height:1.3;background:var(--ns-surface-2);color:var(--ns-text);border:1px solid transparent}.ns-chip-accent{background:var(--ns-accent-soft);color:var(--ns-accent-on-soft);text-transform:capitalize}.ns-chip-muted{background:var(--ns-surface);color:var(--ns-text-muted);border-color:var(--ns-border)}.ns-chip-warn{background:color-mix(in srgb,var(--ns-danger) 16%,transparent);color:var(--ns-danger);font-weight:600}.login-form{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:360px;margin:0 auto;text-align:left}.login-form h1{margin:0 0 .25rem;font-size:1.5rem;text-align:center}.login-field{display:flex;flex-direction:column;gap:.35rem;font-size:.95rem}.login-field input{width:100%;padding:.65rem .75rem;border:1px solid var(--ns-border);border-radius:var(--ns-radius-sm);background-color:var(--ns-input-bg);color:var(--ns-text);font:inherit}.login-field input:focus{outline:2px solid var(--ns-primary);border-color:transparent}.login-message{margin:0;padding:.75rem;border-radius:var(--ns-radius-sm);font-size:.9rem;background-color:#22c55e26}.login-message-error{background-color:#ef444426}.login-help{margin:0;font-size:.9rem;line-height:1.5;color:var(--ns-text-muted);text-align:center}.login-forgot{margin:-.35rem 0 0;text-align:right}.login-toggle{margin:0;text-align:center;color:var(--ns-text-muted);font-size:.9rem}.link-button{border:none;padding:0;background:none;color:var(--ns-primary);font:inherit;cursor:pointer}.link-button:hover{color:var(--ns-primary-hover)}.login-form button[type=submit]{padding:.65rem 1rem;border-radius:var(--ns-radius-sm);border:1px solid transparent;background:var(--ns-primary);color:var(--ns-on-primary);font:inherit;font-weight:600;cursor:pointer}.login-form button[type=submit]:hover:not(:disabled){background:var(--ns-primary-hover)}.login-form button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:3.5rem;height:2rem;padding:0 .7rem;border:1px solid rgba(255,255,255,.35);border-radius:var(--ns-radius-sm);background:#ffffff1f;color:#fff;font-size:.75rem;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:background .15s ease,border-color .15s ease}.theme-toggle:hover{background:#fff3;border-color:#ffffff80}.theme-toggle-label{line-height:1}.route-error{max-width:32rem;margin:3rem auto;padding:0 1rem;color:var(--ns-text)}.route-error h1{margin:0 0 .75rem;font-size:1.5rem}.route-error p{margin:0 0 1rem}.route-error-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem}.route-error-reload{border:1px solid var(--ns-accent);color:var(--ns-accent)}.route-error-reload:hover{background:var(--ns-accent-soft);color:var(--ns-accent-on-soft)}.route-error a{color:var(--ns-accent)}.education-disclaimer{margin:0;font-size:.72rem;line-height:1.4;color:var(--ns-text-muted)}.education-disclaimer--compact{margin-top:.35rem;font-size:.68rem}.app-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--ns-bg);color:var(--ns-text)}.app-chrome{position:sticky;top:0;z-index:30;background:#14141ceb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.08)}.app-chrome .education-disclaimer--compact{margin:0;padding:0 1.5rem .6rem;color:#9ca3af}.app-header{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;padding:.75rem 1.5rem .35rem}.app-brand{font-weight:700;font-size:1.15rem;letter-spacing:-.01em;background:linear-gradient(90deg,#6ee7b7,#60a5fa);-webkit-background-clip:text;background-clip:text;color:transparent;white-space:nowrap}.app-nav-toggle{display:none;width:2.5rem;height:2.5rem;padding:0;border:1px solid rgba(255,255,255,.18);border-radius:var(--ns-radius-sm);background:#ffffff0f;color:#fff;cursor:pointer;align-items:center;justify-content:center}.app-nav-toggle:hover{background:#ffffff1f}.app-nav-toggle-bars,.app-nav-toggle-bars:before,.app-nav-toggle-bars:after{display:block;width:1.1rem;height:2px;border-radius:1px;background:currentColor;position:relative}.app-nav-toggle-bars:before,.app-nav-toggle-bars:after{content:"";position:absolute;left:0}.app-nav-toggle-bars:before{top:-6px}.app-nav-toggle-bars:after{top:6px}.app-nav{display:flex;gap:.25rem;flex:1;flex-wrap:wrap;min-width:0}.app-nav-link{padding:.4rem .85rem;border-radius:var(--ns-radius-sm);font-size:.95rem;font-weight:500;color:#ffffffb3;text-decoration:none;transition:background-color .15s,color .15s}.app-nav-link:hover{background:#ffffff12;color:#fff}.app-nav-link--active{background:#60a5fa2e;color:#fff}.app-auth{display:flex;align-items:center;gap:.6rem}.app-header .app-auth button{color:#ffffffeb;background:#ffffff1a;border:1px solid rgba(255,255,255,.22);padding:.35rem .75rem;font-size:.85rem}.app-header .app-auth button:hover{background:#ffffff2e;border-color:#ffffff59}.app-header-actions{display:flex;align-items:center;gap:.6rem;margin-left:auto;flex-shrink:0}.app-auth--mobile{display:none}.app-auth-email{font-size:.85rem;color:#ffffffb3;max-width:16ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}a.app-auth-email:hover,a.app-auth-email--active{color:#fff}.app-auth-status{font-size:.85rem;color:#ffffff80;text-decoration:none}a.app-auth-status:hover{color:#fff}.app-nav-backdrop{display:none}.app-main{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:1.5rem;box-sizing:border-box;text-align:left}.app-auth-card{max-width:420px;margin:3rem auto}.app-auth-heading{text-align:center;margin-top:0}.app-persist-error{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.app-persist-error p{margin:0}.app-persist-error button{flex-shrink:0}.page{display:flex;flex-direction:column;gap:1.25rem}.page-header{margin-bottom:.25rem}.page-title{margin:0 0 .25rem;font-size:1.6rem;font-weight:700}.page-subtitle{margin:0;font-size:.95rem;color:var(--ns-text-muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(min-width:901px){.app-nav-toggle{display:none!important}}@media(max-width:900px){.app-nav-toggle{display:inline-flex}.app-header-actions{margin-left:auto}.app-auth--desktop{display:none}.app-header--no-nav .app-auth--desktop{display:flex}.app-nav{display:none;flex:none;width:100%;flex-direction:column;flex-wrap:nowrap;gap:.35rem;order:10;padding-top:.25rem;border-top:1px solid rgba(255,255,255,.08)}.app-nav--open{display:flex}.app-nav-link{padding:.7rem .85rem;font-size:1rem}.app-auth--mobile{display:flex;flex-wrap:wrap;margin-top:.5rem;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.08)}.app-auth--mobile .app-auth-email{display:block;max-width:none}.app-nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:25;border:none;padding:0;margin:0;background:#00000073;cursor:pointer}}#root{width:100%;margin:0 auto}.card{padding:2em;margin-bottom:1.5rem}.status{margin:0 0 1rem;padding:.75rem 1rem;border-radius:var(--ns-radius-sm);font-size:.95rem}.status-loading{background-color:#646cff26}.status-error{background-color:#ef444426}button:disabled{opacity:.7;cursor:not-allowed}
