@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Libre+Caslon+Display&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#303e36;background:#f8f7f2;font-synthesis:none;--ink:#2c4039;--line:#dadcd2;--muted:#758077;--gold:#a78443}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer;background:#fffefa;border:1px solid var(--line);padding:10px 15px;border-radius:5px;color:var(--ink);font-size:14px}button:hover{background:#e9ece2}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid #b58a40;outline-offset:3px}header{height:83px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid var(--line);background:#fcfbf7}.brand{display:flex;align-items:center;gap:12px;font-weight:700;letter-spacing:3px;text-decoration:none;color:var(--ink);font-size:20px}.brandmark{font-size:39px;color:#8e7848;font-weight:400}.edition{letter-spacing:0;font-weight:400;font-family:'Libre Caslon Display',Georgia,serif;font-size:22px;border-left:1px solid var(--line);padding-left:18px;margin-left:8px}.top-actions{display:flex;align-items:center;gap:24px}.local-label,.small{font-size:13px;color:var(--muted)}.workspace{display:grid;grid-template-columns:225px 1fr;min-height:calc(100vh - 83px)}.sidebar{border-right:1px solid var(--line);display:flex;flex-direction:column;padding:30px 18px;background:#f0f1e9}.campaign{padding:0 12px 29px}.campaign h2{font-family:'Libre Caslon Display',Georgia,serif;font-size:26px;font-weight:400;margin:10px 0}nav{display:grid;gap:6px}.nav{text-align:left;border:0;background:none;font-size:20px;display:flex;gap:12px;align-items:center;padding:12px}.nav span{font-size:14px}.nav.active{background:#dfe5d9;color:#293f31;font-weight:600}.sidebar-section{margin-top:33px}.section-label{font-size:13px;color:var(--muted);display:flex;align-items:center;justify-content:space-between;padding-left:12px;margin-bottom:8px}.section-label button{border:0;background:none;padding:2px 10px;font-size:22px}.project-item{display:flex;width:100%;gap:10px;border:0;background:none;text-align:left;font-size:13px;padding:11px 12px;align-items:center}.project-item.selected{background:#e3e6dc}.dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.sidebar-note{margin-top:auto;padding:40px 12px 0;color:#7b8272;font-family:Georgia,serif;font-size:14px;line-height:1.7}.sidebar-note small{font-family:'DM Sans',sans-serif;font-size:12px}.seal{font-size:35px;color:#a39a7c}main{padding:32px 32px 16px;min-width:0}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}h1{font-family:'Libre Caslon Display',Georgia,serif;font-size:43px;font-weight:400;margin:8px 0 0;letter-spacing:-1px}.summary{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:25px;padding:20px 0}.metric{padding:0 25px;border-right:1px solid var(--line)}.metric:first-child{padding-left:0}.metric:last-child{border:0}.metric-label{font-size:13px;color:var(--muted)}.metric-value{font-size:29px;margin-top:6px;font-family:'Libre Caslon Display',Georgia,serif}.metric-value small{font-family:'DM Sans',sans-serif;font-size:12px;margin-left:8px;color:var(--muted)}.map-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:15px}.segmented{display:flex;padding:3px;background:#e9ece4;border-radius:6px}.segmented button{background:none;border:0;padding:8px 13px;font-size:13px}.segmented button.active{background:#fffefa;box-shadow:0 1px 3px #23322116}.map-and-detail{display:grid;grid-template-columns:minmax(0,1fr) 278px;border:1px solid #d2d5c8;border-radius:7px;overflow:hidden;background:#ecebdc}.map-surface{position:relative;min-height:580px;background:#e9eadf;background-image:radial-gradient(#75795220 .6px,transparent .6px);background-size:4px 4px;display:flex;align-items:center}#atlas{width:100%;height:100%;min-height:540px;max-height:670px}.map-caption{position:absolute;top:23px;left:26px;display:grid;gap:4px;pointer-events:none}.map-caption strong{font-family:'Libre Caslon Display',Georgia,serif;font-size:25px;font-weight:400}.map-caption span{font-size:11px;color:#808577}.legend{position:absolute;bottom:18px;left:22px;right:12px;display:flex;gap:16px;font-size:11px;color:#586457}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:8px;height:8px;border-radius:50%}.healthy{background:#69866b}.strained{background:#b9954e}.critical{background:#b87159}.inspector{background:#faf9f3;border-left:1px solid #d2d5c8;padding:25px 22px}.inspector h2{font-family:'Libre Caslon Display',Georgia,serif;font-size:32px;font-weight:400;margin:15px 0 5px}.status{display:inline-flex;align-items:center;gap:6px;background:#ede1cf;color:#8c6b32;font-size:12px;padding:5px 9px;border-radius:3px}.status.critical{background:#f0ddd4;color:#a55943}.status.healthy{background:#e1e8db;color:#536d4c}.inspector .owner{font-size:12px;color:var(--muted);margin-bottom:25px}.supply{margin:22px 0}.supply-title{display:flex;justify-content:space-between;font-size:13px;margin-bottom:9px}.bar{height:5px;background:#e4e5db;border-radius:4px;overflow:hidden}.bar div{height:100%;background:#8a9974}.bar.low div{background:#b77d5d}.supply small{display:block;font-size:11px;color:var(--muted);margin-top:7px}.inspector hr{border:0;border-top:1px solid var(--line);margin:23px 0}.inspector h3{font-size:13px;font-weight:600}.inspector p{font-size:13px;line-height:1.65;color:#636e60}.primary{background:var(--ink);border-color:var(--ink);color:#fffef5}.primary:hover{background:#42594a}.inspector button{width:100%;margin-top:16px}.opportunity-box{background:#f0eddf;padding:12px;border:1px solid #dedbc9;font-size:12px;line-height:1.6}.opportunity-box strong{display:block;color:#82703d;font-size:17px;font-weight:500}.insight{border-bottom:1px solid var(--line);padding:18px 0;font-size:13px;display:flex;gap:12px;align-items:center;line-height:1.5}.insight b{font-weight:600}.insight-icon{color:#9c824a;font-size:23px}footer{display:flex;justify-content:space-between;gap:15px;font-size:11px;color:#939a8c;padding-top:22px}.territory{cursor:pointer;stroke:#f2f0dc;stroke-width:3;transition:filter .15s}.territory:hover{filter:brightness(1.06)}.territory.selected{stroke:#59684f;stroke-width:3.5}.territory-label{pointer-events:none;text-anchor:middle;fill:#344235;font-size:16px;font-family:'Libre Caslon Display',Georgia,serif}.territory-sub{pointer-events:none;text-anchor:middle;font-family:'DM Sans',sans-serif;font-size:10px;fill:#4d5947}.marker{pointer-events:none}.water-label{font-family:'Libre Caslon Display',Georgia,serif;fill:#909784;font-style:italic;letter-spacing:4px;font-size:20px}.plans-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.plan-card{border:1px solid var(--line);background:#fcfbf6;padding:24px;border-radius:6px}.plan-card h2{font-family:'Libre Caslon Display',Georgia,serif;font-size:30px;font-weight:400;margin:8px 0}.plan-card p{font-size:14px;line-height:1.7;color:#647062}.plan-card h3{font-size:13px;margin-top:23px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{padding:18px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}th{font-weight:500;color:var(--muted)}dialog{border:1px solid #cdd2c2;border-radius:9px;padding:30px;width:min(550px,calc(100% - 32px));max-height:90vh;background:#faf9f3;color:var(--ink)}dialog::backdrop{background:#1e302777;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.dialog-head h2{font-family:'Libre Caslon Display',Georgia,serif;font-size:31px;font-weight:400;margin:0}.dialog-head button{border:0;background:none;font-size:25px;padding:0 8px}label{display:grid;gap:7px;font-size:13px;margin-bottom:15px}input,textarea{width:100%;background:#fffefa;border:1px solid #cdd2c2;border-radius:4px;padding:10px;color:var(--ink)}textarea{resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}form>.primary{width:100%;margin-top:8px}.sheet-step{padding:18px 0;border-bottom:1px solid var(--line)}dialog p{font-size:14px;line-height:1.7;color:#65715f}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:13px 24px;background:var(--ink);color:white;border-radius:6px;font-size:14px;display:none;z-index:9}@media(min-width:1600px){main{padding:38px 48px}.map-surface{min-height:680px}}@media(max-width:1180px){.workspace{grid-template-columns:190px 1fr}main{padding:25px 20px}.map-and-detail{grid-template-columns:minmax(0,1fr) 245px}.inspector{padding:22px 17px}.map-toolbar>.small,.local-label{display:none}.metric{padding:0 13px}.metric-value small{display:block;margin:3px 0 0}.map-surface{min-height:540px}.legend{gap:8px;font-size:10px}.edition{display:none}}@media(max-width:850px){.workspace{grid-template-columns:1fr}.sidebar{padding:12px 18px;border-right:0;border-bottom:1px solid var(--line)}.campaign,.sidebar-section,.sidebar-note{display:none}nav{display:flex}.nav{flex:1;justify-content:center}.map-and-detail{grid-template-columns:1fr}.inspector{border-left:0;border-top:1px solid var(--line);display:block}.map-surface{min-height:460px}#atlas{min-height:460px;height:540px}.summary{gap:8px}.metric{padding:0 10px}.metric-value{font-size:25px}h1{font-size:35px}header{padding:0 20px;height:72px}.inspector button{max-width:280px}.plans-grid{grid-template-columns:1fr}}@media(max-width:500px){main{padding:20px 12px}.brand{font-size:16px;gap:6px}.top-actions button{font-size:12px;padding:8px}.brandmark{font-size:30px}.nav{gap:6px;padding:8px 5px}.nav span{font-size:12px}.page-heading{align-items:flex-start;gap:8px}h1{font-size:30px}.page-heading>button{font-size:11px;padding:9px;margin-top:15px}.metric-label{font-size:11px}.metric-value small{font-size:10px}.summary{padding:15px 0}.metric{padding:0 7px}.map-caption{left:16px;top:17px}.map-caption strong{font-size:22px}#atlas{height:450px;min-height:450px}.legend{left:12px;gap:10px}.map-surface{min-height:450px}footer{flex-direction:column}.form-grid{gap:0 10px}}
.mini-roster{display:grid;gap:11px;margin-top:24px}.mini-roster>div{display:grid;gap:3px;font-size:12px}.mini-roster small{color:var(--muted);font-size:11px;padding-left:16px}.ledger-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.ledger-title{font-family:'Libre Caslon Display',Georgia,serif;font-size:30px;font-weight:400;margin-top:35px}select{font:inherit;padding:10px;border:1px solid #cdd2c2;border-radius:4px;background:#fffefa;color:var(--ink)}[hidden]{display:none!important}
.map-and-detail{grid-template-columns:minmax(0,1fr) 310px;align-items:start}.map-surface{height:690px}.inspector{height:690px;overflow-y:auto}.inspector h2:focus,.inspector p:focus,[contenteditable]:focus{outline:2px solid #a99564;background:#fffdf4;border-radius:3px}.inspector [contenteditable]:hover,.plan-card [contenteditable]:hover,.troop-role:hover,.troop-name:hover{background:#e9e9db;cursor:text}.roster-heading{display:flex;justify-content:space-between;align-items:center}.roster-heading h3{margin-bottom:3px}.micro-hint{font-size:11px!important;margin:5px 0 14px;line-height:1.5!important}.troop-stack{display:grid;gap:8px;min-height:30px}.troop-card{padding:10px;background:#fffef8;border:1px solid #d8ddcc;border-radius:5px;cursor:grab;min-width:0}.troop-card.provisional{border-style:dashed;background:#f3f0e4}.troop-top{display:flex;gap:6px;align-items:center}.troop-name{font-size:12px;font-weight:600;flex:1;min-width:0}.drag-grip{color:#9ca28f}.troop-role{font-size:11px;color:#7a8372;margin:4px 0 9px 18px}.troop-controls{display:grid;grid-template-columns:.9fr 1.1fr;gap:4px}.troop-controls select{min-width:0;width:100%;font-size:10px;padding:5px 2px;border-color:#e0e3d6;background:#f8f8f0}.inspector .leader-button,.leader-button{margin:0;width:26px;padding:2px;border:0;background:none;font-size:18px;color:#b9bdaf}.leader-button.is-leader{color:#a6843f}.leader-button:disabled{opacity:.25;cursor:default}.quick-add{margin-top:12px}.quick-add input{font-size:12px}.quick-add>div{display:flex;gap:5px}.quick-add button{font-size:11px;padding:8px 5px;margin-top:7px}.inline-value{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}.inline-value input{width:85px;font-size:12px;padding:7px}.reserve{margin:16px 0 0;border:1px dashed #b6c0a9;border-radius:5px;padding:15px;background:#f0f2e9}.reserve-heading{display:flex;gap:20px;font-size:12px;margin-bottom:12px;align-items:center}.reserve-heading span{color:var(--muted);font-size:11px}.reserve-drop{min-height:36px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}.reserve-drop .troop-card{width:260px}.roster-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.roster-grid .troop-name{font-size:14px}.roster-grid .troop-controls select{font-size:12px}.drop-hover{outline:3px solid #8c713f;background:#e2e6cf!important}.territory.drop-hover{stroke:#685527;stroke-width:7;filter:brightness(1.1)}.dragging .territory{cursor:copy}button:disabled{opacity:.4;cursor:default}.page-heading>div{margin-right:auto}.page-heading{gap:10px}#undo{font-size:12px;padding:10px}.page-heading>button{white-space:nowrap}@media(max-width:1180px){.map-and-detail{grid-template-columns:minmax(0,1fr) 265px}.map-surface,.inspector{height:650px}.roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:850px){.map-and-detail{grid-template-columns:1fr}.map-surface{height:520px}.inspector{height:auto;max-height:none}.troop-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-add{max-width:350px}}@media(max-width:500px){.roster-grid,.troop-stack{grid-template-columns:1fr}.map-surface{height:450px}.page-heading{flex-wrap:wrap}.page-heading>div{width:100%}.page-heading>button{margin-top:0}.reserve-heading{flex-direction:column;align-items:start;gap:5px}.inspector .troop-controls select{font-size:12px}}
.soldier-sprite,.soldier-avatar{display:block;background-image:url('soldiers.png');background-size:300% 100%;background-repeat:no-repeat}.rank-junior{background-position:0% 50%}.rank-staff{background-position:50% 50%}.rank-manager{background-position:100% 50%}.soldier-avatar{width:25px;height:38px;flex-shrink:0}.formation{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0}.soldier-piece{position:relative;width:30px;height:62px;flex-shrink:0;padding:0;margin:0;border:0;border-radius:4px;background:transparent;cursor:grab}.soldier-piece:hover{background:#f7f4e088;transform:translateY(-3px)}.soldier-sprite{width:100%;height:100%;pointer-events:none;filter:drop-shadow(0 2px 1px #33462c35)}.soldier-star{position:absolute;bottom:0;left:9px;font-size:12px;color:#806326;pointer-events:none}.soldier-piece.planned{opacity:.43;outline:1px dashed #697355;outline-offset:-4px}.vacancy .soldier-sprite{opacity:.12;filter:grayscale(1)}.vacancy-plus{position:absolute;inset:22px 0 0;text-align:center;color:#626b51;font-size:19px;pointer-events:none}.vacancy{outline:1px dashed #727b5d80;outline-offset:-5px;cursor:pointer}.rank-legend{display:flex;gap:18px;align-items:center;flex-wrap:wrap;font-size:11px;color:#69715f;margin:-4px 0 12px}.rank-legend>span{display:flex;align-items:center;gap:3px}.rank-legend .soldier-avatar{width:21px;height:31px}.rank-select{border:0;background:none;padding:2px;margin:0 0 6px 15px;font-size:11px;color:#69735f}.focused-troop{outline:2px solid #a78e51}.formation:has(.soldier-piece:nth-child(6)) .soldier-piece{height:40px}.troop-card.provisional .soldier-avatar{opacity:.45}@media(max-width:500px){.rank-legend{gap:8px;font-size:10px}}
/* Map-first working surface */
body.map-mode{height:100dvh;overflow:hidden}header{height:58px;padding:0 22px}.brand{font-size:17px}.brandmark{font-size:30px}.edition{font-size:19px}.workspace{grid-template-columns:178px 1fr;min-height:calc(100dvh - 58px)}.sidebar{padding:22px 12px}.campaign{padding:0 8px 20px}.campaign h2{font-size:24px}.sidebar-section{margin-top:22px}.sidebar-note{display:none}.nav{padding:10px 8px;gap:8px}.project-item{padding:10px 8px}main{padding:22px;min-height:0}.map-mode .workspace{height:calc(100dvh - 58px);min-height:0}.map-mode .sidebar{overflow:auto}.map-mode main{padding:0;display:flex;flex-direction:column;overflow:hidden}.map-mode .page-heading{height:46px;min-height:46px;padding:5px 16px;margin:0;border-bottom:1px solid var(--line);gap:8px}.map-mode .page-heading .small{display:none}.map-mode h1{font-family:'DM Sans',sans-serif;letter-spacing:0;font-weight:500;font-size:14px;margin:0}.map-mode .page-heading button{padding:6px 10px;font-size:12px}.map-mode #summary,.map-mode footer,.map-mode #insight{display:none}.map-mode #map-view{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.map-toolbar{margin:0;padding:9px 12px;background:#f7f8f1;display:flex;flex-wrap:wrap;justify-content:start;gap:8px;z-index:3;border-bottom:1px solid var(--line);flex-shrink:0}.map-toolbar>.small{display:none}.segmented button{padding:7px 9px;font-size:11px}#experiment-controls{display:flex;gap:5px;align-items:center;flex:1;flex-wrap:wrap}#experiment-controls select{padding:7px 4px;font-size:11px;max-width:165px}#experiment-controls button{padding:7px 8px;font-size:12px}.batch-buttons{display:flex;gap:2px}.batch-buttons button[data-batch-add]{background:#e3e9db}.map-and-detail{position:relative;display:block;flex:1;min-height:0;border:0;border-radius:0;overflow:hidden}.map-surface{position:absolute;inset:0;height:100%;min-height:0;display:block;overflow:hidden}#atlas{display:block;height:100%;width:100%;min-height:0;max-height:none;touch-action:none;cursor:grab}#atlas.panning{cursor:grabbing}.map-caption{display:none}.inspector{display:none;position:absolute;z-index:5;right:12px;top:12px;bottom:88px;width:315px;height:auto;max-height:none;border:1px solid #cad1bc;border-radius:8px;box-shadow:0 8px 35px #263d3426;padding:22px;overflow:auto;overscroll-behavior:contain}.inspector.is-open{display:block}.inspector .close-inspector{position:absolute;right:8px;top:5px;width:26px;margin:0;border:0;background:none;font-size:23px;padding:0}.inspector h2{font-size:29px;margin-top:12px}.inspector .owner{margin-bottom:12px}.focus-field{font-size:11px;margin:14px 0}.focus-field input{padding:8px;font-size:12px}.inline-recruit{display:flex;gap:5px}.inline-recruit button{padding:7px 4px}.remove-person{padding:0!important;margin:0!important;width:20px!important;border:0;font-size:20px;background:none;color:#947c65}.troop-stack{grid-template-columns:1fr}.rank-legend{position:absolute;z-index:3;bottom:16px;right:15px;margin:0;gap:10px;background:#f8f8efeb;padding:5px 10px;border:1px solid #cbd2bf;border-radius:5px;pointer-events:none;font-size:11px}.legend{bottom:63px;left:auto;right:17px;font-size:11px;gap:12px;pointer-events:none}.reserve-dock{position:absolute;z-index:3;bottom:14px;left:14px;padding:9px 12px;display:flex;align-items:center;gap:10px;background:#f7f8eedf;border:1px dashed #9da88b;border-radius:6px;min-width:165px;min-height:51px;font-size:12px;max-width:50%}.reserve-dock small{font-size:10px;color:#7e8871}.reserve-soldier{border:0;padding:0;background:none;cursor:grab}.zoom-controls{position:absolute;z-index:3;top:14px;left:14px;display:flex;align-items:center;gap:3px;border:1px solid #c7cfbb;background:#fafaf2ef;border-radius:5px;padding:3px}.zoom-controls button{padding:6px 10px;border:0;background:none;font-size:15px}.zoom-controls #fit-map{font-size:11px;border-left:1px solid var(--line)}#zoom-readout{font-size:11px;min-width:37px;text-align:center}.pan-help{font-size:11px;padding:0 10px;color:#78826c}.continent-label{text-anchor:middle;font:28px 'Libre Caslon Display',Georgia,serif;fill:#59694a;letter-spacing:1px}.continent-sub{text-anchor:middle;fill:#7d886e;font:12px 'DM Sans',sans-serif}.territory-label{font-size:20px}.territory-sub{font-size:12px}.territory.selected{stroke:#526847;stroke-width:4}.stacked-formation{position:relative}.stacked-formation .soldier-piece{position:absolute;width:42px!important;height:76px!important;margin:0;border:0;background:none}.stacked-formation .soldier-piece:hover{transform:translateY(-4px);filter:drop-shadow(0 0 3px #fff7ce);z-index:100!important}.stacked-formation .planned{opacity:.48;outline:none}.stacked-formation .vacancy{outline:1px dashed #72815d70;outline-offset:-8px}.stacked-formation .vacancy .soldier-sprite{opacity:.12}.stacked-formation .soldier-star{bottom:0;left:15px}.formation-object{overflow:visible}.map-mode .troop-controls select{font-size:11px}.drop-hover{outline:none;filter:brightness(1.12)}
@media(max-width:1100px){.workspace{grid-template-columns:154px 1fr}.edition,.local-label{display:none}#experiment-controls select{max-width:143px}.pan-help{display:none}.map-toolbar{gap:5px;padding:7px}.segmented button{font-size:10px}.rank-legend{font-size:10px;gap:6px}.reserve-dock small{display:none}.campaign h2{font-size:21px}}
@media(max-width:760px){header{height:50px;padding:0 12px}.workspace,.map-mode .workspace{grid-template-columns:1fr;height:calc(100dvh - 50px)}.sidebar{display:none}.map-mode .page-heading{height:39px;min-height:39px;padding:5px 10px}.map-mode .page-heading>div{width:auto}.map-mode .page-heading>button{margin:0}.map-mode h1{font-size:12px}.map-toolbar{min-height:76px}.map-toolbar .segmented{display:none}#experiment-controls{gap:4px}#experiment-controls select{flex:1;max-width:none;min-width:0;font-size:11px}#experiment-controls #experiment-project{flex-basis:38%}#experiment-controls .batch-buttons{flex:1}#experiment-controls button{padding:7px 12px}#open-details{margin-left:auto}.rank-legend{bottom:8px;right:8px;padding:3px 6px;gap:4px}.rank-legend>span:last-child{display:none}.rank-legend .soldier-avatar{height:25px;width:17px}.legend{bottom:50px;right:8px;left:auto;font-size:9px;gap:8px}.reserve-dock{left:8px;bottom:8px;padding:5px 8px;min-width:96px;min-height:34px;max-width:35%;font-size:10px}.reserve-soldier:nth-of-type(n+3){display:none}.inspector{right:8px;top:8px;bottom:65px;max-width:calc(100% - 60px);width:310px}.zoom-controls{top:8px;left:8px}.map-mode .page-heading #export-plan{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
#mobile-view{display:none}#new-territory{font-size:11px!important}@media(max-width:760px){#mobile-view{display:block;font-size:12px;padding:6px;width:77px}.top-actions{gap:7px}.top-actions #sheets{font-size:10px;padding:7px}.brand{font-size:14px;letter-spacing:2px}.map-toolbar #new-territory{padding:7px 8px}}
.continent-link{cursor:pointer;pointer-events:auto}.continent-link:hover{text-decoration:underline;fill:#344c30}.empty-continent{font:19px 'DM Sans',sans-serif;fill:#657354;text-anchor:middle;cursor:pointer}.empty-continent:hover{fill:#263e25}.geography-panel{position:absolute;right:12px;top:78px;bottom:72px;width:390px;max-width:calc(100% - 24px);z-index:8;padding:22px;background:#fafbf4;border:1px solid #c9d0bd;border-radius:8px;box-shadow:0 8px 35px #263d3426;overflow-y:auto;overscroll-behavior:contain}.geography-heading{display:flex;gap:15px;align-items:center;justify-content:space-between}.geography-heading h2{font:29px 'Libre Caslon Display',Georgia,serif;margin:0}.geography-heading button{border:0;background:none;font-size:23px;padding:0 5px}.geography-panel>p{line-height:1.65}.continent-editor{margin-top:20px;padding-top:17px;border-top:1px solid var(--line)}.continent-editor-heading{display:flex;align-items:center;gap:8px}.continent-editor-heading input{background:transparent;border:1px solid transparent;font-weight:600;font-size:15px;padding:6px 2px}.continent-editor-heading input:hover,.country-editor input:hover{border-color:#ccd3be}.continent-editor-heading>button,.country-editor>button{border:0;background:none;padding:5px;font-size:19px;color:#8c7561}.continent-meta{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted);margin:5px 0 12px}.continent-meta button{font-size:11px;padding:5px 9px}.country-editor{display:grid;grid-template-columns:minmax(0,1fr) 24px 24px;gap:3px 5px;padding:9px 0 10px;border-top:1px solid #e5e8dd}.country-editor input{border-color:transparent;background:transparent;padding:5px 2px;font-size:13px}.country-editor select{grid-column:1/4;padding:6px;font-size:11px;color:#68765c}.empty-geography,.geography-help{font-size:12px;line-height:1.6;color:#7b866e}.geography-help{border-top:1px solid var(--line);padding-top:15px;margin-top:22px}#manage-geography{font-size:11px!important}@media(max-width:760px){.geography-panel{top:108px;right:8px;bottom:55px;width:360px;padding:17px}.geography-heading h2{font-size:25px}}
#remove-mode{color:#92553f;border-color:#d4b9ab;background:#faf1e9}#remove-mode[aria-pressed="true"]{background:#864d3b;border-color:#864d3b;color:#fff}.removal-hint{display:none;position:absolute;top:62px;left:14px;z-index:4;background:#864d3b;color:#fff8ef;padding:9px 13px;border-radius:5px;font-size:12px;pointer-events:none}.removing-people .removal-hint{display:block}.removing-people .soldier-piece:not(.vacancy),.removing-people .reserve-soldier{cursor:crosshair!important}.removing-people .soldier-piece:not(.vacancy)::after{content:'−';position:absolute;right:0;top:0;width:18px;height:18px;background:#a45039;border:1px solid #fff1df;border-radius:50%;color:white;font:bold 17px/15px sans-serif;pointer-events:none}.removing-people .soldier-piece:not(.vacancy):hover{background:#a450392b!important;filter:drop-shadow(0 0 4px #b74732)!important}.removing-people .vacancy{pointer-events:none;opacity:.2}.remove-person{color:#a45039!important;background:#f5e6dc!important;border-radius:4px!important;width:26px!important;height:26px}.remove-person:hover{background:#ecd0be!important}[data-batch-remove]{color:#92553f!important;background:#f8ece2!important}
.soldier-unit{position:absolute;width:42px;height:76px}.soldier-unit:hover,.soldier-unit:focus-within{z-index:150!important}.stacked-formation .soldier-unit>.soldier-piece{left:0;top:0}.soldier-remove{position:absolute;right:-6px;top:-5px;width:23px;height:23px;padding:0;border:1px solid #fff5e7;border-radius:50%;background:#984f3b;color:#fff;font:20px/19px sans-serif;z-index:200;opacity:0;pointer-events:none;box-shadow:0 1px 4px #493a2940;cursor:pointer}.soldier-unit:hover .soldier-remove,.soldier-unit:focus-within .soldier-remove,.soldier-remove:focus-visible{opacity:1;pointer-events:auto}.soldier-remove:hover{background:#733828}.soldier-remove:focus-visible{outline:3px solid #a78c43;outline-offset:2px}.sea-drop-hint{display:none;position:absolute;z-index:5;left:50%;top:70px;transform:translateX(-50%);padding:11px 18px;border-radius:6px;background:#934f3eea;color:#fff9ec;font-size:13px;pointer-events:none;white-space:nowrap}.sea-drop-active .sea-drop-hint{display:block}.sea-drop-active .map-surface{box-shadow:inset 0 0 0 3px #a3684f}.dragging .soldier-remove{opacity:0;pointer-events:none}@media(hover:none){.soldier-remove{opacity:1;pointer-events:auto;width:26px;height:26px;line-height:22px}}@media(max-width:600px){.sea-drop-hint{font-size:11px;padding:9px 10px;white-space:normal;min-width:230px;text-align:center}}
.continent-resize{cursor:nwse-resize;touch-action:none}.continent-resize circle{fill:#faf8e9;stroke:#859476;stroke-width:1.5;filter:drop-shadow(0 2px 3px #43553c22)}.continent-resize path{fill:none;stroke:#526746;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.continent-resize:hover circle,.continent-resize:focus circle{fill:#dce5c9;stroke:#3c5b35;stroke-width:2.5}.resize-caption{font:11px 'DM Sans',sans-serif;text-anchor:middle;fill:#66775b;pointer-events:none}.resizing-continent,.resizing-continent #atlas{cursor:nwse-resize!important}.importance-control{margin:12px 0 10px;padding:11px;background:#eef1e4;border-radius:5px;font-size:12px}.importance-control>span:first-child{display:flex;justify-content:space-between}.importance-control output{color:#4b6540;font-weight:600}.importance-control input{padding:0;margin:8px 0 3px;width:100%;accent-color:#637e50;cursor:ew-resize}.importance-endpoints{display:flex;justify-content:space-between;color:#7b866d}.importance-endpoints small{font-size:10px}
/* Contextual map controls stay quiet until the continent is in use. */
.continent-resize{opacity:0;pointer-events:none;transition:opacity .12s ease}.continent:hover .continent-resize,.continent:focus-within .continent-resize,.continent-resize:focus-visible,.continent-resize.is-resizing{opacity:1;pointer-events:auto}.resize-caption{opacity:0}.continent-resize:hover .resize-caption,.continent-resize:focus-visible .resize-caption,.continent-resize.is-resizing .resize-caption{opacity:1}@media(hover:none){.continent-resize{opacity:1;pointer-events:auto}.resize-caption{display:none}}@media(prefers-reduced-motion:reduce){.continent-resize{transition:none}}
/* Country information is revealed on demand; available soldiers anchor the map. */
.country-territory .territory-label,.country-territory .territory-sub,.country-territory .vacancy,.country-territory .provisional-unit,.country-territory .soldier-star{opacity:0;pointer-events:none}.country-territory:hover .territory-label,.country-territory:hover .territory-sub,.country-territory:hover .vacancy,.country-territory:hover .provisional-unit,.country-territory:hover .soldier-star,.country-territory:focus-within .territory-label,.country-territory:focus-within .territory-sub,.country-territory:focus-within .vacancy,.country-territory:focus-within .provisional-unit,.country-territory:focus-within .soldier-star{opacity:1}.country-territory:hover .vacancy,.country-territory:hover .provisional-unit,.country-territory:focus-within .vacancy,.country-territory:focus-within .provisional-unit{pointer-events:auto}.country-territory .provisional-unit:not(:hover) .soldier-remove{pointer-events:none}.removing-people .country-territory .vacancy{pointer-events:none;opacity:0}
.continent>.continent-label,.continent>.continent-sub,.continent>.empty-continent{opacity:0;pointer-events:none}.continent:hover>.continent-label,.continent:hover>.continent-sub,.continent:hover>.empty-continent,.continent:focus-within>.continent-label,.continent:focus-within>.continent-sub,.continent:focus-within>.empty-continent{opacity:1}.continent:hover>.continent-label,.continent:hover>.empty-continent,.continent:focus-within>.continent-label,.continent:focus-within>.empty-continent{pointer-events:auto}#map-world>.water-label{display:none}
.troop-controls{grid-template-columns:1fr}
/* Coastline controls share the quiet hover treatment of the resize handle. */
.country-map-actions,.continent-add-control{opacity:0;pointer-events:none;cursor:pointer;touch-action:manipulation}.country-map-actions circle{fill:#fff4e9;stroke:#b58c73;stroke-width:1.3}.country-map-actions text{font:22px 'DM Sans',sans-serif;fill:#94543d;pointer-events:none}.continent-add-control circle{fill:#faf8e9;stroke:#859476;stroke-width:1.5}.continent-add-control text{font:27px 'DM Sans',sans-serif;fill:#526746;pointer-events:none}.country-territory:hover>.country-map-actions,.country-territory:focus-within>.country-map-actions,.country-map-actions:focus-visible,.continent:hover>.continent-add-control,.continent:focus-within>.continent-add-control,.continent-add-control:focus-visible{opacity:1;pointer-events:auto}.country-map-actions:hover circle{fill:#edceba}.continent-add-control:hover circle{fill:#dce5c9}.country-map-actions:focus-visible,.continent-add-control:focus-visible{outline:2px solid #9e7e42;outline-offset:3px}.territory{stroke-linejoin:round;stroke-width:2.2}.continent>path{stroke-linejoin:round}.country-territory,.continent{transform-box:view-box}.continent-resize,.continent-add-control{filter:drop-shadow(0 2px 2px #43553c16)}
.soldier-sprite.action-sprite{background-image:url('soldier-actions.png');background-size:800% 300%;background-repeat:no-repeat}.soldier-unit.boot-stomp::after{content:'';position:absolute;pointer-events:none;left:5px;bottom:2px;width:32px;height:8px;border:1px solid #968163;border-radius:50%;animation:boot-dust .4s ease-out both}.soldier-unit.boot-stomp .soldier-piece{transform:none!important}@keyframes boot-dust{from{opacity:.5;transform:scale(.45)}to{opacity:0;transform:scale(1.65)}}@media(prefers-reduced-motion:reduce){.soldier-unit.boot-stomp::after{animation:none;display:none}}

.editing-land #atlas{cursor:grabbing!important}.editing-land .country-map-actions,.editing-land .territory-label,.editing-land .territory-sub{opacity:0!important;pointer-events:none!important}

#border-grip{fill:#fff8dd;stroke:#846831;stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:none}.editing-border #atlas{cursor:crosshair!important}.editing-border .soldier-piece{pointer-events:none}#troop-tooltip{position:fixed;z-index:1000;pointer-events:none;background:#2c4039;color:#fff9e9;border:1px solid #a58b55;border-radius:5px;padding:7px 11px;font-size:12px;box-shadow:0 3px 12px #17271b33;max-width:calc(100vw - 16px)}#troop-tooltip[hidden]{display:none}

#troop-layer,.troop-country,.formation-object{pointer-events:none}#troop-layer .soldier-piece,#troop-layer .soldier-remove{pointer-events:auto}.troop-country{transform-box:view-box}.country-territory.troop-hover .territory-label,.country-territory.troop-hover .territory-sub,.country-territory.troop-hover .country-map-actions,.continent.troop-hover>.continent-label,.continent.troop-hover>.continent-sub{opacity:1}.country-territory.troop-hover .country-map-actions{pointer-events:auto}#troop-layer .vacancy{pointer-events:none}.troop-country:hover .vacancy,.troop-country:focus-within .vacancy{pointer-events:auto}

#troop-layer .soldier-remove{pointer-events:none}#troop-layer .soldier-unit:hover .soldier-remove,#troop-layer .soldier-unit:focus-within .soldier-remove{pointer-events:auto}

.reserve-soldier,.reserve-soldier:hover,.reserve-soldier:active{background:transparent!important;box-shadow:none}.troop-drag-preview{position:fixed;left:-100px;top:0;width:42px;height:76px;pointer-events:none;background:transparent}
