:root{--bg:#0f1419;--panel:#0f1419d6;--panel-solid:#151b21;--text:#eef2f5;--muted:#9aa7b2;--line:#ffffff1f;--accent:#22d3ee;--ok:#14b8a6;--warn:#f59e0b;--danger:#ef4444;--ops:#1f9d55;--maint:#1f6fd1;--contr:#1d1d1f;--permit:#f2c200;--radius:14px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;margin:0;font:15px/1.45 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,Noto Sans Arabic,Geeza Pro,Tahoma,sans-serif;overflow:hidden}[hidden]{display:none!important}button{font:inherit;color:inherit}#camera-feed,#gl{width:100%;height:100%;position:fixed;top:0;bottom:0;left:0;right:0}#camera-feed{object-fit:cover;z-index:0}#gl{z-index:1;display:block}#overlay{z-index:2;pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}#touch{touch-action:none;pointer-events:auto;position:absolute;top:0;bottom:0;left:0;right:0}.btn{pointer-events:auto;background:var(--accent);color:#062a31;cursor:pointer;border:0;border-radius:12px;min-height:44px;padding:10px 18px;font-weight:700}.btn.secondary{color:var(--text);border:1px solid var(--line);background:#ffffff1a}.btn.danger{background:var(--danger);color:#fff}.btn.permit{background:var(--permit);color:#1b1600}.btn:disabled{opacity:.4;cursor:default}.icon-btn{pointer-events:auto;border:1px solid var(--line);background:var(--panel);cursor:pointer;-webkit-backdrop-filter:blur(8px);border-radius:12px;width:44px;height:44px;font-size:20px}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:8px 0;font-weight:600}.badge{letter-spacing:.02em;text-transform:uppercase;color:var(--muted);background:#ffffff1a;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:700;display:inline-block}.tone-right .badge,.badge.tone-right{color:#5eead4;background:#14b8a62e}.tone-wrong .badge,.badge.tone-wrong{color:#fca5a5;background:#ef44442e}.tone-practice .badge,.badge.tone-practice{color:#c4b5fd;background:#a78bfa33}.badge.rec{color:var(--accent);background:#22d3ee2e}.menu{pointer-events:auto;padding:calc(var(--safe-top) + 20px) 16px calc(var(--safe-bottom) + 24px);-webkit-user-select:none;background:linear-gradient(#0f141959 0%,#0f1419e0 38%,#0f1419f5 100%);position:absolute;top:0;bottom:0;left:0;right:0;overflow-y:auto}.menu-inner{max-width:560px;margin:0 auto}.brand{align-items:center;gap:14px;margin:4px 0 22px;display:flex}.brand-mark{background:var(--panel);border:1px solid var(--line);border-radius:14px;place-items:center;width:52px;height:52px;font-size:28px;display:grid}.brand h1{margin:0;font-size:24px;line-height:1.15}.brand p{color:var(--muted);margin:2px 0 0}.brand-text{flex:auto;min-width:0}.lang-btn{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:999px;flex:none;align-self:flex-start;min-height:40px;padding:6px 12px;font-size:14px;font-weight:600}.lang-cards .card{text-align:center;justify-items:center;padding:22px 16px}.lang-cards .card strong{font-size:22px}.lang-card.current{border-color:var(--accent)}:root[dir=rtl] body{line-height:1.6}:root[dir=rtl] .menu h2,:root[dir=rtl] .modal h3,:root[dir=rtl] .legend h3,:root[dir=rtl] .role-text small,:root[dir=rtl] .badge{letter-spacing:0;text-transform:none}.menu h2{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:18px 0 10px;font-size:13px}.cards{gap:10px;display:grid}.card{text-align:start;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);cursor:pointer;justify-items:start;gap:4px;width:100%;padding:14px 16px;transition:border-color .15s,transform .15s;display:grid}.card strong{font-size:17px}.card .summary{color:var(--muted)}.card:not(:disabled):hover{border-color:var(--accent)}.card:not(:disabled):focus-visible{border-color:var(--accent)}.card:not(:disabled):active{transform:scale(.99)}.card:disabled{opacity:.5;cursor:default}.legend{border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);margin-top:22px;padding:14px 16px}.legend h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 10px;font-size:13px}.legend-list{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.legend-list li{align-items:center;gap:10px;display:flex}.legend-list svg{flex:none;width:26px;height:31px}.legend-list span{color:var(--muted);font-size:13px;line-height:1.25;display:grid}.legend-list b{color:var(--text);font-size:14px}#hud{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.topbar{top:calc(var(--safe-top) + 10px);align-items:center;gap:8px;display:flex;position:absolute;left:12px;right:12px}.role{--role:var(--ops);background:var(--panel);border:2px solid var(--role);-webkit-backdrop-filter:blur(8px);border-radius:999px;align-items:center;gap:10px;min-width:0;padding-block-start:6px;padding-block-end:6px;padding-inline-start:8px;padding-inline-end:14px;display:flex}.role.role-dark{border-color:#cfd4da}.role-dot{background:var(--role);border:2px solid #ffffffb3;border-radius:50%;flex:none;width:26px;height:26px}.role-text{min-width:0;line-height:1.1;display:grid}.role-text small{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.role-text strong{white-space:nowrap;text-overflow:ellipsis;font-size:15px;overflow:hidden}.step-count{background:var(--panel);color:var(--muted);white-space:nowrap;border-radius:999px;margin-inline-start:auto;padding:6px 12px;font-size:13px}.instruction{top:calc(var(--safe-top) + 66px);border-radius:var(--radius);background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);max-width:600px;margin:0 auto;padding:12px 14px;position:absolute;left:12px;right:12px}.instruction p{margin:0}.instruction #instr-text{font-weight:600}.instruction .note{color:#fecaca;background:#ef444429;border-radius:10px;margin-top:8px;padding:7px 10px;font-size:14px}.instruction.danger{border-color:var(--danger);background:#7f1d1de6}.side-tools{gap:8px;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.side-tools:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){right:12px}.side-tools:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){right:12px}.side-tools:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){left:12px}.side-tools:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){left:12px}.gauge-chip{bottom:calc(var(--safe-bottom) + 104px);background:var(--panel);border:1px solid var(--line);color:var(--muted);border-radius:999px;align-items:baseline;gap:6px;padding:6px 12px;font-size:13px;display:flex;position:absolute}.gauge-chip:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){left:12px}.gauge-chip:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){left:12px}.gauge-chip:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){right:12px}.gauge-chip:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){right:12px}.gauge-chip b{color:var(--warn);font-variant-numeric:tabular-nums;font-size:18px}.gauge-chip.zero b{color:var(--ok)}.toast{left:50%;bottom:calc(var(--safe-bottom) + 150px);background:var(--panel-solid);border:1px solid var(--line);border-inline-start:5px solid var(--accent);border-radius:12px;width:max-content;max-width:min(92vw,520px);padding:10px 14px;font-weight:600;animation:.18s ease-out toast-in;position:absolute;transform:translate(-50%);box-shadow:0 8px 24px #00000059}.toast.ok{border-inline-start-color:var(--ok)}.toast.warn{border-inline-start-color:var(--warn)}.toast.danger{border-inline-start-color:var(--danger);background:#3b1111}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.placing-hint{text-align:center;border-radius:var(--radius);background:var(--panel);max-width:420px;margin:0 auto;padding:14px 16px;font-weight:600;position:absolute;top:45%;left:16px;right:16px}.tray{left:12px;right:12px;bottom:calc(var(--safe-bottom) + 10px);background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;max-width:600px;margin:0 auto;padding:8px;display:flex;position:absolute}.tray.dimmed{opacity:.35}.tray-items{gap:6px;display:flex}.tray-item{pointer-events:auto;touch-action:none;width:60px;color:var(--muted);cursor:grab;background:#ffffff0f;border:1px solid #0000;border-radius:12px;justify-items:center;gap:2px;padding:6px 4px 5px;font-size:11px;font-weight:600;display:grid}.tray-item svg{width:30px;height:36px}.tray-item.mine{color:var(--text);border-color:#ffffff59}.tray-item.armed{border-color:var(--accent);color:var(--text);background:#22d3ee2e}.tray-item.fitted{opacity:.3}.tray-item:disabled{cursor:default}.tray-item:disabled:not(.fitted){opacity:.55}.tray-item.pulse{color:var(--text);animation:1.2s ease-in-out infinite pulse}@keyframes pulse{0%,to{border-color:var(--accent);box-shadow:0 0 #22d3eeb3}50%{border-color:var(--accent);box-shadow:0 0 0 8px #22d3ee00}}.practice-actions{flex:auto;justify-content:flex-end;gap:6px;display:flex}.practice-actions .btn{padding:8px 12px;font-size:14px}.alarm-vignette{animation:.8s steps(2,jump-none) infinite alarm;position:absolute;top:0;bottom:0;left:0;right:0;box-shadow:inset 0 0 70px 14px #ef4444bf}@keyframes alarm{50%{box-shadow:inset 0 0 40px 4px #ef44441f}}.drag-ghost{z-index:50;pointer-events:none;filter:drop-shadow(0 6px 10px #00000080);width:54px;height:64px;position:fixed;top:0;left:0}.drag-ghost svg{width:100%;height:100%}.modal-backdrop{padding:calc(var(--safe-top) + 16px) 16px calc(var(--safe-bottom) + 16px);pointer-events:auto;z-index:40;background:#0000008c;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.modal{background:var(--panel-solid);border:1px solid var(--line);-webkit-user-select:text;user-select:text;border-radius:18px;width:100%;max-width:540px;max-height:100%;padding:20px 20px 0;overflow-y:auto;box-shadow:0 20px 60px #00000080}.modal h2{margin:8px 0 6px;font-size:21px;line-height:1.2}.modal h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:18px 0 8px;font-size:12px}.modal p{margin:6px 0}.modal .muted{color:var(--muted)}.actions{background:var(--panel-solid);flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px;padding:12px 0 20px;display:flex;position:sticky;bottom:0}.job{background:#ffffff0d;border-radius:12px;gap:6px;margin:14px 0 4px;padding:12px 14px;display:grid}.job small{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;display:block}.callout{border-inline-start:4px solid var(--accent);background:#22d3ee1a;border-radius:12px;padding:10px 12px}.callout.warn{border-inline-start-color:var(--warn);background:#f59e0b1f}.callout.danger{border-inline-start-color:var(--danger);background:#ef44441f}.callout.lesson{margin-top:16px;font-weight:600}.checks,.mistakes{gap:6px;margin:0;padding:0;list-style:none;display:grid}.checks li{align-items:flex-start;gap:10px;display:flex}.checks li span{border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:13px;font-weight:800;display:grid}.checks li.ok span{color:#5eead4;background:#14b8a633}.checks li.no span{color:#fca5a5;background:#ef444433}.checks li.no{color:#fecaca}.mistakes li{border-inline-start:3px solid var(--warn);background:#ffffff0d;border-radius:10px;padding-block-start:8px;padding-block-end:8px;padding-inline-start:12px;padding-inline-end:10px}.result-modal.incident .mistakes li{border-inline-start-color:var(--danger)}.result-head{align-items:center;gap:12px;display:flex}.result-head h2{margin:0}.result-icon{border-radius:50%;flex:none;place-items:center;width:44px;height:44px;font-size:24px;font-weight:800;display:grid}.result-head.incident .result-icon{background:var(--danger);color:#fff}.result-head.success .result-icon{background:var(--ok);color:#042f2b}.result-head.warning .result-icon{background:var(--warn);color:#2b1a00}.permit-head{background:var(--permit);color:#1b1600;letter-spacing:.04em;border-radius:18px 18px 0 0;justify-content:space-between;align-items:center;margin:-20px -20px 14px;padding:14px 20px;font-weight:800;display:flex}.permit-fields{grid-template-columns:max-content 1fr;gap:4px 12px;margin:0;display:grid}.permit-fields dt{color:var(--muted)}.permit-fields dd{margin:0}@media (min-width:1040px){.instruction{top:calc(var(--safe-top) + 12px);width:520px;left:50%;right:auto;transform:translate(-50%)}.topbar .step-count{margin-inline-start:auto}}
