.network-flow-overlay{z-index:8;pointer-events:none;position:absolute;inset:0;overflow:hidden}.network-flow-overlay>svg{width:100%;height:100%;position:absolute;overflow:visible}.flow-line{fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 2px #111);vector-effect:non-scaling-stroke}.flow-active{stroke:var(--flow-connected,#62e8d6);opacity:.18}.flow-arrows{fill:var(--flow-connected,#62e8d6);stroke:none;pointer-events:none}.flow-idle{stroke:var(--flow-connected,#62e8d6);opacity:.6;stroke-width:1.5px}.flow-line.has-pipe-tube.flow-idle,.flow-line.has-pipe-tube.flow-active{stroke:#0000;filter:none}.flow-off{stroke:var(--flow-disconnected,#ff9c83);stroke-dasharray:3 7}.flow-unknown{stroke:var(--flow-unresolved,#b3bbc2);stroke-width:2px;stroke-dasharray:4 8;opacity:.7}.flow-map-point{transform:translate(-50%, -50%) scale(var(--marker-scale,1));pointer-events:auto;color:#fff;cursor:crosshair;background:#234b48;border:2px solid #baf5e8;border-radius:50%;place-items:center;width:28px;height:28px;padding:0;font:600 18px Arial;display:grid;position:absolute;top:0;left:0;box-shadow:0 2px 8px #0008}.flow-map-point.is-source{background:#177f71;border-color:#fff}.flow-map-point[hidden]{display:none}.flow-point-state{color:#fff;background:#163d37;border:1px solid #fff;border-radius:50%;place-items:center;width:15px;height:15px;font:10px Arial;display:grid;position:absolute;bottom:-5px;right:-6px}.flow-map-point.is-off{background:#9e4e3d;border-color:#ffd1c5}.flow-map-point:focus-visible{outline-offset:3px;outline:3px solid #fff}@keyframes network-flow{to{stroke-dashoffset:-28px}}@media (prefers-reduced-motion:reduce){.is-playing .flow-active{animation:none}}.flow-hit{fill:none;stroke:#0000;stroke-width:16px;pointer-events:stroke;cursor:pointer}.flow-hit:focus-visible{stroke:#fff5;outline:0}.flow-disabled{stroke:var(--flow-disabled);stroke-dasharray:3 7}.flow-map-point{background:color-mix(in srgb, var(--point-color) 42%, #20262a);border-color:var(--point-color);opacity:.72;cursor:pointer}.flow-map-point.is-source{background:var(--point-color);opacity:1;border-color:#fff}.flow-map-point.is-off{background:var(--flow-disabled);border-color:var(--flow-disabled);opacity:.8}.flow-map-point.is-off .flow-point-state{background:var(--flow-disabled)}.flow-map-point:hover,.flow-map-point:focus-visible{opacity:1}.flow-point-state{background:#242b28}.flow-context{color:#edf0f2;pointer-events:auto;z-index:10;background:#292c30;border:1px solid #626970;border-radius:7px;width:212px;padding:6px;position:absolute;box-shadow:0 8px 24px #0007}.flow-context strong{overflow-wrap:anywhere;padding:6px 8px;font-size:13px;font-weight:500;display:block}.flow-context button{text-align:left;width:100%;color:inherit;background:0 0;border:0;border-radius:4px;min-height:36px;padding:8px;font-size:13px;display:block}.flow-context button:hover,.flow-context button:focus-visible{background:#41484c}.flow-context button:disabled{opacity:.4}.flow-map-point.is-potential{outline:2px solid var(--point-color);outline-offset:3px;border-style:dashed}.flow-map-point.is-potential.is-off{outline-color:var(--flow-disabled)}.scenario-map-surface{pointer-events:auto;cursor:crosshair;background:0 0;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.scenario-map-surface:focus-visible{outline-offset:-4px;outline:2px solid #99ccb7}.flow-draft{fill:none;stroke:#f4df9a;stroke-width:2px;stroke-dasharray:6 5;pointer-events:none}.flow-proposed{opacity:1;stroke-width:6px;stroke-dasharray:none;filter:drop-shadow(0 0 1px #102630)}.flow-proposed.flow-active{stroke:#287c99}.plan-drawing-tools{z-index:6;color:#dcebe3;pointer-events:auto;background:#262e2b;border:1px solid #53685e;border-radius:9px;align-items:center;gap:5px;max-width:calc(100% - 24px);padding:6px;display:flex;position:absolute;bottom:90px;left:50%;transform:translate(-50%)}.plan-drawing-tools span{white-space:nowrap;padding:0 6px;font-size:12px}.plan-drawing-tools button{min-width:38px;min-height:38px;color:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;padding:7px 10px}.plan-drawing-tools button[aria-pressed=true]{background:#435e50;border-color:#8bbba2}.plan-drawing-tools button:focus-visible{outline:2px solid #b5e5cc}.network-flow-overlay[data-pan=true] .scenario-map-surface,.network-flow-overlay[data-pan=true] .flow-hit,.network-flow-overlay[data-pan=true] .flow-map-point{cursor:grab}@media (max-width:600px){.plan-drawing-tools{bottom:78px}.plan-drawing-tools span{display:none}}.scenario-map-notice{color:#edf0f2;background:#292c30;border-radius:6px;max-width:360px;padding:10px 14px;position:absolute;bottom:85px;left:50%;transform:translate(-50%)}.network-flow-overlay[data-drawing=true] .scenario-map-notice{bottom:145px}.flow-context{border-color:#658174;border-radius:9px;max-height:min(420px,100dvh - 160px);padding:7px;overflow-y:auto}.flow-context-heading{border-bottom:1px solid #46534d;align-items:center;margin-bottom:5px;display:flex}.flow-context-heading strong{color:#c4e4d4;flex:1}.flow-context-heading button{text-align:center;flex:none;width:36px;font-size:20px}.flow-context button{cursor:pointer;min-height:40px}.flow-context button:focus-visible{outline-offset:-2px;outline:2px solid #a2d4bd}.flow-hit.is-selected{stroke:#d5f4e5;stroke-opacity:.4;stroke-width:9px}.flow-map-point[data-selected=true]{opacity:1;outline-offset:4px;outline:2px solid #d5f4e5}.scenario-session-label button{color:#c4d1c9;font-size:12px}.flow-context[popover]{margin:0;position:fixed;inset:auto}.network-flow-overlay[data-drawing=true] .flow-hit{cursor:crosshair;stroke-width:26px}.network-flow-overlay[data-drawing=true]{touch-action:none;-webkit-user-select:none;user-select:none}.network-flow-overlay[data-drawing=true] .flow-hit:hover{stroke:#c2efd644}.network-flow-overlay[data-drawing=true] .flow-map-point{cursor:crosshair}.network-flow-overlay[data-drawing=true] .flow-map-point:hover{outline-offset:4px;outline:2px solid #c2efd6}.flow-snap{pointer-events:none;z-index:5;position:absolute}.flow-snap i{background:#233c30;border:2px solid #c2efd6;border-radius:50%;width:14px;height:14px;display:block;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 3px #17231dcc}.flow-snap span{white-space:nowrap;color:#e2f4e9;background:#26332e;border:1px solid #7cae94;border-radius:5px;padding:6px 9px;font-size:12px;position:absolute;top:12px;left:14px}.flow-map-point:hover,.flow-map-point:focus-visible,.flow-map-point[data-selected=true]{transform:translate(-50%, -50%) scale(max(var(--marker-scale,1), 1));z-index:5!important}.flow-route-number{color:#fff;background:#283d38;border:1px solid #99cdbb;border-radius:50%;min-width:20px;padding:2px;font-size:12px;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.flow-arrow-canvas{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.flow-retired{stroke:var(--flow-retired,#555d65)}.flow-map-point.is-retired{background:var(--flow-retired,#555d65);border-color:var(--flow-retired,#555d65)}
.heatmap-menu,.heatmap-scale{z-index:8;color:var(--ui-ink);background:var(--ui-surface);border:1px solid var(--ui-line);border-radius:14px;padding:16px;font-size:14px;line-height:1.45;position:absolute;box-shadow:0 12px 32px #0003}.heatmap-menu{width:min(360px,100% - 32px);bottom:100px;left:50%;transform:translate(-50%)}.heatmap-menu header,.heatmap-scale header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.heatmap-menu label{gap:6px;margin-bottom:12px;display:grid}.heatmap-menu button,.heatmap-scale button{color:var(--ui-ink);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:6px;font-size:13px}.heatmap-menu button:hover,.heatmap-scale button:hover{background:var(--ui-surface-hover)}.heatmap-menu select,.heatmap-scale input{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:var(--ui-surface-subtle);color:var(--ui-ink);border:1px solid var(--ui-control-line);font:inherit;border-radius:7px;width:100%;min-width:0;padding:8px}.heatmap-menu :focus-visible,.heatmap-scale :focus-visible{outline:2px solid var(--ui-focus);outline-offset:2px}.heatmap-scale{width:186px;top:50%;left:20px;transform:translateY(-35%)}.heatmap-scale header{flex-wrap:wrap;gap:4px}.heatmap-scale header span{color:var(--ui-muted);font-size:12px}.heatmap-scale-body{gap:12px;height:210px;display:flex}.heatmap-gradient{border-radius:6px;flex-shrink:0;width:18px}.heatmap-stops{flex-direction:column;justify-content:space-between;min-width:0;display:flex}.heatmap-stops label{grid-template-columns:30px 1fr;align-items:center;gap:8px;font-size:12px;display:grid}.heatmap-scale p{margin:10px 0 0;font-size:12px}.heatmap-scale small{color:#b8c2cf;margin-top:8px;font-size:11px;display:block}.heatmap-scale footer{margin-top:6px;display:flex}@media (max-width:600px){.heatmap-scale{width:144px;padding:10px;top:46%;left:8px;transform:translateY(-15%)}.heatmap-scale-body{gap:7px;height:160px}.heatmap-gradient{width:12px}.heatmap-stops label{grid-template-columns:24px 1fr;gap:4px}.heatmap-scale input{padding:6px 3px}}.aps-immersive:has(.heatmap-scale) .model-view-notice{left:auto;right:24px}.heatmap-scale input{height:36px}.heatmap-scale{max-height:calc(100% - 210px);overflow-y:auto}@media (max-height:640px){.heatmap-scale{max-height:calc(100% - 280px);top:200px;transform:none}}.heatmap-hover{z-index:60;pointer-events:none;border:1px solid var(--ui-line);background:var(--ui-surface);width:max-content;max-width:240px;color:var(--ui-ink);overflow-wrap:anywhere;border-radius:9px;gap:5px;padding:11px 14px;font-size:13px;line-height:1.45;display:grid;position:fixed;box-shadow:0 8px 24px #0005}.heatmap-hover strong,.heatmap-hover b{font-weight:600}.heatmap-hover span{flex-wrap:wrap;gap:12px;display:flex}.heatmap-hover small{color:var(--ui-muted);font-size:12px}
.day-playback{z-index:9;border:1px solid var(--ui-line);width:min(440px,100% - 32px);max-height:calc(100% - 130px);color:var(--ui-ink);background:var(--ui-surface);box-shadow:var(--ui-shadow);border-radius:16px;padding:18px;font-size:14px;line-height:1.45;position:absolute;bottom:100px;left:50%;overflow:auto;transform:translate(-50%)}.day-playback header,.day-playback header>div,.day-playback-controls,.day-playback-time,.day-playback-ends,.day-playback-legend{align-items:center;gap:10px;display:flex}.day-playback header{justify-content:space-between;margin-bottom:16px}.day-playback svg{flex-shrink:0;width:18px;height:18px}.day-playback strong{font-weight:600}.day-playback button,.day-playback select,.day-playback input[type=date]{border:1px solid var(--ui-control-line);background:var(--ui-surface-subtle);min-height:40px;color:var(--ui-ink);font:inherit;border-radius:8px;padding:8px 10px}.day-playback button{cursor:pointer;justify-content:center;align-items:center;gap:7px;display:inline-flex}.day-playback button:hover{background:var(--ui-surface-hover)}.day-playback .playback-header-action{background:0 0;border:0;min-width:40px;padding:8px}.day-playback .playback-header-action:hover{background:var(--ui-surface-hover)}@media (pointer:coarse){.day-playback .playback-header-action{min-width:44px;min-height:44px}}.day-playback .day-playback-minimize{background:0 0;border:0;min-width:32px;padding:6px}.day-playback-fields{grid-template-columns:1fr 1fr;gap:12px;display:grid}.day-playback-fields label{color:var(--ui-muted);gap:5px;font-size:13px;display:grid}.day-playback select,.day-playback input{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;width:100%;min-width:0}.day-playback-time{justify-content:space-between;margin-top:18px}.day-playback-time strong{font-variant-numeric:tabular-nums;font-size:23px}.day-playback-time span{color:var(--ui-muted);text-align:right;max-width:62%;font-size:12px}.day-playback-seek{accent-color:var(--ui-primary);cursor:pointer;height:32px;margin:4px 0 0}.day-playback-ends{color:var(--ui-muted);justify-content:space-between;font-size:12px}.day-playback-controls{margin-top:14px}.day-playback .day-playback-primary{background:var(--ui-primary);color:var(--ui-on-primary);border-color:var(--ui-primary);min-width:98px}.day-playback .day-playback-primary:hover{background:var(--ui-primary-hover)}.day-playback-speed{min-width:74px;margin-left:auto}.day-playback-legend{color:var(--ui-muted);margin-top:16px;font-size:12px}.day-playback-legend i{border-radius:3px;flex:1;height:5px}.day-playback footer{color:var(--ui-muted);flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:12px;font-size:12px;display:flex}.day-playback details{display:contents}.day-playback summary{cursor:pointer}.day-playback details p{flex-basis:100%;margin:0;line-height:1.6}.day-playback-message{gap:10px;padding:20px 0 4px;display:grid}.day-playback-message small{color:var(--ui-muted)}.day-playback progress{width:100%;height:6px;accent-color:var(--ui-primary)}.day-playback :focus-visible{outline:2px solid var(--ui-focus);outline-offset:3px}@media (max-width:600px){.day-playback{width:calc(100% - 24px);max-height:calc(100% - 110px);padding:14px;bottom:88px}.day-playback header,.day-playback header>div{gap:6px}}.day-playback.day-playback-mini .day-playback-seek,.day-playback.day-playback-mini .day-playback-ends,.day-playback.day-playback-mini .day-playback-legend,.day-playback.day-playback-mini footer{display:none}.day-playback.day-playback-mini{padding:10px 14px}.day-playback.day-playback-mini header{margin-bottom:0}.day-playback.day-playback-mini .day-playback-time{margin-top:4px}.playback-sensor-context{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.playback-sensor-context>span{color:var(--ui-muted);font-size:13px}.playback-sensor-dock .playback-metric-card{text-align:left;color:var(--ui-ink);cursor:pointer;font:inherit;border:2px solid #0000;flex-direction:column;align-items:stretch;gap:8px;display:flex}.playback-sensor-dock .playback-metric-card[aria-pressed=true]{border-color:var(--ui-primary);box-shadow:0 0 0 1px color-mix(in srgb, var(--ui-primary) 20%, transparent);background:var(--ui-surface-subtle)}.playback-metric-card:hover{background:var(--ui-surface-hover)}.playback-metric-label{justify-content:space-between;align-items:center;gap:8px;font-size:13px;display:flex}.playback-metric-label small{color:var(--ui-selected-ink);font-size:11px}.playback-metric-value{font-variant-numeric:tabular-nums;font-size:26px;font-weight:600}.playback-metric-value small{color:var(--ui-muted);margin-left:5px;font-size:13px;font-weight:400}.playback-metric-note{color:var(--ui-muted);font-size:12px}.playback-sensor-dock :focus-visible,.playback-setup :focus-visible{outline:2px solid var(--ui-selected-ink);outline-offset:3px}.playback-setup{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;width:min(520px,100vw - 32px)}.playback-setup form{gap:18px;display:grid}.playback-setup-fields{grid-template-columns:1fr 1fr;gap:14px;display:grid}.playback-setup label{gap:7px;font-size:14px;display:grid}.playback-setup input[type=date],.playback-setup select{border:1px solid var(--ui-control-line);background:var(--ui-surface-subtle);width:100%;min-width:0;min-height:44px;color:var(--ui-ink);font:inherit;border-radius:8px;padding:9px 11px}.playback-room-picker>span{justify-content:space-between;display:flex}.playback-room-picker small,.playback-setup-hint,.playback-room-chips small{color:var(--ui-muted)}.playback-room-chips{flex-wrap:wrap;gap:8px;display:flex}.playback-room-chips:empty{display:none}.playback-setup button{border:1px solid var(--ui-control-line);background:var(--ui-surface-subtle);min-height:40px;color:var(--ui-ink);font:inherit;cursor:pointer;border-radius:8px;padding:9px 12px}.playback-room-chips button{align-items:center;gap:8px;font-size:13px;display:flex}.playback-room-chips svg{width:14px;height:14px}.playback-metric-choices{border:0;margin:0;padding:0}.playback-metric-choices legend{margin-bottom:9px;font-size:14px}.playback-metric-choices>div{flex-wrap:wrap;gap:8px;display:flex}.playback-metric-choices label{border:1px solid var(--ui-control-line);cursor:pointer;border-radius:8px;align-items:center;min-height:42px;padding:8px 12px;display:flex}.playback-metric-choices label:has(:checked){border-color:var(--ui-primary);background:var(--ui-surface-subtle)}.playback-metric-choices label[data-disabled=true]{opacity:.45;cursor:default}.playback-metric-choices input{accent-color:var(--ui-primary);width:16px;height:16px}.playback-setup-hint{margin:0;font-size:13px;line-height:1.5}.playback-setup form>footer{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.playback-setup .playback-setup-submit{background:var(--ui-primary);border-color:var(--ui-primary);color:var(--ui-on-primary);font-weight:600}.playback-setup button:disabled{opacity:.45;cursor:default}.playback-setup-status{gap:12px;padding:12px 0;display:grid}.playback-setup-status progress{width:100%;accent-color:var(--ui-primary)}@media (min-width:640px){.day-playback:not(.day-playback-mini){width:min(580px,100% - 32px);padding:12px 18px}.day-playback header{margin-bottom:4px}.day-playback-time{margin-top:0}.day-playback-controls,.day-playback-legend,.day-playback footer{margin-top:8px}}@media (max-width:700px){.playback-sensor-dock{width:calc(100% - 24px);top:10px}.playback-sensor-dock header{flex-wrap:wrap;gap:8px}.playback-sensor-context{flex:100%}.playback-sensor-dock .playback-metric-card{flex-basis:170px;min-height:100px}.day-playback{max-height:calc(100% - 340px)}}.manage-dialog.playback-setup{background:var(--ui-surface);color:var(--ui-ink);border-color:var(--ui-line)}.manage-dialog.playback-setup .manage-dialog-symbol{background:var(--ui-surface-subtle);border-color:var(--ui-line);color:var(--ui-selected-ink)}.manage-dialog.playback-setup footer{border-color:var(--ui-line)}.manage-dialog.playback-setup button{background:var(--ui-surface-subtle);color:var(--ui-ink);border-color:var(--ui-control-line)}.manage-dialog.playback-setup .playback-setup-submit{background:var(--ui-primary);border-color:var(--ui-primary);color:var(--ui-on-primary)}.day-playback input.day-playback-seek{border:0;height:28px;min-height:28px;margin:0;padding:0}@media (min-width:640px){.day-playback:not(.day-playback-mini){grid-template-columns:1fr 1fr;column-gap:18px;display:grid}.day-playback header,.day-playback-seek,.day-playback-ends,.day-playback-message,.day-playback footer{grid-column:1/-1}.day-playback-time{grid-area:2/1}.day-playback-controls{grid-area:2/2;margin:0}.day-playback-time span{max-width:45%}.day-playback-legend{grid-column:1/-1}}.manage-dialog.playback-setup{border-radius:18px;height:fit-content;max-height:calc(100dvh - 32px);margin:auto}@media (max-width:600px){.manage-dialog.playback-setup{padding:20px}.playback-sensor-dock>header{grid-template-columns:minmax(0,1fr)}.playback-sensor-dock .playback-sensor-context{grid-template-columns:auto 1fr;width:100%;display:grid}.playback-sensor-dock .sensor-dock-actions{grid-area:auto/1;justify-content:space-between}.playback-sensor-dock .playback-metric-card{gap:5px;min-height:90px}}.playback-sensor-context .playback-room-name{color:var(--ui-ink);font-size:14px;font-weight:600}.playback-room-name small{color:var(--ui-muted);margin-left:6px;font-weight:400}.playback-room-hint{color:var(--ui-muted);margin:8px 0 0;font-size:13px}@media (max-width:600px){.playback-sensor-context .playback-room-name{grid-column:1/-1}}.day-playback header>.playback-header-action:first-of-type{margin-left:auto}
