@font-face{font-family:Gothic A1;font-style:normal;font-weight:100 500;font-display:swap;src:url(/fonts/gothic-a1-400.woff) format("woff")}@font-face{font-family:Gothic A1;font-style:normal;font-weight:600 900;font-display:swap;src:url(/fonts/gothic-a1-700.woff) format("woff")}@font-face{font-family:Rajdhani;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/rajdhani-500.woff) format("woff")}@font-face{font-family:Rajdhani;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/rajdhani-600.woff) format("woff")}@font-face{font-family:Rajdhani;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/rajdhani-700.woff) format("woff")}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/barlow-semi-condensed-500.ttf) format("truetype")}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/barlow-semi-condensed-600.ttf) format("truetype")}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/barlow-semi-condensed-700.ttf) format("truetype")}:root{font-family:Barlow Semi Condensed,Gothic A1,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,sans-serif;color:#e6e5dc;background:#171816;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--bg:#171816;--panel:#22241f;--text:#e6e5dc;--muted:#b4b5a9;--line:#4b4e44;--accent:#c1bca0;--cyan:#78d2c3}*{box-sizing:border-box}body{margin:0;min-width:320px}button{font:inherit;font-size:.875rem;font-weight:500;line-height:1.4;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.38}button:not(:disabled):hover{background-color:#2b353e;border-color:#92a1ad}[tabindex]:focus-visible,button:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}button svg{flex-shrink:0}h1,h2,p{margin:0}h1{font-size:1.125rem;font-weight:550;letter-spacing:.025em}h1 span{color:var(--muted);margin:0 5px}h2{font-size:1.125rem;font-weight:650;line-height:1.5}.mono{font-family:Barlow Semi Condensed,Gothic A1,monospace;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.muted{color:var(--muted);font-size:.75rem}.app-shell{max-width:1440px;margin:0 auto;padding:0 30px}.app-header{min-height:86px;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:17px}.brand svg{color:var(--accent)}.brand span{font-size:1.4rem;letter-spacing:.25em;font-weight:600}.header-actions{display:flex;gap:10px}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:10px 15px;background:transparent;border:1px solid #66737d;border-radius:4px;transition:background-color .12s,border-color .12s}a.button{color:inherit;text-decoration:none;font-size:.875rem;line-height:1.4}.header-actions .button{border-color:#46545f;font-size:.8rem;min-height:40px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}.battle-area{min-width:0}.map-panel,.squad-panel{background:#1a2025;border:1px solid var(--line);border-radius:4px}.map-heading{padding:13px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:16px}.simulation-status{align-items:center;gap:7px;font-size:.85rem;font-weight:600}.simulation-status.running{color:var(--cyan)}.simulation-status time{margin-left:13px;padding-left:15px;border-left:1px solid var(--line);font-size:.875rem;font-weight:400}.map-viewport{position:relative;width:min(100% - 24px,766px,max(400px,100dvh - 350px));aspect-ratio:1;margin:14px auto 0}.map-canvas{width:100%;height:100%;touch-action:none;border-radius:2px}.map-canvas canvas{display:block;width:100%!important;height:100%!important;margin:0!important;touch-action:none}.map-loading{position:absolute;inset:0;display:grid;place-content:center;white-space:pre-line;text-align:center;background:var(--panel);color:var(--muted);font-size:.875rem;pointer-events:none}.pause-indicator{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:6px;max-width:calc(100% - 24px);padding:6px 10px;border:1px solid #c4cdb426;border-radius:5px;background:#1c202547;color:#e2e7d0b0;font-size:.8125rem;font-weight:500;line-height:1.5;white-space:nowrap;text-shadow:0 1px 2px #121417;-webkit-user-select:none;user-select:none;z-index:12}.muzzle-legend,.pause-indicator,.pause-indicator *{pointer-events:none}.muzzle-legend{position:absolute;bottom:calc(var(--dock-height, 94px) + max(8px, env(safe-area-inset-bottom)) + 8px + var(--notice-clearance, 0px));left:12px;z-index:12;display:flex;flex-wrap:wrap;gap:5px 12px;max-width:calc(100% - 24px);padding:5px 8px;background:#121518d9;border:1px solid #9db1a42e;border-radius:5px;font-size:.72rem;line-height:1.5}.muzzle-legend span{display:flex;align-items:center;gap:5px}.muzzle-legend i{width:7px;height:7px;border-radius:50%;flex-shrink:0}.muzzle-clear{background:#79b4ff}.muzzle-fold{background:#ff8278}.handling-status{margin:9px 0;padding:8px 10px;border-left:2px solid #72ddbc;background:#72ddbc08;font-size:.8rem;line-height:1.6;overflow-wrap:anywhere}.handling-status.compressed{border-color:#e9bd6d;background:#e9bd6d0b}.handling-status p{margin:4px 0 0;color:var(--muted);white-space:pre-line}.map-settings select,.unit-name-edit input{max-width:100%;width:100%;min-width:0}.unit-name-edit{margin:10px 0}.unit-name-edit input{padding:9px 10px;color:#e9eef2;background:#131c23;border:1px solid #8fa3995a;border-radius:5px;font:inherit}.unit-name-edit .command-pair{margin-top:7px}.map-utilities{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 20px 8px;color:var(--muted)}.map-gesture-hint{font-size:.65rem;line-height:1.6;color:var(--muted);margin:0 20px 10px}.touch-gestures{display:none}.map-canvas.pan-mode canvas{cursor:grab}.unit-row .unit-number{color:var(--unit-color,var(--accent))}.enemy-count-controls{display:flex;flex-wrap:wrap;gap:8px}.enemy-count-controls input{flex:1 1;min-width:0;width:70px;font:inherit;color:var(--text);background:#232e37;border:1px solid var(--line);border-radius:4px;padding:9px}.respawn-toggle{display:flex;align-items:center;gap:10px;margin:14px 0;font-size:.875rem}.respawn-toggle input{width:20px;height:20px;flex:0 0 20px;accent-color:var(--accent)}.ammo-policy{flex-wrap:wrap}.map-legend{display:flex;align-items:center;gap:7px;font-size:.7rem}.legend-dot{width:6px;height:6px;border-radius:50%;margin-left:10px}.legend-dot:first-child{margin-left:0}.ally-dot{background:var(--cyan)}.enemy-dot{background:#d88571}.legend-line{width:12px;border-top:2px dashed var(--cyan);margin-left:10px}.map-view-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:1px solid transparent;border-radius:3px;padding:0}.vision-button{color:var(--muted)}.vision-button.on{color:var(--accent)}.zoom-controls{display:flex;align-items:center;gap:3px}.zoom-controls span{min-width:38px;text-align:center;font-size:.65rem}.controls-area{margin-top:18px}.main-toolbar{flex-wrap:wrap;align-items:center;gap:10px}.mode-controls{display:flex;flex-wrap:wrap;gap:8px}.tool-button{min-height:50px}.active-tool{box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent);background:#202a32}.key-hint{color:#919da7;font-size:.65rem;font-family:monospace;border:1px solid #4b5964;border-radius:2px;padding:0 3px;margin-left:2px}.undo-button{padding:13px;min-height:50px;border-color:#46545f}.playback-controls{margin-left:auto;display:flex;align-items:center;gap:6px}.primary-button{background:var(--accent);border-color:var(--accent);color:#151719;font-weight:750;min-height:50px;padding:12px 24px}.primary-button:not(:disabled):hover{background-color:#ffa76a;border-color:#ffa76a}.speed-button{min-height:50px;padding:12px 10px;border-color:#46545f;color:var(--muted)}.command-notice{white-space:pre-line;font-size:.8rem;line-height:1.8;color:#bdc7ce;border-left:2px solid #596c7a;padding-left:13px;margin-top:16px;min-height:46px}.keyboard-guide{display:flex;flex-wrap:wrap;gap:16px;color:#aab3ba;font-size:.65rem;margin-top:16px;line-height:1.8}kbd{font-family:monospace;font-size:.65rem;border:1px solid #46545f;background:#202930;padding:2px 5px;border-radius:3px}.squad-panel{padding:18px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.unit-list{display:flex;flex-direction:column;gap:8px}.unit-row{display:flex;align-items:center;width:100%;padding:0;border:1px solid #44525c;border-left:3px solid var(--unit-color,var(--accent));border-radius:4px;background:transparent;text-align:left;overflow:hidden}.unit-row.selected{border-color:var(--unit-color,var(--accent));box-shadow:inset 0 0 0 1px var(--unit-color,var(--accent));background:#29343c}.unit-row.inactive{opacity:.55}.unit-portrait{display:grid;place-items:center;width:54px;align-self:stretch;flex-shrink:0;background:#303b44;border-right:1px solid #495661}.unit-portrait img{width:47px;height:47px;object-fit:contain;transform:rotate(-35deg)}.unit-row-content{min-width:0;flex:1 1;padding:9px 10px}.unit-row-top{display:flex;align-items:center;gap:9px}.unit-number{color:var(--accent);font-size:.8rem}.unit-row-top strong{font-size:.9375rem;font-weight:650}.unit-state{margin-left:auto;color:#bdc7ce;font-size:.75rem;white-space:nowrap}.unit-vitals{margin-top:7px;display:flex;align-items:center;gap:12px}.unit-vitals>.mono{font-size:.7rem;color:#bdc7ce;white-space:nowrap}.health-track{height:4px;flex:1 1;background:#3b474f}.health-track>span,.stat-track>span{display:block;height:100%;background:var(--accent)}.section-block{border-top:1px solid #4d5963;margin-top:18px;padding-top:17px}.unit-position{font-size:.75rem;color:var(--muted)}.equipment{display:flex;align-items:center;gap:13px}.equipment-portrait{width:68px;height:76px;border:1px solid #626f7a;border-radius:4px;background:#29343c;display:grid;place-items:center;flex-shrink:0}.equipment-portrait img{width:63px;transform:rotate(-35deg)}.weapon-glyph{position:relative;display:inline-block;width:80px;height:28px;flex:0 0 auto;vertical-align:middle}.weapon-glyph>img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 1px 1px #000a)}.weapon-glyph>.weapon-glyph-suppressor{position:absolute;width:18px;height:6px;right:-5px;top:45%;object-fit:fill}.command-dock .weapon-glyph{width:55px;height:20px}.weapon-option .weapon-glyph{display:block;width:min(100%,128px);height:40px;margin:0 0 6px}.weapon-name .weapon-glyph{height:24px}.preparation-accessories>.weapon-glyph{margin-top:8px}.equipment-info{flex:1 1;min-width:0}.weapon-name{font-size:.8rem;font-weight:600;display:block;margin-bottom:11px}.stat-row{display:flex;align-items:center;gap:7px;font-size:.75rem;margin-top:7px}.stat-row>span:first-child{width:auto;flex-shrink:0;white-space:nowrap}.stat-track{flex:1 1;height:5px;background:#3b474f}.stat-row>.mono{font-size:.7rem;min-width:61px;flex-shrink:0;white-space:nowrap;text-align:right}.reserve-row{display:flex;flex-wrap:wrap;gap:.25em;font-size:.7rem;color:var(--muted);margin-top:8px}.command-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:15px}.command-pair .button{padding:9px 6px;font-size:.78rem}.fire-held{color:#e4bd88;border-color:#947547}.reload-progress{height:3px;background:#384049;margin-top:8px}.reload-progress>span{display:block;height:100%;background:var(--accent)}.target-policy{display:flex;justify-content:space-between;align-items:center;margin-top:9px;color:var(--muted);font-size:.7rem;min-height:25px}.text-button{color:var(--cyan);border:0;background:transparent;padding:5px 0;font-size:.7rem}.target-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.target-chip{display:flex;align-items:center;gap:5px;color:#e1ac99;border:1px solid #775247;background:#322723;border-radius:3px;font-size:.65rem;padding:7px}.aim-context{border-left:2px solid var(--cyan);margin-top:10px;padding-left:10px;font-size:.7rem;line-height:1.6}.aim-context>div{display:flex;gap:18px}.aim-context strong{color:var(--cyan);font-weight:500}.inline-notice{color:#e4bd88;font-size:.75rem;line-height:1.7;margin-top:10px}.waypoint-list{list-style:none;padding:0;margin:0 0 10px;max-height:235px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#4b5662 #1e2328}.waypoint-list li{display:flex;align-items:center;min-height:39px;border:1px solid #3c444d;margin-bottom:5px;border-radius:3px}.waypoint-list li.active{border-color:#6b9585;background:#292f35}.waypoint-select{flex:1 1;display:flex;gap:10px;align-self:stretch;background:transparent;border:0;min-width:0;text-align:left;padding:5px 9px}.waypoint-number,.waypoint-select{align-items:center;font-size:.75rem}.waypoint-number{color:var(--cyan);border:1.5px solid var(--cyan);border-radius:50%;width:23px;height:23px;display:inline-flex;justify-content:center}.waypoint-action{margin-left:auto;font-size:.65rem;color:#a4b1a5}.clear-path{width:100%;font-size:.75rem;min-height:36px;padding:7px}.empty-plan{color:var(--muted);font-size:.72rem;line-height:1.85;padding:0 0 12px}.mission p{color:#bdc7ce;font-size:.75rem;line-height:1.85}.mission .section-title{margin-bottom:7px}.mission .mono{color:var(--accent);font-size:.8rem}.training-note{display:block;color:var(--muted);font-size:.65rem;margin-top:10px}.app-footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #30373e;margin:24px 0 20px;padding-top:12px;font-size:.6rem;color:#8e9985;letter-spacing:.07em}.dialog{color:var(--text);background:#20262b;border:1px solid #616f7e;border-radius:7px;width:min(520px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow-y:auto;padding:24px;box-shadow:0 18px 90px #0008}.dialog::backdrop{background:#111315d9}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.dialog h2{font-size:1.25rem;font-weight:650}.help-steps{list-style:none;padding:0;margin:22px 0}.help-steps li{display:flex;align-items:flex-start;gap:16px;margin-top:23px}.help-step{font-size:.8rem;color:var(--accent);border:1px solid #596673;padding:6px;border-radius:3px}.help-extra strong,.help-steps strong{font-size:.875rem}.help-extra p,.help-steps p{font-size:.8rem;line-height:1.9;margin-top:7px;color:#bdc7ce;overflow-wrap:anywhere}.help-extra{border-top:1px solid var(--line);padding-top:20px}.help-extra p+p{margin-top:14px}.dialog-action{width:100%;margin-top:24px}.result-dialog{text-align:center;padding:35px}.result-dialog>svg{color:var(--accent);margin-bottom:15px}.result-dialog p{margin:16px 0;white-space:pre-line;font-size:.875rem;line-height:1.85;color:#bdc7ce}.result-stats{display:flex;justify-content:center;gap:50px;border-block:1px solid var(--line);padding:20px 0}.result-stats div{display:flex;flex-direction:column;gap:8px}.result-stats span{font-size:.75rem;color:var(--muted)}.result-stats strong{color:var(--accent);font-size:1.35rem}.weapon-name{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px}.weapon-range{margin-left:auto;font-size:.65rem;font-weight:400;color:var(--muted)}.loadout-settings{margin-top:15px}.setting-label{display:flex;justify-content:space-between;flex-wrap:wrap;gap:5px 10px;font-size:.75rem;margin:12px 0 7px;color:#d5dacb}.setting-label>span{color:var(--muted);font-size:.65rem}.loadout-settings select{color:var(--text);width:100%;max-width:100%;min-height:44px;padding:9px 10px;font:inherit;font-size:.8rem;background:#1a1d21;border:1px solid #54606c;border-radius:4px}.loadout-settings select:disabled{opacity:.65}.setting-note,.weapon-description{font-size:.7rem;line-height:1.7;color:var(--muted);margin-top:7px;white-space:pre-line;overflow-wrap:anywhere}.segmented-control{display:flex;flex-wrap:wrap;gap:5px}.segmented-control button{flex:1 1 auto;min-width:max-content;min-height:40px;border:1px solid #47515c;border-radius:3px;background:#1e2227;color:var(--muted);padding:7px 9px;font-size:.75rem}.segmented-control button.selected{border-color:var(--accent);color:var(--accent);background:#2b3138}.cover-status{display:flex;align-items:center;gap:7px;margin-top:14px;color:#aeb89f;font-size:.7rem;line-height:1.65}.cover-status svg{flex-shrink:0}.cover-status.braced{color:var(--accent)}.shot-feedback{font-size:.7rem;color:#e5c994;margin-top:5px;line-height:1.7}.throwables{border-top:1px solid #3c444d;padding-top:3px;margin-top:10px}.throwables .command-pair{margin-top:0}.pending-throw{display:flex;justify-content:space-between;flex-wrap:wrap;align-items:center;font-size:.7rem;color:#e5c994;gap:8px;margin-top:5px}.legend-cover{width:9px;height:7px;border:solid #c6bc8a;border-width:1px 1px 3px;margin-left:13px;display:inline-block}.pan-toggle{min-height:30px;padding:6px 8px;font-size:.65rem}@media (min-width:861px){.battle-area{position:sticky;top:12px;align-self:start}}@media (max-width:560px){.segmented-control button,.setting-label{font-size:.8rem}.segmented-control button{min-height:44px}.cover-status,.pending-throw,.setting-note,.shot-feedback,.weapon-description{font-size:.75rem}.setting-label>span{font-size:.7rem}.pan-toggle{min-height:44px;padding-inline:7px}.legend-cover{margin-left:5px}.map-legend{flex-wrap:wrap}}.route-utilities{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px}.route-utilities .button{font-size:.75rem}.route-utilities>span{color:var(--muted);font-size:.65rem;line-height:1.65}.barrel-controls,.door-controls{border-top:1px solid var(--line);margin-top:15px;padding-top:13px}.door-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.door-actions .button{flex:1 1 80px;font-size:.75rem;padding:9px 7px}.abandon-button{width:100%;margin-top:13px;color:#dfad96;border-color:#765846}.contact-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:7px;width:100%;min-height:44px;margin-top:6px;padding:8px 10px;border:1px solid #624a3f;background:#282522;border-radius:3px;font-size:.75rem;text-align:left}.contact-row .mono{color:#df9b85;font-size:.7rem}.map-utilities{flex-wrap:wrap}@media (max-width:560px){.route-utilities>span{flex-basis:100%}.door-actions{flex-direction:column}.door-actions .button{flex-basis:auto}}.action-controls{display:grid;gap:12px;margin:20px 0}.action-controls .setting-note{margin:0}.action-participants{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.action-participants label{display:flex;align-items:center;gap:8px;min-height:42px;padding:8px;border:1px solid var(--border);border-left:3px solid var(--unit-color);border-radius:4px;font-size:13px}.action-participants input{width:17px;height:17px;accent-color:var(--unit-color);flex:0 0 auto}.pending-action{display:grid;gap:8px;padding:12px;border:1px solid var(--border);border-radius:4px;font-size:13px;line-height:1.5}.pending-action .text-button{justify-self:start}.waypoint-reorder{display:flex;gap:2px;flex:0 0 auto}.waypoint-reorder button{width:26px;min-height:36px;font-size:17px}.trap-warning{color:#f19b86;border-color:#b76554}@media (max-width:390px){.action-participants{grid-template-columns:1fr}.waypoint-list li{flex-wrap:wrap}.waypoint-select{flex-basis:60%}}.lesson-content,.orientation-note,.practice-detail,.practice-guide p,.setting-note,.tutorial-intro{white-space:pre-line;overflow-wrap:anywhere}.action-participants label,.pending-action{border-color:var(--line);font-size:.8125rem}.action-participants label{min-height:44px}.waypoint-reorder button{min-width:32px;min-height:44px;font-size:1rem}.saved-loadout{color:var(--cyan)}select{max-width:100%}.difficulty-settings .setting-note{margin-top:12px}.tutorial-dialog{width:min(920px,calc(100% - 24px))}.tutorial-intro{color:var(--muted);font-size:.875rem;line-height:1.7;margin-top:14px}.tutorial-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:28px;margin-top:20px}.lesson-list{display:flex;flex-direction:column;gap:8px}.lesson-list .button{text-align:left;justify-content:flex-start;font-size:.8125rem}.lesson-list .mono{color:var(--accent);flex:0 0 24px}.lesson-content h3{font-size:1.35rem;margin:10px 0}.tutorial-step{color:var(--cyan);font-size:.8rem}.lesson-goal{color:var(--accent);font-size:.95rem;line-height:1.8}.lesson-content ol,.practice-detail ol{padding-left:1.4rem;margin:20px 0}.lesson-content li,.practice-detail li{font-size:.9rem;line-height:1.85;margin-bottom:16px;padding-left:4px}.lesson-tip{border-left:2px solid var(--cyan);padding:10px 14px;font-size:.85rem;color:var(--muted);line-height:1.8;margin-bottom:20px}.lesson-content>.primary-button{width:100%}.lesson-navigation{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.lesson-navigation button{flex:1 1}.practice-guide{gap:12px;border:1px solid #5f6d7b;border-radius:4px;background:#252b31;margin-bottom:14px;padding:12px 16px}.practice-guide strong{color:var(--accent)}.practice-guide p{font-size:.85rem;line-height:1.7;margin-top:4px}.practice-actions{display:flex;flex-wrap:wrap;gap:8px}.practice-actions .button{font-size:.75rem;padding:8px}.practice-detail{flex-basis:100%;max-height:38dvh;overflow-y:auto}.app-shell{display:flex;flex-direction:column;padding:0 16px;overflow:hidden}.app-header{flex-shrink:0;min-height:64px}.brand{gap:9px}.brand svg{flex-shrink:0}.brand span{min-width:0;font-size:1.1rem;letter-spacing:.18em;white-space:nowrap;overflow:hidden}.header-actions{gap:6px;flex-shrink:0}.header-actions .button{padding:8px 12px}.game-layout{flex:1 1;min-height:0;position:relative;grid-template-columns:minmax(0,1fr);gap:12px;align-items:stretch}.battle-area,.map-panel{display:flex;flex-direction:column;min-height:0;flex:1 1}.map-panel{position:relative;overflow:hidden}.map-heading{flex-shrink:0;padding:8px 12px;align-items:center;gap:8px}.map-heading h2{font-size:.875rem}.map-viewport{flex:1 1;height:auto}.map-utilities{flex-shrink:0;padding:4px 10px;gap:5px;border-top:1px solid var(--line)}.map-view-controls{gap:4px;margin-left:auto}.pan-toggle{min-height:44px;padding:5px 9px;font-size:.75rem}.icon-button{width:44px;height:44px;flex-shrink:0}.zoom-controls .icon-button{width:44px}.zoom-controls span{min-width:42px;font-size:.75rem}.map-gesture-hint{display:none}.follow-toggle{color:var(--muted)}.follow-toggle.on{color:var(--cyan);border-color:#56626f}.command-notice{flex-shrink:0;margin:0;padding:6px 12px;min-height:calc(3em + 12px);max-height:calc(3em + 12px);overflow:auto;line-height:1.5;font-size:.8125rem;background:#202429;border-left:2px solid #647281;overflow-wrap:anywhere}.command-dock{display:grid;grid-template-columns:minmax(250px,.9fr) minmax(420px,1.3fr) minmax(230px,.7fr);align-items:center;gap:12px;padding:10px 0 calc(10px + env(safe-area-inset-bottom));flex-shrink:0;max-height:55dvh;overflow:auto}.loadout-roster,.mobile-unit-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;min-width:0}.quick-unit{min-width:0;min-height:54px;padding:5px 4px;position:relative;border:1px solid var(--line);border-top:2px solid var(--unit-color);border-radius:6px;background:#22272d;text-align:center;overflow-wrap:anywhere}.quick-unit.selected{border-color:var(--unit-color);background:#2f363e;box-shadow:inset 0 0 0 1px var(--unit-color)}.quick-unit.inactive{opacity:.5}.quick-unit strong{color:var(--unit-color);font-size:.95rem}.quick-unit strong span{color:var(--text);font-size:.8rem;margin-left:5px}.quick-weapon{color:#d2dcba;margin:3px 0}.quick-activity,.quick-weapon{display:block;font-size:.75rem;line-height:1.4;overflow-wrap:anywhere}.quick-activity{min-width:0;color:var(--muted);margin-top:3px}.quick-sidearm{display:block;color:var(--cyan)}.loadout-unit-weapon,.quick-vitals{display:block;color:#b9c2af;font-size:.65rem;margin-top:3px;line-height:1.4}.quick-vitals{display:flex;flex-wrap:wrap;justify-content:center;gap:0 6px}.quick-vitals>span{white-space:nowrap}.quick-health{position:absolute;left:4px;right:4px;bottom:2px;height:2px;background:#404953}.quick-health:after{content:"";display:block;width:var(--health);height:100%;background:var(--unit-color)}.controls-area{min-width:0;margin:0}.main-toolbar{display:flex;flex-wrap:nowrap;gap:6px;min-width:0}.mode-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;flex:1 1;min-width:0}.mode-controls .tool-button{min-width:0;padding:7px;gap:5px;min-height:48px}.undo-button{padding:7px;min-width:44px;min-height:48px}.keyboard-guide,.undo-button>span{display:none}.playback-controls{margin:0;flex-shrink:0}.playback-controls .primary-button{padding:10px 15px;min-height:48px;white-space:normal}.playback-controls .speed-button{min-height:48px;min-width:44px;padding:8px}.dock-secondary{display:flex;gap:6px;min-width:0}.mobile-command-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;flex:1 1;min-width:0}.mobile-command-tabs .button{min-width:0;padding:7px 5px;font-size:.8rem;gap:4px;overflow-wrap:anywhere}.quick-reload{flex-shrink:0;padding:7px;font-size:.8rem}.route-count{min-width:1.2em;color:var(--cyan);font-size:.7rem}.squad-panel{display:none;min-height:0;padding:12px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#627180 #1a2025}.squad-panel:not([data-mobile-view=closed]){display:block}.squad-panel .roster,.squad-panel [data-mobile-section]{display:none}.squad-panel[data-mobile-view=mission] [data-mobile-section=mission],.squad-panel[data-mobile-view=plan] [data-mobile-section=plan],.squad-panel[data-mobile-view=unit] [data-mobile-section=unit]{display:block}.mobile-sheet-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;position:sticky;top:-12px;background:#1a2025;margin:-12px -12px 12px;padding:8px 12px;border-bottom:1px solid var(--line);z-index:2}.mobile-sheet-heading strong{font-size:.95rem}.mobile-sheet-heading .button{min-height:44px;padding:6px 12px}.squad-panel .inspector{border-top:0;padding-top:0;margin-top:0}.panel-backdrop{display:none}.section-title{flex-wrap:wrap;gap:6px}.segmented-control button{min-height:44px;min-width:0;overflow-wrap:anywhere}.setting-note,.weapon-description{font-size:.8rem;line-height:1.65}.setting-label{font-size:.8rem}.setting-label>span{font-size:.7rem}.command-pair{grid-template-columns:repeat(2,minmax(0,1fr))}.command-pair .button{min-width:0;white-space:normal;overflow-wrap:anywhere;font-size:.8rem}.text-button{min-height:44px}.waypoint-list{max-height:none}.waypoint-list li{flex-wrap:wrap}.waypoint-select{min-height:44px;flex-wrap:wrap}.waypoint-action{white-space:normal;overflow-wrap:anywhere}.clear-path{min-height:44px}.advanced-actions,.equipment-details{margin-top:14px;border:1px solid var(--line);border-radius:5px;padding:0 10px 10px}.advanced-actions summary,.equipment-details summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:.85rem;color:var(--accent)}.advanced-actions:not([open]),.equipment-details:not([open]){padding-bottom:0}.context-actions{flex-shrink:0;padding:8px 10px;background:#272c32;border-top:1px solid #606e7d}.context-heading{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:6px;font-size:.8rem}.context-heading strong{color:var(--accent)}.context-heading>span{margin-left:auto;font-size:.75rem;color:#c4c9b8}.context-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.context-buttons .button{min-width:0;padding:7px 3px;font-size:.75rem;background:#202429;overflow-wrap:anywhere}.context-actions.trap-warning{background:#3c2d24;border-color:#ce8e64}select{width:100%;min-height:44px;padding:9px;color:var(--text);background:#1a1d21;border:1px solid #54606c;border-radius:4px;font:inherit;font-size:.85rem;min-width:0}.audio-settings input{display:block;width:100%;min-height:44px;accent-color:var(--accent)}.loadout-dialog{width:min(840px,calc(100% - 24px));padding:24px}.eyebrow{color:var(--cyan);font-size:.75rem;display:block;margin-bottom:6px}.loadout-intro{color:var(--muted);font-size:.85rem;line-height:1.7;margin:12px 0 16px}.loadout-roster{margin-bottom:18px}.loadout-roster .quick-unit{min-height:66px}.preparation-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:24px}.preparation-layout .setting-label{margin-top:0}.preparation-accessories .setting-label{margin-top:16px}.preparation-accessories .suppressor-control:first-child .setting-label{margin-top:0}.weapon-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.weapon-option{min-width:0;min-height:66px;padding:10px;border:1px solid #444e59;border-radius:5px;background:#1b1f23;text-align:left}.weapon-option strong{display:block;font-size:.85rem}.weapon-option span{display:block;color:var(--muted);font-size:.7rem;margin-top:6px;overflow-wrap:anywhere}.weapon-option.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:#2b3137}.weapon-option.selected strong{color:var(--accent)}.preparation-description{min-height:4em;color:#c4cbb6}.preparation-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:16px;margin-top:16px;border-top:1px solid var(--line)}.preparation-footer p{font-size:.8rem;color:var(--muted);line-height:1.6}.preparation-footer .button{flex-shrink:0}@media (min-width:700px) and (min-height:561px){.app-shell:not([data-panel=closed]) .game-layout{grid-template-columns:minmax(0,1fr) 300px}}@media (min-width:1180px) and (min-height:561px){.app-shell:not([data-panel=closed]) .game-layout{grid-template-columns:minmax(0,1fr) 340px}}@media (min-width:700px) and (max-width:1179px) and (min-height:561px){.app-header h1{font-size:.9rem}.header-actions .button>span{display:none}.command-dock{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);grid-template-areas:"units controls" "secondary controls";gap:6px 10px}.mobile-unit-strip{grid-area:units}.controls-area{grid-area:controls}.dock-secondary{grid-area:secondary}.main-toolbar{flex-wrap:wrap}.mode-controls{flex-basis:calc(100% - 50px)}.playback-controls{width:100%}.playback-controls .primary-button{flex:1 1}.key-hint,.map-legend{display:none}.map-view-controls{width:100%;justify-content:space-between;margin:0}}@media (max-width:699px){.app-shell{padding:0 8px}.app-header{min-height:56px;gap:5px}.brand{gap:5px}.brand svg{width:23px;height:23px}.brand span{font-size:.85rem;letter-spacing:.12em}.app-header h1,.mobile-controls-toggle{display:none}.header-actions{gap:2px}.header-actions .button{width:44px;padding:0}.header-actions .button>span{display:none}.command-dock{grid-template-columns:minmax(0,1fr);gap:6px;padding-top:6px}.main-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 44px minmax(84px,.5fr);gap:5px}.mode-controls .button{min-height:48px;flex-direction:column;gap:3px;padding:5px 1px;font-size:.75rem}.mode-controls svg{width:17px;height:17px}.playback-controls{width:100%}.playback-controls .primary-button{width:100%;padding:8px 5px;gap:5px;font-size:.8rem}.playback-controls .primary-button svg{width:16px}.key-hint,.playback-controls .speed-button{display:none}.quick-unit strong{font-size:.875rem}.quick-unit strong span,.quick-vitals{font-size:.75rem}.quick-reload{padding:6px;min-width:68px}.mobile-command-tabs .button{font-size:.8rem}.game-layout{display:block}.battle-area{height:100%}.squad-panel{position:absolute;inset:12% 0 0;z-index:55;border-radius:12px 12px 4px 4px;box-shadow:0 -10px 40px #0009;border-color:#6c7c8d}.panel-backdrop{display:block;position:absolute;inset:0;width:100%;height:100%;background:#0c0d0fa8;border:0;z-index:50}.map-heading{padding:6px 10px;flex-wrap:wrap}.map-legend{display:none}.map-utilities{padding:3px 4px}.map-view-controls{width:100%;margin:0;gap:2px;justify-content:space-between}.pan-toggle{padding:5px;font-size:.6875rem}.zoom-controls{gap:0}.zoom-controls span{min-width:34px;font-size:.6875rem}.command-notice{font-size:.75rem;padding:5px 9px;min-height:calc(3em + 10px)}.context-heading>span{flex-basis:100%;margin:0}.context-buttons .button{font-size:.6875rem}.dialog{padding:16px;width:calc(100% - 16px);max-height:calc(100dvh - 16px)}.dialog h2{font-size:1.125rem}.loadout-intro{font-size:.8rem;margin-bottom:12px}.loadout-roster{gap:5px;margin-bottom:12px}.loadout-unit-weapon{font-size:.625rem}.preparation-layout{grid-template-columns:1fr;gap:12px}.weapon-option{min-height:60px;padding:8px}.preparation-description{min-height:0}.preparation-footer{position:sticky;bottom:-16px;background:#20262b;margin-inline:-16px;padding:12px 16px}.preparation-footer p{font-size:.7rem}.tutorial-layout{grid-template-columns:1fr;gap:16px}.lesson-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:24dvh;overflow:auto}.lesson-list .button{min-width:0;padding:6px;font-size:.75rem;overflow-wrap:anywhere}.practice-guide{margin-bottom:6px;padding:6px 10px;max-height:24dvh;overflow:auto}.practice-guide p{font-size:.75rem}.practice-detail{max-height:none}}@media (max-width:1100px) and (max-height:560px) and (orientation:landscape){.app-shell{display:grid;grid-template-columns:minmax(0,1fr) 244px;grid-template-rows:auto minmax(0,1fr);grid-template-areas:"header dock" "map dock";padding:0 6px;gap:0 8px}.app-header{grid-area:header;min-height:48px}.app-header h1,.header-actions .button>span,.mobile-controls-toggle{display:none}.brand span{font-size:.85rem}.header-actions{gap:3px}.header-actions .button{padding:0;width:44px}.game-layout{grid-area:map;display:block;min-width:0}.battle-area{height:100%}.command-dock{grid-area:dock;display:flex;flex-direction:column;align-items:stretch;justify-content:center;max-height:100%;padding:8px 0 calc(8px + env(safe-area-inset-bottom));gap:10px}.mobile-unit-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-unit{min-height:52px}.main-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:6px}.mode-controls{grid-column:1;min-width:0}.mode-controls .button{min-width:0;min-height:44px;padding:5px 2px;font-size:.75rem;gap:2px;flex-direction:column}.mode-controls svg{width:16px;height:16px}.key-hint{display:none}.undo-button{min-height:44px}.playback-controls{grid-column:1/-1;width:100%}.playback-controls .primary-button{flex:1 1;min-width:0;font-size:.8rem;padding:8px}.playback-controls .speed-button{display:inline-flex}.dock-secondary{flex-wrap:wrap}.mobile-command-tabs{flex-basis:100%}.quick-reload{width:100%}.map-gesture-hint,.map-legend{display:none}.map-heading{padding:4px 8px}.map-utilities{padding:2px 4px}.map-view-controls{width:100%;justify-content:space-between;margin:0}.pan-toggle{min-height:44px;font-size:.7rem;padding:4px}.squad-panel{position:absolute;inset:0 0 0 auto;width:min(340px,100%);z-index:55;box-shadow:-10px 0 40px #0009}.panel-backdrop{display:block;position:absolute;inset:0;width:100%;height:100%;background:#0c0d0fa8;border:0;z-index:50}.practice-guide{position:absolute;top:48px;left:8px;width:calc(100% - 268px);z-index:25;max-height:24dvh;overflow:auto;padding:6px}.loadout-dialog{padding:16px}.preparation-layout{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}}@media (max-width:380px){.brand span{font-size:.75rem;letter-spacing:.08em}.equipment-portrait{display:none}.map-view-controls{flex-wrap:wrap}.map-view-controls>.vision-button{margin-left:auto}.preparation-footer{flex-wrap:wrap}.preparation-footer .button{flex:1 1}.quick-unit strong span{display:block;margin-left:0}.quick-vitals{line-height:1.35}.context-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){*,:after,:before{transition:none!important;animation:none!important}}.preparation-difficulty{margin:0 0 18px;padding:12px;background:#1b1f24;border:1px solid #48525d;border-radius:5px}.preparation-difficulty .setting-label{margin-top:0}.difficulty-badge{min-height:44px;padding:5px 10px;font-size:.75rem;color:var(--cyan);border-color:#4c5762;margin-right:auto}.app-shell[data-paused=true][data-finished=false] .map-heading{border-bottom-color:#a5b666;box-shadow:inset 3px 0 var(--accent)}.app-shell[data-paused=false] .map-heading{box-shadow:inset 3px 0 var(--cyan);border-bottom-color:#488b7d}.simulation-status{flex-wrap:wrap;margin-left:auto}.simulation-status.running>svg{animation:running-pulse 1.4s ease-in-out infinite}@keyframes running-pulse{50%{opacity:.4}}.result-dialog{position:relative}.result-close{position:absolute;top:8px;right:8px}@media (max-width:699px){.difficulty-badge{padding:4px 7px}.difficulty-badge,.simulation-status{font-size:.6875rem}.simulation-status time{margin-left:3px;padding-left:6px;font-size:.6875rem}}@media (prefers-reduced-motion:reduce){.simulation-status.running>svg{animation:none}}.game-layout{grid-template-rows:minmax(0,1fr)}.battle-area{height:100%;align-self:stretch}.dock-secondary .speed-button{min-width:44px;min-height:44px;padding:6px;flex-shrink:0}@media (max-width:380px){.quick-reload{min-width:44px}.quick-reload>span{display:none}}@media (max-width:699px){.command-notice{max-height:calc(3em + 10px)}.map-viewport{min-height:min(24dvh,170px)}.map-panel{overflow-y:auto;overscroll-behavior:contain}}@media (max-width:380px){.map-heading h2{display:none}.map-view-controls{flex-wrap:nowrap}.map-view-controls .pan-toggle{width:44px;padding:0;flex-shrink:0}.map-view-controls .pan-toggle>span{display:none}}@media (max-width:1100px) and (max-height:560px) and (orientation:landscape){.quick-reload{flex:1 1;width:auto}}.preparation-difficulty .segmented-control{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.door-anchor{position:absolute;width:24px;height:24px;border:2px solid var(--cyan);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:19}.map-action-dialog{width:min(420px,calc(100% - 24px));max-height:calc(100dvh - 24px);overflow:auto;border-color:#76b8a4;background:#1b242c;overscroll-behavior:contain}.map-action-dialog::backdrop{background:#0c0d0fa6}.door-route-menu,.position-menu{padding:12px;min-width:0}.door-menu-heading{position:sticky;top:-12px;z-index:2;display:flex;align-items:center;gap:6px;margin:-12px -12px 8px;padding:6px 12px;background:#1b242c;color:var(--cyan);font-size:.875rem;border-bottom:1px solid var(--line)}.door-menu-heading strong{min-width:0;overflow-wrap:anywhere}.door-menu-heading .icon-button{margin-left:auto;flex-shrink:0;min-width:44px;min-height:44px}.entry-options{display:grid;gap:5px}.entry-options .button{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:9px;min-height:54px;text-align:left;white-space:normal;overflow-wrap:anywhere}.entry-options strong{font-size:.875rem;font-weight:650}.door-route-menu p,.entry-options span{font-size:.75rem;color:#b9c2af;white-space:pre-line}.door-route-menu p{margin:8px 2px 2px;line-height:1.6;overflow-wrap:anywhere}.door-menu-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:6px}.door-menu-tools .button{min-width:0;min-height:44px;padding:6px;font-size:.75rem;overflow-wrap:anywhere}.door-menu-tools{margin-bottom:8px}.door-reservation-settings{min-width:0;margin:10px 0;padding:9px;border:1px solid #414b55;border-radius:7px}.door-reservation-settings legend{padding:0 5px;font-size:.75rem;color:#c7d5c4}.door-reservation-settings>label{display:flex;align-items:flex-start;gap:8px;min-height:42px;padding:7px 0;font-size:.75rem;line-height:1.5;overflow-wrap:anywhere}.door-reservation-settings input{flex:0 0 auto;margin-top:3px}.door-sync-select{display:grid;gap:5px;min-width:0;margin:9px 0;font-size:.75rem;line-height:1.5}.door-sync-select select{width:100%;min-width:0;min-height:44px;max-width:100%;color:#e2e9de;background:#202a32;border:1px solid #586b78;border-radius:5px;padding:8px;font:inherit}.door-state{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 8px;font-size:.75rem}.door-state>span{padding:3px 7px;border:1px solid #5e6c7a;border-radius:4px;color:#c9d2d9}.door-state .door-state-open{color:var(--cyan);border-color:#5a6775}.door-state .door-state-closed{color:#e1bb83;border-color:#8a7047}.door-state .door-state-trap{color:#ffae9d;border-color:#b96f5e;background:#442920}.entry-order{margin-top:8px}.entry-order .room-entry-sync{white-space:pre-line;overflow-wrap:anywhere;font-size:.7rem;line-height:1.6;color:var(--cyan);margin:5px 0}.entry-order ol{list-style:none;margin:4px 0 0;padding:0}.entry-order li{display:flex;align-items:center;gap:7px;min-height:44px;font-size:.75rem}.entry-order li>div{display:flex;margin-left:auto;flex-shrink:0}.entry-rank{display:grid;place-items:center;width:23px;height:23px;flex-shrink:0;border:1px solid var(--unit-color);color:var(--unit-color);border-radius:50%}.entry-passed{color:var(--cyan);font-size:.6875rem}.order-grip,.quick-unit[data-reorder-id],.unit-row[data-reorder-id]{touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}[data-dragging=true]{opacity:.65;cursor:grabbing!important;outline:2px solid var(--unit-color,var(--cyan))}[data-drop-target=true]{outline:2px dashed var(--unit-color,var(--cyan));outline-offset:-3px}.unit-grip{position:absolute;right:4px;top:3px;color:var(--muted);font-size:.75rem;opacity:.65}.entry-order li{gap:5px;flex-wrap:wrap}.entry-order li>span:nth-of-type(2){flex:1 1;min-width:65px;overflow-wrap:anywhere}.unit-row{height:auto;min-height:64px}.unit-row-top{flex-wrap:wrap}.unit-row>span:first-child{padding:0 4px;color:var(--muted)}@media (max-width:699px){.preparation-difficulty .segmented-control{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-height:560px) and (orientation:landscape){.map-action-dialog{width:min(600px,calc(100% - 24px))}.entry-options{grid-template-columns:repeat(3,minmax(0,1fr))}.entry-options .button{min-height:66px}}.resume-dialog{max-width:460px}.resume-dialog h2,.resume-dialog p{white-space:pre-line;overflow-wrap:anywhere}.resume-dialog h2{font-size:1.375rem;line-height:1.5}.map-legend{flex-wrap:wrap;row-gap:6px;column-gap:12px}.map-legend>span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.map-legend i{display:inline-block;width:12px;height:10px;flex-shrink:0}.legend-wall{background:#778391;border:2px solid #abb7c6}.legend-high{border:2px solid #e4ad71;background:linear-gradient(45deg,transparent 43%,#e4ad71 44% 56%,transparent 57%)}.legend-low{border:solid #88c8a7;border-width:1px 1px 4px}.legend-fixed{border:1px solid #82c6e7;border-bottom:5px double #82c6e7}@media (max-width:1179px){.map-legend{display:flex;width:100%;font-size:.6875rem}}@media (max-width:360px){.map-legend{column-gap:9px}.brand span{display:none}}@media (max-width:699px) and (orientation:portrait){.entry-options-four{grid-template-columns:repeat(2,minmax(0,1fr))}.entry-options-four .button{min-width:0;min-height:66px;padding:7px}}@media (max-height:560px) and (orientation:landscape){.entry-options-four{grid-template-columns:repeat(4,minmax(0,1fr))}}.position-menu>.button{width:100%;margin-top:10px}.position-menu>p{white-space:pre-line;overflow-wrap:anywhere;font-size:.875rem;line-height:1.6;margin:12px 0}.squad-order summary{min-height:44px;cursor:pointer;color:var(--accent);font-size:.875rem;padding:8px 0}.squad-order ol{list-style:none;padding:0;margin:8px 0}.squad-order li{display:flex;align-items:center;flex-wrap:wrap;gap:4px;min-height:48px;border-bottom:1px solid var(--line)}.squad-order-name{flex:1 1;min-width:70px;color:var(--unit-color);font-size:.875rem;overflow-wrap:anywhere}.squad-order li>div{display:flex;margin-left:auto}.dialog{overscroll-behavior:contain;scroll-padding-top:90px}.dialog-top{position:sticky;top:-24px;z-index:3;background:var(--panel);margin:-24px -24px 0;padding:12px 24px;border-bottom:1px solid var(--line)}.dialog-top>div,.dialog-top>h2{min-width:0;overflow-wrap:anywhere}.dialog h2{white-space:pre-line}.command-notice,.dialog h2,.dialog p,.lesson-content li,.lesson-list .button,.quick-activity,.quick-weapon,.setting-note{word-break:keep-all}.dialog-top>button{flex-shrink:0}.dialog p,.lesson-content li,.practice-detail li{white-space:pre-line;overflow-wrap:anywhere}.dialog-action{overflow-wrap:anywhere}.waypoint-reorder .text-button{min-width:44px;padding:6px}.target-chip{min-height:44px}@media (max-width:699px){.app-shell{padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right));padding-top:env(safe-area-inset-top)}.dialog-top{top:-16px;margin:-16px -16px 0;padding:10px 16px}.loadout-settings select,input[type=number],select{font-size:1rem}.map-action-dialog{margin:auto 8px max(8px,env(safe-area-inset-bottom));width:calc(100% - 16px);max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 24px);padding:0;border-radius:14px 14px 6px 6px}.command-dock{max-height:48dvh;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#627180 #1a2025}.controls-area{position:sticky;bottom:0;z-index:2;background:#181f25}}@media (max-height:560px) and (orientation:landscape){.command-dock{justify-content:flex-start;max-height:100%}.controls-area{order:-1;position:sticky;top:0;bottom:auto;flex-shrink:0;z-index:2;background:#181f25}.map-viewport{min-height:120px}.map-heading h2,.map-legend{display:none}.map-view-controls .pan-toggle{width:44px;padding:0;flex-shrink:0}.map-view-controls .pan-toggle>span{display:none}.quick-unit strong span{display:inline;margin-left:4px}.quick-vitals{font-size:.75rem}.app-shell{padding-left:max(6px,env(safe-area-inset-left));padding-right:max(6px,env(safe-area-inset-right))}}.situation-button{min-height:44px;padding:4px 8px;font-size:.75rem}.battle-toast{position:absolute;top:8px;left:8px;right:8px;z-index:19;display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:8px 12px;border:1px solid #d07964;border-radius:5px;background:#3b231bec;color:#ffc2ae;font-size:.8125rem;line-height:1.5;pointer-events:none;overflow-wrap:anywhere}.battle-toast span{font-size:.75rem}.situation-dialog h3{font-size:.95rem;margin:20px 0 10px;color:var(--accent)}.battle-log,.operation-list,.situation-units{list-style:none;padding:0;margin:0}.operation-list li,.situation-units li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;padding:9px 0;border-bottom:1px solid var(--line);font-size:.875rem}.operation-list li{flex-direction:column}.operation-list span,.situation-units span{color:var(--muted)}.battle-log li{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.875rem}.battle-log time{flex-shrink:0;color:var(--muted);font-size:.75rem;padding-top:3px}.battle-log li>div{min-width:0;overflow-wrap:anywhere}.battle-log p{color:var(--muted);margin-top:5px;line-height:1.6;font-size:.8125rem}.battle-log [data-severity=danger] strong{color:#ffb29c}.battle-log [data-severity=warning] strong{color:#e5c994}.mission-score{display:flex;flex-direction:column;align-items:center;gap:6px;margin:14px 0}.mission-grade{display:flex;align-items:baseline;flex-wrap:wrap;justify-content:center;gap:10px;color:var(--accent);font-size:2.5rem;line-height:1.3}.mission-grade[data-grade=F]{color:#efac94}.mission-grade span{font-size:.875rem}.mission-score>span{color:var(--cyan);font-size:1.125rem}.result-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0}.result-metrics div{min-width:0}.result-metrics dt{font-size:.8125rem;color:var(--muted)}.result-metrics dd{font-size:1rem;color:var(--accent);margin:8px 0;overflow-wrap:anywhere}.casualty-list{list-style:none;text-align:left;padding:12px;border:1px solid #995c4b;border-radius:5px;background:#34261f}.casualty-list li{display:flex;flex-wrap:wrap;gap:4px 10px;padding:6px 0;font-size:.8125rem}.casualty-list span{margin-left:auto;color:#efac94}.score-details{text-align:left;border:1px solid var(--line);border-radius:5px;padding:0 12px}.score-details summary{cursor:pointer;min-height:44px;padding:10px 0;font-size:.8125rem;color:var(--cyan)}.score-details p{font-size:.8125rem;line-height:1.6}@media (max-width:380px){.result-stats{gap:16px;flex-wrap:wrap}.result-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.simulation-status{gap:4px}}.corner-context .context-heading span{white-space:pre-line}.corner-context>.button{width:100%}.corner-directions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.corner-directions .button{min-height:44px;flex:1 1}.corner-plan-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 16px}.corner-plan-points div{padding:10px 6px;text-align:center;border:1px solid var(--line)}.corner-plan-points dt{font-size:.8rem;color:var(--muted);overflow-wrap:anywhere}.corner-plan-points dd{margin:6px 0 0;font:600 1rem var(--font-mono,monospace)}#root,body,html{width:100%;height:100%;min-width:0;overflow:hidden;overscroll-behavior:none}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap!important;border:0!important}.app-shell{--dock-height:116px;--hud-gap:8px;position:fixed;inset:0;display:block;width:100%;height:100dvh;max-width:none;padding:0;margin:0}.app-shell:not([data-panel=closed]) .game-layout,.game-layout{display:block;position:absolute;inset:0;margin:0}.battle-area,.map-panel{display:block;border:0;border-radius:0;padding:0;background:#13181c;overflow:hidden}.battle-area,.map-panel,.map-viewport{position:absolute;inset:0;width:100%;height:100%}.map-viewport{min-height:0;margin:0;aspect-ratio:auto}.map-canvas,.map-canvas canvas{width:100%;height:100%;touch-action:none}.app-header{position:absolute;z-index:60;top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));display:flex;min-height:52px;gap:12px;padding:4px 6px 4px 12px;border:1px solid #5b656d;border-radius:10px;background:#1a2025e8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand{gap:8px;flex:1 1;min-width:26px}.brand span{font-size:.875rem;letter-spacing:.13em}.app-header .header-actions{display:flex;gap:4px;flex-shrink:0}.header-actions .button{width:44px;height:44px;min-height:44px;padding:0;border-radius:7px}.simulation-status{display:flex;flex-direction:column;gap:1px;margin:0;flex-shrink:0;font-size:.625rem;font-weight:500}.simulation-status time{border:0;margin:0;padding:0;font-size:.8125rem;font-weight:550;color:var(--text)}.simulation-status>span{display:flex;align-items:center;gap:3px;font-size:.625rem}.situation-button{position:relative}.operation-count{position:absolute;top:1px;right:2px;font-size:.625rem;color:var(--accent)}.command-dock{position:absolute;z-index:60;left:50%;bottom:max(8px,env(safe-area-inset-bottom));translate:-50% 0;display:flex;flex-direction:column;grid-area:auto;gap:8px;align-items:stretch;justify-content:flex-start;width:min(560px,calc(100% - max(16px, env(safe-area-inset-left) + env(safe-area-inset-right) + 16px)));max-height:calc(100dvh - 84px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:6px;border-radius:12px;background:#1a2025d9;border:1px solid #5b656d;box-shadow:0 4px 24px #0004;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow-y:auto}.command-dock .mobile-unit-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-area:auto;gap:6px}.command-dock .quick-unit{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;padding:5px 3px 8px;border:1px solid #4d5963;border-top:2px solid var(--unit-color);border-radius:7px;background:#161c21e8;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.command-dock .quick-unit.selected{border-color:var(--unit-color);box-shadow:inset 0 0 0 1px var(--unit-color);background:#29343ce8}.command-dock .quick-unit strong{display:flex;align-items:baseline;gap:5px;font-size:1rem;line-height:1.2}.command-dock .quick-unit strong span{display:inline;margin:0;font-size:.75rem;font-weight:550;color:var(--text)}.command-dock .quick-weapon{display:flex;align-items:center;justify-content:center;margin:0;color:var(--unit-color);line-height:1}.quick-down{font-size:.6875rem;color:#efad94}.command-dock .controls-area{order:0;position:static;grid-area:auto;margin:0;background:transparent}.command-dock .main-toolbar{display:flex;align-items:stretch;gap:5px}.command-dock .mode-controls{display:grid;grid-template-columns:repeat(3,minmax(44px,1fr));gap:5px;flex:1 1;grid-area:auto}.command-dock .mode-controls .button{flex-direction:row;gap:5px;padding:8px 5px;font-size:.75rem;min-height:48px;min-width:44px;border-radius:7px}.command-dock .mode-controls svg{width:18px;height:18px}.command-dock .dock-expand,.command-dock .undo-button{display:grid;place-items:center;padding:0;width:44px;min-width:44px;min-height:48px;border-radius:7px}.command-dock .mobile-controls-toggle{display:grid}.dock-expand[aria-expanded=true] svg{rotate:180deg}.command-dock .playback-controls{display:flex;grid-area:auto;margin:0}.command-dock .playback-controls .primary-button{display:flex;align-items:center;gap:6px;min-height:48px;min-width:80px;padding:8px 10px;border-radius:7px;font-size:.8125rem}.command-dock .dock-secondary{display:flex;flex-wrap:nowrap;grid-area:auto;gap:5px}.command-dock .quick-reload{flex:0 1;width:auto;min-width:44px}.mobile-command-tabs .button{min-height:44px}.map-view-toggle{position:absolute;z-index:25;right:max(8px,env(safe-area-inset-right));top:45%;display:flex;align-items:center;gap:8px;padding:10px;min-height:44px;border-radius:8px;background:#1a2025e8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:.75rem}.panel-backdrop{display:block;position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0;background:#0c0d0f80;z-index:35}.squad-panel{position:absolute;z-index:45;inset:auto;bottom:calc(var(--dock-height) + max(8px, env(safe-area-inset-bottom)) + 8px);left:50%;translate:-50% 0;width:min(600px,calc(100% - 16px));max-height:min(62dvh,calc(100dvh - var(--dock-height) - 100px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));padding:16px;border:1px solid #6c7c8d;border-radius:16px 16px 10px 10px;background:#1a2025f5;box-shadow:0 -10px 40px #0006;overflow-y:auto}.sheet-chrome{position:sticky;top:-16px;z-index:3;background:#1a2025;margin:-16px -16px 12px;padding:0 16px 10px;border-bottom:1px solid var(--line)}.squad-panel .mobile-sheet-heading{position:static;margin:0;padding:0 0 6px;border:0;background:transparent}.squad-panel{scroll-padding-top:var(--sheet-chrome-height,150px);scroll-padding-bottom:16px}.mobile-sheet-heading strong{min-width:0;font-size:.875rem;overflow-wrap:anywhere}.sheet-tabs{display:flex;flex-wrap:wrap;gap:6px}.sheet-tabs .button{flex:1 0 auto;min-width:0;min-height:44px;padding:7px;white-space:nowrap;line-height:1.35}.sheet-handle{display:flex;align-items:center;justify-content:center;width:100%;min-height:24px;padding:0;border:0;background:transparent;touch-action:none}.sheet-handle>span{width:32px;height:3px;border-radius:3px;background:#94a0aa}.sheet-handle:not(:disabled):hover{background:transparent}.dialog{position:fixed;inset:auto 0 max(8px,env(safe-area-inset-bottom));margin:0 auto;width:min(680px,calc(100% - 16px));max-height:calc(90dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));border-radius:16px 16px 10px 10px;padding:20px;background:#1a2025f5;scroll-padding-top:76px}.dialog::backdrop{background:#0b0c0e99}.dialog .dialog-top{top:-20px;margin:0 -20px 12px;padding:12px 20px;background:#1a2025}.dialog>.sheet-handle{margin:-12px 0 4px}.map-action-dialog{width:min(520px,calc(100% - 16px));padding:0}.map-action-dialog>.sheet-handle{margin:0}.map-action-dialog .door-menu-heading{top:0}.game-menu-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.game-menu-actions .button{min-height:52px;justify-content:flex-start;white-space:normal;overflow-wrap:anywhere;padding:10px;font-size:.875rem}.map-view-sheet .map-utilities{display:flex;flex-direction:column;gap:14px;padding:0;border:0}.map-view-sheet .map-legend{display:flex;width:100%;font-size:.75rem;gap:10px 14px}.map-view-sheet .map-view-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:8px}.map-view-sheet .pan-toggle{display:flex;width:auto;padding:8px;min-height:48px;gap:6px}.map-view-sheet .pan-toggle>span{display:inline}.map-view-sheet .vision-button{min-width:44px;min-height:48px}.map-view-sheet .zoom-controls{display:flex;align-items:center;justify-content:space-between;font-size:.875rem}.map-view-sheet .zoom-controls button{min-width:44px;min-height:48px}.map-view-sheet .setting-note{margin-top:14px}.fullscreen-guide li,.fullscreen-guide p{white-space:pre-line;line-height:1.7;overflow-wrap:anywhere;font-size:.875rem}.fullscreen-guide ol{padding-left:24px}.fullscreen-guide li{margin:12px 0}.command-notice.notice-visible{position:absolute;z-index:29;bottom:calc(var(--dock-height) + max(8px, env(safe-area-inset-bottom)) + 16px);left:50%;translate:-50% 0;width:min(520px,calc(100% - 32px));max-height:none;min-height:0;margin:0;padding:8px 12px;border:1px solid #5b656d;border-radius:8px;background:#1a2025e8;font-size:.75rem;white-space:pre-line;pointer-events:none}.app-shell:not([data-panel=closed]) .command-notice{display:none}.target-mode-hint{position:absolute;z-index:30;top:calc(max(8px, env(safe-area-inset-top)) + 60px);left:50%;translate:-50% 0;display:flex;align-items:center;gap:10px;max-width:calc(100% - 24px);border:1px solid var(--accent);border-radius:8px;background:#1a2025f5;padding-left:12px;font-size:.8125rem}.target-mode-hint button{min-height:44px;min-width:44px}.battle-toast{width:fit-content;max-width:calc(100% - 16px)}.battle-toast,.practice-guide{top:calc(max(8px, env(safe-area-inset-top)) + 60px);left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right))}.practice-guide{position:absolute;z-index:30;max-height:min(30dvh,180px);overflow:auto;margin:0;background:#1a2025e8}@media (max-width:600px){.app-header{gap:8px;padding-left:8px}.brand span{display:none}.simulation-status{margin-left:auto}.command-dock{gap:6px}.command-dock .mode-controls .button>span{display:none}.command-dock .playback-controls .primary-button{min-width:76px}.game-menu-actions{grid-template-columns:minmax(0,1fr)}}@media (max-width:360px){.command-dock .main-toolbar,.command-dock .mode-controls{gap:2px}.command-dock .playback-controls .primary-button{min-width:48px;padding:5px}.command-dock .playback-controls .primary-button>span{display:none}.command-dock .mobile-unit-strip,.command-dock .quick-unit strong{gap:3px}.command-dock .quick-unit strong span{display:none}}@media (max-height:560px){.app-header{min-height:48px}.command-dock{width:min(540px,calc(100% - 16px));gap:4px;padding:4px}.command-dock .quick-unit{min-height:44px;padding-top:3px;padding-bottom:5px}.command-dock .dock-expand,.command-dock .mode-controls .button,.command-dock .playback-controls .primary-button,.command-dock .undo-button{min-height:44px}.practice-guide{max-height:70px}}.command-dock .main-toolbar{flex-wrap:nowrap}.command-dock .mode-controls{flex-basis:0;min-width:140px}.command-dock .playback-controls,.command-dock .playback-controls .primary-button{width:auto;flex:0 0 auto}.command-dock .dock-expand,.command-dock .undo-button{flex:0 0 44px}.command-dock .quick-unit strong{flex-wrap:nowrap;justify-content:center;min-width:0;max-width:100%}.command-dock .quick-unit strong span{flex:1 1;min-width:0}.inspector .section-title h2{min-width:0;overflow-wrap:anywhere}@media (max-width:360px){.command-dock .mode-controls{min-width:136px}}.interaction-counts{list-style:none;padding:0;margin:0}.interaction-counts li{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.875rem}.interaction-counts li>span{min-width:0;overflow-wrap:anywhere}.practice-guide{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;padding:6px 10px;min-height:44px;max-height:none;overflow:visible;border-radius:8px}.practice-guide>strong{font-size:.8125rem;min-width:0;overflow-wrap:anywhere}.practice-guide .practice-actions{display:flex;flex-wrap:wrap;gap:5px;margin:0}.practice-guide .button{min-height:44px;padding:6px 10px;font-size:.75rem}.practice-description li,.practice-description p{white-space:pre-line;overflow-wrap:anywhere;line-height:1.7}.language-control{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:12px 0}.language-control>span{font-size:.85rem;color:var(--muted,#adb2a5)}.language-control select{flex:1 1;min-width:120px;max-width:100%;padding:10px}@media (max-width:560px){.language-control>span{flex-basis:100%}.language-control select{width:100%}}.game-settings{padding:0}.game-settings .audio-settings{margin:16px 0 0;padding:16px 0 0;border-top:1px solid #373f48}.preference-toggle{display:flex;align-items:flex-start;gap:12px;padding:14px 0;border-bottom:1px solid #373f48}.preference-toggle input{flex:0 0 auto;width:20px;height:20px;margin:2px 0;accent-color:#78d2c3}.preference-toggle span{min-width:0}.preference-toggle small,.preference-toggle strong{display:block;white-space:pre-line;overflow-wrap:anywhere}.preference-toggle small{margin-top:6px;color:#adb2a5;font-size:.85rem;line-height:1.65}.entry-preview{display:flex;align-items:center;gap:16px;margin:12px 0;padding:10px;background:#17222a;border:1px solid #615a3d;border-radius:10px}.entry-preview svg{display:block;width:112px;height:112px;flex:0 0 auto;border-radius:6px}.entry-preview figcaption{min-width:0}.entry-preview figcaption strong{display:block;font-size:1.65rem;color:#ffcb76;margin:4px 0;overflow-wrap:anywhere}.entry-preview figcaption p{margin:0;white-space:pre-line;font-size:.85rem}.app-shell :is(p,h1,h2,h3,.setting-note,.weapon-description,.lesson-tip,.lesson-goal){white-space:pre-line;overflow-wrap:anywhere}.app-shell select{text-overflow:ellipsis;min-width:0}.settings-dialog{max-width:600px}@media (max-width:480px){.entry-preview{flex-direction:column;align-items:stretch;gap:10px}.entry-preview svg{width:88px;height:88px;align-self:center}.entry-preview figcaption strong{font-size:1rem}}.squad-size-control{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0}.squad-size-control select{width:110px;min-height:44px}.command-dock .mobile-unit-strip{grid-template-columns:repeat(var(--squad-count,4),minmax(64px,1fr));overflow-x:auto;overscroll-behavior-x:contain}.pre-run-prepare{position:absolute;z-index:25;top:auto;left:50%;right:auto;transform:translateX(-50%);bottom:calc(var(--dock-height, 94px) + max(8px, env(safe-area-inset-bottom)) + 8px);max-width:calc(100% - 32px);min-height:44px;padding:10px 24px;border-color:#b5b39b;background:#22241ff2;box-shadow:0 2px 14px #0006}.score-breakdown{margin:16px 0;padding:12px;border:1px solid #5b656d;border-radius:8px}.score-breakdown>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin:10px 0}.score-breakdown dt{overflow-wrap:anywhere}.score-breakdown dd{margin:0;color:#a5d8ed}.score-breakdown .score-loss{color:#ef9c89}.score-breakdown small{display:block;color:var(--muted);margin-top:4px}.loadout-dialog[open]{display:flex;flex-direction:column;padding:0;overflow:hidden;height:min(860px,calc(90dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom)))}.loadout-dialog>.sheet-handle{flex-shrink:0}.loadout-dialog>.dialog-top{position:static;flex-shrink:0;margin:0;padding:12px 20px}.loadout-content{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 20px;scroll-padding-block:12px}.loadout-dialog>.preparation-footer{position:static;flex-shrink:0;margin:0;padding:12px 20px max(12px,env(safe-area-inset-bottom));background:#20262b;box-shadow:0 -6px 18px #0002;justify-content:flex-end}.loadout-next-step{margin-top:16px;color:var(--muted);font-size:.8rem;line-height:1.6}.loadout-dialog .preparation-footer .button{flex:0 0 auto;min-height:48px;padding:12px 20px}.loadout-roster .quick-unit{scroll-margin-block:12px}@media (max-height:500px){.loadout-dialog>.dialog-top{padding-block:8px}.loadout-dialog .dialog-top h2{white-space:normal}}@media (max-width:480px){.loadout-dialog .preparation-footer .button{width:100%}.loadout-roster{grid-template-columns:repeat(2,minmax(0,1fr))}}.entry-action-dialog{background:#1b242c;margin:auto auto max(8px,env(safe-area-inset-bottom));max-height:48dvh}.entry-action-dialog::backdrop{background:transparent}.entry-action-dialog[data-map-input]{position:fixed;inset:auto 0 max(8px,env(safe-area-inset-bottom));z-index:70;margin:0 auto}.app-shell:has(.entry-action-dialog[open]) :is(.training-guide,.practice-guide,.map-view-toggle,.muzzle-legend){display:none}.entry-map-highlight{position:absolute;z-index:24;width:44px;height:44px;translate:-50% -50%;border:3px solid #ffcc76;border-radius:50%;box-shadow:0 0 0 4px #14171ab8;pointer-events:none}.entry-map-highlight:after,.entry-map-highlight:before{content:"";position:absolute;background:#ffcc76}.entry-map-highlight:before{width:58px;height:2px;left:-10px;top:18px}.entry-map-highlight:after{width:2px;height:58px;left:18px;top:-10px}.entry-map-highlight span{position:absolute;bottom:calc(100% + 12px);left:50%;translate:-50% 0;width:max-content;max-width:180px;padding:4px 8px;border:1px solid #ffcc76;border-radius:5px;background:#161c21f5;color:#ffda9b;font-size:.75rem;line-height:1.4;text-align:center;white-space:pre-line}.service-information{margin-top:20px;padding-top:12px;border-top:1px solid var(--line);min-width:0;font-size:.75rem;line-height:1.6}.service-information p{margin:0;white-space:pre-line}.service-information nav{display:flex;flex-wrap:wrap;gap:0 16px}.service-information a,.service-information summary{color:var(--muted);min-height:44px;padding:10px 0;overflow-wrap:anywhere;cursor:pointer}.service-information .business-disclosure{padding:16px;margin-top:8px;border-radius:8px;font-size:.75rem}.service-information[lang] .business-label{display:none}.service-information[lang|=en] .business-label[data-language=en],.service-information[lang|=ja] .business-label[data-language=ja],.service-information[lang|=ko] .business-label[data-language=ko],.service-information[lang|=zh] .business-label[data-language=zh]{display:inline}.camera-follow-chip{position:absolute;z-index:25;right:max(8px,env(safe-area-inset-right));display:flex;align-items:center;gap:5px;min-height:44px;max-width:150px;padding:8px 10px;border-radius:8px;background:#1a2025e8;font-size:.75rem;white-space:normal}.camera-follow-chip.on{border-color:#c5d380;color:#e0e9b4}.camera-follow-chip span{overflow-wrap:anywhere}.graphics-settings{display:grid;gap:12px;padding-block:16px;border-top:1px solid #49535e}.graphics-settings .language-control{gap:12px;flex-wrap:wrap}.graphics-settings select{max-width:100%;min-height:44px}:root{--surface:#1d1f1b;--surface-raised:#292c25;--radius-control:2px}.app-header,.command-dock{border-radius:2px;border-color:#62665a;background:#171816ed;box-shadow:0 2px 12px #0004}.app-header{border-top:1px solid #707367}.brand{min-width:0}.brand .brand-wordmark{display:block;width:min(112px,100%);height:auto;max-height:38px;object-fit:contain;object-position:left center}.button,.camera-follow-chip,.command-dock .dock-expand,.command-dock .mode-controls .button,.command-dock .playback-controls .primary-button,.command-dock .quick-unit,.command-dock .undo-button,.command-notice.notice-visible,.header-actions .button,.icon-button,.map-view-toggle,.muzzle-legend,.pause-indicator,.quick-unit,.segmented-control button,.target-mode-hint,.weapon-option{border-radius:var(--radius-control)}.dialog,.entry-action-dialog,.squad-panel{border-radius:3px;border-color:#65695b;background:#1d1f1bfa}.dialog .dialog-top,.loadout-dialog>.preparation-footer,.sheet-chrome{background:#22241f}.dialog::backdrop{background:#090b08ad}.setting-label strong,h1,h2,h3{font-weight:700;letter-spacing:-.015em}h2{font-size:1.25rem;line-height:1.45}button,input,select{font-family:inherit}.simulation-status time{font-size:1.1rem;font-weight:600;letter-spacing:.04em}.simulation-status{color:var(--accent)}.pause-indicator{color:#e6e5dcc9;background:#17181699;border-color:#74776977}.pause-indicator svg{color:var(--accent)}.active-tool{color:#ddd6b6;border-color:var(--accent);box-shadow:inset 2px 0 var(--accent);background:#2c2e25}.command-dock .quick-unit{background:#171916ed;border-bottom-color:var(--unit-color)}.command-dock .quick-unit.selected{background:#2a3028ed}.command-dock .quick-unit strong{font-size:1.125rem;font-weight:700}.command-dock .quick-unit strong span{font-size:.875rem;font-weight:600;letter-spacing:.015em}.command-dock .primary-button{box-shadow:none}.button:not(:disabled):hover,.icon-button:not(:disabled):hover{background-color:#303329;border-color:#a7aa9c}.camera-follow-chip,.command-notice.notice-visible,.map-view-toggle,.muzzle-legend{background-color:#171916ed;border-color:#63675b}.camera-follow-chip.on{color:#ddd6b6;border-color:#c1bca0}.pre-run-prepare{width:max-content;font-size:1rem;line-height:1.4}.map-panel:has(.pre-run-prepare){--prepare-clearance:calc(max(44px, 1.4rem + 22px) + 8px)}.command-notice.notice-visible{bottom:calc(var(--dock-height) + max(8px, env(safe-area-inset-bottom)) + 16px + max(var(--prepare-clearance, 0px), var(--camera-clearance, 0px)))}.muzzle-legend{bottom:calc(var(--dock-height, 94px) + max(8px, env(safe-area-inset-bottom)) + 8px + max(var(--prepare-clearance, 0px), var(--camera-clearance, 0px)) + var(--notice-clearance, 0px))}.map-panel:has(.command-notice.notice-visible) .muzzle-legend{visibility:hidden}.button.primary,.primary-button{background:var(--accent);border-color:#d9d3b6;color:#171816}.button.primary:not(:disabled):hover,.primary-button:not(:disabled):hover{background:#d0cbb4;color:#171816}.door-reservation-settings,.entry-preview,.preparation-difficulty,.score-breakdown{border-radius:2px}@media (max-width:520px){.brand .brand-wordmark{max-height:32px;width:min(98px,100%)}.app-header{gap:6px;padding-left:8px}.simulation-status time{font-size:.9rem}.command-dock .quick-unit strong span{font-size:.75rem}}body:has(.about-page){height:auto;overflow:auto;background:#171816}.about-page{max-width:960px;margin:auto;padding:48px max(20px,env(safe-area-inset-left)) 64px;color:#e6e5dc;line-height:1.8;overflow-wrap:anywhere}.about-mark img{display:block;width:min(360px,100%);height:auto}.about-kicker{color:#c1bca0;font-weight:700;letter-spacing:.1em;font-size:.85rem}.about-page h1{font-size:clamp(2rem,6vw,3.6rem);line-height:1.2;margin:32px 0}.about-page h2{font-size:1.35rem;margin-top:40px}.about-page p{white-space:pre-line}.about-image{width:100%;height:auto;display:block;margin:38px 0}.about-page nav{display:flex;flex-wrap:wrap;gap:12px 24px;border-top:1px solid #43515c;padding-top:24px;margin-top:48px}.about-page a{color:#d3ccb0}.about-page .primary{display:inline-flex;color:#171816;padding:12px 28px;text-decoration:none;margin-top:12px}.about-page{word-break:keep-all}.about-page .primary{background:#c1bca0;border-color:#d9d3b6;font-weight:700}.map-camera-controls{position:absolute;z-index:25;right:8px;bottom:calc(var(--dock-height, 116px) + 16px);display:flex;flex-direction:column;align-items:flex-end;gap:8px}.map-camera-controls :is(.map-view-toggle,.camera-follow-chip){position:relative;top:auto;right:auto;min-height:44px;margin:0}@media (max-width:600px){.map-camera-controls :is(.map-view-toggle,.camera-follow-chip){width:44px;height:44px;padding:0;justify-content:center}.map-camera-controls button>span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}}.squad-suppressors{margin:12px 0 18px;padding:12px;border:1px solid var(--line);background:var(--surface)}.squad-suppressors .setting-label{margin-top:0;flex-wrap:wrap}.squad-suppressors .setting-note{white-space:pre-line;margin:6px 0 10px}.squad-suppressors .segmented-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.squad-suppressors button{min-width:0;white-space:normal;overflow-wrap:anywhere}.squad-suppressors button[aria-pressed=true]{background:#35392f;color:#e6e5dc;border-color:var(--accent)}