:root{font-family:Georgia,'Times New Roman',serif;color:#eee4ce;background:#101a1e;font-synthesis:none}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}button{font:inherit;cursor:pointer;color:#f6ebd2;border:1px solid #a18a5e;background:linear-gradient(#3c3931,#1a2328);border-radius:7px;padding:10px 14px;min-height:42px}button:disabled{opacity:.35;cursor:default}button:active{filter:brightness(1.4)}#app{height:100dvh;display:flex;flex-direction:column;min-height:0}header{display:flex;align-items:center;justify-content:space-between;gap:10px;background:linear-gradient(#202c31,#101b20);border-bottom:2px solid #9b8354;padding:8px 12px;min-height:65px}.brand{color:#e7c886;font-size:clamp(15px,2.4vw,24px);font-weight:bold;white-space:nowrap}.battle{text-align:center;font-size:clamp(12px,2vw,19px)}.battle small{display:block;color:#b9ad8d;font-size:12px}.tools{display:flex;gap:5px}.tools button{min-width:37px;padding:6px 8px;font-size:22px}.battlefield{flex:1;min-height:120px;position:relative;background:#c9ac73;overflow:hidden}canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;user-select:none;cursor:grab}canvas:active{cursor:grabbing}.legend{position:absolute;bottom:9px;left:50%;transform:translateX(-50%);display:flex;gap:12px;white-space:nowrap;background:#142229d9;border:1px solid #7c7259;border-radius:6px;padding:7px 12px;font:11px system-ui}.legend span{display:flex;align-items:center;gap:5px}.legend i{display:inline-block;width:12px;height:12px;border:2px solid;border-radius:3px}.cyan{color:#47e7f1}.green{color:#3ffb82}.orange{color:#ff9b39}footer{padding:10px 13px 13px;background:linear-gradient(#253038,#111b20);border-top:2px solid #a18a5e;display:grid;grid-template-columns:minmax(170px,1fr) minmax(200px,1.5fr);gap:8px 16px;align-items:center;max-height:42vh;overflow:auto}#unit{min-width:0}.unit-name{font-size:19px;font-weight:bold}.unit-name small{font-size:13px;color:#bdab8b;margin-left:7px}.meter{height:9px;border:1px solid #9a8359;border-radius:5px;background:#48362f;margin:8px 0;overflow:hidden}.meter span{display:block;height:100%;background:linear-gradient(90deg,#6ccc5a,#e4c754,#d16d49)}.stats{font:12px/1.5 system-ui;color:#c5c9c4}#actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.target{width:100%;font:12px/1.4 system-ui;color:#e5d1aa}.danger{background:linear-gradient(#9d4939,#602b28)}.gold{background:linear-gradient(#a98a4e,#695028);border-color:#d9bd79}#status{font:12px/1.4 system-ui;color:#d0c6ad}.reset{justify-self:end;font-size:12px;min-height:32px;padding:5px 10px}dialog{max-width:min(440px,90vw);border:2px solid #b19a67;border-radius:10px;background:#18272c;color:#f1e5ca;line-height:1.5}dialog::backdrop{background:#000a}@media(max-width:650px){header{min-height:57px;padding:6px 8px}.brand{font-size:15px}.battle{font-size:12px}.battle small{font-size:10px}.tools button{min-width:30px;min-height:32px;font-size:18px;padding:3px}footer{grid-template-columns:1fr 1fr;gap:7px;padding:9px;max-height:40vh}.unit-name{font-size:16px}#actions button{font-size:13px;min-height:35px;padding:7px 10px}.legend{font-size:10px;gap:7px;padding:5px 7px}#status{grid-column:1 / -1}.reset{grid-column:1 / -1;justify-self:end}}

#setup-panel{background:#172329;border-top:1px solid #85744f;max-height:30vh;overflow:auto;padding:8px 14px;font:13px system-ui}#setup-panel:empty{display:none}#setup-panel h2,#setup-panel h3{font: bold 18px Georgia;margin:5px 0}#setup-panel p{margin:5px 0 9px;color:#c7c5b4}.roster{display:grid;gap:5px;margin:8px 0}.roster-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.roster-row>span:first-child{min-width:130px}.roster-row button,.reserve-list button{padding:3px 10px;min-height:30px}.roster-row b{min-width:16px;text-align:center}.reserve-list{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:7px 0}.reserve-list span{font-size:12px;color:#d7c5a3}.summary{font-weight:bold;color:#e7c886!important}@media(max-width:650px){#setup-panel{max-height:38vh}.roster-row{gap:4px}.roster-row>span:first-child{min-width:98px;font-size:11px}.roster-row button{padding:3px 7px}}

.unit-orders{display:flex;flex-wrap:wrap;gap:5px 16px;margin-top:7px;font:13px/1.5 system-ui}.movement-label{color:#73e0e8}.rule-note{margin:5px 0 0;max-width:65ch;font:12px/1.45 system-ui;color:#cfceb9}

.legend{max-width:calc(100% - 20px);flex-wrap:wrap;justify-content:center}.legend [hidden]{display:none}.artillery-range{color:#edd59a;border-style:dashed!important}

.tools #sound-toggle{font-size:18px}header .battle{min-width:0}@media(max-width:650px){.tools{gap:3px}.tools #sound-toggle{font-size:16px}}

#terrain-panel{position:absolute;z-index:3;right:12px;bottom:12px;width:min(370px,calc(100% - 24px));max-height:calc(100% - 70px);border:2px solid #a98a4e;border-radius:8px;box-shadow:0 8px 30px #0006;overflow:auto;padding:12px 16px;background:#e1cf9e;color:#372d1f;border-top:2px solid #a98a4e;font:13px/1.5 system-ui}#terrain-panel[hidden]{display:none}#terrain-panel h3{font:bold 19px Georgia;margin:0 0 6px}#terrain-panel ul{margin:0 0 8px;padding-left:18px}#terrain-panel li+li{margin-top:3px}.terrain-order{font-weight:600;margin:6px 0}#terrain-panel button{min-height:32px;padding:5px 10px}.tools button[aria-pressed="true"]#inspect-terrain{background:#7e693e;border-color:#e5cc8b}@media(max-width:650px){header{flex-wrap:wrap}.battle{flex:1}.tools{margin-left:auto}#terrain-panel{right:8px;bottom:8px;width:calc(100% - 16px);max-height:calc(100% - 60px)}}

.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}dialog h2{margin-top:0}button:focus-visible{outline:3px solid #edd59a;outline-offset:3px}

.planning .battlefield,.planning .tools,.planning footer,.planning #terrain-panel{display:none}.planning #setup-panel{flex:1;max-height:none;padding:32px clamp(18px,6vw,88px);background:radial-gradient(ellipse at 25% 0,#eadbb5,#d3ba84);color:#302a20;border:0;overflow:auto}.planning #setup-panel h1{font:700 clamp(28px,4vw,42px)/1.15 Georgia;margin:0 0 10px}.planning #setup-panel p{color:#57462c}.planning-intro{max-width:720px;margin-bottom:28px}.planning-intro p{font:15px/1.6 system-ui}.objective-picker{position:relative;max-width:1100px;border:0;padding:0;margin:0 0 28px}.objective-picker legend{font:bold 23px Georgia;padding:0;margin-bottom:16px}.random-battle{position:absolute;right:0;top:-44px;font-size:14px;min-height:34px;padding:6px 12px}.objective-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.objective-card{text-align:left;background:#e9d7ae;color:#433723;border:1px solid #a88a55;border-radius:8px;padding:18px;display:flex;flex-direction:column;gap:9px;min-height:154px;box-shadow:0 3px 0 #8c754122}.objective-card strong{font:bold 21px Georgia}.objective-card>span:last-child{font:14px/1.5 system-ui}.objective-symbol{font-size:28px;color:#8d6e31}.objective-card[aria-pressed="true"]{background:#23343a;color:#f6e5bd;border:2px solid #9d7b36;padding:17px;box-shadow:0 4px 0 #8c754144}.objective-card[aria-pressed="true"] .objective-symbol{color:#e1bd70}.planning #setup-panel .objective-brief{max-width:90ch;font:13px/1.6 system-ui;margin:14px 0 0;min-height:42px}.army-builder{max-width:760px;border-top:1px solid #a98a54;padding-top:20px}.planning #setup-panel .army-builder h2{font:bold 23px Georgia;margin:0 0 8px}.planning #setup-panel .summary{color:#67491f!important}.planning .roster{gap:9px;margin:16px 0}.planning .roster-row>span:first-child{min-width:175px}.planning .roster-row button{min-width:35px}.planning .roster-row>span:nth-of-type(2){margin-left:25px;font-size:12px}.reserve-note{font:12px/1.6 system-ui;max-width:70ch}.planning-proceed{display:flex;justify-content:space-between;align-items:center;gap:20px;max-width:1100px;margin-top:28px;padding-top:20px;border-top:1px solid #a98a54;font:13px system-ui}.planning-proceed button{padding:12px 22px;font-size:16px}.objective-status{position:absolute;top:12px;left:50%;transform:translateX(-50%);z-index:1;max-width:calc(100% - 24px);padding:7px 12px;background:#18282fe6;border:1px solid #ad945d;border-radius:5px;color:#eed8a6;font:12px/1.5 system-ui;text-align:center;pointer-events:none}.objective-status[hidden]{display:none}.battle-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;margin:12px 0 18px}.battle-summary h3{margin:0}.battle-summary p{font:13px/1.6 system-ui}@media(max-width:650px){.planning #setup-panel{padding:22px 16px}.objective-cards{grid-template-columns:1fr;gap:10px}.objective-card{min-height:0;display:grid;grid-template-columns:34px 1fr;padding:13px}.objective-card[aria-pressed="true"]{padding:12px}.objective-card>span:last-child{grid-column:2}.objective-symbol{grid-row:1/3}.random-battle{font-size:12px}.planning .roster-row>span:first-child{min-width:124px}.planning .roster-row>span:nth-of-type(2){margin-left:6px}.planning .roster-row{gap:6px}.planning-proceed{align-items:stretch;flex-direction:column;gap:12px}.battle-summary{grid-template-columns:1fr}}

.weather-bar{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 24px;flex-shrink:0;padding:8px 14px;background:#3d493e;border-bottom:1px solid #b4a26e;color:#f5e7c5;font:12px/1.5 system-ui}.weather-bar strong{font:bold 17px Georgia;color:#ffe0a0}.weather-bar[hidden]{display:none}@media(max-width:650px){.weather-bar{gap:4px 12px;padding:6px 8px;font-size:10px}.weather-bar strong{font-size:15px}}

.formation-picker{width:100%;min-width:0;border:1px solid #7f765b;border-radius:7px;margin:0;padding:8px 10px}.formation-picker legend{padding:0 5px;font:bold 15px Georgia;color:#e8cd92}.formation-note{font:12px/1.4 system-ui;margin:0 0 8px;color:#e0d4b7}.formation-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.formation-choice{display:flex;flex-direction:column;gap:5px;text-align:left;padding:8px;min-height:82px}.formation-choice strong{font:bold 14px Georgia}.formation-choice span{font:11px/1.4 system-ui}.formation-choice[aria-pressed="true"]{border:2px solid #e2c274;background:#465047;opacity:1}.formation-choice:disabled:not([aria-pressed="true"]){opacity:.55}@media(max-width:650px){footer:has(.formation-picker){grid-template-columns:1fr}.formation-choice{min-height:88px;padding:6px}.formation-picker{padding:6px}.formation-choice span{font-size:10px}}

#foresight-panel{position:absolute;z-index:4;right:12px;top:54px;width:min(360px,calc(100% - 24px));max-height:calc(100% - 70px);overflow:auto;padding:14px 16px;background:#e1cf9e;color:#372d1f;border:2px solid #a98a4e;border-radius:8px;box-shadow:0 8px 30px #0006;font:13px/1.5 system-ui}#foresight-panel[hidden]{display:none}#foresight-panel h3{margin:0 0 8px;font:bold 19px Georgia}#foresight-panel p{margin:7px 0}#foresight-panel button{font-size:13px;padding:6px 10px;min-height:32px}

#save-status{font:10px/1.3 system-ui;color:#a8c6a7;margin-top:2px}#save-status.save-warning{color:#ffcc89}.resume-card{max-width:1100px;margin:0 0 30px;padding:20px 24px;border:1px solid #9b7d40;border-left:5px solid #947133;border-radius:7px;background:#23343a;color:#f4e3bc;box-shadow:0 4px 12px #59401c22}.planning #setup-panel .resume-card h2{font:bold 24px Georgia;margin:0 0 10px}.planning #setup-panel .resume-card p{font:13px/1.5 system-ui;color:#e2d1ab;margin:8px 0 14px}.planning #setup-panel .resume-card .resume-note{font-size:11px;margin:12px 0 0;color:#c5bc9e}.resume-card button{font-size:15px;padding:10px 20px}@media(max-width:650px){.resume-card{padding:16px}.planning #setup-panel .resume-card h2{font-size:21px}#save-status{font-size:9px;max-width:220px}}

.terrain-badge{display:inline-flex;align-items:center;gap:5px;min-height:25px;padding:3px 8px;margin:6px 0 0;border-radius:14px;font:11px/1.4 system-ui;border-color:#899476;background:#3d5140;color:#e5edce}.terrain-badge.terrain-forest{background:#254a37;border-color:#6e9c72}.terrain-badge.terrain-hill{background:#655431;border-color:#b59c61}.terrain-badge.terrain-town{background:#655247;border-color:#b3967c}.terrain-badge.terrain-mud{background:#594438;border-color:#b38a60}.terrain-badge.terrain-bridge,.terrain-badge.terrain-ford{background:#354f60;border-color:#7fa9b4}.tactical-status{margin:7px 0 0;border-left:2px solid #bd9d57;padding-left:8px}.tactical-status p{font:11px/1.5 system-ui;margin:4px 0;color:#e4d5ae}.tactical-status strong{color:#f0d18c}.arrival-note{font:11px/1.5 system-ui!important;margin:6px 0!important;max-width:100ch}#foresight-panel ul{margin:8px 0;padding-left:18px}#foresight-panel li+li{margin-top:4px}

#terrain-panel .terrain-close{position:sticky;top:0;float:right;min-height:27px;width:27px;padding:0;border:0;border-radius:5px;background:#e1cf9e;color:#493b26;font:23px/1 Georgia}#terrain-panel h3{padding-right:30px}

#movement-panel{position:absolute;z-index:5;right:12px;top:54px;width:min(350px,calc(100% - 24px));max-height:calc(100% - 70px);overflow:auto;padding:14px 16px;background:#e1cf9e;color:#372d1f;border:2px solid #a98a4e;border-radius:8px;box-shadow:0 8px 30px #0006;font:13px/1.5 system-ui}#movement-panel[hidden],#battle-feedback[hidden]{display:none}#movement-panel h3{margin:0 0 8px;font:bold 19px Georgia}.route-steps{padding-left:22px;margin:8px 0}.route-steps li+li{margin-top:3px}.preview-actions{display:flex;gap:8px;flex-wrap:wrap}.preview-actions button{font-size:13px;padding:7px 10px;min-height:34px}.preview-hint{font-size:11px}.suppressed-key{color:#d6b256;background:#6b5731}.disrupted-key{color:#e9a08b;background:#823d37}#battle-feedback{position:absolute;left:12px;bottom:52px;z-index:2;max-width:min(440px,calc(100% - 24px));padding:8px 12px;border:1px solid #b8995b;border-radius:6px;background:#17272feb;color:#f6ddad;font:12px/1.5 system-ui;pointer-events:none}

.difficulty-picker{display:flex;gap:12px;max-width:1100px;margin:0 0 28px;padding:0;border:0}.difficulty-picker legend{font:bold 23px Georgia;margin-bottom:14px}.difficulty-choice{flex:1;display:flex;flex-direction:column;gap:7px;text-align:left;padding:14px 16px;background:#e9d7ae;color:#433723;border-color:#a88a55}.difficulty-choice strong{font:bold 19px Georgia}.difficulty-choice span{font:12px/1.5 system-ui}.difficulty-choice[aria-pressed="true"]{background:#23343a;color:#f6e5bd;border:2px solid #9d7b36;padding:13px 15px}@media(max-width:650px){.difficulty-picker{flex-direction:column}.difficulty-choice{width:100%}}
/* A small living sky; rule text stays above the atmosphere. */
.weather-bar{position:relative;isolation:isolate;overflow:hidden;min-height:62px;padding:9px 18px;border-bottom:1px solid #b2bba5;color:#fff;background:#285b83;text-shadow:0 1px 2px #18334b80}
.weather-content{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:26px;width:100%}
.weather-bar .weather-title{display:flex;align-items:center;gap:10px;white-space:nowrap;font:600 19px Georgia;color:#fff}
.weather-details{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:5px 14px;font:12px/1.5 system-ui}
.weather-effect{padding:2px 7px;border-radius:4px;background:rgba(13,35,53,.24)}
.weather-clear{background:linear-gradient(110deg,#23618e,#4691bf 55%,#326d9b)}
.weather-rain{background:linear-gradient(115deg,#344f67,#607d8c 60%,#334c65)}
.weather-downpour{background:linear-gradient(110deg,#203449,#45596b 60%,#23364d)}
.weather-fog{background:linear-gradient(100deg,#5c737b,#879993 60%,#657d85)}
.weather-snow{background:linear-gradient(110deg,#526e89,#8399aa 60%,#566f87)}
.weather-thaw{background:linear-gradient(110deg,#526d73,#7b9692 60%,#566f7a)}
.weather-sky{position:absolute;inset:0;z-index:0;pointer-events:none}
.weather-sky::before,.weather-sky::after{content:"";position:absolute;top:-48px;left:15%;width:260px;height:100px;border-radius:50%;background:radial-gradient(ellipse,#eaf3f529,transparent 70%);animation:sky-drift 38s ease-in-out infinite alternate}
.weather-sky::after{left:65%;top:-20px;animation-delay:-19s;opacity:.6}
.weather-clear .weather-sky::before{background:radial-gradient(ellipse,#ffedb342,transparent 70%)}
.weather-fog .weather-sky::before,.weather-fog .weather-sky::after{width:75%;height:110px;top:0;background:linear-gradient(transparent,#e1ebe230,transparent);border-radius:50%;animation-duration:28s}
.weather-symbol{position:relative;display:inline-block;width:38px;height:37px;flex-shrink:0}
.weather-sun{position:absolute;left:8px;top:9px;width:22px;height:22px;border-radius:50%;background:#ffe29b;box-shadow:0 0 9px #fff2bc99,0 0 23px #ffd47988;animation:sun-breathe 7s ease-in-out infinite}
.weather-sun::before{content:"";position:absolute;inset:-8px;border:1px dashed #ffeeb7b3;border-radius:50%;animation:sun-rays 65s linear infinite}
.weather-cloud{display:none;position:absolute;left:4px;top:17px;width:32px;height:12px;border-radius:8px;background:linear-gradient(#eef2ed,#c0cdd0);box-shadow:0 3px 7px #13273925}
.weather-cloud::before,.weather-cloud::after{content:"";position:absolute;bottom:6px;left:5px;width:15px;height:15px;border-radius:50%;background:#e4ebe7}
.weather-cloud::after{left:16px;width:11px;height:11px;background:#dce6e4}
.weather-bar:not(.weather-clear) .weather-cloud{display:block}
.weather-bar:not(.weather-clear):not(.weather-thaw) .weather-sun{display:none}
.weather-thaw .weather-sun{width:15px;height:15px;left:3px;top:5px;opacity:.7}
.weather-mini-rain{display:none;position:absolute;left:11px;top:32px;width:2px;height:5px;border-radius:2px;background:#badcee;box-shadow:8px 0 #badcee,16px 0 #badcee;transform:rotate(15deg)}
.weather-rain .weather-mini-rain,.weather-downpour .weather-mini-rain,.weather-thaw .weather-mini-rain{display:block}
.weather-snow .weather-mini-rain{display:block;height:3px;width:3px;background:#fff;box-shadow:8px 0 #fff,16px 0 #fff;border-radius:50%;transform:none}
.weather-particle{position:absolute;left:var(--left);top:-25px;animation:weather-fall var(--duration) linear var(--delay) infinite;pointer-events:none}
.raindrop{height:11px;width:1px;background:linear-gradient(transparent,#d2e9f596);border-radius:2px}
.weather-downpour .raindrop{height:18px;background:linear-gradient(transparent,#d2e9f5b3)}
.snowflake{height:3px;width:3px;background:#fff9;border-radius:50%;box-shadow:0 0 3px #fff5}
@keyframes weather-fall{from{transform:translate3d(0,-12px,0);opacity:.2}20%{opacity:.8}to{transform:translate3d(var(--drift),105px,0);opacity:.05}}
@keyframes sky-drift{from{transform:translateX(-45px)}to{transform:translateX(65px)}}
@keyframes sun-breathe{50%{box-shadow:0 0 13px #fff2bcb3,0 0 30px #ffd47980}}
@keyframes sun-rays{to{transform:rotate(360deg)}}
@media(max-width:650px){.weather-bar{min-height:65px;padding:7px 9px}.weather-content{gap:12px}.weather-bar .weather-title{font-size:16px;gap:6px}.weather-symbol{width:35px}.weather-details{font-size:10px;gap:3px 5px}.weather-effect{padding:1px 4px}}
@media(prefers-reduced-motion:reduce){.weather-sky::before,.weather-sky::after,.weather-sun,.weather-sun::before,.weather-particle{animation:none!important}.weather-particle{transform:translateY(48px);opacity:.35}}
.destination-terrain{border-top:1px solid #b59d6c;padding-top:8px;margin-top:10px}.destination-terrain h4{font:bold 15px Georgia;margin:0 0 5px}.destination-terrain ul{padding-left:18px;font-size:12px;margin:4px 0 10px}.destination-terrain li+li{margin-top:4px}
.volley-light{color:#c9c1a2}.volley-medium{color:#e1bf70}.volley-strong{color:#e8ac3e}.terrain-marsh{background:#424f3d;border-color:#91a58a}
.legend{width:max-content;max-width:calc(100% - 24px)}

.artillery-picker .formation-options{grid-template-columns:repeat(2,minmax(0,1fr))}

.keystone-key{color:#c9aeed}

.unit-info{padding:10px 12px;border:1px solid;border-radius:8px;align-self:stretch}.friendly-info{background:linear-gradient(135deg,#243f56,#182c3c);border-color:#577e9c}.enemy-info{background:linear-gradient(135deg,#713c36,#3c2628);border-color:#ba7968}.enemy-info .unit-name{color:#ffe1c2}.enemy-info .rule-note,.enemy-info .stats{color:#ecd5c8}.orders-owner{width:100%;margin:0;font:bold 13px Georgia;color:#9fc7e5}.enemy-target{padding:7px 9px;border-left:3px solid #c18472;background:#4a2e2c;border-radius:4px}

/* Map-first field interface: weather strip, floating orders, optional detail. */
#app{position:relative}#weather-strip{position:relative;flex:0 0 46px;height:46px}#weather-strip .weather-bar{height:46px;min-height:46px;padding:3px 54px 3px 12px}.weather-content{height:100%;justify-content:flex-start;gap:18px}.weather-bar .weather-title{font-size:16px;gap:4px}.weather-symbol{transform:scale(.75);transform-origin:center;width:34px}.weather-details{font-size:11px;gap:7px}.weather-effect{padding:3px 6px}.weather-detail-text{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.weather-detail-short{font-weight:500}#settings-open{position:absolute;right:8px;top:6px;z-index:2;width:34px;min-height:34px;height:34px;padding:0;font:22px Georgia;background:#142a3c88;border-color:#bed0d077;color:#f5eddc}.planning #weather-strip{display:none}.battlefield{min-height:0;flex:1}.legend{display:none}
#unit-sheet{position:absolute;z-index:8;bottom:12px;left:50%;transform:translateX(-50%);width:min(920px,calc(100% - 24px));max-height:48dvh;display:grid;grid-template-columns:minmax(260px,1fr) minmax(260px,1fr);gap:8px 18px;border:1px solid #8c927f;border-radius:12px;background:linear-gradient(120deg,#1b3344f5,#152633f5);box-shadow:0 8px 32px #0007;padding:12px 15px;overflow:auto;align-items:start}#unit-sheet[data-army="enemy"]{background:linear-gradient(120deg,#693833f5,#372629f5);border-color:#bd8674}#unit-sheet[data-army="none"]{grid-template-columns:1fr auto;align-items:center}.unit-info{border:0;padding:0;background:none}.unit-name{font-size:19px}.unit-name small{font:12px system-ui;color:#c6c4ad}.unit-key-stats{display:flex;gap:20px;margin:8px 0}.key-stat{display:flex;flex-direction:column;gap:2px;white-space:nowrap}.key-stat strong{font:600 18px/1.15 system-ui;color:#f5e9ce}.key-stat small{font:10px system-ui;color:#b9c5c5}.key-stat:nth-child(2) strong{color:#83e3e6}.key-stat:nth-child(3) strong{color:#f0d086}.key-stat:nth-child(4) strong{color:#c8dda1}.unit-tags{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.unit-tags .terrain-badge{margin:0}.unit-effect{font:10px system-ui;padding:3px 6px;background:#ffffff0b;border-radius:4px;color:#dfdfc9}#actions{gap:7px;align-content:center}#actions>button{font-size:13px;min-height:36px;padding:7px 11px}#actions .target{font-size:11px;margin:0;padding:4px 7px}.orders-owner{font:11px system-ui;margin:0}.order-picker{font:12px system-ui;min-width:115px}.order-picker summary{cursor:pointer;list-style:none;border:1px solid #a18a5e;border-radius:6px;padding:9px 11px;background:#34403d;color:#f3dfad}.order-picker summary::after{content:' ▾'}.order-picker[open]{width:100%}.order-picker .formation-picker{margin-top:6px}.formation-note{font-size:11px}.formation-choice{min-height:64px}.formation-choice strong{font-size:13px}.formation-choice span{font-size:10px}.formation-picker{padding:7px}.formation-options{gap:6px}#battle-log{grid-column:1/-1;font:11px/1.4 system-ui;color:#c7c8ba;border-top:1px solid #ffffff14;padding-top:5px}#battle-log summary{cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;list-style:none}#battle-log summary::before{content:'› ';color:#d7bd7a}#battle-log[open] summary::before{content:'⌄ '}#battle-log #status{padding-top:6px;white-space:normal;font-size:11px;max-width:100%}#setup-panel:empty{display:none}#app:not(.planning) #setup-panel:not(:empty){position:absolute;z-index:9;top:60px;right:12px;max-width:min(360px,calc(100% - 24px));max-height:calc(100% - 90px);overflow:auto;border:1px solid #b09c68;border-radius:9px;background:#182a32f5;padding:15px}#app[data-phase="deployment"] #unit-sheet{display:none}
#terrain-panel{bottom:calc(var(--sheet-height,150px) + 24px);max-height:calc(100% - var(--sheet-height,150px) - 70px);font-size:12px}#movement-panel,#foresight-panel{top:64px;max-height:calc(100% - var(--sheet-height,150px) - 85px)}#battle-feedback{bottom:calc(var(--sheet-height,150px) + 24px);max-width:calc(100% - 24px);font-size:11px}.objective-status{top:10px;font-size:11px;padding:5px 10px;max-width:calc(100% - 20px)}#settings-dialog{width:min(440px,92vw);max-height:85dvh;overflow:auto}#settings-dialog h2{margin:0 0 14px}.settings-header{display:flex;flex-direction:column;gap:14px}.settings-header .brand{display:none}.settings-header .battle{text-align:left;font-size:18px}.settings-header .battle small{margin-top:5px}.settings-header .tools{display:grid;grid-template-columns:1fr 1fr;gap:8px}.settings-header .tools button{display:flex;align-items:center;gap:9px;text-align:left;min-height:42px}.settings-header .tools button::after{content:attr(aria-label);font:12px system-ui}.settings-actions{display:flex;justify-content:space-between;gap:10px;margin-top:20px}.settings-actions .reset{font-size:12px}
@media(max-width:650px){#unit-sheet,#unit-sheet:has(.formation-picker){width:calc(100% - 12px);bottom:6px;padding:10px 11px;grid-template-columns:1fr;gap:8px;max-height:50dvh;border-radius:10px}#unit-sheet[data-army="none"]{grid-template-columns:1fr auto}.unit-name{font-size:17px}.unit-key-stats{justify-content:space-between;gap:10px;margin:6px 0}.key-stat strong{font-size:17px}#actions{gap:6px}#actions>button{min-height:34px;padding:6px 9px}#weather-strip .weather-bar{padding-left:7px}.weather-content{gap:10px}.weather-details{gap:3px}.weather-effect{padding:2px 4px}.weather-bar .weather-title{font-size:14px}.order-picker{min-width:100px}.order-picker summary{padding:8px}.objective-status{font-size:10px;top:6px}#battle-log{font-size:10px}.orders-owner{width:auto;margin-right:5px}#terrain-panel{right:6px;width:calc(100% - 12px)}}

.planning #unit-sheet{display:none}

.unit-info[data-morale="shaken"] .key-stat:last-child strong,.state-shaken{color:#f5bf69}.unit-info[data-morale="routing"] .key-stat:last-child strong,.state-routing{color:#ffa094}

#weather-strip .weather-bar{overflow:visible}.weather-sky{overflow:hidden}.weather-effect{position:relative;cursor:help}.weather-effect:hover::after,.weather-effect:focus::after{content:attr(data-tip);position:absolute;left:0;top:calc(100% + 8px);z-index:30;background:#172a34;color:#f8e9c8;border:1px solid #a18a5e;border-radius:5px;padding:7px 9px;width:max-content;max-width:240px;white-space:normal;font:11px/1.4 system-ui;box-shadow:0 4px 16px #0008}.weather-content{z-index:20}#weather-strip{z-index:25}.unit-tags .status-detail{min-height:24px;padding:3px 6px;font:10px system-ui;border-color:#a58456;background:#554333}#merge-content{display:grid;gap:9px}.keystone-key{color:#dab1ff}

.order-picker[open] .formation-picker legend{display:none}.formation-options .formation-choice{min-height:56px}.formation-options .formation-choice span{font-size:10px}.order-picker .formation-note{font-size:10px;margin-bottom:6px}

#outcome-dialog{width:min(560px,92vw);text-align:center;padding:30px;border-color:#bd8f70;box-shadow:0 20px 100px #000a}#outcome-dialog::backdrop{background:#0c151ddd;backdrop-filter:blur(3px)}#outcome-title{font:700 46px Georgia;margin:0 0 14px;color:#edc38b}#outcome-dialog[data-result="defeat"] #outcome-title{color:#f0a193}#outcome-dialog[data-result="victory"] #outcome-title{color:#e5d49b}#outcome-dialog .battle-summary{margin:24px 0;text-align:left}#outcome-dialog .battle-summary h3{font-size:17px}.outcome-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.outcome-actions button{min-height:43px}

#weather-strip .weather-bar{padding-right:108px}#reserves-open{position:absolute;right:48px;top:6px;z-index:2;min-width:43px;min-height:34px;height:34px;padding:0 7px;font:14px Georgia;background:#142a3caa;border-color:#bed0d077;color:#f4e3bb}

.objective-status.deployment-status{left:12px;transform:none;max-width:calc(100% - 405px);background:#655031f5;border:1px solid #f0d18b;color:#fff1c9;font-weight:600;padding:9px 12px}@media(max-width:650px){.objective-status.deployment-status{left:8px;max-width:calc(100% - 16px);font-size:11px}#app[data-phase="deployment"] #setup-panel:not(:empty){top:auto;bottom:10px;max-height:42dvh}}

#reserves-open.arrivals-ready{background:#e6c36a;color:#302712;border-color:#fff1b5;box-shadow:0 0 0 2px #e6c36a55}.arrivals-deploy{border:2px solid #ffe4a0;font-weight:700}#weather-strip:has(.arrivals-ready) .weather-bar{padding-right:150px}

#settings-dialog{width:min(420px,92vw);padding:22px}.menu-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.menu-heading h2{margin:0}.menu-heading button{font-size:22px;padding:2px 10px;min-height:34px}#settings-dialog .battle{margin:14px 0;display:flex;flex-direction:column;gap:6px}#settings-dialog .menu-actions{display:grid;gap:9px;margin-top:20px}#settings-dialog .menu-actions button{text-align:left;padding:12px 15px}#force-balance{border-block:1px solid #c2ad7d55;padding:14px 0;color:#e9dbb8}#force-balance h3{font:18px Georgia;margin:0 0 10px}.force-totals{font-weight:700;font-size:15px}#force-balance p{margin:7px 0}#force-balance small{display:block;font:11px/1.5 system-ui;color:#c5c9bf}.surrender{color:#ffd0c4;border-color:#a46857;background:#713e36}

#force-balance .menu-objective-title{margin-top:18px;padding-top:14px;border-top:1px solid #c2ad7d44}.menu-objective-copy{font:12px/1.6 system-ui;color:#ded2b5}

.online-start-link{display:inline-block;margin-top:6px;padding:10px 16px;background:#233b43;color:#f5e4bb;border:1px solid #8f763e;border-radius:5px;text-decoration:none;font:600 13px system-ui}
