:root{--navy:#071f33;--accent:#1e9bff;--ok:#10b981;--bad:#ef4444;--warn:#f59e0b;--font:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--r:14px}body.dark{--bg:#0a1726;--glass:rgba(9,25,41,.82);--glass-2:rgba(255,255,255,.06);--ink:#e8f1fb;--muted:#9fb3c8;--line:rgba(255,255,255,.12)}body.light{--bg:#e8eef4;--glass:rgba(255,255,255,.88);--glass-2:rgba(7,31,51,.05);--ink:#0d1c2c;--muted:#53667a;--line:rgba(7,31,51,.12)}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--ink);font:14px/1.45 var(--font);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer}a{color:var(--accent)}#app{position:fixed;inset:0}#stage{position:absolute;inset:0}#stage canvas{display:block;width:100%;height:100%;touch-action:none}.top{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:8px;padding:12px 14px;pointer-events:none;z-index:5}.top>*{pointer-events:auto}.spacer{flex:1}.brand{display:flex;align-items:center;gap:10px;background:var(--glass);backdrop-filter:blur(10px);border:1px solid var(--line);padding:8px 12px;border-radius:12px}.brand b{display:block;font-size:14px}.brand small{color:var(--muted);font-size:11.5px}.logo{background:var(--accent);color:#fff;font-weight:800;font-size:11px;letter-spacing:.06em;padding:6px 7px;border-radius:7px}.ib{background:var(--glass);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:10px;padding:8px 11px;display:inline-flex;gap:6px;align-items:center;font-weight:600;font-size:13px}.ib:hover{border-color:var(--accent)}.btn{border:1px solid var(--line);background:var(--glass-2);padding:10px 16px;border-radius:10px;font-weight:650;display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:var(--ink)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.ghost{background:transparent}.btn.link{border:0;background:none;color:var(--muted);text-decoration:underline}.btn.sm{padding:7px 12px;font-size:13px}.btn:disabled{opacity:.45;cursor:wait}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.modes{position:absolute;left:14px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:6px;z-index:5}.modes button{background:var(--glass);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:12px;padding:10px 12px;text-align:left;display:flex;gap:10px;align-items:center;min-width:170px;font-weight:600}.modes button i{font-style:normal;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:var(--glass-2);font-size:13px}.modes button.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.modes button.on i{background:var(--accent);color:#fff}.panel{position:absolute;right:14px;top:72px;bottom:64px;width:380px;background:var(--glass);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:var(--r);z-index:5;display:flex;flex-direction:column;overflow:hidden;transition:transform .3s}.grab{display:none}.pbody{padding:18px;overflow:auto;flex:1}.pbody h2{font-size:19px;margin:0 0 6px;line-height:1.25}.pbody h3{font-size:14px;margin:16px 0 8px}.pbody p{margin:0 0 12px;color:var(--muted)}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-weight:700;margin-bottom:6px}.pts{margin:0 0 12px;padding:0;list-style:none;display:grid;gap:6px}.pts li{padding-left:20px;position:relative}.pts li:before{content:"";position:absolute;left:4px;top:7px;width:7px;height:7px;border-radius:2px;background:var(--accent)}.nav{display:flex;gap:8px;align-items:center;margin-top:10px}.list{display:grid;gap:6px}.list button{display:flex;gap:10px;align-items:center;text-align:left;background:var(--glass-2);border:1px solid transparent;border-radius:10px;padding:8px 10px}.list button:hover,.list button.on{border-color:var(--accent)}.num{width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:11.5px;font-weight:800;flex:none}.vin{background:var(--glass-2);border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:14px;display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:13px}.vin dt{color:var(--muted)}.vin dd{margin:0;font-weight:650}.vin .mono{font-family:ui-monospace,Menlo,Consolas,monospace}.pill{display:inline-block;font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:99px;background:#1e9bff2e;color:var(--accent)}.pill.ok{background:#10b9812e;color:var(--ok)}.pill.bad{background:#ef44442e;color:var(--bad)}.dots{display:flex;gap:4px;flex-wrap:wrap;margin:12px 0}.dots button{width:22px;height:6px;border-radius:9px;border:0;background:var(--line);padding:0}.dots button.on{background:var(--accent)}.dots button.done{background:#1e9bff73}.tl{list-style:none;margin:6px 0 0;padding:0;font-size:12.5px}.tl li{display:flex;gap:8px;padding:5px 0;border-bottom:1px solid var(--line);cursor:pointer;color:var(--muted)}.tl li.on{color:var(--ink);font-weight:650}.tl time{width:42px;flex:none;font-variant-numeric:tabular-nums}.kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px}.kpi{background:var(--glass-2);border-radius:10px;padding:10px}.kpi b{display:block;font-size:20px}.kpi span{font-size:12px;color:var(--muted)}.hb{display:grid;grid-template-columns:70px 1fr 38px;gap:8px;align-items:center;font-size:12.5px;margin:6px 0}.hb .b{height:9px;border-radius:9px;background:var(--line);overflow:hidden}.hb .b i{display:block;height:100%;background:var(--accent);border-radius:9px}.hist{display:flex;align-items:flex-end;gap:5px;height:90px}.hist div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:3px;height:100%;font-size:10.5px;color:var(--muted)}.hist i{display:block;width:100%;background:var(--accent);border-radius:4px 4px 0 0}.hist .hot i{background:var(--warn)}.alert{font-size:12.5px;padding:7px 0 7px 18px;border-bottom:1px solid var(--line);position:relative}.alert:before{content:"";position:absolute;left:2px;top:12px;width:8px;height:8px;border-radius:50%;background:var(--warn)}.sys{display:grid;grid-template-columns:72px 1fr;gap:8px;font-size:12.5px;padding:6px 0;border-bottom:1px solid var(--line)}.sys b{color:var(--accent)}.card{background:var(--glass-2);border:1px solid transparent;border-radius:12px;padding:12px;margin-bottom:8px;cursor:pointer;text-align:left;width:100%}.card:hover,.card.on{border-color:var(--accent)}.card b{display:block;margin-bottom:4px}.card span{color:var(--muted);font-size:13px}.legend{display:flex;flex-wrap:wrap;gap:8px 12px;font-size:12px;margin:8px 0}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}.layers{position:absolute;top:64px;right:14px;z-index:8;background:var(--glass);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:12px;padding:10px;width:250px;display:grid;gap:2px}.layers label{display:flex;gap:10px;align-items:center;padding:7px 8px;border-radius:8px;cursor:pointer}.layers label:hover{background:var(--glass-2)}.layers input{accent-color:var(--accent);width:16px;height:16px}#hotspots{position:absolute;inset:0;pointer-events:none;z-index:4}.hs{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;display:flex;align-items:center;gap:6px;background:var(--glass);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:99px;padding:4px 10px 4px 4px;font-size:12px;font-weight:650;white-space:nowrap;transition:opacity .2s}.hs:hover,.hs.on{border-color:var(--accent)}.hs.on .num{box-shadow:0 0 0 4px #1e9bff59}.hs-hero{background:var(--accent);color:#fff;border-color:var(--accent);padding:4px 10px;font-family:ui-monospace,Menlo,monospace}.caption{position:absolute;left:50%;bottom:90px;transform:translate(-50%);max-width:min(760px,90vw);text-align:center;font-size:clamp(18px,2.4vw,28px);font-weight:650;text-shadow:0 2px 18px rgba(0,0,0,.6);z-index:6;opacity:0;transition:opacity .5s;pointer-events:none;color:#fff}.caption.show{opacity:1}.intro{position:absolute;inset:0;display:grid;place-items:center;z-index:20;background:radial-gradient(ellipse at center,#071f338c,#071f33eb);padding:16px}.intro-card{max-width:560px;color:#fff}.intro h1{font-size:clamp(28px,5vw,44px);margin:0 0 12px;line-height:1.1}.intro p{color:#c7d6e6;margin:0 0 22px;font-size:16px}.intro .btn.ghost{color:#fff;border-color:#ffffff4d}.intro .btn.link{color:#c7d6e6}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.load{display:flex;align-items:center;gap:12px;margin-bottom:18px;font-size:13px;color:#c7d6e6}.load .bar{width:180px;height:5px;border-radius:9px;background:#ffffff26;overflow:hidden}.load i{display:block;height:100%;width:5%;background:var(--accent);transition:width .3s}.foot{position:absolute;left:14px;right:410px;bottom:12px;display:flex;align-items:center;gap:12px;z-index:5;font-size:12px;color:var(--muted);pointer-events:none}.foot>*{pointer-events:auto}.foot span{background:var(--glass);border:1px solid var(--line);padding:6px 10px;border-radius:9px;backdrop-filter:blur(8px)}.textview{position:absolute;inset:0;z-index:30;background:var(--bg);overflow:auto}.tv-in{max-width:820px;margin:0 auto;padding:28px 20px 60px;position:relative}.tv-in h1{font-size:28px}.tv-in h2{margin-top:28px;font-size:20px}.tv-in li{margin:4px 0}.tv-close{position:sticky;top:10px;float:right}body.intro-on .modes,body.intro-on .panel,body.intro-on .foot,body.intro-on #hotspots{opacity:0;pointer-events:none}.ib.on{background:var(--warn);border-color:var(--warn);color:#111}.hs-q{background:#f59e0bf2;color:#111;border-color:transparent;padding:6px 12px;font-size:13px;transform:translate(-50%,-100%) rotate(-2deg)}body.blind .modes button.on{border-color:var(--warn)}.blindcard{cursor:default;margin-top:12px}.blindcard.on{border-color:var(--warn)}.muted-s{color:var(--muted);font-size:12.5px;margin:6px 0}.fin{flex:1;min-width:0;background:var(--glass-2);border:1px solid var(--line);border-radius:10px;padding:9px 11px;font:13px ui-monospace,Menlo,monospace;color:var(--ink)}.sl{display:grid;gap:6px;margin:10px 0}.sl span{display:flex;justify-content:space-between;font-weight:600;font-size:13px}.sl input[type=range]{width:100%;accent-color:var(--accent)}.sl select{background:var(--glass-2);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:7px}.shot{margin:4px 0 14px}.shot-l{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px;font-weight:700}.scr{background:#f4f6fa;color:#0f1c2b;border-radius:12px;overflow:hidden;font-size:12px;box-shadow:0 6px 20px #00000040}.scr.phone{max-width:230px;border:6px solid #0b1220;border-radius:22px}.s-top{background:#071f33;color:#fff;padding:7px 10px;display:flex;gap:6px;align-items:center}.s-top span{margin-left:auto;opacity:.7;font-size:10.5px}.desk .s-top i{width:8px;height:8px;border-radius:50%;background:#ffffff4d}.desk .s-top b{margin-left:6px}.s-body{padding:10px;display:grid;gap:7px}.s-h{font-weight:700;font-size:13px}.s-in{background:#fff;border:2px solid #1e9bff;border-radius:7px;padding:7px 9px;font-family:ui-monospace,Menlo,monospace}.s-ok-bar{background:#e2f6ea;color:#11743a;border-radius:7px;padding:6px 8px;font-weight:600}.s-btn{background:#071f33;color:#fff;text-align:center;border-radius:7px;padding:7px;font-weight:700}.s-btn.ok{background:#10b981}.s-btn.bad{background:#dc2626}.s-kv{display:grid;grid-template-columns:auto 1fr;gap:3px 10px}.s-kv span{color:#5b6b7f}.s-kv b{font-weight:650}.s-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(40px,1fr));gap:6px;padding:4px 0;border-bottom:1px solid #e2e8f0}.s-head{color:#5b6b7f;font-weight:700;font-size:10.5px}.s-note{color:#5b6b7f;font-size:11px}.s-amb{color:#b45309;font-weight:700}.s-chk{display:flex;justify-content:space-between;background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:4px 8px}.s-ok,.s-nok{font-weight:800;font-size:10.5px;padding:1px 7px;border-radius:5px}.s-ok{background:#e2f6ea;color:#11743a}.s-nok{background:#fde6e6;color:#b31d1d}.s-msg{display:flex;gap:8px;align-items:center}.s-tag{background:#e6effd;color:#1d4fb8;font-weight:800;font-size:10.5px;padding:2px 6px;border-radius:5px}.s-map{width:100%;background:#e6ebf1;border-radius:7px}.s-map rect{fill:#fff;stroke:#cbd5e1}.s-path{fill:none;stroke:#1e9bff;stroke-width:3;stroke-dasharray:6 4}.s-dot{fill:#dc2626}.s-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.s-kpis div{background:#fff;border-radius:6px;padding:5px}.s-kpis b{display:block;font-size:14px}.s-kpis span{color:#5b6b7f;font-size:10px}.s-alert{background:#fdf3dc;color:#8a5300;border-radius:6px;padding:5px 8px}.s-tl{display:flex;gap:8px;padding:3px 0;border-bottom:1px solid #e2e8f0;color:#5b6b7f}.s-tl time{width:36px;flex:none}.s-tl.on{color:#0f1c2b;font-weight:700}@media (max-width:760px){.top{padding:8px}.brand small,.ib span{display:none}.brand{padding:6px 8px}.brand b{font-size:13px}.modes{inset:auto 0 0;transform:none;flex-direction:row;gap:0;background:var(--glass);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.modes button{flex:1;min-width:0;flex-direction:column;gap:3px;padding:6px 1px;border:0;background:none;font-size:9.5px;text-align:center;box-shadow:none!important;line-height:1.15}.modes button.on{color:var(--accent)}.panel{left:0;right:0;top:auto;bottom:calc(62px + env(safe-area-inset-bottom));width:auto;height:46vh;border-radius:16px 16px 0 0;border-bottom:0}.panel.collapsed{transform:translateY(calc(46vh - 44px))}.grab{display:flex;align-items:center;justify-content:center;gap:8px;border:0;background:none;padding:8px;font-size:12px;color:var(--muted);flex:none}.grab i{width:36px;height:4px;border-radius:9px;background:var(--line)}.pbody{padding:4px 16px 16px}.foot{display:none}.caption{bottom:52vh;font-size:18px}.layers{top:52px;right:8px}.hs span{display:none}.hs{padding:3px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}

@media (max-width:760px){
  html,body{width:100%;height:100%;overscroll-behavior:none}
  body{-webkit-text-size-adjust:100%}
  .top{padding-top:calc(8px + env(safe-area-inset-top));padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right))}
  .brand,.ib,.modes,.panel,.layers,.hs{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  .ib,.btn,.grab,.modes button{min-height:44px}
  .modes{padding-left:max(4px,env(safe-area-inset-left));padding-right:max(4px,env(safe-area-inset-right))}
  .panel{height:min(44dvh,420px);bottom:calc(62px + env(safe-area-inset-bottom))}
  .panel.collapsed{transform:translateY(calc(min(44dvh,420px) - 44px))}
  .pbody{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));padding-bottom:calc(16px + env(safe-area-inset-bottom))}
  .caption{bottom:calc(min(44dvh,420px) + 68px);max-width:calc(100vw - 28px);font-size:17px}
  .intro{padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
  .intro-card{width:100%}
  .intro h1{font-size:clamp(28px,9vw,40px)}
  .row .btn{flex:1 1 140px;justify-content:center}
  .layers{max-width:calc(100vw - 16px)}
}
@media (max-width:760px) and (orientation:landscape){
  .panel{left:auto;right:0;top:calc(54px + env(safe-area-inset-top));bottom:calc(54px + env(safe-area-inset-bottom));width:min(44vw,420px);height:auto;border-radius:16px 0 0 16px;border-bottom:1px solid var(--line)}
  .panel.collapsed{transform:translateX(calc(100% - 44px))}
  .modes{left:8px;right:auto;bottom:calc(8px + env(safe-area-inset-bottom));width:min(52vw,520px);border:1px solid var(--line);border-radius:12px;padding:4px}
  .caption{left:26%;bottom:72px;max-width:46vw}
}

/* The embedded experience has no artificial close state; users scroll away or use browser navigation. */
#b-exit{display:none!important}
