.dashboard-viewer{margin:0 auto;max-width:100%}.viewer-topbar{align-items:center;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:12px;box-shadow:none;display:flex;gap:10px;margin-bottom:20px;padding:9px 14px;position:relative}.dashboard-select,.dashboard-select-wrap{flex:1 1 auto;max-width:400px;min-width:0}.dashboard-select-btn{align-items:center;background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:8px;cursor:pointer;display:inline-flex;font-size:12.5px;gap:8px;height:34px;padding:0 10px;transition:border-color .15s,box-shadow .15s,background .15s;width:100%}.dashboard-select-label{flex:1 1;min-width:0;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.dashboard-select-chevron{color:var(--text-secondary);font-size:12px;line-height:1}.dashboard-select-btn.open,.dashboard-select-btn:hover{border-color:rgba(var(--accent-blue-rgb),.46)}.dashboard-select-btn.open,.dashboard-select-btn:focus-visible{background:color-mix(in srgb,var(--bg-subtle) 90%,rgba(var(--accent-blue-rgb),.08) 10%);border-color:rgba(var(--accent-blue-rgb),.56);box-shadow:none;outline:none}.dashboard-select-btn:disabled{cursor:not-allowed;opacity:.7}.dashboard-select-menu{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:8px;box-shadow:none;left:0;max-height:260px;overflow-y:auto;padding:5px;position:absolute;top:calc(100% + 6px);width:100%;z-index:220}.dashboard-select-menu-item{background:transparent;border:none;border-radius:6px;cursor:pointer;font-size:13px;padding:7px 8px;text-align:left;width:100%}.dashboard-select-menu-name{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-right{align-items:center;display:flex;flex-shrink:0;gap:10px;margin-left:auto;position:relative}.viewer-right-divider{background:var(--border-color);border-radius:1px;display:inline-block;flex-shrink:0;height:22px;width:1px}.viewer-delete-btn{background:transparent;border:1px solid var(--accent-red);border-radius:7px;color:var(--accent-red);cursor:pointer;font-size:12.5px;padding:6px 14px;transition:background .15s,color .15s}.viewer-delete-btn:hover{background:var(--accent-red);color:#fff}.dash-mode-tag{align-items:center;border:1.5px solid;border-radius:20px;cursor:default;display:inline-flex;flex-shrink:0;font-size:12px;font-weight:600;gap:0;letter-spacing:.02em;padding:4px 6px;transition:padding .2s ease,gap .2s ease;white-space:nowrap}.dash-mode-tag:hover{gap:5px;padding:4px 10px}.dash-mode-tag-icon{flex-shrink:0;height:13px;width:13px}.dash-mode-tag-text{max-width:0;overflow:hidden;transition:max-width .2s ease}.dash-mode-tag:hover .dash-mode-tag-text{max-width:80px}.dash-mode-tag--static{background:rgba(37,99,235,.08);border-color:rgba(37,99,235,.35);color:#2563eb}.dash-mode-tag--scrollable{background:rgba(22,163,74,.08);border-color:rgba(22,163,74,.35);color:#16a34a}.viewer-grid{contain:layout paint;display:grid;grid-gap:14px;gap:14px;grid-auto-rows:43vh;grid-template-columns:repeat(3,minmax(0,1fr))}.main-content.main-content--static-dashboard{box-sizing:border-box;display:flex;flex-direction:column;height:100vh;max-height:100vh;overflow:hidden}.viewer-static{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.viewer-static .viewer-topbar{flex-shrink:0}.viewer-grid--static{contain:layout paint;flex:1 1;grid-auto-rows:minmax(0,1fr);min-height:0;overflow:hidden}.viewer-grid--static>*{min-height:0;min-width:0}.query-dashboard-viewer-container>.qi-timeline-slot{margin:12px -14px 0}.view-element{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:12px;box-shadow:none;container-name:panel;container-type:size;display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative}html:not([data-theme=dark]) .view-element:has(.lesson-pack-viewer-shell){background:#FFFFFF;border-color:#FFFFFF}html[data-theme=dark] .view-element:has(.lesson-pack-viewer-shell){background:var(--bg-panel);border-color:var(--border-color)}.view-element--strip{align-self:start;container-type:normal;grid-column:1/-1;height:auto}.view-element--strip .view-el-header{display:none}.view-element--strip .view-el-body{padding:6px 10px}.view-el-header{align-items:center;background:var(--bg-subtle);border-bottom:1px solid var(--border-color);display:flex;flex-shrink:0;justify-content:space-between;padding:7px 12px 6px 18px}.view-el-header-actions{align-items:center;display:inline-flex;gap:4px}.view-el-header-actions button svg{height:13px;width:13px}.view-el-title{font-size:12.5px;font-weight:600;flex:1 1 auto;min-width:0;overflow:hidden;--marquee-gap:48px}.view-el-title-scroll{display:inline-flex;align-items:center;gap:var(--marquee-gap);max-width:100%;min-width:0}.view-el-title-seg{white-space:nowrap}.view-el-title-seg--dup{display:none}.view-el-title--marquee .view-el-title-scroll{max-width:none;flex-wrap:nowrap;animation:view-el-marquee var(--marquee-duration,12s) linear infinite;will-change:transform}.view-el-title--marquee .view-el-title-seg--dup{display:inline}@keyframes view-el-marquee{0%{transform:translateX(0)}to{transform:translateX(calc(-1 * var(--marquee-shift, 100%)))}}@media (prefers-reduced-motion:reduce){.view-el-title--marquee .view-el-title-scroll{animation:none}}.view-element:focus-within .view-el-title,.view-element:hover .view-el-title{overflow:hidden;text-overflow:ellipsis}.view-element:focus-within .view-el-title .view-el-title-scroll,.view-element:hover .view-el-title .view-el-title-scroll{animation:none;transform:none;max-width:100%;display:block}.view-element:focus-within .view-el-title .view-el-title-seg,.view-element:hover .view-el-title .view-el-title-seg{display:block;overflow:hidden;text-overflow:ellipsis}.view-element:focus-within .view-el-title .view-el-title-seg--dup,.view-element:hover .view-el-title .view-el-title-seg--dup{display:none}.view-element:focus-within .view-el-title--hover-hide,.view-element:hover .view-el-title--hover-hide{visibility:hidden}.view-el-media-toggles{align-items:center;display:inline-flex;gap:2px;opacity:0;transition:opacity .15s}.view-element:hover .view-el-media-toggles{opacity:1}.view-el-media-btn{align-items:center;background:transparent;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;display:flex;flex-shrink:0;height:26px;justify-content:center;padding:0;transition:background .15s,color .15s;width:26px}.view-el-media-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.view-el-media-btn--active{color:var(--accent-blue)}.view-el-media-btn--active:hover{background:var(--accent-blue-tint-12);color:var(--accent-blue)}.view-el-conditions-btn,.view-el-config-btn,.view-el-float-btn,.view-el-fullscreen-nav-btn,.view-el-maximize-btn,.view-el-pin-btn,.view-el-share-btn{align-items:center;background:transparent;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;display:flex;flex-shrink:0;height:20px;justify-content:center;opacity:0;padding:0;transition:opacity .15s,background .15s,color .15s,transform .22s ease;width:20px}.view-el-conditions-btn,.view-el-config-btn,.view-el-share-btn{position:relative}.view-element:hover .view-el-conditions-btn,.view-element:hover .view-el-config-btn,.view-element:hover .view-el-float-btn,.view-element:hover .view-el-fullscreen-nav-btn,.view-element:hover .view-el-maximize-btn,.view-element:hover .view-el-pin-btn,.view-element:hover .view-el-share-btn{opacity:1}.view-el-share-btn--active{background:var(--accent-blue-tint-12);color:var(--accent-blue);opacity:1}.view-el-share-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.view-el-share-btn--active:hover{background:var(--accent-blue-tint-12);color:var(--accent-blue)}.view-el-share-float{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:12px;display:flex;flex-direction:column;max-height:min(540px,calc(100vh - 16px));position:fixed;width:min(360px,calc(100vw - 16px));z-index:calc(var(--z-modal) + 2)}.view-el-share-float__header{align-items:flex-start;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;gap:12px;padding:14px 16px 12px}.view-el-share-float__title-wrap{display:flex;flex-direction:column;gap:2px;min-width:0}.view-el-share-float__title{color:var(--text-primary);font-size:13px;font-weight:600}.view-el-share-float__subtitle{color:var(--text-muted);font-size:11px;line-height:1.4}.view-el-share-float__close{align-items:center;background:transparent;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;display:inline-flex;flex-shrink:0;font-size:20px;height:28px;justify-content:center;line-height:1;padding:0;width:28px}.view-el-share-float__close:hover{background:var(--bg-hover);color:var(--text-primary)}.view-el-share-float__body{display:flex;flex-direction:column;gap:14px;overflow-y:auto;padding:14px 16px 16px}.view-el-share-float__status{color:var(--text-muted);font-size:12px;line-height:1.5}.view-el-share-float__status--error{color:var(--danger-color,#c2410c)}.view-el-share-field{display:flex;flex-direction:column;gap:8px}.view-el-share-field__label{color:var(--text-secondary);font-size:11px;font-weight:600}.view-el-share-field__code,.view-el-share-field__input{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.45;padding:10px 12px;width:100%}.view-el-share-field__input{min-height:40px}.view-el-share-field__code{min-height:96px;resize:vertical}.view-el-share-field__actions{display:flex;gap:8px}.view-el-share-field__btn{align-items:center;background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);cursor:pointer;display:inline-flex;font-size:11px;font-weight:600;height:32px;justify-content:center;min-width:68px;padding:0 12px;text-decoration:none}.view-el-share-field__btn:hover{background:var(--bg-hover)}.view-el-share-field__btn--link{color:var(--text-primary)}.view-el-share-qr{display:flex;flex-direction:column;gap:8px}.view-el-share-qr__frame{align-items:center;background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:10px;display:flex;justify-content:center;min-height:204px;padding:12px}.view-el-share-qr__frame img{display:block;height:auto;max-width:100%}.view-el-share-float__copy{color:var(--text-secondary);font-size:11px;font-weight:600}.view-el-date-ctrl{align-items:center;display:inline-flex;gap:12px;opacity:0;transition:opacity .15s}.view-el-date-ctrl--historical,.view-element:hover .view-el-date-ctrl{opacity:1}.view-el-live-group,.view-el-zoom-group{align-items:center;display:inline-flex}.view-el-zoom-group{flex-shrink:0}.view-el-live-group{gap:4px}.view-el-date-sep{color:var(--text-muted);font-size:11px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.lzs-track{display:inline-block;height:28px;margin-right:6px;position:relative;width:90px}.lzs-rail{background:var(--border-color);height:2px;left:6px;right:6px;top:8px}.lzs-fill,.lzs-rail{border-radius:2px;position:absolute}.lzs-fill{background:var(--accent-blue);height:100%;left:0;max-width:100%;top:0;transition:width .18s ease}.lzs-stop{align-items:center;background:var(--bg-panel);border:1.5px solid var(--border-color);border-radius:50%;cursor:pointer;display:flex;flex-direction:column;height:11px;justify-content:center;padding:0;position:absolute;top:3px;transform:translateX(-50%);transition:background .14s,border-color .14s,transform .12s;width:11px;z-index:1}.lzs-stop:hover{border-color:var(--accent-blue);transform:translateX(-50%) scale(1.35);z-index:1}.lzs-stop--past{background:var(--bg-panel);border-color:var(--border-color)}.lzs-track:hover .lzs-stop--past{background:color-mix(in srgb,var(--accent-blue) 12%,var(--bg-panel));border-color:var(--accent-blue)}.lzs-stop--active{background:var(--accent-blue);border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--accent-blue-tint-15);height:13px;top:2px;transform:translateX(-50%);width:13px;z-index:1}.lzs-stop--active:hover{transform:translateX(-50%) scale(1.15)}.lzs-stop-label{color:var(--text-muted);font-size:8px;font-weight:700;left:50%;letter-spacing:.05em;line-height:1;pointer-events:none;position:absolute;top:15px;transform:translateX(-50%);-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.lzs-stop--active .lzs-stop-label{color:var(--accent-blue)}.lzs-stop--past .lzs-stop-label{color:var(--text-muted);opacity:1}.lzs-track:hover .lzs-stop--past .lzs-stop-label{color:var(--accent-blue);opacity:.7}.view-el-live-pill{align-items:center;color:var(--accent-green);display:inline-flex;gap:5px;pointer-events:none;white-space:nowrap}.view-el-live-dot{animation:live-dot-pulse 1.6s ease-in-out infinite;background:var(--accent-green);border-radius:50%;display:inline-block;flex-shrink:0;height:6px;width:6px}@keyframes live-dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.72)}}.view-el-live-text{font-size:10.5px;font-weight:700;letter-spacing:.06em}.view-el-toggle-wrap{max-width:0;overflow:hidden;transition:max-width .2s ease}.view-el-live-group--historical .view-el-toggle-wrap,.view-el-live-group:hover .view-el-toggle-wrap{max-width:32px}.view-el-live-toggle{background:var(--toggle-off-bg);border:none;border-radius:8px;cursor:pointer;flex-shrink:0;height:16px;padding:0;position:relative;transition:background .15s;width:28px}.view-el-live-toggle--on{background:var(--accent-green)}.view-el-live-toggle:not(.view-el-live-toggle--on):hover{background:var(--toggle-off-hover-bg)}.view-el-live-toggle:before{background:var(--toggle-knob-bg);border-radius:50%;content:"";height:10px;left:3px;position:absolute;top:50%;transform:translateY(-50%);transition:transform .15s ease;width:10px}.view-el-live-toggle--on:before{transform:translateX(12px) translateY(-50%)}.view-el-action-wrap{align-items:center;display:inline-flex;gap:4px;max-width:156px;overflow:hidden;transition:max-width .22s ease}.view-element:not(:hover) .view-el-action-wrap--historical{max-width:0}.view-element:not(:hover) .view-el-action-wrap--historical.view-el-action-wrap--cfg-filtered{max-width:28px}.view-el-cond-wrap{align-items:center;display:inline-flex;max-width:32px;overflow:hidden;transition:max-width .22s ease}.view-element:not(:hover) .view-el-cond-wrap--historical{max-width:0}.view-element:not(:hover) .view-el-action-wrap:not(.view-el-action-wrap--historical) .view-el-config-btn--filtered{transform:translateX(32px)}.vdp-wrap{align-items:center;background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;display:inline-flex;gap:3px;height:20px;justify-content:center;min-width:20px;padding:0 4px;position:relative;transition:border-color .15s,background .15s}.vdp-wrap:hover{border-color:var(--accent-blue)}.vdp-wrap--set,.vdp-wrap:hover{background:var(--accent-blue-tint-8)}.vdp-wrap--set{border-color:var(--accent-blue-tint-15)}.vdp-wrap--set:hover{background:var(--accent-blue-tint-12);border-color:var(--accent-blue)}.vdp-text{color:var(--accent-blue);font-size:10.5px;font-weight:500;white-space:nowrap}.vdp-text--label{color:var(--text-muted);font-size:10px;font-weight:400}.vdp-wrap svg{color:var(--text-muted);display:block;flex-shrink:0}.vdp-wrap:hover svg{color:var(--accent-blue)}.vdp-popover{animation:vdp-in .13s ease;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:10px;box-shadow:var(--shadow-md),0 0 0 1px rgba(0,0,0,.04);font-family:inherit;padding:10px;position:fixed;width:224px;z-index:var(--z-dropdown-elevated)}@keyframes vdp-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.vdp-pop-head{justify-content:space-between;margin-bottom:8px;padding:0 2px}.vdp-nav-btn,.vdp-pop-head{align-items:center;display:flex}.vdp-nav-btn{background:transparent;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;height:26px;justify-content:center;padding:0;transition:background .12s,color .12s;width:26px}.vdp-nav-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.vdp-month-lbl{color:var(--text-primary);font-size:13px;font-weight:600}.vdp-pop-grid{display:grid;grid-gap:2px;gap:2px;grid-template-columns:repeat(7,1fr)}.vdp-wday{color:var(--text-muted);font-size:10.5px;font-weight:600;letter-spacing:.03em;padding-bottom:4px;text-align:center}.vdp-day-empty{display:block}.vdp-day{align-items:center;aspect-ratio:1/1;background:transparent;border:none;border-radius:6px;color:var(--text-primary);cursor:pointer;display:flex;font-family:inherit;font-size:12px;justify-content:center;padding:0;position:relative;transition:background .1s,color .1s;width:100%}.vdp-day:hover{background:var(--bg-hover)}.vdp-day--today{color:var(--accent-blue);font-weight:700}.vdp-day--today:after{background:var(--accent-blue);border-radius:50%;bottom:2px;content:"";height:3px;left:50%;position:absolute;transform:translateX(-50%);width:3px}.vdp-day--sel{background:var(--accent-blue);color:#fff;font-weight:600}.vdp-day--sel:hover{background:var(--accent-blue-hover)}.vdp-day--sel.vdp-day--today:after{background:rgba(255,255,255,.7)}.vdp-pop-foot{border-top:1px solid var(--border-color);display:flex;justify-content:space-between;margin-top:8px;padding-top:8px}.vdp-foot-btn{background:transparent;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:12px;padding:3px 7px;transition:background .12s,color .12s}.vdp-foot-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.vdp-foot-btn--today{color:var(--accent-blue)}.vdp-foot-btn--today:hover{background:var(--accent-blue-tint-8);color:var(--accent-blue)}.view-el-conditions-btn:hover,.view-el-config-btn:hover,.view-el-float-btn:hover,.view-el-fullscreen-nav-btn:hover,.view-el-maximize-btn:hover,.view-el-pin-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.view-el-conditions-btn:active,.view-el-config-btn:active,.view-el-float-btn:active,.view-el-fullscreen-nav-btn:active,.view-el-maximize-btn:active,.view-el-pin-btn:active{background:var(--accent-blue-tint-12);color:var(--accent-blue)}.view-el-config-btn--active,.view-el-float-btn--active,.view-el-pin-btn--active{color:var(--accent-blue);opacity:1}.view-el-config-btn--filtered{opacity:1}.view-el-config-btn--active.view-el-config-btn--filtered{color:var(--accent-blue)}.view-el-conditions-dot,.view-el-config-dot{background:var(--accent-orange);border-radius:999px;height:6px;position:absolute;right:3px;top:3px;width:6px}.view-element--maximized .view-el-fullscreen-nav-btn,.view-element--maximized .view-el-maximize-btn{opacity:1}.fullscreen-block-controls__btn--active,.view-el-fullscreen-nav-btn--active{background:rgba(var(--accent-blue-rgb),.14);color:var(--accent-blue)}.view-element--has-conditions{position:relative}.view-element--has-conditions:before{background:var(--accent-orange);border-radius:999px;content:"";height:7px;left:8px;position:absolute;top:8px;width:7px;z-index:2;pointer-events:none}.view-element--maximized{-webkit-backface-visibility:hidden;backface-visibility:hidden;contain:paint;transform-origin:top left;will-change:transform,border-radius}.view-el-content-shell{display:flex;flex:1 1;flex-direction:column;min-height:0}.view-el-content-shell--slide-enter-next.view-el-content-shell--slide-enter-active,.view-el-content-shell--slide-enter-prev.view-el-content-shell--slide-enter-active,.view-el-content-shell--slide-leave-next,.view-el-content-shell--slide-leave-prev{transition:transform .22s cubic-bezier(.22,1,.36,1),opacity .22s cubic-bezier(.22,1,.36,1);will-change:transform,opacity}.view-el-content-shell--slide-leave-next{opacity:0;transform:translate3d(-44px,0,0)}.view-el-content-shell--slide-enter-next,.view-el-content-shell--slide-leave-prev{opacity:0;transform:translate3d(44px,0,0)}.view-el-content-shell--slide-enter-prev{opacity:0;transform:translate3d(-44px,0,0)}.view-el-content-shell--slide-enter-active{opacity:1;transform:translateZ(0)}html[data-theme=dark] .leaflet-container{background:#0e0e0e}.relu-atlas-popup .leaflet-popup-content-wrapper{background:transparent;border:0;border-radius:0;box-shadow:none;padding:0}.relu-atlas-popup .leaflet-popup-content{margin:0}html[data-theme=dark] .relu-atlas-popup .leaflet-popup-tip{background:rgba(4,12,20,.94)}html:not([data-theme=dark]) .relu-atlas-popup .leaflet-popup-tip{background:rgba(255,255,255,.96)}html[data-theme=dark] .view-element--maximized .leaflet-tile-pane{will-change:transform}.view-el-body{flex:1 1;min-height:0;padding:12px 14px}.view-element:has(.lesson-pack-viewer-shell) .view-el-body{padding:0}.view-element:has(.canvas2d-block) .view-el-body,.view-element:has(.globe-visualization) .view-el-body,.view-element:has(.viewport3d-shell) .view-el-body{padding:0}.view-element:has(.viewport3d-shell) .view-el-body .viewport3d-shell{border:none;border-radius:0}.view-el-body--maximized{position:relative}.view-el-body--timeline{display:flex;flex-direction:column;padding-bottom:0}.view-el-body-content{display:flex;flex:1 1;flex-direction:column;min-height:0}.view-el-body--draw-active{cursor:crosshair}.fullscreen-draw-overlay{inset:12px 14px;pointer-events:none;position:absolute;z-index:6}.fullscreen-draw-overlay--active{pointer-events:auto}.fullscreen-draw-overlay__svg{display:block;height:100%;width:100%}.fullscreen-draw-overlay__marker{height:56px;left:0;pointer-events:none;position:absolute;top:0;transform:translate(-50%,-50%);width:56px}.fullscreen-draw-overlay__marker-halo{background:rgba(255,255,255,.14);background:color-mix(in srgb,var(--fullscreen-marker-color) 10%,rgba(255,255,255,.22));border:1px solid rgba(255,255,255,.34);border-radius:999px;inset:3px;opacity:.92;position:absolute}.fullscreen-draw-overlay__marker-ring{background:rgba(255,255,255,.72);background:color-mix(in srgb,var(--fullscreen-marker-color) 18%,rgba(255,255,255,.84));border:3px solid var(--fullscreen-marker-color);border-radius:999px;box-shadow:0 0 0 1px rgba(255,255,255,.92),0 8px 18px rgba(15,23,42,.08);inset:11px;position:absolute}.fullscreen-draw-overlay__marker-core{background:var(--fullscreen-marker-color);border:3px solid rgba(255,255,255,.96);border-radius:999px;box-shadow:0 0 0 2px rgba(15,23,42,.08);height:14px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:14px}.fullscreen-block-controls{display:flex;gap:12px;position:absolute;top:50%;transform:translateY(-50%);z-index:8}.fullscreen-block-controls--left{left:20px}.fullscreen-block-controls--right{right:20px;flex-direction:row-reverse}.fullscreen-block-panels{min-width:56px;position:relative;transition:height .34s cubic-bezier(.16,1,.3,1);width:56px}.fullscreen-block-panels--transitioning{border-radius:20px;overflow:hidden;pointer-events:none}.fullscreen-block-panel{transform-origin:center center;transition:opacity .32s cubic-bezier(.16,1,.3,1),transform .34s cubic-bezier(.16,1,.3,1),filter .3s cubic-bezier(.16,1,.3,1);will-change:opacity,transform,filter}.fullscreen-block-panel>*{--fullscreen-panel-item-delay:0ms;transition:opacity .2s cubic-bezier(.16,1,.3,1),transform .24s cubic-bezier(.16,1,.3,1);will-change:opacity,transform}.fullscreen-block-panel>:first-child{--fullscreen-panel-item-delay:16ms}.fullscreen-block-panel>:nth-child(2){--fullscreen-panel-item-delay:34ms}.fullscreen-block-panel>:nth-child(3){--fullscreen-panel-item-delay:52ms}.fullscreen-block-panel>:nth-child(4){--fullscreen-panel-item-delay:70ms}.fullscreen-block-panel>:nth-child(5){--fullscreen-panel-item-delay:88ms}.fullscreen-block-panel>:nth-child(6){--fullscreen-panel-item-delay:106ms}.fullscreen-block-panels--transitioning .fullscreen-block-panel{left:0;position:absolute;top:0;width:100%}.fullscreen-block-panel--enter{filter:blur(4px);opacity:0;transform:scaleY(.93)}.fullscreen-block-panel--enter>*{opacity:0;transform:scale(.94)}.fullscreen-block-panel--enter.fullscreen-block-panel--enter-active{filter:blur(0);opacity:1;transform:scaleX(1)}.fullscreen-block-panel--enter.fullscreen-block-panel--enter-active>*{opacity:1;transform:scale(1);transition-delay:var(--fullscreen-panel-item-delay)}.fullscreen-block-panel--leave{filter:blur(0);opacity:1;transform:scaleX(1)}.fullscreen-block-panel--leave>*{opacity:1;transform:scale(1)}.fullscreen-block-panel--leave.fullscreen-block-panel--leave-active{filter:blur(4px);opacity:0;transform:scaleY(.93)}.fullscreen-block-panel--leave.fullscreen-block-panel--leave-active>*{opacity:0;transform:scale(.94)}.fullscreen-block-controls__stack,.fullscreen-block-tools-panel{background:rgba(255,255,255,.88);border:1px solid rgba(148,163,184,.25);border-radius:20px;box-shadow:none;display:flex;flex-direction:column;gap:4px;padding:6px}html[data-theme=dark] .fullscreen-block-controls__stack,html[data-theme=dark] .fullscreen-block-tools-panel{background:rgba(7,13,22,.84);border-color:rgba(125,211,252,.18)}.fullscreen-block-controls__btn,.fullscreen-block-tools-panel__color,.fullscreen-block-tools-panel__tool{align-items:center;background:transparent;border:none;border-radius:14px;color:var(--text-muted);cursor:pointer;display:flex;height:42px;justify-content:center;padding:0;transition:background .16s ease,color .16s ease,transform .18s ease;width:42px}.fullscreen-block-controls__btn:hover,.fullscreen-block-tools-panel__color:hover,.fullscreen-block-tools-panel__tool:hover{background:var(--bg-hover);color:var(--text-primary)}.fullscreen-block-controls__btn:active,.fullscreen-block-tools-panel__color:active,.fullscreen-block-tools-panel__tool:active{transform:scale(.97)}.fullscreen-block-tools-panel{align-items:center}.fullscreen-block-tools-panel__tool--active{background:rgba(var(--accent-blue-rgb),.14);color:var(--accent-blue)}.fullscreen-block-tools-panel__tool--danger{color:var(--accent-red)}.fullscreen-block-tools-panel__tool--warning{color:var(--accent-orange)}.fullscreen-block-tools-panel__colors{border-top:1px solid rgba(148,163,184,.22);display:flex;flex-direction:column;gap:4px;margin-top:2px;padding-top:6px}.fullscreen-block-tools-panel__color{position:relative}.fullscreen-block-tools-panel__color:before{background:var(--fullscreen-draw-color);border-radius:8px;content:"";height:22px;width:22px}.fullscreen-block-tools-panel__color--active{background:rgba(15,23,42,.08)}.fullscreen-block-tools-panel__color--active:after{border:2px solid;border-radius:10px;content:"";inset:7px;position:absolute}@media (max-width:720px){.fullscreen-block-controls--left{left:14px}.fullscreen-block-controls--right{right:14px}}.view-el-body,.viewer-empty{display:flex;flex-direction:column}.viewer-empty{align-items:center;color:var(--text-secondary);gap:16px;justify-content:center;min-height:400px;text-align:center}.viewer-empty-icon{opacity:.6}.viewer-empty-title{font-size:20px;font-weight:600;margin:0}.viewer-empty-text{font-size:14px;line-height:1.6;max-width:380px}@media (max-width:1100px){.viewer-grid{grid-auto-rows:43vh;grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.viewer-grid{grid-auto-rows:43vh;grid-template-columns:minmax(0,1fr)}.view-element{grid-column:1/-1!important}}.pinned-dash-page{display:flex;flex-direction:column;height:100%;overflow:hidden}.pinned-dash-page--not-found{align-items:center;color:var(--text-muted);font-size:14px;justify-content:center}.pinned-dash-topbar{align-items:center;background:var(--bg-panel);border-bottom:1px solid var(--border-color);display:flex;flex-shrink:0;gap:12px;padding:10px 18px}.pinned-dash-topbar-name{color:var(--text-primary);font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pinned-dash-topbar-update{align-items:center;color:var(--text-muted);display:inline-flex;font-size:11.5px;gap:5px}.pinned-dash-live-dot{background:var(--accent-green,#28a745);border-radius:50%;display:inline-block;height:7px;width:7px}.pinned-dash-viewer-wrap{padding:14px}.composer-page,.pinned-dash-viewer-wrap{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.composer-topbar{align-items:center;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:10px;box-shadow:none;display:flex;flex-shrink:0;gap:10px;margin-bottom:12px;padding:8px 14px}.composer-name-input{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:7px;font-size:13.5px;padding:7px 12px;width:280px}.composer-name-input:focus{border-color:var(--accent-blue);box-shadow:none;outline:none}.composer-save-msg{color:var(--accent-green);font-size:12.5px;font-weight:500}.composer-filemgr{align-items:center;display:flex;flex-shrink:0;gap:6px}.composer-btn{align-items:center;background:var(--bg-subtle);border:1.5px solid var(--border-color);border-radius:7px;cursor:pointer;display:inline-flex;font-size:13px;font-weight:500;gap:6px;padding:6px 13px;transition:background .14s,border-color .14s,color .14s;white-space:nowrap}.composer-btn:hover{background:var(--bg-hover);border-color:var(--accent-blue);color:var(--accent-blue)}.composer-btn-icon{flex-shrink:0;height:16px;width:16px}.composer-btn--save{background:rgba(30,163,83,.07);border-color:var(--accent-green);color:var(--accent-green)}.composer-btn--save:hover{background:var(--accent-green);border-color:var(--accent-green);color:#fff}.composer-btn--delete{background:rgba(217,64,64,.06);border-color:#d94040;color:#d94040}.composer-btn--delete:hover{background:#d94040;border-color:#d94040;color:#fff}.composer-scroll-mode{align-items:center;border-left:1.5px solid var(--border-color);display:flex;gap:5px;margin-left:2px;padding-left:10px}.composer-scroll-label{color:var(--text-secondary);font-size:11.5px;font-weight:500;white-space:nowrap}.composer-scroll-select-wrap{position:relative}.composer-scroll-select{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:8px;cursor:pointer;font-size:12.5px;height:34px;padding:0 10px;transition:border-color .14s,box-shadow .14s,background .14s}.composer-scroll-select-btn{align-items:center;display:inline-flex;gap:8px;justify-content:space-between;min-width:130px}.composer-scroll-select-label{white-space:nowrap}.composer-scroll-select-chevron{color:var(--text-secondary);font-size:12px}.composer-scroll-select-icon{align-items:center;display:flex;flex-shrink:0;margin-right:0;max-width:0;overflow:hidden;transition:max-width .4s cubic-bezier(.175,.885,.32,1.1),margin-right .4s cubic-bezier(.175,.885,.32,1.1)}.composer-scroll-select--saved .composer-scroll-select-icon{margin-right:0;max-width:20px}.csss-check{animation:csss-check-draw .35s ease .05s forwards;stroke-dasharray:20;stroke-dashoffset:20}@keyframes csss-check-draw{to{stroke-dashoffset:0}}.composer-scroll-select--saved{background:#2e7d47;border-color:rgba(0,0,0,.08);color:#fff;gap:6px;justify-content:center;pointer-events:none}.composer-scroll-select--saved:focus{outline:none}.composer-scroll-select-btn.open:not(.composer-scroll-select--saved),.composer-scroll-select:focus:not(.composer-scroll-select--saved){background:color-mix(in srgb,var(--bg-subtle) 90%,rgba(var(--accent-blue-rgb),.08) 10%);border-color:rgba(var(--accent-blue-rgb),.56);box-shadow:none;outline:none}.composer-scroll-menu{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:8px;box-shadow:none;left:0;min-width:140px;padding:5px;position:absolute;top:calc(100% + 6px);z-index:180}.composer-scroll-menu-item{background:transparent;border:none;border-radius:6px;cursor:pointer;font-size:13px;padding:7px 8px;text-align:left;width:100%}.composer-load-overlay{inset:0;position:fixed;z-index:99}.composer-load-menu{background:var(--bg-panel);border:1.5px solid var(--border-color);border-radius:10px;box-shadow:none;left:0;max-height:320px;min-width:50px;overflow-y:auto;padding:6px;position:absolute;top:calc(100% + 6px);z-index:100}.composer-load-menu-header{border-bottom:1px solid var(--border-color);color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.06em;margin-bottom:4px;padding:4px 8px 6px;text-transform:uppercase}.composer-load-empty{color:var(--text-muted);font-size:12.5px;padding:8px;text-align:center}.composer-load-item{align-items:center;background:none;border:none;border-radius:7px;cursor:pointer;display:flex;font-size:13px;gap:7px;padding:7px 10px;text-align:left;transition:background .12s;width:100%}.composer-load-item--active{background:rgba(var(--accent-blue-rgb),.09);color:var(--accent-blue);font-weight:500}.composer-load-item-icon{flex-shrink:0;height:14px;opacity:.6;width:14px}.composer-layout{display:flex;flex:1 1;gap:0;min-height:0}.composer-layout--fullscreen{background:var(--bg-main);gap:14px;height:100%;inset:0;min-height:100%;padding:14px;position:fixed;z-index:var(--z-modal)}.composer-layout--fullscreen-canvas2d,.composer-layout--fullscreen-split-editor{align-items:stretch}.composer-grid-wrap{background:var(--bg-canvas);border:1px solid var(--border-color);border-radius:10px;contain:layout paint;flex:1 1;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:12px}.composer-grid-wrap--fullscreen{display:flex;min-height:0;overflow:hidden;padding:14px}.composer-grid-wrap--fullscreen-canvas2d,.composer-grid-wrap--fullscreen-split-editor{min-width:0}.composer-layout--fullscreen-canvas2d .composer-grid-wrap--fullscreen-canvas2d,.composer-layout--fullscreen-split-editor .composer-grid-wrap--fullscreen-split-editor{background:transparent;border:0;border-radius:0;padding:0}.composer-grid{position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.composer-grid--fullscreen{display:flex;flex:1 1;min-height:0}.composer-grid--fullscreen .drop-highlight,.composer-grid--fullscreen .grid-bg-cell{display:none}.grid-bg-cell{background:var(--bg-grid-cell);border:1.5px dashed var(--grid-border-color);border-radius:8px;transition:background .1s}.drop-highlight,.grid-bg-cell{pointer-events:none;position:absolute}.drop-highlight{background:rgba(var(--accent-blue-rgb),.1);border:2px dashed var(--accent-blue);border-radius:8px;z-index:5}.composer-element{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:10px;box-shadow:none;container-name:panel;container-type:size;cursor:-webkit-grab;cursor:grab;display:flex;flex-direction:column;overflow:visible;position:absolute;transition:border-color .15s,box-shadow .15s;z-index:10}.composer-element:hover{border-color:#94a3b8;box-shadow:none}.composer-element--fullscreen-hidden{display:none}.composer-element--fullscreen-active{height:100%!important; /* !important needed: overrides inline drag-position styles */left:0!important; /* !important needed: overrides inline drag-position styles */position:relative;top:0!important; /* !important needed: overrides inline drag-position styles */width:100%!important /* !important needed: overrides inline drag-position styles */}.composer-layout--fullscreen-canvas2d .composer-element--fullscreen-active{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:12px;box-shadow:none;overflow:hidden}.composer-layout--fullscreen-canvas2d .composer-element--fullscreen-active .composer-el-header{border-radius:12px 12px 0 0}.composer-layout--fullscreen-canvas2d .composer-element--fullscreen-active .composer-el-body{padding:0}.composer-element--fullscreen-active .composer-el-body{padding:10px 12px 12px}.composer-element--fullscreen-active .composer-el-delete,.composer-element--fullscreen-active .resize-handle{display:none}.composer-element--selected,.composer-element--swap-target{border-color:var(--accent-blue)!important; /* !important needed: selection must override hover border-color */box-shadow:none!important /* !important needed: design spec — flat elevation */}.composer-layout--fullscreen .composer-element--selected,.composer-layout--fullscreen .composer-element--selected:hover,.composer-layout--fullscreen .composer-element--swap-target,.composer-layout--fullscreen .composer-element--swap-target:hover{border-color:var(--border-color)!important /* !important needed: fullscreen resets selection border */}.composer-layout--fullscreen .composer-element--fullscreen-active:hover{border-color:var(--border-color)}.composer-element--strip{container-type:normal;cursor:ns-resize}.composer-el-header{align-items:center;background:var(--bg-subtle);border-bottom:1px solid var(--border-color);border-radius:8px 8px 0 0;display:flex;flex-shrink:0;justify-content:space-between;padding:7px 10px 6px}.composer-el-title{font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-el-title-input{background:var(--bg-panel);border:1px solid var(--accent-blue);border-radius:4px;flex:1 1;font-size:12.5px;font-weight:600;min-width:0;padding:2px 6px}.composer-el-title-input::placeholder{color:var(--text-secondary)}.composer-el-delete{align-items:center;background:transparent;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;display:flex;flex-shrink:0;font-size:12px;height:20px;justify-content:center;transition:background .1s,color .1s;width:20px}.composer-el-delete:hover{background:var(--accent-red);color:#fff}.composer-el-actions{gap:2px;margin-left:auto}.composer-el-actions,.composer-el-save{align-items:center;display:flex;flex-shrink:0}.composer-el-save{background:transparent;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;height:20px;justify-content:center;padding:0;transition:background .1s,color .1s;width:20px}.composer-el-save:hover{background:var(--accent-teal);color:#fff}.composer-el-fullscreen{align-items:center;background:transparent;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;display:flex;flex-shrink:0;height:20px;justify-content:center;padding:0;transition:background .1s,color .1s;width:20px}.composer-el-fullscreen--active,.composer-el-fullscreen:hover{background:var(--accent-blue);color:#fff}.composer-el-theme-toggle{align-items:center;background:transparent;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;display:flex;flex-shrink:0;height:20px;justify-content:center;padding:0;transition:background .1s,color .1s;width:20px}.composer-el-theme-toggle:hover{background:var(--accent-blue);color:#fff}.composer-el-action-icon{display:block;height:13px;width:13px}.composer-el-body{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden;padding:8px 10px 10px}.resize-handle{background:var(--accent-blue);border-radius:3px;opacity:0;position:absolute;transition:opacity .15s;z-index:20}.composer-element--selected .resize-handle,.composer-element:hover .resize-handle{opacity:1}.resize-handle--n{cursor:n-resize;top:-4px}.resize-handle--n,.resize-handle--s{height:8px;left:50%;transform:translateX(-50%);width:28px}.resize-handle--s{bottom:-4px;cursor:s-resize}.resize-handle--e{cursor:e-resize;right:-4px}.resize-handle--e,.resize-handle--w{height:28px;top:50%;transform:translateY(-50%);width:8px}.resize-handle--w{cursor:w-resize;left:-4px}.resize-handle--ne{cursor:ne-resize;top:-4px}.resize-handle--ne,.resize-handle--se{border-radius:50%;height:12px;right:-4px;width:12px}.resize-handle--se{bottom:-4px;cursor:se-resize}.resize-handle--sw{bottom:-4px;cursor:sw-resize}.resize-handle--nw,.resize-handle--sw{border-radius:50%;height:12px;left:-4px;width:12px}.resize-handle--nw{cursor:nw-resize;top:-4px}.composer-panel{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:10px;box-shadow:none;display:flex;flex-direction:column;flex-shrink:0;margin-left:12px;overflow:hidden;position:relative;width:260px}.composer-panel--fullscreen{margin-left:0;min-height:0;width:min(420px,34vw)}.composer-panel--fullscreen-split{width:min(306px,23vw)}.composer-layout--fullscreen-split-editor .composer-panel--fullscreen-split{background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible}.composer-panel--fullscreen-left{order:-1}.composer-panel--collapsed{overflow:hidden;width:32px}.composer-panel--save-target{background:var(--bg-panel-elevated);outline:2px solid hsla(0,0%,100%,.55)}.composer-panel--save-target:after{background:var(--accent-blue);border-radius:20px;color:#fff;content:"Release to save graph";font-size:11px;font-weight:600;left:50%;opacity:.92;padding:4px 12px;pointer-events:none;position:absolute;top:12px;transform:translateX(-50%);white-space:nowrap;z-index:var(--z-sticky)}.composer-drag-save-cursor{background:none;border-radius:6px;color:#aaa;padding:5px 6px;pointer-events:none;position:fixed;transform:translate(6px,6px);z-index:var(--z-drag-cursor)}.composer-drag-save-cursor,.composer-panel-toggle{align-items:center;display:flex;justify-content:center}.composer-panel-header{align-items:center;display:flex;flex-shrink:0;gap:0;padding-top:4px}.composer-panel-toggle{align-items:center;background:transparent;border:none;border-radius:3px;color:var(--text-secondary);cursor:pointer;display:flex;flex-shrink:0;height:20px;justify-content:center;margin:7px 2px 7px 8px;padding:0;transition:background .1s;width:20px}.composer-panel--fullscreen .composer-panel-toggle{display:none}.composer-panel-title{border-bottom:1px solid var(--border-color);font-size:13px;font-weight:700;letter-spacing:.02em;padding:12px 14px 6px 36px}.composer-panel-search{border-bottom:1px solid var(--border-color);padding:8px 12px}.composer-panel-blocks-scroll{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow-y:auto}.composer-panel-search-input{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:6px;font-size:12.5px;padding:5px 10px;width:100%}.composer-panel-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:1fr 1fr;padding:4px 12px 12px}.composer-template-card{align-items:center;background:color-mix(in srgb,var(--bg-subtle) 93%,rgba(var(--accent-blue-rgb),.1) 7%);border:1.5px solid var(--border-color);border-radius:9px;cursor:-webkit-grab;cursor:grab;display:flex;flex-direction:column;gap:6px;padding:10px 6px 8px;transition:border-color .15s,box-shadow .15s,background .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.composer-template-card:hover{background:rgba(var(--accent-blue-rgb),.08);border-color:var(--accent-blue);box-shadow:none}.template-icon-wrap{align-items:center;color:var(--accent-blue);display:flex;height:72px;justify-content:center;width:72px}.template-svg,.template-svg--strip{height:100%;width:100%}.template-svg circle[fill="var(--accent-orange)"],.template-svg--strip circle[fill="var(--accent-orange)"]{display:none}.template-label{color:var(--text-secondary);font-size:11.5px;font-weight:600;text-align:center;white-space:nowrap}.composer-panel-featured{padding:12px 12px 4px}.composer-featured-card{align-items:center;background:linear-gradient(135deg,rgba(var(--accent-blue-rgb),.06) 0,rgba(var(--accent-blue-rgb),.1) 100%);border:1.5px solid var(--accent-blue);border-radius:10px;cursor:-webkit-grab;cursor:grab;display:flex;gap:12px;padding:12px 14px;transition:box-shadow .15s,background .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.composer-featured-card:hover{background:rgba(var(--accent-blue-rgb),.12);box-shadow:none}.composer-panel-tabs{display:flex;flex:1 1;gap:2px;padding:0 4px 0 0}.composer-panel-tab{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);cursor:pointer;flex:1 1;font-size:12.5px;font-weight:600;letter-spacing:.02em;padding:7px 4px;transition:color .15s,border-color .15s}.composer-panel-tab--active{border-bottom-color:var(--accent-blue);color:var(--accent-blue)}.composer-panel-editing{display:flex;flex:1 1;flex-direction:column;gap:10px;min-height:0;overflow:hidden;padding:10px}.composer-panel--fullscreen .composer-panel-editing{padding-top:14px}.composer-panel--fullscreen .composer-panel-editing--fullscreen-split{gap:0;height:100%;padding:0}.composer-panel-editing-scroll-slot--fullscreen-split,.composer-panel-editing-scroll-slot--fullscreen-split>.chart-el--controls-only,.composer-panel-editing-scroll-slot--fullscreen-split>.chart-el--controls-only>.el-controls{height:100%}.composer-panel-editing-section{display:flex;flex-direction:column;gap:8px}.composer-panel-editing-scroll-slot,.composer-panel-editing-scroll-slot>.chart-el--controls-only{display:flex;flex:1 1;min-height:0;overflow:hidden}.composer-panel-editing-scroll-slot>.chart-el--controls-only>.el-controls{flex:1 1;min-height:0;overflow-y:auto;padding-bottom:16px}.composer-panel-editing .chart-el--strip .strip-metrics{flex-direction:column;flex-wrap:nowrap;overflow:visible}.composer-panel-editing .chart-el--strip .strip-metric-item{min-width:0;overflow:visible;padding:0;width:100%}.composer-panel-editing .chart-el--strip .strip-fields{margin-top:0;padding:6px 10px 8px}.composer-panel-editing-empty{background:var(--bg-subtle);border:1px dashed var(--border-color);border-radius:8px;color:var(--text-secondary);font-size:12px;line-height:1.5;padding:14px 8px;text-align:center}.composer-saved-list{display:flex;flex-direction:column;gap:10px;min-height:0;overflow-x:hidden;overflow-y:auto;padding:10px 10px 14px}.composer-saved-empty{flex-direction:column;gap:6px;padding:28px 12px 24px;text-align:center}.composer-saved-empty,.composer-saved-empty-icon{align-items:center;color:var(--text-muted);display:flex}.composer-saved-empty-icon{background:var(--bg-dark);border-radius:14px;height:52px;justify-content:center;margin-bottom:4px;width:52px}.composer-saved-empty-title{color:var(--text-secondary);font-size:12.5px;font-weight:600;letter-spacing:.01em}.composer-saved-empty-hint{color:var(--text-muted);font-size:11.5px;line-height:1.5;max-width:180px}.composer-saved-card{background:var(--bg-subtle);border:1.5px solid var(--border-color);border-radius:9px;cursor:-webkit-grab;cursor:grab;flex-shrink:0;overflow:hidden;position:relative;transition:border-color .15s,box-shadow .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.composer-saved-card:hover{border-color:var(--accent-blue);box-shadow:none}.composer-saved-thumb-wrap{background:var(--bg-panel);overflow:hidden;position:relative;width:100%}.composer-saved-thumb-inner{left:0;pointer-events:none;position:absolute;top:0;transform-origin:top left}.composer-saved-card-info{align-items:center;background:var(--bg-subtle);border-top:1px solid var(--border-color);display:flex;gap:6px;justify-content:space-between;padding:6px 8px 6px 10px}.composer-saved-card-meta{flex-direction:column;gap:2px;min-width:0}.composer-saved-card-title{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-saved-card-type{color:var(--text-secondary);font-size:10.5px;text-transform:capitalize}.composer-saved-card-meta{align-items:center;display:flex;gap:4px}.composer-saved-shared-badge{font-size:9px;padding:1px 4px}.composer-saved-delete{align-items:center;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;flex-shrink:0;font-size:11px;font-weight:600;height:22px;justify-content:center;padding:0 8px;transition:background .1s,color .1s,border-color .1s}.composer-saved-delete:hover{background:var(--accent-red);border-color:var(--accent-red);color:#fff}.composer-saved-delete-float{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;height:24px;opacity:0;padding:0;pointer-events:none;position:absolute;right:8px;top:8px;transition:background .1s,color .1s,border-color .1s,opacity .12s;width:24px;z-index:3}.composer-saved-card:hover .composer-saved-delete-float{opacity:1;pointer-events:auto}.composer-saved-card:focus-within .composer-saved-delete-float{opacity:1;pointer-events:auto}.composer-saved-delete-float-icon{height:14px;width:14px}.composer-saved-delete-float:hover{background:var(--accent-red);border-color:var(--accent-red);color:#fff}.composer-saved-delete-float:focus-visible{opacity:1;outline:2px solid var(--accent-blue);outline-offset:1px;pointer-events:auto}.featured-card-icon{align-items:center;color:var(--accent-blue);display:flex;flex-shrink:0;height:36px;width:64px}.featured-card-icon svg{height:100%;width:100%}.featured-card-info{display:flex;flex-direction:column;gap:3px}.featured-card-label{color:var(--accent-blue);font-size:13px;font-weight:700}.featured-card-desc{color:var(--text-secondary);font-size:11px;line-height:1.3}.composer-panel-subtabs{border-bottom:1px solid var(--border-color);display:flex;flex-shrink:0;gap:2px;padding:6px 8px 0}.composer-panel-subtab{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);cursor:pointer;flex:1 1;font-size:12px;font-weight:600;letter-spacing:.01em;padding:6px 4px 8px;transition:color .15s,border-color .15s}.composer-panel-subtab:hover{color:var(--text-primary)}.composer-panel-subtab--active{border-bottom-color:var(--accent-blue);color:var(--accent-blue)}.composer-panel-section-label{align-items:center;color:var(--text-muted);display:flex;flex-shrink:0;font-size:10px;font-weight:700;gap:6px;letter-spacing:.08em;padding:10px 12px 4px;text-transform:uppercase}.composer-panel-section-label--collapsible{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.composer-panel-section-label--collapsible:hover{opacity:.8}.composer-panel-section-chevron{display:inline-block;font-size:12px;line-height:1;transition:transform .18s ease}.composer-panel-section-chevron--collapsed{transform:rotate(-90deg)}.composer-panel-section-label--industrial{color:var(--accent-amber)}.composer-panel-section-badge{background:var(--accent-amber);border-radius:20px;color:#fff;font-size:9px;font-weight:700;letter-spacing:.06em;padding:1px 5px;text-transform:uppercase}.composer-panel-empty{color:var(--text-secondary);flex-shrink:0;font-size:12px;padding:20px 12px;text-align:center}.composer-panel-footer{background:var(--bg-panel);border-top:1px solid var(--border-color);flex-shrink:0;padding:10px 12px}.composer-store-btn{align-items:center;background:var(--accent-blue);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:7px;justify-content:center;padding:9px 0;transition:background .15s,opacity .15s;width:100%}.composer-store-btn-icon{flex-shrink:0;height:16px;width:16px}.chart-fill-wrap{flex:1 1;min-height:0;position:relative;width:100%}.chart-fill-wrap--square{align-items:center;display:flex;justify-content:center}.chart-square-box{flex:0 0 auto;max-height:100%;max-width:100%}.chart-el{contain:layout;display:flex;flex:1 1;flex-direction:column;gap:6px;min-height:0;overflow:hidden}.chart-el--controls-only{flex:0 0 auto;overflow:visible}.chart-el--pie{padding-bottom:4px}.viz-wizard-field{gap:4px}.media-url-row{align-items:center;display:flex;gap:4px}.media-url-row input{flex:1 1}.media-url-del{align-items:center;background:transparent;border:none;border-radius:5px;color:var(--text-muted);cursor:pointer;display:flex;flex-shrink:0;font-size:16px;height:28px;justify-content:center;line-height:1;padding:0;transition:background .12s,color .12s;width:24px}.media-url-del:hover{background:var(--danger-soft-bg);color:var(--status-danger)}.media-url-add{background:transparent;border:1px dashed var(--border-color);border-radius:7px;color:var(--accent-blue);cursor:pointer;font-family:inherit;font-size:12px;font-weight:500;margin-top:2px;padding:5px 10px;text-align:left;transition:border-color .15s,background .15s;width:100%}.media-url-add:hover{background:var(--accent-blue-tint-8);border-color:var(--accent-blue);border-style:solid}.media-nav-controls{opacity:0;transition:opacity .2s}.chart-el--media:hover .media-nav-controls{opacity:1}.viz-pivot-input{align-items:center;display:flex;flex-wrap:wrap;gap:4px;min-height:30px}.viz-pivot-chip{align-items:center;border-radius:12px;color:#fff;display:inline-flex;font-size:12px;font-weight:600;gap:4px;line-height:1.4;padding:3px 8px 3px 10px;white-space:nowrap}.viz-pivot-chip--datapoint{background:#3b82f6}.viz-pivot-chip--container{background:#6366f1}.viz-pivot-chip--tag{background:#06b6d4}.viz-pivot-chip--savedBlock{background:#a21caf}.viz-pivot-chip-remove{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:hsla(0,0%,100%,.25);border:none;border-radius:50%;color:inherit;cursor:pointer;display:flex;font-size:14px;height:16px;justify-content:center;line-height:14px;padding:0;transition:background .15s;width:16px}.viz-pivot-chip-remove:hover{background:hsla(0,0%,100%,.45)}.viz-kind-badge{border-radius:4px;display:inline-block;flex-shrink:0;font-size:10px;font-weight:700;letter-spacing:.04em;padding:1px 5px;text-transform:uppercase}.viz-kind-badge--datapoint{background:rgba(59,130,246,.18);color:#3b82f6}.viz-kind-badge--container{background:rgba(99,102,241,.18);color:#6366f1}.viz-kind-badge--tag{background:rgba(6,182,212,.18);color:#06b6d4}.viz-kind-badge--savedBlock{background:rgba(162,28,175,.18);color:#a21caf}.viz-picker-tabs{display:flex;gap:2px;padding:3px 0 0}.viz-picker-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;border-bottom:2px solid transparent;border-radius:4px;color:var(--text-secondary);cursor:pointer;font-size:11px;font-weight:600;padding:2px 8px;transition:color .15s,border-color .15s}.viz-picker-tab:hover{color:var(--text-primary)}.viz-picker-tab.active{border-bottom-color:var(--accent-color);color:var(--accent-color)}.viz-picker-inline{display:flex;flex-direction:column;gap:0}.viz-picker-search-input{background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:13px;outline:none;padding:5px 9px;transition:border-color .15s;width:100%}.viz-picker-search-input:focus{border-color:var(--accent-blue)}.viz-picker-results{background:var(--bg-card);border-radius:0 0 6px 6px;border:1px solid var(--border-color);border-top:none;display:flex;flex-direction:column;max-height:160px;overflow-y:auto}.viz-picker-results .container-picker-path{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viz-picker-panel{min-width:260px}.map-controls{gap:0;overflow:hidden;padding:0}.map-controls>.viewport3d-prop-section:first-child{border-top:none}.map-controls .viewport3d-prop-section__header{padding:8px 12px}.map-controls .viewport3d-prop-section__body{padding:0 12px 12px}.map-controls-toggles{border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;gap:6px;padding:8px 12px}.viz-seg-ctrl{display:flex;flex-wrap:wrap;gap:2px}.viz-seg-btn{background:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);cursor:pointer;flex:1 1;font-size:11px;font-weight:500;padding:3px 5px;transition:background .1s,color .1s,border-color .1s;white-space:nowrap}.container-picker-tag-pills{border-bottom:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:3px;padding:4px 6px}.container-picker-tag-pill{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:10px;color:var(--text-secondary);cursor:pointer;font-size:11px;padding:2px 8px;transition:background .1s,color .1s}.pick-input{position:relative;width:100%}.pick-input__field{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:12px;outline:none;padding:5px 8px;transition:border-color .15s,background .15s;width:100%}.pick-input__field:focus{background:var(--bg-panel);border-color:var(--accent-blue);box-shadow:0 0 0 2px var(--accent-blue-tint-12)}.pick-input__field::placeholder{color:var(--text-muted)}.pick-input__results{background:var(--bg-panel);border-radius:0 0 7px 7px;border:1px solid var(--border-color);border-top:none;box-shadow:var(--shadow-md);left:0;max-height:180px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:200}.pick-input__results .container-picker-item{padding:5px 10px}.pick-input__results .container-picker-item:hover{background:var(--bg-hover)}.pick-input__results .container-picker-path{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pick-input__filters{background:var(--bg-subtle);border-bottom:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:4px;padding:6px;position:-webkit-sticky;position:sticky;top:0;z-index:2}.pick-input__filter-btn{background:var(--bg-card);border:1px solid var(--border-color);border-radius:20px;color:var(--text-secondary);cursor:pointer;font-size:10.5px;padding:2px 6px;text-transform:capitalize;transition:all .15s}.pick-input__filter-btn:hover{border-color:var(--text-muted);color:var(--text-primary)}.pick-input__filter-btn.active.type-float{background:#0d9488;border-color:#0d9488;color:#fff}.pick-input__filter-btn.active.type-int{background:#dc2626;border-color:#dc2626;color:#fff}.pick-input__filter-btn.active.type-bool{background:#d97706;border-color:#d97706;color:#fff}.pick-input__filter-btn.active.type-string{background:#0369a1;border-color:#0369a1;color:#fff}.pick-input__filter-btn.active.type-cood{background:#7c3aed;border-color:#7c3aed;color:#fff}.pick-input-type-badge{align-items:center;border:1px solid var(--border-color);border-radius:3px;color:var(--text-muted);display:flex;flex-shrink:0;font-size:8px;font-weight:700;height:16px;justify-content:center;margin-right:8px;text-transform:uppercase;width:32px}.pick-input-type-badge.type-float{border-color:rgba(13,148,136,.3);color:#0d9488;background:rgba(13,148,136,.1)}.pick-input-type-badge.type-int{border-color:rgba(220,38,38,.3);color:#dc2626;background:rgba(220,38,38,.1)}.pick-input-type-badge.type-bool{border-color:rgba(217,119,6,.3);color:#d97706;background:rgba(217,119,6,.1)}.pick-input-type-badge.type-string{border-color:rgba(3,105,161,.3);color:#0369a1;background:rgba(3,105,161,.1)}.pick-input-type-badge.type-cood{border-color:rgba(124,58,237,.3);color:#7c3aed;background:rgba(124,58,237,.1)}.pick-input-viewport{align-items:center;display:flex;flex:1 1;min-width:0;overflow:hidden;width:100%}.pick-input-sliding-text{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;will-change:transform}.pick-input-item:hover .pick-input-sliding-text{max-width:none;overflow:visible;text-overflow:clip}@keyframes pick-input-marquee{0%,15%{transform:translateX(0)}85%,to{transform:translateX(var(--slide-dist))}}.viz-checklist{display:flex;flex-direction:column;gap:1px;max-height:140px;overflow-y:auto;padding:2px 0}.viz-checklist-item{align-items:center;border-radius:4px;cursor:pointer;display:flex;font-size:12px;gap:6px;padding:3px 6px;transition:background .1s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.viz-checklist-item:hover{background:var(--hover-color)}.viz-timespan-pills{align-items:center;display:flex;flex-wrap:wrap;gap:4px}.viz-timespan-pill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-overlay);border:1px solid var(--border-color);border-radius:10px;color:var(--text-secondary);cursor:pointer;font-size:11px;font-weight:600;padding:3px 10px;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.viz-timespan-pill:hover{background:var(--hover-color);color:var(--text-primary)}.viz-timespan-pill--active{background:var(--accent-color);border-color:var(--accent-color);color:#fff}.viz-live-banner{align-items:center;color:var(--text-secondary);display:flex;font-size:12px;gap:6px;padding:4px 0}.viz-live-dot{animation:viz-pulse 1.6s ease-in-out infinite;background:#22c55e;border-radius:50%;flex-shrink:0;height:7px;width:7px}@keyframes slideshow-from-right{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes slideshow-from-left{0%{transform:translateX(-100%)}to{transform:translateX(0)}}.slideshow-slide{background-position:50%;background-repeat:no-repeat;background-size:contain;bottom:0;left:0;position:absolute;right:0;top:0}.slideshow-slide--forward{animation:slideshow-from-right .4s ease-out both}.slideshow-slide--backward{animation:slideshow-from-left .4s ease-out both}@keyframes viz-pulse{0%,to{opacity:1}50%{opacity:.35}}.viz-live-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;color:var(--accent-color);cursor:pointer;font-size:11px;font-weight:600;margin-left:auto;padding:0;text-decoration:underline;text-underline-offset:2px}.viz-live-link--back{color:var(--text-secondary);margin-left:0}.viz-live-link:hover{opacity:.7}.el-ctrl--toggle-inline{min-height:20px}.el-icon-toggle{align-items:center;background:none;border:none;border-radius:3px;color:var(--text-muted);cursor:pointer;display:inline-flex;flex-shrink:0;justify-content:center;opacity:.55;padding:0;transition:opacity .12s,color .12s}.el-icon-toggle:hover{color:var(--accent-blue);opacity:1}.el-icon-toggle:disabled{cursor:not-allowed}.el-icon-toggle:disabled,.el-icon-toggle:disabled:hover{color:var(--text-muted);opacity:.28}.el-icon-toggle--all{color:var(--accent-blue);opacity:.85}.el-ctrl--toggle-inline>input[type=checkbox]{margin:0;width:14px;height:14px;padding:0;border:none;border-radius:0;background:transparent;flex:0 0 auto}.el-ctrl--toggle-inline>.el-icon-toggle{margin:0}.el-ctrl--toggle-inline>span{line-height:1}.el-ctrl--wide{grid-column:1/-1}.schema-sel-tabs{background:var(--bg-dark);border:1px solid var(--border-color);border-radius:8px;display:flex;gap:4px;font-size:11px;padding:2px}.schema-sel-tab{background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text-secondary);cursor:pointer;flex:1 1;font-family:inherit;font-size:11px;font-weight:600;max-width:200px;overflow:hidden;padding:5px 8px;text-overflow:ellipsis;transition:background .15s,border-color .15s,color .15s;white-space:nowrap}.schema-sel-tab--active,.schema-sel-tab:hover{background:var(--bg-panel);border-color:var(--accent-blue);box-shadow:none;color:var(--accent-blue)}.tbl-live-cell{font-weight:600;padding-right:10px!important;text-align:right}.tbl-na{color:#bbb;text-align:center}.tbl-waiting{color:#aaa;font-style:italic}.tbl-bool-badge{border-radius:9999px;display:inline-block;font-size:11px;font-weight:600;letter-spacing:.02em;padding:2px 8px;text-transform:capitalize}.tbl-live-cell--bool{text-align:center}.tbl-trend{font-size:11px;margin-left:4px;vertical-align:middle}.tbl-trend--up{color:var(--accent-green)}.tbl-trend--down{color:var(--status-danger)}.tbl-bool-badge--on{background:color-mix(in srgb,var(--accent-green) 14%,transparent);color:var(--accent-green)}.tbl-bool-badge--off{background:color-mix(in srgb,var(--text-muted) 12%,transparent);color:var(--text-muted)}.tbl-unit{color:var(--text-secondary);font-size:11px;font-weight:400}.chart-el--table{display:flex;flex:1 1;flex-direction:column;gap:0;min-height:0;overflow:hidden}.chart-el--table .table-scroll{border:1px solid var(--border-color);border-bottom:none;border-radius:6px 6px 0 0;flex:1 1;min-height:0;overflow:auto}.table-pagination{align-items:center;background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:0 0 6px 6px;display:flex;flex-shrink:0;justify-content:space-between;padding:8px 14px}.table-page-btn{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:5px;cursor:pointer;font-size:12.5px;font-weight:500;padding:4px 12px;transition:background .12s,border-color .12s}.table-page-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent-blue);color:var(--accent-blue)}.table-page-btn:disabled{cursor:default;opacity:.35}.table-page-info{color:var(--text-secondary);font-size:12.5px}.table-row-count{color:var(--text-muted,var(--text-secondary));font-size:12px}.el-table{border-collapse:separate;border-spacing:0;font-size:12px;min-width:100%;width:max-content}.el-table th{background:var(--bg-dark);border-bottom:1px solid var(--border-color);border-right:1px solid color-mix(in srgb,var(--border-color) 50%,transparent);color:var(--text-secondary);font-size:12px;font-weight:600;padding:9px 14px;position:-webkit-sticky;position:sticky;text-align:left;top:0;white-space:nowrap;z-index:1}.el-table th:last-child{border-right:none}.el-table th:first-child{left:0;position:-webkit-sticky;position:sticky;z-index:2}.el-table td{border-bottom:1px solid color-mix(in srgb,var(--border-color) 50%,transparent);border-right:1px solid color-mix(in srgb,var(--border-color) 50%,transparent);padding:8px 14px;white-space:nowrap}.el-table td:last-child{border-right:none}.el-table td:first-child{background:var(--bg-panel);left:0;position:-webkit-sticky;position:sticky;z-index:1}.el-table tbody tr:nth-child(2n) td,.el-table tbody tr:nth-child(2n) td:first-child{background:color-mix(in srgb,var(--bg-subtle) 40%,var(--bg-panel))}.el-table tbody tr:hover,.el-table tbody tr:hover td:first-child{background:var(--bg-hover)}.table-filler-row td{border-bottom-color:transparent;pointer-events:none}.table-filler-row:hover{background:transparent!important}.table-empty{color:var(--text-secondary);font-style:italic;padding:20px!important;text-align:center}.pie-legend-marquee{align-items:center;box-sizing:border-box;display:flex;flex-shrink:0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);overflow:hidden;padding:6px 0 8px;width:100%}.pie-legend-marquee-inner{align-items:center;animation:schema-ticker-scroll 20s linear infinite;display:inline-flex;gap:14px;padding-right:14px;white-space:nowrap;will-change:transform}.pie-legend-marquee:hover .pie-legend-marquee-inner{animation-play-state:paused}.pie-legend-item{align-items:center;color:var(--text-secondary);display:flex;font-size:12.5px;gap:6px;white-space:nowrap}.pie-legend-dot{border-radius:3px;flex-shrink:0;height:10px;width:10px}.chart-el--strip{flex-shrink:0;overflow:visible;padding:0}.strip-metrics{align-items:stretch;display:flex;flex-wrap:nowrap;gap:10px;overflow-x:auto;overflow-y:hidden;padding:6px 2px}.strip-metric-item{align-items:flex-start;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:10px;box-shadow:none;display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:130px;padding:10px 14px 8px;position:relative}.strip-metric-item--collapsed{gap:0}.strip-metric-toolbar{align-items:center;display:flex;gap:6px;padding:7px 10px 7px 8px;width:100%}.strip-metric-item:not(.strip-metric-item--collapsed) .strip-metric-toolbar{border-bottom:1px solid var(--border-color)}.strip-metric-collapse-trigger{align-items:center;background:transparent;border:none;border-radius:5px;color:var(--text-muted);cursor:pointer;display:flex;flex:0 0 20px;height:20px;justify-content:center;padding:0;transition:color .12s,background .12s;width:20px}.strip-metric-collapse-trigger:hover{background:var(--bg-dark);color:var(--accent-blue)}.strip-metric-chevron{display:block;transform:rotate(-90deg);transition:transform .16s ease}.strip-metric-chevron--open{transform:rotate(0deg)}.strip-metric-toolbar-identity{display:flex;flex:1 1;flex-direction:column;gap:1px;min-width:0;overflow:hidden}.strip-mb-label-input{background:transparent;border:none;border-bottom:1px solid transparent;color:var(--text-primary);font-family:inherit;font-size:12px;font-weight:600;line-height:1.4;padding:0;transition:border-color .12s;width:100%}.strip-mb-label-input:focus{border-bottom-color:var(--accent-blue);outline:none}.strip-mb-label-input::placeholder{color:var(--text-muted);font-weight:400}.strip-metric-toolbar-subtitle{color:var(--text-muted);font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strip-metric-item:not(.strip-metric-item--collapsed) .strip-metric-toolbar-subtitle{display:none}.strip-metric-toolbar-actions{align-items:center;display:flex;flex:0 0 auto;gap:2px;opacity:0;pointer-events:none;transition:opacity .12s}.strip-metric-item:hover .strip-metric-toolbar-actions{opacity:1;pointer-events:auto}.strip-metric-order-btn{align-items:center;background:transparent;border:1px solid transparent;border-radius:5px;color:var(--text-muted);cursor:pointer;display:inline-flex;height:22px;justify-content:center;padding:0;transition:background .12s,border-color .12s,color .12s;width:22px}.strip-metric-order-btn:hover{background:var(--bg-dark);border-color:var(--border-color);color:var(--text-primary)}.strip-metric-order-btn:disabled{cursor:not-allowed;opacity:.3}.strip-metric-order-btn:disabled:hover{background:transparent;border-color:transparent;color:var(--text-muted)}.strip-metric-remove-btn{align-items:center;background:transparent;border:1px solid transparent;border-radius:5px;color:var(--text-muted);cursor:pointer;display:inline-flex;height:22px;justify-content:center;padding:0;transition:background .12s,border-color .12s,color .12s;width:22px}.strip-metric-remove-btn:hover{background:var(--danger-soft-bg);border-color:var(--danger-soft-border);color:var(--status-danger)}.strip-metric-main{align-items:center;display:flex;gap:12px;min-width:0;width:100%}.strip-metric-icon-wrap{align-items:center;color:var(--accent-blue);display:flex;flex:0 0 auto;justify-content:center;min-width:26px}.strip-metric-content{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.strip-metric-label{align-items:flex-start;display:flex;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strip-metric-label,.strip-metric-label input{color:var(--text-secondary);font-size:12px;font-weight:600;width:100%}.strip-metric-label input{background:transparent;border:none;border-bottom:1px solid var(--border-color);flex:1 1;padding:1px 0}.strip-metric-label-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pick-input-icon,.strip-metric-icon{color:var(--accent-blue)}.strip-metric-value-row{align-items:center;display:flex;gap:5px;line-height:1.15}.strip-trend-arrow{font-size:16px;line-height:1}.strip-trend-arrow--up{color:#1ea353}.strip-trend-arrow--down{color:#d94040}.strip-value{font-size:26px;font-weight:700;line-height:1.1}.strip-unit{font-weight:400;min-height:16px}.strip-unit,.strip-unit-input{color:var(--text-secondary);font-size:11.5px}.strip-unit-input{background:transparent;border:none;border-bottom:1px solid var(--border-color);padding:1px 0;width:80px}.strip-fields{margin-top:5px;width:100%}@container panel (max-width: 260px){.strip-metric-main{gap:10px}.strip-metric-icon-wrap{min-width:22px}}.strip-fields select{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:6px;font-size:11px;padding:3px 5px;width:100%}.strip-add-btn{align-items:center;background:transparent;border:2px dashed var(--border-color);border-radius:8px;color:var(--accent-blue);cursor:pointer;display:flex;flex-shrink:0;font-size:20px;height:38px;justify-content:center;margin:auto 8px;transition:border-color .15s,background .15s;width:38px}.strip-add-btn:hover{background:#eef4ff;border-color:var(--accent-blue)}.strip-metric-item{overflow:hidden}.strip-metric-deco{bottom:6px;opacity:.72;overflow:hidden;pointer-events:none;position:absolute;right:8px}.strip-deco-svg{display:block}.strip-deco-settings{align-items:center;display:flex;flex-shrink:0;gap:8px;padding:4px 2px 6px}.strip-deco-toggle-label{align-items:center;display:flex;gap:6px;white-space:nowrap}.strip-deco-toggle-label--disabled{color:var(--text-muted)}.strip-deco-style-select{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;font-size:12px;padding:2px 6px}.el-ctrl.endpoint-filter .filter-toggle-btn{font-size:11.5px;justify-content:space-between;min-height:28px;width:100%}.el-ctrl.endpoint-filter .filter-dropdown{font-size:11.5px;left:0;min-width:100%;top:calc(100% + 2px)}.chart-el--camera{overflow:hidden}.media-camera-grid{display:grid;grid-gap:8px;gap:8px;width:100%;height:100%;min-height:0;padding:4px}.media-camera-tile{position:relative;overflow:hidden;border-radius:10px;background:#0b0d10;min-height:120px;display:flex;align-items:center;justify-content:center}.media-camera-tile iframe,.media-camera-tile img,.media-camera-tile video{display:block}.media-camera-overlay{position:absolute;top:8px;left:8px;right:8px;display:flex;align-items:center;justify-content:space-between;gap:8px;pointer-events:none}.media-camera-name{font-size:11.5px;font-weight:600;border-radius:6px;max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-camera-badge,.media-camera-name{background:rgba(0,0,0,.55);color:#fff;padding:3px 8px}.media-camera-badge{align-items:center;border-radius:99px;display:inline-flex;font-size:10.5px;font-weight:700;gap:5px;letter-spacing:.02em;text-transform:uppercase}.media-camera-dot{width:7px;height:7px;border-radius:50%;background:#9ca3af}.media-camera-badge.is-live .media-camera-dot{background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.25);animation:media-camera-pulse 1.6s ease-in-out infinite}.media-camera-badge.is-connecting .media-camera-dot{background:var(--accent-orange,#f59e0b)}.media-camera-badge.is-offline .media-camera-dot{background:#ef4444}@keyframes media-camera-pulse{0%,to{opacity:1}50%{opacity:.4}}.media-camera-retry{position:absolute;bottom:10px;right:10px;background:rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.3);border-radius:7px;color:#fff;cursor:pointer;font-size:11.5px;font-weight:600;padding:4px 12px}.media-camera-retry:hover{background:rgba(0,0,0,.8)}.media-camera-warn{position:absolute;bottom:8px;left:8px;background:rgba(232,84,68,.85);color:#fff;font-size:10px;font-weight:600;border-radius:5px;padding:2px 7px}.media-camera-card{display:flex;flex-direction:column;gap:6px;padding:16px;text-align:center;color:#cbd5e1;max-width:320px}.media-camera-card-title{color:#fff;font-size:13px;font-weight:700}.media-camera-card-body{font-size:11.5px;line-height:1.5}.media-camera-card-body code{background:rgba(255,255,255,.12);border-radius:4px;font-size:10.5px;padding:1px 5px}.media-camera-wizard-row{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:10px;display:flex;flex-direction:column;gap:8px;margin-bottom:8px;padding:10px 10px 11px}.media-camera-wizard-head{align-items:center;display:flex;justify-content:space-between;min-height:20px}.media-camera-wizard-num{color:var(--text-secondary);font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.media-camera-wizard-row .viz-wizard-field{display:flex;flex-direction:column;gap:3px}.media-camera-wizard-warn{align-items:flex-start;background:var(--accent-orange-muted,rgba(249,115,22,.12));border-radius:7px;color:var(--accent-amber,#d97706);display:flex;font-size:11px;gap:6px;line-height:1.4;padding:6px 9px}.media-camera-wizard-warn:before{content:"⚠";flex-shrink:0;font-size:11px;line-height:1.4}.media-camera-wizard .viz-wizard-field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bg-panel);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5' fill='none' stroke='%238492a6' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:12px;border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:13px;line-height:1.4;min-height:32px;padding:7px 30px 7px 10px;width:100%}.media-camera-wizard .viz-wizard-field select:focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--accent-blue-tint-12);outline:none}.nav-float-header{align-items:center;display:flex;gap:8px;left:12px;pointer-events:none;position:fixed;top:12px;z-index:1000}.nav-float-header>*{pointer-events:auto}.nav-float-title{align-items:center;display:flex;font-size:13px;font-weight:600;gap:6px;letter-spacing:0;line-height:36px;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.nav-float-page{color:var(--text-secondary);font-weight:400}.nav-float-btn{align-items:center;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:6px;box-shadow:none;color:var(--accent-blue);cursor:pointer;display:flex;font-family:inherit;height:36px;justify-content:center;left:unset;padding:0;position:relative;top:unset;transition:background .18s,box-shadow .18s,border-color .18s;width:36px;z-index:unset}.nav-float-btn:hover{background:var(--nav-float-hover-bg);border-color:var(--accent-blue);box-shadow:none}.nav-portrait-backdrop{animation:backdropIn .2s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:rgba(10,20,50,.38);inset:0;position:fixed;z-index:999}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}.nav-portrait-drawer{background:var(--bg-panel);border-right:1px solid var(--border-color);box-shadow:none;display:flex;flex-direction:column;height:100vh;height:100dvh;left:0;padding:8px;position:fixed;top:0;transform:translateX(-100%);transition:transform .26s cubic-bezier(.4,0,.2,1);width:252px;z-index:1000}.nav-portrait-drawer.open{transform:translateX(0)}.nav-portrait-drawer-header{align-items:center;background:transparent;border-bottom:1px solid var(--border-color);border-radius:0;display:flex;flex-shrink:0;gap:8px;justify-content:flex-start;margin-top:42px;min-height:46px;padding:2px 6px 10px}.nav-portrait-drawer .nav-scroll{flex:1 1;gap:14px;overflow-y:auto;padding:10px 6px 0}.nav-portrait-drawer .nav-item{font-size:13px;justify-content:flex-start;padding:7px 8px;width:100%}.nav-portrait-drawer .nav-label{display:inline!important}.nav-portrait-drawer .nav-item-wrap{align-items:center;display:flex;gap:4px;width:100%}.nav-portrait-drawer .nav-item-wrap .nav-item{flex:1 1}.nav-portrait-drawer .nav-item-unpin-btn{opacity:1}.nav-portrait-drawer .nav-empty-state{min-height:0}