.hw{--hw-road: color-mix(in srgb, var(--sl-color-gray-5) 50%, var(--sl-color-bg-sidebar));--hw-edge: var(--sl-color-gray-4);--hw-dash: color-mix(in srgb, var(--sl-color-gray-4) 60%, transparent);--hw-muted: var(--sl-color-gray-3);--hw-car-flow: #60a5fa;--hw-car-slow: #f59e0b;--hw-car-stop: #ef4444;--hw-accent: var(--sl-color-accent);margin:.6rem 0 1rem;padding:.6rem .8rem .5rem;border:1px solid var(--sl-color-hairline);border-radius:10px;background:var(--sl-color-bg-sidebar);overflow:hidden}.hw *{margin-top:0!important}.hw-scene{position:relative;width:100%;overflow:visible}.hw-svg{width:100%;height:auto;display:block}.hw-banner{position:absolute;top:.2rem;left:50%;z-index:2;max-width:min(92%,30rem);padding:.25rem .7rem;border:1px solid color-mix(in srgb,var(--hw-muted) 35%,transparent);border-radius:999px;background:color-mix(in srgb,var(--sl-color-bg-sidebar) 88%,transparent);box-shadow:0 2px 10px #00000014;color:var(--hw-muted);font-size:.62rem;font-weight:700;letter-spacing:.08em;line-height:1.2;text-align:center;text-transform:uppercase;white-space:nowrap;transform:translate(-50%);pointer-events:none}.hw-light-ctrl{position:absolute;right:5%;top:4%;display:flex;flex-direction:column;align-items:center;gap:1px;pointer-events:auto}.hw-light-ctrl-label{font-size:.55rem;font-weight:600;color:var(--hw-muted);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;font-variant-numeric:tabular-nums;cursor:default}.hw-light-slider{width:90px;height:14px;accent-color:var(--hw-accent);cursor:pointer;margin:0;padding:0}.hw-stats{display:flex;justify-content:center;gap:20px;flex-wrap:nowrap}.hw-stat{display:flex;flex-direction:column;align-items:center;gap:.05rem;min-width:55px}.hw-stat-val{font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--sl-color-text);line-height:1.2}.hw-stat-lbl{font-size:.55rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--hw-muted)}.hw-status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.uq{--uq-box-bg: color-mix(in srgb, var(--sl-color-gray-6) 40%, var(--sl-color-bg-sidebar));--uq-box-border: var(--sl-color-gray-4);--uq-muted: var(--sl-color-gray-3);--uq-fill-color: #60a5fa;--uq-mem-color: var(--sl-color-text);margin:.6rem 0 1rem;padding:.6rem .8rem .4rem;border:1px solid var(--sl-color-hairline);border-radius:10px;background:var(--sl-color-bg-sidebar);overflow:hidden}.uq *{margin-top:0!important}.uq-scene{width:100%}.uq-svg{width:100%;height:auto;display:block}.uq-controls{display:flex;align-items:center;justify-content:center;gap:.8rem;margin:.3rem 0 0}.uq-btn{background:var(--sl-color-accent);color:var(--sl-color-black);border:none;border-radius:6px;padding:.3rem 1rem;font-size:.75rem;font-weight:600;cursor:pointer;transition:opacity .2s}.uq-btn:hover{opacity:.85}.uq-label{font-size:.7rem;color:var(--uq-muted);font-weight:500;font-variant-numeric:tabular-nums}.bp{--bp-bg: var(--sl-color-bg-sidebar);--bp-border: var(--sl-color-hairline);--bp-accent: var(--sl-color-accent);--bp-text: var(--sl-color-text);--bp-muted: var(--sl-color-gray-3);--bp-green: #22c55e;--bp-amber: #f59e0b;--bp-red: #ef4444;margin:1.5rem 0}.bp *{margin-top:0!important}.bp-controls{display:flex;align-items:center;gap:.75rem;padding:.6rem .85rem;background:var(--bp-bg);border:1px solid var(--bp-border);border-radius:8px;margin-bottom:.75rem;flex-wrap:wrap}.bp-label{font-size:.72rem;font-weight:600;color:var(--bp-text);white-space:nowrap}.bp-slider-wrap{display:flex;align-items:center;gap:.5rem;flex:1;min-width:160px;background:color-mix(in srgb,var(--bp-text) 4%,transparent);border:1px solid var(--bp-border);border-radius:5px;padding:.2rem .5rem}.bp-slider{flex:1;height:5px;-webkit-appearance:none;appearance:none;background:var(--bp-border);border-radius:3px;outline:none;cursor:pointer;box-shadow:inset 0 1px 2px #0003}.bp-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--bp-accent);border:2px solid white;cursor:pointer;box-shadow:0 1px 3px #00000040}.bp-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--bp-accent);border:2px solid white;cursor:pointer;box-shadow:0 1px 3px #00000040}.bp-slider:focus-visible{outline:2px solid var(--bp-accent);outline-offset:3px}.bp-speed-val{font-family:var(--sl-font-mono, monospace);font-size:.7rem;font-weight:700;min-width:40px;text-align:right}.bp-btns{display:flex;gap:.3rem}.bp-btn{padding:.2rem .55rem;border-radius:4px;border:1px solid var(--bp-border);background:transparent;color:var(--bp-text);font-size:.65rem;cursor:pointer;font-weight:600}.bp-btn:hover{border-color:var(--bp-accent)}.bp-btn.active{border-color:var(--bp-accent);background:var(--bp-accent);color:#fff}.bp-pipeline{display:flex;gap:0;align-items:stretch;margin-bottom:.6rem;overflow-x:auto;flex-wrap:wrap}.bp-stage{flex:1;min-width:90px;padding:.5rem;border:1.5px solid var(--bp-border);background:var(--bp-bg);border-radius:8px;position:relative;transition:border-color .4s,background .4s}.bp-stage.pressured{border-color:var(--bp-amber);background:color-mix(in srgb,var(--bp-amber) 5%,var(--bp-bg))}.bp-stage.blocked{border-color:var(--bp-red);background:color-mix(in srgb,var(--bp-red) 7%,var(--bp-bg))}.bp-stage-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.3rem}.bp-stage-name{font-size:.72rem;font-weight:700;color:var(--bp-text)}.bp-stage-tag{font-size:.5rem;font-weight:700;padding:.1rem .3rem;border-radius:3px;text-transform:uppercase;letter-spacing:.04em}.bp-tag-ok{background:color-mix(in srgb,var(--bp-green) 15%,transparent);color:var(--bp-green)}.bp-tag-pressure{background:color-mix(in srgb,var(--bp-amber) 15%,transparent);color:var(--bp-amber)}.bp-tag-blocked{background:color-mix(in srgb,var(--bp-red) 15%,transparent);color:var(--bp-red)}.bp-stage-desc{font-size:.58rem;color:var(--bp-muted);margin-bottom:.4rem}.bp-queue{display:flex;gap:2px;height:18px;margin-bottom:.3rem}.bp-slot{flex:1;border-radius:2px;border:1px solid var(--bp-border);transition:background .3s,border-color .3s;position:relative;overflow:hidden}.bp-slot.filled{background:var(--bp-green);border-color:var(--bp-green)}.bp-slot.filling{background:var(--bp-amber);border-color:var(--bp-amber)}.bp-slot.full{background:var(--bp-red);border-color:var(--bp-red)}.bp-queue-label{font-size:.5rem;color:var(--bp-muted);text-align:center;font-family:var(--sl-font-mono, monospace)}.bp-activity{position:absolute;bottom:0;left:0;right:0;height:3px;border-radius:0 0 6px 6px;background:color-mix(in srgb,var(--bp-text) 6%,transparent);overflow:hidden}.bp-activity-fill{position:absolute;inset:0;border-radius:0 0 6px 6px;background:color-mix(in srgb,var(--bp-green) 55%,transparent);transform-origin:left;transition:transform .3s ease,background-color .4s}.bp-activity-fill.flowing{animation:bp-flow 1.5s ease-in-out infinite}.bp-activity-fill.pressured{background:color-mix(in srgb,var(--bp-amber) 55%,transparent)}.bp-activity-fill.blocked{background:color-mix(in srgb,var(--bp-red) 55%,transparent);animation:bp-blocked-pulse 2s ease-in-out infinite}@keyframes bp-flow{0%{transform:scaleX(.15);translate:0% 0}50%{transform:scaleX(.5);translate:50% 0}to{transform:scaleX(.15);translate:85% 0}}@keyframes bp-blocked-pulse{0%,to{opacity:.4}50%{opacity:1}}.bp-arrow{display:flex;align-items:center;justify-content:center;width:28px;min-width:28px;color:var(--bp-muted);font-size:1rem;transition:color .3s;position:relative}.bp-arrow.pressured{color:var(--bp-amber)}.bp-arrow.blocked{color:var(--bp-red)}.bp-arrow-dot{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--bp-green);opacity:0}.bp-arrow.flowing .bp-arrow-dot{animation:bp-dot-fly 1.2s ease-in-out infinite}.bp-arrow.pressured .bp-arrow-dot{background:var(--bp-amber)}.bp-arrow.blocked .bp-arrow-dot{background:var(--bp-red);animation:none;opacity:0}@keyframes bp-dot-fly{0%{opacity:0;translate:-10px 0}20%{opacity:1}80%{opacity:1}to{opacity:0;translate:10px 0}}.bp-alert{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);z-index:10;padding:.35rem .55rem;border-radius:6px;font-size:.62rem;font-weight:600;line-height:1.35;max-width:220px;white-space:normal;pointer-events:none;animation:bp-alert-in .3s ease-out forwards;box-shadow:0 2px 8px #00000026}.bp-alert:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent}.bp-alert.ok{background:var(--bp-green);color:#fff}.bp-alert.ok:after{border-top-color:var(--bp-green)}.bp-alert.warn{background:var(--bp-amber);color:#1a1a2e}.bp-alert.warn:after{border-top-color:var(--bp-amber)}.bp-alert.err{background:var(--bp-red);color:#fff}.bp-alert.err:after{border-top-color:var(--bp-red)}@keyframes bp-alert-in{0%{opacity:0;translate:0 4px}to{opacity:1;translate:0 0}}.bp-alert.exiting{animation:bp-alert-out .4s ease-in forwards}@keyframes bp-alert-out{0%{opacity:1;translate:0 0}to{opacity:0;translate:0 -4px}}.bp-stats{display:flex;gap:.75rem;flex-wrap:wrap;font-size:.68rem;padding:.4rem 0}.bp-stat{display:flex;flex-direction:column}.bp-stat-label{font-size:.5rem;color:var(--bp-muted);text-transform:uppercase;letter-spacing:.03em}.bp-stat-val{font-weight:700;font-family:var(--sl-font-mono, monospace)}.bp-stat-val.green{color:var(--bp-green)}.bp-stat-val.amber{color:var(--bp-amber)}.bp-stat-val.red{color:var(--bp-red)}.bp-log{max-height:90px;overflow-y:auto;border:1px solid var(--bp-border);border-radius:6px;padding:.3rem .5rem;margin-top:.4rem}.bp-log-entry{font-size:.6rem;line-height:1.6;font-family:var(--sl-font-mono, monospace);animation:bp-fadein .3s ease-out}@keyframes bp-fadein{0%{opacity:0}to{opacity:1}}.bp-log-entry .ts{color:var(--bp-muted)}.bp-log-entry .warn{color:var(--bp-amber);font-weight:600}.bp-log-entry .err{color:var(--bp-red);font-weight:600}.bp-log-entry .ok{color:var(--bp-green)}.bp-source-tabs{display:flex;gap:.2rem;margin-bottom:.3rem}.bp-source-tab{padding:.12rem .35rem;border-radius:3px;border:1px solid var(--bp-border);background:transparent;color:var(--bp-muted);font-size:.55rem;cursor:pointer;font-weight:600;transition:all .15s}.bp-source-tab:hover{border-color:var(--bp-accent);color:var(--bp-text)}.bp-source-tab.active{border-color:var(--bp-accent);background:color-mix(in srgb,var(--bp-accent) 12%,transparent);color:var(--bp-text)}.bp-mini-viz{margin-bottom:.3rem;font-size:.58rem;min-height:52px}.bp-file-viz{font-family:var(--sl-font-mono, monospace);font-size:.5rem;background:color-mix(in srgb,var(--bp-text) 6%,transparent);border-radius:3px;padding:.25rem .4rem;line-height:1.6;overflow:hidden}.bp-file-old{color:var(--bp-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:1.6em}.bp-file-cursor-row{color:var(--bp-green);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bp-file-cursor-row.stalled{color:var(--bp-red);animation:bp-blocked-pulse 2s ease-in-out infinite}.bp-file-more{color:var(--bp-amber);font-size:.46rem;font-style:italic;min-height:1.4em;padding-top:.05rem}.bp-mini-udp{display:flex;gap:.5rem;align-items:flex-end}.bp-mini-gauge-wrap{flex:1}.bp-mini-gauge{height:40px;background:#0000004d;border-radius:3px;position:relative;overflow:hidden}.bp-mini-gauge-fill{position:absolute;bottom:0;left:0;right:0;background:var(--bp-green);transition:height .25s}.bp-mini-gauge-fill.warn{background:var(--bp-amber)}.bp-mini-gauge-fill.full{background:var(--bp-red)}.bp-mini-drops{text-align:center;min-width:44px}.bp-mini-drops-count{font-size:1.2rem;font-weight:800;font-family:var(--sl-font-mono, monospace);line-height:1}.bp-mini-drops-count.zero{color:var(--bp-green)}.bp-mini-drops-count.dropping{color:var(--bp-red)}.bp-mini-drops-label{font-size:.48rem;color:var(--bp-muted);text-transform:uppercase;letter-spacing:.03em}.bp-mini-otlp{display:flex;flex-direction:column;gap:2px}.bp-mini-req{display:flex;align-items:center;gap:.25rem;font-family:var(--sl-font-mono, monospace);font-size:.54rem;animation:bp-fadein .2s ease-out}.bp-mini-req .s200{color:var(--bp-green);font-weight:700}.bp-mini-req .s429{color:var(--bp-red);font-weight:700}.bp-mini-req .rnote{color:var(--bp-amber);font-size:.48rem}@media(prefers-reduced-motion:reduce){.bp-activity-fill.flowing,.bp-activity-fill.blocked{animation:none}.bp-arrow.flowing .bp-arrow-dot{animation:none;opacity:0}.bp-log-entry,.bp-alert,.bp-alert.exiting,.bp-mini-req,.bp-file-cursor-row.stalled{animation:none}}
