@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap");:root{--bg-primary:#071019;--bg-secondary:#0b1623;--bg-panel:#0f1b2b;--bg-panel-hover:#132235;--bg-elevated:#162a42;--text-primary:#e9f2fb;--text-secondary:#9fb3c8;--text-muted:#6b8299;--accent:#72d4ff;--accent-hover:#a8e6ff;--accent-dim:rgba(114,212,255,.15);--status-good:#7fe0a0;--status-warn:#ffd06b;--status-error:#ff7070;--status-info:#72d4ff;--border:hsla(0,0%,100%,.08);--border-accent:rgba(114,212,255,.25);--shadow-lg:0 14px 40px rgba(0,0,0,.28);--shadow-md:0 4px 12px rgba(0,0,0,.2);--sidebar-width:280px;--toolbar-height:48px;--statusbar-height:32px;--radius:12px;--radius-lg:18px;--transition-fast:0.15s ease;--transition:0.25s ease}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}.app-layout{display:grid;grid-template-columns:var(--sidebar-width) 1fr;grid-template-rows:var(--toolbar-height) 1fr var(--statusbar-height);grid-template-areas:"sidebar toolbar" "sidebar viewport" "sidebar statusbar";height:100vh;width:100vw}.toolbar-group--cam{flex-wrap:wrap;align-items:center}.toolbar,.toolbar-group,.toolbar-site-select{min-width:0}@media (max-width:980px){.app-layout{grid-template-rows:auto 1fr var(--statusbar-height)}.toolbar{flex-wrap:wrap;height:auto;row-gap:8px;padding:8px 12px}.toolbar-divider{display:none}.toolbar-btn{padding:6px 10px}.toolbar-site-field{max-width:100%;white-space:normal}.toolbar-site-select{min-width:84px;max-width:min(160px,44vw)}.toolbar-group--right{margin-left:auto}}@media (max-width:560px){.toolbar{gap:8px;padding:8px 10px}.toolbar-btn{font-size:12px;padding:6px 8px}.toolbar-site-field{padding:2px 3px}.toolbar-entity-badge,.toolbar-site-field__label{display:none}}.toolbar-isolate{display:inline-flex;align-items:center;gap:5px;margin-left:6px;padding:0 8px;font-size:12px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.toolbar-isolate input{width:13px;height:13px;accent-color:var(--accent);cursor:pointer}.toolbar-isolate:has(input:disabled){opacity:.45;cursor:not-allowed}.toolbar{grid-area:toolbar;gap:12px;padding:0 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border);z-index:10}.toolbar,.toolbar-group{display:flex;align-items:center}.toolbar-group{gap:4px}.toolbar-divider{width:1px;height:24px;background:var(--border);margin:0 8px}.toolbar-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 12px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:var(--transition-fast);white-space:nowrap}.toolbar-btn.active,.toolbar-btn:hover{background:var(--accent-dim);color:var(--accent);border-color:var(--border-accent)}.toolbar-site-field{display:inline-flex;align-items:center;gap:6px;padding:2px 4px;border-radius:8px;border:1px solid var(--border);background:var(--bg-panel);color:var(--text-secondary);font-size:12px;font-weight:600;white-space:nowrap}.toolbar-site-field__label{padding-left:4px;opacity:.9}.toolbar-site-select{min-width:120px;max-width:200px;padding:4px 8px;border-radius:6px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-size:12px;font-family:inherit;cursor:pointer}.toolbar-site-select:focus{outline:none;border-color:var(--border-accent)}.toolbar-entity-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:99px;font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;line-height:1}.toolbar-entity-badge--static{background:rgba(148,163,184,.18);color:var(--text-secondary)}.toolbar-entity-badge--dynamic{background:rgba(56,189,248,.15);color:#38bdf8}.toolbar-group--right{gap:4px}.tb-icon-wrap{position:relative}.tb-icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);flex-shrink:0}.tb-icon-btn.active,.tb-icon-btn:hover{background:var(--accent-dim);color:var(--accent);border-color:var(--border-accent)}.tb-profile-btn{border:1px solid var(--border);background:var(--bg-panel);border-radius:50%}.tb-profile-btn.active,.tb-profile-btn:hover{background:var(--accent-dim);border-color:var(--border-accent);color:var(--accent)}.tb-profile-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:200;min-width:200px;background:var(--bg-panel);border:1px solid var(--border-accent);border-radius:10px;box-shadow:0 8px 32px rgba(0,0,0,.45);overflow:hidden}.tb-profile-info{display:flex;align-items:center;gap:10px;padding:12px 14px}.tb-profile-avatar{width:34px;height:34px;border-radius:50%;border:1px solid var(--border-accent);background:var(--accent-dim);color:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}.tb-profile-name{font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}.tb-profile-role{font-size:11px;color:var(--text-secondary);margin-top:1px}.tb-profile-divider{height:1px;background:var(--border);margin:0}.tb-profile-logout{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;background:none;border:none;color:#f87171;font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;text-align:left;transition:background .12s}.tb-profile-logout:hover{background:hsla(0,91%,71%,.1)}.tb-settings-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:200;min-width:280px;max-width:min(340px,calc(100vw - 24px));background:var(--bg-panel);border:1px solid var(--border-accent);border-radius:10px;box-shadow:0 8px 32px rgba(0,0,0,.45);overflow:hidden}.tb-settings-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--accent);padding:10px 14px 6px;border-bottom:1px solid var(--border)}.tb-settings-row{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;gap:12px}.tb-settings-label{font-size:12px;font-weight:500;color:var(--text-secondary);white-space:nowrap}.tb-settings-section{padding:8px 0 12px;border-top:1px solid var(--border)}.tb-settings-section-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);padding:0 14px 8px}.tb-settings-field{padding:0 14px 8px}.tb-settings-field label{display:block;font-size:11px;font-weight:500;color:var(--text-secondary);margin-bottom:4px}.tb-settings-input{width:100%;box-sizing:border-box;padding:6px 9px;font-size:12px;font-family:ui-monospace,monospace;color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;outline:none}.tb-settings-input:focus{border-color:var(--accent);box-shadow:0 0 0 1px rgba(114,212,255,.25)}.tb-settings-ps-actions{display:flex;flex-wrap:wrap;gap:6px;padding:3px 14px 8px}.tb-settings-apply-btn,.tb-settings-reset-btn{flex:1 1;min-width:0;padding:6px 10px;font-size:11px;font-weight:600;border-radius:6px;cursor:pointer;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);transition:background .12s,border-color .12s}.tb-settings-apply-btn{border-color:rgba(114,212,255,.35);background:rgba(114,212,255,.12);color:#c8e8ff}.tb-settings-apply-btn:hover{background:rgba(114,212,255,.2)}.tb-settings-reset-btn:hover{background:hsla(0,0%,100%,.06)}.tb-settings-danger-btn{flex:1 1;min-width:0;padding:6px 10px;font-size:11px;font-weight:600;border-radius:6px;cursor:pointer;border:1px solid hsla(0,91%,71%,.45);background:hsla(0,91%,71%,.12);color:#fecaca;transition:background .12s,border-color .12s}.tb-settings-danger-btn:hover:not(:disabled){background:hsla(0,91%,71%,.22)}.tb-settings-danger-btn:disabled{opacity:.65;cursor:not-allowed}.tb-settings-hint{margin:0;padding:0 14px 8px;font-size:10px;line-height:1.45;color:var(--text-muted)}.tb-settings-hint code{font-size:10px;font-family:ui-monospace,monospace;color:var(--text-secondary);background:hsla(0,0%,100%,.06);padding:1px 4px;border-radius:3px}.tb-theme-toggle{display:flex;gap:4px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:7px;padding:3px}.tb-theme-btn{display:flex;align-items:center;gap:5px;padding:5px 10px;border:none;border-radius:5px;background:transparent;color:var(--text-secondary);font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;transition:var(--transition-fast);white-space:nowrap}.tb-theme-btn:hover{color:var(--text-primary)}.tb-theme-btn.active{background:var(--accent-dim);color:var(--accent)}.sidebar{grid-area:sidebar;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--bg-panel) 0,var(--bg-secondary) 100%);border-right:1px solid var(--border);overflow-y:auto;overflow-x:hidden;min-height:0;z-index:20}.sidebar-header{gap:10px;padding:14px 16px;border-bottom:1px solid var(--border)}.sidebar-header,.sidebar-logo{display:flex;align-items:center}.sidebar-logo{gap:8px}.sidebar-logo .dot{width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#4ea4ff);box-shadow:0 0 14px rgba(114,212,255,.4)}.sidebar-logo h1{font-size:16px;font-weight:700;letter-spacing:-.02em;color:var(--text-primary)}.sidebar-logo span{font-size:11px;font-weight:500;color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase}.sidebar-section{padding:12px 12px 8px}.sidebar-section-title{font-size:11px;font-weight:600}.sidebar-section-title,.sidebar-section-title--toggle{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);padding:0 4px 8px}.sidebar-section-title--toggle{display:flex;align-items:center;gap:8px;width:100%;margin:0;background:none;border:none;font:inherit;font-size:11px;font-weight:600;text-align:left;cursor:pointer;border-radius:6px;transition:color var(--transition-fast),background var(--transition-fast)}.sidebar-section-title--toggle:hover{color:var(--text-secondary);background:hsla(0,0%,100%,.04)}.sidebar-section-title--toggle:focus-visible{outline:none;box-shadow:0 0 0 2px rgba(114,212,255,.45)}.sidebar-section-chevron{flex-shrink:0;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--text-muted);transition:transform .2s ease,border-top-color var(--transition-fast);transform-origin:50% 30%}.sidebar-section-title--toggle:hover .sidebar-section-chevron{border-top-color:var(--text-secondary)}.sidebar-section-chevron.is-collapsed{transform:rotate(-90deg)}.mode-selector{display:flex;flex-direction:column;gap:4px}.mode-btn{display:flex;align-items:center;gap:10px;padding:8px 12px;border:none;border-radius:10px;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:var(--transition-fast);text-align:left}a.mode-btn{text-decoration:none;box-sizing:border-box}a.mode-btn:visited{color:var(--text-secondary)}a.mode-btn.active:visited{color:var(--accent)}.mode-btn:hover{background:hsla(0,0%,100%,.04);color:var(--text-primary)}.mode-btn.active{background:var(--accent-dim);color:var(--accent)}.mode-icon{font-size:16px;width:20px;text-align:center}.asset-explorer{flex:1 1;overflow-y:auto;padding:8px 12px}.asset-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:8px;font-size:13px;color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast)}.asset-item:hover{background:hsla(0,0%,100%,.04);color:var(--text-primary)}.asset-item.active{background:var(--accent-dim);color:var(--accent);border:1px solid var(--border-accent)}.asset-badge{font-size:11px;padding:2px 6px;border-radius:4px;background:hsla(0,0%,100%,.06);color:var(--text-muted);margin-left:auto}.viewport-area{grid-area:viewport;position:relative;overflow:hidden;background:var(--bg-primary)}.dash-overlay{position:absolute;inset:0;z-index:80;pointer-events:none}.dash-backdrop{border:none;margin:0;padding:0;background:rgba(3,8,16,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:default}.dash-backdrop,.dash-shell{position:absolute;inset:0;pointer-events:auto}.dash-shell{border-radius:0;border:none;background:radial-gradient(1200px 500px at 20% 0,rgba(156,120,255,.1),transparent 55%),radial-gradient(900px 520px at 90% 10%,rgba(114,212,255,.08),transparent 55%),rgba(8,12,18,.92);box-shadow:none;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column}.dash-bottom,.dash-header,.dash-top-grid{flex:0 0 auto}.dash-shell.is-asset-max .dash-top-grid{grid-template-columns:1fr;flex:1 1;min-height:0;padding-bottom:18px;overflow:auto}.dash-shell.is-asset-max .dash-cards{grid-template-columns:1fr;height:100%}.dash-shell.is-asset-max .dash-card{height:auto;display:flex;flex-direction:column}.dash-shell.is-asset-max .dash-card-body{flex:0 0 auto}.dash-shell.is-asset-max .dash-card-expanded{flex:0 0 auto;min-height:0;overflow:auto}.dash-shell.is-asset-max .dash-expanded-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-shell.is-asset-max{background:radial-gradient(1200px 500px at 20% 0,rgba(156,120,255,.1),transparent 55%),radial-gradient(900px 520px at 90% 10%,rgba(114,212,255,.08),transparent 55%),rgba(8,12,18,.98)}.dash-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px 18px 12px;border-bottom:1px solid hsla(0,0%,100%,.06)}.dash-kicker{font-size:11px;color:rgba(176,194,222,.68);letter-spacing:.02em}.dash-title-row{display:flex;align-items:center;gap:10px;margin-top:6px}.dash-title{font-size:22px;font-weight:700;letter-spacing:-.02em;color:rgba(238,244,255,.95)}.dash-pill{font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;border:1px solid hsla(0,0%,100%,.08);background:hsla(0,0%,100%,.04);color:rgba(176,194,222,.82)}.dash-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.dash-chip{display:inline-flex;align-items:center;justify-content:center;height:30px;padding:0 10px;border-radius:10px;border:1px solid hsla(0,0%,100%,.08);background:hsla(0,0%,100%,.03);color:rgba(210,224,245,.78);font-size:12px;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.dash-chip:hover{background:hsla(0,0%,100%,.06);border-color:hsla(0,0%,100%,.12);color:rgba(235,245,255,.9)}.dash-close{width:34px;height:30px;border-radius:10px;border:1px solid hsla(0,0%,100%,.08);background:hsla(0,0%,100%,.03);color:rgba(210,224,245,.75);font-size:20px;line-height:1;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.dash-close:hover{background:hsla(0,100%,72%,.14);border-color:hsla(0,100%,72%,.25);color:hsla(0,100%,85%,.95)}.dash-top-grid{display:grid;grid-template-columns:1fr;grid-gap:14px;gap:14px;padding:14px 18px 10px;min-height:0}.dash-top-grid>*{min-width:0}.dash-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;min-width:0}.dash-card{background:hsla(0,0%,100%,.03);border:1px solid hsla(0,0%,100%,.07);border-radius:16px;padding:14px 14px 12px;box-shadow:0 12px 34px rgba(0,0,0,.35);overflow:hidden;position:relative}.dash-card:before{content:"";position:absolute;inset:-1px;background:radial-gradient(420px 220px at 20% 0,rgba(156,120,255,.12),transparent 55%);pointer-events:none}.dash-card-head{position:relative;display:flex;align-items:center;gap:10px}.dash-asset-badge{width:34px;height:34px;border-radius:12px;background:hsla(0,0%,100%,.04);border:1px solid hsla(0,0%,100%,.08);display:flex;align-items:center;justify-content:center;flex-shrink:0}.dash-asset-dot{width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,rgba(114,212,255,.95),rgba(156,120,255,.9));box-shadow:0 0 16px rgba(156,120,255,.35)}.dash-asset-meta{min-width:0}.dash-asset-chain{font-size:11px;color:rgba(176,194,222,.72)}.dash-asset-name{font-size:13px;font-weight:700;color:rgba(238,244,255,.92);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-card-cta{margin-left:auto;width:28px;height:28px;border-radius:10px;background:hsla(0,0%,100%,.04);border:1px solid hsla(0,0%,100%,.08);display:flex;align-items:center;justify-content:center;color:rgba(210,224,245,.7);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}.dash-card-cta:hover{background:rgba(156,120,255,.1);border-color:rgba(156,120,255,.22);color:rgba(236,229,255,.92);transform:translateY(-1px)}.dash-card-cta:focus-visible{outline:none;box-shadow:0 0 0 2px rgba(156,120,255,.35)}.dash-cards.is-maximized{grid-template-columns:1fr}.dash-card.is-dim{opacity:.22;filter:saturate(.7);pointer-events:none}.dash-card.is-max-card{border-color:rgba(156,120,255,.22);background:radial-gradient(820px 360px at 20% 0,rgba(156,120,255,.16),transparent 55%),hsla(0,0%,100%,.03)}.dash-card-expanded{position:relative;margin-top:12px;padding-top:12px;border-top:1px solid hsla(0,0%,100%,.06)}.dash-expanded-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px}.dash-expanded-box{border:1px solid hsla(0,0%,100%,.06);background:rgba(0,0,0,.14);border-radius:14px;padding:10px;min-width:0}.dash-expanded-label{font-size:11px;color:rgba(176,194,222,.68)}.dash-expanded-val{margin-top:6px;font-size:16px;font-weight:900;color:rgba(238,244,255,.92)}.dash-expanded-val.down{color:hsla(0,100%,72%,.95)}.dash-card-body{position:relative;margin-top:12px}.dash-card-label{font-size:11px;color:rgba(176,194,222,.72)}.dash-rate-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:6px}.dash-rate{font-size:28px;font-weight:800;letter-spacing:-.02em;color:rgba(238,244,255,.95)}.dash-delta{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:rgba(127,224,160,.95)}.dash-delta.down{color:hsla(0,100%,72%,.95)}.dash-delta-dot{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 10px rgba(127,224,160,.28)}.dash-spark{margin-top:10px;height:52px;border-radius:12px;border:1px solid hsla(0,0%,100%,.06);background:radial-gradient(160px 70px at 25% 45%,rgba(114,212,255,.1),transparent 70%),linear-gradient(180deg,hsla(0,0%,100%,.02),rgba(0,0,0,.06));position:relative;overflow:hidden}.dash-spark>span{position:absolute;left:-20%;top:50%;width:140%;height:2px;background:linear-gradient(90deg,transparent,rgba(156,120,255,.9),rgba(114,212,255,.9),transparent);transform:translateY(-50%) rotate(-8deg);opacity:.9}.dash-spark.down>span{background:linear-gradient(90deg,transparent,hsla(0,100%,72%,.92),rgba(156,120,255,.75),transparent);transform:translateY(-50%) rotate(10deg)}.dash-portfolio{position:relative;border-radius:18px;overflow:hidden;border:1px solid rgba(168,148,255,.26);background:radial-gradient(600px 320px at 20% 10%,rgba(156,120,255,.55),rgba(156,120,255,.1) 55%,transparent 75%),radial-gradient(420px 260px at 90% 20%,rgba(114,212,255,.22),transparent 65%),linear-gradient(180deg,rgba(20,18,34,.85),rgba(10,12,20,.85));box-shadow:0 18px 60px rgba(0,0,0,.45);padding:16px}.dash-portfolio-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.dash-brand{display:flex;align-items:center;gap:8px;color:rgba(238,244,255,.9);font-weight:700;font-size:13px}.dash-brand-mark{width:18px;height:18px;border-radius:6px;background:linear-gradient(135deg,rgba(238,244,255,.9),rgba(156,120,255,.9));box-shadow:0 0 18px rgba(156,120,255,.35)}.dash-badge-new{font-size:11px;font-weight:800;padding:4px 10px;border-radius:999px;background:hsla(0,0%,100%,.08);border:1px solid hsla(0,0%,100%,.12);color:rgba(238,244,255,.85)}.dash-portfolio-title{margin-top:14px;font-size:18px;font-weight:800;color:hsla(0,0%,100%,.95);letter-spacing:-.01em}.dash-portfolio-sub{margin-top:8px;font-size:12px;line-height:1.45;color:rgba(210,224,245,.7);max-width:34ch}.dash-portfolio-actions{margin-top:14px;display:flex;flex-direction:column;gap:10px;position:relative;z-index:1}.dash-btn-primary,.dash-btn-secondary{width:100%;height:38px;border-radius:12px;font-size:12px;font-weight:800;border:1px solid hsla(0,0%,100%,.14);cursor:pointer;transition:transform .14s ease,background .14s ease,border-color .14s ease}.dash-btn-primary{background:rgba(238,244,255,.1);color:hsla(0,0%,100%,.92);border-color:rgba(238,244,255,.22)}.dash-btn-primary:hover{transform:translateY(-1px);background:rgba(238,244,255,.14);border-color:rgba(238,244,255,.28)}.dash-btn-secondary{background:rgba(0,0,0,.18);color:rgba(235,245,255,.82);border-color:hsla(0,0%,100%,.1)}.dash-btn-secondary:hover{transform:translateY(-1px);background:rgba(0,0,0,.24);border-color:hsla(0,0%,100%,.16)}.dash-portfolio-glow{position:absolute;inset:-20%;background:radial-gradient(circle at 40% 30%,rgba(156,120,255,.35),transparent 55%);filter:blur(18px);opacity:.8;pointer-events:none}.dash-bottom{display:grid;grid-template-columns:1fr 360px;grid-gap:14px;gap:14px;padding:10px 18px 18px;min-height:0}.dash-bottom>*{min-width:0}.dash-side,.dash-wide{background:hsla(0,0%,100%,.03);border:1px solid hsla(0,0%,100%,.07);border-radius:18px;box-shadow:0 14px 48px rgba(0,0,0,.38);overflow:hidden}.dash-wide{padding:16px}.dash-wide-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.dash-wide-kicker{font-size:11px;color:rgba(176,194,222,.68)}.dash-wide-title{margin-top:6px;font-size:18px;font-weight:800;color:rgba(238,244,255,.93)}.dash-wide-actions{display:flex;gap:8px}.dash-mini{height:32px;padding:0 12px;border-radius:10px;border:1px solid rgba(156,120,255,.28);background:rgba(156,120,255,.14);color:rgba(236,229,255,.92);font-size:12px;font-weight:800;cursor:pointer;transition:background .14s ease,border-color .14s ease}.dash-mini.secondary{border-color:hsla(0,0%,100%,.1);background:rgba(0,0,0,.18);color:rgba(210,224,245,.82)}.dash-mini:hover{background:rgba(156,120,255,.2);border-color:rgba(156,120,255,.38)}.dash-mini.secondary:hover{background:hsla(0,0%,100%,.06);border-color:hsla(0,0%,100%,.16)}.dash-wide-metric{margin-top:12px;padding-top:12px;border-top:1px solid hsla(0,0%,100%,.06)}.dash-wide-label{font-size:11px;color:rgba(176,194,222,.7)}.dash-wide-value{margin-top:6px;font-size:40px;font-weight:900;letter-spacing:-.03em;color:rgba(238,244,255,.96)}.dash-metrics-grid{margin-top:12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px}.dash-metric{border:1px solid hsla(0,0%,100%,.06);background:rgba(0,0,0,.14);border-radius:14px;padding:10px;min-width:0}.dash-metric-label{font-size:11px;color:rgba(176,194,222,.68)}.dash-metric-value{margin-top:6px;font-size:16px;font-weight:900;color:rgba(238,244,255,.92)}.dash-metric-value.down{color:hsla(0,100%,72%,.95)}.dash-side{padding:16px;position:relative}.dash-side-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.dash-side-title{font-size:14px;font-weight:900;color:rgba(238,244,255,.92)}.dash-side-pills{display:flex;gap:8px}.dash-range{margin-top:14px;padding:14px 10px 6px}.dash-range-track{height:8px;border-radius:999px;border:1px solid hsla(0,0%,100%,.08);background:rgba(0,0,0,.18);position:relative;overflow:hidden}.dash-range-fill{position:absolute;left:0;top:0;bottom:0;width:58%;background:linear-gradient(90deg,rgba(156,120,255,.55),rgba(114,212,255,.45));opacity:.9}.dash-range-thumb{position:absolute;left:58%;top:50%;width:14px;height:14px;border-radius:50%;transform:translate(-50%,-50%);background:rgba(238,244,255,.85);box-shadow:0 0 18px rgba(156,120,255,.35);border:1px solid hsla(0,0%,100%,.12)}.dash-side-note{margin-top:10px;font-size:11px;color:rgba(176,194,222,.68)}.tb-cam-menu-wrap{position:relative}.tb-cam-menu-panel{position:absolute;top:calc(100% + 8px);left:0;z-index:210;min-width:260px;max-width:min(340px,calc(100vw - 24px));background:var(--bg-panel);border:1px solid var(--border-accent);border-radius:10px;box-shadow:0 8px 32px rgba(0,0,0,.45);overflow:hidden}.tb-cam-menu-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--accent);padding:10px 14px 8px;border-bottom:1px solid var(--border)}.tb-cam-menu-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;padding:10px 14px}.tb-cam-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border-radius:8px;border:1px solid hsla(0,0%,100%,.08);background:rgba(0,0,0,.12);color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);font-family:inherit}.tb-cam-menu-item.active,.tb-cam-menu-item:hover{background:var(--accent-dim);color:var(--accent);border-color:var(--border-accent)}.tb-cam-menu-icon{width:18px;text-align:center;flex-shrink:0}.tb-cam-menu-label{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tb-cam-menu-divider{height:1px;background:var(--border);margin:0}.tb-cam-menu-isolate{display:flex;align-items:center;gap:10px;padding:10px 14px 12px;font-size:12px;font-weight:600;color:var(--text-secondary);cursor:pointer}.tb-cam-menu-isolate input{width:14px;height:14px;accent-color:var(--accent)}@media (max-width:1200px){.dash-bottom,.dash-top-grid{grid-template-columns:1fr}.dash-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-cards.is-maximized{grid-template-columns:1fr}}@media (max-width:880px){.dash-cards{grid-template-columns:1fr}.dash-expanded-grid,.dash-metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.dash-header{flex-direction:column;align-items:stretch;gap:10px;padding:14px 12px 10px}.dash-title-row{flex-wrap:wrap;gap:8px}.dash-title{font-size:18px}.dash-header-actions{justify-content:flex-start}.dash-card,.dash-top-grid{padding:12px 12px 10px}.dash-card{border-radius:14px}.dash-bottom{padding:10px 12px 14px}.dash-side,.dash-wide{border-radius:14px}}@media (max-width:520px){.dash-kicker,.dash-pill{font-size:10px}.dash-pill{padding:3px 8px}.dash-side,.dash-wide{padding:12px}.dash-wide table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.dash-wide tbody,.dash-wide thead,.dash-wide tr{display:table;width:max-content;min-width:100%}.dash-wide td,.dash-wide th{white-space:nowrap}.dash-wide td{padding:7px 6px!important}}.viewport-map{position:absolute;top:0;left:0}.viewport-map,.viewport-map-inner{width:100%;height:100%}.hybrid-panorama-clip{position:absolute;inset:0;overflow:hidden;z-index:3;pointer-events:none;background:var(--bg-primary,#0a0f18)}.hybrid-panorama-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;outline:none;touch-action:none}.hybrid-panorama-close{position:absolute;top:8px;right:8px;z-index:4;width:32px;height:32px;padding:0;border:1px solid hsla(0,0%,100%,.22);border-radius:8px;background:rgba(8,12,20,.72);color:rgba(230,238,252,.95);font-size:22px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;pointer-events:auto;transition:background .15s ease,border-color .15s ease,color .15s ease}.hybrid-panorama-close:hover{background:rgba(18,26,38,.88);border-color:hsla(0,0%,100%,.35);color:#fff}.viewport-3d{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:auto}.viewport-3d canvas{width:100%!important;height:100%!important;outline:none}.viewport-area.split .viewport-map{width:50%}.viewport-area.split .viewport-3d{left:50%;width:50%;border-left:1px solid var(--border)}.viewport-area.facility-only .viewport-map,.viewport-area.geo-only .viewport-3d{display:none}.statusbar{grid-area:statusbar;gap:16px;padding:0 16px;background:var(--bg-secondary);border-top:1px solid var(--border);font-size:12px;color:var(--text-muted)}.statusbar,.statusbar-item{display:flex;align-items:center}.statusbar-item{gap:6px}.statusbar-end{margin-left:auto;display:flex;align-items:center;gap:12px}.statusbar-version{font-size:12px;color:var(--text-muted);white-space:nowrap}.statusbar-ai-trigger{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border:1px solid var(--border);border-radius:8px;background:hsla(0,0%,100%,.04);color:var(--text-secondary);font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.statusbar-ai-trigger:hover{color:var(--text-primary);background:rgba(114,212,255,.08);border-color:rgba(114,212,255,.35)}.statusbar-ai-trigger-icon{font-size:14px;line-height:1}.ai-assistant-backdrop{position:fixed;inset:0;z-index:140;margin:0;padding:0;border:none;background:rgba(4,10,20,.45);cursor:default}.ai-assistant-panel{position:fixed;z-index:145;right:12px;bottom:var(--statusbar-height);width:min(380px,calc(100vw - 24px));max-height:min(420px,52vh);display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border);border-bottom:none;border-radius:12px 12px 0 0;box-shadow:0 -8px 40px rgba(0,0,0,.45);transform:translateY(calc(100% + 12px));opacity:0;visibility:hidden;pointer-events:none;transition:transform .28s cubic-bezier(.22,1,.36,1),opacity .22s ease,visibility .28s}.ai-assistant-panel.is-open{transform:translateY(0);opacity:1;visibility:visible;pointer-events:auto}.ai-assistant-panel-header{justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.ai-assistant-panel-close,.ai-assistant-panel-header{display:flex;align-items:center;color:var(--text-muted)}.ai-assistant-panel-close{justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:6px;background:transparent;font-size:20px;line-height:1;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.ai-assistant-panel-close:hover{background:hsla(0,0%,100%,.06);color:var(--text-primary)}.ai-assistant-panel-body{flex:1 1;min-height:0;overflow-y:auto;padding:12px}.ai-assistant-panel-footer{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid var(--border);flex-shrink:0;background:rgba(0,0,0,.2)}.ai-assistant-input{flex:1 1;min-width:0;padding:8px 11px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:13px;font-family:inherit}.ai-assistant-input::placeholder{color:var(--text-muted)}.ai-assistant-input:focus{outline:none;border-color:rgba(114,212,255,.45);box-shadow:0 0 0 2px rgba(114,212,255,.12)}.ai-assistant-panel-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.ai-assistant-icon-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.ai-assistant-icon-btn:hover{background:hsla(0,0%,100%,.06);color:var(--text-secondary)}.ai-assistant-icon-svg{display:block;flex-shrink:0}.ai-assistant-bubble{border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.45}.ai-assistant-bubble--assistant{background:rgba(114,212,255,.1);border:1px solid rgba(114,212,255,.22);color:var(--text-secondary)}.ai-assistant-bubble-text{margin:0}.status-indicator{width:6px;height:6px;border-radius:50%;background:var(--status-good);box-shadow:0 0 6px rgba(127,224,160,.4)}.status-indicator.warning{background:var(--status-warn);box-shadow:0 0 6px rgba(255,208,107,.4)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.1);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.2)}.viewport-area.geo-overlay .viewport-map{width:100%;height:100%;position:absolute;top:0;left:0}.viewport-3d-overlay{border-radius:14px;overflow:hidden;box-shadow:0 0 0 1.5px rgba(114,212,255,.55),0 0 24px 4px rgba(114,212,255,.18),0 8px 40px rgba(0,0,0,.45);transition:width .12s ease,height .12s ease;z-index:20;cursor:crosshair}.viewport-3d-overlay:before{content:"";position:absolute;inset:0;border-radius:14px;background:radial-gradient(ellipse at center,rgba(4,10,20,.55) 0,rgba(4,10,20,.25) 55%,transparent 80%);pointer-events:none;z-index:0}.viewport-3d-overlay canvas{position:relative;z-index:1;background:transparent!important}.viewport-3d:not(.viewport-3d-overlay){background:var(--bg-primary)}.site-marker{position:relative;width:60px;height:60px;display:flex;align-items:center;justify-content:center;pointer-events:none}.site-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);position:relative;z-index:3}.site-ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%;border:1.5px solid var(--accent);opacity:0;animation:ring-expand 3s ease-out infinite}.site-ring-1{width:20px;height:20px;animation-delay:0s}.site-ring-2{width:40px;height:40px;animation-delay:.9s}.site-ring-3{width:60px;height:60px;animation-delay:1.8s}@keyframes ring-expand{0%{transform:translate(-50%,-50%) scale(.5);opacity:.8}to{transform:translate(-50%,-50%) scale(1.4);opacity:0}}.geo-btn{color:var(--accent)!important;border-color:var(--border-accent)!important;background:var(--accent-dim)!important}.geo-btn:hover{background:rgba(114,212,255,.25)!important}.statusbar-geo{color:var(--accent);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sidebar-tabs{display:flex;border-bottom:1px solid var(--border);flex-shrink:0}.sidebar-tab-btn{flex:1 1;padding:8px 4px;border:none;background:transparent;color:var(--text-muted);font-size:11px;font-weight:600;font-family:inherit;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:var(--transition-fast);position:relative;display:flex;align-items:center;justify-content:center;gap:4px}.sidebar-tab-btn:hover{color:var(--text-secondary);background:hsla(0,0%,100%,.03)}.sidebar-tab-btn.active{color:var(--accent);background:var(--accent-dim)}.sidebar-tab-btn.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--accent);border-radius:2px 2px 0 0}.tab-count{font-size:10px;padding:1px 5px;border-radius:8px;background:hsla(0,0%,100%,.07);color:var(--text-muted);line-height:1.4}.tab-alarm-dot{width:6px;height:6px;border-radius:50%;background:var(--status-error);box-shadow:0 0 5px hsla(0,100%,72%,.5);flex-shrink:0}.sidebar-content{flex:0 0 auto;overflow:visible;min-height:0}.global-alarm-badge{margin-left:auto;background:var(--status-error);color:#fff;font-size:11px;font-weight:700;padding:2px 7px;border-radius:10px;cursor:pointer;box-shadow:0 0 8px hsla(0,100%,72%,.4);transition:var(--transition-fast)}.global-alarm-badge:hover{box-shadow:0 0 12px hsla(0,100%,72%,.6)}.asset-tree-row{display:flex;align-items:center;gap:7px;padding:5px 8px;border-radius:8px;font-size:12px;color:var(--text-secondary);font-weight:500}.asset-tree-row.asset-site{color:var(--text-primary);font-weight:600}.asset-tree-icon{font-size:14px;width:18px;text-align:center;flex-shrink:0}.asset-tree-label{flex:1 1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asset-tree-indent{padding-left:16px;border-left:1px solid var(--border);margin-left:12px}.alarm-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;transition:box-shadow var(--transition-fast)}.asset-item-label{flex:1 1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.asset-type-tag{font-size:10px;padding:1px 6px;border-radius:4px;background:hsla(0,0%,100%,.05);color:var(--text-muted);white-space:nowrap;flex-shrink:0;text-transform:capitalize}.type-pump{color:#72d4ff}.type-compressor{color:#a8e6ff}.type-vessel{color:#ffd06b}.type-heat_exchanger{color:#c5a8ff}.type-chimney{color:#9fb3c8}.layer-toggles{display:flex;flex-direction:column;gap:4px}.layer-toggle-btn{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid transparent;border-radius:8px;background:hsla(0,0%,100%,.03);color:var(--text-muted);font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;transition:var(--transition-fast);text-align:left}.layer-toggle-btn:hover{background:hsla(0,0%,100%,.06);color:var(--text-secondary)}.layer-toggle-btn.active{background:var(--accent-dim);color:var(--accent);border-color:var(--border-accent)}.layer-icon{width:16px;text-align:center;font-size:14px}.layer-vis-dot{margin-left:auto;font-size:14px;opacity:.7}.count-pill{margin-left:6px;font-size:10px;padding:1px 6px;border-radius:8px;background:var(--accent-dim);color:var(--accent);font-weight:700}.alarm-panel{background:hsla(0,100%,72%,.06);border:1px solid hsla(0,100%,72%,.18);border-radius:10px;padding:10px;margin-bottom:12px}.alarm-panel-title{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700;color:var(--status-error);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.alarm-pulse{width:7px;height:7px;border-radius:50%;background:var(--status-error);box-shadow:0 0 0 2px hsla(0,100%,72%,.3);animation:pulse 1.4s ease-in-out infinite;flex-shrink:0}.alarm-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid hsla(0,0%,100%,.04)}.alarm-row:last-child{border-bottom:none}.alarm-row-body{flex:1 1;min-width:0}.alarm-row-name{font-size:12px;font-weight:500;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alarm-row-sev{font-size:10px;font-weight:600;margin-top:1px}.alarm-row-critical .alarm-row-sev{color:#ff7070}.alarm-row-warning .alarm-row-sev{color:#ffd06b}.alarm-row-info .alarm-row-sev{color:#72d4ff}.sensor-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px}.sensor-card{background:hsla(0,0%,100%,.03);border:1px solid var(--border);border-radius:8px;padding:8px;transition:border-color var(--transition-fast)}.sensor-card-critical{border-color:hsla(0,100%,72%,.4);background:hsla(0,100%,72%,.05)}.sensor-card-warning{border-color:rgba(255,208,107,.35);background:rgba(255,208,107,.05)}.sensor-card-info{border-color:rgba(114,212,255,.3)}.sensor-card-id{font-size:11px;font-weight:700;color:var(--text-muted);letter-spacing:.04em}.sensor-card-asset{font-size:10px;color:var(--text-muted);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sensor-card-value{font-size:15px;font-weight:700;color:var(--text-primary);margin-top:4px;line-height:1}.sensor-card-unit{font-size:11px;font-weight:400;color:var(--text-muted)}.sensor-card-quality{font-size:10px;margin-top:3px}.quality-good{color:var(--status-good)}.quality-uncertain{color:var(--status-warn)}.quality-bad{color:var(--status-error)}.empty-state{font-size:12px;color:var(--text-muted);padding:16px 4px;text-align:center;font-style:italic}.filter-group{margin-bottom:16px}.filter-group-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px}.filter-chip-row{display:flex;flex-wrap:wrap;gap:5px}.filter-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--border);border-radius:16px;background:transparent;color:var(--text-secondary);font-size:11px;font-weight:500;font-family:inherit;cursor:pointer;transition:var(--transition-fast);text-transform:capitalize}.filter-chip:hover{background:hsla(0,0%,100%,.05);color:var(--text-primary)}.filter-chip.active{background:var(--accent-dim);color:var(--accent);border-color:var(--border-accent)}.chip-check{font-size:10px;font-weight:700}.filter-clear-btn{width:100%;padding:7px;border:1px solid hsla(0,100%,72%,.3);border-radius:8px;background:hsla(0,100%,72%,.07);color:var(--status-error);font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;transition:var(--transition-fast);margin-top:8px}.filter-clear-btn:hover{background:hsla(0,100%,72%,.14)}.annotation-add-btn{display:flex;align-items:center;gap:6px;width:100%;padding:7px 12px;border:1px dashed var(--border-accent);border-radius:8px;background:transparent;color:var(--accent);font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;transition:var(--transition-fast);margin-bottom:10px}.annotation-add-btn.active,.annotation-add-btn:hover{background:var(--accent-dim)}.annotation-list{display:flex;flex-direction:column;gap:6px}.annotation-card{background:hsla(0,0%,100%,.03);border:1px solid var(--border);border-radius:10px;padding:10px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.annotation-card[role=button]{cursor:pointer}.annotation-card.ann-warning{border-color:rgba(255,208,107,.3);background:rgba(255,208,107,.04)}.annotation-card.ann-note{border-left:3px solid rgba(114,212,255,.4)}.annotation-card.ann-measurement{border-left:3px solid rgba(127,224,160,.4)}.annotation-card.ann-document{border-left:3px solid rgba(165,148,255,.4)}.annotation-card--selected{border-color:rgba(114,212,255,.65)!important;box-shadow:0 0 0 1px rgba(114,212,255,.35),0 4px 20px rgba(114,212,255,.12);background:rgba(114,212,255,.08)!important;outline:none}.annotation-card[role=button]:focus-visible{box-shadow:0 0 0 2px rgba(114,212,255,.5)}.ann-card-header{display:flex;align-items:center;gap:6px;margin-bottom:5px}.ann-card-actions{margin-left:auto;display:flex;align-items:center;gap:2px;flex-shrink:0}.ann-edit-pos-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;transition:var(--transition-fast)}.ann-edit-pos-btn:hover:not(:disabled){color:var(--accent);background:rgba(114,212,255,.1)}.ann-edit-pos-btn:disabled{opacity:.35;cursor:not-allowed}.ann-edit-pos-icon{flex-shrink:0}.ann-type-icon{font-size:13px}.ann-type-label{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.ann-delete-btn{background:none;border:none;color:var(--text-muted);font-size:16px;line-height:1;cursor:pointer;padding:0 2px;border-radius:4px;transition:var(--transition-fast)}.ann-delete-btn:hover{color:var(--status-error);background:hsla(0,100%,72%,.1)}.ann-text{font-size:12px;color:var(--text-secondary);line-height:1.45}.ann-meta{font-size:10px;color:var(--text-muted);margin-top:4px}.ann-link{color:var(--accent)}.annotation-mode-banner{position:absolute;top:12px;left:50%;transform:translateX(-50%);background:rgba(11,22,35,.92);border:1px solid var(--border-accent);border-radius:20px;padding:7px 16px;font-size:13px;color:var(--accent);display:flex;align-items:center;gap:12px;white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:30;box-shadow:var(--shadow-md)}.annotation-mode-banner button{background:none;border:1px solid var(--border-accent);border-radius:8px;color:var(--text-muted);font-size:11px;font-family:inherit;padding:3px 8px;cursor:pointer;transition:var(--transition-fast)}.annotation-mode-banner button:hover{color:var(--status-error);border-color:hsla(0,100%,72%,.4)}.ann-position-edit-bar{position:absolute;top:12px;right:12px;display:flex;align-items:center;gap:8px;z-index:32;padding:6px 8px;background:rgba(11,22,35,.92);border:1px solid var(--border-accent);border-radius:12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow-md)}.ann-pos-action{width:34px;height:34px;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--border);border-radius:8px;background:hsla(0,0%,100%,.04);font-size:16px;line-height:1;cursor:pointer;transition:var(--transition-fast);color:var(--text-secondary)}.ann-pos-cancel:hover{color:var(--status-error);border-color:hsla(0,100%,72%,.45);background:hsla(0,100%,72%,.1)}.ann-pos-confirm:hover{color:#7ec8a0;border-color:rgba(126,200,160,.45);background:rgba(126,200,160,.1)}.ann-overlay{position:absolute;transform:translate(-50%,-100%);font-size:18px;cursor:pointer;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5));transition:left .04s linear,top .04s linear,transform var(--transition-fast);will-change:left,top;z-index:25;pointer-events:auto;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ann-overlay:hover{transform:translate(-50%,-100%) scale(1.25)}.ann-overlay--selected{filter:drop-shadow(0 0 6px rgba(114,212,255,.85));transform:translate(-50%,-100%) scale(1.15)}.ann-overlay--selected:hover{transform:translate(-50%,-100%) scale(1.28)}.ann-overlay-photo{font-size:22px;filter:drop-shadow(0 2px 6px rgba(255,200,100,.55))}.ann-overlay:after{content:"";position:absolute;bottom:-2px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:hsla(0,0%,100%,.5)}.detail-panel{position:absolute;top:12px;right:12px;width:260px;background:rgba(11,22,35,.94);border:1px solid var(--border-accent);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow-lg);z-index:40;overflow:hidden}.detail-header{display:flex;align-items:flex-start;gap:8px;padding:14px 14px 10px;border-bottom:1px solid var(--border)}.detail-header--drag{cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.detail-header--drag:active{cursor:-webkit-grabbing;cursor:grabbing}.detail-header-body{flex:1 1;min-width:0}.detail-breadcrumb{font-size:10px;color:var(--text-muted);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.breadcrumb-sep{opacity:.5}.detail-title{font-size:14px;font-weight:700;color:var(--text-primary);line-height:1.3}.detail-type-tag{display:inline-block;margin-top:4px;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);background:var(--accent-dim);padding:2px 7px;border-radius:6px}.detail-close-btn{background:none;border:none;color:var(--text-muted);font-size:20px;line-height:1;cursor:pointer;padding:0;flex-shrink:0;transition:color var(--transition-fast)}.detail-close-btn:hover{color:var(--text-primary)}.asset-ctx-menu{position:fixed;z-index:90;min-width:168px;padding:4px 0;background:rgba(11,22,35,.96);border:1px solid var(--border-accent);border-radius:10px;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.asset-ctx-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;border:none;background:none;color:var(--text-secondary);font-size:13px;font-family:inherit;text-align:left;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.asset-ctx-menu-item:hover{background:rgba(114,212,255,.1);color:var(--text-primary)}.detail-alarm-banner{display:flex;align-items:center;gap:7px;padding:7px 14px;font-size:12px;font-weight:600}.detail-alarm-critical{background:hsla(0,100%,72%,.12);color:#ff7070;border-bottom:1px solid hsla(0,100%,72%,.2)}.detail-alarm-warning{background:rgba(255,208,107,.1);color:#ffd06b;border-bottom:1px solid rgba(255,208,107,.18)}.detail-alarm-info{background:rgba(114,212,255,.08);color:var(--accent);border-bottom:1px solid rgba(114,212,255,.15)}.detail-section{padding:10px 14px;border-bottom:1px solid var(--border)}.detail-section:last-child{border-bottom:none}.detail-section-label{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:7px}.detail-sensor-row{display:flex;align-items:center;gap:6px;padding:3px 0;font-size:12px}.detail-sensors-list{max-height:min(240px,30vh);overflow-y:auto;padding-right:4px}.detail-sensor-id{font-weight:700;color:var(--text-muted);width:46px;flex-shrink:0}.detail-sensor-val{flex:1 1;font-weight:600;color:var(--text-primary);text-align:right}.detail-sensor-unit{font-weight:400;color:var(--text-muted);font-size:11px}.detail-quality{font-size:10px;padding:1px 5px;border-radius:4px;background:hsla(0,0%,100%,.05);flex-shrink:0}.detail-doc-row{font-size:12px;color:var(--accent);padding:3px 0;cursor:pointer}.detail-doc-row:hover{text-decoration:underline}.detail-meta-row{display:flex;justify-content:space-between;align-items:center;font-size:11px;padding:3px 0}.detail-meta-row span:first-child{color:var(--text-muted)}.detail-meta-row span:last-child{color:var(--text-secondary);text-align:right;font-size:10px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.annotation-active-btn{animation:glow-accent 1.2s ease-in-out infinite}@keyframes glow-accent{0%,to{box-shadow:0 0 4px rgba(114,212,255,.2)}50%{box-shadow:0 0 12px rgba(114,212,255,.5)}}.statusbar-alarm{color:var(--status-error)!important;font-weight:600}.viewport-area.globe-map-mode{display:grid;grid-template-rows:1fr;grid-template-columns:1fr;position:relative;overflow:hidden}.globe-map-root{position:absolute;inset:0;z-index:0;background:#0a0f1a}.globe-map-root canvas{width:100%!important;height:100%!important;display:block}.viewport-area.globe-map-mode .viewport-3d{position:absolute;inset:0;z-index:1;background:transparent}.viewport-area.facility-only{display:grid;grid-template-rows:1fr;grid-template-columns:1fr}.transition-overlay{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;background:rgba(10,15,26,.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none}.transition-ring-wrap{display:flex;flex-direction:column;align-items:center;gap:14px}.transition-ring{width:72px;height:72px;filter:drop-shadow(0 0 8px rgba(114,212,255,.5))}.transition-label{font-size:13px;font-weight:600;color:var(--accent);letter-spacing:.04em;text-shadow:0 0 12px rgba(114,212,255,.5)}.enter-facility-btn{background:linear-gradient(135deg,rgba(114,212,255,.15),rgba(50,160,220,.1))!important;border-color:rgba(114,212,255,.4)!important;color:#a8e8ff!important;font-weight:600!important;animation:facility-btn-pulse 2.5s ease-in-out infinite}.enter-facility-btn:hover:not(:disabled){background:linear-gradient(135deg,rgba(114,212,255,.28),rgba(50,160,220,.18))!important;border-color:rgba(114,212,255,.65)!important}.enter-facility-btn:disabled{opacity:.6;cursor:not-allowed;animation:none}@keyframes facility-btn-pulse{0%,to{box-shadow:0 0 4px rgba(114,212,255,.2)}50%{box-shadow:0 0 14px rgba(114,212,255,.45)}}.back-to-globe-btn{background:linear-gradient(135deg,rgba(100,200,140,.14),rgba(60,170,100,.08))!important;border-color:rgba(100,200,140,.4)!important;color:#a8f0c8!important;font-weight:600!important}.back-to-globe-btn:hover:not(:disabled){background:linear-gradient(135deg,rgba(100,200,140,.26),rgba(60,170,100,.16))!important;border-color:rgba(100,200,140,.65)!important}.back-to-globe-btn:disabled{opacity:.6;cursor:not-allowed}.terrain-btn{background:rgba(180,140,80,.1)!important;border-color:rgba(180,140,80,.3)!important;color:#dfc090!important}.terrain-btn.active{background:rgba(180,140,80,.22)!important;border-color:rgba(180,140,80,.6)!important;color:#f5d090!important}.satellite-btn{background:rgba(80,140,200,.1)!important;border-color:rgba(80,140,200,.3)!important;color:#90c0ef!important}.satellite-btn.active{background:rgba(80,140,200,.25)!important;border-color:rgba(80,140,200,.65)!important;color:#b8d8ff!important}.viewport-pixelstream{position:absolute;inset:0;z-index:2;background:#0a0f1a;display:flex;align-items:center;justify-content:center;overflow:hidden}.pixelstream-iframe{width:100%;height:100%;border:none;display:block;background:#000}.pixelstream-placeholder{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--text-secondary,#8a9bb5);text-align:center;padding:40px;max-width:500px}.pixelstream-placeholder-icon{font-size:3rem;line-height:1}.pixelstream-placeholder h3{color:var(--text-primary,#c8d8e8);font-size:1.1rem;font-weight:600;margin:0}.pixelstream-placeholder p{font-size:.85rem;margin:0;line-height:1.5}.pixelstream-placeholder code{background:hsla(0,0%,100%,.08);border:1px solid hsla(0,0%,100%,.12);border-radius:4px;padding:1px 5px;font-family:monospace;font-size:.82em}.pixelstream-placeholder-sub{color:var(--text-muted,#566880)!important;font-size:.78rem!important}.pixelstream-ws-hint{margin-top:8px;padding:8px 16px;border-radius:6px;font-size:.78rem;border:1px solid}.pixelstream-ws-hint.ws-open{border-color:#3b6;color:#5da;background:rgba(50,170,100,.08)}.pixelstream-ws-hint.ws-connecting{border-color:#a80;color:#cb5;background:rgba(180,130,0,.08)}.pixelstream-ws-hint.ws-closed,.pixelstream-ws-hint.ws-error{border-color:#a44;color:#e77;background:rgba(160,50,50,.08)}.pixelstream-ws-hint.ws-idle{border-color:hsla(0,0%,100%,.1);color:#566880;background:transparent}.ps-selection-popup{position:absolute;top:24px;right:24px;z-index:10;width:300px;background:rgba(10,18,32,.92);border:1px solid rgba(100,160,220,.25);border-radius:12px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 8px 32px rgba(0,0,0,.55),0 0 0 1px hsla(0,0%,100%,.04);overflow:hidden;animation:ps-popup-in .18s ease}@keyframes ps-popup-in{0%{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.ps-popup-close{position:absolute;top:10px;right:12px;width:24px;height:24px;border-radius:50%;border:1px solid hsla(0,0%,100%,.15);background:hsla(0,0%,100%,.06);color:#8a9bb5;font-size:1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.ps-popup-close:hover{background:rgba(220,70,70,.25);border-color:rgba(220,70,70,.45);color:#ff8080}.ps-popup-title{padding:18px 42px 4px 18px;font-size:1rem;font-weight:600;color:#c8d8e8;line-height:1.3}.ps-popup-title--raw{font-family:monospace;font-size:.88rem;color:#8fb8d8;word-break:break-all}.ps-popup-type{padding:0 18px 14px;font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:#5a8fbf}.ps-popup-alarm{margin:0 14px 10px;padding:6px 10px;border-radius:6px;font-size:.78rem;display:flex;align-items:center;gap:6px}.ps-alarm-warning{background:rgba(200,140,0,.12);border:1px solid rgba(200,140,0,.3);color:#d4aa40}.ps-alarm-critical{background:rgba(200,50,50,.12);border:1px solid rgba(200,50,50,.3);color:#e07070}.ps-alarm-info{background:rgba(60,120,200,.12);border:1px solid rgba(60,120,200,.3);color:#70a8e0}.ps-popup-rows{padding:0 0 10px;border-top:1px solid hsla(0,0%,100%,.06)}.ps-popup-row{display:flex;justify-content:space-between;align-items:baseline;padding:7px 18px;font-size:.8rem;gap:12px;border-bottom:1px solid hsla(0,0%,100%,.04)}.ps-popup-row:last-child{border-bottom:none}.ps-popup-row>span:first-child{color:#566880;flex-shrink:0;font-size:.75rem}.ps-popup-row>span:last-child{color:#a8bccc;text-align:right;word-break:break-all}.ps-popup-sensor-list{max-height:min(200px,26vh);overflow-y:auto}.ps-popup-sensor>span:last-child{color:#7ec8a0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ps-popup-unit{color:#566880;font-size:.72em}.ps-popup-id>span:last-child{color:#4a6880;font-family:monospace;font-size:.75rem}.ps-debug-panel{position:absolute;bottom:12px;left:12px;z-index:10;width:420px;max-height:240px;background:rgba(6,12,22,.94);border:1px solid rgba(80,200,120,.3);border-radius:8px;font-family:monospace;font-size:.72rem;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 4px 20px rgba(0,0,0,.6)}.ps-debug-header{display:flex;justify-content:space-between;align-items:center;padding:5px 10px;background:rgba(50,180,100,.1);border-bottom:1px solid rgba(80,200,120,.2);color:#4ec880}.ps-debug-header button{background:transparent;border:1px solid rgba(80,200,120,.3);border-radius:4px;color:#4ec880;font-size:.68rem;padding:1px 6px;cursor:pointer}.ps-debug-body{overflow-y:auto;padding:6px 10px;flex:1 1;display:flex;flex-direction:column;gap:2px}.ps-debug-line{color:#7ec898;white-space:pre-wrap;word-break:break-all;line-height:1.4}.ps-debug-empty{color:#3a5040}.unreal-test-btn{background:rgba(100,200,120,.08)!important;border-color:rgba(100,200,120,.25)!important;color:#70c888!important}.unreal-test-btn:hover{background:rgba(100,200,120,.18)!important}.unreal-debug-btn{background:rgba(160,180,220,.08)!important;border-color:rgba(160,180,220,.25)!important;color:#8898b8!important}.unreal-debug-btn.active{background:rgba(160,180,220,.18)!important;border-color:rgba(160,180,220,.5)!important;color:#b0c0e0!important}.unreal-status-badge{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:6px;border:1px solid hsla(0,0%,100%,.1);font-size:.75rem;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.unreal-status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.unreal-status-label{color:var(--text-secondary,#8a9bb5)}.unreal-status-open{border-color:rgba(50,190,100,.35);background:rgba(50,190,100,.06)}.unreal-status-open .unreal-status-dot{background:#3bc874;box-shadow:0 0 6px #3bc874}.unreal-status-open .unreal-status-label{color:#6de0a0}.unreal-status-connecting{border-color:rgba(200,160,0,.35);background:rgba(200,160,0,.06)}.unreal-status-connecting .unreal-status-dot{background:#c8a020;animation:pulse 1.2s ease-in-out infinite}.unreal-status-connecting .unreal-status-label{color:#d4b040}.unreal-status-closed,.unreal-status-error{border-color:rgba(190,60,60,.35);background:rgba(190,60,60,.06)}.unreal-status-closed .unreal-status-dot,.unreal-status-error .unreal-status-dot{background:#c44}.unreal-status-closed .unreal-status-label,.unreal-status-error .unreal-status-label{color:#e07070}.unreal-status-idle .unreal-status-dot{background:#566880}.lp-body{background-color:#0d0d12;background-image:radial-gradient(circle at top right,rgba(37,99,235,.15) 0,transparent 40%),radial-gradient(circle at bottom left,rgba(6,182,212,.1) 0,transparent 40%);color:#fff;font-family:Outfit,Inter,sans-serif;display:flex;align-items:center;justify-content:center;min-height:100vh;width:100vw;margin:0;overflow:hidden;position:relative}.lp-canvas{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:auto}.lp-container{display:flex;flex-direction:column;width:100%;max-width:440px;padding:50px 40px;background-color:#010004;background-image:url(/Logo.png);background-size:cover;background-position:calc(50% - 16px) calc(50% - 42px);background-repeat:no-repeat;border:1px solid hsla(0,0%,100%,.08);border-radius:24px;box-shadow:0 25px 50px -12px rgba(0,0,0,.5),0 0 40px rgba(37,99,235,.2);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);overflow:hidden;position:relative;z-index:10}.lp-login-section{width:100%;display:flex;align-items:center;justify-content:center}.lp-login-box{width:100%;max-width:340px}.lp-login-form{display:flex;flex-direction:column;margin-top:12em}.lp-input-group{margin-bottom:24px;position:relative}.lp-input-group label{display:block;font-size:13px;color:#94a3b8;margin-bottom:8px;font-weight:500}.lp-input-group input{width:100%;padding:14px 16px;background:rgba(0,0,0,.2);border:1px solid hsla(0,0%,100%,.08);border-radius:12px;color:#fff;font-size:14px;font-family:inherit;transition:all .3s ease;box-sizing:border-box}.lp-input-group input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.2);background:rgba(0,0,0,.4)}.lp-input-group input::placeholder{color:hsla(0,0%,100%,.2)}.lp-form-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;font-size:13px}.lp-remember-me{display:flex;align-items:center;gap:8px;color:#94a3b8;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.lp-remember-me input{accent-color:#2563eb;width:16px;height:16px;cursor:pointer;margin:0;padding:0}.lp-forgot-password{color:#3b82f6;text-decoration:none;transition:color .3s;font-weight:500}.lp-forgot-password:hover{color:#fff}.lp-login-btn{width:100%;padding:14px;background:rgba(37,99,235,.25);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid hsla(0,0%,100%,.1);color:#fff;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .3s ease;box-shadow:0 4px 15px rgba(0,0,0,.2)}.lp-login-btn:hover:not(:disabled){background:rgba(37,99,235,.4);border-color:hsla(0,0%,100%,.25);transform:translateY(-2px);box-shadow:0 6px 20px rgba(37,99,235,.3)}.lp-login-btn:active:not(:disabled){transform:translateY(0)}.lp-login-btn:disabled{opacity:.7;cursor:not-allowed}.lp-test-users-group{display:flex;gap:12px;margin-top:16px;width:100%}.lp-test-btn{flex:1 1;background:rgba(30,58,138,.3);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid hsla(0,0%,100%,.08);font-size:13px;padding:12px 10px;box-shadow:0 4px 15px rgba(0,0,0,.2)}.lp-test-btn:hover:not(:disabled){background:rgba(30,58,138,.5);border-color:hsla(0,0%,100%,.2);box-shadow:0 6px 20px rgba(30,58,138,.3);transform:translateY(-2px)}.lp-error{display:flex;align-items:center;gap:8px;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:10px;padding:10px 14px;font-size:13px;color:#fca5a5;margin-bottom:4px}@media (max-width:480px){.lp-container{width:90%;padding:40px 20px}}.statusbar-transition{color:var(--accent)!important;font-weight:600}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.irobot-popup{position:absolute;top:24px;right:24px;width:380px;max-height:calc(100% - 48px);overflow-y:auto;background:rgba(10,15,26,.96);border:1px solid rgba(80,160,255,.25);border-radius:12px;box-shadow:0 8px 40px rgba(0,0,0,.7),0 0 0 1px rgba(80,160,255,.08);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:900;font-size:13px;color:#c8d8ef;display:flex;flex-direction:column}.irobot-popup::-webkit-scrollbar{width:4px}.irobot-popup::-webkit-scrollbar-track{background:transparent}.irobot-popup::-webkit-scrollbar-thumb{background:rgba(80,160,255,.25);border-radius:2px}.irobot-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid hsla(0,0%,100%,.07)}.irobot-header-left{display:flex;align-items:center;gap:10px}.irobot-icon{font-size:22px;line-height:1}.irobot-title{font-size:15px;font-weight:700;color:#e8f2ff;letter-spacing:.3px}.irobot-subtitle{font-size:11px;color:#6a90b8;margin-top:1px}.irobot-close{background:none;border:none;color:#6a90b8;font-size:16px;cursor:pointer;width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;flex-shrink:0}.irobot-close:hover{background:rgba(255,80,80,.15);color:#ff7070}.irobot-status-bar{display:flex;align-items:center;gap:8px;padding:8px 16px;background:rgba(80,160,255,.06);border-bottom:1px solid hsla(0,0%,100%,.05);font-size:12px;flex-wrap:wrap}.irobot-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.irobot-status-active{background:#40e080;box-shadow:0 0 6px rgba(64,224,128,.6);animation:pulse 2s infinite}.irobot-status-idle{background:#ffd06b;box-shadow:0 0 6px rgba(255,208,107,.4)}.irobot-status-label{font-weight:600;color:#e8f2ff}.irobot-divider{color:hsla(0,0%,100%,.15)}.irobot-body{padding:0 0 4px}.irobot-section{padding:12px 16px;border-bottom:1px solid hsla(0,0%,100%,.05)}.irobot-section:last-child{border-bottom:none}.irobot-section-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:#4a88cc;margin-bottom:9px}.irobot-joints{display:flex;flex-direction:column;gap:5px}.irobot-joint{display:grid;grid-template-columns:22px 1fr 52px;align-items:center;grid-gap:8px;gap:8px}.irobot-joint-label{font-size:11px;font-weight:600;color:#4a88cc}.irobot-joint-bar-track{height:4px;background:hsla(0,0%,100%,.08);border-radius:2px;overflow:hidden}.irobot-joint-bar-fill{height:100%;background:linear-gradient(90deg,#2a7fd4,#50c8ff);border-radius:2px;transition:width .6s ease}.irobot-joint-val{font-size:11px;font-weight:500;color:#a0c8ef;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.irobot-pos-row{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:8px;gap:8px}.irobot-pos-cell{background:hsla(0,0%,100%,.04);border-radius:7px;padding:8px 10px;display:flex;flex-direction:column;gap:4px;border:1px solid hsla(0,0%,100%,.06)}.irobot-pos-axis{font-size:10px;font-weight:700;letter-spacing:.5px}.irobot-axis-x{color:#ff7070}.irobot-axis-y{color:#7fe090}.irobot-axis-z{color:#72c8ff}.irobot-pos-val{font-size:13px;font-weight:600;color:#e0eeff;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.irobot-stats{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px}.irobot-stat{background:hsla(0,0%,100%,.04);border-radius:7px;padding:8px 10px;border:1px solid hsla(0,0%,100%,.06)}.irobot-stat-label{display:block;font-size:10px;color:#6a90b8;margin-bottom:3px}.irobot-stat-val{display:block;font-size:13px;font-weight:600;color:#e0eeff;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.irobot-files-section{padding-bottom:14px}.irobot-files{display:flex;flex-direction:column;gap:5px}.irobot-file-btn{display:flex;align-items:center;gap:8px;width:100%;background:hsla(0,0%,100%,.04);border:1px solid rgba(80,160,255,.15);border-radius:7px;padding:8px 10px;cursor:pointer;transition:background .15s,border-color .15s;text-align:left;color:#c0d8f0}.irobot-file-btn:hover{background:rgba(80,160,255,.1);border-color:rgba(80,160,255,.35);color:#e8f4ff}.irobot-file-icon{font-size:15px;flex-shrink:0}.irobot-file-name{flex:1 1;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.irobot-file-badge{font-size:9px;font-weight:700;letter-spacing:.5px;padding:2px 6px;border-radius:4px;background:rgba(80,160,255,.15);color:#72c8ff;flex-shrink:0}.fviewer-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:32px}.fviewer-modal{background:rgba(12,18,32,.98);border:1px solid rgba(80,160,255,.25);border-radius:12px;box-shadow:0 16px 60px rgba(0,0,0,.8);width:100%;max-width:860px;height:80vh;display:flex;flex-direction:column;overflow:hidden;transition:max-width .35s ease}.fviewer-modal--graph{max-width:1300px}.fviewer-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid hsla(0,0%,100%,.08);flex-shrink:0}.fviewer-filename{font-size:13px;font-weight:600;color:#c8d8ef;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fviewer-close{background:none;border:none;color:#6a90b8;font-size:16px;cursor:pointer;width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;flex-shrink:0}.fviewer-close:hover{background:rgba(255,80,80,.15);color:#ff7070}.fviewer-body{flex:1 1;overflow:hidden;display:flex;align-items:stretch}.fviewer-graph-panel{width:50%;min-width:0;flex-shrink:0;position:relative;z-index:2;overflow:hidden;display:flex;flex-direction:column;border-right:1px solid rgba(80,160,255,.15);background:rgba(6,10,20,.9)}.fviewer-graph-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:#4a88cc;padding:8px 12px;border-bottom:1px solid rgba(80,160,255,.1);flex-shrink:0}.fviewer-pdf-panel{flex:1 1;min-width:0;position:relative;z-index:1;display:flex;flex-direction:column;align-items:stretch}.fviewer-ctx-menu{position:fixed;z-index:1100;background:rgba(12,18,32,.97);border:1px solid rgba(80,160,255,.25);border-radius:9px;box-shadow:0 8px 32px rgba(0,0,0,.7),0 0 0 1px rgba(80,160,255,.08);min-width:220px;overflow:hidden;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);-webkit-user-select:none;-moz-user-select:none;user-select:none}.fviewer-ctx-header{display:flex;align-items:center;gap:8px;padding:10px 14px 8px;border-bottom:1px solid hsla(0,0%,100%,.06)}.fviewer-ctx-info-icon{width:18px;height:18px;border-radius:50%;background:rgba(80,160,255,.18);border:1px solid rgba(80,160,255,.4);color:#72c8ff;font-size:11px;font-weight:700;font-style:italic;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:serif}.fviewer-ctx-filename{font-size:12px;font-weight:600;color:#c8d8ef;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fviewer-ctx-divider{height:1px;background:hsla(0,0%,100%,.06);margin:0}.fviewer-ctx-item{display:flex;align-items:center;gap:10px;width:100%;background:none;border:none;padding:9px 14px;cursor:pointer;color:#c0d8f0;font-size:13px;text-align:left;transition:background .12s}.fviewer-ctx-item:hover{background:rgba(80,160,255,.12);color:#e8f4ff}.fviewer-ctx-icon{display:flex;align-items:center;color:#72c8ff;flex-shrink:0}.fviewer-ctx-item--disabled,.fviewer-ctx-item:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.fviewer-ctx-badge{margin-left:auto;font-size:9px;font-weight:700;letter-spacing:.4px;padding:2px 6px;border-radius:4px;background:rgba(80,160,255,.15);color:#72c8ff}.fviewer-iframe{width:100%;height:100%;border:none;background:#fff}.fviewer-img-wrap{flex:1 1;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(0,0,0,.3)}.fviewer-img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px;box-shadow:0 4px 24px rgba(0,0,0,.5)}.ps-popup-doc-links{display:flex;flex-direction:column;gap:3px;align-items:flex-end}.detail-doc-row--link,.ps-popup-doc-link{background:none;border:none;padding:0;cursor:pointer;font-size:12px;color:#72c8ff;text-align:left;text-decoration:underline;text-underline-offset:2px;transition:color .15s}.detail-doc-row--link:hover,.ps-popup-doc-link:hover{color:#a8e0ff}.detail-doc-row--link{display:block;width:100%;padding:4px 0;font-size:13px;text-align:left}.fviewer-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;color:#8aabcc;font-size:14px}.fviewer-dl-btn{padding:10px 20px;background:rgba(80,160,255,.15);border:1px solid rgba(80,160,255,.35);border-radius:8px;color:#72c8ff;text-decoration:none;font-size:13px;font-weight:600;transition:background .15s}.fviewer-dl-btn:hover{background:rgba(80,160,255,.28)}.auth-gate-shell{min-height:100vh;width:100vw;background:var(--bg-primary);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.auth-gate-spinner{width:36px;height:36px;border-radius:50%;border:2px solid rgba(114,212,255,.2);border-top:2px solid var(--accent);animation:auth-gate-spin .85s linear infinite}@keyframes auth-gate-spin{to{transform:rotate(1turn)}}.auth-gate-label{font-size:14px;color:var(--text-secondary)}