:root{--paper: #ffffff;--surface: #f5f7f8;--surface-strong: #eceff2;--line: #e1e5e9;--line-strong: #c9d0d7;--ink: #18212b;--ink-soft: #364250;--text-dim: #566170;--accent: #0b6e79;--accent-strong: #08545c;--accent-tint: #e6f2f3;--alert: #b42318;--alert-tint: #fdecea;--warn: #8a5a00;--warn-tint: #fdf3e1;--ok: #1e7a4c;--ok-tint: #e7f4ed;--truck-approach: #8a94a3;--truck-approach-edge: #4b5563;--truck-idle: #f2b33d;--truck-idle-edge: #8a5a00;--truck-counts: #2f9e68;--truck-counts-edge: #1a5e3c;--truck-in-alert: #b42318;--truck-in-alert-edge: #7a160f;--truck-gone: #d6dbe0;--truck-gone-edge: #9aa3ae;--font-ui: "IBM Plex Sans", "Segoe UI", system-ui, -apple-system, sans-serif;--font-display: "IBM Plex Sans Condensed", "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--shadow-float: 0 1px 2px rgba(24, 33, 43, .06), 0 8px 24px rgba(24, 33, 43, .1);font-family:var(--font-ui);color:var(--ink);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-size:15px;line-height:1.5}button,select,input{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.app-shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--line);padding:22px 14px;overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:10px;background:none;border:none;color:var(--ink);font-family:var(--font-display);font-size:17px;font-weight:600;letter-spacing:-.01em;padding:0 6px 22px;cursor:pointer;text-align:left}.sidebar-brand-mark{flex-shrink:0;width:22px;height:22px;border-radius:50%;border:2px solid var(--accent);box-shadow:inset 0 0 0 3px var(--surface),inset 0 0 0 5px var(--accent),inset 0 0 0 7px var(--surface),inset 0 0 0 11px var(--accent)}.sidebar-product{margin-top:4px}.sidebar-product-toggle{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;color:var(--text-dim);font-size:13px;font-weight:600;padding:8px 6px;cursor:pointer;text-align:left;border-radius:6px}.sidebar-product-toggle:hover{color:var(--ink)}.sidebar-product-chevron{display:inline-block;transition:transform .15s ease;font-size:10px}.sidebar-product-chevron-open{transform:rotate(90deg)}.sidebar-product ul{list-style:none;padding:0 0 0 10px;border-left:1px solid var(--line);margin:2px 0 0 10px}.sidebar-link{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;background:none;border:none;color:var(--ink-soft);text-align:left;padding:7px 10px;border-radius:6px;cursor:pointer;font-size:14px}.sidebar-link:hover{background:var(--surface-strong);color:var(--ink)}.sidebar-link-active,.sidebar-link-active:hover{background:var(--accent-tint);color:var(--accent-strong);font-weight:600}.sidebar-link-active:before{content:"";position:absolute;left:-11px;top:6px;bottom:6px;width:2px;background:var(--accent);border-radius:2px}.sidebar-link-placeholder{color:var(--text-dim)}.sidebar-badge,.landing-badge{flex-shrink:0;font-size:11px;font-weight:500;background:var(--paper);border:1px solid var(--line);color:var(--text-dim);padding:0 7px;border-radius:999px;line-height:18px}.app-main{padding:36px 40px 72px;max-width:1320px;min-width:0}.breadcrumb{color:var(--accent-strong);font-size:13px;font-weight:600;margin:0 0 6px}.page h1{font-family:var(--font-display);font-weight:600;font-size:36px;line-height:1.1;letter-spacing:-.015em;margin:0 0 12px}.page-landing h1{font-size:48px}.page-intro{color:var(--ink-soft);max-width:66ch;font-size:16px;line-height:1.6;margin:0 0 16px}.page-disclaimer{color:var(--text-dim);max-width:66ch;font-size:13px;line-height:1.55;padding-left:12px;border-left:2px solid var(--line-strong);margin:0}.landing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:0 40px;margin-top:40px;max-width:980px}.landing-card{border-top:2px solid var(--ink);padding:14px 0 8px}.landing-card h2{font-family:var(--font-display);font-weight:600;margin:0 0 6px;font-size:20px}.landing-card ul{list-style:none;margin:0;padding:0}.landing-card li{border-bottom:1px solid var(--line)}.landing-link{display:flex;flex-direction:column;gap:2px;width:100%;background:none;border:none;padding:12px 8px;margin:0 -8px;width:calc(100% + 16px);text-align:left;cursor:pointer;border-radius:6px}.landing-link:hover:not(:disabled){background:var(--accent-tint)}.landing-link-name{display:flex;align-items:center;gap:8px;color:var(--accent-strong);font-weight:600;font-size:15px}.landing-link:disabled{cursor:default}.landing-link:disabled .landing-link-name{color:var(--ink-soft);font-weight:500}.landing-tagline{display:block;font-size:13px;color:var(--text-dim)}.coming-soon-box{margin-top:24px;background:var(--surface);border:1px dashed var(--line-strong);border-radius:8px;padding:18px 20px;color:var(--ink-soft);max-width:560px;line-height:1.5}.scenario-picker{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:24px 0 28px;padding-bottom:24px;border-bottom:1px solid var(--line)}.scenario-picker-label{font-size:14px;font-weight:600;color:var(--ink)}.scenario-picker-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23364250' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 14px center;border:1px solid var(--line-strong);color:var(--ink);border-radius:8px;padding:9px 40px 9px 14px;font-size:14px;width:min(100%,380px);cursor:pointer;box-shadow:0 1px 2px #18212b0d}.scenario-picker-select:hover{border-color:var(--ink-soft)}.scenario-picker-select:focus-visible{border-color:var(--accent)}.demo-grid{display:grid;grid-template-columns:250px minmax(0,1fr) 290px;gap:28px;align-items:start}.demo-pit-column{min-width:0}.demo-disclaimer{color:var(--text-dim);font-size:13px;margin-top:32px}.pit-view-wrap{container:pit-view / inline-size;position:relative;background:var(--paper);border:1px solid var(--line-strong);border-radius:10px;padding:14px 14px 12px;box-shadow:0 1px 2px #18212b0a}.pit-view-svg{width:100%;height:auto;display:block;border-radius:6px;background:#fbfcfc}.pit-bench{fill:none;stroke:#ebeef1;stroke-width:1}.pit-bench-index{stroke:#e1e6ea;stroke-width:1.3}.pit-radius-ring{fill:#0b6e7906;stroke:#8f9aa6;stroke-width:1;stroke-dasharray:3 4}.pit-loader-body{fill:#5d6875;stroke:var(--ink);stroke-width:1}.pit-loader-turret,.pit-loader-bucket{fill:var(--ink-soft);stroke:var(--ink);stroke-width:1}.pit-loader-arm{fill:#5d6875;stroke:var(--ink);stroke-width:1}.pit-loader-grouped .pit-loader-body,.pit-loader-grouped .pit-loader-arm{fill:var(--accent);stroke:var(--accent-strong)}.pit-loader-grouped .pit-loader-turret,.pit-loader-grouped .pit-loader-bucket{fill:var(--accent-strong);stroke:#053a40}.pit-label,.pit-truck-clock{paint-order:stroke;stroke:#fbfcfc;stroke-width:3px;stroke-linejoin:round}.pit-label{fill:var(--ink);font-size:12px;font-weight:600}.pit-group-outline{fill:#0b6e790f;stroke:#0b6e7973;stroke-width:1.25}.pit-group-alerting{fill:#b423180f;stroke:#b423188c;stroke-dasharray:none}.pit-group-line{stroke:var(--accent);stroke-opacity:.55;stroke-width:1.5}.pit-truck-bed,.pit-truck-cab{stroke-width:1.2;transition:fill .3s ease,stroke .3s ease}.pit-truck-approaching .pit-truck-bed,.pit-truck-approaching .pit-truck-cab{fill:var(--truck-approach);stroke:var(--truck-approach-edge)}.pit-truck-idle .pit-truck-bed,.pit-truck-idle .pit-truck-cab{fill:var(--truck-idle);stroke:var(--truck-idle-edge)}.pit-truck-counts .pit-truck-bed,.pit-truck-counts .pit-truck-cab{fill:var(--truck-counts);stroke:var(--truck-counts-edge)}.pit-truck-in-alert .pit-truck-bed,.pit-truck-in-alert .pit-truck-cab{fill:var(--truck-in-alert);stroke:var(--truck-in-alert-edge)}.pit-truck-departed .pit-truck-bed,.pit-truck-departed .pit-truck-cab{fill:var(--truck-gone);stroke:var(--truck-gone-edge);opacity:.8}.pit-truck-cab{filter:brightness(.9)}.pit-truck-clock{fill:var(--ink-soft);font-size:10px;font-weight:600;font-variant-numeric:tabular-nums}.pit-canvas{position:relative;width:min(100%,64vh);margin:0 auto}.pit-scale-bar{position:absolute;right:12px;bottom:12px;height:6px;border:2px solid var(--ink-soft);border-top:none;font-size:12px;color:var(--text-dim)}.pit-scale-bar span{position:absolute;top:-8px;right:calc(100% + 8px);white-space:nowrap;text-shadow:0 0 3px #fbfcfc,0 0 3px #fbfcfc}.pit-legend{display:flex;justify-content:space-between;gap:14px;margin-top:12px;font-size:clamp(11px,2.1cqi,13px);color:var(--ink-soft);white-space:nowrap}.pit-legend-item{display:flex;align-items:center;gap:6px}@container pit-view (max-width: 520px){.pit-legend{display:grid;grid-template-columns:repeat(2,auto);justify-content:start;gap:8px 22px;font-size:12.5px}}@container pit-view (max-width: 400px){.pit-legend{grid-template-columns:1fr;white-space:normal}}.pit-legend-swatch{flex-shrink:0;width:14px;height:9px;border-radius:2px;display:inline-block;border:1px solid}.pit-legend-swatch-approaching{background:var(--truck-approach);border-color:var(--truck-approach-edge)}.pit-legend-swatch-idle{background:var(--truck-idle);border-color:var(--truck-idle-edge)}.pit-legend-swatch-counts{background:var(--truck-counts);border-color:var(--truck-counts-edge)}.pit-legend-swatch-in-alert{background:var(--truck-in-alert);border-color:var(--truck-in-alert-edge)}.pit-moment-card{position:absolute;top:24px;left:24px;right:24px;z-index:5;display:flex;align-items:flex-start;gap:10px;background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;padding:12px 10px 12px 14px;font-size:14px;line-height:1.45;color:var(--ink);box-shadow:var(--shadow-float);animation:moment-card-in .22s ease-out}.pit-moment-card-alert{border-left-color:var(--alert)}.pit-moment-card-warning{border-left-color:var(--truck-idle)}.pit-moment-card-text{flex:1}.pit-moment-card-dismiss,.info-tooltip-close{flex-shrink:0;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;background:none;border:none;border-radius:6px;color:var(--text-dim);font-size:17px;line-height:1;cursor:pointer;padding:0}.pit-moment-card-dismiss:hover,.info-tooltip-close:hover{background:var(--surface-strong);color:var(--ink)}@keyframes moment-card-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.timeline{margin-top:18px}.timeline-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:6px}.timeline-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--paper);border:1px solid var(--line-strong);color:var(--ink);border-radius:50%;cursor:pointer;font-size:16px;line-height:1}.timeline-button:hover{border-color:var(--ink-soft);background:var(--surface)}.timeline-button-primary{width:44px;height:44px;background:var(--ink);border-color:var(--ink);color:var(--paper);font-size:15px}.timeline-button-primary:hover{background:var(--ink-soft);border-color:var(--ink-soft)}.timeline-speed-group{display:inline-flex;gap:2px;padding:3px;margin-left:6px;background:var(--surface-strong);border-radius:8px}.timeline-speed-group button{background:none;border:none;color:var(--ink-soft);border-radius:6px;padding:5px 11px;cursor:pointer;font-size:13px;font-weight:500;font-variant-numeric:tabular-nums}.timeline-speed-group button:hover{color:var(--ink)}.timeline-speed-group button.timeline-speed-active{background:var(--paper);color:var(--ink);font-weight:600;box-shadow:0 1px 2px #18212b1f,0 0 0 1px #18212b0a}.timeline-clock{margin-left:auto;font-family:var(--font-display);font-size:22px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink);letter-spacing:.01em}.timeline-track-wrap{position:relative;padding:10px 0 0;border-radius:6px}.timeline-track{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;height:20px;margin:0;background:transparent;cursor:pointer}.timeline-track::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:linear-gradient(to right,var(--accent) var(--pct, 0%),var(--line) var(--pct, 0%))}.timeline-track::-moz-range-track{height:4px;border-radius:2px;background:var(--line)}.timeline-track::-moz-range-progress{height:4px;border-radius:2px;background:var(--accent)}.timeline-track::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;margin-top:-7px;border-radius:50%;background:var(--paper);border:2px solid var(--ink);box-shadow:0 1px 3px #18212b33}.timeline-track::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--paper);border:2px solid var(--ink);box-shadow:0 1px 3px #18212b33}.timeline-markers{position:relative;height:14px;margin:4px 9px 0}.timeline-marker{position:absolute;top:0;width:6px;height:12px;border-radius:3px;border:none;padding:0;cursor:pointer;transform:translate(-3px);transition:transform .12s ease}.timeline-marker:hover{transform:translate(-3px) scaleY(1.3)}.timeline-marker-info{background:var(--accent)}.timeline-marker-alert{background:var(--alert)}.timeline-marker-warning{background:var(--truck-idle);box-shadow:inset 0 0 0 1px var(--truck-idle-edge)}.moment-list{max-height:680px;overflow-y:auto;position:sticky;top:24px;padding-right:4px}.moment-list h2,.state-panel h2{font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--ink);margin:0 0 10px}.moment-list ul{list-style:none;margin:0;padding:0}.moment-list-empty{color:var(--text-dim);font-size:14px;margin:0}.moment-list-item{display:flex;flex-direction:column;gap:1px;width:100%;background:none;border:none;color:var(--ink);text-align:left;padding:8px 10px 8px 12px;border-radius:0 6px 6px 0;cursor:pointer;font-size:13.5px;line-height:1.45;border-left:3px solid transparent;margin-bottom:2px}.moment-list-item:hover{background:var(--surface)}.moment-list-item-alert{border-left-color:var(--alert)}.moment-list-item-warning{border-left-color:var(--truck-idle)}.moment-list-item-info{border-left-color:var(--accent)}.moment-list-time{color:var(--text-dim);font-size:12px;font-weight:500;font-variant-numeric:tabular-nums}.state-panel{background:var(--surface);border-radius:10px;padding:18px 18px 20px;position:sticky;top:24px}.state-panel h2{margin:26px 0 8px}.state-panel h2:first-child{margin-top:0}.state-empty{color:var(--text-dim);font-size:14px;margin:0}.state-group{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin-bottom:10px}.state-group-title{font-size:13px;font-weight:600;color:var(--ink-soft);margin-bottom:8px}.state-group-stats{display:flex;gap:22px;margin:0 0 10px}.state-group-stats dt{font-size:12px;color:var(--text-dim)}.state-group-stats dd{margin:0;font-family:var(--font-display);font-size:26px;font-weight:600;line-height:1.1;font-variant-numeric:tabular-nums}.state-alert{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;padding:6px 10px;border-radius:6px}.state-alert:before{content:"";flex-shrink:0;width:8px;height:8px;border-radius:50%;background:currentColor}.state-alert-open{background:var(--alert-tint);color:var(--alert)}.state-alert-grace{background:var(--warn-tint);color:var(--warn)}.state-alert-resolved{background:var(--ok-tint);color:var(--ok)}.state-settings-note{font-size:13px;color:var(--text-dim);line-height:1.45;margin:0 0 16px}.state-setting{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 8px;font-size:13.5px;margin-bottom:14px}.state-setting-label{display:flex;align-items:center;gap:6px;color:var(--ink);font-weight:500}.state-setting input[type=range]{grid-column:1 / -1;grid-row:2;width:100%;margin:2px 0 0;accent-color:var(--accent);cursor:pointer}.state-setting-value{grid-column:2;grid-row:1;color:var(--ink-soft);font-weight:600;font-variant-numeric:tabular-nums}.state-setting-fixed{display:flex;justify-content:space-between;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:9px 12px;margin-top:4px}.state-setting-fixed-value{font-family:var(--font-display);font-size:18px;font-weight:600;font-variant-numeric:tabular-nums}.state-required-table{width:100%;font-size:13.5px;border-collapse:collapse;font-variant-numeric:tabular-nums}.state-required-table caption{text-align:left;color:var(--text-dim);font-size:13px;margin-bottom:6px}.state-required-table th{font-size:12px;font-weight:600;color:var(--text-dim)}.state-required-table th,.state-required-table td{text-align:left;padding:5px 10px;border-bottom:1px solid var(--line)}.state-required-row-active td{background:var(--accent-tint);color:var(--accent-strong);font-weight:600}.state-required-row-active td:first-child{box-shadow:inset 2px 0 0 var(--accent)}.info-tooltip{position:relative;display:inline-flex}.info-tooltip-trigger{width:18px;height:18px;border-radius:50%;background:var(--paper);color:var(--text-dim);border:1px solid var(--line-strong);font-size:11px;font-weight:600;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}.info-tooltip-trigger:hover,.info-tooltip-trigger[aria-expanded=true]{background:var(--accent);border-color:var(--accent);color:var(--paper)}.info-tooltip-popover{position:absolute;top:24px;left:-8px;z-index:20;width:240px;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:10px 32px 10px 12px;font-size:13px;font-weight:400;line-height:1.5;color:var(--ink);box-shadow:var(--shadow-float)}.info-tooltip-close{position:absolute;top:6px;right:6px}@media (max-width: 1480px){.demo-grid{grid-template-columns:minmax(0,1fr) 290px;grid-template-rows:auto 1fr}.demo-pit-column{grid-column:1;grid-row:1}.state-panel{grid-column:2;grid-row:1 / span 2}.moment-list{grid-column:1;grid-row:2;position:static;max-height:360px}}@media (max-width: 900px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--line);padding:16px}.sidebar-brand{padding-bottom:12px}.app-main{padding:24px 16px 56px}.demo-grid{grid-template-columns:minmax(0,1fr);grid-template-rows:none}.demo-pit-column{grid-column:auto;grid-row:auto}.moment-list,.state-panel{grid-column:auto;grid-row:auto;position:static}.state-panel{order:2}.moment-list{order:3}.page h1{font-size:30px}.page-landing h1{font-size:36px}.landing-grid{grid-template-columns:1fr}.pit-moment-card{top:18px;left:18px;right:18px;font-size:13px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
