:root{--bg: #0f1217;--bg-panel: #161b23;--bg-elevated: #1d242f;--border: #2a3342;--text: #dce3ee;--text-dim: #8b96a8;--accent: #4f7cff;--accent-dim: #33518f;--green: #3aa675;--amber: #d9a13c;--red: #d64545;--mono: "SF Mono", ui-monospace, Menlo, Consolas, monospace}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-shell{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:var(--bg-panel);border-right:1px solid var(--border);padding:16px 12px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}.sidebar .brand{font-weight:700;font-size:15px;padding:4px 10px 16px;letter-spacing:.3px}.sidebar .brand span{color:var(--accent)}.sidebar a.nav-item{padding:8px 10px;border-radius:6px;color:var(--text-dim);font-weight:500}.sidebar a.nav-item:hover{background:var(--bg-elevated);color:var(--text);text-decoration:none}.sidebar a.nav-item.active{background:var(--accent-dim);color:#fff}.sidebar .spacer{flex:1}.sidebar .account{font-size:12px;color:var(--text-dim);padding:8px 10px;border-top:1px solid var(--border)}.main{flex:1;padding:24px 28px;max-width:1400px;min-width:0}h1{font-size:20px;margin:0 0 16px}h2{font-size:16px;margin:24px 0 10px}h3{font-size:14px;margin:16px 0 8px}.panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:16px;margin-bottom:16px}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data th{text-align:left;color:var(--text-dim);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap}table.data td{padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top}table.data tr:hover td{background:#ffffff05}.badge{display:inline-block;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:600;background:var(--bg-elevated);color:var(--text-dim);white-space:nowrap}.badge.status-running,.badge.status-queued,.badge.status-planning{background:#1d3054;color:#7ea6ff}.badge.status-completed{background:#14352a;color:#58c795}.badge.status-failed,.badge.status-cancelled,.badge.risk-high,.badge.risk-critical{background:#3d1d1d;color:#ef8383}.badge.status-awaiting_approval,.badge.status-paused,.badge.risk-medium{background:#3a2f16;color:#e2b45c}.badge.risk-low{background:#14352a;color:#58c795}button,.btn{background:var(--accent);border:none;color:#fff;padding:8px 14px;border-radius:6px;font-weight:600;font-size:13px;cursor:pointer}button:hover{filter:brightness(1.1)}button:disabled{opacity:.45;cursor:not-allowed}button.secondary{background:var(--bg-elevated);color:var(--text);border:1px solid var(--border)}button.danger{background:var(--red)}button.small{padding:4px 10px;font-size:12px}input,textarea,select{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:8px 10px;font-size:13px;font-family:inherit;width:100%}input:focus,textarea:focus,select:focus{outline:1px solid var(--accent)}label{display:block;font-size:12px;color:var(--text-dim);margin:10px 0 4px;font-weight:600}.form-error{color:var(--red);font-size:13px;margin-top:8px}.muted{color:var(--text-dim)}.mono{font-family:var(--mono);font-size:12px}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:16px;flex-wrap:wrap}.tabs button{background:none;color:var(--text-dim);border:none;border-bottom:2px solid transparent;border-radius:0;padding:8px 14px;font-weight:600}.tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-bottom:16px}.stat{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:12px 14px}.stat .value{font-size:22px;font-weight:700}.stat .label{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px}.activity-feed{font-family:var(--mono);font-size:12px;max-height:480px;overflow-y:auto}.activity-feed .row{padding:4px 8px;border-bottom:1px solid rgba(255,255,255,.04);display:flex;gap:10px}.activity-feed .time{color:var(--text-dim);flex-shrink:0}.activity-feed .type{color:var(--accent);flex-shrink:0;width:110px}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh}.login-card{width:380px;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:32px}.login-card h1{text-align:center}.tool-row{display:flex;align-items:center;gap:10px;padding:6px 0}.tool-row input[type=checkbox]{width:auto}.network-svg{width:100%;height:560px;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px}.row-flex{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:1000px){.grid-2{grid-template-columns:1fr}}pre.report-body{white-space:pre-wrap;font-family:inherit;font-size:14px;line-height:1.6}.detail-drawer{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:14px}.theme-toggle{padding:8px 10px}html[data-theme=light]{--bg: #f4f5f7;--bg-panel: #ffffff;--bg-elevated: #f0f2f5;--border: #d0d7de;--text: #1f2328;--text-dim: #59636e;--accent-dim: #8fb4ff}html[data-theme=light] table.data tr:hover td{background:#00000008}html[data-theme=light] .activity-feed .row{border-bottom:1px solid rgba(0,0,0,.06)}html[data-theme=light] .sidebar a.nav-item.active{color:#1f2328}html[data-theme=light] .network-svg{background:#fff}html[data-theme=light] button.secondary{color:var(--text)}html[data-theme=light] .badge{background:var(--bg-elevated);color:#1f2328}html[data-theme=light] .badge.status-completed,html[data-theme=light] .badge.risk-low{background:#dcfce7;color:#166534}html[data-theme=light] .badge.status-running,html[data-theme=light] .badge.status-queued,html[data-theme=light] .badge.status-planning{background:#dbeafe;color:#1e40af}html[data-theme=light] .badge.status-failed,html[data-theme=light] .badge.status-cancelled,html[data-theme=light] .badge.risk-high,html[data-theme=light] .badge.risk-critical{background:#fee2e2;color:#991b1b}html[data-theme=light] .badge.status-awaiting_approval,html[data-theme=light] .badge.status-paused,html[data-theme=light] .badge.risk-medium{background:#fef3c7;color:#92400e}
