*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html{touch-action:manipulation;-webkit-text-size-adjust:100%}:root,:root[data-theme=light]{color-scheme:light;--bg: #fbfbf9;--bg-subtle: #f5f5f3;--bg-elevated: #ffffff;--bg-hover: rgba(0, 0, 0, .035);--border: rgba(0, 0, 0, .08);--border-strong: rgba(0, 0, 0, .16);--text: #18181b;--text-secondary: #52525b;--text-tertiary: #a1a1aa;--accent: #18181b;--accent-fg: #fafafa;--accent-soft: #2563eb;--accent-soft-bg: rgba(37, 99, 235, .08);--success: #15803d;--warning: #b45309;--error: #b91c1c;--info: #1d4ed8;--success-bg: rgba(21, 128, 61, .08);--warning-bg: rgba(180, 83, 9, .08);--error-bg: rgba(185, 28, 28, .08);--bg-root: var(--bg);--bg-surface: var(--bg);--border-bright: var(--border-strong);--accent-hover: #000000;--radius: 6px;--radius-sm: 4px;--radius-lg: 10px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .05);--font-sans: "Inter", "InterVariable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", "Menlo", "Consolas", monospace;--font: var(--font-sans);--text-2xs: 10px;--text-xs: 11px;--text-sm: 12px;--text-base: 13px;--text-md: 14px;--text-lg: 16px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 30px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--nav-h: 52px}:root[data-theme=dark]{color-scheme:dark;--bg: #0a0a0a;--bg-subtle: #111111;--bg-elevated: #18181b;--bg-hover: rgba(255, 255, 255, .04);--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .16);--text: #fafafa;--text-secondary: #a1a1aa;--text-tertiary: #71717a;--accent: #fafafa;--accent-fg: #0a0a0a;--accent-soft: #60a5fa;--accent-soft-bg: rgba(96, 165, 250, .12);--success: #4ade80;--warning: #facc15;--error: #f87171;--info: #60a5fa;--success-bg: rgba(74, 222, 128, .12);--warning-bg: rgba(250, 204, 21, .12);--error-bg: rgba(248, 113, 113, .12);--bg-root: var(--bg);--bg-surface: var(--bg);--border-bright: var(--border-strong);--accent-hover: #ffffff;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5)}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--bg: #0a0a0a;--bg-subtle: #111111;--bg-elevated: #18181b;--bg-hover: rgba(255, 255, 255, .04);--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .16);--text: #fafafa;--text-secondary: #a1a1aa;--text-tertiary: #71717a;--accent: #fafafa;--accent-fg: #0a0a0a;--accent-soft: #60a5fa;--accent-soft-bg: rgba(96, 165, 250, .12);--success: #4ade80;--warning: #facc15;--error: #f87171;--info: #60a5fa;--success-bg: rgba(74, 222, 128, .12);--warning-bg: rgba(250, 204, 21, .12);--error-bg: rgba(248, 113, 113, .12);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5)}}html{font-family:var(--font);font-size:var(--text-md);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01","cv11"}body{background:var(--bg);color:var(--text);font-size:var(--text-md);line-height:1.5;min-height:100vh;font-feature-settings:"ss01","cv11"}a{color:inherit;text-decoration:none;transition:color .15s,opacity .15s}a:hover{text-decoration:underline;text-underline-offset:2px}a:focus-visible{outline:2px solid var(--accent-soft);outline-offset:2px;border-radius:2px}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;font-size:inherit;line-height:inherit;transition:background .12s,color .12s,border-color .12s,opacity .12s}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible{outline:2px solid var(--accent-soft);outline-offset:2px;border-radius:4px}input,textarea,select{font-family:inherit;font-size:var(--text-base);color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;outline:none;transition:border-color .12s,box-shadow .12s;min-width:0}input:hover,textarea:hover,select:hover{border-color:var(--border-strong)}input:focus,textarea:focus,select:focus{border-color:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-soft-bg)}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}h1,h2,h3,h4{text-wrap:balance;scroll-margin-top:calc(var(--nav-h) + 16px);font-weight:500;color:var(--text);letter-spacing:-.01em}h1{font-size:var(--text-2xl);line-height:1.2;letter-spacing:-.02em}h2{font-size:var(--text-lg);line-height:1.3}h3{font-size:var(--text-xs);font-weight:500;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em}p{color:var(--text-secondary)}code,kbd,pre,samp{font-family:var(--font-mono);font-size:.92em}hr{border:0;border-top:1px solid var(--border);margin:var(--space-6) 0}.tabular-nums{font-variant-numeric:tabular-nums}.scroll-list{content-visibility:auto;contain-intrinsic-size:auto 60px}.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}.skip-link{position:absolute;left:8px;top:8px;padding:8px 12px;background:var(--accent);color:var(--accent-fg);border-radius:var(--radius-sm);font-size:var(--text-base);font-weight:500;z-index:100;transform:translateY(-200%);transition:transform .15s}.skip-link:focus{transform:translateY(0)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 12px;font-size:var(--text-base);font-weight:500;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text);white-space:nowrap}.btn:hover:not(:disabled){background:var(--bg-hover)}.btn-primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-ghost{border-color:transparent;background:transparent}.btn-ghost:hover:not(:disabled){background:var(--bg-hover)}.btn-sm{height:26px;padding:0 10px;font-size:var(--text-sm)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;height:30px;width:30px;padding:0;border:1px solid transparent;background:transparent;color:var(--text-secondary);border-radius:var(--radius-sm);line-height:1}.btn-icon:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.btn-icon>svg{display:block}.label{font-size:var(--text-xs);font-weight:500;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em}.divide-y>*+*{border-top:1px solid var(--border)}.hover-row{transition:background .12s}.hover-row:hover{background:var(--bg-hover)}.row-divider{border-top:1px solid var(--border)}.section{padding:var(--space-8) 0;border-bottom:1px solid var(--border)}.surface{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius)}.card-form{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-5)}.muted{color:var(--text-secondary)}.faint{color:var(--text-tertiary)}.mono{font-family:var(--font-mono);font-size:.92em}.echelon-logo{display:block;width:72px;height:auto;object-fit:contain;filter:invert(1);mix-blend-mode:multiply}:root[data-theme=dark] .echelon-logo{filter:none;mix-blend-mode:screen}@media(prefers-color-scheme:dark){:root:not([data-theme]) .echelon-logo{filter:none;mix-blend-mode:screen}}.navbar-signout{display:inline-flex;align-items:center;height:28px;padding:0 10px;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:500;color:var(--text-tertiary);background:transparent;border:1px solid var(--border)}.navbar-signout:hover{color:var(--text);border-color:var(--border-strong);background:var(--bg-hover)}.google-auth-button{width:100%;height:44px;display:flex;align-items:center;justify-content:center;gap:10px;padding:0 16px;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);font-size:var(--text-base);font-weight:500}.google-auth-button:hover:not(:disabled){background:var(--bg-hover)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:5px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}::selection{background:var(--accent-soft-bg);color:var(--text)}
