html,body{margin:0;height:100%;overflow:hidden;background:#9cc3dd;font-family:system-ui,-apple-system,Segoe UI,sans-serif}canvas{display:block}#hud{position:fixed;top:12px;left:12px;padding:10px 14px;border-radius:8px;background:#0a19289e;color:#eef4f8;font-size:13px;line-height:1.55;font-variant-numeric:tabular-nums;pointer-events:none;min-width:190px}#hud .big{font-size:28px;font-weight:600}#hud .row{display:flex;justify-content:space-between;gap:16px}#hud .legend{margin-top:8px;padding-top:6px;border-top:1px solid rgba(255,255,255,.15)}#hud .legend i{display:inline-block;width:10px;height:3px;margin:0 7px 3px 0;border-radius:2px;box-shadow:0 0 0 1px #ffffff59}#hud .muted{color:#9fb4c4}#instruments{position:fixed;right:12px;bottom:52px;width:480px;max-width:calc(100% - 32px);pointer-events:none}#instruments[hidden]{display:none}#capsized{position:fixed;top:30%;left:50%;transform:translate(-50%);padding:10px 16px;border-radius:8px;background:#961414d9;color:#fff;font-size:15px;pointer-events:none;max-width:calc(100% - 56px);text-align:center}#capsized[hidden]{display:none}#tuning{position:fixed;top:12px;right:12px;display:flex;flex-direction:column;gap:10px;padding:10px 14px;border-radius:8px;background:#0a19289e;color:#eef4f8;font-size:13px;width:200px}#tuning label{display:flex;flex-direction:column;gap:4px}#tuning label span{display:flex;justify-content:space-between}#tuning output{font-variant-numeric:tabular-nums;color:#9fd8ff}#tuning input{width:100%;accent-color:#3b8fff}@media(max-width:700px){#instruments{position:fixed;right:12px;bottom:52px;width:480px;max-width:calc(100% - 32px);pointer-events:none}#instruments[hidden]{display:none}#capsized{position:fixed;top:30%;left:50%;transform:translate(-50%);padding:10px 16px;border-radius:8px;background:#961414d9;color:#fff;font-size:15px;pointer-events:none;max-width:calc(100% - 56px);text-align:center}#capsized[hidden]{display:none}#tuning{top:auto;bottom:64px;width:160px}}#dock{position:fixed;bottom:60px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;max-width:calc(100% - 600px);pointer-events:none}#dock>*{pointer-events:auto}#keystrip{display:flex;align-items:baseline;gap:10px;max-width:640px;padding:5px 10px;border-radius:6px;background:#0a1928d1;color:#dfe9f0;font-size:12px;line-height:20px}#keystrip .ks-list{display:flex;flex-wrap:wrap;justify-content:center;column-gap:14px}#keystrip.collapsed .ks-list{display:none}#keystrip .ks-list span{white-space:nowrap}#keystrip kbd{display:inline-block;min-width:14px;margin-right:5px;padding:0 4px;border-radius:3px;background:#ffffff29;color:#fff;font:600 11px/16px system-ui,sans-serif;text-align:center}#keystrip .ks-toggle{flex:none;padding:0 6px;border:0;border-radius:4px;background:#ffffff14;color:#9fb4c4;font:600 11px/18px system-ui,sans-serif;cursor:pointer}#keystrip .ks-toggle:hover{background:#ffffff2e}#hint{padding:7px 14px;border-radius:6px;background:#3c2305c7;border:1px solid rgba(255,196,80,.55);color:#ffe2a8;font-size:14px;font-weight:600;text-align:center}#dock>#hint{pointer-events:none}#hint[hidden]{display:none}#hud .hud-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}#hud .phase{margin:2px 0 4px;font-size:14px;font-weight:600}#hud .phase.warn{color:#ffc98a}#hud .phase.ok{color:#9ff0c2}#hud .phase.turn{color:#9fd8ff}#hud .phase.call{color:#ffe27a}#hud .dial-box{display:flex;align-items:center;gap:6px}#hud .dial-cap{font-size:11px;line-height:1.45;color:#9fb4c4;white-space:nowrap}#hud .dial-cap b{color:#eef4f8}#hud .dial-cap i{display:inline-block;width:8px;height:8px;margin-right:5px;border-radius:50%}#hud .dial .d-rim{fill:#ffffff0d;stroke:#ffffff4d}#hud .dial .d-nogo,#hud .d-key-nogo{fill:#ff5a4652;background:#ff5a4680}#hud .dial .d-boat{fill:#eef4f8}#hud .dial .d-wind{stroke:#3b8fff;stroke-width:3}#hud .dial .d-wind-head{fill:#3b8fff}#hud .dial .d-target{fill:none;stroke:#9ff0c2;stroke-width:2}#hud .dial{pointer-events:auto;cursor:crosshair}#hud .dial .d-bug{fill:#ff9f43}#hud .d-key-bug{background:#ff9f43}#hud .d-key-target{border:2px solid #9ff0c2;box-sizing:border-box}#hud .dial .d-next{fill:none;stroke:#ffe27a;stroke-width:1.5;stroke-dasharray:3 2}#hud .d-key-next{border:1.5px dashed #ffe27a;box-sizing:border-box}@media(max-width:700px){#tuning{position:fixed;top:12px;right:12px;display:flex;flex-direction:column;gap:10px;padding:10px 14px;border-radius:8px;background:#0a19289e;color:#eef4f8;font-size:13px;width:200px}#tuning label{display:flex;flex-direction:column;gap:4px}#tuning label span{display:flex;justify-content:space-between}#tuning output{font-variant-numeric:tabular-nums;color:#9fd8ff}#tuning input{width:100%;accent-color:#3b8fff}#instruments{position:fixed;right:12px;bottom:52px;width:480px;max-width:calc(100% - 32px);pointer-events:none}#instruments[hidden]{display:none}#capsized{position:fixed;top:30%;left:50%;transform:translate(-50%);padding:10px 16px;border-radius:8px;background:#961414d9;color:#fff;font-size:15px;pointer-events:none;max-width:calc(100% - 56px);text-align:center}#capsized[hidden]{display:none}#tuning{top:auto;bottom:64px;width:160px}#dock{max-width:calc(100% - 24px)}}#tuning select{width:100%;font:inherit;color:#eef4f8;background:#0a1928cc;border:1px solid rgba(255,255,255,.25);border-radius:4px;padding:2px 4px}#tuning label[hidden]{display:none}#credits{position:fixed;right:12px;bottom:12px;display:flex;align-items:center;gap:8px;max-width:300px;z-index:3;padding:3px 8px;border-radius:4px;background:#00000059;color:#fff;font-size:11px;pointer-events:none}#credits img{height:18px}#credits span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#credits[hidden]{display:none}#minimap{position:fixed;left:12px;bottom:44px;width:220px;height:220px;border-radius:8px;overflow:hidden;box-shadow:0 2px 10px #00000059;background:#9ccbe8;z-index:2}#minimap[hidden]{display:none}#minimap canvas{width:100%;height:100%;cursor:crosshair}#minimap .mm-buttons{position:absolute;top:6px;right:6px;display:flex;gap:4px}#minimap button{min-width:24px;height:24px;padding:0 6px;border:0;border-radius:4px;background:#0a1928bf;color:#eef4f8;font:600 13px system-ui,sans-serif;cursor:pointer}#minimap .mm-pos{position:absolute;bottom:26px;left:8px;color:#fff;font-size:11px;font-variant-numeric:tabular-nums;text-shadow:0 0 3px #000,0 0 2px #000;pointer-events:none}#minimap .mm-foot{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:6px;padding:2px 6px;background:#00000073;color:#fff;font-size:10px;white-space:nowrap;pointer-events:none}#minimap .mm-foot img{height:16px}#minimap .mm-copy{overflow:hidden;text-overflow:ellipsis}body.has-credits #dock{max-width:calc(100% - 704px)}#hud .tag{margin-left:8px;padding:1px 6px;border-radius:4px;font-size:11px;font-weight:600;letter-spacing:.04em;vertical-align:middle;background:#ffffff26}#hud .tag.ok{background:#3ddc844d;color:#b9f5d3}#hud .tag.warn{background:#ff8c1a4d;color:#ffd9b0}#hud .section{margin-top:8px;padding-top:5px;border-top:1px solid rgba(255,255,255,.15);font-weight:600}#hud .section .muted{font-weight:400}#hud table{border-collapse:collapse;font-size:12px;line-height:1.4}#hud th,#hud td{padding:0 0 0 10px;text-align:right;white-space:nowrap}#hud th{font-weight:500;color:#9fb4c4}#hud tr th:first-child{padding-left:0;text-align:left}#hud table i{display:inline-block;width:10px;height:3px;margin:0 6px 3px 0;border-radius:2px;box-shadow:0 0 0 1px #ffffff59}#ac75-chart{position:fixed;right:12px;bottom:12px;pointer-events:none}#ac75-chart[hidden]{display:none}#toggles{position:fixed;top:320px;right:12px;width:228px;box-sizing:border-box;padding:8px 10px;border-radius:8px;background:#0a19289e;color:#eef4f8;font-size:12px;display:flex;flex-direction:column;gap:3px;overflow-y:auto}#toggles .tg-group{margin:2px 0 1px;color:#9fb4c4;font-size:11px;text-transform:uppercase;letter-spacing:.06em}#toggles .tg-group+button{margin-top:0}#toggles button{display:flex;align-items:center;gap:8px;width:100%;padding:3px 6px;border:0;border-radius:5px;background:#ffffff0d;color:#c9d6df;font:inherit;text-align:left;cursor:pointer}#toggles button:hover{background:#ffffff1f}#toggles button[hidden]{display:none}#toggles button.disabled{opacity:.45;cursor:default}#toggles kbd{min-width:18px;padding:0 4px;border-radius:3px;background:#ffffff24;color:#eef4f8;font:600 10px/16px system-ui,sans-serif;text-align:center}#toggles kbd.tg-nokey{background:none}#toggles .tg-label{flex:1}#toggles .tg-state{min-width:44px;padding:0 5px;border-radius:4px;background:#ffffff1a;color:#9fb4c4;font:600 10px/16px system-ui,sans-serif;letter-spacing:.05em;text-align:center}#toggles button.on .tg-state{background:#3ddc844d;color:#b9f5d3}#toggles button.on .tg-label{color:#eef4f8}#menu{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box;background:#050e1873}#menu[hidden]{display:none}#menu .mn-panel{width:380px;max-width:100%;max-height:100%;overflow-y:auto;box-sizing:border-box;padding:12px 16px 14px;border-radius:10px;background:#0a1928e6;box-shadow:0 6px 30px #00000073;color:#eef4f8;font-size:13px}#menu .mn-head{display:flex;align-items:center;justify-content:space-between;font-size:18px;font-weight:600}#menu .mn-head .mn-close{width:28px;height:28px;padding:0;justify-content:center;background:transparent;font-size:20px;line-height:1}#menu .mn-group{margin:12px 0 5px;color:#9fb4c4;font-size:11px;text-transform:uppercase;letter-spacing:.06em}#menu button{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border:0;border-radius:6px;background:#ffffff0f;color:#c9d6df;font:inherit;text-align:left;cursor:pointer}#menu button:hover{background:#ffffff21;color:#eef4f8}#menu .mn-actions{display:flex;gap:6px;margin-top:10px}#menu .mn-actions button{flex:1;justify-content:center;padding:8px;font-weight:600}#menu .mn-actions .mn-resume{background:#3b8fff59;color:#eef4f8}#menu .mn-actions .mn-resume:hover{background:#3b8fff80}#menu .mn-crafts,#menu .mn-places{display:flex;flex-direction:column;gap:4px}#menu .mn-name{min-width:64px;font-weight:600;color:#eef4f8}#menu .mn-detail{flex:1;color:#9fb4c4}#menu button.current{background:#3ddc8424;box-shadow:inset 0 0 0 1px #3ddc8473;color:#eef4f8}#menu .mn-tag{padding:0 6px;border-radius:4px;background:#3ddc844d;color:#b9f5d3;font:600 10px/16px system-ui,sans-serif;letter-spacing:.05em}#menu .mn-keys{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;font-size:12px;color:#c9d6df}#menu .mn-keys div{display:flex;align-items:baseline;gap:7px}#menu .mn-panel[hidden]{display:none}#menu .mn-keymap{width:480px}#menu .mn-head .mn-back{width:auto;padding:4px 10px;font-size:13px}#menu .mn-layouts{display:flex;gap:4px}#menu .mn-layouts button{justify-content:center}#menu .mn-layout-note,#menu .mn-keys-help{margin-top:6px;font-size:12px}#menu .mn-keys-help{color:#c9d6df}#menu .mn-keyrow{display:grid;grid-template-columns:1fr 92px 92px;align-items:center;gap:4px 6px;padding:1px 0}#menu .mn-keylabel{color:#c9d6df}#menu .mn-keyrow.clash .mn-keylabel{color:#ffb3a8}#menu .mn-clashnote{grid-column:1 / -1;margin-top:-2px;color:#ff8a7a;font-size:11px}#menu .mn-keyslot{justify-content:center;min-height:24px;padding:3px 6px;font-size:11px}#menu .mn-keyslot.empty{color:#7f95a6}#menu .mn-keyslot.waiting{background:#ffc43d4d;box-shadow:inset 0 0 0 1px #ffc43dcc;color:#ffe3a0}#menu .mn-keyslot.clash kbd{background:#ff5a468c}#menu .mn-conflict-note{color:#ff8a7a}#menu kbd{flex:none;min-width:18px;padding:0 4px;border-radius:3px;background:#ffffff24;color:#eef4f8;font:600 10px/16px system-ui,sans-serif;text-align:center}#foil-panel[hidden]{display:none}#foil-panel{padding:6px 10px 8px;border-radius:8px;background:#0a19289e;color:#eef4f8;font-size:12px;user-select:none}#foil-panel .fp-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px;color:#9fb4c4;font-size:11px;text-transform:uppercase;letter-spacing:.06em}#foil-panel .fp-help{max-width:280px;margin-bottom:5px;color:#c9d6e0;font-size:11px;line-height:1.35}#foil-panel.fp-manual .fp-help{color:#ffe2a8}#foil-panel .fp-arms{display:flex;gap:14px}#foil-panel .fp-arm{display:flex;flex-direction:column;gap:3px;min-width:120px}#foil-panel .fp-role{color:#9fb4c4;font-size:11px}#foil-panel .fp-read{display:flex;justify-content:space-between;font:600 15px/18px system-ui,sans-serif}#foil-panel .fp-target{color:#ffd27a}#foil-panel .fp-row{display:flex;gap:4px}#foil-panel button{flex:1;padding:3px 6px;border:0;border-radius:5px;background:#ffffff14;color:#eef4f8;font:600 11px/16px system-ui,sans-serif;cursor:pointer}#foil-panel button:hover{background:#ffffff2e}#foil-panel .fp-head button{flex:none;min-width:48px}#foil-panel .fp-head button.fp-on{background:#ffc45059;color:#ffe2a8}body{--display-w: clamp(300px, 34vw, 460px)}body.hud-on{--display-w: clamp(280px, 28vw, 400px)}.station-display{--w: var(--display-w);position:fixed;top:12px;left:12px;width:var(--w);border-radius:6px;border:2px solid #1d2a36;box-shadow:0 2px 10px #0006}body.hud-on .station-display{top:auto;bottom:60px}body.hud-on:has(.station-display) #minimap{left:calc(var(--display-w) + 4px + 24px);bottom:60px}body.hud-on:has(.station-display):has(#minimap:not([hidden])) #dock{left:calc((var(--display-w) + 4px + 24px + 220px + 12px + 100% - 252px) / 2);max-width:calc(100% - 252px - var(--display-w) - 4px - 24px - 220px - 24px)}@media(max-width:1100px){body:not(.hud-on) #dock{left:calc((100% - 252px)/2);max-width:calc(100% - 276px)}body.hud-on #dock{max-width:calc(100% - 524px)}body.hud-on{--display-w: 240px}}.station-console{width:clamp(320px,36vw,480px);max-width:100%;border-radius:6px;border:2px solid #1d2a36;cursor:pointer;touch-action:none}#crew-panel{position:fixed;top:calc(28px + clamp(300px,34vw,460px)/1.6);left:12px;width:360px;padding:8px 10px;border-radius:6px;background:#05090dc7;color:#c9d6e2;font:500 12px/1.5 system-ui,sans-serif}body.hud-on #crew-panel{top:auto;bottom:calc(76px + clamp(280px,28vw,400px)/1.6);width:280px}#crew-panel .row{display:flex;justify-content:space-between;gap:8px}#crew-panel .row.mine{color:#b9f5d3}#crew-panel .muted{color:#6f8597}#crew-panel .cp-link{margin-bottom:4px;color:#7fb4d8}#crew-panel .cp-link.warn{color:#ff8a7a}#net-status{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#05090d;color:#c9d6e2;font:500 16px system-ui,sans-serif;text-align:center;padding:24px}#net-status.room-ask .room-card{display:flex;flex-direction:column;gap:12px;max-width:360px}#net-status.room-ask h2{margin:0;font-size:20px;color:#e6eef6}#net-status.room-ask p{margin:0;color:#9fb2c4}#net-status.room-ask input{font:600 24px ui-monospace,monospace;letter-spacing:.2em;text-align:center;text-transform:uppercase;padding:10px;border-radius:6px;border:1px solid #36506a;background:#0c1620;color:#e6eef6}#net-status.room-ask .room-row{display:flex;gap:8px;justify-content:center}#net-status.room-ask button{font:600 15px system-ui,sans-serif;padding:9px 16px;border-radius:6px;border:1px solid #36506a;background:#16324a;color:#e6eef6;cursor:pointer}#net-status.room-ask button.room-alone{background:transparent;color:#9fb2c4}#menu .mn-join{display:flex;flex-direction:column;gap:6px}#menu .mn-join label{display:flex;align-items:center;gap:8px;color:#9fb4c4}#menu .mn-join input[type=text]{flex:1;padding:5px 7px;border:1px solid #2c3a47;border-radius:5px;background:#ffffff0d;color:#eef4f8;font:inherit}#menu .mn-join .mn-join-note{color:#9fb4c4;font-size:12px}#menu button:disabled{opacity:.45;cursor:default}#menu-button{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:20;padding:10px 18px;border:1px solid rgba(159,216,255,.5);border-radius:8px;background:#0a1928cc;color:#eef4f8;font:600 16px system-ui,sans-serif;cursor:pointer}#hud canvas.boat-diagram{display:block;width:460px;height:270px;margin:4px 0 6px;border-radius:6px;pointer-events:auto;cursor:crosshair}#race{position:fixed;top:12px;left:50%;transform:translate(-50%);min-width:260px;max-width:min(520px,46vw);padding:8px 16px 10px;border-radius:8px;background:#05090dc7;border:1px solid #1d2a36;color:#eef3f8;text-align:center;font-variant-numeric:tabular-nums;pointer-events:none}#race .race-big{font:600 30px/1.1 ui-monospace,monospace}#race .race-line{font-size:13px;color:#9fb4c4;margin-top:2px}#race .race-warn{margin-top:6px;padding:3px 8px;border-radius:4px;background:#4a1414;color:#ff8a7a;font-size:14px;font-weight:600}#race .race-signal{margin-top:6px;color:#ffe27a;font-size:14px;font-weight:600}.traci-panel{position:fixed;top:12px;right:252px;width:clamp(170px,15vw,240px);border-radius:6px;border:2px solid #1d2a36;box-shadow:0 2px 10px #0006;pointer-events:none}#desk-diagram{position:fixed;right:12px;bottom:36px;width:clamp(280px,30vw,440px);border-radius:6px;border:2px solid #1d2a36;box-shadow:0 2px 10px #0006;cursor:crosshair;z-index:5}#view-note{position:fixed;top:40%;left:50%;transform:translate(-50%);padding:8px 14px;border-radius:6px;background:#0a1928d9;color:#eef4f8;font:600 15px system-ui,sans-serif;z-index:30;pointer-events:none}.traci-panel[hidden],#desk-diagram[hidden]{display:none}#results-card{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:8px;border:2px solid #1d2a36;box-shadow:0 4px 24px #0000008c;background:#05090d;z-index:20;line-height:0;max-width:calc(100vw - 32px)}#results-card canvas{max-width:100%;height:auto!important;border-radius:6px}#results-card[hidden]{display:none}#results-card .rc-close{position:absolute;top:6px;right:8px;width:30px;height:30px;border:0;border-radius:4px;background:transparent;color:#9fb4c4;font:22px/30px system-ui,sans-serif;cursor:pointer}#results-card .rc-close:hover{background:#1d2a36;color:#eef3f8}#race .race-progress{color:#cfe0ec;margin-top:4px}#menu .mn-results .mn-sub{margin:6px 0 4px;font-size:12px;color:#9fb4c4}#menu .mn-table{width:100%;border-collapse:collapse;font-size:12.5px;margin-bottom:6px}#menu .mn-table td{padding:3px 6px 3px 0;border-bottom:1px solid #1d2a36;vertical-align:top}#menu .mn-table .mn-num{font:600 13px ui-monospace,monospace;text-align:right;white-space:nowrap}#menu .mn-table .mn-dim{color:#9fb4c4;white-space:nowrap}#menu .mn-results .mn-clear{margin-top:4px}
