:root{color-scheme:dark;--bg:#111b21;--panel:#1a272e;--line:#34444c;--ink:#eee9dd;--muted:#b5bdbb;--gold:#e3bf7d;--blue:#74bac3;--error:#ffb2a0;--space:1rem;font-family:Inter,Segoe UI,Arial,sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,select,input{font:inherit}button,select{color:var(--ink);background:#22333a;border:1px solid var(--line);border-radius:4px;min-height:44px;padding:.65rem .85rem}button{cursor:pointer}button:hover:not(:disabled){background:#34454c;border-color:var(--gold)}button:disabled{opacity:.5;cursor:default}button:focus-visible,select:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--gold);outline-offset:3px}h1,h2,p{margin:0}h2{font-family:Georgia,serif;font-size:1.4rem;font-weight:400}small{font-size:.8rem;color:var(--muted)}.eyebrow{font-size:.72rem;letter-spacing:.13em;color:var(--gold);font-weight:700}.topbar{display:flex;align-items:center;gap:2.5rem;padding:1.25rem 2rem;border-bottom:1px solid var(--line)}.brand{display:flex;gap:.8rem;align-items:center;margin-right:auto}.brand h1{font:1.55rem Georgia,serif;letter-spacing:.14em}.brand span:not(.shield){font-size:.75rem;letter-spacing:.12em;color:var(--muted)}.shield{color:var(--gold);border:1px solid var(--gold);border-radius:3px 3px 17px 17px;width:42px;height:48px;text-align:center;padding-top:.4rem;font:1.8rem Georgia,serif}.turn,.clock{display:flex;flex-direction:column;gap:.35rem}.turn strong{font-size:1.2rem}.turn small{font-weight:400}.clock{border-left:1px solid var(--line);padding-left:2rem}.primary{background:var(--gold);color:#14232a;border-color:var(--gold);font-weight:650}.primary:hover:not(:disabled){background:#f0d6a8;color:#14232a}.turn-button{min-width:200px;display:flex;justify-content:space-between;gap:1rem}.labbar{display:flex;align-items:center;flex-wrap:wrap;gap:1.5rem;padding:.65rem 2rem;background:#142027;border-bottom:1px solid var(--line);font-size:.8rem;color:var(--muted)}.labbar label{display:flex;align-items:center;gap:.65rem}.labbar select{font-size:.85rem;min-height:36px;padding:.3rem .5rem}.lab-label{letter-spacing:.1em;font-size:.7rem}.switch input{accent-color:var(--gold);width:18px;height:18px}.save-label{margin-left:auto}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 310px}.theatre{min-width:0}.map-area{position:relative;overflow:hidden;background:#14242e;border-bottom:1px solid var(--line);min-height:440px}.map-caption{position:absolute;top:1.5rem;left:2rem;display:flex;flex-direction:column;gap:.5rem;z-index:1;pointer-events:none}.map-caption span:last-child{font:1rem Georgia,serif;color:var(--muted)}.hex-map{display:block;width:100%;height:460px;touch-action:none;cursor:grab}.hex-map:active{cursor:grabbing}.hex{cursor:pointer}.hex:hover .surface{stroke:#ffe0a0;stroke-width:2}.hex text{pointer-events:none;text-anchor:middle}.terrain-symbol{font:22px Georgia,serif;fill:#c3d4ad;opacity:.7}.alt-label{font:12px Arial;fill:#fff7dc}.place-symbol{font:24px Georgia,serif;fill:#fff1c5;paint-order:stroke;stroke:#31443c;stroke-width:1}.place-label{font:13px Georgia,serif;fill:#f2ead3;paint-order:stroke;stroke:#14242e;stroke-width:4}.stale{opacity:.5}.counter rect{fill:#163c49;stroke:#9cd7dd;stroke-width:1.5}.counter text{font:bold 13px Arial;fill:#d8f5f6}.counter.chosen rect{stroke:#fff0b6;stroke-width:3}.counter.enemy rect{fill:#663e36;stroke:#efb4a2}.ghost-symbol{font:bold 22px Georgia;fill:#f5d39a}.map-tools{position:absolute;bottom:4rem;right:1.25rem;display:flex;gap:.4rem}.map-tools button{background:#14232beb;font-size:.85rem}.map-legend{position:absolute;bottom:0;display:flex;align-items:center;gap:1rem;width:100%;padding:.8rem 1.5rem;background:#101d25dc;font-size:.75rem;color:var(--muted);flex-wrap:wrap}.map-legend span{display:flex;gap:.4rem;align-items:center}.map-legend i{width:9px;height:9px;border-radius:2px}.own-key{background:var(--blue)}.enemy-key{background:var(--error)}.map-help{margin-left:auto}.army-panel{padding:1.5rem 2rem}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1.2rem}.section-heading>span{font-size:.8rem;color:var(--muted)}.section-heading h2 span{font: .9rem Arial;color:var(--muted);margin-left:.5rem}.army-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}.unit-card{text-align:left;display:flex;align-items:center;position:relative;gap:.6rem;padding:.85rem;background:var(--panel);min-width:0}.unit-card.active{border-color:var(--gold);background:#30382f}.unit-card strong{display:block;font-weight:500;font-size:.9rem}.unit-card small{display:block;margin-top:.2rem}.unit-card strong small{display:inline}.unit-icon{font:1.8rem Georgia,serif;color:var(--gold);width:30px;text-align:center}.tick{color:var(--gold);position:absolute;right:.45rem;top:.35rem;font-size:.8rem}.sidebar{border-left:1px solid var(--line);background:var(--panel)}.sidebar section{padding:1.4rem 1.5rem;border-bottom:1px solid var(--line)}.sidebar .eyebrow{margin-bottom:.55rem}.sidebar p{font-size:.85rem;line-height:1.6;color:var(--muted);margin-top:.6rem}.sidebar .warning,.warning{color:var(--error)}.tile-stats{display:flex;gap:1.25rem;margin:1rem 0}.tile-stats span{font-size:.75rem;color:var(--muted)}.tile-stats strong{display:block;font-size:1.15rem;color:var(--ink);margin-top:.4rem}.sidebar .note{font-size:.8rem}.secondary{font-size:.8rem;width:100%;margin-top:.8rem}.route-stats{display:flex;gap:2.5rem;margin-top:1rem}.route-stats strong{display:block;font:2rem Georgia,serif;color:var(--gold)}.route-stats span{display:block;font-size:.75rem;color:var(--muted);margin-top:.2rem}.march-panel>small{display:block;line-height:1.5;margin-top:.6rem}.march-panel .primary{width:100%;margin-top:1rem;font-size:.85rem}.feedback{font-size:.8rem;color:var(--blue);line-height:1.5;margin-top:.5rem}.order{display:flex;align-items:center;gap:.5rem;padding:.8rem 0;border-top:1px solid var(--line)}.order strong{font-size:.8rem;font-weight:500}.order small{display:block;line-height:1.5}.order button{margin-left:auto;font-size:1.2rem}.journal{border-top:1px solid var(--line);display:flex;align-items:center;gap:1.2rem;padding:1rem 2rem}.journal p{font-size:.8rem;color:var(--muted);line-height:1.5}.journal button{margin-left:auto;font-size:.8rem}.omniscient-banner{background:#403627;color:#f2d7a5;padding:.7rem 2rem;font-size:.85rem}.loading{padding:3rem}.loading p{margin:1rem 0}@media(min-width:1500px){.app-shell{max-width:1700px;margin:auto;border-inline:1px solid var(--line)}.hex-map{height:560px}}@media(max-width:1050px){.topbar{gap:1.2rem;padding:1rem}.labbar{padding:.7rem 1rem;gap:1rem}.workspace{grid-template-columns:minmax(0,1fr) 280px}.army-panel{padding:1.25rem}.army-list{grid-template-columns:repeat(2,minmax(0,1fr))}.clock{padding-left:1rem}.save-label{display:none}.section-heading{align-items:flex-start;flex-wrap:wrap}.map-caption{left:1.25rem}.map-help{display:none}}@media(max-width:760px){.topbar{flex-wrap:wrap;gap:1rem}.brand h1{font-size:1.25rem}.brand{flex:1}.clock{border:0;padding:0}.clock small{display:none}.turn .eyebrow{display:none}.turn-button{order:4;width:100%;min-height:44px}.labbar{gap:.75rem;font-size:.8rem}.lab-label{width:100%}.workspace{display:flex;flex-direction:column}.sidebar{border-left:0;display:grid;grid-template-columns:1fr 1fr}.orders-panel{grid-column:1/-1}.map-area{min-height:360px}.hex-map{height:360px}.map-caption{top:1rem}.map-caption span:last-child{font-size:.85rem}.map-tools{bottom:4.5rem;right:.75rem}.map-legend{padding:.75rem;gap:.7rem;font-size:.7rem}.army-panel{padding:1rem}.army-list{grid-template-columns:repeat(3,minmax(0,1fr))}.unit-card{padding:.6rem;gap:.35rem}.unit-icon{display:none}.unit-card strong{font-size:.85rem}.unit-card small{font-size:.75rem}.journal{flex-wrap:wrap;padding:1rem}.journal p{flex-basis:100%}.journal button{margin:0}.sidebar section{padding:1rem}.sidebar h2{font-size:1.25rem}.omniscient-banner{padding:.75rem 1rem}}@media(max-width:420px){.army-list{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar{display:block}.brand span:not(.shield){font-size:.65rem}.shield{width:32px;height:40px;font-size:1.5rem}.brand h1{font-size:1.05rem}.clock{font-size:.8rem}.turn strong{font-size:1rem}.map-caption .eyebrow{font-size:.65rem}}
.destination{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.8rem;font-size:.8rem;color:var(--muted)}.destination select{width:100%;font-size:.85rem;padding:.4rem .6rem}
.workspace[hidden]{display:none}.game-tabs{display:flex;gap:.4rem;padding:.6rem 2rem;border-bottom:1px solid var(--line)}.game-tabs button{background:transparent;border-color:transparent;min-width:100px}.game-tabs button[aria-current]{border-color:var(--gold);color:var(--gold)}.economy-surface{padding:1.5rem 2rem;max-width:100%;min-width:0}.economy-heading{display:flex;align-items:center;gap:3rem;margin-bottom:1.5rem}.economy-heading h2{font-size:2rem;margin-top:.5rem}.economy-heading>div:first-child{margin-right:auto}.treasury strong{display:block;font:2rem Georgia,serif;color:var(--gold);margin-top:.4rem}.treasury span,.budget span,.budget small{display:block;font-size:.8rem;color:var(--muted);line-height:1.6}.budget strong{display:block;margin:.5rem 0;font-size:1rem}.economy-note{font-size:.9rem;color:var(--muted);line-height:1.6;margin-bottom:1rem}.stock-panel,.management-card{background:var(--panel);border:1px solid var(--line);padding:1.25rem;border-radius:4px;min-width:0}.stock-panel{margin-bottom:1.25rem}.table-scroll{max-width:100%;overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:.8rem .6rem;border-bottom:1px solid var(--line);white-space:nowrap}thead th{font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}tbody th{font-weight:500}th small,td small{display:block;margin-top:.3rem;font-weight:400}.management-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1rem 0}.management-card h2{margin:.35rem 0 1rem}.management-card p{font-size:.85rem;line-height:1.6;color:var(--muted);margin:.75rem 0}.management-card label{display:flex;flex-direction:column;gap:.4rem;margin:.8rem 0;font-size:.85rem;color:var(--muted)}.management-card select{max-width:100%;width:100%;font-size:.85rem}.management-card button{font-size:.85rem}.management-card .note{font-size:.8rem}.project-line{padding:.7rem 0;border-top:1px solid var(--line)}.project-line strong{display:block;font-weight:500;font-size:.85rem}.project-line small{display:block;line-height:1.5;overflow-wrap:anywhere}.supply-row{display:flex;justify-content:space-between;font-size:.85rem;padding:.5rem 0}.route-management{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,1fr);gap:1.25rem}.convoy-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:1rem 0}.convoy-choice{text-align:left;display:flex;flex-direction:column;gap:.5rem;font-size:.85rem}.convoy-choice.active{border-color:var(--gold)}.convoy-choice strong{font-weight:500}.management-card fieldset{border:1px solid var(--line);border-radius:4px;max-height:220px;overflow:auto;margin:1rem 0}.management-card legend{font-size:.8rem;padding:0 .5rem}.management-card .route-check{display:flex;flex-direction:row;gap:.6rem;align-items:center;min-height:30px;margin:.35rem 0}.route-check input{accent-color:var(--gold);width:18px;height:18px;flex-shrink:0}.convoy-factory{margin-top:1rem;display:flex;gap:1rem;flex-wrap:wrap;align-items:center}.convoy-factory h2{width:100%;margin-bottom:0}.convoy-factory label{min-width:180px}.alerts{border-left:3px solid var(--gold);padding:.6rem 1rem;background:#322d23;margin-bottom:1rem;font-size:.85rem}.alerts p{line-height:1.6}.global-feedback{padding:0 2rem;color:var(--blue);font-size:.9rem}.global-feedback:not(:empty){padding-top:.75rem}.global-feedback.warning{color:var(--error)}@media(max-width:1050px){.management-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.economy-heading{gap:1.5rem}}@media(max-width:760px){.economy-surface{padding:1rem}.game-tabs{padding:.6rem 1rem}.economy-heading{flex-wrap:wrap;gap:1rem}.economy-heading>div:first-child{width:100%}.economy-heading h2{font-size:1.6rem}.management-grid,.route-management{grid-template-columns:1fr}.stock-panel,.management-card{padding:1rem}.convoy-factory{display:block}.global-feedback{padding:0 1rem}.convoy-list{grid-template-columns:1fr}.game-tabs button{min-width:0;flex:1}}

/* Lot 4: military controls use the existing domain palette and spacing. */
.military-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1rem 0}
.military-surface>.economy-card{margin:1rem 0}
.military-roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}
.military-unit{display:flex!important;align-items:flex-start;gap:.75rem;border:1px solid var(--border,#30434b);padding:.75rem;cursor:pointer}
.military-unit input{width:1.2rem;min-height:1.2rem;margin-top:.2rem;flex-shrink:0}
.military-unit small,.combat-estimate small{display:block;margin-top:.4rem;line-height:1.5}
.military-surface input[type=number]{width:100%;padding:.75rem;background:#203139;color:#e9e8df;border:1px solid #40545c;border-radius:3px}
.military-surface button{margin:.5rem .5rem .5rem 0;min-height:44px}
.military-surface p{line-height:1.55}.military-surface select{max-width:100%}
.combat-estimate{padding:1rem;border-left:3px solid #dfbd79;background:#15262e;margin:1rem 0}
.battle-report{padding:1rem;border:1px solid #30434b;overflow-wrap:anywhere}
.battle-report h4{margin:0 0 .5rem}.game-tabs{flex-wrap:wrap}
@media(max-width:1024px){.military-grid,.military-roster{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.military-grid,.military-roster{grid-template-columns:minmax(0,1fr)}}
.military-surface .economy-card{padding:1.25rem;background:#1a2b33;border:1px solid #30434b;border-radius:3px;min-width:0}
.military-surface .economy-card h3{margin-top:0;font-family:Georgia,serif;font-size:1.4rem;font-weight:400}
.military-surface .economy-card>label{display:flex;flex-direction:column;gap:.5rem;margin:.75rem 0}
.military-surface .economy-card>label select{width:100%;min-height:44px}
.military-surface .military-unit{margin:0}.military-surface .battle-report{background:#14242c}

.private-shell{max-width:860px;margin:0 auto;padding:40px 24px 80px}.private-shell h1{font-size:2.4rem}.private-shell header>p{line-height:1.6;color:var(--muted,#b7c0c6)}.private-card{margin:24px 0;padding:24px;border:1px solid #3d4b53;background:#18252d;border-radius:12px}.private-card h2{margin-top:0}.private-card form,.private-card label{display:flex;flex-direction:column;gap:10px}.private-card form{gap:20px}.private-card input{min-width:0;width:100%;padding:12px;border:1px solid #60717d;border-radius:5px;background:#101a22;color:#eef1ea;font:inherit}.private-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.private-actions button{min-height:44px}.game-list,.seat-list{list-style:none;padding:0}.game-list li,.seat-list li{padding:14px 0;border-bottom:1px solid #3d4b53;display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap}.game-list small{display:block;margin-top:7px}.seat-list label{width:100%}.private-shell small{color:#bac4cc;line-height:1.5}.private-shell button{min-height:44px}.private-shell button:disabled{opacity:.45}.private-shell input:focus-visible,.private-shell button:focus-visible{outline:3px solid #ddbf76;outline-offset:3px}@media(max-width:600px){.private-shell{padding:24px 16px}.private-card{padding:18px}.private-shell h1{font-size:1.9rem}.private-actions>span{overflow-wrap:anywhere}}

/* Lot 6: contextual details retain the existing prototype palette. */
.forecast{margin:0 0 12px;padding:12px 16px;background:var(--panel,#152731);border:1px solid #3b5054;border-radius:6px}
.forecast summary,.development-panel summary{cursor:pointer;font-weight:600;min-height:44px;align-content:center}
.forecast p,.forecast ul{margin:8px 0}.development-panel{margin-top:16px}.development-panel details{border-top:1px solid #3b5054;padding:8px 0}.development-panel details:first-of-type{border-top:0}.development-panel select{max-width:100%}.forecast summary:focus-visible,.development-panel summary:focus-visible{outline:2px solid #ffe0a0;outline-offset:3px}

.politics-surface{padding:24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:20px;align-items:start}.politics-surface section{background:var(--panel,#fff);padding:20px;border:1px solid #d7d1c4;min-width:0}.politics-surface h2{margin:0 0 12px}.politics-surface p{line-height:1.55}.politics-surface fieldset{border:0;padding:0;min-width:0}.politics-surface label{display:block;margin:12px 0}.politics-surface input:not([type=checkbox]),.politics-surface select{display:block;width:100%;max-width:100%;padding:10px;min-height:44px;margin-top:6px}.politics-surface button{min-height:44px;margin:6px 8px 6px 0;white-space:normal;max-width:100%}.politics-surface article{border-top:1px solid #d7d1c4;padding:12px 0;overflow-wrap:anywhere}.political-list{list-style:none;padding:0}.political-list li{padding:10px 0;border-bottom:1px solid #d7d1c4}.political-list span{display:block;margin-top:4px}.politics-surface .company-check{display:flex;gap:8px;align-items:center;overflow-wrap:anywhere}.table-scroll{overflow-x:auto}.politics-surface table{border-collapse:collapse;width:100%}.politics-surface th,.politics-surface td{text-align:left;padding:12px 8px;border-bottom:1px solid #d7d1c4}.game-tabs{flex-wrap:wrap}.politics-surface :focus-visible{outline:3px solid #93631f;outline-offset:3px}@media(max-width:600px){.politics-surface{padding:12px;gap:12px}.politics-surface section{padding:14px}}
.game-tabs button{flex:0 0 auto;max-width:100%;white-space:normal}.politics-surface input:not([type=checkbox]){background:var(--bg);color:var(--ink);border:1px solid var(--line)}.politics-surface p{margin:10px 0}.politics-surface th,.politics-surface td{white-space:normal}.politics-surface section,.politics-surface article,.political-list li,.politics-surface th,.politics-surface td{border-color:var(--line)}
/* Carte principale : panneaux non modaux, carte toujours disponible. */
[hidden]{display:none!important}.map-first{display:block;position:relative}.map-first.planning{display:grid}.map-first .theatre{min-width:0}.map-instruction{padding:12px 16px;color:var(--muted);font-size:14px}.map-shortcuts{display:flex;gap:8px;flex-wrap:wrap;padding:0 16px 12px}.map-shortcuts button,.roster-toggle{background:var(--panel);border:1px solid var(--line);color:var(--ink);padding:10px 16px;border-radius:6px}.roster-toggle{margin:12px 16px}.map-context,.map-drawer{position:fixed;right:20px;top:180px;z-index:30;background:#1a272e;border:1px solid #52616a;border-radius:12px;box-shadow:0 20px 70px #0009;color:var(--ink);max-height:calc(100dvh - 200px);overflow:auto;overscroll-behavior:contain}.map-context{width:320px;padding:16px}.map-context button{min-height:44px;padding:10px 12px;white-space:normal}.map-context>button,.map-context .context-choice{width:100%;text-align:left;margin:5px 0}.map-context p{color:var(--muted);font-size:14px}.context-choice{display:grid;grid-template-columns:1fr auto;gap:4px;border:1px solid var(--line);border-radius:7px;background:#23353e;color:var(--ink)}.context-choice small{grid-column:1;color:var(--muted)}.context-choice span{grid-column:2;grid-row:1/3}.drawer-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.drawer-heading h2{font-size:24px;margin:5px 0}.drawer-heading small{color:var(--gold);font-size:11px;letter-spacing:.08em}.drawer-heading button{flex:none;width:44px;height:44px;font-size:24px;border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:50%}.map-drawer{width:min(520px,calc(100vw - 40px));top:140px;max-height:calc(100dvh - 160px);display:flex;flex-direction:column;overflow:hidden}.map-drawer>.drawer-heading{padding:18px;border-bottom:1px solid var(--line)}.drawer-content{overflow:auto;padding:18px;overscroll-behavior:contain}.drawer-content .economy-surface,.drawer-content .politics-surface{padding:0;display:block;min-width:0}.drawer-content .economy-heading{display:none}.drawer-content .management-grid,.drawer-content .military-grid,.drawer-content .route-management{display:block}.drawer-content section{margin-bottom:16px}.drawer-content .management-card,.drawer-content .economy-card{padding:14px}.drawer-content .military-roster{grid-template-columns:1fr}.drawer-content .politics-surface>section{padding:16px}.drawer-content input,.drawer-content select{max-width:100%;min-width:0}.drawer-content button{white-space:normal}.drawer-content .table-scroll{overflow:auto}.drawer-content .economy-surface[data-focus]>.stock-panel,.drawer-content .economy-surface[data-focus]>.alerts,.drawer-content .economy-surface[data-focus]>.management-grid:last-child{display:none}.drawer-content [data-focus="guard"] [data-section]:not([data-section="guard"]),.drawer-content [data-focus="build"] [data-section]:not([data-section="build"]),.drawer-content [data-focus="outpost"] [data-section]:not([data-section="outpost"]){display:none}.drawer-content [data-focus="guard"] .development-panel{display:none}.drawer-recruit .military-surface>.economy-card,.drawer-recruit .military-grid>.economy-card:not(:last-child),.drawer-recruit .military-surface>.military-reports{display:none}.map-feedback{position:relative;z-index:31;margin:8px 20px;color:var(--gold)}.map-feedback:empty{display:none}.unit-meters{display:grid;grid-template-columns:1fr auto;gap:12px}.unit-meters dd{margin:0;color:var(--gold)}button:focus-visible,summary:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
@media(max-width:760px){.map-context,.map-drawer{top:auto;bottom:0;right:0;width:100%;max-height:76dvh;border-radius:18px 18px 0 0;box-sizing:border-box}.map-context{padding:16px}.map-drawer{max-height:85dvh}.drawer-content{padding:12px;padding-bottom:max(20px,env(safe-area-inset-bottom))}.map-first.planning{display:block}.map-first .sidebar{margin:12px}.map-shortcuts{gap:6px}.map-shortcuts button{font-size:13px;padding:8px 10px}.drawer-heading h2{font-size:21px}.map-context:before,.map-drawer:before{content:'';display:block;width:40px;height:4px;background:#607078;border-radius:3px;margin:8px auto;flex:none}}

.drawer-recruit .military-surface>section,.drawer-recruit .military-grid>section{display:none!important}.drawer-recruit .military-grid>section[data-recruit]{display:block!important}
.asset-sprite,.heraldry,.place-art{pointer-events:none}.place-art.stale{opacity:.55;filter:saturate(.4)}.map-tools{flex-wrap:wrap}.damage-smoke{pointer-events:none}.hex:focus-visible .surface{stroke:#fff2c6;stroke-width:3}.heraldry image{filter:drop-shadow(0 1px 1px #000)}
.art-icon{width:64px;height:64px;flex:none;display:inline-block;vertical-align:middle}.unit-icon .art-icon{width:40px;height:48px}.relation-ring{fill:#10222b99;stroke:#e3bf7d;stroke-width:2}.relation-own .relation-ring{stroke:#74bac3}.relation-ally .relation-ring{stroke:#88d593}.relation-enemy .relation-ring{stroke:#ff8c75}.relation-neutral .relation-ring{stroke:#e3bf7d}.game-overlay{pointer-events:none;opacity:.85}.map-legend{flex-wrap:wrap}.ally-legend{color:#acd7b0}
.hex-map{overscroll-behavior:contain}.slope-links{pointer-events:none}
/* Visual command language — selected direction, 0.9 */
[hidden]{display:none!important}.command-navigation{display:flex;gap:8px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--bg);flex-wrap:wrap}.command-navigation button{min-height:44px;background:transparent;border:1px solid var(--line);color:var(--ink);padding:8px 16px;border-radius:6px}.command-navigation button[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}.game-tabs{flex-wrap:wrap}.map-first.planning{display:block}.map-caption{display:none}.map-instruction{padding:8px 16px}.labbar{font-size:12px}.map-drawer,.map-context,.march-card{background:#14232b;border-color:#52616a}.map-drawer{top:110px;max-height:calc(100dvh - 130px);width:min(460px,calc(100vw - 32px))}.drawer-heading h2,.army-portrait h3,.march-card h2{font-family:Georgia,serif}.army-command p{color:var(--muted);line-height:1.5}.army-portrait{display:flex;gap:16px;align-items:center;margin-bottom:20px}.army-portrait .art-icon{width:100px;height:115px}.army-portrait h3{font-size:25px;margin:0}.army-portrait p{margin:8px 0}.army-portrait strong{color:var(--gold)}.wide-action{display:block;width:100%;min-height:48px;margin:12px 0;padding:14px 12px;border:1px solid var(--line);background:#1c303a;color:var(--ink);border-radius:7px;text-align:center;font-size:16px}.wide-action.primary{background:var(--gold);border-color:var(--gold);color:#10202a;font-weight:700}.text-button{background:none;border:0;color:var(--muted);padding:10px 0;min-height:44px}.army-command details,.march-card details{border-top:1px solid var(--line);padding:14px 0;margin-top:12px}.army-command summary,.march-card summary{min-height:36px;cursor:pointer}.army-command input[type=number]{display:block;width:100%;padding:10px;margin:8px 0}.saved-march{border-left:3px solid var(--gold);padding:12px;margin:16px 0;background:#ffffff05}.saved-march small{display:block;margin:8px 0}.company-picker label{display:flex;gap:12px;align-items:center;min-height:44px}.company-picker input{width:20px;height:20px}.visual-choices{border:0;padding:0;margin:16px 0;min-width:0}.visual-choices legend{color:var(--muted);margin-bottom:12px}.choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.visual-choice{position:relative;cursor:pointer;display:flex!important;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;padding:12px 6px!important;border:1px solid #4d626c;border-radius:8px;background:#192b34;text-align:center;min-width:0;margin:0!important}.visual-choice input{position:absolute;opacity:0;width:1px;height:1px}.visual-choice:focus-within{outline:3px solid var(--gold);outline-offset:3px}.visual-choice.is-picked{border:2px solid var(--gold);padding:11px 5px!important;background:#2b3435}.visual-choice .choice-check{position:absolute;right:5px;top:5px;width:22px;height:22px;border-radius:50%;color:#14232b;background:transparent;font-weight:bold}.visual-choice.is-picked .choice-check{background:var(--gold)}.visual-choice strong{font-size:14px;overflow-wrap:anywhere}.visual-choice small{font-size:12px;color:var(--muted)}.posture-art{display:block;width:100%;aspect-ratio:1;background-image:url('/assets/ui/postures.png');background-repeat:no-repeat;background-size:300% 100%;border-radius:4px}.posture-offensive{background-position:0 0}.posture-balanced{background-position:50% 0}.posture-defensive{background-position:100% 0}.posture-effect{font-size:14px;color:var(--gold)!important}.march-card{position:fixed;z-index:32;right:20px;top:110px;width:420px;max-height:calc(100dvh - 130px);overflow:auto;overscroll-behavior:contain;padding:20px;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 50px #0007}.march-card p,.march-card small{line-height:1.5;color:var(--muted)}.march-card label{display:block}.march-card select{width:100%;padding:10px}.continue-route{display:flex!important;gap:10px;align-items:flex-start;font-size:14px;margin:12px 0}.continue-route input{width:20px;height:20px;flex:none}.safety-line{border-top:1px solid var(--line);padding-top:16px;font-size:13px}.map-tools button{min-width:44px;min-height:44px}.unit-overlay [data-army]{cursor:pointer}.unit-overlay [data-army]:focus-visible .counter rect{stroke:#fff;stroke-width:3}.drawer-content .visual-choices .art-icon{width:70px;height:76px}.drawer-content [data-focus="build"] .development-panel,.drawer-content [data-focus="outpost"] .development-panel{display:none}.drawer-content .economy-surface[data-focus]>.economy-note{font-size:13px}.drawer-content .economy-surface[data-focus] .management-grid{margin:0}.map-feedback{pointer-events:none}.primary:disabled,.wide-action:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:760px){.topbar{padding:12px}.topbar .brand h1{font-size:20px}.topbar .brand>div>span,.topbar .turn .eyebrow,.labbar>span:last-child{display:none}.command-navigation{padding:8px;gap:6px}.command-navigation button{font-size:13px;padding:8px 10px}.map-instruction{font-size:12px}.map-area{height:auto;min-height:55dvh}.hex-map{height:60dvh!important;min-height:380px}.map-drawer,.map-context,.march-card{top:auto;bottom:0;right:0;width:100%;max-height:66dvh;border-radius:18px 18px 0 0;box-sizing:border-box}.march-card{padding:16px;padding-bottom:max(16px,env(safe-area-inset-bottom))}.drawer-content{padding:16px}.army-portrait{gap:12px;margin-bottom:12px}.army-portrait .art-icon{width:76px;height:88px}.army-portrait h3{font-size:22px}.posture-choices .choice-grid{gap:6px}.posture-choices .visual-choice{padding:8px 3px!important}.posture-choices .visual-choice strong{font-size:13px}.posture-choices .visual-choice.is-picked{padding:7px 2px!important}.map-legend{font-size:11px}.journal{display:none}.map-feedback{margin:8px}.map-drawer>.drawer-heading{padding:12px 16px}.army-command details p{font-size:13px}}
@media(max-width:760px){.live-game .topbar{flex-wrap:nowrap;gap:8px;padding:10px 12px}.live-game .topbar .brand{flex:1;gap:8px}.live-game .topbar .brand h1{font-size:16px;white-space:nowrap}.live-game .topbar .turn{display:none}.live-game .topbar .clock{font-size:12px}.live-game .topbar .turn-button{order:initial;width:auto;padding:8px;font-size:12px;min-height:40px}.live-game .labbar{display:block;padding:6px 12px;font-size:11px}.live-game .labbar>span:not(:nth-child(2)){display:none}.app-shell:has(.map-drawer) .map-instruction,.app-shell:has(.march-card) .map-instruction,.app-shell:has(.map-drawer) .forecast,.app-shell:has(.march-card) .forecast{display:none}.map-drawer{max-height:62dvh}.army-command .posture-choices~.primary{position:sticky;bottom:0;z-index:1;box-shadow:0 -10px 12px #14232b}.posture-choices{margin:8px 0}.posture-choices~p{margin:10px 0;font-size:13px}.army-command details{padding:10px 0}.map-drawer .drawer-heading small{font-size:10px}}
@media(max-width:380px){.live-game .topbar .clock{display:none}.live-game .topbar .brand h1{font-size:15px;letter-spacing:.06em}.live-game .topbar .brand{min-width:0}.live-game .topbar .turn-button{font-size:11px;flex:none}}
@media(max-width:480px){.live-game .topbar .clock{display:none}.live-game .topbar .brand h1{font-size:16px;letter-spacing:.08em}}
.app-shell:has(.map-drawer)>.map-feedback,.app-shell:has(.march-card)>.map-feedback{display:none}.live-game .topbar .turn-button{flex:none!important}

/* Open realm: one entry point, schedule always readable on mobile. */
.realm-card{border-color:#ad8f4e;background:linear-gradient(130deg,#142a34,#111b2a)}
.realm-card li{margin:.5rem 0}.realm-card>small{display:block;margin-top:12px;color:#b8c5cf}
.realm-card .primary{min-height:48px}.realm-status{padding:8px 18px;background:#1e302f;color:#e5d6a1;font-size:13px;line-height:1.5}

.map-caption{flex-wrap:wrap}.map-version{font-size:11px;opacity:.7;white-space:nowrap}

/* Taller map; SVG viewBox follows the measured container instead of letterboxing. */
.map-area{min-height:0}.hex-map{height:clamp(540px,calc(100dvh - 350px),1100px)!important;min-height:0}
@media(max-width:760px){.hex-map{height:72dvh!important;min-height:460px}.map-legend{gap:.5rem;padding:.6rem}.map-tools{bottom:5.5rem}}

.map-area:fullscreen{width:100vw;height:100dvh;background:#14242e}.map-area:fullscreen .hex-map{height:100dvh!important;min-height:0}.map-tools{flex-wrap:wrap;max-width:calc(100% - 24px)}

/* The map is the main play area, including on small screens. */
.hex-map{height:80vh!important;min-height:80vh!important}
.map-area:fullscreen .hex-map{height:100vh!important;min-height:100vh!important}

.place-label{text-anchor:middle;pointer-events:none}
