:root{--bg:#0b1020;--surface:#141b30;--surface-2:#1b2440;--border:#26304f;--text:#e7ecf7;--muted:#92a0c0;--accent:#6d5cf6;--accent-700:#5a48e6;--pos:#22c55e;--neg:#ef4444;--warn:#f59e0b;--radius:10px;--font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}*{box-sizing:border-box;margin:0;padding:0}body,html{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select{font-family:inherit;font-size:14px}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.box{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px;width:100%;max-width:420px;box-shadow:0 20px 60px -20px #000}.brand{font-size:20px;font-weight:700;margin-bottom:4px}.brand .dot{color:var(--accent)}.sub{font-size:13px}.sub,label{color:var(--muted)}label{display:block;font-size:12px;margin:12px 0 4px}input,select{width:100%;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;color:var(--text)}.btn{margin-top:14px;width:100%;padding:11px;background:var(--accent);border:none;border-radius:9px;color:#fff;font-weight:600;cursor:pointer}.btn:hover{background:var(--accent-700)}.btn.sm{width:auto;margin:0;padding:7px 12px;font-size:13px}.btn.ghost{background:transparent;border:1px solid var(--border);color:var(--text)}.btn.danger{background:var(--neg)}.erro{color:#ffb4b4;background:#3a1620;border:1px solid #5a2230;border-radius:8px}.erro,.ok{padding:9px 11px;font-size:13px;margin-top:10px}.ok{color:#bff5d0;background:#103022;border:1px solid #1f5a3a;border-radius:8px}.shell{display:flex;min-height:100vh}.side{width:230px;flex:0 0 230px;background:var(--surface);border-right:1px solid var(--border);padding:16px 12px;position:fixed;inset:0 auto 0 0}.side .logo{font-weight:700;font-size:16px;padding:6px 10px 16px}.side button{display:block;width:100%;text-align:left;padding:10px 12px;border-radius:9px;background:transparent;border:none;color:var(--muted);cursor:pointer;font-weight:500}.side button:hover{background:var(--surface-2);color:var(--text)}.side button.active{background:#23305a;color:#fff}.main{margin-left:230px;flex:1 1;padding:24px 28px;max-width:1200px}.head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.h1{font-size:22px;font-weight:700}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:14px;gap:14px;margin-bottom:8px}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px}.card .k{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px}.card .v{font-size:28px;font-weight:700;margin-top:6px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:6px 0;margin-top:14px;overflow:hidden}table{width:100%;border-collapse:collapse;font-size:13.5px}td,th{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border)}th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.5px}tr:last-child td{border-bottom:none}tbody tr{cursor:pointer}tbody tr:hover{background:var(--surface-2)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:#23305a;color:#cfe}.badge.green{background:#103022;color:#5ee29a}.badge.red{background:#3a1620;color:#ff9b9b}.badge.gray{background:#222a44;color:#9fb0d6}.searchbar{display:flex;gap:10px;margin-bottom:12px}.searchbar input{max-width:340px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.mono{font-family:ui-monospace,monospace}.kv{display:grid;grid-template-columns:140px 1fr;grid-gap:6px 14px;gap:6px 14px;font-size:13.5px;padding:8px 14px}.kv div:nth-child(odd){color:var(--muted)}