:root{font-family:"MS Sans Serif",Tahoma,Arial,sans-serif;color:#000;background:teal;font-synthesis:none;--taskbar: 28px;--header: 32px}*{box-sizing:border-box}html,body{margin:0;min-width:1200px;height:100%;overflow:hidden}body{font-size:12px}#app{position:relative;width:100vw;min-width:1200px;height:100vh;overflow:hidden;background:teal}#map{position:absolute;inset:var(--header) 0 var(--taskbar);overflow:hidden;touch-action:none;background:teal}canvas{display:block}#app[data-screen=main-menu] #header,#app[data-screen=main-menu] .desktop-window:not(#win-step):not(#win-rules):not(#win-help){display:none}#app[data-screen=main-menu] #map,#app[data-map=hidden] #map{visibility:hidden;pointer-events:none}#app[data-screen=main-menu] #win-step{left:calc(50vw - 290px)!important;top:40px!important;width:580px;max-height:calc(100vh - 80px - var(--taskbar))}#app[data-screen=main-menu] #win-step .window-titlebar .window-button{display:none}#app[data-screen=main-menu] #taskbar .task:not([data-window=help]):not([data-window=rules]){display:none}#header{position:absolute;inset:0 0 auto;height:var(--header);display:flex;align-items:center;gap:4px;padding:3px 5px;background:silver;border-bottom:2px solid #000;z-index:5}.brand{display:flex;align-items:center;gap:8px;margin-right:auto;padding:2px 8px}.brand strong{font-size:13px;letter-spacing:0}.score{display:flex;align-items:center;gap:7px;min-width:132px;padding:0 8px;text-align:left}#header>button{height:24px;min-height:24px}.score strong{font-size:15px;margin-left:auto}.score small{color:#333}.score.sendero{color:maroon}.score.gvt{color:navy}.sendero{--faction: #a01010}.gvt{--faction: #1f4f9e}.mrta{--faction: #808000}button,input,select{font:inherit;color:#000;border-radius:0}button{min-height:24px;padding:3px 8px;cursor:pointer;background:silver;border:2px solid;border-color:#fff #000 #000 #fff}button:hover{background:#d4d4d4}button:active{border-color:#000 #fff #fff #000;padding:4px 7px 2px 9px}button:focus-visible,input:focus-visible,select:focus-visible{outline:1px dotted #000;outline-offset:-4px}button:disabled{color:#777;text-shadow:1px 1px #fff;cursor:default}button.link{min-height:0;padding:0 2px;border:0;background:none;color:navy;text-decoration:underline;text-align:left}button.link:active{padding:0 2px}.primary{font-weight:700}.desktop-window{position:fixed;display:flex;flex-direction:column;margin:0;color:#000;background:silver;border:2px solid;border-color:#fff #000 #000 #fff;box-shadow:1px 1px #000;padding:3px;z-index:7}.window-titlebar{flex:none;height:20px;display:flex;align-items:center;gap:4px;padding:1px 2px 1px 4px;color:#fff;background:linear-gradient(90deg,navy,#1084d0);font-weight:700;cursor:move;-webkit-user-select:none;user-select:none;touch-action:none}.window-titlebar strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.window-actions{margin-left:auto;display:flex;gap:3px}.window-actions span{display:flex;gap:3px}.window-titlebar button{min-height:16px;height:16px;padding:0 5px;line-height:10px;font-size:11px}.window-titlebar button:active{padding:1px 4px 0 6px}.window-titlebar .window-button{width:18px;padding:0;font-weight:700}.window-titlebar .window-minimize{position:relative;flex:none}.window-titlebar .window-minimize:after{content:"";position:absolute;left:3px;right:3px;top:5px;height:2px;background:#000}.window-body{flex:1 1 auto;min-height:0;overflow:auto;padding:6px}#win-turn{left:10px;top:40px;width:262px;max-height:calc(100vh - var(--header) - var(--taskbar) - 22px)}#win-ops{left:282px;top:40px;width:380px;max-height:calc(100vh - var(--header) - var(--taskbar) - 22px)}#win-step{left:calc(50vw - 300px);top:60px;width:600px;max-height:calc(100vh - var(--header) - var(--taskbar) - 42px);z-index:9}#win-resources{right:10px;top:40px;width:330px;max-height:calc(58vh - 40px)}#win-region{left:calc(50vw - 330px);top:90px;width:560px;max-height:calc(100vh - var(--header) - var(--taskbar) - 72px)}#win-units{left:calc(50vw - 280px);top:120px;width:560px;max-height:calc(100vh - var(--header) - var(--taskbar) - 102px)}#win-log{right:10px;bottom:calc(var(--taskbar) + 8px);width:330px;height:38vh}#win-log .window-body{display:flex;flex-direction:column;padding:4px}#win-rules{left:calc(50vw - 400px);top:44px;width:800px;height:calc(100vh - var(--header) - var(--taskbar) - 30px);z-index:11}#win-help{left:calc(50vw - 320px);top:80px;width:640px;height:min(540px,calc(100vh - 140px));z-index:11}#win-help:not([hidden]){z-index:52!important}.help-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000061;z-index:51}#win-map-tools{left:10px;bottom:calc(var(--taskbar) + 8px)}#map-tools-body{display:grid;grid-template-columns:repeat(4,auto);gap:3px;padding:4px}#map-tools-body button[aria-pressed=true]{border-color:#000 #fff #fff #000;background:repeating-conic-gradient(silver 0,silver 25%,#d8d8d8 0,#d8d8d8 50%) 0 0 / 2px 2px;font-weight:700}#taskbar{position:absolute;inset:auto 0 0;height:var(--taskbar);display:flex;align-items:center;gap:4px;padding:2px 4px;background:silver;border-top:2px solid #fff;z-index:50;overflow-x:auto}#taskbar .task{flex:0 1 180px;min-width:90px;height:22px;min-height:22px;padding:1px 8px;text-align:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#taskbar .task.open{border-color:#000 #fff #fff #000;background:repeating-conic-gradient(silver 0,silver 25%,#d8d8d8 0,#d8d8d8 50%) 0 0 / 2px 2px;font-weight:700}h1,h2,h3,h4{font-family:inherit}h1{font-size:20px;margin:8px 0 3px}h2{font-size:15px;margin:4px 0 6px}h3{font-size:13px;margin:14px 0 6px}h4{font-size:12px;margin:10px 0 4px}p{line-height:1.35;margin:6px 0}.muted{color:#333;font-size:11px}.warn{color:maroon;font-weight:700}.turn-chip{display:inline-block;width:fit-content;margin:4px 0;padding:3px 7px;background:#fff;border:1px solid #808080;border-left:5px solid var(--faction, #808000)}.turn-head h2{margin:2px 0 4px}.game-over{padding:6px;color:#fff;background:maroon;font-weight:700}.pending-decision{display:grid;gap:4px;margin:6px 0;padding:6px;background:#ffffe1;border:1px solid #000}.turn-sequence{list-style:none;margin:8px 0;padding:4px;background:#fff;border:2px inset #fff}.turn-sequence li{padding:2px 3px}.seq-phase{margin-top:5px;font-weight:700;border-bottom:1px solid #c0c0c0}.seq-phase:first-child{margin-top:0}.seq-phase.current{color:navy}.seq-skip{color:gray;font-style:italic}.seq-step{display:grid;grid-template-columns:16px 1fr auto;gap:3px;padding-left:8px!important}.seq-step small{color:#666}.seq-step.done{color:gray}.seq-step.current,.seq-step.resolved{color:#fff;background:navy;cursor:pointer}.seq-step.current small,.seq-step.resolved small{color:#dde}.turn-actions{display:grid;grid-template-columns:1fr 1fr;gap:4px}.turn-actions .primary{grid-column:1 / -1}.res-section{margin-bottom:8px;padding:4px 6px 6px;border:2px groove #fff}.res-section h3{margin:0 0 4px}.res-row{display:grid;grid-template-columns:64px 1fr 32px;align-items:center;gap:6px;margin:3px 0}.res-row strong{text-align:right;font-size:14px}.meter{position:relative;height:12px;background:#fff;border:2px inset #fff}.meter-fill{height:100%;background:navy}.meter.sendero .meter-fill{background:#a01010}.meter.danger .meter-fill{background:#b00000}.meter.ok .meter-fill{background:#208020}.meter-mark{position:absolute;top:-3px;bottom:-3px;width:2px;background:#000}.morale-cell{display:grid;grid-template-columns:1fr auto;gap:4px;align-items:center;min-width:90px}.crisis-track{display:grid;grid-template-columns:repeat(6,1fr);gap:3px}.crisis-box{display:grid;place-items:center;min-height:38px;padding:2px;font-weight:700;background:#fff;border:2px inset #fff}.crisis-box.passed{background:#ffd8d8}.crisis-box.current{outline:2px solid #b00000}.crisis-box .coup{font-size:9px;color:maroon}table{width:100%;margin:6px 0;border-collapse:collapse;font-size:11px;background:#fff;border:2px inset #fff}th,td{padding:4px 5px;text-align:left;border:1px solid #808080;vertical-align:middle}th{background:silver}table.compact th,table.compact td{padding:2px 4px}table.placement select,table.placement label{margin:0}.unit-type,.unit-rank{display:inline-block;white-space:nowrap;padding:1px 4px;border:1px solid currentColor;font-weight:700}.unit-type.mobile{color:#163d78;background:#e5efff}.unit-type.static{color:#555;background:#eee}.unit-rank.recruit{color:#785218;background:#fff2cf}.unit-rank.line{color:#245b39;background:#e1f4e5}.unit-rank.elite{color:#743c19;background:#ffe8d7}.unit-rank.static{color:#666;border-color:transparent;font-weight:400}.control-tag{padding:1px 4px;font-weight:700}.control-tag.sendero{color:#fff;background:#b00000}.control-tag.gvt{color:#fff;background:#1f4f9e}.control-tag.contested{border:1px solid #000}.log-toolbar{display:flex;gap:4px;align-items:center;flex:none}.log-toolbar label{flex:1;margin:0}.log-toolbar select{margin:0}.log-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;margin-top:4px;background:#fff;border:2px inset #fff}.log-turn>summary{position:sticky;top:0;padding:3px 5px;font-weight:700;background:silver;border-bottom:1px solid #808080;cursor:pointer}.log-list{list-style:none;margin:0;padding:0}.log-entry{padding:2px 5px;border-bottom:1px dotted #c0c0c0;line-height:1.3}.log-entry summary{cursor:pointer;list-style:none}.log-entry summary::-webkit-details-marker{display:none}.log-entry details[open] summary{font-weight:700}.log-entry.step{color:navy;font-weight:700;background:#eef;text-align:center}.log-entry.roll{color:#004000}.log-entry.psl{color:maroon}.log-entry.com{color:#555;font-style:italic}.log-entry.alert{color:#fff;background:maroon;font-weight:700}.log-detail{margin:3px 0 4px 10px;padding:3px 6px 3px 16px;color:#000;font-style:normal;font-weight:400;background:#ffffe1;border:1px solid #808080}.ops-head{padding:4px 6px;margin-bottom:6px;background:#fff;border:2px inset #fff;border-left:6px solid var(--faction)}.ops-head h2{margin:2px 0}.ops-ap{margin:2px 0;font-weight:700}.ops-wait{padding:8px;background:#ffffe1;border:1px solid #000}.mission-card{margin:0 0 6px;padding:5px 6px;background:#d4d0c8;border:2px solid;border-color:#fff #808080 #808080 #fff;border-left:5px solid var(--faction)}.mission-card.info{opacity:.9}.mission-title{display:flex;justify-content:space-between;gap:6px}.mission-title strong{font-size:13px}.mission-cost{padding:0 4px;font-weight:700;background:#fff;border:1px solid #808080;white-space:nowrap}.mission-short{margin:4px 0}.mission-actions{display:flex;align-items:center;gap:6px}.mission-actions small{margin-left:auto}.mission-detail{margin:4px 0;padding:4px 8px;background:#fff;border:2px inset #fff}.mission-detail h4{margin:6px 0 2px}.mission-list{margin:2px 0;padding-left:18px}.mission-list li{margin:1px 0}.ops-footer{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}.ops-mode{display:flex;justify-content:space-between;align-items:center;padding:4px 6px;color:#fff;background:maroon}.gvt~.ops-mode,.ops-head.gvt~.ops-mode{background:#1f4f9e}.ops-stages{display:flex;gap:2px;margin:6px 0;padding:0;list-style:none;counter-reset:stage}.ops-stages li{flex:1;padding:2px 4px;font-size:11px;text-align:center;background:#fff;border:1px solid #808080;counter-increment:stage}.ops-stages li:before{content:counter(stage) ". "}.ops-stages li.current{color:#fff;background:navy;font-weight:700}.ops-stages li.done{color:gray}.ops-regions{display:grid;gap:4px}.region-pick{display:grid;gap:2px;text-align:left}.ops-where{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ops-where button{margin-left:auto}.ops-units{margin:6px 0}.ops-error{color:maroon;font-weight:700}.execute{width:100%;min-height:32px}.outcome-verdict{display:flex;align-items:center;gap:10px;margin:6px 0;padding:6px 10px;background:#fff;border:2px inset #fff}.outcome-verdict strong{font-size:22px}.outcome-verdict .die{font-size:15px}.outcome-list{margin:4px 0;padding:2px 0 2px 22px;background:#fff;border:2px inset #fff;max-height:260px;overflow-y:auto}.outcome-list li{border-bottom:1px dotted #c0c0c0}.outcome-art{width:100%;max-width:480px;margin:8px auto;border:2px inset #fff;background:#302d25;box-sizing:border-box}.outcome-art img{display:block;width:100%;height:auto;aspect-ratio:3 / 2;object-fit:contain;image-rendering:pixelated}.outcome-art[hidden]{display:none}.crisis-outcome{margin:10px 0}.crisis-outcome h4{margin:4px 0}.dialog-content{padding:4px 8px 10px}.dialog-title{margin:2px 0 6px;font-size:18px}.step-meta{display:flex;align-items:center;gap:8px}.step-summary{padding:6px 8px;background:#fff;border:2px inset #fff}.step-preview,.step-outcome{margin:8px 0;padding:4px 8px 6px;border:2px groove #fff}.step-preview h3,.step-outcome h3{margin:2px 0 4px}.dialog-content>button{margin:4px 4px 4px 0}.dialog-content>button.primary{display:block;min-width:50%;min-height:30px;margin-top:10px}.mission-preview,.confirm-new{padding:6px 8px;background:#fff;border:2px inset #fff}.setup-wizard{display:flex;flex-direction:column}.setup-wizard .dialog-title{text-align:center;margin:10px 0 18px}.main-menu-image{display:block;width:100%;max-height:400px;object-fit:contain;margin:0 auto 12px;padding:5px;background:gray;border:2px inset #fff}.wizard-prompt{margin:0 0 10px;text-align:center;font-weight:700}.setup-choices{display:flex;flex-wrap:nowrap;gap:10px;align-items:stretch;justify-content:center;width:100%}.setup-choices .setup-choice{flex:1 1 0;min-width:0;height:40px;min-height:40px;padding:4px 6px;font-size:12px;text-align:center}.setup-choices .setup-choice:active{padding:5px 5px 3px 7px}.setup-wizard .wizard-back{align-self:flex-start;margin-top:22px}.setup-summary{margin:0 0 14px;padding:8px 12px;background:#fff;border:2px inset #fff}.setup-wizard .start-game{width:100%;min-height:42px}label{display:block;margin:7px 0;font-weight:700}input,select{display:block;width:100%;margin-top:4px;padding:3px 5px;background:#fff;border:2px inset #fff}input[type=checkbox],input[type=radio]{width:16px;min-width:16px;accent-color:#000080}.form-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.unit-list{display:grid;gap:3px;margin:7px 0}.unit-row{display:grid;grid-template-columns:52px minmax(0,1fr);gap:7px;padding:5px 7px;text-align:left;border-left:5px solid var(--faction, #808080);align-items:center}.unit-avatar{width:48px;height:48px;object-fit:contain;image-rendering:pixelated}.unit-portrait{width:96px;height:96px;object-fit:contain;image-rendering:pixelated;float:left;margin:0 12px 8px 0;border:2px inset #fff;background:#e8e1d5}.unit-details{display:grid;min-width:0;gap:5px}.unit-identity,.unit-placement{display:grid;grid-template-columns:minmax(100px,1fr) minmax(82px,auto) minmax(72px,auto);align-items:center;gap:6px}.unit-organization{min-width:0;overflow:hidden;font-weight:700;white-space:nowrap;text-overflow:ellipsis}.unit-placement{grid-template-columns:minmax(150px,1fr) minmax(180px,1fr)}.unit-placement>span{min-width:0;white-space:nowrap}.unit-type.insurgent{color:#7a0808;background:#ffe7e7}.unit-rank.none{color:#666;background:#eee;font-weight:400}.unit-row small{color:#333}.region-box-group,.deployment-box{margin:10px 0;padding:5px 7px 7px;background:#d4d0c8;border:2px groove #fff;border-left:7px solid var(--faction)}.region-box-group>h3,.deployment-box>h3{margin:0 0 6px;color:var(--faction)}.region-box{margin:5px 0;padding:4px 6px;background:#eee;border:1px solid #808080}.region-box-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding-bottom:3px;border-bottom:2px solid var(--faction)}.region-box-heading small{color:#444;text-align:right}.region-box .unit-list{margin-bottom:1px}.region-box .unit-list>.muted{margin:3px 1px}.deployment-box legend{color:var(--faction)}.deployment-list{max-height:min(42vh,360px);min-width:0;overflow:auto;background:#fff;border:2px inset #fff}.deployment-list table{width:100%;margin:0;border:0}.deployment-units input[type=checkbox]{margin:0 auto}.deployment-units td:first-child,.deployment-units th:first-child{width:26px;text-align:center}.region-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.region-card{min-height:80px;display:grid;gap:5px;text-align:left}.region-inset{width:120px;height:120px;object-fit:contain;float:right;margin:0 0 8px 12px;border:2px inset #fff}fieldset{margin:10px 0;border:2px groove #fff}fieldset>legend{margin-bottom:6px;padding:0 4px;font-weight:700}.unit-check{display:flex;align-items:center;gap:8px;margin:2px 0;padding:1px 0 1px 4px;font-weight:400;border-left:4px solid var(--faction, #808080)}.unit-check input{margin-top:0}.rules{display:grid;grid-template-columns:190px 1fr;grid-template-rows:minmax(0,1fr) auto;gap:8px;height:100%}#win-rules .window-body{overflow:hidden}.rules-toc{display:flex;flex-direction:column;grid-row:1 / 3;gap:2px;overflow-y:auto}.rules-toc button{text-align:left;font-size:11px;min-height:20px;padding:2px 5px}.rules-content{overflow-y:auto;padding:4px 12px 20px;background:#fff;border:2px inset #fff}.rules-content section{padding-bottom:8px;border-bottom:1px solid #c0c0c0}.rules-content section[hidden]{display:none}.rules>.page-nav{grid-column:2;margin:0}.page-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px}.page-nav span{font-weight:700}.help-page{flex:1;overflow-y:auto;padding:10px 14px;background:#fff;border:2px inset #fff}.help-page h2{margin-top:0;color:navy}#help-body{display:flex;flex-direction:column;gap:8px}.rules-content h2{position:sticky;top:-4px;margin:0 -12px 6px;padding:4px 12px;background:#fff;border-bottom:2px solid #000080;color:navy}.rules-sequence>li{margin:6px 0}.rules-sequence ol li{margin:3px 0}.rules-sequence p{margin:1px 0 4px;color:#333}.rules-mission{margin:8px 0;padding:4px 8px;border-left:5px solid var(--faction);background:#f4f4f4}.rules-mission h3{margin:4px 0}.rule-note{padding:4px 8px;background:#ffffe1;border:1px solid #808080}.credits{margin-top:16px;font-size:10px;color:#333}#notice{position:fixed;left:50%;bottom:40px;transform:translate(-50%);max-width:680px;padding:8px 12px;color:#fff;background:navy;border:2px solid;border-color:#fff #000 #000 #fff;z-index:60;display:none}#notice.visible{display:block}#notice.error{background:maroon}[hidden]{display:none!important}#desktop-warning{display:none}@media(max-width:1199px){#app,#notice{display:none!important}#desktop-warning{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;gap:12px;padding:30px;color:#fff;background:navy;text-align:center;font-size:16px}#desktop-warning strong{font-size:26px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
