:root{--green:#1a7f37;--green-bg:#e6f4ea;--red:#b91c1c;--red-bg:#fdecec;--blue:#1a56db;--blue-bg:#e8f0fe;--gray:#6b7280;--gray-bg:#f3f4f6;--border:#e5e7eb;--bg:#0f1115;--card:#171a21;--card-border:#262b36;--text:#e6e8eb;--text-dim:#8b93a3}body{background:#0f1115;background:var(--bg);color:#e6e8eb;color:var(--text);font-family:-apple-system,Amazon Ember,Arial,sans-serif;margin:0}.sw-header{align-items:center;background:#12141a;border-bottom:1px solid #262b36;border-bottom:1px solid var(--card-border);display:flex;justify-content:space-between;padding:18px 32px}.sw-header h1{font-size:19px;margin:0}.sw-header .subtitle{color:#8b93a3;color:var(--text-dim);font-size:12px;margin-top:4px}.live-pill{align-items:center;background:#3b82f61f;border-radius:999px;color:#7dd3fc;display:inline-flex;font-size:12px;gap:6px;padding:4px 10px}.live-pill .dot{animation:livedot 1.2s infinite;background:#38bdf8;border-radius:50%;height:7px;width:7px}@keyframes livedot{0%,to{opacity:1}50%{opacity:.25}}.sw-main{margin:0 auto;max-width:1080px;padding:28px 20px 80px}.card{background:#171a21;background:var(--card);border:1px solid #262b36;border:1px solid var(--card-border);border-radius:12px;margin-bottom:22px;overflow:hidden}.card-header{align-items:center;border-bottom:1px solid #262b36;border-bottom:1px solid var(--card-border);display:flex;justify-content:space-between;padding:16px 22px}.league-name{font-size:16px;font-weight:700}.league-sub{color:#8b93a3;color:var(--text-dim);font-size:12px;margin-top:2px}.run-selector{background:#1a1f2b;border:1px solid #262b36;border:1px solid var(--card-border);border-radius:8px;color:#e6e8eb;color:var(--text);font-size:13px;max-width:320px;padding:6px 10px}.run-selector.viewing-live{border-color:#1a56db;border-color:var(--blue)}.badge{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:600;gap:6px;padding:5px 12px}.badge .dot{border-radius:50%;height:8px;width:8px}.badge.success{background:#e6f4ea;background:var(--green-bg);color:#1a7f37;color:var(--green)}.badge.success .dot{background:#1a7f37;background:var(--green)}.badge.failed{background:#fdecec;background:var(--red-bg);color:#b91c1c;color:var(--red)}.badge.failed .dot{background:#b91c1c;background:var(--red)}.badge.running{background:#e8f0fe;background:var(--blue-bg);color:#1a56db;color:var(--blue)}.badge.running .dot{animation:pulse 1.4s infinite;background:#1a56db;background:var(--blue)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.flow{gap:0;overflow-x:auto;padding:30px 22px 10px}.flow,.flow-node{align-items:center;display:flex}.flow-node{flex-direction:column;min-width:108px;position:relative}.flow-node .circle{align-items:center;background:#2a2f3a;border:2px solid #0000;border-radius:50%;color:#fff;display:flex;font-size:18px;font-weight:700;height:46px;justify-content:center;width:46px;z-index:2}.flow-node.done .circle{background:#1a7f37;background:var(--green)}.flow-node.active .circle{animation:ripple 1.6s infinite;background:#1a56db;background:var(--blue);box-shadow:0 0 0 0 #3b82f680}@keyframes ripple{0%{box-shadow:0 0 0 0 #3b82f68c}70%{box-shadow:0 0 0 14px #3b82f600}to{box-shadow:0 0 0 0 #3b82f600}}.flow-node.failed .circle{background:#b91c1c;background:var(--red)}.flow-node.pending .circle{background:#2a2f3a;color:#6b7280}.flow-node .label{color:#8b93a3;color:var(--text-dim);font-size:12px;margin-top:8px;max-width:100px;text-align:center}.flow-node.active .label,.flow-node.done .label{color:#e6e8eb;color:var(--text)}.flow-node .time{color:#8b93a3;color:var(--text-dim);font-size:11px;margin-top:2px}.flow-connector{background:#2a2f3a;border-radius:2px;flex:1 1;height:3px;margin-top:-22px;min-width:40px;overflow:hidden;position:relative}.flow-connector.done{background:#1a7f37;background:var(--green)}.flow-connector.active{background:linear-gradient(90deg,#1a56db,#2a2f3a);background:linear-gradient(90deg,var(--blue) 0,#2a2f3a 100%)}.flow-connector.active:after{animation:travel 1.4s linear infinite;background:linear-gradient(90deg,#0000,#7dd3fc,#0000);content:"";height:100%;left:-30%;position:absolute;top:0;width:30%}@keyframes travel{0%{left:-30%}to{left:100%}}.metric-panel{grid-gap:18px;display:grid;gap:18px;grid-template-columns:1.3fr 1fr;padding:6px 22px 22px}.chart-box{background:#12141a;border:1px solid #262b36;border:1px solid var(--card-border);border-radius:10px;padding:14px 16px}.chart-box .chart-title{color:#8b93a3;color:var(--text-dim);display:flex;font-size:12px;justify-content:space-between;margin-bottom:6px}.chart-box .chart-title .val{color:#7dd3fc;font-weight:700}svg.sparkline{display:block;height:90px;width:100%}.sparkline .line{fill:none;stroke:#38bdf8;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.sparkline .glow-point{fill:#7dd3fc;filter:drop-shadow(0 0 4px #38bdf8)}.sparkline .gridline{stroke:#22262f;stroke-width:1}.scorecard{background:#12141a;border:1px solid #262b36;border:1px solid var(--card-border);border-radius:10px;display:flex;flex-direction:column;gap:10px;padding:14px 16px}.scorecard .title{color:#8b93a3;color:var(--text-dim);font-size:12px}.ring-row{display:flex;flex-wrap:wrap;gap:14px}.ring{align-items:center;display:flex;flex-direction:column;gap:4px}.ring svg{height:64px;width:64px}.ring .ring-bg{fill:none;stroke:#22262f;stroke-width:6}.ring .ring-fg{fill:none;stroke-width:6;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset 1s ease}.ring .ring-fg.good{stroke:#1a7f37;stroke:var(--green)}.ring .ring-fg.warn{stroke:#f59e0b}.ring .ring-label{color:#8b93a3;color:var(--text-dim);font-size:11px}.ring-num{font-size:13px;font-weight:700;margin-top:-46px;position:relative;text-align:center}.meta-row{color:#8b93a3;color:var(--text-dim);display:flex;font-size:12px;gap:20px;padding:10px 22px 0}.gate-note{background:#10b98114;border:1px solid #10b98140;border-radius:8px;color:#6ee7b7;font-size:12px;margin:0 22px 18px;padding:10px 14px}.gate-note.failed{background:#b91c1c14;border-color:#b91c1c4d;color:#fca5a5}.sw-footer{color:#8b93a3;color:var(--text-dim);font-size:12px;padding:24px;text-align:center}
/*# sourceMappingURL=main.f68c2201.css.map*/