:root{--bg:#0f1419;--bg-elevated:#1a2332;--bg-hover:#243044;--border:#2d3a4f;--text:#e7ecf3;--muted:#8b9bb4;--accent:#3d9cf0;--accent-dim:#2a6fad;--success:#3ecf8e;--danger:#f07178;--warning:#e6c07b;--radius:8px;--font:"IBM Plex Sans","Segoe UI",sans-serif;--mono:"IBM Plex Mono","Consolas",monospace}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;background:radial-gradient(ellipse at top left,#1a2838 0,var(--bg) 55%);color:var(--text);font-family:var(--font)}a{color:var(--accent);text-decoration:none}button,input,select,textarea{font:inherit}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:rgba(15,20,25,.92);border-right:1px solid var(--border);padding:1.25rem 1rem;display:flex;flex-direction:column;gap:.35rem}.brand{font-size:1.25rem;font-weight:700;letter-spacing:.02em;margin:0 0 1.25rem;color:var(--text)}.nav-link{display:block;padding:.55rem .75rem;border-radius:var(--radius);color:var(--muted)}.nav-link.active,.nav-link:hover{background:var(--bg-hover);color:var(--text)}.main{padding:1.5rem 2rem;overflow-x:auto}.page-title{margin:0 0 .35rem;font-size:1.5rem}.page-sub{margin:0 0 1.5rem;color:var(--muted);font-size:.95rem}.grid{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem}.card h3{margin:0 0 .35rem;font-size:.85rem;color:var(--muted);font-weight:500;text-transform:uppercase;letter-spacing:.04em}.card .value{font-size:1.35rem;font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border:1px solid var(--border);background:var(--bg-hover);color:var(--text);border-radius:var(--radius);padding:.45rem .85rem;cursor:pointer}.btn-primary,.btn:hover{border-color:var(--accent)}.btn-primary{background:var(--accent-dim)}.btn-danger{border-color:var(--danger);color:var(--danger)}.btn-success{border-color:var(--success);color:var(--success)}.table{width:100%;border-collapse:collapse;font-size:.92rem}.table td,.table th{text-align:left;padding:.55rem .65rem;border-bottom:1px solid var(--border)}.table th{color:var(--muted);font-weight:500}.form{display:grid;grid-gap:.75rem;gap:.75rem;max-width:480px}.form label{display:grid;grid-gap:.3rem;gap:.3rem;font-size:.9rem;color:var(--muted)}.form input,.form select,.form textarea{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:.5rem .65rem}.editor,.form textarea{font-family:var(--mono);min-height:280px;width:100%}.row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:1rem}.badge{display:inline-block;padding:.15rem .45rem;border-radius:999px;font-size:.75rem;border:1px solid var(--border);color:var(--muted)}.badge.ok{color:var(--success);border-color:var(--success)}.badge.err{color:var(--danger);border-color:var(--danger)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{width:min(400px,100%);background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;padding:2rem}.login-card h1{margin:0 0 .25rem;font-size:1.6rem}.error{color:var(--danger);font-size:.9rem}.mono{font-family:var(--mono);font-size:.85rem;white-space:pre-wrap;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;max-height:360px;overflow:auto}@media (max-width:860px){.shell{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border)}}