:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#edf1ee;color-scheme:dark;font-synthesis:none;--line:rgba(220,234,235,.17);--amber:#e6b56c;--muted:#aabec5}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#172e3a}button,input{font:inherit}button{cursor:pointer;color:inherit}button:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid var(--amber);outline-offset:3px}button{border:1px solid var(--line);background:rgba(23,43,52,.55);border-radius:4px;padding:10px 15px;font-size:12px}button:hover{background:rgba(65,89,98,.85)}#simulator,#sea{width:100%;height:100%;display:block}#sea{touch-action:none;outline:none}.panel{background:linear-gradient(125deg,rgba(21,41,50,.89),rgba(22,42,51,.71));border:1px solid var(--line);box-shadow:0 5px 25px #10232d18;backdrop-filter:blur(9px)}.masthead{position:absolute;top:20px;left:24px;right:24px;display:flex;justify-content:space-between;align-items:center;padding:11px 16px;border-radius:5px}.brand{display:flex;align-items:center;gap:13px;letter-spacing:.19em;font-size:13px;font-weight:650}.brand small{display:block;color:var(--muted);font-size:8px;letter-spacing:.25em;margin-top:4px}.anchor{font-size:25px;font-weight:400;opacity:.85;padding-right:13px;border-right:1px solid var(--line)}.header-actions{display:flex;gap:7px}.header-actions button{padding:8px 12px;font-size:11px}.mission{position:absolute;left:24px;top:104px;width:285px;padding:19px 20px;border-radius:4px}.eyebrow{color:var(--amber);font-size:9px;font-weight:600;letter-spacing:.17em}h1{font-size:24px;letter-spacing:-.03em;margin:9px 0 8px;font-weight:500}.mission p{font-size:12px;line-height:1.7;color:#d4e0e1;margin:0 0 19px;max-width:210px}.mission-meta{border-top:1px solid var(--line);padding-top:12px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:.06em;color:var(--muted)}.compass{position:absolute;top:104px;left:50%;transform:translateX(-50%);width:310px;border-radius:4px;padding:9px 14px;display:flex;justify-content:space-between;align-items:center;font-size:9px;color:var(--muted)}.compass strong{font-size:17px;color:#fff;font-weight:500;border-top:2px solid var(--amber);padding-top:5px;margin-top:-3px}.weather{position:absolute;top:111px;right:28px;font-size:9px;font-weight:600;letter-spacing:.08em;text-shadow:0 1px 4px #00121d}.weather-dot{display:inline-block;width:5px;height:5px;background:var(--amber);border-radius:50%;vertical-align:middle;margin-right:5px}.weather-divider{padding:0 8px;opacity:.45}.camera-actions{position:absolute;right:24px;bottom:178px;display:flex;gap:5px}.camera-actions .selected{color:var(--amber);border-color:#b89663;background:#273f49d9}.helm{position:absolute;left:50%;bottom:62px;transform:translateX(-50%);width:min(750px,calc(100% - 48px));padding:18px 23px;display:grid;grid-template-columns:1fr 1.1fr 1.6fr 1.2fr;border-radius:5px;gap:22px}.helm>div,.helm>label{border-left:1px solid var(--line);padding-left:22px}.helm>.readout:first-child{border-left:0;padding-left:0}.helm span,.throttle-control>span{font-size:8px;letter-spacing:.11em;color:var(--muted)}.readout>span,.throttle-control>span,.rudder-control>span{display:block;margin-bottom:8px}.readout strong{display:block;font-size:25px;font-weight:450;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.readout strong span{font-size:11px;color:#d9e6e5;letter-spacing:0}.readout small,.rudder-control small{display:block;font-size:7px;color:var(--muted);letter-spacing:.06em;margin-top:7px}.throttle-control input{display:block;width:100%;accent-color:var(--amber);height:16px;margin:10px 0 8px;cursor:pointer}.throttle-control strong{font-size:10px;font-weight:500;color:var(--amber);letter-spacing:.04em}.rudder-buttons{display:flex;align-items:center;justify-content:space-between;gap:9px}.rudder-buttons button{padding:7px 10px;font-size:10px;touch-action:none;user-select:none}.rudder-buttons strong{font-size:16px;font-weight:400;font-variant-numeric:tabular-nums}.rudder-control small{display:flex;justify-content:space-between}.rudder-control small span{font-size:7px;letter-spacing:.06em}footer{position:absolute;bottom:18px;left:24px;right:24px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:9px;color:#d4e4e6;text-shadow:0 1px 4px #00121d}kbd{font:inherit;border:1px solid #9cb4bf80;padding:2px 4px;border-radius:2px;margin-right:3px}footer i{display:inline-block;width:17px}footer button{font-size:10px;padding:8px 11px}footer button span{margin-left:10px}#loading,#paused,#failure{position:absolute;inset:0;background:#172e3a;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;font-size:12px;color:var(--muted);z-index:5}.loading-title{font-size:18px;color:#e9efee;letter-spacing:.23em}#paused{background:#102735a8;backdrop-filter:blur(4px)}#paused strong{font-size:23px;color:#e9efee;font-weight:450}#paused button{background:#25434d}#failure{padding:30px;text-align:center}#failure h2{color:#f3f5f0;font-size:20px}[hidden]{display:none!important}@media(min-width:1600px){.mission{top:116px;left:32px}.masthead{left:32px;right:32px;top:24px}}@media(max-width:850px){.weather{display:none}.compass{left:auto;right:20px;transform:none;width:210px}.mission{width:245px;padding:15px}.mission h1{font-size:21px}.mission-meta{font-size:7px}.helm{gap:13px;padding:15px}.helm>div,.helm>label{padding-left:13px}.readout strong{font-size:21px}.camera-actions{bottom:168px}.key-hints{font-size:8px}footer i{width:7px}}@media(max-width:560px){.masthead{top:12px;left:12px;right:12px;padding:9px 11px}.brand{font-size:10px;gap:8px;letter-spacing:.14em}.brand small{font-size:7px}.anchor{font-size:19px;padding-right:8px}.header-actions button{padding:7px 8px;font-size:10px}.mission{left:12px;top:87px;width:220px;padding:13px 15px}.mission h1{font-size:20px;margin:7px 0}.mission p{font-size:11px;margin-bottom:12px}.mission-meta{font-size:7px}.eyebrow{font-size:8px}.compass{top:87px;right:12px;width:87px;padding:9px}.compass>span{display:none}.compass>strong{width:100%;text-align:center}.helm{width:calc(100% - 24px);bottom:62px;grid-template-columns:1fr 1fr;gap:12px;padding:13px 15px}.helm>div,.helm>label{padding-left:0;border-left:0}.helm .throttle-control,.helm .rudder-control{border-top:1px solid var(--line);padding-top:11px}.helm .readout>span{margin-bottom:5px}.readout strong{font-size:23px}.readout small{font-size:7px}.camera-actions{bottom:267px;right:12px}.camera-actions button{font-size:11px;padding:9px 12px}.key-hints{display:none}footer{bottom:16px;left:12px;right:12px;justify-content:flex-end}.rudder-buttons button{padding:9px 17px}.helm span{font-size:8px}}@media(max-height:520px){.masthead{top:10px;left:12px;right:12px;padding:7px 11px}.mission{top:71px;left:12px;padding:10px 13px;width:230px}.mission h1{font-size:19px;margin:6px 0}.mission p{margin-bottom:9px;font-size:10px}.mission-meta{padding-top:8px}.compass{top:71px;right:12px;left:auto;transform:none;width:200px}.weather{display:none}.helm{bottom:44px;padding:10px 15px;width:min(660px,calc(100% - 24px));gap:13px;grid-template-columns:1fr 1fr 1.4fr 1.2fr}.helm>div,.helm>label{border-top:0;padding-top:0}.readout strong{font-size:21px}.helm>div,.helm>label{padding-left:8px}.helm .readout:first-child{padding-left:0}.readout small{display:none}.camera-actions{bottom:139px;right:12px}.camera-actions button{padding:7px 11px}footer{bottom:9px;font-size:8px}.key-hints{display:none}footer button{padding:6px 10px}}
/* Passage instruments */
.leg-progress{display:flex;align-items:center;gap:5px;margin:0 0 14px}.leg-progress>span{font-size:9px;padding:4px 5px;border:1px solid var(--line);border-radius:3px;color:var(--muted)}.leg-progress>span.current{color:var(--amber);border-color:#e6b56c88}.leg-progress>span.done{color:#96d3b4;border-color:#96d3b488}.leg-progress>span.failed{color:#f6a08f;border-color:#f6a08f88}.leg-progress>i{width:9px;height:1px;background:var(--line)}.leg-progress>small{margin-left:5px;font-size:7px;letter-spacing:.05em;color:var(--muted)}
.nav-toggle{position:absolute;right:24px;top:143px;padding:8px 12px;font-size:10px;background:#1b3541cf}.nav-toggle>span{margin-left:14px;color:var(--amber)}.navigation{position:absolute;right:24px;top:184px;width:282px;border-radius:5px;overflow:hidden}.nav-title{display:flex;justify-content:space-between;padding:13px 12px 10px;color:var(--muted);font-size:8px;letter-spacing:.1em}.nav-title small{font-size:7px;letter-spacing:0;color:#809ca6}#chart{display:block;width:280px;height:184px}.nav-readouts{display:grid;grid-template-columns:1.2fr 1fr 1fr;padding:13px 12px;border-bottom:1px solid var(--line);gap:10px}.nav-readouts span{display:block;color:var(--muted);font-size:7px;letter-spacing:.05em;margin-bottom:5px}.nav-readouts strong{font-size:15px;font-weight:450;font-variant-numeric:tabular-nums}.pilot-settings{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 12px 8px}.pilot-settings label{font-size:7px;letter-spacing:.1em;color:var(--muted)}.pilot-settings input{display:block;width:100%;margin-top:6px;padding:7px 9px;background:#0c2431;color:#eff3ee;border:1px solid var(--line);border-radius:3px;font-size:13px;font-variant-numeric:tabular-nums}.pilot-settings button{grid-column:1/-1;padding:7px;font-size:10px}.pilot-toggle{display:block;width:calc(100% - 24px);margin:0 12px;padding:9px 5px;border-color:#d4aa6877;color:var(--amber);font-size:10px}.pilot-toggle[aria-pressed=true]{background:#d4aa6822}.pilot-note{font-size:8px;line-height:1.5;color:var(--muted);margin:9px 12px 12px}.mission p{margin-bottom:12px}
@media(max-width:850px){.nav-toggle{right:20px;top:156px}.navigation{right:20px;top:194px;z-index:2;max-height:calc(100% - 214px);overflow-y:auto}}
@media(max-width:560px){.leg-progress{margin-bottom:10px;gap:4px}.leg-progress>small{font-size:6px}.mission{width:220px}.mission p{font-size:10px;line-height:1.55}.nav-toggle{right:12px;top:144px;padding:8px;font-size:9px}.nav-toggle>span{margin-left:5px}.navigation{right:12px;top:184px;max-height:calc(100% - 202px)}.nav-title{padding:10px 12px}}
@media(max-height:520px){.nav-toggle{top:126px;right:12px}.navigation{top:71px;right:125px;max-height:calc(100% - 86px);z-index:2;overflow-y:auto}.leg-progress{margin-bottom:8px}.leg-progress>span{padding:2px 4px}.leg-progress>small{font-size:6px}.mission p{margin-bottom:7px}}
@media(max-width:560px) and (min-height:521px){.navigation{max-height:calc(100% - 450px)}#chart{width:210px;height:138px;margin:0 auto}.navigation-open .mission{visibility:hidden}}
@media(max-height:520px){.navigation{display:grid;grid-template-columns:1fr 1fr;width:360px;max-height:calc(100% - 226px)}.navigation .nav-title,.navigation .pilot-note{display:none}#chart{grid-column:1;grid-row:2;width:166px;height:109px;margin:0 auto}.nav-readouts{grid-column:1;grid-row:1;padding:8px;gap:5px}.nav-readouts span{font-size:6px;margin-bottom:4px}.nav-readouts strong{font-size:12px}.pilot-settings{grid-column:2;grid-row:1 / span 2;padding:8px;gap:6px;align-self:start}.pilot-settings input{margin-top:4px;padding:6px 7px;font-size:12px}.pilot-settings button{padding:6px;font-size:9px}.pilot-toggle{grid-column:2;grid-row:2;align-self:end;width:calc(100% - 16px);margin:0 8px 8px;padding:8px 3px;font-size:9px}.navigation-open .mission{visibility:hidden}}
/* Navigation guidance and passage review */
.approach-guidance{display:flex;flex-direction:column;gap:5px;border-left:2px solid #86b6a1;padding:0 0 0 9px;margin:0 0 14px}.approach-guidance strong{font-size:10px;font-weight:500;color:#d9e9e1}.approach-guidance span{font-size:9px;line-height:1.5;color:var(--muted)}.approach-guidance[data-speed=reduce]{border-color:var(--amber)}.approach-guidance[data-speed=slow-now]{border-color:#ee967c}.approach-guidance[data-speed=slow-now] span{color:#ffb59e}.gate-target{position:absolute;pointer-events:none;z-index:1;width:0;height:0}.target-label{position:absolute;bottom:22px;left:var(--label-shift,0px);transform:translateX(-50%);width:164px;padding:7px 9px;background:#142e39b8;border:1px solid #d7b27666;border-radius:4px;text-align:center;box-shadow:0 2px 12px #00151e33}.target-label strong{display:block;font-size:8px;line-height:1.5;letter-spacing:.04em;color:#f1d6a6;font-weight:500}.target-label span{display:block;font-size:7px;letter-spacing:.04em;color:#d2e0e0;margin-top:3px}.gate-target>i{position:absolute;width:10px;height:10px;left:-5px;top:-5px;transform:rotate(45deg);border:1px solid #f2d49c;box-shadow:0 0 8px #00121c;background:#17323d55}.footer-actions{display:flex;gap:8px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}:is(#passage-report,#briefing){width:min(620px,calc(100% - 32px));max-height:calc(100% - 32px);overflow:auto;padding:28px;border:1px solid #b7ced238;border-radius:9px;background:linear-gradient(125deg,#172f3b,#10252f);color:#edf1ee;box-shadow:0 16px 90px #00101980}:is(#passage-report,#briefing)::backdrop{background:#081c29b5;backdrop-filter:blur(5px)}:is(#passage-report,#briefing) h2{font-size:30px;letter-spacing:-.04em;font-weight:500;margin:10px 0}.report-summary{font-size:12px;color:var(--amber);margin:0 0 18px}#report-advice{font-size:12px;line-height:1.7;max-width:480px;color:#c7d9dd}.report-table{margin:22px 0;overflow:auto}:is(#passage-report,#briefing) table{width:100%;border-collapse:collapse;text-align:left;font-size:10px;white-space:nowrap}:is(#passage-report,#briefing) th,:is(#passage-report,#briefing) td{padding:12px 8px;border-bottom:1px solid var(--line);font-weight:400}:is(#passage-report,#briefing) thead th{font-size:8px;letter-spacing:.07em;color:var(--muted)}:is(#passage-report,#briefing) th:first-child{padding-left:0}:is(#passage-report,#briefing) tbody th{color:#e3ebeb}:is(#passage-report,#briefing) td{color:var(--muted);font-variant-numeric:tabular-nums}:is(#passage-report,#briefing) tr[data-result=cleared] td:last-child{color:#95cfb4}:is(#passage-report,#briefing) tr[data-result=speed] td:last-child,:is(#passage-report,#briefing) tr[data-result=missed] td:last-child{color:#f4a68e}.report-actions{display:flex;gap:10px;margin-top:8px}.report-actions button{flex:1;font-size:11px}#report-retry{color:var(--amber);border-color:#d6aa6c88;background:#c7974e15}
@media(max-width:560px){.approach-guidance{margin-bottom:10px;gap:3px}.approach-guidance strong{font-size:9px}.approach-guidance span{font-size:8px}:is(#passage-report,#briefing){padding:20px 16px}:is(#passage-report,#briefing) h2{font-size:26px}:is(#passage-report,#briefing) table{font-size:9px}:is(#passage-report,#briefing) th,:is(#passage-report,#briefing) td{padding:10px 5px}.report-actions{flex-direction:column}.report-actions button{padding:12px}.report-table{margin:16px 0}}
@media(max-height:520px){.approach-guidance{margin-bottom:8px;gap:3px}.approach-guidance strong{font-size:9px}.approach-guidance span{font-size:8px}:is(#passage-report,#briefing){padding:18px 22px}:is(#passage-report,#briefing) h2{font-size:24px;margin:7px 0}.report-summary{margin-bottom:10px}#report-advice{font-size:10px;max-width:none}.report-table{margin:12px 0}:is(#passage-report,#briefing) th,:is(#passage-report,#briefing) td{padding:8px}}
.target-label{bottom:auto;top:var(--label-top,-68px);height:48px;display:flex;flex-direction:column;justify-content:center}.target-leader{position:absolute;left:0;top:0;height:1px;border-top:1px dashed #e5c68b99;transform-origin:0 0}
.panel,.camera-actions,footer,.nav-toggle,.weather{z-index:2}
@media(max-width:850px),(max-height:520px){.navigation-open .camera-actions{visibility:hidden}}

/* Keep course, speed and distance visible while optional mission detail is folded. */
.mission-compact{display:none}.mission .arrival-estimate{margin:7px 0 0;max-width:none;color:var(--muted);font-size:9px;line-height:1.5}
@media(max-width:560px),(max-height:520px){
  .mission{display:flex;flex-direction:column;padding:10px 12px;max-height:calc(100% - 224px);overflow-y:auto}
  .mission-compact{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px}
  .mission-compact strong{display:block;font-size:14px;font-weight:500;letter-spacing:-.02em}
  .mission-compact span{display:block;margin-top:4px;color:var(--amber);font-size:9px}
  #mission-toggle{min-width:48px;min-height:44px;padding:7px;font-size:9px}
  .mission-compact{order:0;flex-shrink:0}
  .mission>.approach-guidance{order:1;flex-shrink:0}
  .mission>.mission-meta{order:2;flex-shrink:0}
  .mission>.arrival-estimate{order:3;flex-shrink:0}
  #mission-details{order:4;flex-shrink:0;margin-top:10px}
  #mission-details>.eyebrow,#mission-details>h1{display:none}
  .mission .approach-guidance{margin-bottom:6px}
  .mission-meta{padding-top:8px}
  .mission .arrival-estimate{margin-top:4px;font-size:8px}
  .rudder-buttons button{min-width:44px;min-height:44px;padding:9px 12px}
}
@media(max-width:560px){.mission{width:min(220px,calc(100% - 118px))}}
@media(max-height:520px){.camera-actions{bottom:155px}}
/* A paused briefing lets the player learn before the ship gets underway. */
#briefing{width:min(580px,calc(100% - 32px))}#briefing-intro{font-size:12px;line-height:1.7;color:#c7d9dd;margin:0 0 20px}.briefing-steps{padding-left:22px;margin:0 0 24px}.briefing-steps li{padding-left:5px;margin:0 0 16px;color:var(--amber);font-size:12px}.briefing-steps strong{display:block;color:#e6eeeb;font-size:13px;font-weight:500;margin-bottom:5px}.briefing-steps span{display:block;color:var(--muted);line-height:1.65}#briefing-start{color:var(--amber);border-color:#d6aa6c88;background:#c7974e15}#pause-reason{max-width:320px;text-align:center;line-height:1.6;margin:0 20px}@media(max-width:560px){#briefing-intro{font-size:11px;margin-bottom:18px}.briefing-steps{margin-bottom:18px}.briefing-steps li{font-size:11px;margin-bottom:14px}.briefing-steps strong{font-size:12px}}@media(max-height:520px){#briefing{width:min(700px,calc(100% - 32px))}#briefing-intro{font-size:10px;margin-bottom:12px}.briefing-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-bottom:12px}.briefing-steps li{font-size:10px;line-height:1.4;margin-bottom:0}.briefing-steps strong{font-size:11px}.briefing-steps span{line-height:1.5}#briefing .report-actions{flex-direction:row}#briefing .report-actions button{padding:10px}}
/* Harbor practice: measured berth alignment and a reachable neutral order. */
.engine-slider{display:flex;align-items:center;gap:7px}.engine-slider input{min-width:0;flex:1;margin:4px 0;height:20px}.engine-slider button{padding:6px;font-size:9px;min-width:36px;min-height:32px}.throttle-control strong{display:block;margin-top:5px}.camera-actions{bottom:192px}.docking-instruments{padding:8px 0;border-top:1px solid var(--line);margin-bottom:9px}.mission .docking-instruments p{font-size:10px;margin:0;line-height:1.8;max-width:none;font-variant-numeric:tabular-nums}.docking-instruments[data-ready=true]{color:#96d3b4}.scenario-actions{display:flex;gap:10px;border-top:1px solid var(--line);padding-top:16px;margin-top:18px}.scenario-actions button{flex:1;font-size:10px;min-height:44px}#report-dock{color:var(--amber);border-color:#d6aa6c88;background:#c7974e15}
@media(max-width:560px),(max-height:520px){.engine-slider button{min-width:44px;min-height:44px}.docking-instruments{order:2;padding:5px 0;margin-bottom:5px}.mission .docking-instruments p{font-size:8px;line-height:1.7}.docking-instruments+.mission-meta{order:3}.mission>.arrival-estimate{order:4}#mission-details{order:5}.scenario-actions{flex-wrap:wrap}.scenario-actions button{min-width:130px}}
@media(max-width:560px){.camera-actions{bottom:284px}}
@media(max-height:520px){.camera-actions{bottom:170px}}
@media(max-width:560px) and (min-height:521px){.mission{max-height:calc(100% - 412px)}}
@media(max-width:560px) and (min-height:521px) and (max-height:650px){.docking-mode .mission-meta,.docking-mode #speed-guidance{display:none}}
/* Compact patrol controls share the mission card; no extra floating combat panels. */
.patrol-controls{display:flex;flex-direction:column;gap:8px;margin:0 0 12px}.track-select{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.track-select button{padding:8px 3px;min-height:38px;font-size:10px;font-variant-numeric:tabular-nums}.track-select button[aria-pressed=true]{border-color:#efc880;color:#efc880;background:#e6b56c18}.track-select button[data-kind=hostile]{color:#ff9b84}.track-select button[data-kind=ferry],.track-select button[data-kind=fishing]{color:#96dcc4}.patrol-status{display:flex;justify-content:space-between;color:#b6ccc9;font-size:9px;letter-spacing:.08em;font-variant-numeric:tabular-nums}#hull-status[data-damaged=true]{color:#ff9b84}.patrol-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.patrol-actions button{min-height:44px;padding:8px 4px;font-size:10px}button:disabled{opacity:.48;cursor:default}#scan-contact:not(:disabled){border-color:#78baa9;color:#a4e5ce}#fire-gun:not(:disabled){border-color:#ffa77d;color:#ffd2ac;background:#a7492529}#track-course{padding:7px 4px;font-size:10px;min-height:38px}.mission #patrol-feedback{margin:0;max-width:none;min-height:30px;font-size:9px;line-height:1.5;color:#d9c59f}.patrol-mode .mission{width:300px}.patrol-mode .mission h1{font-size:23px}.patrol-mode .mission-meta{font-size:8px}.taking-fire #hull-status{color:#ffac82}.taking-fire .helm{border-color:#ed967566}.patrol-mode .approach-guidance strong{font-size:12px}.patrol-mode .approach-guidance span{font-size:10px}.patrol-mode .mission p{max-width:none}.patrol-mode .mission-compact{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}.patrol-mode .mission-compact strong{display:block;font-size:12px;font-weight:500}.patrol-mode .mission-compact span{display:block;font-size:10px;color:var(--amber);margin-top:4px}.patrol-mode #mission-details{display:none}.patrol-mode #mission-toggle{display:none}
@media(max-width:850px){.patrol-mode .mission{width:260px;padding:12px}.patrol-mode .approach-guidance strong{font-size:11px}}
@media(max-width:560px),(max-height:520px){.patrol-mode .mission{width:min(252px,calc(100% - 118px));padding:9px;max-height:none;overflow:visible}.patrol-mode .mission-compact{margin-bottom:5px;order:0}.patrol-mode .mission-compact strong{font-size:11px}.patrol-mode .mission-compact span{font-size:8px;margin-top:3px}.patrol-mode .approach-guidance{order:1;margin-bottom:7px}.patrol-mode .approach-guidance strong{font-size:10px}.patrol-mode .approach-guidance span{font-size:8px}.patrol-controls{order:2;gap:5px;margin:0}.track-select button{min-height:44px;font-size:9px;padding:6px 2px}.patrol-actions button{font-size:9px}.patrol-status{font-size:8px}.patrol-mode .mission-meta,.patrol-mode #patrol-feedback{display:none}#track-course{min-height:44px;font-size:9px;padding:5px 2px}}
@media(max-height:520px){.patrol-mode .mission{width:245px}.patrol-mode .patrol-controls{display:grid;grid-template-columns:1fr 1fr;gap:4px}.patrol-mode .track-select{grid-column:1/-1}.patrol-mode .patrol-status{grid-column:1/-1}.patrol-mode .patrol-actions{grid-column:1}.patrol-mode #track-course{grid-column:2;min-height:44px}.patrol-mode .track-select button{min-height:36px}.patrol-mode .mission-compact{display:none}.patrol-mode .approach-guidance span{display:none}}
/* Portrait patrol leaves the forward sea visible below a 150px task strip. */
@media(max-width:560px){
  .masthead{padding:8px 10px}.anchor,.brand small{display:none}.brand{font-size:9px;letter-spacing:.08em}.header-actions{gap:4px}.header-actions button{font-size:9px;padding:7px 6px}
  .patrol-mode .compass{display:none}
  .patrol-mode .mission{top:76px;left:12px;width:calc(100% - 24px);padding:8px 9px;max-height:none;overflow:visible}
  .patrol-mode .mission-compact{margin:0 0 4px;min-height:14px;padding-right:64px}
  .patrol-mode .mission-compact>div{display:flex;align-items:center;gap:9px;white-space:nowrap}
  .patrol-mode .mission-compact strong{font-size:10px}.patrol-mode .mission-compact span{font-size:8px;margin:0}
  .patrol-mode .approach-guidance{margin-bottom:6px;gap:2px;padding-left:7px}.patrol-mode .approach-guidance strong{font-size:10px;line-height:1.2}.patrol-mode .approach-guidance span{font-size:8px;line-height:1.2}
  .patrol-mode .patrol-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:0}
  .patrol-mode .track-select{grid-column:1/-1;grid-row:1;gap:5px}.patrol-mode .track-select button{min-height:44px;padding:6px 2px;font-size:9px}
  .patrol-mode .patrol-status{position:absolute;right:9px;top:10px;display:block;font-size:8px}.patrol-mode #patrol-time{display:none}
  .patrol-mode .patrol-actions{display:contents}.patrol-mode #scan-contact{grid-column:1;grid-row:2}.patrol-mode #fire-gun{grid-column:2;grid-row:2}.patrol-mode #track-course{grid-column:3;grid-row:2;margin:0;padding:4px;min-height:44px;font-size:9px;line-height:1.3}
  .patrol-mode .nav-toggle{left:12px;right:auto;top:auto;bottom:12px;min-height:44px;padding:8px;font-size:9px}
  .patrol-mode .navigation{top:76px;max-height:calc(100% - 360px)}
}
@media(max-height:520px) and (min-width:561px){
  .patrol-mode .mission{top:71px;width:278px;padding:8px 9px}.patrol-mode .mission-compact{display:flex;margin-bottom:4px;padding-right:60px}.patrol-mode .mission-compact>div{display:flex;gap:6px;align-items:center}.patrol-mode .mission-compact strong{font-size:9px}.patrol-mode .mission-compact span{font-size:8px;margin:0}.patrol-mode .patrol-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.patrol-mode .track-select{grid-column:1/-1;grid-row:1}.patrol-mode .track-select button{min-height:44px}.patrol-mode .patrol-status{position:absolute;right:9px;top:10px;display:block;font-size:8px}.patrol-mode #patrol-time{display:none}.patrol-mode .patrol-actions{display:contents}.patrol-mode #scan-contact{grid-column:1;grid-row:2}.patrol-mode #fire-gun{grid-column:2;grid-row:2}.patrol-mode #track-course{grid-column:3;grid-row:2;min-height:44px;font-size:8px;padding:4px;line-height:1.3}.patrol-mode .approach-guidance{margin-bottom:6px}.patrol-mode .approach-guidance strong{font-size:10px}.patrol-mode .mission-compact span{display:none}
}
@media(max-width:560px),(max-height:520px){.patrol-mode #hull-status{display:block;max-width:64px;white-space:nowrap;overflow:hidden}}
/* Short embedded portrait: leave a usable world window between task and helm. */
@media(max-width:560px) and (max-height:700px){
  .patrol-mode .helm{padding:9px 12px;gap:6px 12px;bottom:62px}
  .patrol-mode .helm .readout>span{font-size:7px;margin-bottom:2px}.patrol-mode .helm .readout strong{font-size:19px;line-height:1.15}.patrol-mode .helm .readout small{display:none}
  .patrol-mode .helm .throttle-control,.patrol-mode .helm .rudder-control{padding-top:6px}.patrol-mode .helm .throttle-control>span,.patrol-mode .helm .rudder-control>span{font-size:7px;margin-bottom:3px}.patrol-mode .helm .throttle-control strong{font-size:9px;margin-top:3px}.patrol-mode .helm .rudder-control small{display:none}
  .patrol-mode .camera-actions{top:250px;bottom:auto;right:12px;left:auto;flex-direction:column;gap:4px}.patrol-mode .camera-actions button{min-height:44px;width:52px;padding:5px;font-size:9px}
  .patrol-mode .navigation{max-height:calc(100% - 290px)}
}
@media(max-width:560px),(max-height:520px){
  .patrol-mode .patrol-status{display:flex;gap:8px;align-items:center}.patrol-mode #patrol-time{display:inline;white-space:nowrap}.patrol-mode .mission-compact{padding-right:110px}.patrol-mode .mission-compact span{display:none}
}
@media(min-width:851px) and (max-height:850px){
  .navigation{max-height:calc(100% - 400px);overflow-y:auto}.navigation-open .camera-actions{visibility:hidden}
}
