/* V10.6 gameplay-first layout. This final layer deliberately owns screen geometry. */
html,body{width:100%;height:100%;overflow:hidden}
body{margin:0;background:#050208}
/* The title and online lobby are menus, not a simulated run. Gameplay panels
   stay unmounted visually until a run has actually begun. */
body[data-run-active="false"] .ccg-game>.mission,
body[data-run-active="false"] .ccg-game>.tactical-zone,
body[data-run-active="false"] .ccg-game>.player-hub,
body[data-run-active="false"] .ccg-game>.game-area>.canvas-wrap,
body[data-run-active="false"] .ccg-game>.game-area>.game-message-rail,
body[data-run-active="false"] .ccg-game>.critical-strip>.banish-context{display:none!important}
body[data-run-active="false"] .ccg-game>.game-area{grid-column:1/3!important;grid-row:2/5!important;background:#050208!important}
.ccg-game,.ccg-game:fullscreen,.ccg-game:-webkit-full-screen{position:fixed!important;inset:0!important;width:auto!important;height:auto!important;min-height:0!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;display:grid!important;grid-template-columns:minmax(0,1fr) clamp(240px,20vw,320px)!important;grid-template-rows:42px 32px minmax(0,1fr) 94px!important;gap:0;background:#050208;overflow:hidden}
.ccg-game>.topbar{grid-column:1/3;grid-row:1;min-height:0!important;height:42px!important;padding:4px 10px!important;border-width:0 0 1px!important;z-index:30}
.ccg-game>.topbar .brand img{width:34px!important;height:34px!important}
.ccg-game>.topbar .brand h1{font-size:clamp(12px,1.1vw,17px)!important;line-height:1!important}
.ccg-game>.topbar .brand p{font-size:8px!important;margin-top:2px!important}
.ccg-game>.topbar .system-buttons{gap:5px!important}
.ccg-game>.topbar .system-buttons>*{min-height:28px!important;padding:4px 7px!important;font-size:8px!important}
.ccg-game>.critical-strip{display:contents!important}
.ccg-game>.critical-strip>.critical-card{display:none!important}
.ccg-game>.mission{grid-column:1/3;grid-row:2;min-height:0!important;height:32px!important;padding:5px 10px!important;border-width:0 0 1px!important;z-index:24;overflow:hidden}
.ccg-game>.mission strong{font-size:9px!important}.ccg-game>.mission span{font-size:10px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ccg-game>.fullscreen-hint{position:fixed;top:45px;left:50%;z-index:80;transform:translateX(-50%);padding:3px 8px!important;font-size:8px!important;width:auto!important}
/* V10.6 owns the tactical sidebar as a single column. Older game.css releases
   used an !important two-column tactical grid with 520px/330px minimum tracks;
   letting that rule leak into this 240-320px sidebar clips the radar off-screen. */
.ccg-game>.tactical-zone{grid-column:2;grid-row:3;min-height:0!important;height:auto!important;padding:7px!important;display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:minmax(190px,52%) minmax(0,1fr)!important;grid-auto-flow:row!important;gap:7px;border:0!important;border-left:1px solid rgba(180,113,255,.35)!important;background:#09040f;overflow:hidden;z-index:6}
.ccg-game>.tactical-zone>.radar-card,.ccg-game>.tactical-zone>.shortcut-dock{grid-column:1!important;min-width:0!important;width:100%!important;max-width:100%!important}
.ccg-game>.tactical-zone>.radar-card{grid-row:1!important}
.ccg-game>.tactical-zone>.shortcut-dock{grid-row:2!important}
.ccg-game>.tactical-zone .dossier-card{display:none!important}
.ccg-game>.tactical-zone .radar-card{height:auto!important;min-height:0!important;display:grid!important;grid-template-rows:auto minmax(0,1fr) auto;padding:8px!important;margin:0!important}
.ccg-game>.tactical-zone .radar-card h3{font-size:9px!important;margin:0 0 5px!important}
.ccg-game #radar-canvas{width:100%!important;height:100%!important;min-height:0!important;object-fit:fill}
.ccg-game .radar-legend{gap:4px!important;font-size:7px!important;flex-wrap:wrap}
.ccg-game>.game-area{grid-column:1;grid-row:3;position:relative!important;inset:auto!important;width:auto!important;height:auto!important;min-width:0!important;min-height:0!important;display:block!important;margin:0!important;padding:0!important;border:0!important;overflow:hidden!important;background:#020104;z-index:5}
.ccg-game .canvas-wrap{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;margin:0!important;border:0!important}
.ccg-game #game{display:block!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;margin:0!important}
.ccg-game .game-message-rail{display:contents!important}
.ccg-game .game-message-context,.ccg-game .game-message-line,.ccg-game .game-quest-list{display:none!important}
.ccg-game .pickup-toast{position:absolute!important;top:12px!important;left:50%!important;right:auto!important;bottom:auto!important;transform:translateX(-50%);z-index:28;width:min(580px,76%);min-height:0!important;padding:9px 12px!important;display:grid!important;grid-template-columns:48px minmax(0,1fr);gap:10px;align-items:center;background:rgba(11,5,17,.92)!important;border:1px solid rgba(255,216,90,.75)!important;border-left-width:4px!important;box-shadow:0 6px 28px rgba(0,0,0,.55);pointer-events:none;text-align:left!important}
.pickup-toast-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid currentColor;background:rgba(255,255,255,.04);color:#ffd85a}.pickup-toast-icon .item-svg-wrap{width:32px;height:32px}.pickup-toast-copy{min-width:0}.ccg-game .pickup-toast.green .pickup-toast-icon{color:#72ff9b}.ccg-game .pickup-toast.cyan .pickup-toast-icon{color:#6cecff}.ccg-game .pickup-toast.red .pickup-toast-icon{color:#ff6868}
.ccg-game .pickup-toast b{font-size:11px!important}.ccg-game .pickup-toast span{font-size:9px!important;line-height:1.25!important}
.ccg-game .banish-context{position:fixed!important;left:50%!important;bottom:106px!important;z-index:90;transform:translateX(-50%);width:min(600px,80vw)!important;display:flex!important;padding:8px 12px!important;box-shadow:0 0 32px rgba(176,92,255,.65)!important}
.ccg-game .banish-context.hidden{display:none!important}
.ccg-game>.player-hub{grid-column:1/3;grid-row:4;position:relative!important;inset:auto!important;width:auto!important;height:94px!important;min-height:0!important;padding:7px 9px!important;margin:0!important;display:grid!important;grid-template-columns:minmax(350px,1.05fr) minmax(290px,.85fr) minmax(380px,1.2fr)!important;gap:8px!important;border-width:1px 0 0!important;overflow:hidden;z-index:20}
.ccg-game>.player-hub .core-stats{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:5px!important}
.ccg-game>.player-hub .hub-stat{min-height:0!important;padding:7px!important}
.ccg-game>.player-hub .hub-stat span,.ccg-game>.player-hub .run-stat span{font-size:7px!important}.ccg-game>.player-hub .hub-stat b{font-size:clamp(12px,1.3vw,18px)!important}
.ccg-game>.player-hub .hub-inventory{display:block!important;min-width:0;padding:5px!important}
.ccg-game>.player-hub .hub-inventory-head{font-size:7px!important;margin-bottom:4px!important}.ccg-game>.player-hub .quick-slots{gap:4px!important}.ccg-game>.player-hub .quick-slot{min-width:0!important;height:52px!important}
.quick-slot-key{position:absolute;right:3px;top:2px;z-index:2;min-width:17px;padding:2px;border:1px solid #6cecff;background:#061018;color:#6cecff;font-size:8px;line-height:1;text-align:center}.shortcut-dock{min-height:0;padding:8px;border:1px solid #503862;background:linear-gradient(180deg,#0d0813,#07040a);overflow:auto}.shortcut-dock-head{display:flex;justify-content:space-between;gap:6px;align-items:center}.shortcut-dock-head h3{margin:0;color:#ffd85a;font-size:9px}.shortcut-dock-head span{color:#6cecff;font-size:7px}.command-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:7px}.command-grid>span,.item-command{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:5px;padding:5px;border:1px solid #4b3a59;background:#08050c}.command-grid kbd,.item-command kbd{min-width:34px;padding:4px;border:1px solid #6cecff;background:#07131a;color:#6cecff;font-size:8px;text-align:center}.command-grid b,.item-command b{font-size:7px;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-shortcuts{display:grid;gap:5px;margin-top:7px}.item-shortcuts>p{margin:5px 0;color:#9f91aa;font-size:8px;line-height:1.35}.item-command{grid-template-columns:30px 26px minmax(0,1fr) auto;border-left:3px solid #6cecff}.item-command .item-svg-wrap{width:27px;height:27px}.item-command em{color:#ffd85a;font-size:8px;font-style:normal}.item-command-potion{border-color:#72ff9b}.item-command-potion kbd{border-color:#72ff9b;color:#72ff9b}.item-command-torch{border-color:#ffd85a}.item-command-torch kbd{border-color:#ffd85a;color:#ffd85a}.item-command-teleport,.item-command-banishment{border-color:#b978ff}.item-command-teleport kbd,.item-command-banishment kbd{border-color:#b978ff;color:#b978ff}
.weekly-vault-section{margin:10px 0;padding:10px;border:1px solid rgba(108,236,255,.45);background:rgba(7,28,40,.42)}.weekly-vault-section h3{margin:0 0 5px;color:#6cecff;font-size:12px}.weekly-leaderboard-note{margin:0!important;color:#d7edf3!important;font-size:10px!important;line-height:1.4!important}
.ccg-game>.player-hub .hub-progress{display:grid!important;grid-template-columns:minmax(180px,1.4fr) repeat(3,minmax(64px,.58fr))!important;gap:5px!important}
.ccg-game>.player-hub .priority-xp,.ccg-game>.player-hub .run-stat{min-height:0!important;padding:6px!important}.ccg-game>.player-hub .run-stat b{font-size:12px!important}
.ccg-game>.player-hub .hub-telemetry{display:none!important}
.ccg-game .overlay,.ccg-game:fullscreen .overlay,.ccg-game:-webkit-full-screen .overlay{position:fixed!important;inset:0!important;z-index:100!important;padding:clamp(10px,2vw,28px)!important;background:rgba(3,1,7,.96)!important;overflow:auto!important}
.ccg-game .overlay.hidden{display:none!important}
.ccg-game #pause{z-index:150!important}
body[data-run-active="true"]:has(.game-area>.overlay:not(.hidden)) .ccg-game>.tactical-zone,
body[data-run-active="true"]:has(.game-area>.overlay:not(.hidden)) .ccg-game>.player-hub{visibility:hidden!important;pointer-events:none!important}
body[data-run-active="true"]:has(.game-area>.overlay:not(.hidden)) .ccg-game>.game-area{z-index:140!important}
.ccg-game #menu{align-items:start!important;justify-items:center!important}
.ccg-game #menu>.panel{width:min(1040px,96%)!important;max-height:none!important;margin:0 auto!important;padding:clamp(12px,2vh,20px)!important}
.ccg-game #menu .hero-logo{width:min(180px,32vw)!important;height:96px!important;margin:0 auto!important}
.desktop-play-recommendation{display:flex;align-items:center;justify-content:center;gap:10px;margin:8px auto!important;padding:8px 12px;border:1px solid rgba(255,216,90,.75);background:rgba(255,216,90,.08);color:#e9dfef!important}
.desktop-play-recommendation strong{color:#ffd85a;font-size:12px}.desktop-play-recommendation span{font-size:10px}
.mobile-panel-head>button{display:none}
.inventory-mobile-notice{display:none;margin:0 0 9px!important;padding:8px;border:1px solid rgba(108,236,255,.48);background:rgba(12,55,66,.38);color:#c8f7ff!important;font-size:10px!important;font-weight:700}
.inventory-mobile-notice.red{border-color:rgba(255,104,104,.7);background:rgba(90,20,30,.48);color:#ffd2d7!important}
.v104-touch-btn[data-action] small{display:block;margin-top:3px;color:#72ff9b;font-size:8px;line-height:1}
.v104-touch-btn.touch-item-unavailable{border-color:#a94758!important;color:#ffb5c0!important}
.v104-touch-btn.touch-item-unavailable small{color:#ff8fa0}
.ccg-game #menu h2{margin:0 0 5px!important;font-size:clamp(27px,4vh,44px)!important}
.ccg-game #menu>.panel>p{max-width:980px;margin:5px auto!important;line-height:1.35!important}
.ccg-game #menu .feature-strip{margin:7px 0!important}
.ccg-game #menu .field{display:inline-grid!important;width:min(330px,46%)!important;margin:7px 5px!important;vertical-align:top}
.ccg-game #menu .menu-buttons{margin:7px auto!important}
.online-howto{margin:12px 0;padding:10px;border:1px solid rgba(72,224,255,.42);background:rgba(7,33,46,.45)}
.online-howto h3{margin:0 0 7px;color:#60eaff;font-size:12px}.online-howto>div{display:grid;grid-template-columns:1fr 1fr;gap:10px}.online-howto p{margin:0;font-size:10px;line-height:1.4}.online-howto b{color:#ffd85a}
.weekly-auth-actions{display:flex;justify-content:center;gap:8px;margin:7px 0 10px}.weekly-auth-actions.hidden{display:none}.weekly-auth-actions a{display:inline-flex;align-items:center;justify-content:center;padding:8px 11px;border:1px solid #63e9ff;background:#09202a;color:#bff7ff;font-size:10px;font-weight:900;text-decoration:none;box-shadow:2px 2px 0 #000}.weekly-auth-actions a:first-child{border-color:#72ff9b;background:#0d2718;color:#caffd9}.weekly-auth-actions a:focus-visible{outline:2px solid #ffd85a;outline-offset:2px}
.menu-exit-link{display:inline-flex;align-items:center;justify-content:center;padding:10px 13px;border:2px solid #a94758;background:#301019;color:#ffd9de;font-weight:900;text-decoration:none;box-shadow:3px 3px 0 #000}.menu-exit-link:active{transform:translate(2px,2px);box-shadow:1px 1px 0 #000}
.online-lobby-card{width:min(880px,96%)!important;margin:auto!important;padding:clamp(18px,3vw,36px)!important;border:2px solid #63e9ff!important;box-shadow:0 0 46px rgba(87,220,255,.2)!important}
.online-lobby-card .lobby-kicker{margin:0;color:#63e9ff;letter-spacing:.2em;font-weight:900}.online-lobby-card h2{font-size:clamp(28px,5vw,58px)!important;margin:4px 0!important}.online-lobby-card #lobby-status{color:#ffd85a;font-weight:900}.lobby-invite input{font-size:clamp(11px,1.5vw,17px)!important;color:#fff!important;background:#080311!important}.lobby-actions{grid-template-columns:repeat(4,1fr)!important}.lobby-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.lobby-columns section{padding:14px;border:1px solid rgba(185,120,255,.35);background:rgba(12,6,18,.75)}.lobby-columns h3{margin:0 0 8px;color:#b978ff}.lobby-columns p,.lobby-columns li{font-size:11px;line-height:1.5}.lobby-columns ol{margin:0;padding-left:20px}.lobby-columns li{padding:4px 0}.lobby-columns li.host{color:#ffd85a;font-weight:900}
.dossier-trait{margin:8px 0 0!important;padding:7px!important;border-left:3px solid #ff9a52;background:rgba(255,133,67,.08)}.dossier-trait.weakness{border-color:#64e8a5;background:rgba(73,231,155,.08)}
.ccg-game .inventory-slot.locked{border-style:dashed!important;border-color:#76535d!important;background:repeating-linear-gradient(135deg,#09050d 0,#09050d 8px,#120914 8px,#120914 16px)!important;opacity:.78}.ccg-game .inventory-slot.locked .inventory-slot-icon{border-color:#76535d!important}.ccg-game .locked-slot-mark{display:grid;place-items:center;width:34px;height:34px;border:2px solid #a66b7a;color:#e49aaa;font-size:27px;font-weight:900;line-height:1}.ccg-game .inventory-slot.locked .inventory-slot-copy b{color:#e49aaa!important}.ccg-game .inventory-slot.locked .inventory-slot-copy span{color:#ffd85a!important;font-weight:900}.ccg-game .inventory-slot.locked .inventory-slot-copy small{color:#bdacb8!important}
@media (max-width:1100px){
  .ccg-game,.ccg-game:fullscreen,.ccg-game:-webkit-full-screen{grid-template-columns:minmax(0,1fr) 220px!important;grid-template-rows:38px 30px minmax(0,1fr) 88px!important}
  .ccg-game>.topbar{height:38px!important}.ccg-game>.player-hub{height:88px!important;grid-template-columns:1fr .8fr 1fr!important}.ccg-game>.player-hub .quick-slot{height:46px!important}
  .ccg-game>.topbar .build-badge{display:none!important}
}
@media (max-width:900px),(pointer:coarse){
  .ccg-game,.ccg-game:fullscreen,.ccg-game:-webkit-full-screen{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:30px minmax(0,1fr) 76px!important}
  .ccg-game>.topbar{display:none!important}
  .ccg-game>.mission{grid-column:1;grid-row:1;height:30px!important}
  .ccg-game>.game-area{grid-column:1;grid-row:2}
  .ccg-game>.tactical-zone{grid-column:1;grid-row:2;position:absolute!important;top:38px!important;right:8px!important;width:min(34vw,210px)!important;height:min(25vh,150px)!important;padding:4px!important;border:1px solid rgba(185,120,255,.45)!important;background:rgba(7,2,12,.66)!important;pointer-events:none;z-index:17;opacity:.82}
  .ccg-game>.tactical-zone .radar-card{padding:4px!important;background:transparent!important}.ccg-game>.tactical-zone h3,.ccg-game>.tactical-zone .radar-legend{display:none!important}
  .ccg-game>.tactical-zone .shortcut-dock{display:none!important}
  .ccg-game>.player-hub{grid-column:1;grid-row:3;height:76px!important;grid-template-columns:1fr 1fr!important;padding:5px!important}
  .ccg-game>.player-hub .hub-inventory{display:none!important}.ccg-game>.player-hub .hub-progress{grid-template-columns:1.5fr repeat(3,.65fr)!important}
  .ccg-game .pickup-toast{top:8px!important;width:min(520px,78%);left:40%!important}
  .ccg-game .banish-context{bottom:86px!important;width:86vw!important}
  .v104-touch-controls{background:linear-gradient(transparent,rgba(3,2,5,.2))!important}.v104-touch-btn{opacity:.76!important;background:rgba(14,8,20,.5)!important;backdrop-filter:blur(1px)!important}.v104-touch-btn:active,.v104-touch-btn.held{opacity:1!important}
  .online-howto>div,.lobby-columns{grid-template-columns:1fr}.lobby-actions{grid-template-columns:1fr 1fr!important}
  .weekly-auth-actions{flex-wrap:wrap}.weekly-auth-actions a{flex:1;min-width:150px}
  .mobile-panel-head{position:sticky;top:-13px;z-index:4;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;margin:-13px -13px 12px;padding:10px 10px 8px;background:#0b0610;border-bottom:1px solid #765596;box-shadow:0 7px 18px rgba(0,0,0,.45)}
  .mobile-panel-head h2{margin:0!important;text-align:left!important;font-size:clamp(17px,4.8vw,24px)!important}.mobile-panel-head>button{display:block;min-height:48px;padding:8px 11px;white-space:nowrap}
  .inventory-mobile-notice{display:block}
  .desktop-play-recommendation{display:block}.desktop-play-recommendation strong,.desktop-play-recommendation span{display:block}.desktop-play-recommendation span{margin-top:4px}
}
@media (max-width:620px){
  .ccg-game,.ccg-game:fullscreen,.ccg-game:-webkit-full-screen{grid-template-rows:28px minmax(0,1fr) 68px!important}.ccg-game>.mission{height:28px!important;padding:4px 7px!important}.ccg-game>.mission strong{display:none!important}
  .ccg-game>.player-hub{height:68px!important;grid-template-columns:1fr!important}.ccg-game>.player-hub .hub-progress{display:none!important}.ccg-game>.player-hub .hub-stat{padding:4px!important}.ccg-game>.player-hub .hub-stat span{font-size:6px!important}.ccg-game>.player-hub .hub-stat b{font-size:12px!important}
  .ccg-game>.tactical-zone{top:34px!important;width:31vw!important;height:20vh!important}.ccg-game .pickup-toast{left:50%!important;top:4px!important;width:88%;padding:5px 8px!important}.ccg-game .pickup-toast span{display:block!important;font-size:8.5px!important;line-height:1.2!important}
  .ccg-game .banish-context{bottom:74px!important;padding:6px!important}.ccg-game .banish-context span{font-size:8px!important}
  .online-lobby-card{padding:14px!important}.lobby-actions{grid-template-columns:1fr!important}
  .ccg-game #menu .field{display:grid!important;width:100%!important;margin:6px 0!important}
}
@media (orientation:portrait) and (pointer:coarse){.ccg-game>.fullscreen-hint:not(.hidden)::after{content:" · LANDSCAPE GIVES THE LARGEST PLAYFIELD"}}