.gmdss-root,.gmdss-body{--bg:#f4f6f8;--surface:#fff;--surface-2:#eef2f6;--ink:#16202a;--muted:#5b6875;--line:#d5dde5;--accent:#0b5cad;--accent-ink:#fff;--ok:#117a3d;--ko:#b3261e;--warn:#9a5b00;--mayday:#c62828;--panpan:#d97706;--securite:#1565c0;--rutina:#2e7d32;--ingles:#6a1b9a;--deletreo:#00838f;--focus:#ffb000;--radius:12px;--shadow:0 1px 2px #0000000f, 0 4px 16px #0000000f}@media (prefers-color-scheme:dark){.gmdss-root:not([data-theme=light]),.gmdss-body:not([data-theme=light]){--bg:#0f151b;--surface:#17202a;--surface-2:#1e2934;--ink:#e7edf3;--muted:#9fb0c0;--line:#2c3a47;--accent:#5aa6ff;--accent-ink:#06121f;--ok:#58c983;--ko:#ff8a80;--warn:#ffc46b;--shadow:0 1px 2px #0006}}.gmdss-root[data-theme=dark]{--bg:#0f151b;--surface:#17202a;--surface-2:#1e2934;--ink:#e7edf3;--muted:#9fb0c0;--line:#2c3a47;--accent:#5aa6ff;--accent-ink:#06121f;--ok:#58c983;--ko:#ff8a80;--warn:#ffc46b}.gmdss-body{background:var(--bg);margin:0}.gmdss-root{color:var(--ink);background:var(--bg);min-height:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.5}.gmdss-root *,.gmdss-root :before,.gmdss-root :after{box-sizing:border-box}.gmdss-root :focus-visible{outline:3px solid var(--focus);outline-offset:2px}.gmdss-root .sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.gmdss-root .skip{position:absolute;left:-9999px}.gmdss-root .skip:focus{z-index:10;background:var(--surface);padding:8px;top:8px;left:16px}.gmdss-root a{color:var(--accent)}.gmdss-root h1{margin:.2em 0 .4em;font-size:clamp(1.5rem,2.6vw,2.2rem);line-height:1.2}.gmdss-root h2{margin:1em 0 .4em;font-size:1.2rem}.gmdss-root .muted{color:var(--muted)}.gmdss-root .small{font-size:.875rem}.gmdss-root .lead{color:var(--muted);max-width:70ch;font-size:1.08rem}.gmdss-root .fineprint{color:var(--muted);font-size:.8rem}.gmdss-root .btn,.gmdss-root .mini,.gmdss-root .chip{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px}.gmdss-root .btn{min-height:44px;padding:.6em 1.1em;font-weight:600}.gmdss-root .btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.gmdss-root .btn.danger{background:var(--mayday);border-color:var(--mayday);color:#fff}.gmdss-root .mini{min-height:32px;padding:.25em .7em;font-size:.875rem}.gmdss-root .mini.ghost{border-style:dashed}.gmdss-root .mini[aria-pressed=true]{border-color:var(--accent)}.gmdss-root .link{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.gmdss-root .chip{background:var(--surface-2);padding:.2em .7em;font-size:.85rem}.gmdss-root .badge{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:.1em .6em;font-size:.78rem;font-weight:700;display:inline-block}.gmdss-root .badge.warn{color:#6b4b00;background:#fff3cd;border-color:#f0d58a}.gmdss-root .cat-mayday{--cat:var(--mayday)}.gmdss-root .cat-panpan,.gmdss-root .cat-falsa{--cat:var(--panpan)}.gmdss-root .cat-securite,.gmdss-root .cat-dsc{--cat:var(--securite)}.gmdss-root .cat-rutina,.gmdss-root .cat-recibir{--cat:var(--rutina)}.gmdss-root .cat-ingles{--cat:var(--ingles)}.gmdss-root .cat-deletreo{--cat:var(--deletreo)}.gmdss-root .badge[class*=cat-]{background:var(--cat);color:#fff;border-color:var(--cat)}.gmdss-root .pass{color:var(--ok)}.gmdss-root .fail{color:var(--ko)}.gmdss-root .app-header{background:var(--surface);border-bottom:1px solid var(--line);z-index:5;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:10px 16px;display:flex;position:sticky;top:0}.gmdss-root .brand{color:var(--ink);align-items:center;gap:8px;font-weight:800;text-decoration:none;display:flex}.gmdss-root .app-header nav{flex-wrap:wrap;flex:1;gap:2px 4px;display:flex}.gmdss-root .app-header nav a{color:var(--ink);border-radius:8px;padding:6px 10px;font-weight:500;text-decoration:none}.gmdss-root .app-header nav a.active,.gmdss-root .app-header nav a:hover{background:var(--surface-2)}.gmdss-root .header-tools{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.gmdss-root .lang-sel{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:4px}.gmdss-root .app-main{max-width:1480px;margin:0 auto;padding:16px}.gmdss-root .app-footer{border-top:1px solid var(--line);color:var(--muted);max-width:1480px;margin:24px auto 0;padding:16px;font-size:.85rem}.gmdss-root .hero{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);align-items:center;gap:24px;padding:12px 0 8px;display:grid}.gmdss-root .hero-radio{pointer-events:none}.gmdss-root .demo-buttons{flex-wrap:wrap;gap:8px;margin:16px 0 6px;display:flex}.gmdss-root .notice{color:#4a3500;border-radius:var(--radius);background:#fff8e1;border:1px solid #f0d58a;margin:16px 0;padding:12px 16px}.gmdss-root .two-col{grid-template-columns:1fr 1fr;gap:24px;display:grid}.gmdss-root .modes{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin:20px 0;display:grid}.gmdss-root .mode-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);color:var(--ink);flex-direction:column;gap:4px;padding:16px;text-decoration:none;display:flex}.gmdss-root .mode-card:hover{border-color:var(--accent)}.gmdss-root .mode-card span:last-child{color:var(--muted);font-size:.9rem}.gmdss-root .mode-icon{font-size:1.6rem}.gmdss-root .scn-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;padding:0;list-style:none;display:grid}.gmdss-root .scn-card a{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);border-left:6px solid var(--cat,var(--line));color:var(--ink);grid-template-columns:auto 1fr;gap:2px 10px;height:100%;padding:14px;text-decoration:none;display:grid}.gmdss-root .scn-card a>:not(.scn-num){grid-column:2}.gmdss-root .scn-num{color:var(--muted);grid-row:span 3;font-weight:800}.gmdss-root .scn-meta{color:var(--muted);font-size:.8rem}.gmdss-root .progress-bar{background:var(--surface-2);border-radius:999px;max-width:520px;height:10px;overflow:hidden}.gmdss-root .progress-bar span{background:var(--ok);height:100%;display:block}.gmdss-root .sim{grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);align-items:start;gap:16px;display:grid}.gmdss-root .sim-main{min-width:0}.gmdss-root .sim-tabs{gap:6px;margin-bottom:8px;display:none}.gmdss-root .sim-tab{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:10px;flex:1;min-height:44px;padding:8px}.gmdss-root .sim-tab[aria-selected=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.gmdss-root .sim-pane+.sim-pane{margin-top:16px}.gmdss-root .sim-side{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);max-height:calc(100vh - 86px);padding:14px;position:sticky;top:70px;overflow:auto}.gmdss-root .sim-side h2{margin:.2em 0;font-size:1.15rem}.gmdss-root .radio-wrap{align-items:stretch;gap:8px;display:flex}.gmdss-root .radio-unit{flex:auto;min-width:0}.gmdss-root .handset-unit{flex:0 0 13%;align-items:center;display:flex}.gmdss-root .radio-svg,.gmdss-root .handset-svg{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.gmdss-root .r-brand{fill:#9aa5b2;letter-spacing:.08em;font:700 14px system-ui,sans-serif}.gmdss-root .rkey{cursor:pointer}.gmdss-root .rkey:hover .rkey-face{filter:brightness(1.25)}.gmdss-root .rkey:active .rkey-face{filter:brightness(.8)}.gmdss-root .rkey:focus-visible .rkey-face,.gmdss-root .rknob:focus-visible circle:nth-of-type(2),.gmdss-root .rcover:focus-visible rect:first-child{stroke:#ffd166;stroke-width:5px}.gmdss-root .rkey:focus,.gmdss-root .rknob:focus,.gmdss-root .rcover:focus{outline:none}.gmdss-root .rkey-label{fill:#eef2f6;pointer-events:none;font:800 17px system-ui,sans-serif}.gmdss-root .rkey-sub{fill:#aeb8c3;pointer-events:none;font:700 11px system-ui,sans-serif}.gmdss-root .rknob{cursor:pointer}.gmdss-root .rknob-label{fill:#c9d1da;pointer-events:none;font:800 16px system-ui,sans-serif}.gmdss-root .rknob-hint{fill:#8993a0;font:700 13px system-ui,sans-serif}.gmdss-root .rdistress-label{fill:#fff;letter-spacing:.04em;pointer-events:none;font:900 20px system-ui,sans-serif}.gmdss-root .rcover{cursor:pointer;transform-box:fill-box;transform-origin:50% 0;transition:transform .35s}.gmdss-root .rcover.open{transform:translateY(-16px)scaleY(.16)}.gmdss-root .radio-svg.tall .rkey-label{font-size:19px}.gmdss-root .rcover-label{fill:#3a0605;pointer-events:none;font:900 11px system-ui,sans-serif}.gmdss-root .rdistress-btn[aria-disabled=true]{cursor:not-allowed}.gmdss-root .rptt-label{fill:#eef2f6;pointer-events:none;font:900 26px system-ui,sans-serif}.gmdss-root .radio-svg.is-tx .lcd-bg{fill:#c9d6a8}.gmdss-root .lcd text{font-family:DejaVu Sans Mono,Menlo,Consolas,ui-monospace,monospace;font-weight:700}.gmdss-root .lcd-xl{letter-spacing:-4px;font-size:104px}.gmdss-root .lcd-m{font-size:18px}.gmdss-root .lcd-s{font-size:14px}.gmdss-root .lcd-xs{font-size:12px}.gmdss-root .voicebar{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-top:10px;padding:10px 12px}.gmdss-root .vb-mode{color:var(--muted);margin:0 0 8px;font-size:.9rem}.gmdss-root .vb-row{align-items:stretch;gap:8px;display:flex}.gmdss-root .vb-input{font:inherit;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);resize:vertical;border-radius:10px;flex:1;min-height:48px;padding:8px 10px}.gmdss-root .vb-interim{min-height:1.2em;color:var(--muted);margin-top:4px;font-style:italic}.gmdss-root .vb-chips{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.gmdss-root .ptt-big{color:#fff;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;background:#22272e;border:2px solid #111;border-radius:12px;min-height:48px;padding:0 16px;font:800 1rem system-ui,sans-serif}.gmdss-root .ptt-big[aria-pressed=true]{background:#b3261e}.gmdss-root .ptt-big:disabled{opacity:.5;cursor:not-allowed}.gmdss-root .teacher-radio-bar{z-index:4;margin-bottom:16px;position:sticky;top:0}.gmdss-root .trb-row{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.gmdss-root .trb-row label{white-space:nowrap;align-items:center;gap:4px;font-weight:600;display:flex}.gmdss-root .trb-row select{font:inherit;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:8px;min-height:36px;padding:6px 8px}.gmdss-root .trb-row .ptt-big{min-height:40px;margin-left:auto}.gmdss-root .teacher-radio-bar .trb-info summary{cursor:pointer;margin-top:4px;font-size:.85rem;font-weight:600}.gmdss-root .trb-ch-summary{flex-wrap:wrap;gap:4px 14px;margin:6px 0 0;padding:0;font-size:.85rem;list-style:none;display:flex}@media (max-width:760px){.gmdss-root .trb-row .ptt-big{flex:100%;margin-left:0}}.gmdss-root .scn-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.gmdss-root .pill{background:var(--surface-2);border-radius:10px;padding:8px 10px;font-size:.92rem}.gmdss-root .situation summary{cursor:pointer;font-weight:700}.gmdss-root .step-dots{flex-wrap:wrap;gap:6px;margin:10px 0;padding:0;list-style:none;display:flex}.gmdss-root .step-dots li{border:2px solid var(--line);width:26px;height:26px;color:var(--muted);border-radius:50%;place-items:center;font-size:.8rem;font-weight:700;display:grid}.gmdss-root .step-dots li.done{background:var(--ok);border-color:var(--ok);color:#fff}.gmdss-root .step-dots li.cur{border-color:var(--accent);color:var(--accent)}.gmdss-root .now{background:color-mix(in srgb, var(--accent) 10%, transparent);border-left:4px solid var(--accent);border-radius:6px;padding:8px 10px;font-size:1.05rem}.gmdss-root .step-actions{flex-wrap:wrap;gap:6px;display:flex}.gmdss-root .hint,.gmdss-root .model{background:var(--surface-2);border-radius:8px;padding:8px 10px;font-size:.93rem}.gmdss-root .fb{border-radius:8px;margin-top:8px;padding:8px 10px}.gmdss-root .fb.ok{background:color-mix(in srgb, var(--ok) 12%, transparent)}.gmdss-root .fb.ko{background:color-mix(in srgb, var(--ko) 12%, transparent)}.gmdss-root .checklist{margin:6px 0 0;padding:0;font-size:.92rem;list-style:none}.gmdss-root .checklist li.ok{color:var(--ok)}.gmdss-root .checklist li.ko{color:var(--ko)}.gmdss-root .checklist li.warn{color:var(--warn)}.gmdss-root .checklist .why{color:var(--ink)}.gmdss-root .faults-live{padding-left:18px;font-size:.9rem}.gmdss-root .faults-live li,.gmdss-root .faults li{margin:3px 0}.gmdss-root .sev-critical{color:var(--ko);font-weight:700}.gmdss-root .sev-major{color:var(--ko)}.gmdss-root .sev-minor{color:var(--warn)}.gmdss-root .result-box{border-top:2px solid var(--line);margin-top:12px;padding-top:8px}.gmdss-root .score{font-size:1.1rem}.gmdss-root .result-actions{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.gmdss-root .log-title{margin:14px 0 4px;font-size:1rem}.gmdss-root .radio-log{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;max-height:320px;margin:0;padding:0;font-size:.9rem;list-style:none;overflow:auto}.gmdss-root .radio-log li{border-bottom:1px solid var(--line);padding:6px 8px}.gmdss-root .radio-log li.log-me{background:color-mix(in srgb, var(--accent) 8%, transparent)}.gmdss-root .radio-log li.log-coast strong{color:var(--mayday)}.gmdss-root .radio-log li.log-narr,.gmdss-root .radio-log li.log-sys{color:var(--muted);font-style:italic}.gmdss-root .radio-log li.unheard{opacity:.65}.gmdss-root .log-ch{color:#b9c7a3;background:#1f2a33;border-radius:4px;margin-right:6px;padding:0 4px;font:700 .72rem ui-monospace,monospace;display:inline-block}.gmdss-root .chart-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:8px}.gmdss-root .chart-frame{position:relative}.gmdss-root .chart-svg{cursor:crosshair;border-radius:6px;width:100%;height:auto;display:block}.gmdss-root .chart-tools{gap:4px;display:flex;position:absolute;top:8px;left:8px}.gmdss-root .chart-note{color:var(--muted);margin:4px 2px;font-size:.78rem}.gmdss-root .ch-sea{fill:#dcebf5}.gmdss-root .ch-land{fill:#efe2bd;stroke:#8b7a52}.gmdss-root .ch-shoal{fill:none;stroke:#7fb2d6}.gmdss-root .ch-contour{fill:none;stroke:#7aa3c2;opacity:.7}.gmdss-root .ch-grid{stroke:#143c5a2e}.gmdss-root .ch-frame{fill:none;stroke:#10202c}.gmdss-root .ch-scale-a{fill:#10202c}.gmdss-root .ch-scale-b{fill:#fff;stroke:#10202c;stroke-width:.6px}.gmdss-root .ch-lab,.gmdss-root .ch-title{fill:#10202c;font-family:system-ui,sans-serif;font-weight:600}.gmdss-root .ch-sounding{fill:#4b6478;font-family:Georgia,serif;font-style:italic}.gmdss-root .ch-rose circle{fill:none;stroke:#7a3d8c}.gmdss-root .ch-rose line{stroke:#7a3d8c}.gmdss-root .ch-rose-needle{fill:#7a3d8c}.gmdss-root .ch-port{fill:#fff;stroke:#10202c}.gmdss-root .ch-place{fill:#3b2f14;font-family:Georgia,serif;font-style:italic;font-weight:700}.gmdss-root .ch-light{fill:#c0268c}.gmdss-root .ch-light-dot{fill:#10202c}.gmdss-root .ch-lightlab{fill:#6a1a52;font-family:system-ui,sans-serif}.gmdss-root .ch-range-coast{fill:#1d6fb80d;stroke:#1d6fb8}.gmdss-root .ch-range-own{fill:#2a9d4b0f;stroke:#2a9d4b}.gmdss-root .ch-antenna{fill:#1d6fb8;stroke:#1d6fb8}.gmdss-root .ch-leader{stroke:#0d4d86;opacity:.7}.gmdss-root .ch-coastlab{fill:#0d4d86;paint-order:stroke;stroke:#ffffffbf;stroke-width:3px;font-family:system-ui,sans-serif;font-weight:700}.gmdss-root .ch-own{fill:#111;stroke:#fff}.gmdss-root .ch-ais{fill:#0a7d3b2e;stroke:#0a7d3b}.gmdss-root .ch-ais.merchant{fill:#0a4d9b2e;stroke:#0a4d9b}.gmdss-root .ch-noais{fill:#fff;stroke:#444}.gmdss-root .ch-vector{stroke:#222}.gmdss-root .ch-vlab{fill:#111;paint-order:stroke;stroke:#ffffffd9;stroke-width:3px;font-family:system-ui,sans-serif;font-weight:700}.gmdss-root .ch-vessel{cursor:pointer}.gmdss-root .ch-vessel.sel .ch-ais{stroke-width:3px;fill:#ffb00066}.gmdss-root .ch-distress{fill:none;stroke:#e3342f}.gmdss-root .ch-distress.pulse{animation:1.2s ease-in-out infinite gm-pulse}.gmdss-root .ch-mark{fill:none;stroke:#1d6fb8}.gmdss-root .ch-bearing{stroke:#e3342f}.gmdss-root .ch-distress-lab{fill:#b3261e;paint-order:stroke;stroke:#fff;stroke-width:3px;font-family:system-ui,sans-serif;font-weight:800}@keyframes gm-pulse{50%{opacity:.25}}@media (prefers-reduced-motion:reduce){.gmdss-root .ch-distress.pulse{animation:none}.gmdss-root .rcover{transition:none}}.gmdss-root .chart-wrap[data-mode=night] .ch-sea{fill:#0b1823}.gmdss-root .chart-wrap[data-mode=night] .ch-land{fill:#2b2a22;stroke:#6f6343}.gmdss-root .chart-wrap[data-mode=night] .ch-lab,.gmdss-root .chart-wrap[data-mode=night] .ch-title,.gmdss-root .chart-wrap[data-mode=night] .ch-place{fill:#c8b98f}.gmdss-root .chart-wrap[data-mode=night] .ch-own{fill:#ffd166}.gmdss-root .chart-wrap[data-mode=night] .ch-vlab{fill:#ffe6a8;stroke:#000000b3}.gmdss-root .chart-wrap[data-mode=night] .ch-grid{stroke:#c8be961f}.gmdss-root .chart-wrap[data-mode=fog] .chart-svg{filter:blur(.5px)contrast(.75)brightness(1.08)saturate(.6)}.gmdss-root .ais-head{margin-top:6px}.gmdss-root .ais-table{border-collapse:collapse;width:100%;font-size:.88rem}.gmdss-root .ais-table th,.gmdss-root .ais-table td{text-align:left;border-bottom:1px solid var(--line);padding:4px 6px}.gmdss-root .ais-table tr{cursor:pointer}.gmdss-root .ais-table tr.sel{background:color-mix(in srgb, var(--focus) 25%, transparent)}.gmdss-root .ais-table tr.risk td:nth-child(4){color:var(--ko);font-weight:800}.gmdss-root .ais-card{border:2px solid var(--focus);background:var(--surface);border-radius:10px;margin:8px 0;padding:8px 10px}.gmdss-root .ais-card-head{justify-content:space-between;align-items:center;display:flex}.gmdss-root .ais-card dl{grid-template-columns:auto 1fr;gap:2px 10px;margin:6px 0;font-size:.9rem;display:grid}.gmdss-root .ais-card dt{color:var(--muted)}.gmdss-root .ais-card dd{margin:0;font-weight:600}.gmdss-root .bc-details{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-top:10px;padding:8px 12px}.gmdss-root .bc-details summary{cursor:pointer;font-weight:700}.gmdss-root .bc-row{flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0;display:flex}.gmdss-root .num{width:5em;font:inherit;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:6px;padding:4px}.gmdss-root .num-out{min-width:5em;font-weight:700;display:inline-block}.gmdss-root .range-out{margin:4px 0;font-weight:600}.gmdss-root .epirb{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px;padding:10px 12px;display:flex}.gmdss-root .epirb-body{color:#1a1400;background:#f7c948;border-radius:10px;align-items:center;gap:8px;padding:6px 10px;font-weight:800;display:flex}.gmdss-root .epirb-led{background:#5a3b00;border-radius:50%;width:14px;height:14px}.gmdss-root .epirb-led.lit{background:#ff2d20;box-shadow:0 0 10px #ff2d20}.gmdss-root .epirb-status{color:var(--muted);font-size:.9rem}.gmdss-root .card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px}.gmdss-root .form-row{flex-wrap:wrap;align-items:end;gap:10px;margin:8px 0;display:flex}.gmdss-root .form-row label{flex-direction:column;gap:2px;font-size:.9rem;font-weight:600;display:flex}.gmdss-root .form-row input,.gmdss-root .form-row select,.gmdss-root .form-row textarea{font:inherit;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:8px;min-height:40px;padding:8px}.gmdss-root .room-code{letter-spacing:.15em;font:800 2rem ui-monospace,monospace}.gmdss-root .teacher{grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr);align-items:start;gap:16px;display:grid}.gmdss-root .students-table{border-collapse:collapse;width:100%;font-size:.9rem}.gmdss-root .students-table th,.gmdss-root .students-table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:6px}.gmdss-root .students-table tr.tx{background:color-mix(in srgb, var(--ko) 14%, transparent)}.gmdss-root .students-table tr.stuck td:first-child:after{content:" ⚠️"}.gmdss-root .suggestions{padding:0;list-style:none}.gmdss-root .suggestions li{border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;margin:4px 0;padding:6px 8px;display:flex}.gmdss-root .action-grid{flex-wrap:wrap;gap:6px;display:flex}.gmdss-root .legal{border-left:4px solid var(--warn);background:color-mix(in srgb, var(--warn) 10%, transparent);border-radius:6px;padding:8px 12px;font-size:.92rem}.gmdss-root .class-timer{font:800 1.4rem ui-monospace,monospace}.gmdss-root .blocks{counter-reset:b;padding:0;list-style:none}.gmdss-root .blocks li{border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;margin:4px 0;padding:6px 8px;display:flex}.gmdss-root .blocks li.cur{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.gmdss-root .blocks li.done{opacity:.7}.gmdss-root .video-frame{aspect-ratio:16/9;background:#000;border-radius:10px;position:relative;overflow:hidden}.gmdss-root .video-frame iframe,.gmdss-root .video-frame button{border:0;width:100%;height:100%;position:absolute;inset:0}.gmdss-root .video-frame button{color:#fff;cursor:pointer;background:#111;font:700 1.1rem system-ui,sans-serif}.gmdss-root .quiz-opts{flex-wrap:wrap;gap:8px;display:flex}.gmdss-root .quiz-opts .btn.right{background:var(--ok);color:#fff}.gmdss-root .quiz-opts .btn.wrong{background:var(--ko);color:#fff}.gmdss-root .medal{font-size:1.4rem}.gmdss-root .print-only{display:none}@media (max-width:1100px){.gmdss-root .sim{grid-template-columns:minmax(0,1fr)}.gmdss-root .sim-side{order:-1;max-height:none;position:static}.gmdss-root .sim-tabs{display:flex}.gmdss-root .sim-pane{display:none}.gmdss-root .sim-pane.active{display:block}.gmdss-root .sim-pane+.sim-pane{margin-top:0}.gmdss-root .teacher{grid-template-columns:minmax(0,1fr)}.gmdss-root .radio-log{max-height:220px}}@media (max-width:760px){.gmdss-root .hero,.gmdss-root .two-col{grid-template-columns:minmax(0,1fr)}.gmdss-root .app-main{padding:12px 16px}.gmdss-root .app-header nav{flex-wrap:nowrap;flex-basis:100%;order:3;overflow-x:auto}.gmdss-root .app-header nav a{white-space:nowrap}.gmdss-root .radio-wrap{flex-direction:column}.gmdss-root .handset-unit{display:none}.gmdss-root .vb-row{flex-wrap:wrap}.gmdss-root .vb-input{flex-basis:100%}.gmdss-root .vb-row .btn,.gmdss-root .vb-row .ptt-big{flex:1}}@media (min-width:761px){.gmdss-root .ptt-big.mobile-only{display:none}}@media print{.gmdss-root .app-header,.gmdss-root .app-footer,.gmdss-root .no-print{display:none!important}.gmdss-root .print-only{display:block}.gmdss-root{color:#000;background:#fff}}.gmdss-root .call-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.gmdss-root .call-bar .mini[aria-pressed=true]{outline:2px solid var(--accent)}.gmdss-root .call-banner{color:#5a3b00;background:#fff4d6;border-radius:8px;margin:8px 0 0;padding:8px 12px;font-weight:600}.gmdss-root .call-banner.mega{color:#7a1408;background:#ffe1dc}.gmdss-root .float-video{z-index:60;color:#fff;background:#0d1419;border:2px solid #28323c;border-radius:12px;width:240px;position:fixed;top:104px;right:16px;overflow:hidden;box-shadow:0 8px 28px #00000059}.gmdss-root .float-video[data-size=big]{width:min(560px,100vw - 32px)}.gmdss-root .float-video[data-size=min] .fv-body{display:none}.gmdss-root .float-video.talking{border-color:#ff5a3c}.gmdss-root .fv-head{cursor:move;touch-action:none;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:6px;padding:4px 6px 4px 10px;font-size:13px;display:flex}.gmdss-root .fv-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gmdss-root .fv-btn{color:#fff;cursor:pointer;background:#28323c;border:0;border-radius:6px;min-width:32px;min-height:28px;font-size:15px}.gmdss-root .fv-badge[hidden]{display:none}.gmdss-root .fv-badge{color:#fff;background:#ff5a3c;padding:3px 10px;font-size:12px;font-weight:700;display:block}.gmdss-root .fv-body{aspect-ratio:16/9;background:#000;place-items:center;display:grid}.gmdss-root .fv-video{object-fit:cover;width:100%;height:100%}.gmdss-root .fv-ph{opacity:.5;font-size:42px}.gmdss-root .video-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin-top:10px;display:grid}.gmdss-root .tile{border:2px solid var(--line);background:var(--surface-2);border-radius:10px;min-width:0;padding:6px}.gmdss-root .tile.tx{border-color:var(--mayday);box-shadow:0 0 0 2px #c6282840}.gmdss-root .tile.floor{border-color:var(--ok)}.gmdss-root .tile-media{aspect-ratio:16/9;background:#0d1419;border-radius:6px;place-items:center;display:grid;overflow:hidden}.gmdss-root .tile-media video{object-fit:cover;width:100%;height:100%}.gmdss-root .tile-ph{color:#fff;opacity:.7;font-size:26px;font-weight:700}.gmdss-root .tile-name{text-overflow:ellipsis;white-space:nowrap;margin-top:4px;overflow:hidden}.gmdss-root .tile-badges{flex-wrap:wrap;gap:4px;min-height:4px;margin:4px 0;display:flex}.gmdss-root .tile-badges .b{background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:1px 6px;font-size:11px}.gmdss-root .tile-badges .b.tx{background:var(--mayday);color:#fff;border-color:#0000}.gmdss-root .tile-actions{flex-wrap:wrap;gap:4px;display:flex}.gmdss-root .tile-actions .mini{padding:3px 7px;font-size:12px}.gmdss-root .consent{z-index:80;background:#0000008c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.gmdss-root .consent-card{max-width:560px;max-height:calc(100vh - 32px);overflow:auto}.gmdss-root .radio-full{z-index:70;background:var(--bg);padding:8px;position:fixed;inset:0;overflow:auto}.gmdss-root :fullscreen{background:var(--bg);padding:8px;overflow:auto}.gmdss-root .team-card{border-left:4px solid var(--accent)}.gmdss-root .role-pill{background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:2px 10px;font-weight:700;display:inline-block}.gmdss-root .teams-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.gmdss-root .teams-list .team{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;padding:8px 10px}.gmdss-root .teams-list select{max-width:100%}.gmdss-root .escape{border:2px solid #7a3cc2}.gmdss-root .escape-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.gmdss-root .escape-clock{font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:800}.gmdss-root .escape-clock.low{color:var(--mayday)}.gmdss-root .escape-steps{gap:4px;margin:8px 0;display:flex}.gmdss-root .escape-steps span{background:var(--line);border-radius:4px;flex:1;height:8px}.gmdss-root .escape-steps span.done{background:var(--ok)}.gmdss-root .escape-steps span.cur{background:#7a3cc2}.gmdss-root .spelled{flex-wrap:wrap;gap:6px;font-family:ui-monospace,monospace;font-size:1.1rem;display:flex}.gmdss-root .spelled span{background:var(--surface-2);border:1px solid var(--line);border-radius:6px;padding:4px 8px}.gmdss-root .flag-hoist{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.gmdss-root .ics-flag{filter:drop-shadow(0 1px 1px #00000040);display:block}.gmdss-root .escape-story{padding-left:18px}.gmdss-root .escape-story li{margin:4px 0}.gmdss-root .escape-story li:last-child{font-weight:700}.gmdss-root .escape-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:12px;display:grid}.gmdss-root .cancel-opts{gap:6px;display:grid}.gmdss-root .cancel-opts .btn{text-align:left}.gmdss-root .cancel-opts .btn[data-order]{outline:2px solid var(--ok)}.gmdss-root .progress-bar{background:var(--line);border-radius:5px;min-width:80px;height:10px;overflow:hidden}.gmdss-root .progress-bar i{background:#7a3cc2;height:100%;display:block}.gmdss-root .check-list{padding-left:18px}.gmdss-root .check-list .no{color:var(--ko)}.gmdss-root .check-list .ok{color:var(--ok)}@media (max-width:900px){.gmdss-root .escape-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:760px){.gmdss-root .float-video{width:168px;top:auto;bottom:12px;right:8px}.gmdss-root .fv-head{padding:2px 4px 2px 8px;font-size:11px}.gmdss-root .fv-btn{min-width:26px;min-height:26px;font-size:13px}.gmdss-root .video-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}@media print{.gmdss-root .float-video,.gmdss-root .consent{display:none!important}}.gmdss-root .table-scroll{max-width:100%;overflow-x:auto}.gmdss-root .form-row label{min-width:0;max-width:100%}.gmdss-root .form-row input:not([type=checkbox]):not([type=radio]),.gmdss-root .form-row select{box-sizing:border-box;max-width:100%}.gmdss-root .escape .fb:empty{display:none}.gmdss-root .fv-tools{flex:none;gap:4px;display:flex}
