:root{--bg:#06100c;--panel:#0b1b14;--panel2:#10251b;--line:#254c38;--green:#76f5a8;--green2:#35ca78;--accent:var(--green);--text:#edf8f1;--muted:#98b3a4;--text-muted:var(--muted);--warn:#f0c66a;--danger:#ff7f83;--shadow:0 20px 55px rgba(0,0,0,.36);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color-scheme:dark;background-color:var(--bg)}
.offline-install-status{position:fixed;z-index:50;top:calc(76px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(360px,calc(100% - 30px));padding:12px 14px;background:rgba(9,25,18,.96);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);pointer-events:none}.offline-install-copy{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.88rem;font-weight:800}.offline-install-copy strong{flex:0 0 auto;color:var(--green);font-variant-numeric:tabular-nums}.offline-install-progress{height:6px;margin-top:9px;overflow:hidden;border-radius:999px;background:#13281e}.offline-install-progress span{display:block;width:0;height:100%;background:var(--green);transition:width .3s ease}.offline-install-status.complete .offline-install-copy strong{display:none}.offline-install-status.complete .offline-install-progress span{width:100%}
#gameBackground{position:fixed;inset:0;z-index:0;pointer-events:none;background-color:var(--bg);background-repeat:no-repeat;background-position:center;background-size:cover;opacity:0}
#gameBackground::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(1,8,5,.62),rgba(1,8,5,.78))}
html.desktop-game-background #gameBackground{opacity:1}
@media(forced-colors:active){#gameBackground{display:none}}
*{box-sizing:border-box}html{background-color:var(--bg)}body{margin:0;background:radial-gradient(circle at 80% 0,#123326 0,transparent 32%),var(--bg);color:var(--text);min-height:100vh}.ambient-grid{position:fixed;inset:0;pointer-events:none;opacity:.13;background-image:linear-gradient(rgba(118,245,168,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(118,245,168,.14) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(to bottom,#000,transparent 70%)}button,input,select{font:inherit}.app-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:14px max(18px,env(safe-area-inset-left));background:rgba(6,16,12,.9);backdrop-filter:blur(14px);border-bottom:1px solid rgba(118,245,168,.16)}.brand{display:flex;gap:12px;align-items:center}.brand-icon{width:42px;height:42px}.brand span,.eyebrow{font-size:.7rem;letter-spacing:.17em;color:var(--green);font-weight:800}.brand h1{font-size:clamp(1.05rem,3.5vw,1.45rem);margin:2px 0 0}.version{border:1px solid var(--line);border-radius:999px;padding:6px 10px;color:var(--muted);font-weight:800;font-size:.75rem}.app-shell{position:relative;max-width:1000px;margin:0 auto;padding:24px 18px 110px}.hero-card,.card,.next-card,.wizard-card{background:linear-gradient(145deg,rgba(16,37,27,.98),rgba(8,24,17,.98));border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}.hero-card{padding:clamp(24px,6vw,52px);text-align:center;margin-top:4vh}.hero-symbol{width:92px;height:92px;margin:0 auto 20px;padding:14px;border-radius:26px;background:#07140f;border:1px solid var(--line)}.hero-card h2{font-size:clamp(2rem,8vw,4rem);line-height:1;margin:6px 0 16px}.hero-card p{max-width:650px;margin:0 auto 28px;color:var(--muted);font-size:1.05rem;line-height:1.6}.button-row{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.btn{border:0;border-radius:13px;padding:14px 18px;font-weight:850;cursor:pointer;min-height:48px}.btn.primary{background:var(--green);color:#062012}.btn.secondary{background:#173a28;color:var(--text);border:1px solid #316a4b}.btn.ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}.btn.danger{background:#3a191c;color:#ffd4d5;border:1px solid #703136}.btn:disabled{opacity:.4;cursor:not-allowed}.wizard-shell{max-width:820px;margin:auto}.progress-head{display:flex;justify-content:space-between;gap:10px;align-items:end;margin-bottom:14px}.progress-head h2{margin:3px 0;font-size:clamp(1.6rem,6vw,2.5rem)}.progress-head p{margin:0;color:var(--muted)}.step-count{font-weight:900;color:var(--green)}.progress-bar{height:7px;background:#13281e;border-radius:999px;overflow:hidden;margin-bottom:20px}.progress-bar span{display:block;height:100%;background:var(--green);transition:width .3s}.wizard-card{padding:clamp(20px,5vw,36px)}.wizard-card h3{font-size:1.5rem;margin:0 0 8px}.wizard-card>p{color:var(--muted);line-height:1.55}.mission-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:22px 0}.mission-choice{padding:17px;text-align:left;border-radius:16px;border:1px solid var(--line);background:#0a1812;color:var(--text);cursor:pointer}.mission-choice.selected{border-color:var(--green);box-shadow:0 0 0 2px rgba(118,245,168,.15);background:#102a1d}.mission-choice small{color:var(--green);font-weight:900}.mission-choice strong{display:block;font-size:1.05rem;margin:5px 0}.mission-choice span{color:var(--muted);font-size:.88rem;line-height:1.4}.wizard-actions{display:flex;justify-content:space-between;gap:12px;margin-top:24px}.checklist{display:grid;gap:10px;margin:20px 0}.check-row{display:flex;align-items:flex-start;gap:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#091912}.check-row input{width:22px;height:22px;accent-color:var(--green);flex:0 0 auto}.required-confirmation-row:has(input:not(:checked)){background:rgba(41,127,78,.28);border-color:#5de799}.check-row strong{display:block}.check-row small{display:block;color:var(--muted);margin-top:3px;line-height:1.4}.board-map{background:#06110d;border:1px solid var(--line);border-radius:18px;padding:12px;margin:18px 0;overflow:auto}.board-map svg{display:block;width:100%;min-width:520px;height:auto}.roster-preview,.roster-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin:18px 0}.operative-card{position:relative;padding:15px;border:1px solid var(--line);border-radius:16px;background:#091912;overflow:hidden}.operative-card.dead,.npo-roster-card.dead{opacity:.5}.operative-card h4{margin:0 0 4px}.operative-card p{margin:0;color:var(--muted);font-size:.86rem}.wounds{display:flex;align-items:center;gap:10px;margin-top:12px}.wounds meter{width:100%;accent-color:var(--green)}.deployment-list{counter-reset:deploy;display:grid;gap:9px}.deployment-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px;border:1px solid var(--line);border-radius:13px;background:#091912}.deployment-item.done{opacity:.62}.deployment-item button{min-width:76px}.summary-box{border:1px solid rgba(118,245,168,.35);background:rgba(41,127,78,.15);border-radius:16px;padding:17px;margin:18px 0}.summary-box strong{color:var(--green)}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);background:rgba(5,14,10,.96);backdrop-filter:blur(18px);border-top:1px solid var(--line);padding:7px max(6px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom))}.bottom-nav button{background:transparent;border:0;color:#789384;padding:8px 2px;font-size:.72rem;font-weight:800}.bottom-nav button span{display:block;font-size:1.2rem;margin-bottom:2px}.bottom-nav button.active{color:var(--green)}.hud{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:15px;overflow:hidden;margin-bottom:16px;box-shadow:var(--shadow)}.hud div{background:#0a1912;padding:10px 8px;text-align:center}.hud small{display:block;color:var(--muted);font-size:.62rem;text-transform:uppercase;letter-spacing:.08em}.hud strong{display:block;margin-top:3px;color:var(--green)}.next-card{padding:clamp(20px,5vw,36px);border-color:rgba(118,245,168,.45)}.next-card .phase{color:var(--green);font-weight:900;letter-spacing:.12em;font-size:.72rem}.next-card h2{font-size:clamp(1.8rem,7vw,3.2rem);margin:8px 0 10px}.next-card p{color:var(--muted);line-height:1.55;max-width:680px}.big-action{width:100%;margin-top:20px;padding:19px;font-size:1.08rem}.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-top:16px}.phase-track{display:flex;gap:7px;align-items:center;margin:16px 0;color:var(--muted);font-size:.78rem;overflow:auto}.phase-track span{white-space:nowrap}.phase-track .current{color:var(--green);font-weight:900}.panel-title{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:16px}.panel-title h2{margin:3px 0}.panel-title p{margin:0;color:var(--muted)}.card{padding:20px;margin-bottom:15px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.stat{padding:13px;border:1px solid var(--line);border-radius:13px;background:#091912}.stat small{display:block;color:var(--muted)}.stat strong{display:block;font-size:1.25rem;color:var(--green);margin-top:4px}.activity-log{list-style:none;padding:0;margin:0;display:grid;gap:9px}.activity-log li{border-left:3px solid var(--green2);background:#091912;padding:11px 13px;border-radius:0 12px 12px 0}.activity-log time{display:block;color:var(--muted);font-size:.72rem;margin-bottom:3px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.field label{display:block;color:var(--muted);font-size:.78rem;font-weight:800;margin:0 0 6px}.field select,.field input{width:100%;background:#07140f;color:var(--text);border:1px solid var(--line);border-radius:12px;padding:13px;min-height:47px}.toggle-list{display:grid;gap:9px}.toggle-list label{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px}.toggle-list input{width:20px;height:20px;accent-color:var(--green)}.dice-row{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.die{width:44px;height:44px;border-radius:10px;background:#205f3d;border:1px solid #5de799;display:grid;grid-template:repeat(3,1fr)/repeat(3,1fr);padding:7px;box-shadow:inset 0 0 12px rgba(0,0,0,.3)}.die.crit{background:#8b6c1f;border-color:#f0d570}.die.miss{background:#253129;border-color:#48584e;opacity:.7}.pip{width:6px;height:6px;border-radius:50%;background:#fff;place-self:center}.modal{width:min(680px,calc(100% - 24px));border:1px solid var(--line);border-radius:22px;background:#091912;color:var(--text);padding:0;box-shadow:var(--shadow)}.modal::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(4px)}.modal-inner{padding:24px}.modal h2{margin:0 0 8px}.modal p{color:var(--muted);line-height:1.5}.toast{position:fixed;z-index:60;left:50%;bottom:90px;transform:translateX(-50%);width:min(520px,calc(100% - 30px));background:#f3c969;color:#10150f;border:2px solid #fff1b8;border-radius:16px;padding:15px;font-weight:850;box-shadow:0 8px 30px rgba(0,0,0,.65),0 0 0 3px rgba(243,201,105,.24)}.help-list details{border:1px solid var(--line);border-radius:13px;padding:13px;margin-bottom:9px;background:#091912}.help-list summary{font-weight:850;cursor:pointer}.help-list p{color:var(--muted);line-height:1.5}.session-actions{display:flex;flex-wrap:wrap;gap:10px}.no-npo-message{display:grid;gap:10px;text-align:center;margin:24px 0;padding:30px 20px;border:1px solid rgba(118,245,168,.35);border-radius:16px;background:rgba(41,127,78,.12)}.no-npo-message strong{font-size:clamp(1.35rem,5vw,2rem);line-height:1.2;color:var(--text)}.no-npo-message span{color:var(--muted);font-size:1rem;line-height:1.5}.wizard-actions.two-actions .btn{min-width:140px}
.check-row span{min-width:0;flex:1}.check-row span>input{width:100%;height:44px;min-height:44px;margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#07140f;color:var(--text)}.empty{color:var(--muted);text-align:center;padding:35px}.hidden{display:none!important}@media(max-width:600px){.app-header{padding-top:calc(10px + env(safe-area-inset-top))}.brand span{display:none}.brand-icon{width:36px;height:36px}.app-shell{padding-inline:13px}.hud{top:66px;grid-template-columns:repeat(6,minmax(0,1fr))}.hud div{padding:8px 3px}.hud small{font-size:.54rem}.hud strong{font-size:.82rem}.form-grid{grid-template-columns:1fr}.wizard-actions .btn{flex:1}.mission-list{grid-template-columns:1fr}.hero-card{margin-top:2vh}.bottom-nav button{font-size:.65rem}.board-map svg{min-width:430px}}
.wizard-actions.breach-navigation .btn{width:100%}
@media(max-width:600px){
  .wizard-shell>.wizard-card{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
  .wizard-shell>.wizard-card>.wizard-actions{position:fixed;left:0;right:0;bottom:0;z-index:30;margin:0;padding:10px max(13px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(13px,env(safe-area-inset-left));background:rgba(5,14,10,.96);backdrop-filter:blur(18px);border-top:1px solid var(--line)}
}
.threat-strip{display:grid;grid-template-columns:auto minmax(90px,1fr) 38px 38px;align-items:center;gap:9px;margin:-6px 0 16px;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:#08150f}.threat-strip div:first-child{min-width:95px}.threat-strip strong{display:block;color:var(--green);font-size:.85rem}.threat-strip small{display:block;color:var(--muted);font-size:.65rem;margin-top:2px}.threat-meter{height:8px;border-radius:999px;background:#1c3025;overflow:hidden}.threat-meter span{display:block;height:100%;background:var(--green);transition:width .25s}.mini-btn{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:#123523;color:var(--text);font-weight:900;font-size:1.2rem}.reinforcement-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:12px 0 18px}.reinforcement-result{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid var(--line);border-radius:13px;background:#07140f}.dice-row.compact{margin:0;flex-wrap:nowrap}.dice-row.compact .die{width:34px;height:34px;padding:5px;border-radius:8px}.dice-row.compact .pip{width:5px;height:5px}.warning-text{color:#f2bf72}.activation-tracker{margin-top:16px}.activation-tracker .panel-title{align-items:center}.tracker-section{margin-top:14px}.tracker-section>small{display:block;color:var(--muted);font-weight:800;margin-bottom:8px}.enemy-dots{display:flex;flex-wrap:wrap;gap:8px}.activation-dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--green)}.activation-dot.ready{background:#1f6a40}.activation-dot.spent{background:#26332b;border-color:#44574b;opacity:.65}.tracker-npos{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:7px}.tracker-npo{display:flex;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#07140f;font-size:.76rem}.tracker-npo strong{color:var(--green);font-size:.68rem}.tracker-npo.spent{opacity:.55}.tracker-npo.spent strong{color:var(--muted)}.muted{color:var(--muted)}
@media(max-width:600px){.threat-strip{grid-template-columns:90px 1fr 36px 36px;padding:8px}.threat-strip small{font-size:.58rem}.reinforcement-grid{grid-template-columns:1fr}.activation-tracker .panel-title{align-items:flex-start}.tracker-npos{grid-template-columns:1fr}}


/* v1.1.4: Command-inspired mission map presentation */
.guide-map-frame{
  overflow:hidden;
  margin:16px 0;
  border:1px solid rgba(126,255,186,.2);
  border-radius:14px;
  background:#050c08;
  box-shadow:inset 0 0 45px rgba(0,0,0,.48),0 14px 36px rgba(0,0,0,.24);
}
.guide-map-svg{display:block;width:100%;height:auto;min-height:260px}
.guide-map-canvas{fill:#07110c;stroke:rgba(146,255,195,.24);stroke-width:2}
.guide-map-grid-line{fill:none;stroke:rgba(184,215,197,.095);stroke-width:1}
.guide-map-grid-fill{pointer-events:none}
.guide-map-zone-enemy{fill:rgba(230,111,54,.62);stroke:rgba(255,162,119,.3);stroke-width:1.5}
.guide-map-zone-npo{fill:rgba(143,158,151,.13);stroke:rgba(143,158,151,.1);stroke-width:1}
.guide-map-zone-label,.guide-map-npo-label{fill:rgba(255,246,235,.86);font-size:12px;font-weight:900;letter-spacing:1.4px}
.guide-map-npo-label{fill:rgba(207,226,215,.68);font-size:11px}
.guide-map-wall-shadow{stroke:#020403;stroke-width:20;stroke-linecap:square;stroke-linejoin:round;opacity:.95}
.guide-map-wall-core{stroke:#111714;stroke-width:14;stroke-linecap:square;stroke-linejoin:round;filter:drop-shadow(0 0 3px rgba(93,255,158,.18))}
.guide-map-hatch line{stroke:#57e38f;stroke-width:8;stroke-linecap:round;stroke-dasharray:8 5;filter:drop-shadow(0 0 5px rgba(87,227,143,.56))}
.guide-map-hatch circle{fill:#8affb4;stroke:#092115;stroke-width:2}
.guide-map-marker path,.guide-map-marker rect,.guide-map-marker circle{vector-effect:non-scaling-stroke}
.guide-map-marker text{fill:#06100b;font-size:13px;font-weight:950}
.guide-map-marker-caption{fill:#d9ffea!important;font-size:10px!important;letter-spacing:1px}
.guide-map-objective path{fill:#ffd35b;stroke:#fff0b0;stroke-width:2;filter:drop-shadow(0 0 6px rgba(255,211,91,.62))}
.guide-map-sarcophagus rect{fill:#111714;stroke:#ffd35b;stroke-width:4;filter:drop-shadow(0 0 5px rgba(255,211,91,.28))}
.guide-map-sarcophagus path{stroke:#ffd35b;stroke-width:2}
.guide-map-sarcophagus text:not(.guide-map-marker-caption){fill:#ffd35b}
.guide-map-exit path{fill:#72ffad;stroke:#d8ffe8;stroke-width:2;filter:drop-shadow(0 0 7px rgba(97,255,173,.65))}
.guide-map-breach circle{fill:#101511;stroke:#ffce65;stroke-width:4}
.guide-map-breach path{stroke:#ffce65;stroke-width:4}
.guide-map-regroup circle{fill:rgba(97,255,173,.1);stroke:#75ffac;stroke-width:4;stroke-dasharray:7 5}
.guide-map-regroup path{stroke:#75ffac;stroke-width:4}
.guide-map-caption{fill:rgba(161,190,174,.58);font-size:9px;font-weight:800;letter-spacing:1.05px}
@media(max-width:620px){
  .guide-map-frame{margin-inline:-3px;border-radius:12px}
  .guide-map-svg{min-height:215px}
  .guide-map-zone-label{font-size:9px;letter-spacing:.65px}
  .guide-map-npo-label{font-size:9px}
  .guide-map-wall-shadow{stroke-width:18}
  .guide-map-wall-core{stroke-width:12}
  .guide-map-caption{font-size:8px}
}

/* v1.1.5: portrait-phone map scrolling */
.board-map.guide-map-frame{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
  touch-action:pan-x pan-y;
  scrollbar-width:thin;
  scrollbar-color:rgba(118,245,168,.55) rgba(5,12,8,.9);
}
.board-map.guide-map-frame::-webkit-scrollbar{height:9px}
.board-map.guide-map-frame::-webkit-scrollbar-track{background:rgba(5,12,8,.9);border-radius:999px}
.board-map.guide-map-frame::-webkit-scrollbar-thumb{background:rgba(118,245,168,.55);border-radius:999px;border:2px solid rgba(5,12,8,.9)}
@media(max-width:600px){
  html,
  body,
  .modal,
  .modal-inner,
  .board-map,
  .board-map.guide-map-frame,
  .phase-track{
    scrollbar-width:none;
    -ms-overflow-style:none;
  }
  html::-webkit-scrollbar,
  body::-webkit-scrollbar,
  .modal::-webkit-scrollbar,
  .modal-inner::-webkit-scrollbar,
  .board-map::-webkit-scrollbar,
  .board-map.guide-map-frame::-webkit-scrollbar,
  .phase-track::-webkit-scrollbar{
    display:none;
    width:0;
    height:0;
  }
}
.board-map.guide-map-frame .guide-map-svg{
  width:800px;
  min-width:800px;
  max-width:none;
  height:auto;
}
.map-scroll-hint{
  margin:-8px 2px 16px;
  color:var(--muted);
  font-size:.75rem;
  text-align:center;
}
@media(min-width:821px){
  .board-map.guide-map-frame .guide-map-svg{width:100%;min-width:0}
  .map-scroll-hint{display:none}
}

/* v1.1.6: official mission-map extracts rendered from the bundled GW PDF */
.official-map-card{
  margin:18px 0;
  overflow:hidden;
  border:1px solid rgba(118,245,168,.28);
  border-radius:18px;
  background:#07110c;
  box-shadow:var(--shadow);
}
.official-map-heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:16px;
  padding:14px 16px;
  border-bottom:1px solid rgba(118,245,168,.16);
  background:linear-gradient(135deg,rgba(19,54,36,.96),rgba(7,20,14,.96));
}
.official-map-heading span{
  display:block;
  color:var(--green);
  font-size:.66rem;
  font-weight:900;
  letter-spacing:.16em;
}
.official-map-heading strong{display:block;margin-top:4px;font-size:1rem}
.official-map-heading small{max-width:280px;color:var(--muted);font-size:.72rem;text-align:right;line-height:1.35}
.official-map-image{
  display:block;
  width:100%;
  height:auto;
  background:var(--bg);
}
@media(max-width:600px){
  .official-map-card{margin-inline:-2px;border-radius:13px}
  .official-map-heading{align-items:flex-start;flex-direction:column;gap:6px;padding:12px}
  .official-map-heading small{max-width:none;text-align:left}
}


/* v1.2.0: guided NPO AI activation */
.ai-wizard h3{font-size:clamp(1.35rem,5vw,2rem);margin:8px 0 8px;line-height:1.2}
.ai-progress-head{display:flex;justify-content:space-between;color:var(--muted);font-size:.68rem;font-weight:900;letter-spacing:.1em}
.ai-progress-head strong{color:var(--green)}
.ai-progress{height:6px;margin:8px 0 24px;border-radius:999px;background:#152b20;overflow:hidden}
.npo-activation-title{font-size:clamp(1.45rem,6.4vw,3.2rem);white-space:nowrap}
.npo-activation-meta{margin:0}
.npo-activation-card .big-action{margin-top:8px}
.skip-remaining-activations{width:100%;margin-top:10px}
.ai-progress span{display:block;height:100%;background:var(--green);transition:width .25s ease}
.ai-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0 8px}
.ai-choice{min-height:112px;border:1px solid var(--line);border-radius:18px;background:#08170f;color:var(--text);cursor:pointer;display:grid;place-items:center;align-content:center;gap:6px;font-size:1.05rem;font-weight:900}
.ai-choice span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;font-size:1.6rem}
.ai-choice.yes span{background:rgba(118,245,168,.18);color:var(--green);border:1px solid rgba(118,245,168,.45)}
.ai-choice.no span{background:rgba(255,127,131,.12);color:#ffb2b5;border:1px solid rgba(255,127,131,.32)}
.ai-choice:hover{border-color:var(--green);transform:translateY(-1px)}
.btn,.ai-choice{-webkit-tap-highlight-color:transparent}
.btn:focus,.ai-choice:focus{outline:none}
@media (hover:none) and (pointer:coarse){
  .btn:focus,.btn:focus-visible,.ai-choice:focus,.ai-choice:focus-visible{outline:none;box-shadow:none}
}
@media (hover:hover) and (pointer:fine){
  .btn:focus-visible,.ai-choice:focus-visible{outline:2px solid var(--green);outline-offset:2px}
  .ai-choice:focus-visible{border-color:var(--green);transform:translateY(-1px)}
}
.ai-result-title h2{margin:0 0 2px}.ai-result-title p{margin:0}
.activation-command,.target-command{padding:16px 17px;margin:13px 0;border-radius:15px;border:1px solid var(--line);background:#07140f}
.activation-command{border-color:rgba(118,245,168,.45);background:rgba(34,104,64,.17)}
.activation-command small,.target-command small{display:block;color:var(--muted);font-size:.67rem;font-weight:900;letter-spacing:.12em;margin-bottom:6px}
.activation-command strong,.target-command strong{display:block;line-height:1.45}
.decision-path{margin:18px 0;border:1px solid var(--line);border-radius:14px;padding:14px;background:#07140f}
.decision-path summary{cursor:pointer;color:var(--green);font-weight:900}.decision-path p,.decision-path li{color:var(--muted);line-height:1.45}.decision-path ol{padding-left:22px;margin-bottom:0}
.die.rolling{animation:dieTumble .18s linear infinite;filter:blur(.15px)}
.animated-roll .die:nth-child(2){animation-delay:-.05s}.animated-roll .die:nth-child(3){animation-delay:-.1s}.animated-roll .die:nth-child(4){animation-delay:-.15s}.animated-roll .die:nth-child(5){animation-delay:-.2s}
.animated-roll.settled .die{animation:dieSettle .28s ease-out}
.starting-npo-event{display:grid;justify-items:start;gap:5px;margin:16px 0;text-align:left}.starting-npo-event>small{color:var(--green);font-size:.72rem;font-weight:900;letter-spacing:.14em}.starting-npo-event .dice-row{margin:4px 0}.starting-npo-event .die{width:44px;height:44px;padding:7px}.starting-npo-result{display:grid;gap:3px}.starting-npo-result[hidden]{display:none}.starting-npo-result strong{font-size:1.25rem;color:var(--green)}.starting-npo-result span{color:var(--muted);font-weight:800}
.die.selectable{position:relative;appearance:none;color:inherit;cursor:pointer;touch-action:manipulation}.die.selectable.retained{outline:3px solid #fff;outline-offset:2px;box-shadow:inset 0 0 12px rgba(0,0,0,.3),0 0 0 5px rgba(118,245,168,.2)}.die.selectable.retained.crit{box-shadow:inset 0 0 12px rgba(0,0,0,.3),0 0 0 5px rgba(240,213,112,.2)}.die.selectable:disabled{cursor:not-allowed}.combat-dice-roller .btn{width:100%}.combat-dice-roller .dice-row{min-height:44px}.combat-dice-roller .combat-stage p{margin:6px 0;color:var(--muted)}
.dice-entry-dialog{max-height:calc(100dvh - 20px);overflow:auto;overscroll-behavior:contain}.dice-entry-inner{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.dice-entry-roller{margin-bottom:0;color:var(--green)!important;font-weight:850}.dice-entry-results{min-height:44px;align-content:flex-start}.dice-entry-progress{font-weight:850;color:var(--text)!important}.dice-entry-keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.dice-entry-keypad .btn{min-width:0;min-height:52px;font-size:1.15rem;touch-action:manipulation}.dice-entry-actions .btn{min-width:0}.dice-entry-actions #diceEntryCommit{flex:1 1 auto}
@media(max-width:390px){.dice-entry-dialog{width:calc(100% - 16px)}.dice-entry-inner{padding:18px 16px calc(18px + env(safe-area-inset-bottom))}.dice-entry-actions{gap:8px}.dice-entry-actions .btn{padding-inline:12px}}
.severe-applied{margin:6px 0 0;color:var(--green);font-size:.85rem;font-weight:750;line-height:1.4}
@keyframes dieTumble{0%{transform:rotate(-7deg) translateY(0)}50%{transform:rotate(8deg) translateY(-5px)}100%{transform:rotate(-7deg) translateY(0)}}
@keyframes dieSettle{0%{transform:scale(.82) rotate(-8deg)}70%{transform:scale(1.08) rotate(2deg)}100%{transform:scale(1) rotate(0)}}
@media(max-width:520px){.ai-choice-grid{gap:9px}.ai-choice{min-height:96px}}

/* v3.5.1 NPO activation question flow */
.npo-question-flow{display:grid;gap:9px;margin:18px 0}
.ai-result .npo-question-flow{margin-bottom:10px}
.npo-question-complete{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:48px;padding:8px 11px;border:1px solid rgba(118,245,168,.18);border-radius:12px;background:#07140f;color:var(--muted);font-size:.84rem;line-height:1.35}
.npo-question-complete strong{color:var(--text);font-size:.8rem}
.npo-question-active{padding:22px;border:1px solid rgba(118,245,168,.55);border-radius:18px;background:linear-gradient(145deg,rgba(29,82,51,.3),rgba(7,20,15,.98));box-shadow:0 12px 30px rgba(0,0,0,.25)}
.npo-question-active h3{margin:0 0 6px}.npo-question-active p{margin:0}.npo-question-active .ai-choice-grid{margin:20px 0 0}
.npo-question-active .ai-choice{min-height:54px;display:flex;justify-content:center;padding:12px}.npo-question-active .ai-choice.yes{background:rgba(34,104,64,.28);border-color:rgba(118,245,168,.45)}
.npo-movement-confirmation .npo-movement-cost{margin-top:10px;color:var(--green);font-size:.82rem;font-weight:800}.npo-movement-confirmation .npo-movement-confirm{grid-column:1 / -1;width:100%}
.npo-result-card{padding:18px;margin:13px 0;border:1px solid rgba(118,245,168,.55);border-radius:16px;background:linear-gradient(145deg,rgba(34,104,64,.25),rgba(7,20,15,.98))}
.npo-result-card small{display:block;color:var(--green);font-size:.67rem;font-weight:900;letter-spacing:.12em;margin-bottom:6px}.npo-result-card strong{display:block;line-height:1.45}.npo-result-card p{margin:7px 0 0;font-size:.88rem}
.npo-result-card>div{min-width:0;flex:1}.npo-target-priority{margin-top:15px;padding-top:15px;border-top:1px solid rgba(118,245,168,.22)}.npo-target-priority .target-selection{margin-top:13px}.npo-target-priority .target-selection label{letter-spacing:normal}
@media(max-width:520px){.modal{max-height:calc(100% - 24px)}.modal-inner{padding:18px}.npo-question-active{padding:18px}.npo-question-complete{grid-template-columns:minmax(0,1fr) auto;padding-inline:9px}.npo-question-active .ai-choice{min-height:52px}.npo-result-card{padding:15px}}
@media(prefers-reduced-motion:reduce){.ai-choice,.npo-question-active{transition:none}.modal{scroll-behavior:auto}}


/* v1.3.0 combat */
.combat-launch{margin:16px 0;padding:15px;border:1px solid var(--line);border-radius:14px;background:#07140f}.combat-launch p{margin:0 0 10px}.combat-launch small{display:block;color:var(--muted);margin-top:8px}.combat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.spinner{display:grid;grid-template-columns:minmax(0,1fr) 48px 48px;gap:7px}.spinner input{text-align:center;font-weight:900}.spinner button{border:1px solid #316a4b;border-radius:11px;background:#123523;color:var(--green);font-weight:950;font-size:1.25rem}.compact-check{margin:12px 0}.combat-results{min-height:92px;margin-top:16px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#06110d}.combat-results:empty{display:none}.combat-results>p:first-child{margin-top:0}.combat-stage{padding:12px;border:1px solid rgba(118,245,168,.18);border-radius:13px;background:#08150f;margin-bottom:12px}.combat-stage>small{display:block;color:var(--green);font-weight:900;letter-spacing:.11em}.combat-stage p{margin:5px 0 0}.damage-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}.damage-summary div{padding:11px;border:1px solid var(--line);border-radius:11px;background:#091912}.damage-summary small{display:block;color:var(--muted);font-size:.68rem}.damage-summary strong{display:block;color:var(--green);font-size:1.08rem;margin-top:4px}.die.save{background:#205f3d;border-color:#5de799}.cover-retain{display:inline-block;margin-top:5px;padding:5px 9px;border-radius:999px;background:#173a28;color:var(--green);font-size:.72rem;font-weight:850}@media(max-width:600px){.combat-grid{grid-template-columns:1fr}.damage-summary{grid-template-columns:repeat(2,1fr)}.spinner{grid-template-columns:minmax(0,1fr) 52px 52px}}


/* v1.3.2 Enemy activation grouping */
.activation-groups{display:grid;gap:14px;margin:18px 0}.activation-group{padding:14px;border:1px solid var(--line);border-radius:16px;background:#07140f}.activation-group-title{display:flex;align-items:center;gap:10px;margin-bottom:11px}.activation-group-title>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#123523;border:1px solid #316a4b;color:var(--green);font-weight:950}.activation-group-title strong{display:block}.activation-group-title small{display:block;color:var(--muted);margin-top:2px}.combat-action-card{border:1px solid rgba(118,245,168,.18);border-radius:13px;background:#091912;margin:9px 0;overflow:hidden}.combat-action-card>label{display:flex;align-items:flex-start;gap:11px;padding:13px;cursor:pointer}.combat-action-card input{width:21px;height:21px;accent-color:var(--green);flex:0 0 auto}.combat-action-card label span{display:block}.combat-action-card label strong{display:block}.combat-action-card label small{display:block;color:var(--muted);margin-top:3px}.inline-resolver{padding:0 13px 13px;border-top:1px solid rgba(118,245,168,.12);padding-top:12px}.inline-resolver .btn{width:100%}.inline-resolver small{display:block;color:var(--muted);margin-top:7px;line-height:1.4}.compact-actions{margin-top:9px}.pass-group{padding:0;border:0;background:transparent}.pass-group .toggle-list label{background:#07140f}@media(max-width:600px){.activation-group{padding:11px}.activation-group-title{margin-bottom:8px}}


/* v1.3.3 setup and combat refinements */
.setup-bulk-row{display:flex;justify-content:flex-end;margin:14px 0 4px}
.setup-bulk-row .btn{min-width:120px}
.combat-fieldset{border:0;padding:0;margin:0;min-width:0}
.combat-fieldset:disabled{opacity:.48}
.combat-fieldset:disabled .wizard-actions .btn.ghost{opacity:1}
.combat-fieldset-note{color:var(--muted);line-height:1.5;margin:16px 0 0}
@media(max-width:600px){
  .setup-bulk-row .btn{width:100%}
}


/* v1.3.4: guided-flow navigation */
.header-actions{display:flex;align-items:center;gap:10px}
.narration-speaker-btn{display:grid;place-items:center;flex:0 0 auto;width:40px;height:40px;padding:8px;border:1px solid var(--line);border-radius:11px;background:#0a1812;color:var(--green);cursor:pointer}.narration-speaker-btn:hover,.narration-speaker-btn:focus-visible{border-color:var(--green);outline-color:var(--green)}.narration-speaker-btn.is-muted{color:var(--muted)}.narration-speaker-btn svg{width:24px;height:24px}.narration-speaker-btn .narration-icon-enabled{fill:currentColor}.narration-speaker-btn svg path+path{fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}.narration-speaker-btn svg[hidden]{display:none}
.operative-status-toggle{display:grid;place-items:center;width:38px;height:38px;padding:7px;border:1px solid var(--line);border-radius:11px;background:#0a1812;color:var(--muted);cursor:pointer}
.operative-status-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8}
.operative-status-toggle[aria-pressed="false"]{border-color:var(--line);background:transparent;color:var(--line);opacity:1;box-shadow:none}
.operative-status-toggle[aria-pressed="false"]:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.operative-status-toggle[aria-pressed="true"]{border-color:var(--green);background:rgba(118,245,168,.12);color:var(--green);opacity:1;box-shadow:0 0 0 2px rgba(118,245,168,.1)}
.operative-status-toggle[hidden]{display:none}
.header-menu-btn{
  border:1px solid var(--line);
  border-radius:11px;
  background:#123523;
  color:var(--text);
  padding:9px 12px;
  font-weight:850;
  cursor:pointer;
}
.header-menu-btn:hover,.header-menu-btn:focus-visible{border-color:var(--green);color:var(--green)}
.reference-return{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
  padding:11px 13px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#08150f;
}
.reference-return small{color:var(--muted);line-height:1.35}
.game-menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:18px 0}
.game-menu-grid .btn:first-child{grid-column:1/-1}
.ambient-toggle-row{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;padding:8px 12px;border:1px solid var(--line);border-radius:13px;background:#08150f;font-weight:850}
.ambient-toggle{display:flex;align-items:center;gap:9px;min-height:40px;padding:4px;border:0;background:transparent;color:var(--muted);font-weight:850;cursor:pointer;touch-action:manipulation}
.ambient-toggle-track{position:relative;width:44px;height:24px;border:1px solid #42604f;border-radius:999px;background:#14251c;transition:background .15s,border-color .15s}
.ambient-toggle-track span{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--muted);transition:transform .15s,background .15s}
.ambient-toggle[aria-checked="true"]{color:var(--green)}
.ambient-toggle[aria-checked="true"] .ambient-toggle-track{border-color:var(--green);background:#173a28}
.ambient-toggle[aria-checked="true"] .ambient-toggle-track span{transform:translateX(20px);background:var(--green)}
.ambient-toggle:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:8px}
.game-volume-row{grid-column:1/-1;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:#08150f}.game-volume-row label{display:block;margin-bottom:6px;font-weight:850}.game-volume-control{display:grid;grid-template-columns:28px minmax(0,1fr) 28px;align-items:center;gap:8px}.game-volume-icon{width:24px;height:24px;color:var(--muted);fill:currentColor}.game-volume-icon path+path{fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}.game-volume-control input[type="range"]{width:100%;height:44px;margin:0;appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer;touch-action:pan-y}.game-volume-control input[type="range"]::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:linear-gradient(to right,var(--green) 0 var(--volume-percent),#294337 var(--volume-percent) 100%)}.game-volume-control input[type="range"]::-moz-range-track{height:6px;border:0;border-radius:999px;background:linear-gradient(to right,var(--green) 0 var(--volume-percent),#294337 var(--volume-percent) 100%)}.game-volume-control input[type="range"]::-webkit-slider-thumb{width:24px;height:24px;margin-top:-9px;border:2px solid #07140f;border-radius:50%;appearance:none;-webkit-appearance:none;background:var(--green);box-shadow:0 0 0 1px var(--green)}.game-volume-control input[type="range"]::-moz-range-thumb{width:24px;height:24px;border:2px solid #07140f;border-radius:50%;background:var(--green);box-shadow:0 0 0 1px var(--green)}.game-volume-control input[type="range"]:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:8px}
.game-menu-session{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
  padding-top:15px;
  border-top:1px solid var(--line);
}
.game-menu-session .danger{grid-column:1/-1}
.about-intro{margin-bottom:18px}
.about-intro p{line-height:1.6}
.about-app-name{margin:0;color:var(--green);font-size:1.3rem;font-weight:900}
.about-content{display:grid;gap:14px;max-width:72ch;user-select:text}
.about-content section{padding:16px;border:1px solid var(--line);border-radius:14px;background:#08150f}
.about-content h3{margin:0 0 10px;color:var(--green);font-size:1rem;letter-spacing:.06em;text-transform:uppercase}
.about-content p{margin:0 0 12px;line-height:1.65}
.about-content p:last-child{margin-bottom:0}
.about-content .external-link{display:inline-flex;width:auto;align-items:center;gap:6px;margin-top:4px;text-decoration:none}
.about-footer{position:sticky;bottom:0;padding-top:14px;background:linear-gradient(transparent,#07140f 28%)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:600px){
  .app-header{gap:8px}
  .brand{min-width:0}.brand>div{min-width:0}.brand h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .header-actions{gap:6px}
  .header-menu-btn{padding:8px 9px;font-size:.72rem}
  .version{display:none}
  .reference-return{align-items:stretch;flex-direction:column}
  .reference-return .btn{width:100%}
  .game-menu-grid,.game-menu-session{grid-template-columns:1fr}
  .game-menu-grid .btn:first-child,.game-menu-session .danger{grid-column:auto}
}

/* v8.6.47 optional large-screen operative status */
.game-workspace{position:relative;min-width:0}
.operative-status-panel[hidden]{display:none}
@media (min-width:900px) and (orientation:landscape), (min-width:900px) and (hover:hover) and (pointer:fine){
  .game-workspace.operative-status-visible{display:grid;grid-template-columns:clamp(360px,28vw,540px) minmax(0,1fr);align-items:start;max-width:1600px;margin:0 auto}
  .game-workspace.operative-status-visible .app-shell{width:100%;min-width:0;margin:0;max-width:1000px}
  .operative-status-panel{position:sticky;top:var(--app-header-height);display:grid;grid-template-rows:minmax(0,var(--status-npo-height,1fr)) minmax(0,var(--status-player-height,1fr));height:calc(100dvh - var(--app-header-height));max-height:calc(100dvh - var(--app-header-height));margin:0 0 0 18px;border:1px solid var(--line);border-radius:0 0 18px 18px;background:linear-gradient(145deg,rgba(11,27,20,.97),rgba(6,17,13,.97));box-shadow:var(--shadow);overflow:hidden}
  .operative-status-section{display:flex;min-height:0;flex-direction:column;padding:12px}
  .operative-status-section+.operative-status-section{border-top:1px solid var(--line)}
  .operative-status-section h2{flex:0 0 auto;margin:0 0 8px;color:var(--green);font-size:clamp(.72rem,.9vw,.86rem);letter-spacing:.13em;text-transform:uppercase}
  .operative-status-list{display:grid;flex:1 1 auto;grid-template-columns:minmax(0,1fr);align-content:start;min-height:0;gap:5px;overflow:hidden}
  .operative-status-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:2px 8px;min-width:0;padding:5px 7px;border:1px solid var(--line);border-radius:8px;background:rgba(7,20,15,.82);font-size:clamp(.69rem,.82vw,.78rem);line-height:1.18}
  .operative-status-row>strong{display:block;min-width:0;overflow-wrap:break-word;white-space:normal;font-size:clamp(.72rem,.88vw,.82rem);letter-spacing:.025em;text-transform:uppercase}
  .operative-status-type{min-width:0;color:var(--muted);overflow-wrap:break-word;white-space:normal}
  .operative-status-wounds{align-self:start;min-width:4.7em;color:var(--text);text-align:right;font-size:clamp(1rem,1.35vw,1.22rem);font-weight:950;font-variant-numeric:tabular-nums;letter-spacing:.01em;white-space:nowrap}
  .operative-status-value{align-self:end;text-align:right;font-size:.68rem;font-weight:900;letter-spacing:.035em;white-space:nowrap}
  .operative-status-row.active{border-color:var(--green);background:rgba(53,202,120,.13)}
  .operative-status-row.wounded{border:2px solid #ffd35bb0}
  .operative-status-row.active .operative-status-value{color:var(--green)}
  .operative-status-row.eliminated{background:rgba(125,25,25,.2);color:var(--danger);opacity:.72}
  .operative-status-row.eliminated>strong,.operative-status-row.eliminated .operative-status-value{color:var(--danger)}
  .operative-status-section.two-column .operative-status-list{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(var(--status-column-rows),auto);grid-auto-flow:column;column-gap:5px}
  .operative-status-section.two-column .operative-status-row{column-gap:5px}
  .operative-status-section.two-column .operative-status-wounds{font-size:1rem}
  .operative-status-section.two-column .operative-status-value{font-size:.65rem}
  .operative-status-section.extra-compact{padding-block:8px}
  .operative-status-section.extra-compact .operative-status-list{gap:2px}
  .operative-status-section.extra-compact .operative-status-row{padding-block:3px;line-height:1.1}
  .operative-status-section.extra-compact .operative-status-wounds{font-size:1rem}
  .operative-status-section.allow-scroll .operative-status-list{overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--green2) transparent}
}
@media (min-width:900px) and (max-width:1100px) and (orientation:landscape), (min-width:900px) and (max-width:1100px) and (hover:hover) and (pointer:fine){
  .game-workspace.operative-status-visible{grid-template-columns:clamp(300px,34vw,360px) minmax(0,1fr)}
  .operative-status-panel{margin-left:12px}
  .game-workspace.operative-status-visible .app-shell{padding-inline:12px}
}
@media (max-width:899px), (orientation:portrait) and (hover:none), (orientation:portrait) and (pointer:coarse){.operative-status-toggle,.operative-status-panel{display:none!important}}


/* v1.3.5b: Player operative activation indicators */
.tracker-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.tracker-section-heading>small{display:block;color:var(--muted);font-weight:800}
.activation-legend{display:flex;flex-wrap:wrap;gap:12px;color:var(--muted);font-size:.72rem;font-weight:750}
.activation-legend span{display:inline-flex;align-items:center;gap:6px}
.legend-dot{display:inline-block;width:12px;height:12px;border-radius:50%;border:2px solid #788981;background:transparent}
.legend-dot.activated{border-color:var(--green);background:var(--green)}
.player-dots{display:flex;flex-wrap:wrap;align-items:center;gap:10px;min-width:0}
.player-operative-indicator{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 42px;width:42px;height:42px;border-radius:50%;box-sizing:border-box;font-weight:900;line-height:1;transition:transform .15s ease,border-color .15s ease,background .15s ease}
.player-operative-indicator .operative-number{font-size:.86rem}
.player-operative-indicator.remaining{border:2px solid #75877e;background:#0b1712;color:#e8f2ec}
.player-operative-indicator.activated{border:2px solid var(--green);background:rgba(92,245,157,.16);color:#fff;box-shadow:0 0 0 2px rgba(92,245,157,.08) inset}
.activation-check{position:absolute;right:-4px;top:-5px;display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--green);color:#06110b;border:2px solid #07140f;font-size:.7rem;font-weight:950}
@media(max-width:600px){
  .tracker-section-heading{align-items:flex-start;flex-direction:column;gap:7px}
  .activation-legend{gap:10px}
  .player-dots{gap:8px}
  .player-operative-indicator{flex-basis:38px;width:38px;height:38px}
}


/* v1.3.7 deployment list polish */
.deployment-item{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
}
.deployment-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:3px;
}
.deployment-name{
  display:block;
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  line-height:1.2;
}
.deployment-type{
  display:block;
  color:var(--muted);
  line-height:1.25;
}
.deployment-place-btn{
  width:126px;
  min-width:126px;
  flex:0 0 126px;
  white-space:nowrap;
  text-align:center;
}
@media(max-width:600px){
  .deployment-item{
    grid-template-columns:minmax(0,1fr) 118px;
    gap:10px;
  }
  .deployment-place-btn{
    width:118px;
    min-width:118px;
    padding-left:8px;
    padding-right:8px;
  }
  .deployment-name{
    font-size:.95rem;
  }
  .deployment-type{
    font-size:.78rem;
  }
}


/* v1.3.7b mobile step indicator */
.step-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}
.step-header > :first-child{
  min-width:0;
  flex:1 1 auto;
}
.step-indicator,
.step-progress,
.step-count{
  white-space:nowrap;
  flex:0 0 auto;
}


/* v1.3.9 alternating activation flow */
.next-activation-banner{
  display:grid;
  gap:4px;
  margin:0 0 14px;
  padding:14px 16px;
  border:1px solid var(--green);
  border-radius:15px;
  background:linear-gradient(135deg,#091911,#123624);
  box-shadow:0 0 20px rgba(90,255,145,.10);
}
.next-activation-banner small{
  color:var(--muted);
  font-weight:850;
  letter-spacing:.12em;
}
.next-activation-banner strong{
  color:var(--green);
  font-size:1.55rem;
  line-height:1.1;
}
.next-activation-banner span{color:var(--text)}

html,body{touch-action:manipulation;-webkit-text-size-adjust:100%;}
button,.btn,input,select,label,summary,a{touch-action:manipulation;}


/* v1.3.9d transactional Player activations */
#playerActivationControls.inactive{opacity:.48;pointer-events:none}
.pending-attack-summary{
  margin:8px 0 0 30px;
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#08150f;
  color:var(--muted);
  font-size:.86rem;
}
.pending-attack-summary strong{color:var(--green)}


/* v1.3.9e APL enforcement */
.activation-apl-bar{
  display:grid;
  grid-template-columns:minmax(120px,180px) 1fr;
  gap:12px;
  align-items:end;
  margin:0 0 12px;
}
.apl-field{margin:0}
.ap-usage{
  min-height:54px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#08150f;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.ap-usage small{color:var(--muted);font-weight:800}
.ap-usage strong{font-size:1.2rem;color:var(--green)}
.player-action-list label span{
  display:flex;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
.player-action-list label span small{
  color:var(--muted);
  white-space:nowrap;
}
.player-action-list input:disabled + span,
.player-action-list input:disabled ~ span{
  opacity:.42;
}
@media(max-width:600px){
  .activation-apl-bar{grid-template-columns:1fr}
}


/* v1.4.0 onboarding and AI instructions */
.help-section{
  margin:0 0 16px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:16px;
  background:linear-gradient(145deg,#08150f,#0d2117);
}
.help-section h3{margin:0 0 10px;color:var(--green)}
.help-section p{margin:0;color:var(--muted);line-height:1.55}
.guide-flow-list{display:grid;gap:10px;margin:0;padding:0;list-style:none;counter-reset:guideflow}
.guide-flow-list li{display:grid;grid-template-columns:34px minmax(0,1fr);column-gap:10px;row-gap:3px;align-items:start}
.guide-flow-list li:before{counter-increment:guideflow;content:counter(guideflow);display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--green);border-radius:50%;color:var(--green);font-weight:900;grid-column:1;grid-row:1 / span 2}
.guide-flow-list li>strong,.guide-flow-list li>span{display:block;grid-column:2;min-width:0;width:100%}
.guide-flow-list li>strong{grid-row:1}
.guide-flow-list li>span{grid-row:2;margin-top:0;color:var(--muted);line-height:1.4;overflow-wrap:anywhere}
.ai-step-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ai-step-grid article{display:grid;grid-template-columns:34px 1fr;gap:10px;padding:12px;border:1px solid var(--line);border-radius:13px;background:#07120d}
.ai-step-grid article>span{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#123d27;color:var(--green);font-weight:900}
.ai-step-grid strong{display:block;margin-bottom:4px}
.ai-step-grid p{font-size:.9rem}
.golden-rule{display:grid;gap:4px;margin-top:12px;padding:12px;border-left:4px solid var(--green);border-radius:10px;background:#102a1c}
.golden-rule strong{color:var(--green);text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}
.quick-reference-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.quick-reference-grid article{padding:12px;border:1px solid var(--line);border-radius:12px;background:#07120d}
.quick-reference-grid h4{margin:0 0 5px;color:var(--text)}
.quick-reference-grid p{font-size:.88rem}
@media(max-width:700px){
  .ai-step-grid,.quick-reference-grid{grid-template-columns:1fr}
  .help-section{padding:14px}
}


/* v1.4.0c: single-scroll How It Works dialog on iOS */
body.modal-open{
  overflow:hidden;
  overscroll-behavior:none;
}
.modal.help-modal{
  width:min(760px,calc(100% - 20px));
  max-width:760px;
  max-height:calc(100dvh - max(20px,env(safe-area-inset-top)) - max(20px,env(safe-area-inset-bottom)));
  overflow:hidden;
  padding:0;
}
.modal.help-modal .modal-inner{
  width:100%;
  max-height:inherit;
  overflow-x:hidden;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  touch-action:pan-y;
  padding-bottom:calc(24px + env(safe-area-inset-bottom));
}
.modal.help-modal .wizard-actions{
  position:static;
}
@supports not (height:100dvh){
  .modal.help-modal{
    max-height:calc(100vh - 40px);
  }
}


/* v1.4.0d */
body.modal-open{overflow:initial!important;overscroll-behavior:auto!important;}
.modal.help-modal{max-height:none!important;overflow:visible!important;}
.modal{
max-height:calc(100dvh - 20px);
overflow-y:auto;
overflow-x:hidden;
-webkit-overflow-scrolling:touch;
}
.modal .modal-inner{
max-height:none!important;
overflow:visible!important;
}
@supports not (height:100dvh){.modal{max-height:calc(100vh - 20px);}}


/* v1.4.1 dedicated How It Works screen */
.how-it-works-screen{
  width:100%;
  max-width:900px;
  margin:0 auto;
}
.screen-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:18px;
}
.btn.compact{
  width:auto;
  min-height:42px;
  padding:9px 14px;
}
.screen-version{
  color:var(--muted);
  font-size:.8rem;
  font-weight:850;
  letter-spacing:.08em;
}
.screen-heading{
  margin-bottom:18px;
}
.screen-heading h2{
  margin:4px 0 8px;
  font-size:clamp(2rem,7vw,3.2rem);
}
.screen-heading>p:last-child{
  max-width:760px;
  margin:0;
  color:var(--muted);
  line-height:1.55;
}
.how-it-works-content{
  width:100%;
  overflow:visible;
}
.how-it-works-footer{
  margin-top:6px;
  padding-bottom:calc(18px + env(safe-area-inset-bottom));
}

/* The dedicated screen uses normal document scrolling only. */
body.modal-open{
  overflow:auto!important;
  overscroll-behavior:auto!important;
}
.modal.help-modal,
.modal.help-modal .modal-inner{
  max-height:none!important;
  overflow:visible!important;
}

@media(max-width:600px){
  .how-it-works-screen{padding-top:2px}
  .screen-toolbar{margin-bottom:14px}
  .screen-heading{margin-bottom:14px}
}


/* v1.4.3 Strategy Phase explanation */
.strategy-intro{
  margin:0 0 12px;
  color:var(--muted);
  line-height:1.5;
}
.strategy-progress{margin-bottom:10px;color:var(--green);font-size:.72rem;font-weight:900;letter-spacing:.12em}
.strategy-progress-bar{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;max-width:220px;margin-top:9px}
.strategy-progress-bar i{display:block;height:4px;border-radius:999px;background:var(--line)}
.strategy-progress-bar i.complete{background:var(--green)}
.strategy-navigation{display:grid;grid-template-columns:1fr;gap:12px;align-items:stretch;margin-top:24px;padding-bottom:env(safe-area-inset-bottom)}
.strategy-navigation.two-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.strategy-navigation .btn{width:100%}
.strategy-empty-message{margin:18px 0!important}
.strategy-warning strong{color:#f2bf72}
@media(max-width:600px){.strategy-navigation.two-actions .btn{padding-inline:10px}.strategy-step h2{font-size:clamp(1.7rem,8vw,2.35rem)}}
.strategy-phase-guide{
  margin:0 0 18px;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(255,255,255,.035);
}
.strategy-phase-guide ol{
  margin:0 0 12px;
  padding-left:1.3rem;
}
.strategy-phase-guide li{
  margin:0 0 7px;
  line-height:1.45;
}
.strategy-phase-guide p{
  margin:0;
  line-height:1.45;
}
.strategy-phase-guide h3{margin:0 0 12px;font-size:1rem}


/* v1.5.0 Turning Point summaries, Grade milestones, and Player casualties */
.grade-milestone{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:0 0 14px;
  padding:16px;
  border:1px solid #d49b38;
  border-radius:16px;
  background:linear-gradient(135deg,rgba(212,155,56,.2),rgba(77,24,12,.38));
  box-shadow:0 0 24px rgba(212,155,56,.12);
}
.grade-milestone>div{display:grid;gap:3px;min-width:0}
.grade-milestone small{font-weight:900;letter-spacing:.12em;color:#efc36d}
.grade-milestone h2{margin:0;font-size:1.15rem}
.grade-milestone span{color:var(--muted)}
.grade-gameplay-changes{margin-top:10px}
.grade-gameplay-changes h3{margin:0 0 6px;font-size:.8rem;letter-spacing:.12em}
.grade-gameplay-changes ul{margin:0;padding-left:1.2rem}
.grade-gameplay-changes li{margin-top:4px;line-height:1.35}
.turn-summary-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:14px 0 22px;
}
.turn-summary-grid>div{
  display:grid;
  gap:3px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:13px;
  background:rgba(255,255,255,.035);
}
.turn-summary-grid small{
  color:var(--muted);
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.07em;
}
.turn-summary-grid strong{font-size:1.35rem}
.turn-summary-grid span{color:var(--muted);font-size:.85rem}
.player-operative-indicator{
  appearance:none;
  -webkit-appearance:none;
  cursor:pointer;
  font:inherit;
}
.player-operative-indicator.casualty{
  opacity:.58;
  filter:grayscale(1);
  border-color:#8d5555;
  background:#251313;
  color:#dca4a4;
  text-decoration:line-through;
}
.casualty-mark{
  position:absolute;
  right:-3px;
  top:-5px;
  display:grid;
  place-items:center;
  width:18px;
  height:18px;
  border-radius:50%;
  background:#8e2e2e;
  color:white;
  font-size:.85rem;
  font-weight:900;
}
.legend-dot.casualty{background:#8e2e2e}
.compact-copy{margin:6px 0 10px;font-size:.85rem}
.btn.danger{
  background:#8e2e2e;
  border-color:#b74747;
  color:#fff;
}
@media(max-width:600px){
  .grade-milestone{align-items:flex-start;flex-direction:column}
  .turn-summary-grid{grid-template-columns:1fr 1fr}
}

/* v2.0.0 Player roster selection */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.player-roster-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin:12px 0 18px}
.player-roster-card{appearance:none;text-align:left;color:var(--text);padding:15px;border:1px solid var(--line);border-radius:16px;background:#091912;cursor:pointer}
.player-roster-card:not(.dead):hover:not(:disabled){border-color:#3b7755}
.player-roster-card.selected{border-color:var(--green);background:#102a1d;box-shadow:0 0 0 2px rgba(118,245,168,.12)}
.player-roster-card:disabled{opacity:.42;cursor:not-allowed}
.player-roster-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.player-roster-card-head strong{display:block;font-size:1.05rem}
.player-roster-card-head small{display:block;margin-top:4px;color:var(--muted)}
.player-roster-card-head>span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#173a28;color:var(--green);font-weight:900}
.operative-stat-line{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:13px}
.operative-stat-line span{padding:8px 5px;text-align:center;border:1px solid var(--line);border-radius:9px;background:#07140f}
.operative-stat-line small{display:block;color:var(--muted);font-size:.58rem;letter-spacing:.05em}
.operative-stat-line b{display:block;margin-top:2px}
.player-operative-list{display:grid;gap:8px}
.player-operative-row{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:#091912;color:var(--text);cursor:pointer}
.player-operative-row span strong,.player-operative-row span small{display:block}
.player-operative-row span small{color:var(--muted);margin-top:2px}
.player-operative-row>b{font-size:.72rem;letter-spacing:.06em}
.player-operative-row.remaining>b{color:#dce7e0}
.player-operative-row.activated{border-color:var(--green);background:rgba(92,245,157,.1)}
.player-operative-row.activated>b{color:var(--green)}
.player-operative-row.casualty{opacity:.55;filter:grayscale(1);text-decoration:line-through}
.player-operative-row.casualty>b{color:#dca4a4}
@media(max-width:600px){.player-roster-grid{grid-template-columns:1fr}}

/* v2.0.1 Unified activation tracker cards */
.tracker-operative-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:7px;
}
.tracker-operative{
  container-type:inline-size;
  min-width:0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#07140f;
  color:var(--text);
  font:inherit;
  font-size:.76rem;
  text-align:left;
}
button.tracker-operative{
  width:100%;
  cursor:pointer;
}
button.tracker-operative:hover{
  border-color:#3b7755;
}
.tracker-operative>span:first-child{
  flex:1 1 auto;
  min-width:0;
  overflow-wrap:anywhere;
}
.tracker-operative-status{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:5px;
  white-space:nowrap;
}
.tracker-operative strong{
  flex:0 0 auto;
  color:var(--green);
  font-size:.68rem;
}
.tracker-operative.activated,
.tracker-operative.active{
  border-color:var(--green);
  background:rgba(92,245,157,.09);
}
.tracker-operative.dormant{
  border-color:#40584a;
  background:rgba(80,104,89,.12);
  color:#b5c4ba;
}
.tracker-operative.dormant strong,
.tracker-operative.reserve strong{
  color:var(--muted);
}
.tracker-operative.reserve{
  border-color:#34473c;
  background:#0a1711;
  color:var(--muted);
}
.tracker-operative.spent{
  opacity:.55;
}
.tracker-operative.spent strong{
  color:var(--muted);
}
.tracker-operative.eliminated,
.operative-card.dead,
.npo-roster-card.dead,
.operative-status-row.eliminated{
  border:2px solid var(--danger);
  border-radius:10px;
}
.tracker-operative.eliminated{
  background:rgba(125,25,25,.2);
  color:var(--danger);
}
.tracker-operative.eliminated strong{
  color:var(--danger);
}
@media(max-width:600px){
  .tracker-operative-grid{grid-template-columns:1fr}
}

/* v2.1.0 manifest-driven Kill Team selection */
.team-select-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:12px;
  margin:8px 0 18px;
}
.team-select-card{
  appearance:none;
  width:100%;
  padding:17px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#091912;
  color:var(--text);
  text-align:left;
  cursor:pointer;
}
.team-select-card:hover{border-color:#3b7755;background:#10251a}
.team-select-card.selected{border-color:var(--green);background:#102a1d;box-shadow:0 0 0 2px rgba(118,245,168,.12)}
.team-select-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.team-select-card-head>span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#173a28;color:var(--green);font-weight:900}
.team-select-card strong,.team-select-card small{display:block}
.team-select-card strong{font-size:1.08rem}
.team-select-card small{margin-top:4px;color:var(--green);font-weight:800}
.team-select-card p{margin:12px 0 0;color:var(--muted)}

/* v3.2.0: compact activation details */
.activation-details summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}
.activation-details summary::-webkit-details-marker{display:none}
.activation-details summary h3{margin:3px 0}
.activation-details summary:after{content:'⌄';flex:0 0 auto;color:var(--green);font-size:1.25rem;font-weight:900;transition:transform .2s}
.activation-details[open] summary:after{transform:rotate(180deg)}
.activation-details-content{padding-top:2px}
@media(max-width:600px){.activation-details summary{align-items:flex-start}}

/* v7.5.5: compact active Tomb World event reminders */
.active-events-panel{padding:0;overflow:hidden}
.active-events-details{min-width:0}
.active-events-summary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 12px;min-height:44px;padding:10px 18px;cursor:pointer;list-style:none;color:var(--green);font-size:.7rem;font-weight:800;letter-spacing:.17em}
.active-events-summary::-webkit-details-marker{display:none}
.active-events-summary::after{content:'⌄';flex:0 0 auto;color:var(--green);font-size:1.25rem;font-weight:900;line-height:1;transition:transform .2s}
.active-events-details[open] .active-events-summary{border-bottom:1px solid var(--line)}
.active-events-details[open] .active-events-summary::after{transform:rotate(180deg)}
.active-events-summary>span:first-child{min-width:0;overflow-wrap:anywhere}
.active-events-count{margin-left:auto;color:var(--muted);white-space:nowrap;letter-spacing:.08em}
.active-events-content{padding:2px 18px 1px}
.active-events-content .summary-box{margin:14px 0;padding:15px}

/* v2.2.0 data-driven mission rules */
.mission-rules{display:grid;gap:10px}
.mission-rule{padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:#091912}
.mission-rule strong,.mission-rule small{display:block}
.mission-rule small{margin-top:3px;color:var(--green);font-weight:800}
.mission-rule p{margin:8px 0 0;color:var(--muted)}

/* v2.2.5: aligned portrait HUD labels and on-demand Threat controls */
.hud .hud-cell{appearance:none;border:0;border-radius:0;background:#0a1912;color:inherit;padding:10px 8px;text-align:center;cursor:pointer}
.hud .hud-cell:focus-visible{outline:2px solid var(--green);outline-offset:-3px}
.hud .hud-threat[aria-expanded="true"]{background:#102a1d}
.portrait-break{display:none}
@media (max-width:600px) and (orientation:portrait){
  .portrait-break{display:inline}
  .hud small{line-height:1.1}
  .hud .hud-cell{padding:8px 3px}
}

/* v9.2.55: dynamically shared HUD label and value rows */
.hud{grid-template-rows:auto auto;column-gap:1px;row-gap:0}
.hud>.hud-cell{display:grid;grid-row:span 2;grid-template-rows:subgrid;align-items:start;cursor:default}
.hud>button.hud-cell{cursor:pointer}


/* v2.2.8: read-only Player defense profile */
.defense-profile{
  margin:16px 0;
  padding:16px;
  border:1px solid var(--line);
  border-radius:15px;
  background:rgba(6,16,12,.42);
}
.defense-profile .eyebrow{margin:0 0 12px}
.defense-profile-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.defense-profile-grid>div{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(6,16,12,.5);
}
.defense-profile-grid small{color:var(--muted)}
.defense-profile-grid strong{font-size:1.2rem}


/* v2.3.0: roster-driven Player attack profile */
.attack-profile{margin-top:14px}
.attack-profile .defense-profile-grid>div:last-child:nth-child(odd){
  grid-column:1 / -1;
}


/* v2.3.4 attack dialog refinements */
.readonly-select{
  min-height:52px;
  display:flex;
  align-items:center;
  padding:0 16px;
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(6,16,12,.5);
  color:var(--text);
  font-weight:700;
}
.npo-defense-profile{margin-top:12px}
.defense-cover-row{
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid var(--line);
}


/* v2.3.5: simplified Player activation AP display */
#playerActivationControls{
  border:0;
  outline:0;
  padding-inline:0;
}
.activation-apl-bar.ap-usage-only{
  display:block;
}
.activation-apl-bar.ap-usage-only .ap-usage{
  width:100%;
}


/* v2.3.7: iOS Safari modal/select focus reliability */
.modal{
  -webkit-overflow-scrolling:touch;
}
.modal:focus{
  outline:none;
}
#playerOperativeSelect{
  touch-action:manipulation;
  -webkit-user-select:auto;
  user-select:auto;
}


/* Make eliminations unmistakable on activation confirmation. */
.elimination-banner{
  display:flex;
  align-items:center;
  gap:14px;
  margin:18px 0;
  padding:16px 18px;
  border:2px solid var(--danger,#ef6b6b);
  border-radius:16px;
  background:rgba(150,30,30,.22);
}
.elimination-banner .elimination-icon{
  font-size:2rem;
  line-height:1;
}
.elimination-banner small{
  display:block;
  font-weight:900;
  letter-spacing:.08em;
  color:var(--danger,#ff7b7b);
}
.elimination-banner strong{
  display:block;
  margin-top:3px;
  font-size:1.12rem;
  color:var(--text);
}
.attack-confirmation-card{
  margin:14px 0;
  padding:16px 18px;
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(16,51,34,.45);
}
.attack-confirmation-card.eliminated{
  border:2px solid var(--danger,#ef6b6b);
  background:rgba(125,25,25,.2);
}
.attack-confirmation-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.attack-confirmation-heading>small{
  font-weight:900;
  letter-spacing:.08em;
  color:var(--muted);
}
.eliminated-badge{
  display:inline-flex;
  align-items:center;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(190,40,40,.3);
  color:var(--danger,#ff7b7b);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.04em;
}
.attack-confirmation-target{
  display:block;
  margin-top:10px;
  font-size:1.18rem;
}
.attack-confirmation-stats{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:14px;
}
.attack-confirmation-stats>div{
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:12px;
}
.attack-confirmation-stats small{
  display:block;
  color:var(--muted);
}
.attack-confirmation-stats strong{
  display:block;
  margin-top:3px;
}
.zero-wounds{
  color:var(--danger,#ff7b7b);
  font-size:1.15em;
}


/* v2.3.9: low-interruption combat flow */
.compact-elimination-notice{
  display:grid;
  gap:4px;
  margin:12px 0 16px;
  padding:13px 15px;
  border:1px solid var(--danger,#ef6b6b);
  border-radius:14px;
  background:rgba(125,25,25,.18);
}
.compact-elimination-notice strong{
  color:var(--danger,#ff7b7b);
}
.compact-elimination-notice span{
  color:var(--muted);
  font-size:.92rem;
}


/* v2.4.0 roster consistency and contextual help */
.npo-roster-card{position:relative;display:flex;flex-direction:column;overflow:hidden;cursor:default}
.npo-roster-grid>.npo-roster-card.dead::after{content:"";position:absolute;z-index:2;top:3.5rem;left:50%;width:7.5rem;height:7.5rem;transform:translateX(-50%);background:url("Assets/Images/eliminated-necron-skull.png") center/contain no-repeat;filter:brightness(1.15) contrast(1.1);opacity:.55;pointer-events:none}
.npo-roster-grid>.npo-roster-card.dead .npo-profile-details>summary{color:var(--muted)}
.npo-roster-card:not(.dead):hover{border-color:var(--line)}
.operative-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-width:0}
.operative-identity{min-width:0;overflow-wrap:anywhere}
.operative-identity h4,.operative-identity strong{display:block;margin:0;font-size:1.05rem}
.operative-identity p,.operative-identity small{display:block;margin:4px 0 0;color:var(--muted)}
.operative-status-badge{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;min-width:max-content;padding:5px 9px;border-radius:999px;font-size:.66rem;font-weight:900;letter-spacing:.04em;line-height:1;white-space:nowrap}
.operative-status-badge.ready{background:rgba(50,170,100,.2);color:var(--green)}
.operative-status-badge.activated,.operative-status-badge.dormant,.operative-status-badge.reserve,.operative-status-badge.off-board,.operative-status-badge.escaped{background:rgba(140,155,146,.16);color:var(--muted)}
.operative-status-badge.eliminated{background:rgba(190,40,40,.22);color:var(--danger,#ff7b7b)}
.roster-operative-card{display:flex;flex-direction:column}
.player-full-roster-grid>.roster-operative-card.dead::after{content:"☠";position:absolute;z-index:2;top:3.5rem;left:50%;width:5.5rem;height:5.5rem;transform:translateX(-50%);display:grid;place-items:center;color:rgba(255,255,255,.16);font-size:5.5rem;line-height:1;pointer-events:none}
.roster-operative-card .operative-stat-line{margin-top:13px}
.player-roster-weapons{margin-top:13px!important;line-height:1.4}
.player-roster-weapons,.operative-guidance p{overflow-wrap:anywhere}
.operative-guidance{margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#07140f}
.operative-guidance summary{cursor:pointer;color:var(--green);font-weight:800}
.operative-guidance div{margin-top:10px}.operative-guidance p{margin:4px 0;color:var(--muted);font-size:.88rem;line-height:1.45}
.operative-guidance small{display:block;margin-top:10px;color:var(--muted)}
.faction-guidance{margin-block:16px;overflow-wrap:anywhere}
.forward-scouting-disclosure{margin-top:10px;border-top:1px solid var(--line)}
.forward-scouting-disclosure summary{display:flex;align-items:center;min-height:48px;color:var(--green);font-weight:850;cursor:pointer;list-style:none}
.forward-scouting-disclosure summary::-webkit-details-marker{display:none}
.forward-scouting-disclosure summary::before{content:'›';margin-right:8px;font-size:1.35rem;line-height:1;transition:transform .15s ease}
.forward-scouting-disclosure[open] summary::before{transform:rotate(90deg)}
.forward-scouting-disclosure .when-open,.forward-scouting-disclosure[open] .when-closed{display:none}
.forward-scouting-disclosure[open] .when-open{display:inline}
.forward-scouting-options{border-left:2px solid rgba(118,245,168,.35);padding-left:12px}
.forward-scouting-option{padding:10px 0}
.forward-scouting-option+.forward-scouting-option{border-top:1px solid var(--line)}
.forward-scouting-option header{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.forward-scouting-option header strong{min-width:0;color:var(--text)}
.forward-scouting-option header span{flex:0 0 auto;color:var(--green);font-size:.78rem;font-weight:850}
.forward-scouting-option small{display:block;margin-top:2px;color:var(--muted);font-size:.78rem;line-height:1.35}
.forward-scouting-option p{margin:5px 0 0;color:var(--muted);font-size:.88rem;line-height:1.45}
.wound-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.roster-operative-card .wound-controls{margin-top:auto;padding-top:14px}
.wound-controls .btn{width:100%;padding:11px 10px}
.npo-roster-card .quick-actions{margin-top:10px}
.npo-card-actions{margin-top:auto;padding-top:14px}
.npo-card-actions .wound-controls{margin-top:0}
.tooltip-stat{position:relative;cursor:help;outline:none}
.info-dot{display:inline-grid;place-items:center;width:16px;height:16px;margin-left:4px;border:1px solid currentColor;border-radius:50%;font-size:.66rem;font-weight:900;text-transform:none}
.tooltip-stat::after{content:attr(data-tooltip);position:absolute;z-index:20;left:50%;bottom:calc(100% + 9px);width:min(260px,70vw);padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#07140e;color:var(--text);font-size:.8rem;font-weight:400;line-height:1.35;box-shadow:0 10px 28px rgba(0,0,0,.35);opacity:0;pointer-events:none;transform:translate(-50%,5px);transition:.15s ease}
.tooltip-stat:hover::after,.tooltip-stat:focus::after,.tooltip-stat:focus-within::after{opacity:1;transform:translate(-50%,0)}
@media(max-width:600px){.strategy-stat-grid .tooltip-stat{cursor:default}.strategy-stat-grid .tooltip-stat::after,.strategy-stat-grid .info-dot{display:none}}

.tomb-world-event-card{--event-stripe-bright:var(--accent);--event-stripe-dark:var(--panel);position:relative;overflow:hidden;padding-top:27px;border-color:rgba(118,245,168,.65);background:var(--panel)}
.tomb-world-event-card::before{content:"";position:absolute;inset:0 0 auto;height:10px;background:repeating-linear-gradient(135deg,var(--event-stripe-bright) 0,var(--event-stripe-bright) 12px,var(--event-stripe-dark) 12px,var(--event-stripe-dark) 24px)}
.tomb-world-event-card--redrawn{filter:brightness(.375);border-color:rgba(118,245,168,.38)}
.tomb-world-event-card--redrawn::after{content:"";position:absolute;z-index:0;inset:0;pointer-events:none;background:linear-gradient(135deg,transparent 47.5%,rgba(118,245,168,.18) 48%,rgba(118,245,168,.18) 49%,transparent 49.5%)}
.tomb-world-event-card--redrawn>*{position:relative;z-index:1}
.tomb-world-event-card--redrawn .strategy-event-status{background:rgba(7,20,15,.88);color:var(--accent)}
.tomb-world-event-header{display:flex;align-items:center;gap:10px;color:var(--accent)}
.tomb-world-event-icon{display:flex;flex:0 0 auto}.tomb-world-event-anomaly-icon{display:block;width:32px;height:32px}
.tomb-world-event-label{font-size:.72rem;font-weight:900;letter-spacing:.14em}
.tomb-world-event-title{margin:10px 0 14px;font-size:clamp(1.35rem,5vw,1.7rem);line-height:1.2;color:var(--text)}
.tomb-world-event-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.strategy-event-status{flex:0 0 auto;margin-top:12px;padding:5px 8px;border:1px solid var(--accent);border-radius:999px;color:var(--accent);font-size:.7rem;font-weight:900;letter-spacing:.09em}
.tomb-world-event-effect{padding-top:12px;border-top:1px solid var(--line)}
.tomb-world-event-effect-label{margin-bottom:.35rem;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}
.strategy-event .tomb-world-event-description{margin:0;color:var(--muted);line-height:1.55}
.event-controls{display:grid;gap:10px;margin-top:16px}.event-controls .btn{width:100%}.event-messages{display:grid;gap:10px;margin:0;padding-left:1.5rem;color:var(--muted);font-size:.9rem;line-height:1.5}.event-messages li{padding-left:.25rem}.event-operative{display:grid;gap:3px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#07140f}.event-operative span{color:var(--muted)}.event-resolution{margin-top:16px;padding:11px 12px;border-radius:12px;background:#07140f;color:var(--text)}
.event-guide-action h4{margin:0 0 6px;color:var(--green);font-size:.78rem;letter-spacing:.12em}.event-guide-action p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.5;overflow-wrap:anywhere}
.strategy-actions-section,.strategy-events-section,.battlefield-state-section{margin-top:24px}
.strategy-section-heading{margin:0 0 12px;color:var(--green);font-size:1rem;letter-spacing:.1em;text-transform:uppercase}
.strategy-event-requirement{margin:0 0 6px!important;color:var(--text)!important;font-weight:800}
.strategy-event-summary{margin:0 0 14px!important;color:var(--muted)!important;overflow-wrap:anywhere}
@media(max-width:420px){.tomb-world-event-heading{display:block}.strategy-event-status{display:inline-block;margin:0 0 14px}}

/* v2.4.2 */
.activation-meta{
  margin:0 0 12px;
  color:var(--muted);
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.03em;
  text-transform:none;
}

/* v3.0.5 Ready to Begin mission briefing */
.mission-briefing{border:1px solid rgba(118,245,168,.35);background:rgba(41,127,78,.12);border-radius:16px;margin:18px 0;overflow:hidden}
.mission-briefing-section{padding:18px}
.mission-briefing-section+.mission-briefing-section{border-top:1px solid rgba(118,245,168,.18)}
.mission-briefing h4{margin:0 0 10px;font-size:1rem}
.mission-briefing p{margin:0;line-height:1.55}
.restless-tomb-option{margin:0}
.restless-tomb-option input:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.mission-heading span{display:block;color:var(--green);font-weight:850;font-size:.85rem;margin-bottom:4px}
.mission-heading strong{display:block;color:var(--text);font-size:1.08rem}
.mission-rule+.mission-rule{margin-top:18px}
.mission-rule>strong{display:block;color:var(--green);margin-bottom:4px}
.mission-rule small{display:block;color:var(--muted);line-height:1.4;margin-bottom:6px}
.optional-rules-instruction{display:block;margin-top:12px;color:var(--muted);line-height:1.4}

/* v3.2.3 game-end artwork */
.game-end-image{display:block;width:100%;max-width:768px;height:auto;margin:0 auto 22px;border:1px solid var(--line);border-radius:16px}

/* v3.3.0 categorized Player roster selection */
.roster-categories{display:grid;gap:12px;margin:12px 0 18px}
.roster-category{border:1px solid var(--line);border-radius:16px;background:#091912;overflow:hidden}
.roster-category-heading{width:100%;min-height:52px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px;padding:13px 15px;border:0;background:#10251a;color:var(--text);text-align:left;cursor:pointer;font-weight:850}
.roster-category-title{display:flex;flex:1 1 auto;align-items:center;gap:10px;min-width:max-content}
.roster-category-status{flex:0 1 auto;margin-left:auto;color:var(--muted);font-size:.85rem;white-space:nowrap}
.roster-category-indicator{color:var(--green);font-size:1.5rem;line-height:1;transform:rotate(0);transition:transform .2s}
.roster-category-heading[aria-expanded="true"] .roster-category-indicator{transform:rotate(90deg)}
.roster-category-content{grid-template-columns:repeat(3,minmax(0,1fr));padding:12px;margin:0;background:#07140f}
.roster-category-content>.player-roster-card{min-width:0;width:100%}
.roster-category-content .player-roster-card-head>div{min-width:0}
.roster-category-content .player-roster-card-head>span{flex:0 0 27px}
.roster-category-content .operative-stat-line{grid-template-columns:repeat(4,minmax(0,1fr));min-width:0}
.roster-category-content .operative-stat-line span{min-width:0}
.roster-category-content[hidden]{display:none}
@media(max-width:800px){.roster-category-content{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.roster-category-heading{padding:13px}.roster-category-content{grid-template-columns:minmax(0,1fr);padding:10px}}
.selected-roster-summary{overflow-wrap:anywhere}
.selected-roster-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;margin-bottom:8px}
.selected-roster-readiness{color:var(--muted);font-weight:850}
.selected-roster-readiness.ready{color:var(--green)}
.selected-roster-summary p{margin:0 0 8px;color:var(--muted)}

.update-notice{
  position:fixed;
  z-index:55;
  top:calc(76px + env(safe-area-inset-top));
  left:50%;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  gap:16px;
  width:min(460px,calc(100% - 30px));
  padding:16px;
  border:3px solid #fff;
  border-radius:17px;
  background:#102a1d;
  color:#fff;
  box-shadow:0 22px 60px rgba(0,0,0,.72),0 0 0 100vmax rgba(0,0,0,.18);
  font-size:1rem;
  font-weight:900;
  line-height:1.35;
}
.update-notice[hidden]{display:none}
.update-notice span{flex:1}
.update-notice .btn{
  min-height:48px;
  padding:12px 17px;
  border:2px solid rgba(255,255,255,.7);
  white-space:nowrap;
  box-shadow:0 5px 16px rgba(0,0,0,.35);
}
.update-notice .btn:focus-visible{outline:3px solid #fff;outline-offset:3px}
@media(max-width:380px){.update-notice{gap:12px;padding:14px}.update-notice .btn{padding-inline:13px}}

/* v4.0.0 shared combat resolution */
.combat-participants strong{overflow-wrap:anywhere}

/* v4.8.0 mission-specific objective progress */
.mission-objective-card{overflow:hidden}
.mission-objective-list{display:grid;gap:9px;margin:14px 0}
.mission-objective-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:11px;border:1px solid var(--line);border-radius:12px;background:#07140f}
.mission-objective-row>span{min-width:0}.mission-objective-row strong,.mission-objective-row small{display:block;overflow-wrap:anywhere}.mission-objective-row small{margin-top:3px;color:var(--muted)}
.mission-objective-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}
.mission-objective-actions select{max-width:190px;min-height:44px;background:#07140f;color:var(--text);border:1px solid var(--line);border-radius:12px;padding:8px}
.mission-objective-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px;margin:14px 0}
.mission-objective-check{display:flex;align-items:center;gap:9px;min-height:48px;padding:10px;border:1px solid var(--line);border-radius:11px;background:#07140f}
.mission-feature-card__text{min-width:0}
.mission-feature-card__label{display:block;font-weight:700;line-height:1.25;overflow-wrap:normal;word-break:normal}
.mission-feature-card__status{display:block;margin-top:.2rem;font-size:.85rem;line-height:1.3;overflow-wrap:normal;word-break:normal}
.mission-regroup-row{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#07140f}.mission-regroup-row label{display:flex;align-items:flex-start;gap:8px;line-height:1.35}
.mission-outcome .mission-objective-card{width:100%;text-align:left}.mission-outcome .game-end-image{max-width:min(100%,360px)}
@media(min-width:821px){.mission-outcome .game-end-image{max-width:min(100%,600px)}}
@media(max-width:520px){.mission-objective-row{align-items:flex-start;flex-direction:column}.mission-objective-actions{width:100%;justify-content:stretch}.mission-objective-actions select{width:100%;max-width:none}.mission-objective-actions .btn{flex:1;min-height:44px}.mission-objective-grid{grid-template-columns:1fr}.mission-outcome{padding-inline:16px}}

/* v5.5.1 shared combat resolution */
.weapon-rules{margin:14px 0;padding:12px 14px;border:1px solid var(--line);border-radius:13px;background:#08150f}
.weapon-rules strong{color:var(--green)}
.weapon-rules ul{margin:8px 0 0;padding-left:20px;color:var(--muted)}
.combat-resolution-modal .modal-inner{padding:18px}
.combat-resolution-modal h2{font-size:clamp(1.35rem,5vw,1.8rem)}
.dedicated-combat-screen{display:grid;gap:10px}
.dedicated-combat-screen .combat-results{margin-top:0}
.dedicated-combat-screen .combat-stage{margin-bottom:8px;padding:10px}
.dedicated-combat-screen .dice-row{margin:9px 0 3px}
.compact-combat-profile{margin:0;grid-template-columns:repeat(5,minmax(0,1fr))}
.compact-combat-profile.has-attack-profile{grid-template-columns:repeat(6,minmax(0,1fr))}
.combat-resolution-footer{margin-top:4px;padding-bottom:env(safe-area-inset-bottom)}
.aggressive-defense-result{display:grid;gap:4px}
.aggressive-defense-result strong{color:var(--green)}
.aggressive-defense-result p{margin:0}
@media(max-width:600px){
  .combat-resolution-modal{width:calc(100% - 16px);max-height:calc(100dvh - 12px)}
  .combat-resolution-modal .modal-inner{padding:14px}
  .compact-combat-profile,.compact-combat-profile.has-attack-profile{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dedicated-combat-screen .damage-summary{margin:6px 0}
}
@media(max-width:360px){
  .compact-combat-profile,.compact-combat-profile.has-attack-profile{grid-template-columns:1fr}
}
@media(max-height:520px) and (orientation:landscape){
  .combat-resolution-modal .modal-inner{padding:10px 14px}
  .compact-combat-profile,.compact-combat-profile.has-attack-profile{grid-template-columns:repeat(4,minmax(0,1fr))}
  .compact-combat-profile div{padding:7px}
}
.deployment-checklist{gap:8px;margin-top:10px}.deployment-check{padding-block:11px}.deployment-check>span{display:grid;gap:3px}.deployment-roster{display:block;color:var(--text);font-size:.88rem;line-height:1.35}
.reinforcement-card{margin:18px 0;padding:17px;box-shadow:none}.reinforcement-card h3{margin:6px 0 8px}.reinforcement-card>p{margin:8px 0 0}.reinforcement-pending p{margin:8px 0 0}.reinforcement-deployed+.reinforcement-pending{margin-top:18px}.reinforcement-list{margin:0;padding-left:1.25rem;line-height:1.6}.reinforcement-blocked{margin-top:18px;padding:14px;border-top:1px solid var(--line);border-radius:10px;background:rgba(242,191,114,.06)}.reinforcement-blocked h3{margin-top:0;color:#f2bf72;font-size:.92rem}.reinforcement-blocked p{margin:6px 0 0;color:#f2bf72}
.reinforcement-card>.check-row{margin-top:16px}.strategy-exception-action{display:block;margin:8px 0 0 auto;min-height:44px;padding:10px 12px;font-size:.86rem}.strategy-exception-complete{color:var(--muted)}

/* Mission objective HUD and reusable dialogs */
.hud .mission-hud{min-height:44px}.hud .mission-hud{min-width:0}.hud .mission-hud strong{min-width:0;white-space:normal;overflow-wrap:normal;word-break:normal;text-align:center;font-size:clamp(.68rem,2.2vw,.9rem)}
.mission-details{display:grid;gap:16px;min-width:0}
.mission-details h3,.mission-details h4,.mission-details p{margin:0}
.mission-details section{display:grid;gap:5px}
.mission-details h4{color:var(--muted);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}
.mission-details .mission-progress{color:var(--green);font-size:1.3rem;font-weight:900}
.mission-complete-status{color:var(--green);font-weight:900}
.mission-history{display:grid;gap:8px;list-style:none;margin:2px 0 0;padding:0}
.mission-history li{min-width:0;padding:9px 11px;border-left:3px solid var(--green2);border-radius:0 10px 10px 0;background:#07140f;overflow-wrap:anywhere}
.mission-history span,.mission-history small{display:block}
.mission-history small{margin-top:3px;color:var(--muted);font-size:.72rem}
.mission-history-empty{padding:8px 0}
.field-error{display:block;min-height:1.2em;margin-top:6px;color:#f2bf72}
.mission-roll-result{min-width:0}
.mission-roll-result .dice-row{margin-block:12px}
@media(max-width:520px){
  .hud .mission-hud strong{font-size:.65rem}
  .mission-details{gap:13px}
}
@media(max-width:600px), (max-width:950px) and (max-height:500px) and (orientation:landscape){
  .mission-complete-mark{display:none}
}

.activation-profile-strip {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin: .65rem 0 1rem;
}
.activation-profile-strip span {
  padding: .35rem .55rem;
  border: 1px solid var(--line);
  border-radius: .45rem;
  font-size: .78rem;
}
.npo-action-progress{margin:-.35rem 0 .85rem;color:var(--green)!important;font-size:.82rem;font-weight:800;line-height:1.35}
.human-npo-action-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.human-npo-action{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;white-space:normal}
.human-npo-action strong{min-width:0;overflow-wrap:anywhere}
.human-npo-action span{flex:0 0 auto;color:var(--muted);font-size:.72rem;font-weight:800}
.human-npo-action:disabled span{color:inherit}
.scout-room-choice{min-height:64px}
.human-npo-completed{margin:.5rem 0 0;padding-left:1.2rem}
@media(max-width:520px){.human-npo-action-list{grid-template-columns:1fr}.human-npo-action{width:100%}}

/* v9.1.0 universal human activation shell */
.human-activation-shell{min-width:0;display:grid;gap:12px}
.human-activation-shell h2{margin:0;overflow-wrap:anywhere}
.human-activation-shell .activation-profile-strip{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.human-activation-shell .activation-profile-strip span{min-width:0;max-width:100%;overflow-wrap:anywhere}
.activation-bookkeeping{display:flex;margin-top:-4px}.activation-bookkeeping .btn{padding:10px 14px}
.human-completed-actions ul{margin:.5rem 0 0;padding-left:1.25rem}
.human-completed-actions li{overflow-wrap:anywhere}
.human-npo-action>span{min-width:0;flex:1 1 auto;display:grid;gap:2px}
.human-npo-action>span small{color:var(--muted);font-size:.72rem;font-weight:800}
.human-npo-action .human-action-status{flex:0 1 46%;text-align:right;overflow-wrap:anywhere}
@media(max-width:430px){
  .human-activation-shell{gap:10px}
  .human-npo-action{min-height:56px}
  .human-npo-action .human-action-status{max-width:48%}
}

.fight-sequence{display:grid;gap:14px}
.fight-pools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.fight-pool{display:grid;gap:7px;padding:12px;border:1px solid var(--line);border-radius:12px;background:rgba(0,0,0,.18)}
.fight-pool.active{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 45%,transparent)}
.fight-active-label{width:max-content;max-width:100%;padding:3px 7px;border-radius:999px;background:var(--green);color:#062012;font-size:.65rem;font-weight:950;letter-spacing:.08em}
.fight-pool small,.fight-pool strong{overflow-wrap:anywhere}
.fight-pool div{display:grid;gap:4px}
.fight-unresolved{padding-top:5px;border-top:1px solid var(--line)}
.fight-unresolved small,.fight-roll-result small{color:var(--muted);font-size:.65rem;font-weight:850;letter-spacing:.08em}
.fight-roll{display:grid;gap:10px}.fight-roll>p{margin-top:0}.fight-roll-pool{min-width:0;margin-bottom:0}.fight-roll-pool>strong{display:block;margin-top:4px;overflow-wrap:anywhere}.fight-roll-pool .dice-row{margin:9px 0}.fight-roll-result{display:grid;gap:3px}.fight-roll-result strong{color:var(--green)}.fight-roll-result span{color:var(--muted);font-size:.82rem}
.fight-turn{display:grid;gap:10px}.fight-turn>p{margin:0}.fight-turn-heading{margin:0}.fight-last-resolution{display:grid;gap:8px;margin:0;padding:11px;border-left:3px solid var(--green);background:rgba(41,127,78,.12);overflow-wrap:anywhere}.fight-last-resolution>small,.fight-action-group h4{color:var(--muted);font-size:.7rem;font-weight:900;letter-spacing:.1em}.fight-resolution-record{display:grid;gap:2px}.fight-resolution-record span{font-size:.85rem}
.fight-action-group{display:grid;gap:7px}.fight-action-group h4{margin:2px 0 0}.fight-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.fight-actions .btn{min-height:48px;white-space:normal}
.fight-action{display:grid;gap:2px;text-align:left}.fight-action strong{font-size:.8rem;letter-spacing:.08em}.fight-action span{font-size:.78rem}
@media (max-width:430px){.fight-actions{grid-template-columns:1fr}}
@media (max-width:374px){.fight-pools{grid-template-columns:1fr}}
.fight-result{display:grid;gap:14px}.fight-finished{margin:0;color:var(--green);font-size:.75rem;font-weight:950;letter-spacing:.12em}.fight-result-participants{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.fight-result-card{min-width:0;padding:14px;border:1px solid var(--line);border-radius:12px;background:rgba(0,0,0,.18)}.fight-result-card h3{margin:0 0 12px;overflow-wrap:anywhere}.fight-result-card dl{display:grid;gap:10px;margin:0}.fight-result-card dl div{display:grid;gap:2px}.fight-result-card dt{color:var(--muted);font-size:.7rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.fight-result-card dd{margin:0;font-size:1.3rem;font-weight:900}.fight-eliminated{display:block;margin-top:12px;color:var(--danger);letter-spacing:.06em}.fight-result-explanation{display:grid;gap:7px;padding:12px;border-left:3px solid var(--green);background:rgba(41,127,78,.12)}.fight-result-explanation p{margin:0;overflow-wrap:anywhere}@media (max-width:374px){.fight-result-participants{grid-template-columns:1fr}}
.threat-check-result{display:grid;gap:14px}.threat-check-roll{display:grid;justify-items:start;gap:5px}.threat-check-roll small{color:var(--muted);font-size:.7rem;font-weight:900;letter-spacing:.12em}.threat-check-roll .dice-row{margin:0}.threat-check-outcome{color:var(--green);font-size:1.1rem;letter-spacing:.04em}.threat-check-breakdown{display:grid;gap:8px;margin:0;padding:12px;border:1px solid var(--line);border-radius:12px;background:rgba(0,0,0,.18)}.threat-check-breakdown div{display:flex;justify-content:space-between;gap:16px}.threat-check-breakdown dt{color:var(--muted)}.threat-check-breakdown dd{margin:0;color:var(--text);font-weight:900}.threat-check-change{margin:0!important;color:var(--text)!important;font-size:1.1rem;font-weight:900}.threat-check-maximum{margin:0!important}.threat-check-result .wizard-actions{margin-top:2px}.threat-check-result .wizard-actions .btn{width:100%}
@media(max-width:340px){
  .human-npo-action{align-items:flex-start;flex-direction:column}
  .human-npo-action .human-action-status{max-width:100%;text-align:left}
}

.optional-rules{display:grid;gap:12px}
.optional-rules h4{margin-bottom:0}
.variant-selector{min-width:0;margin:22px 0;padding:0;border:0}
.variant-selector legend,.other-optional-rules h4{font-size:1rem;font-weight:850}
.variant-card-grid{display:grid;gap:10px}
.variant-card{display:flex;align-items:flex-start;gap:12px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:14px;background:#091912;cursor:pointer}
.variant-card:has(input:checked){border-color:var(--green);background:#102a1d;box-shadow:0 0 0 2px rgba(118,245,168,.12)}
.variant-card:focus-within{outline:2px solid var(--green);outline-offset:2px}
.variant-card input{width:22px;height:22px;flex:0 0 auto;margin:0;accent-color:var(--green)}
.variant-card>span{min-width:0}
.variant-card strong,.variant-card small{display:block;overflow-wrap:anywhere}
.variant-card small{margin-top:4px;color:var(--muted);line-height:1.4}
.other-optional-rules{margin-top:24px}
.other-optional-rules h4{margin:0}
.rule-classification{display:block;width:max-content;max-width:100%;margin:4px 0 6px;padding:2px 7px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.7rem;font-weight:800;line-height:1.35;overflow-wrap:anywhere}
.rule-classification.official{border-color:var(--green2);color:var(--green)}
.deadly-section{min-width:0;margin:14px 0;padding-top:10px;border-top:1px solid var(--line)}
.deadly-entity-list{display:grid;gap:9px;margin:8px 0;padding:0;list-style:none}
.deadly-entity-list li{min-width:0;padding:10px;border:1px solid var(--line);border-radius:10px;background:#07140f;overflow-wrap:anywhere}
.deadly-entity-list strong,.deadly-entity-list span,.deadly-entity-list small{display:block}
.feature-status{margin:3px 0;color:var(--green);font-weight:800}
.source-note,.nonblocking-note{color:var(--muted);font-size:.78rem;overflow-wrap:anywhere}
.d33-result{display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.d33-result span{display:inline-grid;place-items:center;min-width:42px;min-height:42px;padding:5px;border:1px solid var(--green2);border-radius:8px;color:var(--green);font-weight:900}
.resolution-steps{padding-left:1.4rem}
@media(max-width:390px){.optional-rules .check-row{align-items:flex-start}.rule-classification{width:auto}.deadly-section .game-menu-grid{grid-template-columns:1fr}}

/* v8.6.12 combat summary wrapping */
.combat-summary-grid,
.combat-summary-grid.has-attack-profile{
  grid-template-columns:repeat(auto-fit,minmax(135px,1fr));
  gap:.5rem;
}
.combat-summary-value{
  min-width:0;
  word-break:normal;
  overflow-wrap:break-word;
  hyphens:none;
}
.combat-participants .combat-summary-value{
  overflow-wrap:break-word;
}
@media(max-width:360px){
  .combat-summary-grid,.combat-summary-grid.has-attack-profile{grid-template-columns:1fr}
}

.melee-weapon-summary{display:grid}
.weapon-field{margin-top:6px}
.melee-weapon-summary>#playerWeaponSummaryContent,.melee-weapon-summary>.melee-weapon-summary-sizer{grid-area:1/1}
.melee-weapon-summary-sizer,.melee-weapon-summary-pending{visibility:hidden}
.weapon-details .weapon-rules{margin:14px 0 0;padding:14px 0 0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}
.weapon-details .weapon-rules h3{margin:0;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:var(--green)}
