:root{color-scheme:dark;--bg: #0c0f14;--bg-elevated: #141a22;--border: #252d3a;--text: #e8eaed;--text-muted: #8b949e;--accent: #e8a54b;--accent-dim: #c47f2d;--danger: #f85149;--ok: #3fb950;--font: "DM Sans", system-ui, sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.5}#root{min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer}input{font-family:inherit}.shell{min-height:100vh;display:flex;flex-direction:column}.shell-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:var(--bg-elevated);border-bottom:1px solid var(--border)}.shell-brand{font-weight:700;font-size:1.05rem;letter-spacing:-.02em;color:var(--text)}.shell-nav{display:flex;gap:1.25rem;align-items:center}.shell-nav a{color:var(--text-muted);font-weight:500;font-size:.9rem;text-decoration:none}.shell-nav a:hover{color:var(--accent);text-decoration:none}.shell-nav a.active{color:var(--accent)}.shell-body{flex:1;padding:1.75rem 1.5rem 2.5rem;max-width:1200px;width:100%;margin:0 auto}.shell-meta{font-size:.8rem;color:var(--text-muted);display:flex;align-items:center;gap:1rem}.btn{border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);padding:.45rem .9rem;border-radius:8px;font-size:.875rem;font-weight:500}.btn:hover{border-color:var(--accent-dim);color:var(--accent)}.btn-primary{background:linear-gradient(160deg,var(--accent) 0%,var(--accent-dim) 100%);border:none;color:var(--bg);font-weight:600}.btn-primary:hover{filter:brightness(1.06);color:var(--bg)}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;padding:1.25rem 1.5rem;margin-bottom:1.25rem}.card h2{margin:0 0 1rem;font-size:1rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem}.stat{padding:1rem;background:var(--bg);border-radius:10px;border:1px solid var(--border)}.stat-value{font-family:var(--mono);font-size:1.5rem;font-weight:500;color:var(--accent)}.stat-label{font-size:.75rem;color:var(--text-muted);margin-top:.25rem;text-transform:uppercase;letter-spacing:.04em}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:.875rem}table.data th,table.data td{text-align:left;padding:.65rem .75rem;border-bottom:1px solid var(--border)}table.data th{color:var(--text-muted);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}table.data tr:hover td{background:#e8a54b0f}.badge{display:inline-block;font-size:.7rem;font-weight:600;padding:.15rem .45rem;border-radius:4px;text-transform:uppercase;letter-spacing:.04em}.badge-admin{background:#3fb95033;color:var(--ok)}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.field label{font-size:.8rem;color:var(--text-muted);font-weight:500}.field input{padding:.6rem .75rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);max-width:320px}.field input:focus{outline:none;border-color:var(--accent-dim)}.muted{color:var(--text-muted);font-size:.875rem}.error{color:var(--danger);font-size:.875rem}.center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.login-card{width:100%;max-width:380px}.login-card h1{margin:0 0 .25rem;font-size:1.5rem}.spinner{color:var(--text-muted);font-size:.9rem}.toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:1rem}.mono{font-family:var(--mono);font-size:.8rem;word-break:break-all}.h-sub{margin:1rem 0 .4rem;font-size:.8rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.mono-list{margin:.35rem 0 .75rem;padding-left:1.25rem;font-family:var(--mono);font-size:.8rem;color:var(--text-muted)}.mono-list li{margin-bottom:.25rem}.kv{display:grid;grid-template-columns:minmax(160px,200px) 1fr;gap:.5rem 1rem;margin:1rem 0;font-size:.875rem}.kv dt{margin:0;color:var(--text-muted);font-weight:500}.kv dd{margin:0}.tag-ok{color:var(--ok);font-weight:600}.tag-warn{color:var(--accent);font-weight:600}.success{color:var(--ok);font-size:.875rem}
