:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#eef1f4;color:#18212f;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{min-height:36px;border:1px solid #cbd5e1;border-radius:6px;background:#ffffff;color:#172033;cursor:pointer}button:hover{border-color:#64748b}button:disabled{cursor:not-allowed;opacity:.55}input:disabled,select:disabled{cursor:not-allowed;opacity:.62;background:#f1f5f9}button.primary{border-color:#0f766e;background:#0f766e;color:#fff}input,select{width:100%;min-height:36px;border:1px solid #cbd5e1;border-radius:6px;background:#ffffff;padding:0 10px;color:#111827}input[type=range]{padding:0;accent-color:#0f766e}label{display:grid;gap:6px;color:#475569;font-size:.82rem;font-weight:650}.app-shell{height:100vh;min-height:100vh;display:grid;grid-template-rows:64px minmax(0,1fr);overflow:hidden}.top-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 20px;background:#111827;color:#f8fafc;border-bottom:4px solid #0f766e}.top-bar h1{margin:0;font-size:1.25rem;line-height:1.1;letter-spacing:0}.top-bar p{margin:4px 0 0;color:#cbd5e1;font-size:.82rem}.top-bar-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.github-link{min-height:34px;display:inline-flex;align-items:center;gap:8px;max-width:260px;padding:0 12px;border:1px solid rgba(148,163,184,.42);border-radius:999px;background:rgba(255,255,255,.08);color:#f8fafc;font-size:.78rem;font-weight:800;text-decoration:none;white-space:nowrap}.github-link:hover{border-color:#5eead4b8;background:rgba(15,118,110,.38)}.github-link span{overflow:hidden;color:#cbd5e1;font-weight:700;text-overflow:ellipsis}.status-pill{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border-radius:999px;background:#334155;color:#f8fafc;font-size:.82rem;font-weight:750;text-transform:capitalize}.status-pill.running{background:#0f766e}.status-pill.paused{background:#b45309}.status-pill.complete{background:#374151}.workspace{min-height:0;display:grid;grid-template-columns:minmax(300px,18vw) minmax(640px,1fr) minmax(380px,24vw);gap:12px;padding:12px;overflow:hidden}.control-rail,.insight-rail,.main-column{min-height:0}.control-rail,.insight-rail{display:grid;align-content:start;gap:12px;overflow:auto}.main-column{display:grid;grid-template-rows:minmax(0,1fr);gap:12px;overflow:hidden}.panel,.control-section{border:1px solid #d6dde6;border-radius:8px;background:#ffffff;box-shadow:0 10px 24px #0f172a0f}.panel{min-width:0;overflow:hidden}.control-section{display:grid;gap:12px;padding:14px}.section-title,.panel-heading{color:#111827;font-weight:800;letter-spacing:0}.section-title{font-size:.78rem;text-transform:uppercase}.panel-heading{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px;border-bottom:1px solid #e2e8f0}.building-panel .panel-heading{min-height:52px}.panel-heading h2{margin:0;font-size:.95rem}.panel-heading span{color:#64748b;font-size:.78rem;font-weight:700}.panel-actions{display:inline-flex;align-items:center;gap:6px;min-width:0}.building-heading-meta{display:flex;align-items:center;justify-content:flex-end;gap:14px;min-width:0}.bubble-legend{display:flex;align-items:center;gap:10px;min-width:0;color:#64748b;font-size:.74rem;font-weight:850}.bubble-legend strong{color:#475569;font-size:.72rem;text-transform:uppercase}.bubble-legend span{display:inline-flex;align-items:center;color:#64748b;font-size:.72rem;white-space:nowrap}.destination-gradient{display:block;flex:0 0 auto;width:56px;height:10px;border:1px solid rgba(15,23,42,.18);border-radius:999px;background:linear-gradient(90deg,hsl(205 86% 78%),hsl(122 86% 78%),hsl(40 86% 78%))}.muted{margin:-4px 0 0;color:#64748b;font-size:.78rem;line-height:1.35}.segmented,.button-row,.button-grid{display:grid;gap:8px}.segmented{grid-template-columns:1fr 1fr;padding:3px;border:1px solid #cbd5e1;border-radius:8px;background:#f1f5f9}.segmented button{border:0;background:transparent}.segmented button.active{background:#ffffff;box-shadow:0 1px 4px #0f172a24}.button-row,.button-grid{grid-template-columns:1fr 1fr}.stepper-field{display:grid;gap:6px}.stepper-label{color:#475569;font-size:.82rem;font-weight:650}.stepper-control{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;align-items:center;gap:6px}.stepper-control input{text-align:center;font-weight:800}.stepper-control button{min-width:40px;padding:0;border-color:#cbd5e1;background:#f8fafc;color:#0f766e;font-size:1.08rem;font-weight:900;line-height:1}.stepper-control button:hover:not(:disabled){border-color:#0f766e;background:#ecfdf5}.building-panel{display:grid;grid-template-rows:52px minmax(0,1fr)}.building-grid{min-height:0;display:grid;grid-template-columns:48px minmax(380px,2fr) minmax(180px,.55fr);gap:14px;padding:14px;background:#f8fafc}.floor-axis,.waiting-stack,.shaft-field{min-height:0;overflow:hidden}.floor-axis,.waiting-stack{display:grid;grid-template-rows:repeat(var(--floor-count),1fr)}.floor-axis{border-right:1px solid #cbd5e1}.floor-label{min-height:0;display:flex;align-items:center;justify-content:flex-end;gap:4px;padding-right:6px;color:#64748b;border-bottom:1px solid rgba(203,213,225,.55);font-size:clamp(.78rem,1.5vh,1rem);font-weight:700}.floor-label.lunch-floor{color:#854d0e;background:#fef3c7;box-shadow:inset 3px 0 #f59e0b}.floor-label.lunch-floor span{padding:1px 4px;border-radius:4px;background:#f59e0b;color:#111827;font-size:.62rem;font-weight:900;text-transform:uppercase}.shaft-field{display:grid;grid-template-columns:repeat(var(--elevator-count),minmax(78px,1fr));gap:9px}.shaft{position:relative;min-width:0;border:1px solid #cbd5e1;border-radius:6px;overflow:hidden;background:linear-gradient(90deg,#e9eef5,#f8fafc)}.shaft-floor-lines{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-rows:repeat(var(--floor-count),1fr);pointer-events:none}.shaft-floor-lines span{border-bottom:1px solid rgba(100,116,139,.22)}.shaft-floor-lines span.lunch-floor-line{border-top:1px solid rgba(245,158,11,.62);border-bottom-color:#f59e0bb8;background:rgba(245,158,11,.2)}.elevator-car{position:absolute;left:5%;right:5%;min-height:22px;display:grid;grid-template-rows:auto minmax(0,1fr);align-content:start;gap:5px;padding:6px;border:2px solid #164e63;border-radius:6px;background:rgba(103,232,249,.94);color:#083344;box-shadow:0 8px 18px #0f172a2e;transition:background .14s ease,border-color .14s ease;will-change:bottom;overflow:hidden}.elevator-car *{min-width:0}.elevator-car.open,.elevator-car.opening{border-color:#15803d;background:#86efac}.elevator-car.closing{border-color:#a16207;background:#fde68a}.elevator-car.down{color:#312e81}.elevator-car strong,.elevator-car span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.car-meta-row{min-width:0;display:grid;grid-template-columns:auto minmax(20px,1fr) auto auto;align-items:center;gap:4px}.car-meta-row strong,.car-meta-row span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1}.car-meta-row strong{min-width:20px;font-size:clamp(.9rem,1.9vh,1.04rem)}.car-meta-row span{padding:2px 3px;border-radius:4px;background:rgba(255,255,255,.5);font-size:clamp(.72rem,1.45vh,.86rem);font-weight:800;text-align:center}.rider-bubbles,.waiting-bubbles{display:flex;flex-wrap:wrap;align-content:flex-start;gap:4px;min-width:0;overflow:hidden}.rider-bubbles{min-height:0}.person-bubble{width:var(--person-bubble-size, 32px);height:var(--person-bubble-size, 32px);display:inline-grid;place-items:center;flex:0 0 auto;border:1px solid rgba(15,23,42,.28);border-radius:50%;background:hsl(205 86% 78%);color:#0f172a;font-size:var(--person-bubble-font, .92rem);font-weight:900;line-height:1}.person-bubble.rider{width:var(--rider-bubble-size, 28px);height:var(--rider-bubble-size, 28px);font-size:var(--rider-bubble-font, .8rem)}.person-bubble.overflow{border-style:dashed;background:#f1f5f9;color:#475569}.waiting-stack{gap:0}.waiting-floor{min-height:0;display:flex;align-items:center;border-bottom:1px solid rgba(203,213,225,.65);color:#64748b;font-size:clamp(.54rem,1.2vh,.72rem)}.waiting-floor.lunch-floor{background:rgba(245,158,11,.14);box-shadow:inset 3px 0 #f59e0b}.waiting-cluster{min-width:0;width:100%;display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:6px}.waiting-count{display:grid;justify-items:end;line-height:1}.waiting-count strong{color:#be123c;font-size:1.08rem}.waiting-count span{max-width:48px;overflow:hidden;color:#64748b;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.clock-panel{min-height:246px}.clock-body{display:grid;grid-template-columns:118px minmax(0,1fr);gap:14px;align-items:center;padding:14px}.run-dial{width:112px;height:112px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle,#ffffff 0 57%,transparent 58%),conic-gradient(#10b981 var(--progress),#dbe4ee 0)}.run-dial>div{width:82px;height:82px;display:grid;place-items:center;align-content:center;border-radius:50%;background:#ffffff;box-shadow:inset 0 0 0 1px #dbe4ee}.run-dial strong{color:#111827;font-size:1.02rem;line-height:1}.run-dial span{color:#0f766e;font-size:.72rem;font-weight:850}.phase-readout{display:grid;gap:10px}.phase-readout div{display:grid;gap:3px}.phase-readout span,.phase-bars span{color:#64748b;font-size:.72rem;font-weight:800}.phase-readout strong{color:#111827;font-size:.92rem}.phase-bars{display:grid;gap:8px;padding:0 14px 14px}.phase-bars div{display:grid;grid-template-columns:88px minmax(0,1fr);align-items:center;gap:10px}.phase-bars i{height:9px;border-radius:999px;overflow:hidden;background:#e2e8f0}.phase-bars b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0f766e,#22c55e)}.metrics-panel{min-height:312px}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#e2e8f0}.metric{min-height:64px;display:grid;align-content:center;gap:5px;padding:10px 12px;background:#ffffff}.metric span{color:#64748b;font-size:.74rem;font-weight:750}.metric strong{color:#111827;font-size:1.14rem;line-height:1;word-break:break-word}.chart-panel{min-height:308px;display:grid;grid-template-rows:44px minmax(0,1fr) 34px}.line-chart{width:100%;height:100%;min-height:0;background:#fbfdff}.grid-line{stroke:#e2e8f0;stroke-width:1}.axis-text{fill:#64748b;font-size:10px;font-weight:700}.legend{display:flex;align-items:center;gap:14px;padding:0 14px;color:#475569;font-size:.75rem;font-weight:750}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:10px;height:10px;border-radius:50%}.benchmark-panel{min-height:218px}.run-log-panel{min-height:260px}.text-button{min-height:28px;padding:0 8px;border:0;background:transparent;color:#0f766e;font-size:.76rem;font-weight:850}.run-log-list{display:grid;gap:8px;padding:12px}.run-log-item{display:grid;gap:8px;padding:10px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc}.run-log-item strong,.run-log-item span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-log-item strong{color:#111827;font-size:.82rem}.run-log-item span{margin-top:2px;color:#64748b;font-size:.72rem;font-weight:750}.run-log-item dl{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:0}.run-log-item dt{color:#64748b;font-size:.62rem;font-weight:850}.run-log-item dd{margin:2px 0 0;color:#111827;font-size:.78rem;font-weight:850}.bars{display:grid;gap:9px;padding:12px}.bar-row{display:grid;grid-template-columns:minmax(96px,1fr) minmax(80px,1.2fr) 52px;align-items:center;gap:8px}.bar-label,.bar-value{color:#475569;font-size:.75rem;font-weight:760}.bar-value{text-align:right}.bar-track{height:10px;border-radius:999px;overflow:hidden;background:#e2e8f0}.bar-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0f766e,#f59e0b)}.algorithm-panel{min-height:230px}.algorithm-list{display:grid;gap:8px;padding:12px}.algorithm-list button{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;min-height:42px;padding:0 10px;text-align:left}.algorithm-list button.active{border-color:#0f766e;background:#ecfdf5}.algorithm-list strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.algorithm-list span{color:#64748b;font-size:.7rem;font-weight:800}.queue-list{display:grid;gap:1px;background:#e2e8f0}.queue-list>div{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 12px;background:#ffffff;color:#475569;font-size:.82rem;font-weight:700}.queue-list strong{color:#be123c}.empty-state{display:grid;place-items:center;min-height:126px;padding:16px;color:#64748b;font-size:.82rem;font-weight:700;text-align:center}@media (max-width: 1280px){.workspace{grid-template-columns:280px minmax(560px,1fr) 340px}.building-grid{grid-template-columns:44px minmax(340px,2fr) minmax(170px,.55fr)}}@media (max-width: 1080px){.workspace{grid-template-columns:280px minmax(360px,1fr)}.insight-rail{grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr))}.chart-panel,.clock-panel,.metrics-panel{min-height:300px}.bubble-legend{display:none}}@media (max-width: 860px){.app-shell{height:auto;grid-template-rows:auto minmax(0,1fr);overflow:visible}.top-bar{min-height:64px;align-items:flex-start;padding:12px}.top-bar-actions{flex-wrap:wrap}.github-link span{display:none}.workspace{grid-template-columns:1fr;overflow:auto}.control-rail,.insight-rail{grid-template-columns:1fr}.main-column{grid-template-rows:640px;overflow:visible}.building-grid{grid-template-columns:42px minmax(0,1fr) minmax(160px,1fr);padding:8px;gap:8px}.clock-body{grid-template-columns:112px minmax(0,1fr)}.run-dial{width:108px;height:108px}}
