:root{--bg:#0b0f14;--surface:#121821;--surface-2:#1a222d;--border:#263140;--text:#e6edf3;--text-muted:#8a99a8;--accent:#e8a33d;--accent-dim:#6b5330;--link:#4fd1c5;--success:#5fd177;--danger:#e5595f;--radius:6px;--font-ui:"IBM Plex Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:14px;line-height:1.5}code,.mono{font-family:var(--font-mono)}a{color:var(--link)}button{font-family:var(--font-ui);cursor:pointer}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:24px;width:220px;padding:20px 16px;display:flex}.brand{letter-spacing:.02em;font-size:15px;font-weight:600}.brand small{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-top:2px;font-size:11px;font-weight:400;display:block}.nav-link{border-radius:var(--radius);color:var(--text-muted);margin-bottom:2px;padding:8px 10px;font-size:13px;text-decoration:none;display:block}.nav-link:hover{background:var(--surface-2);color:var(--text)}.nav-link.active{background:var(--surface-2);color:var(--accent)}.main{flex:1;max-width:1100px;padding:32px 40px}.page-header{justify-content:space-between;align-items:baseline;margin-bottom:24px;display:flex}.page-header h1{margin:0;font-size:20px}.page-header p{color:var(--text-muted);margin:4px 0 0;font-size:13px}.btn{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:8px 14px;font-size:13px}.btn:hover{border-color:var(--accent)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#1a1200;font-weight:600}.btn-primary:hover{filter:brightness(1.08)}.btn-danger{color:var(--danger)}.btn-danger:hover{border-color:var(--danger)}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:18px 20px}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);padding:8px 10px;font-size:11px;font-weight:500}td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px}tr:last-child td{border-bottom:none}.badge{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);border-radius:999px;align-items:center;gap:5px;padding:3px 8px;font-size:11px;display:inline-flex}.badge.live{color:var(--success);border-color:color-mix(in srgb, var(--success) 40%, var(--border))}.badge.error{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 40%, var(--border))}.dot{background:currentColor;border-radius:50%;width:6px;height:6px}@media (prefers-reduced-motion:no-preference){.dot.pulse{animation:1.8s ease-in-out infinite pulse}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.connector{align-items:center;gap:10px;margin:4px 0;display:flex}.connector .line{background:repeating-linear-gradient(90deg, var(--border) 0 6px, transparent 6px 10px);flex:1;height:1px;position:relative}.dsn-box{font-family:var(--font-mono);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);word-break:break-all;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;font-size:12.5px;display:flex}.copy-btn{color:var(--text-muted);background:0 0;border:none;padding:2px 6px;font-size:11px}.copy-btn:hover{color:var(--accent)}.empty-state{border:1px dashed var(--border);text-align:center;color:var(--text-muted);border-radius:8px;padding:40px 20px}.modal-backdrop{z-index:50;background:#040609a6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:10px;width:420px;max-width:90vw;padding:24px}.modal h2{margin:0 0 16px;font-size:16px}.field{margin-bottom:14px}.field label{color:var(--text-muted);margin-bottom:6px;font-size:12px;display:block}.field input,.field select{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);border-radius:var(--radius);font-family:var(--font-mono);padding:8px 10px;font-size:13px}.field input:focus,.field select:focus{border-color:var(--accent);outline:none}.modal-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.stat-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:28px;display:grid}.stat-grid .card .num{font-size:26px;font-weight:600;font-family:var(--font-mono)}.stat-grid .card .label{color:var(--text-muted);margin-top:4px;font-size:12px}.error-text{color:var(--danger);margin-top:8px;font-size:12px}.login-shell{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{width:340px}.logout-btn{margin-top:auto}.history-list{flex-direction:column;gap:8px;margin-top:8px;display:flex}.history-entry{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px}
