:root{--bg: #0a0a0a;--surface: #141414;--surface-2: #1d1d1d;--border: #2a2a2a;--text: #f5f5f5;--text-muted: #9a9a9a;--accent: #d7263d;--accent-hover: #b81f33;--ok: #10b981;--warn: #f59e0b;--info: #3b82f6}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5}#root{min-height:100vh}a{color:var(--info);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:22px;font-weight:700}h2{font-size:18px;font-weight:600}h3{font-size:15px;font-weight:600}.shell{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);padding:20px 12px;display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar .brand{font-size:17px;font-weight:800;color:var(--accent);padding:0 10px 4px}.sidebar .brand small{display:block;color:var(--text-muted);font-weight:400;font-size:11px}.sidebar .section{margin-top:14px;padding:0 10px;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted)}.sidebar a.nav{display:block;padding:8px 10px;border-radius:8px;color:var(--text);font-size:13.5px}.sidebar a.nav:hover{background:var(--surface-2);text-decoration:none}.sidebar a.nav.active{background:var(--accent);color:#fff}.sidebar .spacer{flex:1}.sidebar .whoami{padding:10px;border-top:1px solid var(--border);font-size:12px;color:var(--text-muted)}.sidebar .whoami b{color:var(--text);display:block}.main{flex:1;padding:28px 32px;max-width:1400px;min-width:0}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:12px;flex-wrap:wrap}.page-head p{color:var(--text-muted);font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px;margin-bottom:18px}.card h3{margin-bottom:12px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:18px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px}.stat .label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.stat .value{font-size:22px;font-weight:700;margin-top:2px}.stat .sub{font-size:11px;color:var(--text-muted)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap}td{padding:10px;border-bottom:1px solid var(--border);vertical-align:middle}tr:last-child td{border-bottom:none}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--surface-2)}tr.inactive{opacity:.45}.btn{display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:#fff;border:none;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer}.btn:hover{background:var(--accent-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn.secondary:hover{background:#262626}.btn.ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn.ghost:hover{color:var(--text)}.btn.danger{background:#7f1d1d}.btn.danger:hover{background:#991b1b}.btn.sm{padding:5px 10px;font-size:12px}input,select,textarea{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 10px;font-size:13px;font-family:inherit;width:100%}input:focus,select:focus,textarea:focus{outline:1px solid var(--accent)}label{display:block;font-size:12px;color:var(--text-muted);margin-bottom:4px}.field{margin-bottom:12px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.row>*{flex-shrink:0}.row input[type=text],.row input[type=search]{width:260px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.badge.ok{background:#10b98126;color:var(--ok)}.badge.warn{background:#f59e0b26;color:var(--warn)}.badge.danger{background:#d7263d2e;color:#ff6b7d}.badge.info{background:#3b82f626;color:var(--info)}.badge.muted{background:var(--surface-2);color:var(--text-muted)}.tabs{display:flex;gap:6px;border-bottom:1px solid var(--border);margin-bottom:16px;flex-wrap:wrap}.tabs button{background:none;border:none;color:var(--text-muted);padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;border-bottom:2px solid transparent}.tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.modal h3{margin-bottom:14px}.modal .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.toast-wrap{position:fixed;bottom:20px;right:20px;z-index:100;display:flex;flex-direction:column;gap:8px}.toast{background:var(--surface-2);border:1px solid var(--border);border-left:4px solid var(--ok);border-radius:10px;padding:12px 16px;min-width:260px;max-width:400px;font-size:13px;box-shadow:0 8px 24px #0006}.toast.error{border-left-color:var(--accent)}.callout{border:1px solid var(--warn);background:#f59e0b0f;border-radius:10px;padding:12px 14px;font-size:13px;margin-bottom:16px}.callout.info{border-color:var(--info);background:#3b82f60f}.callout b{display:block;margin-bottom:2px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.muted{color:var(--text-muted)}.small{font-size:12px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:32px;width:360px}.login-card .brand{text-align:center;font-size:24px;font-weight:800;color:var(--accent)}.login-card .sub{text-align:center;color:var(--text-muted);margin-bottom:22px}.pagination{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:12px;font-size:12px;color:var(--text-muted)}
