/* The board stays dominant; useful numbers and artwork carry the side panel. */
.game-sidebar { gap:10px; }
.selection-panel { position:relative; }
.selection-help-button { position:absolute; top:10px; right:10px; z-index:4; }
.selection-panel .section-heading { padding-right:36px; }
.selection-panel[data-phase="play"] .selection-content { gap:8px; }
.selection-panel .selection-position { font-size:.75rem; color:#bcae8e; margin:5px 0 0; }
.piece-actions:empty { display:none; }
.ability-badge { font-size:.75rem; padding:5px 9px; background:#c7b7800b; border-color:#8d80534d; color:#d9cea8; }
.ability-badge.spent { opacity:.42; }
.target-key { display:flex; align-items:center; justify-content:center; gap:7px; color:#c9c0a6; font-size:.75rem; min-height:28px; }
.target-key .legend-capture { margin-left:12px; }
.target-actions { position:fixed; inset:auto; margin:0; min-width:145px; max-width:calc(100vw - 16px); padding:7px; display:none; gap:5px; border:2px solid #a28a58; border-radius:4px; background:#211e16f5; box-shadow:0 6px 24px #0009; }
.target-actions:popover-open { display:grid; }
.target-actions .button { text-align:left; min-height:42px; }
.target-actions .button:last-child { border-color:transparent; opacity:.7; }
.square.legal-choice::after { content:'◈'; position:absolute; inset:2px; width:auto; height:auto; border-radius:0; background:linear-gradient(135deg,#dcf6ff 45%,#ff9b91 55%); background-clip:text; -webkit-background-clip:text; color:transparent; font:700 clamp(14px,2.2vw,25px)/1 sans-serif; display:grid; place-items:center; box-shadow:none; z-index:4; filter:drop-shadow(0 1px 2px #000); pointer-events:none; }
.setup-confirm { width:min(340px,72%); pointer-events:none; }
.setup-confirm #setup-ready { pointer-events:auto; font-size:clamp(1.35rem,3vw,2.6rem); padding:16px 12px; }
.setup-confirm:not(.is-ready) #setup-ready { opacity:.68; filter:none; color:#b6ad98; background:#201f1ce0; border-color:#74684d; box-shadow:0 4px 15px #0005; }
.setup-confirm.is-ready #setup-ready { color:#ffedbc; border-color:#e4c87b; background:linear-gradient(90deg,#253926ec,#375a31f2,#253926ec); box-shadow:0 0 22px #d1b36b26,0 6px 18px #0007; }
.sidebar-card[data-setup-locked="true"] { opacity:1; }
.sidebar-card[data-setup-locked="true"] .section-heading h3::after { content:'Random'; font:normal .65rem -apple-system,sans-serif; letter-spacing:.04em; color:#b5b495; border:1px solid #7e80514d; border-radius:3px; padding:3px 5px; }
.sidebar-card[data-setup-locked="true"] button:disabled { opacity:1; filter:none; }
#race-options .race-choice:last-child { grid-column:auto; }
#race-panel[data-setup-locked="true"] #race-options { grid-template-columns:1fr; }
#race-panel[data-setup-locked="true"] .race-choice { flex-direction:row; min-height:72px; }
#commander-panel[data-setup-locked="true"] .commander-options { grid-template-columns:1fr; }
.turn-card { border-top-color:var(--team); }
.turn-card .action-display { grid-column:1 / -1; grid-row:auto; margin:3px 0; gap:12px; }
#actions-left { font-size:3.65rem; font-weight:650; text-shadow:0 2px 5px #0008; }
.action-display strong { color:#ddd2b9; font-size:.9rem; }
.action-pips { gap:5px; flex-wrap:wrap; }
.action-pips .pip { width:22px; height:6px; }
.resource-icon { display:inline-block; width:22px; height:22px; flex:none; }
.resource-sources { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-column:1 / -1; gap:6px; padding:5px 0 10px; }
.resource-counter { display:grid; grid-template-columns:22px auto; justify-content:center; align-items:center; gap:1px 6px; padding:7px 3px; background:#090d0760; border:1px solid #9e895f2b; border-radius:3px; color:#d7bc80; }
.resource-counter strong { color:#f0dfb4; font-size:1.18rem; font-variant-numeric:tabular-nums; }
.resource-counter small { grid-column:1 / -1; text-align:center; color:#b7ad96; font-size:.65rem; }
[data-tooltip]:focus-visible { outline:2px solid #e5c78a; outline-offset:3px; }
.territory-name { display:flex; align-items:center; gap:8px; color:#d1c5a9; }
.territory-name .resource-icon { width:20px; height:20px; color:#b5a77f; }
.territory-row { border-color:#8b79502d; min-height:36px; }
.territory-state { font-size:1rem; }
.territory-state.south { color:var(--south-color); }.territory-state.north { color:var(--north-color); }
.territory-state.contested { color:#e1b985; }.territory-state.unknown { color:#a5a794; }
.turn-history>h3 { margin:0 0 8px; color:#d0c098; }
.turn-history p { font-size:.8rem; color:#bbb29c; line-height:1.5; }
.turn-history .recap-meta { color:#978f79; font-size:.7rem; margin:0 0 5px; }
.turn-history .turn-recap { padding:0; border:0; background:none; box-shadow:none; }
.turn-history details>summary { min-height:32px; display:list-item; cursor:pointer; color:#c8b789; font-size:.8rem; padding:6px 0; }
.turn-history #history-panel { border-top:1px solid #8b795033; margin-top:9px; }
.turn-history ol { margin:7px 0 0; padding:0; list-style:none; }
.turn-history ol li { border-left:2px solid #88734866; padding:0 0 0 9px; margin:10px 0; color:#c4bda9; line-height:1.5; }
.history-meta { display:block; color:#938f7e; font-size:.65rem; margin-bottom:3px; }
.board-viewport::after { background:radial-gradient(ellipse,transparent 65%,#050a1230); }
@media(max-width:720px) {
  .turn-history { grid-column:1 / -1; }
  .setup-confirm #setup-ready { padding:12px 9px; }
  .square.legal-choice::after { font-size:18px; }
}
