/* NodeClash v6.3.70 — mode clarity + interaction feedback.
   Presentation only: the authoritative game state remains in app.js. */
#ncModeHud{position:absolute;left:50%;top:8px;transform:translateX(-50%);z-index:80;display:flex;align-items:center;justify-content:space-between;gap:14px;width:min(1120px,calc(100% - 28px));margin:8px auto 0;padding:10px 14px;border:1px solid rgba(126,229,255,.2);border-radius:16px;background:linear-gradient(135deg,rgba(5,16,28,.88),rgba(12,24,37,.66));box-shadow:0 12px 34px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.07);backdrop-filter:blur(16px);font-size:11px;letter-spacing:.06em;text-transform:uppercase;transition:box-shadow .2s ease,border-color .2s ease}
#ncModeHud .nc-mode-main{display:flex;align-items:center;gap:10px;min-width:0}
#ncModeHud .nc-mode-dot{width:9px;height:9px;border-radius:50%;background:#68f0b0;box-shadow:0 0 16px rgba(104,240,176,.7);flex:none}
#ncModeHud[data-mode="human"] .nc-mode-dot{background:#f7d46a;box-shadow:0 0 16px rgba(247,212,106,.72)}
#ncModeHud[data-mode="ai-vs-ai"] .nc-mode-dot{background:#c98cff;box-shadow:0 0 18px rgba(201,140,255,.78);animation:ncModePulse 1.05s ease-in-out infinite}
#ncModeHud[data-state="thinking"] .nc-mode-dot{background:#74e8ff;box-shadow:0 0 18px rgba(116,232,255,.78);animation:ncModePulse .65s ease-in-out infinite}
#ncModeHud strong{font-size:11px;white-space:nowrap}
#ncModeHud small{font-size:9px;opacity:.62;letter-spacing:.05em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#ncModeHud .nc-mode-side{display:flex;align-items:center;gap:7px;flex:none}
#ncModeHud .nc-mode-tag{padding:5px 9px;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.045);font-size:8px;letter-spacing:.1em}
#ncModeHud[data-mode="ai-vs-ai"]{border-color:rgba(201,140,255,.38);box-shadow:0 12px 38px rgba(92,42,145,.22),0 0 34px rgba(201,140,255,.08),inset 0 1px 0 rgba(255,255,255,.08)}
#ncModeHud[data-state="thinking"]{border-color:rgba(116,232,255,.34)}
#ncModeToast{position:fixed;left:50%;bottom:24px;z-index:300;transform:translate(-50%,18px) scale(.96);opacity:0;pointer-events:none;min-width:min(440px,calc(100vw - 32px));max-width:calc(100vw - 32px);padding:12px 16px;border:1px solid rgba(201,140,255,.34);border-radius:14px;background:rgba(5,11,19,.9);box-shadow:0 16px 46px rgba(0,0,0,.4),0 0 34px rgba(201,140,255,.12);backdrop-filter:blur(18px);text-align:center;font-size:11px;letter-spacing:.055em;text-transform:uppercase;transition:opacity .16s ease,transform .16s ease}
#ncModeToast.show{opacity:1;transform:translate(-50%,0) scale(1)}
#ncModeToast .nc-toast-kicker{display:block;font-size:8px;opacity:.58;margin-bottom:3px;letter-spacing:.12em}
#ncModeToast .nc-toast-message{font-weight:800}
body.nc-mode-watch #board>.cell{cursor:not-allowed!important}
body.nc-mode-watch #board>.cell.nc-mode-hover{filter:brightness(1.08)!important;transform:translateY(-2px) scale(1.012)!important;box-shadow:0 0 0 1px rgba(201,140,255,.22),0 0 26px rgba(201,140,255,.12)!important}
body.nc-mode-watch #board>.cell.nc-mode-ignored{animation:ncIgnoredNode .28s ease-out 1!important}
@keyframes ncModePulse{50%{transform:scale(1.42);opacity:.58}}
@keyframes ncIgnoredNode{0%{filter:brightness(1);transform:scale(1)}45%{filter:brightness(1.25);transform:scale(1.035);box-shadow:0 0 0 3px rgba(201,140,255,.16),0 0 30px rgba(201,140,255,.25)}100%{filter:brightness(1);transform:scale(1)}}
@media(max-width:720px){#ncModeHud{top:6px;align-items:flex-start;flex-direction:column;gap:7px}.nc-mode-side{width:100%;justify-content:flex-end}#ncModeToast{bottom:14px}}
@media(prefers-reduced-motion:reduce){#ncModeHud .nc-mode-dot,#ncModeHud[data-mode="ai-vs-ai"] .nc-mode-dot{animation:none!important}}

/* v6.3.72 — make the actual playable/locked state obvious. */
#board>.cell[data-nc-selectable="1"]{cursor:pointer!important;filter:brightness(1.04);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 0 18px rgba(96,225,255,.10)}
#board>.cell[data-nc-locked="1"]{cursor:not-allowed!important;filter:saturate(.55) brightness(.72);border-color:rgba(255,184,102,.24)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 18px rgba(255,155,82,.06)!important}
#board>.cell[data-nc-locked="1"]::before{content:"LOCKED";position:absolute;left:8px;top:8px;padding:3px 6px;border-radius:999px;background:rgba(48,24,10,.62);border:1px solid rgba(255,190,110,.18);color:rgba(255,216,166,.72);font:900 7px/1 Inter,system-ui,sans-serif;letter-spacing:.12em;pointer-events:none}
#board>.cell.nc-input-blocked{animation:ncInputBlocked .28s ease-out 1!important}
@keyframes ncInputBlocked{0%{transform:translateY(0) scale(1)}35%{transform:translateY(-2px) scale(1.018);filter:brightness(1.18)}100%{transform:translateY(0) scale(1)}}
