/* WORLD ORDER Batch 016 — table readability, Clash forecast, compact leader HUD, audio.
   Loaded last. Presentation only: no rule depends on anything in this file. */
:root{--r-common:#8B969E;--r-rare:#4F91CB;--r-epic:#9B6BC3;--r-legendary:#D4AA5B;--forecast:#ff8f78;--forecast-bg:#3a110ee8}

/* ------------------------------------------------------------------ compact card face */
.face{position:relative;width:100%;aspect-ratio:3/4;display:flex;flex-direction:column;justify-content:flex-end;container-type:inline-size;border-radius:5.5%/4.2%;overflow:hidden;background:#0c1a22;--frame:var(--r-common);text-align:left;isolation:isolate;box-shadow:0 .55rem 1.3rem #000a}
.face.r-rare{--frame:var(--r-rare)}.face.r-epic{--frame:var(--r-epic)}.face.r-legendary{--frame:var(--r-legendary)}
.face::after{content:"";position:absolute;inset:0;border:max(2px,1.5cqw) solid var(--frame);border-radius:inherit;pointer-events:none;z-index:9;box-shadow:inset 0 0 0 max(1px,.5cqw) #0009,inset 0 0 6cqw #0006}
.face.r-legendary::after{border-image:linear-gradient(160deg,#f6dc9c,#a87c2c 45%,#f1d088) 1;border-radius:0}
.face.r-epic::after{box-shadow:inset 0 0 0 max(1px,.5cqw) #0009,inset 0 0 7cqw #9b6bc355}
.face-art{position:absolute;left:0;top:0;width:100%;height:74%;object-fit:cover;object-position:50% 40%;z-index:0;pointer-events:none}
.face-art[data-missing=true]{opacity:0}
.face::before{content:attr(data-card-id);position:absolute;left:0;right:0;top:0;height:62%;display:grid;place-items:center;font:700 10cqw var(--wo-title);color:#ffffff22;background:radial-gradient(circle at 50% 40%,#29424e,#0c1a22);z-index:-1}
.face-cost{position:absolute;left:3.6cqw;top:3.6cqw;width:max(19px,15.5cqw);height:max(19px,15.5cqw);border-radius:50%;display:grid;place-items:center;z-index:6;font:700 max(12px,10.2cqw)/1 var(--wo-title);color:#fff4d8;background:radial-gradient(circle at 35% 30%,#33586a,#0c1f28 72%);border:max(1.5px,.9cqw) solid #dcc28c;box-shadow:0 1cqw 3cqw #000c;font-variant-numeric:tabular-nums}
.face-cost.is-lower{border-color:#8fe0b6;background:radial-gradient(circle at 35% 30%,#2e6b58,#0b231d 72%);color:#e3ffe9}
.face-cost.is-higher{border-color:#f09b84;background:radial-gradient(circle at 35% 30%,#6b3a2e,#230f0b 72%)}
.face-glyph{position:absolute;right:3.6cqw;top:3.6cqw;width:max(16px,12cqw);height:max(16px,12cqw);border-radius:50%;display:grid;place-items:center;background:#08141bcc;border:max(1px,.5cqw) solid color-mix(in srgb,var(--front) 70%,transparent);z-index:6;color:var(--front)}
.face-glyph svg{width:62%;height:62%;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.face-plate{position:relative;flex:none;z-index:3;padding:2.4cqw 5.5cqw 2.2cqw;background:linear-gradient(180deg,#132833f5,#0b1920fa 65%);border-top:max(1.5px,.85cqw) solid var(--front);box-shadow:0 -2cqw 5cqw #0009}
.face-name{display:block;height:20.5cqw;overflow:hidden}
/* fitNames measures synchronously: a reduced-motion micro-transition would hide the new size */
#app .face-name>span,.face-name>span{transition:none!important}
.face-name>span{display:block;font:700 9.6cqw/1.07 var(--wo-title);color:#f4e8cf;text-shadow:0 1px 2px #000;overflow-wrap:normal;word-break:normal;hyphens:manual;letter-spacing:0}
.face-chips{display:flex;flex-wrap:wrap;gap:1.4cqw;height:max(13px,8.6cqw);overflow:hidden;margin-top:1.2cqw}
.chip{display:inline-flex;align-items:center;font:700 max(8px,5.2cqw)/1 var(--wo-text);letter-spacing:.04em;padding:max(2px,1.2cqw) max(3px,2cqw);border-radius:max(2px,1.1cqw);white-space:nowrap;font-style:normal;color:#d6e2e1;background:#ffffff12;border:1px solid #ffffff2e}
.chip-entry{color:#a9e6d4;background:#1d4a3f99;border-color:#6fc4a866}
.chip-recurring{color:#f2d394;background:#5b462099;border-color:#d8b26a66}
.chip-breach{color:#ffc0b0;background:#6b261d99;border-color:#f28c7477}
.chip-static{color:#d5c2f2;background:#43305f99;border-color:#a98bd666}
.chip-tag{color:#b8c7cb;background:#26363d99;border-color:#8ea1a744}
.chip.is-silenced{text-decoration:line-through;opacity:.55}
.face-stats{position:relative;flex:none;height:max(25px,23cqw);z-index:4;display:flex;align-items:center;justify-content:space-between;gap:1cqw;padding:0 4.5cqw;background:linear-gradient(180deg,#081218,#04090d)}
.face-stat{display:flex;align-items:center;gap:1.4cqw;font:700 max(15px,17.5cqw)/1 var(--wo-title);font-variant-numeric:tabular-nums;text-shadow:0 1px 3px #000;position:relative}
.face-stat svg{width:max(10px,9.5cqw);height:max(10px,9.5cqw);fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.face-stat b{font-weight:700}
.face-power{color:#f3d28c}.face-power.is-up{color:#a6f0a2}.face-power.is-down{color:#ff9f8a}
.face-power sup{font:700 max(8px,6cqw)/1 var(--wo-text);margin-left:.5cqw;align-self:flex-start;color:inherit}
.face-resistance{color:#a9dcc5}.face-resistance.is-down{color:#ff9f8a}
.face-shield{color:#9ee6f6;font-size:max(12px,12cqw);padding:.8cqw 1.8cqw;border:1px solid #7cc9dd88;border-radius:1.5cqw;background:#103644d9}
.face-shield svg{width:max(9px,7.5cqw);height:max(9px,7.5cqw)}
.face-kind{position:relative;flex:none;height:max(25px,23cqw);z-index:4;display:flex;flex-direction:column;justify-content:center;gap:1.2cqw;padding:0 5.5cqw;background:linear-gradient(180deg,#081218,#04090d);font:800 max(8.5px,6.2cqw)/1 var(--wo-text);letter-spacing:.09em;color:var(--front)}
.face-kind span{font-weight:600;font-size:max(8px,5.2cqw);letter-spacing:.06em;color:#b7c6ca;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.face.cat-response .face-kind{color:#8fdcdc}
.face.cat-event .face-kind{color:#efc77a}
.face-ribbon{position:absolute;left:-12%;right:-12%;top:27%;transform:rotate(-11deg);z-index:7;text-align:center;font:800 max(8px,6.4cqw)/1.6 var(--wo-text);letter-spacing:.22em;color:#eef8ff;background:linear-gradient(90deg,#3d6a88d9,#6b9cbde6,#3d6a88d9);box-shadow:0 2px 8px #000a}
.face.is-silenced .face-art{filter:grayscale(.85) brightness(.8)}
.face-unavailable{display:grid;place-items:center;color:#9fb1b4;font:700 14px var(--wo-title)}

/* field and hand containers use the compact face instead of the printed card layers */
.field-card{position:relative;border-radius:6px}
.field-card>.face{box-shadow:0 .6rem 1.4rem #000b}
.field-card:hover>.face{box-shadow:0 0 0 2px #e9d19c88,0 .8rem 1.6rem #000c}
.field-card.is-silenced>.face{box-shadow:0 0 0 2px #7fb0d088,0 .6rem 1.4rem #000b}
.hand-card .face{box-shadow:-4px 3px 12px #000b}
.hand-card.playable .face{box-shadow:0 0 0 2px #e8c97f,0 0 16px #e8c97f77,-4px 3px 12px #000b}
.hand-card.unavailable .face{filter:saturate(.7) brightness(.82)}
.hand-card.unaffordable .face{filter:saturate(.5) brightness(.62)}
.hand-card.unaffordable:hover .face,.hand-card.unavailable:hover .face{filter:none}
.hand-card.active .face{box-shadow:0 0 0 3px #ffe2a1,0 0 22px #ffd88a99}
.hand-card .playable-marker,.hand-card .discount-marker{display:none}
.drag-card-ghost .face{box-shadow:0 0 0 2px #f0d18f,0 24px 50px #000d}
.fx-card-flight>.face,.fx-destroyed-card>.face{box-shadow:none}
.fx-card-flight.field-card,.fx-destroyed-card.field-card{position:absolute;max-width:none}

/* ------------------------------------------------------------------ Clash forecast */
.face-forecast{position:absolute;left:50%;top:31%;transform:translateX(-50%);z-index:8;display:flex;align-items:center;gap:6px;padding:3px 7px;white-space:nowrap;pointer-events:none;font:800 max(11px,.72rem)/1 var(--wo-text);color:#ffe1d8;background:var(--forecast-bg);border:1px dashed var(--forecast);border-radius:4px;box-shadow:0 3px 10px #000c}
.face-forecast span{display:inline-flex;align-items:center;gap:2px}
.face-forecast svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2.6}
.face-forecast .fc-shield{color:#a9e8f5}
.face-forecast strong{color:#fff;background:#c2412f;padding:2px 4px;border-radius:2px;letter-spacing:.08em;font-size:.92em}
/* v028: an Asset that falls in the Clash forecast pulses slowly in red (was a dashed outline and hatching over the art);
   the FALLS tag with the Shield/Resistance loss stays. Reduced motion keeps a still red ring. */
.fc-doomed .field-card>.face{animation:fc-doom-pulse 2.8s ease-in-out infinite}
@keyframes fc-doom-pulse{
  0%,100%{box-shadow:0 .6rem 1.4rem #000b,0 0 0 1px #ff5a4040,0 0 6px 0 #ff3b2a26}
  50%{box-shadow:0 .6rem 1.4rem #000b,0 0 0 2px #ff5a40c4,0 0 24px 3px #ff3b2a80}
}
html.wo-reduced-motion .fc-doomed .field-card>.face{animation:none;box-shadow:0 .6rem 1.4rem #000b,0 0 0 2px #ff5a40a8,0 0 16px 1px #ff3b2a59}
.forecast-preview .face-forecast{border-color:#f0cf86;background:#3b2d0eeb;color:#fff0cf}
.forecast-off .face-forecast,.forecast-off .front-forecast,.forecast-off .sov-ghost,.forecast-off .sov-forecast,.forecast-off .forecast-line{display:none!important}
.feedback-busy .face-forecast,.feedback-busy .front-forecast,.feedback-busy .sov-ghost,.feedback-busy .sov-forecast{visibility:hidden}
@media (prefers-reduced-motion:no-preference){.battle-app:not(.reduced-motion) .face-forecast{animation:wo-forecast 1.6s ease-in-out infinite}.battle-app:not(.reduced-motion) .sov-ghost{animation:wo-ghost 1.4s ease-in-out infinite}}
@keyframes wo-forecast{50%{box-shadow:0 0 14px #ff7a6399,0 3px 10px #000c}}
@keyframes wo-ghost{50%{opacity:.55}}

/* front band: name · Power comparison · Sovereignty forecast */
.lane .front-heading{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px;padding:0 4px;height:34px;color:var(--front-color);background:linear-gradient(90deg,transparent,#0a161dd9 18%,#0a161dd9 82%,transparent);border-top:1px solid color-mix(in srgb,var(--front-color) 25%,transparent);border-bottom:1px solid color-mix(in srgb,var(--front-color) 25%,transparent)}
.fh-name{display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap;font:700 12px/1 var(--wo-text);letter-spacing:.12em}
.fh-name svg{width:17px;height:17px;flex:none}
.lane .formation-power{margin:0;display:flex;align-items:baseline;gap:6px;font:400 21px/1 var(--wo-title)}
.formation-power b{font-weight:400}.fp-enemy{color:#eaa596}.fp-player{color:#f4d79c}
.formation-power small{font:700 9px var(--wo-text);color:#8fa2a8;letter-spacing:.1em}
.front-forecast{justify-self:end;display:flex;gap:4px;font:800 11px/1 var(--wo-text);white-space:nowrap}
.front-forecast[hidden]{display:none}
.front-forecast span{padding:3px 5px;border-radius:3px;border:1px dashed}
.ff-in{color:#ffd4ca;background:#4a1712e0;border-color:#ff8f78!important}
.ff-out{color:#fbe6b7;background:#3f3212e0;border-color:#e8c27a!important}
.ff-hold{color:#9fb3b8;border-color:#6f858c88!important;font-weight:600!important;letter-spacing:.08em}

/* ------------------------------------------------------------------ compact leader HUD */
.leader-panel{padding:0!important;overflow:visible}
.lh{display:flex;flex-direction:column;gap:clamp(4px,.7vh,9px);padding:clamp(6px,.85vh,11px) clamp(7px,.6vw,11px)}
.lh-id{display:flex;gap:8px;align-items:center;min-width:0}
.lh .portrait-wrap{position:relative;flex:none;width:clamp(40px,3.5vw,66px);height:clamp(40px,3.5vw,66px);border-radius:4px;overflow:hidden;border:1px solid #c9ad7a77;background:radial-gradient(circle at 50% 30%,#2a404b,#0a151c);margin:0;padding:0}
.lh .portrait-wrap img{position:static;width:100%;height:100%;object-fit:cover;object-position:50% 10%;transform:none;filter:none}
.lh .portrait-wrap::before,.lh .portrait-wrap::after{display:none}
.lh-who{min-width:0;display:flex;flex-direction:column;gap:3px;flex:1}
.lh-meta{display:flex;align-items:center;gap:4px;font:600 8.5px/1.1 var(--wo-text);letter-spacing:.04em;color:#9fb0b4;white-space:nowrap;min-width:0}
.lh-meta span{overflow:hidden;text-overflow:ellipsis}
.lh-meta b{margin-left:auto;color:#e8c57f;font-weight:700;letter-spacing:.1em}
.lh-meta .country-flag{position:relative;flex:none;overflow:hidden}
.lh .leader-name{margin:0;font:400 clamp(14px,1.08vw,21px)/1.12 var(--wo-title);padding:0;text-align:left}
.lh .leader-name button{all:unset;cursor:pointer;color:#f4e6c6;overflow-wrap:anywhere}
.lh .leader-name button:focus-visible{outline:2px solid #e8c57f;outline-offset:2px}
.lh-sov,.lh-budget{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px;min-width:0}
.lh-label{flex:1;display:flex;align-items:center;gap:4px;font:600 9px/1 var(--wo-text);letter-spacing:.12em;color:#9fb1b4;white-space:nowrap}
.lh-label svg{width:11px;height:11px}
.lh-value{font:400 clamp(19px,1.55vw,30px)/1 var(--wo-title);color:#f6ead0;font-variant-numeric:tabular-nums}
.lh-value small{font-size:.44em;color:#8ea2a8;margin-left:2px}
.sov-forecast{order:3;font:800 11px/1 var(--wo-text);font-style:normal;color:#ffd0c4;background:var(--forecast-bg);border:1px dashed var(--forecast);padding:2px 4px;border-radius:3px}
.sov-forecast.lethal{background:#c2412f;color:#fff;border-style:solid}
.sov-forecast[hidden]{display:none}
.lh .resource-effect{order:4;position:static;font-size:10px}
.lh .sovereignty-track{order:5;flex:0 0 100%;margin:5px 0 0;height:6px;position:relative;background:#030a10;border-radius:3px;overflow:hidden}
.lh .sovereignty-fill{height:100%}
.sov-ghost{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(45deg,#ff6b5a 0 3px,#ff6b5a55 3px 6px)}
.sov-ghost[hidden]{display:none}
.lh .budget-pips{order:5;flex:0 0 100%;margin:5px 0 0;gap:3px}
.lh .budget-pip{height:6px}
.lh .special-button{margin:2px 0 0;width:100%;padding:5px 6px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px;align-items:center;text-align:left}
.lh .special-button img{width:clamp(20px,1.6vw,28px);height:clamp(20px,1.6vw,28px)}
.lh .special-button .special-info{gap:2px;min-width:0}
.lh .special-button .special-info strong{font-size:clamp(11px,.72vw,13px);line-height:1.15;white-space:normal;overflow:visible}
.lh .special-button .special-info small{font-size:9px;letter-spacing:.1em;white-space:nowrap}
.lh .special-cost{position:static;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font:700 12px var(--wo-title);color:#fff2d4;border:1px solid #d9bf89;background:#132a35}
.leaders-rail{justify-content:space-between}
.initiative-panel{min-height:0}

/* ------------------------------------------------------------------ floating inspector */
#card-dossier.card-dossier{position:fixed;inset:auto;left:0;top:0;width:clamp(258px,17.5vw,330px);max-height:calc(100vh - 76px);overflow:hidden;z-index:80;padding:12px 14px 10px;pointer-events:none;background:linear-gradient(160deg,#18303bf8,#0a1922fb);border:1px solid #cbb17b;border-radius:6px;box-shadow:0 18px 50px #000d;color:#e7ecea}
#card-dossier[hidden]{display:none}
.show-dossier .combat-sequence,.show-dossier .chronicle-panel{visibility:visible!important}
.dossier-head{display:flex;gap:10px;align-items:center}
.dossier-head .face-cost{position:static;flex:none;width:36px;height:36px;font-size:19px;border-width:2px;box-shadow:0 2px 6px #000a}
.dossier-head .eyebrow{font-size:10px;letter-spacing:.1em;color:#b9c8c9}
#card-dossier h2{font:400 21px/1.12 var(--wo-title);margin:3px 0 0;color:#f4e6c7}
.dossier-art{position:relative;margin-top:9px;border-radius:4px;overflow:hidden;border:2px solid var(--r-common)}
.dossier-art.r-rare{border-color:var(--r-rare)}.dossier-art.r-epic{border-color:var(--r-epic)}.dossier-art.r-legendary{border-color:var(--r-legendary)}
.dossier-art img{display:block;width:100%;height:clamp(84px,13vh,150px);object-fit:cover;margin:0;border:0;max-height:none;aspect-ratio:auto}
.dossier-art span{position:absolute;left:6px;bottom:6px;font:700 9px var(--wo-text);letter-spacing:.1em;background:#08141bd9;color:#e8d3a2;padding:3px 6px;border-radius:2px}
.dossier-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.dossier-chips:empty{display:none}
.dossier-chips .chip{font-size:10px;padding:3px 6px;border-radius:3px}
#card-dossier .dossier-effect{font-size:15px;line-height:1.42;margin:8px 0;color:#eef1ec}
.dossier-effect b{color:#f1d395;font-weight:600}
.dossier-values{display:flex;flex-wrap:wrap;gap:6px;margin:0}
.dossier-values div{background:#ffffff0e;border:1px solid #ffffff14;padding:5px 7px;border-radius:3px;min-width:58px}
.dossier-values dt{font:700 9px var(--wo-text);letter-spacing:.08em;color:#9fb1b4;text-transform:uppercase}
.dossier-values dd{margin:3px 0 0;font:20px/1 var(--wo-title);color:#f5e8cb;white-space:nowrap}
.dossier-values s{font-size:13px;color:#90a3a9;margin-left:5px}
.dossier-values small{font:11px var(--wo-text);color:#9eb0b4;margin-left:4px}
.dossier-values .is-up{color:#a6f0a2}.dossier-values .is-down{color:#ff9f8a}
.dossier-status{font-size:12px;line-height:1.4;margin:8px 0 0;color:#cfe0e6;padding-left:8px;border-left:2px solid #7fb0d0}
.dossier-forecast{font-size:12.5px;line-height:1.4;margin:8px 0 0;padding:6px 8px;color:#ffe0d7;background:#3a110e99;border:1px dashed var(--forecast);border-radius:3px}
.dossier-forecast .eyebrow{display:block;font-size:9px;color:#ffb3a3;margin-bottom:2px}
.dossier-glossary{margin:9px 0 0;display:grid;gap:5px;padding-top:8px;border-top:1px solid #ffffff1a}
.dossier-glossary dt{font:700 10px var(--wo-text);letter-spacing:.08em;color:#e6c47d;text-transform:uppercase}
.dossier-glossary dd{margin:1px 0 0;font-size:11.5px;line-height:1.35;color:#c9d2cf}
#card-dossier .dossier-scope{font-size:11px;line-height:1.35;color:#9fb1b4;margin:8px 0 0}
.dossier-hint{display:block;margin-top:7px;font-size:9px;letter-spacing:.1em;color:#8399a0}
@media (max-height:820px){#card-dossier .dossier-effect{font-size:14px;margin:6px 0}.dossier-art img{height:76px}.dossier-glossary div:nth-child(n+3){display:none}#card-dossier .dossier-scope{display:none}#card-dossier h2{font-size:19px}}

/* ------------------------------------------------------------------ priority panel forecast */
.forecast-line{display:flex;flex-direction:column;gap:3px;margin:0 0 8px;padding:6px 8px;border-left:2px solid #e3b866;background:#0b1a22c4;border-radius:0 3px 3px 0}
.forecast-line[hidden]{display:none}
.forecast-line .eyebrow{font-size:9px;letter-spacing:.12em;color:#c9b07c}
.forecast-sov{display:flex;flex-wrap:wrap;gap:4px 12px;font:600 13px/1.2 var(--wo-text)}
.forecast-sov b{color:#ffb4a3}.forecast-sov b.lethal{color:#fff;background:#c2412f;padding:0 4px;border-radius:2px}
.forecast-sov span{color:#9fb3b8;font-weight:500}
.forecast-line small{font-size:11px;color:#c7d1cf}
.forecast-preview .forecast-line{border-left-color:#f0cf86;background:#2b230dcc}

/* ------------------------------------------------------------------ dock: controls + audio panel */
.hand-dock{grid-template-columns:118px minmax(0,1fr) clamp(212px,14.5vw,262px);z-index:6}
.status-bar{position:relative;z-index:4}
.dock-actions{display:grid;grid-template-columns:1fr 1fr;gap:3px 8px;align-content:center;padding:0}
.dock-actions .text-button{display:flex;align-items:center;gap:5px;font-size:12px;padding:3px 2px;white-space:nowrap;min-width:0;justify-content:flex-start;text-align:left}
.dock-actions .text-button span{overflow:hidden;text-overflow:ellipsis}
.dock-actions .text-button svg{width:14px;height:14px;flex:none}
.dock-actions .autosave-status{grid-column:1/-1;margin-top:2px}
#mute-button[aria-expanded="true"]{color:#f1d395}
#forecast-button[aria-pressed="false"]{opacity:.65}
.audio-panel{position:absolute;right:0;bottom:calc(100% + 10px);width:300px;z-index:60;padding:12px 14px;background:linear-gradient(160deg,#17303af8,#0a1922fb);border:1px solid #cbb17b;border-radius:6px;box-shadow:0 18px 45px #000d;color:#e7ecea}
.audio-panel[hidden]{display:none}
.audio-panel header{display:flex;flex-direction:column;gap:3px;margin-bottom:8px}
.audio-panel header .eyebrow{font-size:10px;color:#e6c47d}
#audio-now{font:13px var(--wo-title);color:#f2e6cc}
.audio-row{display:grid;grid-template-columns:96px 1fr;align-items:center;gap:8px;padding:6px 0;border-top:1px solid #ffffff14}
.audio-row label{display:flex;align-items:center;gap:7px;font-size:13px;cursor:pointer}
.audio-row input[type=checkbox]{width:16px;height:16px;accent-color:#d9b46a}
.audio-row input[type=range]{width:100%;accent-color:#d9b46a}
.audio-panel p{font-size:11px;line-height:1.4;color:#9fb1b4;margin:6px 0 0}

/* ------------------------------------------------------------------ combat flow and labels */
.combat-sequence-steps li>span:last-child{white-space:normal;overflow:hidden;text-overflow:ellipsis;line-height:1.15;overflow-wrap:normal;word-break:keep-all}
.combat-sequence-steps li{font-size:10.5px!important;letter-spacing:0}
.combat-change-group{align-items:center;text-align:center}
.combat-change{justify-content:center;max-width:100%;box-shadow:0 3px 10px #000c}
.combat-resource-change{align-items:flex-end}

/* ------------------------------------------------------------------ Clash: vertical beams, ruler, centered hits */
.fx-column{position:absolute;pointer-events:none;border-radius:8px;z-index:3;filter:drop-shadow(0 0 6px #fff4)}
.fx-ruler{z-index:4}.fx-number{z-index:5}.fx-ring{z-index:4}
.combat-vfx.after-clash .combat-change-group.is-appearing{animation-delay:.66s}
.fx-ruler{position:absolute;height:26px;display:flex;align-items:center;justify-content:center;gap:4px;pointer-events:none;transform-origin:50% 50%;background:#071016e8;border:1px solid var(--tone);border-radius:3px;box-shadow:0 0 18px color-mix(in srgb,var(--tone) 60%,transparent)}
.fx-ruler b{font:700 17px/1 var(--wo-title);min-width:20px;text-align:center}
.fx-ruler-e{color:#ffb4a3}.fx-ruler-p{color:#f7dca2}
.fx-ruler-bar{display:block;height:6px;border-radius:3px;max-width:40%}
.fx-ruler-bar.e{background:linear-gradient(270deg,#ff8f78,#7a2a1f)}
.fx-ruler-bar.p{background:linear-gradient(90deg,#f0cf86,#7a5c22)}
.fx-ruler-mid{width:2px;height:18px;background:var(--tone);box-shadow:0 0 10px var(--tone)}
.fx-number.fx-hit{font:800 34px/1 var(--wo-title);-webkit-text-stroke:1px #2a0703;text-shadow:0 3px 8px #000,0 0 18px #ff5a3c99}
.fx-number.fx-sov{font-size:40px}

/* ------------------------------------------------------------------ narrow desktop (1280×720 class) */
@media (max-width:1450px){
  .lh .portrait-wrap{width:40px;height:40px}
  .lh-id{gap:6px}
  .fh-name{font-size:10.5px;letter-spacing:.08em;gap:4px}.fh-name svg{width:14px;height:14px}
  .lane .formation-power{font-size:18px;gap:4px}
  .front-forecast{font-size:10px}.front-forecast span{padding:2px 4px}
  .dock-actions .text-button{font-size:11px}
  .face-forecast{font-size:10.5px;padding:2px 5px;gap:4px}
}
@media (max-height:800px){
  .keyboard-tip{visibility:hidden}
  .lane .front-heading{height:30px}
  .lh{gap:4px}
  .lh-value{font-size:20px}
  .lh .special-button{padding:4px 5px}
  .forecast-line{margin-bottom:6px;padding:4px 7px}
  .forecast-sov{font-size:12px}
  .priority-panel p{margin:6px 0}
}

/* ------------------------------------------------------------------ rarity materials (v016 · rarity backgrounds)
   Spec: Common matte steel/graphite · Rare brushed silver + blue filet, double line · Epic dark metal + violet
   enamel, worked corners · Legendary aged gold, ivory, bas-relief, corner silhouettes. Rarity lives on the
   perimeter, the background material and the seal; the front keeps its icon and inner strip. */
.seal-common{--seal:#8B969E;--seal-hi:#c4ccd1;--seal-body:#0d161c}
.seal-rare{--seal:#4F91CB;--seal-hi:#d3dee7;--seal-body:#0d1c29}
.seal-epic{--seal:#9B6BC3;--seal-hi:#d9c3ea;--seal-body:#1f1334}
.seal-legendary{--seal:#D4AA5B;--seal-hi:#f6e6c0;--seal-body:#2e210b}
.face-seal{position:absolute;right:3cqw;top:3cqw;width:max(19px,15.5cqw);height:max(19px,15.5cqw);z-index:6;display:grid;place-items:center;color:var(--front,#c9d3d6);filter:drop-shadow(0 1cqw 1.6cqw #000c)}
.face-seal .seal-shape{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.face-seal>svg:not(.seal-shape){position:relative;width:44%;height:44%;fill:none;stroke:currentColor;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}
.seal-rare>svg:not(.seal-shape),.seal-epic>svg:not(.seal-shape){width:38%;height:38%}
.seal-legendary>svg:not(.seal-shape){width:36%;height:36%}
.seal-shape .s-body{fill:var(--seal-body);stroke:var(--seal-hi);stroke-width:2.2}
.seal-shape .s-line{fill:none;stroke:var(--seal);stroke-width:1.6}
.seal-common .s-body{stroke:var(--seal)}
.seal-epic .s-inner{fill:#9b6bc340;stroke-width:1.2}
.seal-shape .s-leaf{fill:none;stroke:var(--seal);stroke-width:2.2;stroke-linecap:round}
.seal-shape .s-leaf-fill{fill:var(--seal)}
.seal-shape .s-crest{fill:none;stroke:var(--seal-hi);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dossier-head .face-seal{position:relative;right:auto;top:auto;flex:none;width:34px;height:34px;order:2;margin-left:auto;filter:drop-shadow(0 2px 3px #000a)}
.dossier-head{align-items:center}
.dossier-head>div{order:1;min-width:0}
.dossier-head .face-cost{order:0}

/* compact face frames */
.face.r-common::after{border:max(2px,1.4cqw) solid #8B969E;box-shadow:inset 0 0 0 max(1px,.5cqw) #0009,inset 0 0 6cqw #0006}
.face.r-rare::after{border:max(2px,1.3cqw) solid #b9c7d1;box-shadow:inset 0 0 0 max(1px,.6cqw) #4F91CB,inset 0 0 0 max(2px,1.2cqw) #000a,inset 0 0 6cqw #0006}
.face.r-epic::after{border:max(2px,1.6cqw) solid #9B6BC3;border-image:linear-gradient(135deg,#d8c2ea,#644779 22%,#2a2034 48%,#7d55a3 72%,#d8c2ea) 1;border-radius:0;box-shadow:inset 0 0 0 max(1px,.5cqw) #000a,inset 0 0 8cqw #9b6bc344}
.face.r-legendary::after{border:max(2.5px,1.9cqw) solid #D4AA5B;border-image:linear-gradient(160deg,#fbe9bf,#a87c2c 30%,#5e4318 50%,#c99a45 70%,#fbe9bf) 1;border-radius:0;box-shadow:inset 0 0 0 max(1px,.5cqw) #2a1c08cc,inset 0 0 9cqw #d4aa5b40}
.face-trim{position:absolute;inset:max(2px,1.2cqw);z-index:5;pointer-events:none;background-repeat:no-repeat;background-size:max(13px,13cqw) max(13px,13cqw);background-position:top left,top right,bottom left,bottom right}
.face.r-legendary .face-trim{background-size:max(15px,15cqw) max(15px,15cqw)}
.face.r-epic .face-stats,.face.r-legendary .face-stats{padding:0 7cqw}
.face.r-epic .face-kind,.face.r-legendary .face-kind{padding:0 8cqw 0 10cqw}
.face.r-rare .face-stats{padding:0 5.5cqw}

/* compact face backgrounds: the material shows on every surface that is not art */
.face.r-common{background:#151b20}
.face.r-common .face-plate{background:linear-gradient(180deg,#2b343bf6,#1b2227f8 70%,#161c21fa)}
.face.r-common .face-stats,.face.r-common .face-kind{background:linear-gradient(180deg,#171d22,#0e1316)}
.face.r-rare{background:#1c2730}
.face.r-rare .face-plate{background:repeating-linear-gradient(180deg,#ffffff0c 0 1px,transparent 1px 3px),linear-gradient(112deg,#41505cf6 0%,#26323cf8 38%,#3d4b57f8 52%,#202b34fa 100%);box-shadow:inset 0 0 0 1px #4F91CB66,0 -2cqw 5cqw #0009}
.face.r-rare .face-stats,.face.r-rare .face-kind{background:repeating-linear-gradient(180deg,#ffffff07 0 1px,transparent 1px 3px),linear-gradient(180deg,#1e2a33,#121a20);box-shadow:inset 0 1px 0 #4F91CB88}
.face.r-epic{background:#17111f}
.face.r-epic .face-plate{background:repeating-linear-gradient(45deg,#c39ae626 0 1px,transparent 1px 8px),repeating-linear-gradient(-45deg,#c39ae626 0 1px,transparent 1px 8px),radial-gradient(ellipse at 50% 125%,#5e3889f2,#2e1f45f6 58%,#1b1328fa)}
.face.r-epic .face-stats,.face.r-epic .face-kind{background:radial-gradient(ellipse at 50% 140%,#3a2358,#150f1d 70%);box-shadow:inset 0 1px 0 #9B6BC3aa}
.face.r-legendary{background:#241a0a}
.face.r-legendary .face-plate{background:repeating-radial-gradient(circle at 50% 150%,#f6e6c01c 0 1px,#0000 1px 2px,#00000022 2px 3px,#0000 3px 6px),radial-gradient(ellipse at 50% 105%,#86652bf2,#3f2f13f6 55%,#2a1f0cfa)}
.face.r-legendary .face-stats,.face.r-legendary .face-kind{background:repeating-radial-gradient(circle at 50% 170%,#f6e6c014 0 1px,#0000 1px 5px),linear-gradient(180deg,#30240e,#1a1307);box-shadow:inset 0 1px 0 #e7c47cbb}
.face.r-legendary .face-name>span{color:#fff2d6;text-shadow:0 1px 2px #000,0 0 8px #d4aa5b44}
.face.r-legendary .face-power{color:#ffe1a0}
.face.cat-event.r-legendary .face-kind,.face.cat-response.r-legendary .face-kind{color:#f3d48e}

/* motion by rarity (never in reduced motion): rare short glint, epic seal glow, legendary light sweep */
.face-plate::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;background:linear-gradient(105deg,transparent 30%,#ffffff2e 48%,transparent 66%);background-size:260% 100%;background-position:120% 0}
@media (prefers-reduced-motion:no-preference){
  .battle-app:not(.reduced-motion) .field-card:hover .face.r-rare .face-plate::after,.battle-app:not(.reduced-motion) .hand-card:hover .face.r-rare .face-plate::after{animation:wo-glint .7s ease-out 1}
  .battle-app:not(.reduced-motion) .field-card:hover .face.r-legendary .face-plate::after,.battle-app:not(.reduced-motion) .hand-card:hover .face.r-legendary .face-plate::after{background-image:linear-gradient(105deg,transparent 30%,#fff1c855 48%,transparent 66%);animation:wo-glint 1.1s ease-out 1}
  .battle-app:not(.reduced-motion) .field-card:hover .face.r-epic .face-seal,.battle-app:not(.reduced-motion) .hand-card:hover .face.r-epic .face-seal{animation:wo-seal-glow 1.2s ease-in-out 1}
  html:not(.wo-reduced-motion) .inspected-card .card-visual.r-legendary::after{content:"";position:absolute;inset:0;z-index:7;pointer-events:none;background:linear-gradient(105deg,transparent 38%,#fff3d21f 47%,#fff8e54d 50%,#fff3d21f 53%,transparent 62%);background-size:260% 100%;animation:wo-sweep 6s ease-in-out infinite}
  html:not(.wo-reduced-motion) .inspected-card .card-visual.r-epic .card-rarity{animation:wo-enamel 3.2s ease-in-out infinite}
}
@keyframes wo-glint{0%{opacity:0;background-position:120% 0}25%{opacity:1}100%{opacity:0;background-position:-30% 0}}
@keyframes wo-seal-glow{50%{filter:drop-shadow(0 0 7px #c39ae6) drop-shadow(0 1cqw 1.6cqw #000c)}}
@keyframes wo-sweep{0%,55%{background-position:120% 0}85%,100%{background-position:-25% 0}}
@keyframes wo-enamel{50%{filter:drop-shadow(0 0 6px #9b6bc366) brightness(1.08)}}

/* printed card: the rarity background sits under the front base */
.card-rarity-bg{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.card-visual{background:#0b151b}
.face.r-rare .face-trim{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cpath d='M3 3H17M3 3V17' stroke='%23a9cbe8' stroke-width='2.2' fill='none'/%3E%3Cpath d='M9 9l3.2-3.2 3.2 3.2-3.2 3.2z' fill='%234F91CB' stroke='%23dbe9f5' stroke-width='.6'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg transform='translate%2840 0%29 scale%28-1 1%29'%3E%3Cpath d='M3 3H17M3 3V17' stroke='%23a9cbe8' stroke-width='2.2' fill='none'/%3E%3Cpath d='M9 9l3.2-3.2 3.2 3.2-3.2 3.2z' fill='%234F91CB' stroke='%23dbe9f5' stroke-width='.6'/%3E%3C/g%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg transform='translate%280 40%29 scale%281 -1%29'%3E%3Cpath d='M3 3H17M3 3V17' stroke='%23a9cbe8' stroke-width='2.2' fill='none'/%3E%3Cpath d='M9 9l3.2-3.2 3.2 3.2-3.2 3.2z' fill='%234F91CB' stroke='%23dbe9f5' stroke-width='.6'/%3E%3C/g%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg transform='translate%2840 40%29 scale%28-1 -1%29'%3E%3Cpath d='M3 3H17M3 3V17' stroke='%23a9cbe8' stroke-width='2.2' fill='none'/%3E%3Cpath d='M9 9l3.2-3.2 3.2 3.2-3.2 3.2z' fill='%234F91CB' stroke='%23dbe9f5' stroke-width='.6'/%3E%3C/g%3E%3C/svg%3E")}
.face.r-epic .face-trim{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cpath d='M1.5 1.5H24L18 7.5H7.5V18L1.5 24Z' fill='%239B6BC3' stroke='%23e6d4f5' stroke-width='.9'/%3E%3Cpath d='M11 11l3.4-3.4 3.4 3.4-3.4 3.4z' fill='%23eadcf7'/%3E%3Cpath d='M27 3l2 2-2 2-2-2z M3 27l2 2-2 2-2-2z' fill='%23c1a5d5'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg transform='translate%2840 0%29 scale%28-1 1%29'%3E%3Cpath d='M1.5 1.5H24L18 7.5H7.5V18L1.5 24Z' fill='%239B6BC3' stroke='%23e6d4f5' stroke-width='.9'/%3E%3Cpath d='M11 11l3.4-3.4 3.4 3.4-3.4 3.4z' fill='%23eadcf7'/%3E%3Cpath d='M27 3l2 2-2 2-2-2z M3 27l2 2-2 2-2-2z' fill='%23c1a5d5'/%3E%3C/g%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg transform='translate%280 40%29 scale%281 -1%29'%3E%3Cpath d='M1.5 1.5H24L18 7.5H7.5V18L1.5 24Z' fill='%239B6BC3' stroke='%23e6d4f5' stroke-width='.9'/%3E%3Cpath d='M11 11l3.4-3.4 3.4 3.4-3.4 3.4z' fill='%23eadcf7'/%3E%3Cpath d='M27 3l2 2-2 2-2-2z M3 27l2 2-2 2-2-2z' fill='%23c1a5d5'/%3E%3C/g%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg transform='translate%2840 40%29 scale%28-1 -1%29'%3E%3Cpath d='M1.5 1.5H24L18 7.5H7.5V18L1.5 24Z' fill='%239B6BC3' stroke='%23e6d4f5' stroke-width='.9'/%3E%3Cpath d='M11 11l3.4-3.4 3.4 3.4-3.4 3.4z' fill='%23eadcf7'/%3E%3Cpath d='M27 3l2 2-2 2-2-2z M3 27l2 2-2 2-2-2z' fill='%23c1a5d5'/%3E%3C/g%3E%3C/svg%3E")}
.face.r-legendary .face-trim{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cpath d='M1 1H31L24.5 7.5H7.5V24.5L1 31Z' fill='%23D4AA5B' stroke='%23fff1cf' stroke-width='.9'/%3E%3Cpath d='M10 10c6-3.5 11.5-2.5 15 2-4.5 0-9 2.2-13 6.5-2.4-3-3.2-5.6-2-8.5z' fill='%23f6e7c3'/%3E%3Ccircle cx='6.5' cy='6.5' r='2.4' fill='%23fff6dc'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg transform='translate%2840 0%29 scale%28-1 1%29'%3E%3Cpath d='M1 1H31L24.5 7.5H7.5V24.5L1 31Z' fill='%23D4AA5B' stroke='%23fff1cf' stroke-width='.9'/%3E%3Cpath d='M10 10c6-3.5 11.5-2.5 15 2-4.5 0-9 2.2-13 6.5-2.4-3-3.2-5.6-2-8.5z' fill='%23f6e7c3'/%3E%3Ccircle cx='6.5' cy='6.5' r='2.4' fill='%23fff6dc'/%3E%3C/g%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg transform='translate%280 40%29 scale%281 -1%29'%3E%3Cpath d='M1 1H31L24.5 7.5H7.5V24.5L1 31Z' fill='%23D4AA5B' stroke='%23fff1cf' stroke-width='.9'/%3E%3Cpath d='M10 10c6-3.5 11.5-2.5 15 2-4.5 0-9 2.2-13 6.5-2.4-3-3.2-5.6-2-8.5z' fill='%23f6e7c3'/%3E%3Ccircle cx='6.5' cy='6.5' r='2.4' fill='%23fff6dc'/%3E%3C/g%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg transform='translate%2840 40%29 scale%28-1 -1%29'%3E%3Cpath d='M1 1H31L24.5 7.5H7.5V24.5L1 31Z' fill='%23D4AA5B' stroke='%23fff1cf' stroke-width='.9'/%3E%3Cpath d='M10 10c6-3.5 11.5-2.5 15 2-4.5 0-9 2.2-13 6.5-2.4-3-3.2-5.6-2-8.5z' fill='%23f6e7c3'/%3E%3Ccircle cx='6.5' cy='6.5' r='2.4' fill='%23fff6dc'/%3E%3C/g%3E%3C/svg%3E")}

/* ------------------------------------------------------------------ v016.1 table release zone
   Event/Response cards without a single target can be released anywhere on the battlefield. */
.table-drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;top:44%;left:3%;width:94%;min-height:76px;padding:12px 16px;background:#14303cf0;border:2px dashed #d9c183;border-radius:6px;color:#f6e5bd;transition:background .12s,border-color .12s,box-shadow .12s}
.table-drop-zone strong{font:800 15px/1.1 var(--wo-text);letter-spacing:.14em}
.table-drop-zone span{font:600 12px/1.2 var(--wo-text);letter-spacing:.06em;color:#bfd0d4}
.table-drop-zone.table-only{inset:30px 0 0 0;width:auto;min-height:0;height:auto;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,#1d4250cc,#0a1a22b8 70%);border:3px dashed #d9c183aa;box-shadow:inset 0 0 60px #000a}
.table-drop-zone.table-only strong{font-size:clamp(18px,1.6vw,28px)}
.table-drop-zone.table-only span{font-size:clamp(12px,1vw,16px)}
.table-drop-zone.drop-hover{background:#1f4a5af2;border-color:#ffe2a1;border-style:solid;box-shadow:0 0 0 2px #ffe2a155,inset 0 0 50px #e9c97a33}
.table-drop-zone.table-only.drop-hover{background:radial-gradient(ellipse at 50% 50%,#2a5a6cd9,#0d2430c4 72%);border-color:#ffe2a1}
.drop-table-only .field-slot{filter:none}

/* ------------------------------------------------------------------ v016.1 larger leader portraits
   The leader photo is a banner across the panel; name and country sit on it. */
.lh-id{position:relative;display:block;height:clamp(78px,15vh,176px);margin:0;border-radius:4px;overflow:hidden;border:1px solid #c9ad7a66;background:radial-gradient(circle at 50% 35%,#2b4250,#0a151c)}
.lh .lh-id .portrait-wrap{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0;background:none}
.lh .lh-id .portrait-wrap img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 14%;transform:none}
.leader-panel.opponent .lh .lh-id .portrait-wrap img{object-position:50% 12%}
.lh-id::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#0a151c99 0%,transparent 26%,transparent 52%,#08131add 82%,#08131af5 100%)}
.lh-who{position:absolute;left:0;right:0;bottom:0;top:0;z-index:2;display:flex;flex-direction:column;justify-content:space-between;padding:6px 8px 6px;gap:0}
.lh-meta{font-size:9px;text-shadow:0 1px 2px #000}
.lh-meta b{background:#08131acc;padding:2px 5px;border-radius:2px}
.lh .leader-name{font-size:clamp(15px,1.15vw,22px);text-shadow:0 2px 6px #000,0 0 2px #000}
.leader-panel.player .lh-id{border-color:#d9b46a99;box-shadow:0 0 0 1px #d9b46a33}
@media (max-width:1450px){.lh .portrait-wrap{width:100%;height:100%}.lh-id{height:clamp(74px,12vh,120px)}}
@media (max-height:800px){.lh-id{height:72px}.lh .leader-name{font-size:15px}}
.table-drop-zone.table-only>*{background:#0a1a22f2;box-shadow:0 10px 30px #000c}
.table-drop-zone.table-only strong{padding:12px 26px 4px;border-radius:6px 6px 0 0;border:1px solid #d9c18388;border-bottom:0}
.table-drop-zone.table-only span{padding:2px 26px 12px;margin-top:-6px;border-radius:0 0 6px 6px;border:1px solid #d9c18388;border-top:0}

/* ------------------------------------------------------------------ v017 Intelligence Briefing */
.briefing-button{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;column-gap:8px;width:100%;margin:0 0 8px;padding:6px 10px;background:linear-gradient(135deg,#1c3440,#10232d);border:1px solid #7fb0d077;border-radius:4px;color:#d8e8ef;text-align:left;cursor:pointer;transition:border-color .15s,background .15s}
.briefing-button[hidden]{display:none}
.briefing-button>svg{grid-row:1/3;width:18px;height:18px;fill:none;stroke:#9fd0e6;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.briefing-label{font:800 11px/1.15 var(--wo-text);letter-spacing:.11em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.briefing-cost{grid-row:1/3;grid-column:3;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font:700 13px var(--wo-title);background:#132a35;border:1px solid #d9bf89;color:#fff2d4}
.briefing-button small{grid-column:2;font:600 9.5px/1.2 var(--wo-text);letter-spacing:.1em;color:#8fb7c8}
.briefing-button:hover:not(:disabled){border-color:#9fd0e6;background:linear-gradient(135deg,#21404e,#132b37)}
.briefing-button:disabled{opacity:.45;cursor:default}
.briefing-button.is-used small{color:#c9b07c}
@media (max-height:800px){.briefing-button{padding:4px 8px;margin-bottom:6px}.briefing-label{font-size:10px}}

/* ------------------------------------------------------------------ v017 numbers: lining figures, optically centred
   var(--wo-title) only ships old-style figures (3, 4, 5, 7, 9 drop below the baseline), so every number that sits in a
   badge or a stat uses a lining serif, and the digit box is trimmed to cap height so flex/grid centring is exact. */
:root{--wo-num:Cambria,"Times New Roman","Liberation Serif","DejaVu Serif",serif}
.face-cost,.face-stat,.lh-value,.lane .formation-power b,.fx-ruler b,.fx-number.fx-hit,.dossier-values dd,.lh .special-cost,.briefing-cost,#round-value,.card-visual .card-cost,.card-visual .card-attributes,.inspection-values strong,.result-scores strong,.deck-entry em,.collection-cost,.pile-number{font-family:var(--wo-num)!important;font-variant-numeric:lining-nums tabular-nums}
.face-cost>b,.face-stat>b,.card-cost>b,.card-attributes b,.special-cost>b,.briefing-cost>b{display:block;font-weight:700;line-height:1;text-box:trim-both cap alphabetic}
.face-cost{line-height:1}
.face-stat{align-items:center}
.face-stat>svg{align-self:center}
/* printed card: the cost sits in the centre of the medallion drawn by the rarity layer (x 50–137, y 37–107 of 900×1200) */
.card-visual .card-cost{left:5.56%;top:3.08%;width:9.67%;height:5.83%;display:grid;place-items:center;text-align:center;line-height:1;padding:0;margin:0}
/* printed stats sit in the middle of the two stat boxes of the front base (y 1056–1118) */
.card-visual .card-attributes{top:88%;height:5.17%;align-items:stretch}
.card-visual .card-attributes span{height:100%;align-items:center}
.card-visual .card-attributes b{font-size:1.25em}

/* ------------------------------------------------------------------ v017 national flag on leader-exclusive cards */
.flag-svg{stroke:none;stroke-width:0;fill:none;display:inline-block;flex:none;width:1.5em;height:1em;border-radius:1px;box-shadow:0 0 0 1px #f2e3bf99,0 1px 3px #000a;vertical-align:-.12em}
.face-flag{position:absolute;left:4.2cqw;top:20.5cqw;z-index:6;width:max(17px,14cqw);height:max(11.3px,9.33cqw);display:block;filter:drop-shadow(0 1cqw 1.5cqw #000c)}
.face-flag .flag-svg{width:100%;height:100%;display:block;border-radius:max(1px,.6cqw);box-shadow:0 0 0 max(1px,.5cqw) #f2e3bf}
.card-visual .card-flag{position:absolute;left:17.6%;top:3.3%;height:5.4%;display:flex;align-items:center;gap:1.2cqw;z-index:6;font:800 max(7px,2.15cqw)/1 var(--wo-text);letter-spacing:.12em;color:#f3e6c6;text-shadow:0 1px 2px #000}
.card-visual .card-flag .flag-svg{width:max(16px,6.6cqw);height:max(10.7px,4.4cqw)}
.dossier-nation{display:flex;align-items:center;gap:8px;margin-top:8px;padding:6px 8px;border-radius:3px;background:#ffffff0d;border:1px solid #f2e3bf33;font-size:11.5px;color:#d5dedb}
.dossier-nation .flag-svg{width:27px;height:18px}
.dossier-nation b{color:#f3e2b8;font-weight:700}
.lh-meta .lh-flag{width:16px;height:10.7px}
.list-flag{width:15px;height:10px;margin-right:5px}
.collection-card em .list-flag{vertical-align:-1px}
