:root{color-scheme:light dark;--color-bg: #f4f6fb;--color-bg-elev: #ffffff;--color-sidebar: #0b1220;--color-sidebar-text: #cbd5e1;--color-sidebar-text-muted: #64748b;--color-sidebar-active: #1d4ed8;--color-border: #e2e8f0;--color-text: #0f172a;--color-text-muted: #475569;--color-text-faint: #94a3b8;--color-primary: #1d4ed8;--color-primary-hover: #1e40af;--color-primary-text: #ffffff;--color-error: #b91c1c;--color-error-bg: #fef2f2;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-8: 3rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 4px 12px rgba(15, 23, 42, .08);--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, "Cascadia Mono", monospace;--sidebar-width: 256px;--topbar-height: 56px}@media (prefers-color-scheme: dark){:root{--color-bg: #0f172a;--color-bg-elev: #111c33;--color-sidebar: #060b18;--color-sidebar-text: #cbd5e1;--color-sidebar-text-muted: #64748b;--color-border: #1e293b;--color-text: #e2e8f0;--color-text-muted: #94a3b8;--color-text-faint: #64748b;--color-error-bg: #2a0f10}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.mono{font-family:var(--font-mono)}.muted{color:var(--color-text-muted)}.error-text{color:var(--color-error)}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) 1fr;min-height:100%}.app-sidebar{background:var(--color-sidebar);color:var(--color-sidebar-text);padding:var(--space-5) var(--space-4);position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6)}.brand-mark{display:inline-grid;place-items:center;width:32px;height:32px;background:var(--color-primary);color:#fff;font-weight:700;border-radius:var(--radius-md);letter-spacing:.04em}.brand-text{color:#fff;font-weight:600;font-size:.95rem}.nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.nav-list--future{opacity:.6;margin-top:var(--space-2)}.nav-section-title{margin-top:var(--space-5);margin-bottom:var(--space-2);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-sidebar-text-muted)}.nav-link{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-sidebar-text);font-size:.875rem;cursor:pointer}.nav-link:hover{background:#ffffff0a;text-decoration:none}.nav-link.is-active{background:var(--color-sidebar-active);color:#fff}.nav-link.is-disabled{cursor:not-allowed;color:var(--color-sidebar-text-muted)}.nav-link.is-disabled:hover{background:transparent}.nav-phase{font-size:.7rem;color:var(--color-sidebar-text-muted);background:#ffffff0a;padding:1px var(--space-2);border-radius:999px}.app-main{display:flex;flex-direction:column;min-width:0}.app-topbar{height:var(--topbar-height);display:flex;justify-content:space-between;align-items:center;padding:0 var(--space-6);background:var(--color-bg-elev);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10}.topbar-title{font-weight:600;font-size:.95rem}.env-pill{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;padding:2px var(--space-2);border-radius:999px;background:var(--color-border);color:var(--color-text-muted)}.env-pill[data-env=production]{background:#14532d;color:#d1fae5}.env-pill[data-env=staging]{background:#7c2d12;color:#fed7aa}.app-content{padding:var(--space-6);max-width:1280px;width:100%;margin:0 auto}.page-title{font-size:1.5rem;margin:0 0 var(--space-2)}.page-subtitle{margin:0 0 var(--space-6);color:var(--color-text-muted);max-width:60ch}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-4)}.card{background:var(--color-bg-elev);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm)}.card-title{margin:0 0 var(--space-3);font-size:.95rem;font-weight:600}.meta-list{margin:0;display:grid;grid-template-columns:max-content 1fr;column-gap:var(--space-4);row-gap:var(--space-2)}.meta-list dt{color:var(--color-text-muted);font-size:.8rem}.meta-list dd{margin:0;word-break:break-all}.login-page{min-height:100vh;display:grid;place-items:center;padding:var(--space-6);background:linear-gradient(180deg,var(--color-bg) 0%,var(--color-bg-elev) 100%)}.login-card{background:var(--color-bg-elev);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);width:100%;max-width:420px;box-shadow:var(--shadow-md)}.login-brand{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5)}.login-title{margin:0 0 var(--space-2);font-size:1.25rem}.login-subtitle{margin:0 0 var(--space-5);color:var(--color-text-muted);font-size:.85rem}.login-form{display:flex;flex-direction:column;gap:var(--space-4)}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field-label{font-size:.8rem;color:var(--color-text-muted)}.field input{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:.9rem}.field input:disabled{opacity:.6;cursor:not-allowed}.btn{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid transparent;font-weight:600;font-size:.9rem;cursor:pointer}.btn-primary{background:var(--color-primary);color:var(--color-primary-text)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn:disabled{opacity:.6;cursor:not-allowed}.login-footer{margin-top:var(--space-5);text-align:center;font-size:.85rem}@media (max-width: 768px){.app-shell{grid-template-columns:1fr}.app-sidebar{position:static;height:auto;padding:var(--space-3) var(--space-4)}.app-content{padding:var(--space-4)}}
