*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f172a;--panel: #1e293b;--panel-2: #334155;--text: #e2e8f0;--muted: #94a3b8;--accent: #38bdf8;--accent-2: #0ea5e9;--danger: #f87171;--ok: #4ade80}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text)}button{background:var(--accent-2);color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:14px;cursor:pointer}button:hover{filter:brightness(1.1)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--panel-2)}input,select,textarea{background:var(--panel-2);color:var(--text);border:1px solid #475569;border-radius:6px;padding:8px 10px;font-size:14px}input:focus,select:focus{outline:2px solid var(--accent)}label{font-size:13px;color:var(--muted);display:block;margin-bottom:4px}table{border-collapse:collapse;width:100%;font-size:13px}th,td{padding:6px 10px;text-align:left;border-bottom:1px solid var(--panel-2)}th{color:var(--muted);font-weight:600}.error{color:var(--danger);font-size:13px}.success{color:var(--ok);font-size:13px}.topbar{display:flex;align-items:center;gap:24px;padding:12px 24px;background:var(--panel);border-bottom:1px solid var(--panel-2)}.topbar .brand{font-weight:700;color:var(--accent);font-size:16px}.topbar nav{display:flex;gap:4px;flex:1}.topbar nav a{color:var(--muted);text-decoration:none;padding:6px 12px;border-radius:6px;font-size:14px}.topbar nav a.active,.topbar nav a:hover{color:var(--text);background:var(--panel-2)}.topbar .user{font-size:13px;color:var(--muted)}.page{padding:24px 32px;width:100%}.page h1{font-size:20px;margin-bottom:16px}.panel{background:var(--panel);border:1px solid var(--panel-2);border-radius:10px;padding:16px}.row{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:16px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{background:var(--panel);padding:40px;border-radius:12px;width:360px;display:flex;flex-direction:column;gap:14px;border:1px solid var(--panel-2)}.login-card h1{font-size:18px;text-align:center;color:var(--accent)}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.card{background:var(--panel);border:1px solid var(--panel-2);border-radius:10px;padding:20px;cursor:pointer;transition:border-color .15s}.card:hover{border-color:var(--accent)}.card h3{font-size:15px;margin-bottom:6px}.card p{font-size:13px;color:var(--muted)}.loading-grid{display:grid;grid-template-columns:clamp(380px,30vw,560px) 1fr;gap:16px}@media (max-width: 1000px){.loading-grid{grid-template-columns:1fr}}.table-scroll{max-height:260px;overflow-y:auto}.table-scroll thead th{position:sticky;top:0;background:var(--panel);z-index:1}.log-area{font-family:monospace;font-size:12px;white-space:pre-wrap;background:#0b1220;border-radius:6px;padding:10px;max-height:220px;overflow-y:auto;color:#a5b4fc}.canvas-wrap{height:calc(100vh - 180px);min-height:420px;border-radius:10px;overflow:hidden;background:#0b1220}.legend{display:flex;flex-wrap:wrap;gap:8px;font-size:12px}.legend span{display:inline-flex;align-items:center;gap:5px}.legend i{width:12px;height:12px;border-radius:3px;display:inline-block}.stat{font-size:13px;color:var(--muted)}.stat b{color:var(--text)}
