.site-sections{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.site-sections a{color:#b2bfd1;padding:9px 14px;border-radius:8px;text-decoration:none;font-size:16px;white-space:nowrap;border:1px solid transparent}.site-sections a:hover{background:#ffffff08;color:#fff}.site-sections a[aria-current=page]{color:#f2d59e;border-color:#dfbd7f3a;background:#dfbd7f0b}.maps-page header{height:auto;min-height:92px}.maps-page main{max-width:2100px}.maps-hero{display:flex;justify-content:space-between;align-items:center;gap:32px;padding:16px 0 42px;border-bottom:1px solid var(--line);margin-bottom:28px}.maps-hero h1{font-size:clamp(36px,4.7vw,72px)}.maps-hero p{font-size:17px;line-height:1.8}.maps-counter{display:grid;text-align:right;gap:7px}.maps-counter strong{font-size:90px;font-weight:500;line-height:1;color:#dfbd7f}.maps-counter span{font-size:14px;color:#d9c39a;letter-spacing:2px}.maps-counter small{color:var(--muted);font-size:15px}.gallery-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px}.gallery-heading h2{font-size:23px;font-weight:550;letter-spacing:-.5px;margin:0}.maps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:20px}.map-card{display:block;min-width:0;text-decoration:none;color:#f6f4f0;border:1px solid #354052;border-radius:14px;background:#141c28;overflow:hidden;transition:transform .2s,border-color .2s,box-shadow .2s}.map-card:hover,.map-card:focus-visible{transform:translateY(-4px);border-color:#c2a470;box-shadow:0 14px 34px #0005;outline:none}.map-card-visual{position:relative;aspect-ratio:16/9;overflow:hidden;background:#1e2935}.map-card-visual img{width:100%;height:100%;object-fit:cover;transition:transform .45s;display:block}.map-card:hover img{transform:scale(1.05)}.map-card-visual:after{content:'';position:absolute;inset:30% 0 0;background:linear-gradient(transparent,#10151dc9)}.map-card-index{position:absolute;left:16px;top:12px;z-index:1;font-size:14px;letter-spacing:1px;padding:3px 8px;background:#0b1018b0;border:1px solid #ffffff25;border-radius:5px;color:#f1d49e}.map-card-body{padding:16px 18px;display:flex;justify-content:space-between;gap:12px;align-items:center}.map-card-body h3{margin:0 0 3px;font-size:20px;font-weight:550;letter-spacing:-.3px}.map-card-body small{color:#9aabbe;font-size:15px}.map-card-arrow{font-size:24px;color:var(--accent)}.map-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:13px;font-size:16px;margin:4px 0 24px}.map-breadcrumb a{color:#c8ac7b;text-decoration:none}.map-breadcrumb>span:not(.map-save-status){color:#57657a}.map-save-status{margin-left:auto;color:#9cbca9;font-size:15px}.map-save-status[data-error=true]{color:#ff9c9c}.plan-header{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:20px}.plan-title-wrap{min-width:0;flex:1}.plan-title-wrap label{display:block;margin-bottom:6px}.plan-title-wrap input{width:100%;max-width:720px;color:#f2f4f8;border:0;border-bottom:1px solid #354052;background:transparent;padding:6px 0 10px;font-size:clamp(22px,2.5vw,34px);font-weight:550;letter-spacing:-.5px}.plan-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.tactics-layout{display:grid;grid-template-columns:224px minmax(0,1fr);gap:20px;align-items:start}.tactics-tools{background:#141c28;border:1px solid #303b4d;border-radius:12px;padding:16px}.tool-section+.tool-section{border-top:1px solid #303b4d;padding-top:16px;margin-top:16px}.tool-section h3{margin:0 0 13px;font-size:14px;color:#c6a66e;font-weight:500;letter-spacing:.5px;display:flex;gap:9px}.tool-section h3 span{color:#b6c4d6}.drawing-tools,.unit-tools{display:grid;grid-template-columns:1fr 1fr;gap:6px}.drawing-tools button{padding:9px 5px;font-size:14px;min-height:57px;display:grid;place-items:center;gap:4px;background:#1a2534;border-color:#344153}.drawing-tools button>span{font-size:21px;line-height:1}.drawing-tools button[aria-pressed=true],.unit-tools button[aria-pressed=true]{border-color:#dfbd7f;color:#f1d49d;background:#dfbd7f19}.unit-tools button{display:flex;align-items:center;justify-content:center;gap:12px;min-height:42px;background:#1a2534}.unit-tools img{width:17px;height:20px;object-fit:contain}.tactic-colors{display:flex;gap:7px;margin-bottom:15px}.tactic-colors button{min-height:30px;width:30px;padding:0;background:var(--swatch);border:3px solid #141c28;border-radius:50%;outline:1px solid #536173}.tactic-colors button[aria-pressed=true]{outline:2px solid #f4d8a2;outline-offset:2px}.tactics-tools label{font-size:14px;color:#b6c4d6;display:block;margin-top:9px}.property-row{display:flex!important;justify-content:space-between;gap:8px}.tactics-tools input[type=range]{width:100%;accent-color:#dfbd7f;min-height:28px;cursor:pointer}.tactics-tools input:not([type=range]){width:100%;margin-top:5px;padding:8px 9px;border:1px solid #3c4960;border-radius:6px;background:#0d1520;color:#f0f3f7;font-size:16px}.delete-object{width:100%;margin-top:14px;color:#ffb2b2;background:#ff87870a;border-color:#ff87872a;font-size:14px}.tactics-help{margin-top:18px;color:#a7b5c8;font-size:14px;line-height:1.7}.tactics-help summary{color:#d4bd90;cursor:pointer}.tactics-help p{margin-top:10px}.tactics-workspace{min-width:0}.map-stage-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;background:#141c28;border:1px solid #303b4d;border-radius:12px 12px 0 0}.history-tools,.zoom-tools{display:flex;align-items:center;gap:7px}.map-stage-toolbar button{min-width:36px;padding:8px;font-size:18px}.map-stage-toolbar #zoom-reset{font-size:15px;min-width:60px}.history-tools span{font-size:15px;color:#aabbcd;margin-left:5px}.map-viewport{height:min(72dvh,1000px);overflow:auto;overscroll-behavior:contain;background:#070c12;border:1px solid #303b4d;border-top:0;scrollbar-color:#59677b #101721;position:relative;touch-action:none}.map-canvas{width:100%;margin:auto;line-height:0}.map-canvas > svg{display:block;width:100%;height:auto;touch-action:none;user-select:none;-webkit-user-select:none}.map-canvas > svg[data-tool=select]{cursor:default}.map-canvas > svg[data-tool=eraser]{cursor:crosshair}.map-canvas > svg[data-tool]:not([data-tool=select]){cursor:crosshair}.tactical-object{cursor:inherit;outline:none}.tactical-object>*{pointer-events:visiblePainted}.tactical-object path,.tactical-object rect,.tactical-object ellipse{pointer-events:stroke}.tactical-object circle{pointer-events:all}.tactical-object:focus-visible{filter:drop-shadow(0 0 5px white)}.tactical-text{font-family:var(--font);pointer-events:all}.map-stage-footer{padding:11px 14px;display:flex;justify-content:space-between;gap:14px;font-size:14px;color:#99acc4;border:1px solid #303b4d;border-top:0;background:#101925;border-radius:0 0 12px 12px}.plan-library{margin-top:18px;padding:20px;border:1px solid #303b4d;border-radius:12px;background:#141c28}.plan-library h3{margin:0 0 4px;font-size:17px;font-weight:550}.plan-library h3 span{color:#dfbd7f}.plan-library p{font-size:15px}.plan-library-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.plan-library select{flex:1;min-width:160px;max-width:100%;background:#0c1521;border:1px solid #3c4960;border-radius:8px;color:#e0e8f3;padding:8px 12px}.maps-page #toast{z-index:3000}
@media(min-width:1600px){.tactics-layout{grid-template-columns:250px minmax(0,1fr)}.tactics-tools{position:sticky;top:16px}.drawing-tools button{min-height:60px;font-size:15px}.map-viewport{height:min(76dvh,1200px)}}
@media(max-width:850px){.tactics-layout{grid-template-columns:180px minmax(0,1fr);gap:12px}.tactics-tools{padding:12px}.tactic-colors{gap:5px}.tactic-colors button{width:25px;min-height:25px}.plan-header{align-items:flex-start;flex-direction:column;gap:14px}.plan-title-wrap{width:100%}.plan-actions{justify-content:flex-start}.map-stage-toolbar{padding:8px}.history-tools span{display:none}.map-stage-footer{flex-direction:column;gap:5px}.maps-counter strong{font-size:65px}}
@media(max-width:620px){.maps-page header{padding-block:16px;align-items:flex-start;flex-wrap:wrap;gap:14px}.site-sections{gap:4px}.site-sections a{padding:8px 10px;font-size:15px}.maps-hero{padding-top:0;gap:20px;align-items:flex-end}.maps-counter strong{font-size:45px}.maps-counter span{font-size:11px;letter-spacing:1px}.maps-counter small{display:none}.maps-hero h1{font-size:34px;letter-spacing:-1.3px}.maps-hero .mode-tag{font-size:12px;letter-spacing:.5px}.maps-hero p{font-size:15px}.gallery-heading{align-items:stretch;flex-direction:column}.maps-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.map-card-body{padding:12px;gap:4px}.map-card-body h3{font-size:16px}.map-card-body small{font-size:13px}.map-card-arrow{font-size:20px}.map-card-index{left:10px;top:8px;font-size:12px}.map-save-status{width:100%;margin-left:0}.tactics-layout{display:flex;flex-direction:column}.tactics-tools{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:14px}.tool-section+.tool-section{border-top:0;margin:0;padding:0}.tool-section:nth-child(4){grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;align-items:center}.tool-section:nth-child(4) h3,.tactic-colors{grid-column:1/-1}.tool-section:nth-child(4) label{margin:0}.tool-section:nth-child(4) input:not([type=range]){margin:0}.tool-section:nth-child(4) .delete-object{margin:0;grid-column:1/-1}.tactics-help{grid-column:1/-1;margin:0}.tactics-workspace{width:100%}.drawing-tools{grid-template-columns:repeat(3,minmax(0,1fr))}.drawing-tools button{font-size:13px;min-height:51px}.unit-tools button{min-height:49px}.tactic-colors button{width:30px;min-height:30px}.map-viewport{height:65dvh;min-height:0}.plan-library{padding:15px}.plan-library-actions select{flex-basis:100%}.plan-actions button{font-size:14px}.map-stage-footer{font-size:13px}.maps-page main{padding-top:24px}}
@media(max-width:350px){.maps-grid{grid-template-columns:1fr}.maps-counter{display:none}.tactics-tools{grid-template-columns:1fr}.tool-section:nth-child(4),.tactics-help{grid-column:1}.unit-tools{grid-template-columns:repeat(4,1fr)}.drawing-tools button{font-size:14px}}
@media(prefers-reduced-motion:reduce){.map-card,.map-card-visual img{transition:none}}
header:has(.site-sections){height:auto;min-height:92px;flex-wrap:wrap;padding-block:16px}.tactical-object [data-hit-area]{pointer-events:stroke}
@media(max-width:620px){header:has(.site-sections){gap:14px}.maps-page footer{margin-top:30px}}

/* At the default scale both map dimensions fit; zoom is explicitly opt-in. */
.map-viewport[data-zoomed=false]{display:grid;place-items:center;overflow:hidden}
.map-canvas{max-width:none;min-width:0}
.tactical-object [data-unit-hit]{pointer-events:all}
/* Drawing keeps focus for shortcuts without a browser outline around the map. */
#tactical-svg:focus,#tactical-svg:focus-visible{outline:none;box-shadow:none}
#stroke-style-button{width:100%;margin-top:5px;font-size:15px}
.opacity-setting{margin-top:13px}
.stroke-style-menu{position:fixed;z-index:100;min-width:220px;max-width:calc(100vw - 16px);padding:8px;background:#172231f9;border:1px solid #53637a;border-radius:12px;box-shadow:0 14px 45px #0009;backdrop-filter:blur(16px)}
.stroke-menu-title{display:block;padding:6px 10px 10px;color:#c3b18e;font-size:15px;font-weight:550}
.stroke-style-menu button{display:flex;align-items:center;gap:14px;width:100%;min-height:42px;padding:10px;background:transparent;border-color:transparent;text-align:left;font-size:16px}
.stroke-style-menu button:hover,.stroke-style-menu button:focus-visible{background:#30415b;outline:1px solid #637794}
.stroke-style-menu button[aria-checked=true]{background:#dfbd7f14;color:#f3d49b}
.stroke-preview{display:block;width:46px;border-top:3px solid currentColor}.stroke-preview.dashed{border-top-style:dashed}
@media(max-width:620px){#stroke-settings,.opacity-setting{grid-column:1/-1}.opacity-setting{margin-top:0}.opacity-setting input{display:block}}
.hand-tool-icon{width:23px;height:23px;display:block}
.map-canvas > svg[data-tool=select]{cursor:grab}
.map-canvas > svg[data-tool=select][data-dragging=true]{cursor:grabbing}
.stroke-menu-caption{display:block;margin:7px 10px 5px;color:#91a5bf;font-size:13px;text-transform:uppercase;letter-spacing:.7px}
.stroke-style-menu{overflow-y:auto;overscroll-behavior:contain;min-width:240px}
.stroke-style-menu button{min-height:40px}
.stroke-style-menu .stroke-menu-done{margin-top:7px;border-top:1px solid #53637a;border-radius:0 0 5px 5px;justify-content:center;color:#f1d39a}
.stroke-preview{position:relative}.stroke-preview.arrow-end:after{content:'';position:absolute;right:0;top:-7px;width:9px;height:9px;border-top:3px solid currentColor;border-right:3px solid currentColor;transform:rotate(45deg)}
#tactical-pings,#tactical-pings *{pointer-events:none!important}
.eraser-tool-icon{width:23px;height:23px;display:block}
#shape-type-button{width:100%;margin-top:5px;font-size:15px}
.shape-preview{font-size:24px;line-height:1;width:32px;text-align:center}
.shape-fill-option{display:flex;align-items:center;gap:12px;margin:8px 2px 0;padding:12px 10px;border-top:1px solid #53637a;color:#dce5f2;font-size:16px;cursor:pointer}
.shape-fill-option input{width:18px;height:18px;accent-color:#dfbd7f;margin:0;cursor:pointer}
.tactical-object[data-filled=true]>:not([data-hit-area]){pointer-events:visiblePainted}
.tactical-object[data-filled=false]>circle{pointer-events:stroke}
@media(max-width:620px){#shape-settings{grid-column:1/-1}}
.tactics-layout{grid-template-columns:224px minmax(0,1fr) 228px}
.strategies-panel{position:sticky;top:16px;min-width:0;padding:15px;background:#141c28;border:1px solid #303b4d;border-radius:12px}
.strategies-heading h3{margin:0;font-size:18px;font-weight:550}.strategies-heading h3 span{margin-left:7px;color:#dfbd7f}.strategies-heading p{font-size:14px;margin:5px 0 13px}
#add-strategy{width:100%;font-size:15px;margin-bottom:14px}
.strategy-list{display:flex;flex-direction:column;gap:12px;max-height:68dvh;overflow:auto;overscroll-behavior:contain;padding:3px;scrollbar-width:thin}
.strategy-card{border:1px solid #3b485d;border-radius:9px;background:#101822;overflow:hidden;min-width:0;transition:border-color .15s}.strategy-card.active{border-color:#dfbd7f;box-shadow:0 0 0 1px #dfbd7f35}.strategy-card.dragging{opacity:.4}
.strategy-preview{display:grid;place-items:center;width:100%;height:142px;padding:6px;border:0;border-bottom:1px solid #2c394b;border-radius:0;background:#080d14;line-height:0}.strategy-preview:hover{background:#101d2d}.strategy-preview>svg{display:block;width:100%;height:100%;pointer-events:none}
.strategy-card>input{width:calc(100% - 18px);margin:8px 9px 0;padding:6px 4px;background:transparent;color:#eef2f8;border:0;border-bottom:1px solid #34445c;border-radius:0;font-size:15px;font-weight:550}
.strategy-caption{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:6px 10px;color:#96a9c2;font-size:13px}.strategy-order-buttons{display:flex;gap:4px}.strategy-order-buttons button{padding:3px 6px;min-height:26px;font-size:15px}
.strategy-drag-hint{display:block;padding:0 10px 8px;color:#70859f;font-size:12px;cursor:grab}.strategies-note{margin-top:12px;font-size:13px;line-height:1.6}
.tactic-colors{flex-wrap:wrap}.custom-color-wrap{position:relative;display:inline-flex;flex:0 0 30px}
.tactic-colors .custom-color-button{background:var(--swatch,#25334a);color:#f1d39b;font-size:20px;line-height:1}.custom-color-button:after{content:'';position:absolute;right:0;bottom:0;width:7px;height:7px;border:1px solid #111a27;background:conic-gradient(#ff8c8c,#f4da77,#8de2b8,#7bbaff,#d69fff,#ff8c8c);border-radius:50%}
.custom-color-tip{position:absolute;bottom:calc(100% + 12px);right:-4px;width:210px;max-width:75vw;z-index:80;padding:10px 12px;border:1px solid #53637a;border-radius:8px;background:#1b293cee;color:#e0e9f5;font-size:14px;line-height:1.6;box-shadow:0 8px 25px #0008;visibility:hidden;opacity:0;pointer-events:none}
.custom-color-wrap:hover .custom-color-tip,.custom-color-wrap:focus-within .custom-color-tip{visibility:visible;opacity:1}
.custom-color-input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none;left:0;bottom:0;padding:0!important;border:0!important}
@media(min-width:1600px){.tactics-layout{grid-template-columns:250px minmax(0,1fr) 250px}}
@media(max-width:1100px){.tactics-layout{grid-template-columns:180px minmax(0,1fr)}.strategies-panel{grid-column:1/-1;position:static}.strategy-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));max-height:none}.strategies-panel #add-strategy{max-width:250px}}
@media(max-width:620px){.strategies-panel{width:100%}.strategy-list{grid-template-columns:repeat(2,minmax(0,1fr))}.strategy-preview{height:120px}.custom-color-wrap{flex-basis:30px}}
.tactic-colors{gap:5px}.tactic-colors>button,.tactic-colors .custom-color-button{width:26px;min-height:26px}.custom-color-wrap{flex-basis:26px}
#clear-map-dialog{max-width:520px}#clear-map-dialog p+p{margin-top:14px}#clear-map-dialog .danger{color:#ffe4e4;background:#71343e;border-color:#c46777}#clear-map-dialog .danger:hover{background:#91404c}
@media(max-width:620px){.tactic-colors>button,.tactic-colors .custom-color-button{width:30px;min-height:30px}.custom-color-wrap{flex-basis:30px}}
/* Cards keep their natural height inside the scrolling list. */
.strategy-card{flex:0 0 auto;display:flex;flex-direction:column}
.strategy-preview{flex:0 0 142px;min-height:142px}
.strategy-card>input{display:block;flex:0 0 38px;min-height:38px;min-width:0;padding:8px 5px;margin:8px 9px;line-height:1.4;font-size:16px;color:#f2f5fa}
.strategy-caption,.strategy-drag-hint{flex-shrink:0}
@media(max-width:620px){.strategy-preview{flex-basis:120px;min-height:120px}}

.skill-tools img{width:23px;height:23px}.skill-tools button{font-size:15px;gap:9px}
.skill-size-note{font-size:13px;line-height:1.5;color:#c8b489;margin:2px 0 9px}
.tactical-object [data-skill-area]{pointer-events:all}
.strategy-delete{margin:0 9px 10px;padding:6px 9px;min-height:30px;color:#efb1b5;background:#ff878708;border-color:#91495766;font-size:14px}.strategy-delete:hover{background:#a14e5b33;border-color:#b16674}
@media(max-width:620px){.skills-section,.skill-size-note{grid-column:1/-1}}
/* Compact grouped tools: a single row, with the active drawer immediately below. */
.tactics-tools{padding:12px;display:block!important;position:sticky;top:12px;max-height:calc(100dvh - 24px);overflow:auto;scrollbar-width:thin}
.compact-toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.compact-toolbar button{min-width:0;min-height:57px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:7px 2px;font-size:13px;line-height:1.2;background:#1a2534;border-color:#344153}
.compact-toolbar button>span{font-size:23px;height:25px;display:grid;place-items:center}.compact-toolbar img{width:24px;height:25px;object-fit:contain}
.compact-toolbar button[aria-expanded=true],.compact-toolbar button[aria-pressed=true]{border-color:#dfbd7f;background:#dfbd7f19;color:#f1d49d}
.tool-panel{padding:12px 0;border-bottom:1px solid #303b4d}.tool-panel h3,.style-section h3{font-size:14px;color:#b8c9dd;margin:0 0 10px;font-weight:550}
.tool-panel .drawing-tools{grid-template-columns:1fr 1fr}.tool-panel p{font-size:14px;line-height:1.6;margin:10px 0 0}.tool-panel button{font-size:14px}
.object-caption{padding:10px 0 12px;border-bottom:1px solid #303b4d}.object-caption label{margin:0}.style-section{padding-top:13px}.style-section .tactic-colors{margin-bottom:8px}.opacity-setting{margin-top:7px}.tactics-help{margin-top:12px}
#finish-route{width:100%;margin-top:10px;color:#f1d49d;border-color:#c6a66e}
.tactical-object [data-measurement] path,.tactical-object [data-measurement] ellipse{pointer-events:stroke}.tactical-object [data-measure-label]{pointer-events:all}.tactical-object [data-measurement] path{stroke-linecap:round}
.ping-ripple{filter:drop-shadow(0 1px 2px #0009)}
#object-label-dialog{width:min(420px,calc(100vw - 32px))}#object-label-dialog h2{font-size:20px;margin-bottom:20px}#object-label-dialog label{display:block;margin-bottom:8px;color:#b6c4d6;font-size:16px}#object-label-input{width:100%;padding:12px;border:1px solid #53637a;background:#0d1520;color:#fff;border-radius:8px;font:inherit}#object-label-dialog .dialog-actions{margin-top:20px;display:flex;justify-content:flex-end;gap:10px}
@media(max-width:620px){.tactics-tools{position:static;max-height:none;width:100%;padding:10px}.compact-toolbar{grid-template-columns:repeat(7,minmax(0,1fr))}.compact-toolbar button{font-size:12px;min-height:52px}.tool-panel .drawing-tools,.tool-panel .unit-tools{grid-template-columns:repeat(4,minmax(0,1fr))}.object-caption{padding:8px 0}.style-section{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px}.style-section h3,.style-section .tactic-colors,.style-section .opacity-setting,.style-section .delete-object,.style-section #shape-settings,.style-section #stroke-settings{grid-column:1/-1}.style-section label{margin:0}.style-section .delete-object{margin-top:0}}
@media(max-width:380px){.compact-toolbar{grid-template-columns:repeat(4,minmax(0,1fr))}}

.group-tool-icon{width:24px;height:24px;display:block}.tool-panel #shape-settings,.tool-panel #stroke-settings{margin-top:10px}
.compact-toolbar img.vehicle-tool-icon{width:49px;max-width:100%;height:25px;object-fit:contain}
.skill-rotate-handle{cursor:grab;outline:none}.skill-rotate-handle>*{pointer-events:all}.skill-rotate-handle:focus-visible circle,.skill-rotate-handle:hover circle{fill:#3b5066;stroke:#fff;stroke-width:2.5}
#tactical-svg[data-dragging=true] .skill-rotate-handle{cursor:grabbing}

/* Readable controls across desktop and touch layouts. */
.maps-page{font-size:16px}.tactics-tools{line-height:1.5}.tactics-tools input:not([type=range]),.plan-library select{font-size:16px;min-height:42px}.tactics-tools label{font-size:14px;line-height:1.5}.compact-toolbar button{min-height:72px;padding:9px 4px;font-size:14px;gap:8px}.tool-panel .drawing-tools button,.tool-panel .unit-tools button{min-height:52px;font-size:15px}.tool-panel h3,.style-section h3{font-size:15px;line-height:1.5}.skill-tools img{width:28px;height:28px;object-fit:contain}.tactics-help{font-size:14px}.strategy-card>input{font-size:16px;min-height:44px}.strategy-caption{font-size:14px}.strategy-drag-hint,.strategies-note{font-size:13px}.strategy-delete{font-size:14px;min-height:38px}.plan-actions button{font-size:14px;min-height:42px}.map-stage-footer{font-size:14px;line-height:1.5}.maps-page footer,.maps-page .privacy-note,.maps-page .author-note{font-size:14px;line-height:1.65}.compact-toolbar svg{color:#dfd9b7}
.tactics-layout{grid-template-columns:264px minmax(0,1fr) 240px}
.map-label-editor{position:fixed;z-index:2500;margin:0;padding:5px 8px;min-width:140px;max-width:calc(100vw - 24px);border:2px solid #dfbd7f;border-radius:7px;background:#101b2af5;color:#fff;font:600 20px/1.4 var(--font);box-shadow:0 6px 24px #0008;user-select:text;-webkit-user-select:text}
#tactical-svg[data-tool=select] [data-object-label]{cursor:text}
@media(min-width:1600px){.tactics-layout{grid-template-columns:280px minmax(0,1fr) 260px}}
@media(max-width:1100px){.tactics-layout{grid-template-columns:240px minmax(0,1fr)}}
@media(max-width:760px){.tactics-layout{display:flex;flex-direction:column}.tactics-tools{position:static;max-height:none;width:100%}.tactics-workspace,.strategies-panel{width:100%}.compact-toolbar{grid-template-columns:repeat(4,minmax(0,1fr))}.style-section{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}.style-section h3,.style-section .tactic-colors,.style-section .opacity-setting,.style-section .delete-object{grid-column:1/-1}.tool-panel .drawing-tools,.tool-panel .unit-tools{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:399px){.compact-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}.tool-panel .drawing-tools,.tool-panel .unit-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-toolbar button{font-size:13px}}
