:root{--ink:#14171a;--ink-soft:#5b6470;--ink-faint:#8992a0;--paper:#f4f5f7;--panel:#fff;--line:#e4e7eb;--accent:#2c4a7c;--accent-soft:#e9eef7;--good:#1f7a4d;--good-soft:#e5f4ec;--warn:#9a6a12;--warn-soft:#fbf1de;--bad:#a3352a;--bad-soft:#fbeae7;--sidebar-w:216px;--radius:8px}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px}a{color:inherit}h1{margin:0 0 4px;font-size:20px}h2{margin:0 0 12px;font-size:15px}h3{margin:0;font-size:13px}.shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--ink);color:#cfd6e0;flex-shrink:0;height:100vh;padding:20px 14px;position:sticky;top:0;overflow-y:auto}.sidebar .brand{color:#fff;letter-spacing:.02em;padding:0 8px 18px;font-size:14px;font-weight:700}.sidebar nav{flex-direction:column;gap:2px;display:flex}.sidebar a{color:#b7c0cf;border-radius:6px;padding:8px 10px;font-size:13px;text-decoration:none;display:block}.sidebar a:hover{color:#fff;background:#ffffff0f}.sidebar a.active{background:var(--accent);color:#fff}.sidebar .section-label{text-transform:uppercase;letter-spacing:.08em;color:#6d7684;padding:16px 10px 6px;font-size:10px}.content{flex:1;max-width:1180px;padding:28px 36px;overflow-x:auto}.page-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-head p{color:var(--ink-soft);margin-top:4px;font-size:13px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;margin-bottom:20px;padding:20px}.grid{gap:16px;display:grid}.grid.cols-5{grid-template-columns:repeat(5,1fr)}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}@media (max-width:1100px){.grid.cols-5{grid-template-columns:repeat(3,1fr)}}@media (max-width:900px){.grid.cols-4,.grid.cols-3,.grid.cols-2,.grid.cols-5{grid-template-columns:1fr 1fr}}.stat{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px 18px}.stat .label{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);margin-bottom:6px;font-size:11px}.stat .value{font-variant-numeric:tabular-nums;font-size:26px;font-weight:700}table{border-collapse:collapse;width:100%;font-size:13px}thead th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 10px;font-size:11px}tbody td{border-bottom:1px solid var(--line);white-space:nowrap;font-variant-numeric:tabular-nums;padding:9px 10px}tbody tr:hover{background:#fafbfc}tbody tr:last-child td{border-bottom:none}.table-scroll{overflow-x:auto}.pagination{justify-content:center;align-items:center;gap:16px;margin-top:16px;display:flex}.pagination button{padding:6px 12px;font-size:12px}.pagination button:disabled{opacity:.4;cursor:not-allowed}.pill{text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;border-radius:100px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-block}.pill.good{background:var(--good-soft);color:var(--good)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.bad{background:var(--bad-soft);color:var(--bad)}.pill.neutral{color:var(--ink-soft);background:#eef0f3}form.inline{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}label{color:var(--ink-soft);flex-direction:column;gap:5px;font-size:12px;font-weight:600;display:flex}input,select,textarea{border:1px solid var(--line);border-radius:6px;min-width:140px;padding:7px 9px;font-family:inherit;font-size:13px}textarea{resize:vertical;width:100%}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button{cursor:pointer;background:var(--accent);color:#fff;border:none;border-radius:6px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:600}button:disabled{opacity:.5;cursor:default}button.secondary{color:var(--accent);border:1px solid var(--accent);background:0 0}button.ghost{color:var(--ink-soft);border:1px solid var(--line);background:0 0}.error{background:var(--bad-soft);color:var(--bad);border:1px solid #f0c9c1;border-radius:6px;margin-bottom:14px;padding:9px 12px;font-size:13px}.success{background:var(--good-soft);color:var(--good);border:1px solid #cfe0d9;border-radius:6px;margin-bottom:14px;padding:9px 12px;font-size:13px}.muted{color:var(--ink-faint);font-size:12px}.login-wrap{max-width:380px;margin:96px auto;padding:0 20px}.login-wrap .panel{margin-bottom:0}.tag-row{flex-wrap:wrap;gap:6px;display:flex}.tabs{border-bottom:1px solid var(--line);gap:4px;margin-bottom:20px;display:flex}.tabs button{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 16px;font-size:14px;font-weight:600}.tabs button:hover{color:var(--ink)}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.realtime-hero{flex-direction:column;gap:16px;display:flex}.realtime-now{align-items:center;gap:14px;display:flex}.realtime-dot{background:var(--good);border-radius:50%;flex-shrink:0;width:12px;height:12px;animation:1.6s ease-in-out infinite realtime-pulse}@keyframes realtime-pulse{0%,to{opacity:1;box-shadow:0 0 #2ea04366}50%{opacity:.6;box-shadow:0 0 0 6px #2ea04300}}.realtime-number{color:var(--ink);font-variant-numeric:tabular-nums;font-size:40px;font-weight:800;line-height:1}.realtime-label{color:var(--ink-soft);margin-top:4px;font-size:13px}.realtime-chart{align-items:flex-end;gap:2px;height:90px;padding:0 2px;display:flex}.realtime-bar{background:var(--accent);opacity:.85;border-radius:2px 2px 0 0;flex:1;min-height:3px;transition:height .3s}.realtime-chart-axis{color:var(--ink-faint);justify-content:space-between;margin-top:-12px;font-size:11px;display:flex}.realtime-breakdown{border-top:1px solid var(--line);color:var(--ink);flex-wrap:wrap;gap:20px;padding-top:12px;font-size:13px;font-weight:600;display:flex}.realtime-breakdown>div{align-items:center;gap:8px;display:flex}code.mono{background:#f1f2f4;border-radius:4px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.flow-canvas{align-items:stretch;gap:0;padding:24px 4px 12px;display:flex;overflow-x:auto}.flow-canvas.flow-vertical{flex-direction:column;align-items:stretch;overflow-x:visible}.flow-node{background:var(--panel);border:1.5px solid var(--line);border-radius:12px;flex-shrink:0;width:220px;padding:14px;transition:border-color .15s,box-shadow .15s;position:relative}.flow-node.flow-node-active{border-color:var(--good);box-shadow:0 0 0 3px var(--good-soft)}.flow-node.flow-node-inactive{opacity:.55}.flow-node.flow-node-selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.flow-node-index{background:var(--ink);color:#fff;border-radius:100px;padding:2px 7px;font-size:10px;font-weight:700;position:absolute;top:-10px;left:12px}.flow-node-title{margin-top:4px;margin-bottom:4px;font-size:13px;font-weight:700}.flow-node-subtitle{color:var(--ink-soft);margin-bottom:10px;font-size:11px}.flow-node-badges{flex-wrap:wrap;gap:4px;margin-bottom:10px;display:flex}.flow-node-actions{flex-direction:column;gap:6px;display:flex}.flow-node-actions button{width:100%;padding:6px 8px;font-size:11px}.flow-connector{width:36px;color:var(--ink-faint);flex-shrink:0;justify-content:center;align-self:center;align-items:center;margin-top:-20px;font-size:18px;display:flex}.flow-connector-vertical{color:var(--accent);text-transform:uppercase;letter-spacing:.04em;align-self:flex-start;margin-left:24px;padding:4px 0;font-size:13px;font-weight:700}.flow-condition-row{background:var(--panel);border:1.5px solid var(--line);border-radius:10px;align-items:center;gap:10px;padding:10px 14px;display:flex}.flow-condition-row .var-chip{background:var(--accent-soft);color:var(--accent);border-radius:100px;padding:3px 10px;font-size:12px;font-weight:700}
