:root{--bg: #0a0a0b;--bg-elevated: #121214;--bg-subtle: #1a1a1e;--fg: #f4f4f5;--fg-muted: #a1a1aa;--fg-subtle: #71717a;--border: color-mix(in oklab, var(--fg) 12%, transparent);--border-strong: color-mix(in oklab, var(--fg) 22%, transparent);--accent: #c8ccd4;--accent-fg: #0a0a0b;--danger: #f87171;--ok: #4ade80;--warn: #fbbf24;--radius-xs: 4px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--font: "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.5rem;--text-2xl: 2rem;--motion-quick: .15s;--motion-fast: .25s;--ease: cubic-bezier(.22, 1, .36, 1);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px);--nav-h: 64px}*,*:before,*:after{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font);background:var(--bg);color:var(--fg);line-height:1.5;-webkit-font-smoothing:antialiased}button:not(:disabled),[role=button]:not(:disabled){cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#app{min-height:100%}.app-shell{min-height:100dvh;display:flex;flex-direction:column;padding-top:var(--safe-top);padding-bottom:calc(var(--nav-h) + var(--safe-bottom))}.app-shell.auth{padding-bottom:var(--safe-bottom)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:10}.brand{font-weight:600;letter-spacing:-.02em;font-size:var(--text-base)}.status-pill{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--fg-muted);background:var(--bg-subtle);border:1px solid var(--border);border-radius:999px;padding:6px 10px;max-width:55vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--fg-subtle)}.dot.ok{background:var(--ok)}.dot.warn{background:var(--warn)}.dot.err{background:var(--danger)}.main{flex:1;width:100%;max-width:720px;margin:0 auto;padding:var(--space-5) var(--space-4)}.nav{position:fixed;left:0;right:0;bottom:0;height:calc(var(--nav-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);display:grid;grid-template-columns:repeat(4,1fr);background:var(--bg-elevated);border-top:1px solid var(--border);z-index:20}.nav button{appearance:none;border:0;background:transparent;color:var(--fg-subtle);font:inherit;font-size:var(--text-xs);font-weight:500;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:44px;transition:color var(--motion-quick) var(--ease)}.nav button.active{color:var(--fg)}.nav svg{width:20px;height:20px}h1{font-size:var(--text-2xl);font-weight:600;letter-spacing:-.03em;line-height:1.15;margin:0 0 var(--space-3)}h2{font-size:var(--text-lg);font-weight:600;letter-spacing:-.02em;margin:0 0 var(--space-3)}.lead{color:var(--fg-muted);margin:0 0 var(--space-5);font-size:var(--text-base)}.muted{color:var(--fg-muted);font-size:var(--text-sm)}.mono{font-family:var(--font-mono);font-size:var(--text-xs);word-break:break-all}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-5);margin-bottom:var(--space-4)}.card>.card-title{font-size:var(--text-sm);font-weight:600;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 var(--space-3)}.stack{display:flex;flex-direction:column;gap:var(--space-3)}.row{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:center}label{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);font-weight:500;color:var(--fg-muted)}input,textarea{appearance:none;width:100%;min-height:44px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg);color:var(--fg);font:inherit;font-size:var(--text-base);padding:10px 12px;transition:border-color var(--motion-quick) var(--ease)}textarea{min-height:100px;resize:vertical}input:focus,textarea:focus{border-color:var(--accent);outline:none}.btn{appearance:none;border:1px solid transparent;border-radius:var(--radius-sm);min-height:44px;padding:10px 16px;font:inherit;font-weight:600;font-size:var(--text-sm);transition:transform var(--motion-quick) var(--ease),opacity var(--motion-quick) var(--ease)}.btn:active:not(:disabled){transform:scale(.98)}.btn-primary{background:var(--accent);color:var(--accent-fg)}.btn-secondary{background:transparent;border-color:var(--border-strong);color:var(--fg)}.btn-danger{background:transparent;border-color:color-mix(in oklab,var(--danger) 40%,transparent);color:var(--danger)}.btn-block{width:100%}.btn-ghost{background:transparent;border:0;color:var(--fg-muted);min-height:36px;padding:6px 10px}.list{list-style:none;margin:0;padding:0}.list li{border-top:1px solid var(--border);padding:var(--space-4) 0}.list li:first-child{border-top:0;padding-top:0}.list .item-title{font-weight:600;margin-bottom:4px}.list .item-body{color:var(--fg-muted);font-size:var(--text-sm);white-space:pre-wrap}.list .item-meta{color:var(--fg-subtle);font-size:var(--text-xs);margin-top:6px}.banner{border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);margin-bottom:var(--space-4);border:1px solid var(--border);background:var(--bg-subtle)}.banner.error{border-color:color-mix(in oklab,var(--danger) 35%,transparent);color:var(--danger)}.banner.ok{border-color:color-mix(in oklab,var(--ok) 35%,transparent);color:var(--ok)}.banner.warn{border-color:color-mix(in oklab,var(--warn) 35%,transparent);color:var(--warn)}.recovery-box{font-family:var(--font-mono);font-size:var(--text-base);letter-spacing:.04em;background:var(--bg);border:1px dashed var(--border-strong);border-radius:var(--radius-md);padding:var(--space-4);text-align:center;user-select:all}.skeleton{height:14px;border-radius:4px;background:linear-gradient(90deg,var(--bg-subtle),var(--bg-elevated),var(--bg-subtle));background-size:200% 100%;animation:shimmer 1.2s linear infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.empty{text-align:center;padding:var(--space-7) var(--space-4);color:var(--fg-muted)}.empty h2{color:var(--fg)}.auth-screen{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;max-width:440px;margin:0 auto;padding:var(--space-6) var(--space-4);padding-top:calc(var(--safe-top) + var(--space-6));padding-bottom:calc(var(--safe-bottom) + var(--space-6))}@media (min-width: 768px){.nav{left:50%;transform:translate(-50%);max-width:720px;border-radius:var(--radius-lg) var(--radius-lg) 0 0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
