/* Only the hand consumes touch dragging; dialogs and card lists still scroll. */
.duel-hand .playing-card[data-zone=hand] {
  touch-action:none; user-select:none; -webkit-user-select:none; -webkit-touch-callout:none; cursor:grab;
}
.duel-hand .playing-card img { -webkit-user-drag:none; }
body.is-dragging-hand,body.is-dragging-hand * { cursor:grabbing !important; user-select:none; }
.hand-fan-slot.is-drag-source,.hand-fan-slot.is-drag-source:hover,.hand-fan-slot.is-drag-source:focus-within {
  opacity:.26; transform:rotate(var(--fan-angle)); transition:none;
}
.hand-drop-active { outline:1px dashed #b3c8d56b; outline-offset:3px; border-radius:7px; }
.hand-drop-active[data-drop-state=ready] {
  outline:2px solid #f6ca86; background:#efb96912; box-shadow:0 0 26px #e7b36526,inset 0 0 28px #f6ca8617;
}
.hand-drop-active[data-drop-state=blocked] { outline-color:#d79a8c; }
.hand-drop-message {
  position:absolute; z-index:10; left:50%; bottom:8px; transform:translateX(-50%); width:max-content; max-width:94%;
  padding:8px 14px; border:1px solid #8fa3b2; border-radius:5px; color:#e9eef0; background:#13212df5;
  font-size:12px; font-weight:700; text-align:center; line-height:1.45; pointer-events:none; box-shadow:0 3px 16px #0008;
}
[data-drop-state=ready] > .hand-drop-message { color:#ffe3b8; border-color:#efc68b; }
[data-drop-state=blocked] > .hand-drop-message { color:#ffd1c7; border-color:#d79a8c; }
.hand-drag-ghost {
  position:fixed; z-index:800; display:grid; grid-template-columns:27px minmax(0,1fr); grid-template-rows:28px minmax(0,1fr) auto;
  gap:5px; padding:7px; border:2px solid #9cafba; border-radius:7px; background:linear-gradient(120deg,#faf7ed,#dfdfd4);
  box-sizing:border-box; pointer-events:none; overflow:hidden; box-shadow:0 16px 28px #000a,0 0 18px #b7d6e02b;
}
.hand-drag-cost { display:grid; place-items:center; width:26px; height:26px; border-radius:50%; color:#fff5e1; background:#344853; font-weight:800; font-size:15px; }
.hand-drag-name { min-width:0; align-self:center; color:#18262b; font-size:12px; line-height:1.25; }
.hand-drag-art { grid-column:1/-1; width:100%; height:100%; min-height:0; object-fit:cover; border-radius:3px; }
.hand-drag-effect { grid-column:1/-1; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; margin:0; color:#2b373c; font-size:10px; line-height:1.4; }
.hand-drag-ghost[data-drop-state=ready] { border-color:#efc68b; box-shadow:0 16px 28px #000a,0 0 24px #efc68b65; }
.hand-drag-ghost[data-drop-state=blocked] { border-color:#d58e7e; }
.hand-drag-ghost.is-aiming { opacity:.94; box-shadow:0 8px 24px #000a; }
.hand-drag-ghost.is-aiming .hand-drag-effect { -webkit-line-clamp:2; }
/* SVG has no hit area: card/portrait hit testing always reaches the battlefield. */
.hand-aim { position:fixed; inset:0; z-index:802; width:100%; height:100%; pointer-events:none; overflow:visible; color:#cbdce5; }
.hand-aim path,.hand-aim circle { pointer-events:none; }
.hand-aim-shadow,.hand-aim-line { fill:none; stroke-linecap:round; }
.hand-aim-shadow { stroke:#0a131bc9; stroke-width:10px; }
.hand-aim-line { stroke:currentColor; stroke-width:4px; stroke-dasharray:9 5; }
.hand-aim-head { fill:currentColor; stroke:#111d27; stroke-width:1.4px; }
.hand-aim-ring { fill:#edbd7822; stroke:currentColor; stroke-width:2px; }
.hand-aim[data-aim-state=ready] { color:#ffd08a; filter:drop-shadow(0 0 5px #e9aa5677); }
.hand-aim[data-aim-state=ready] .hand-aim-line { stroke-dasharray:none; }
.hand-aim[data-aim-state=blocked] { color:#e49b8b; }
.tabletop-shell [data-duel-target].hand-target-available { outline:2px solid #e8bd787d; outline-offset:2px; }
.tabletop-shell [data-duel-target].hand-target-selected { outline:3px solid #ffe1a9; outline-offset:3px; box-shadow:0 0 24px #edbd786b; }
.tabletop-shell .duel-identity.hand-target-available { border-radius:8px; }
.tabletop-shell .duel-identity.hand-target-selected .survivor-portrait { border-color:#ffe1a9; }
@media (max-width:700px), (max-height:600px) {
  .hand-drop-message { padding:5px 8px; font-size:10px; bottom:4px; }
  .tabletop-shell .console-footer .hand-drag-help { font-size:8px; white-space:nowrap; }
}
@media (prefers-reduced-motion:reduce) {
  .hand-aim { filter:none; }
}
