:root{--bg: #0b1220;--panel: #111827;--panel-2: #172235;--text: #e5e7eb;--muted: #9ca3af;--stroke: rgba(255,255,255,.12);--accent: #22c55e;--accent-2: #16a34a;--light: #f0d9b5;--dark: #b58863;--hintFrom: rgba(96,165,250,.55);--hintTo: rgba(34,197,94,.55)}*{box-sizing:border-box}body{margin:0;font-family:Avenir Next,Segoe UI,sans-serif;overflow-x:hidden;background:radial-gradient(1200px 500px at 15% -10%,rgba(34,197,94,.12),transparent 55%),radial-gradient(900px 400px at 95% -20%,rgba(56,189,248,.11),transparent 52%),var(--bg);color:var(--text)}.app{max-width:1440px;margin:0 auto;padding:18px}.menuApp{min-height:100vh;display:grid;place-items:center;position:relative}.menuSettingsCorner{position:fixed;top:14px;right:14px;z-index:20}.menuScreen{width:min(980px,96vw);border:1px solid var(--stroke);border-radius:18px;background:linear-gradient(150deg,#172235f2,#0a101cf7);padding:28px;box-shadow:0 28px 60px #00000059}.menuScreen h1{margin:0;font-size:clamp(28px,4vw,48px)}.menuLead{margin:8px 0 0;color:#b2c1d6;font-size:16px}.menuGrid{margin-top:20px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.menuCard{border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:18px;background:linear-gradient(175deg,#0d1628eb,#080e19f2);color:var(--text);text-align:left;display:grid;gap:8px;cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.menuCard:hover{transform:translateY(-2px);border-color:#ffffff57;box-shadow:0 10px 24px #00000040}.menuCardCoach{border-color:#22c55e73;background:linear-gradient(175deg,#132a21e6,#08140ef2)}.menuCardTitle{font-weight:700;font-size:18px}.menuCardText{color:#afbed1;font-size:14px;line-height:1.35}.soloSetupSection{margin-top:16px}.soloSetupSection h2{margin:0 0 10px;font-size:17px}.choiceRow{display:flex;gap:10px}.choiceRow.wrap{flex-wrap:wrap}.choiceBtn{border:1px solid rgba(255,255,255,.22);border-radius:12px;background:#0a121ed9;color:var(--text);padding:10px 14px;cursor:pointer;transition:border-color .15s ease,transform .12s ease}.choiceBtn:hover{border-color:#ffffff61;transform:translateY(-1px)}.choiceBtn.active{border-color:#22c55ecc;box-shadow:inset 0 0 0 1px #22c55ea6;background:#142d21e0}.choiceSelect{border:1px solid rgba(255,255,255,.22);border-radius:12px;background:#0a121ed9;color:var(--text);padding:10px 12px;outline:none;font:inherit}.choiceSelect:focus{border-color:#22c55e99;box-shadow:0 0 0 2px #22c55e24}.nameGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.inlineLabel input{background:#0a121ed9;color:var(--text);border:1px solid rgba(255,255,255,.22);border-radius:10px;padding:10px 12px;outline:none}.inlineLabel input:focus{border-color:#22c55e99;box-shadow:0 0 0 2px #22c55e26}.topGap{margin-top:10px}.menuActions{margin-top:22px;display:flex;justify-content:space-between;gap:10px}.startBtn{background:linear-gradient(180deg,var(--accent),var(--accent-2));color:#042410;border-color:#0003;font-weight:700}.header{background:linear-gradient(145deg,#172235f2,#111827f5);border:1px solid var(--stroke);border-radius:14px;padding:18px;margin-bottom:18px}.compactHeader{padding:14px 16px}.titleRow{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.titleRow h1{margin:0;letter-spacing:.2px}.headerActions{display:flex;gap:8px;align-items:center}.headerActions button,.hamburgerBtn{background:#0d1628;color:var(--text);border:1px solid rgba(255,255,255,.18);padding:8px 10px;border-radius:10px;cursor:pointer}.hamburgerBtn{display:none}.hamburgerBtn.iconOnly{width:40px;height:40px;padding:0;display:grid;place-items:center}.hamburgerBtn.iconOnly svg{width:18px;height:18px;fill:currentColor}.toolbar{margin-top:12px;display:grid;grid-template-columns:1fr;gap:12px}.controlGroup{background:#0b1220a6;border:1px solid var(--stroke);border-radius:12px;padding:10px;display:grid;gap:8px}.controlTitle{font-size:12px;letter-spacing:.4px;text-transform:uppercase;color:#93a3bb;font-weight:700}.btnRow{display:flex;gap:8px;flex-wrap:wrap}.inlineLabel{display:grid;gap:6px;color:var(--muted);font-size:13px}.toolbar button,.toolbar select,.sideRail .controlGroup button,.setupControls button,.pieceBtn{background:#0d1628;color:var(--text);border:1px solid rgba(255,255,255,.18);padding:9px 11px;border-radius:10px;cursor:pointer;transition:border-color .15s ease,transform .12s ease,background-color .15s ease}.toolbar button:hover,.sideRail .controlGroup button:hover,.setupControls button:hover,.pieceBtn:hover{border-color:#ffffff4d;transform:translateY(-1px)}.toolbar button.primary{background:linear-gradient(180deg,var(--accent),var(--accent-2));color:#042410;border-color:#00000026;font-weight:700}.toolbar button:disabled,.setupControls button:disabled{opacity:.5;cursor:not-allowed;transform:none}.modeSwitch{display:grid;grid-template-columns:1fr 1fr;background:#0b1220;border:1px solid rgba(255,255,255,.2);border-radius:11px;padding:3px;gap:4px}.segBtn{border:1px solid transparent;background:transparent;padding:8px 10px;border-radius:8px}.segBtn.active{background:#22c55e2b;border-color:#22c55e8c;color:#d1fae5;font-weight:700}.status{display:grid;grid-template-columns:1fr;gap:10px;color:var(--muted);margin-top:0}.status>div{background:#0b122080;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:10px}.status strong{color:var(--text)}.status .statusWarning{border-color:#f8717159;background:#7f1d1d3d;color:#fecaca}.boardWarningToast{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:8;max-width:min(92%,560px);border:1px solid rgba(248,113,113,.5);background:#7f1d1de6;color:#fee2e2;border-radius:10px;padding:10px 14px;font-size:14px;font-weight:600;line-height:1.35;box-shadow:0 10px 24px #00000059}.muted{color:var(--muted);margin:8px 0 0}.gameLayout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:14px;align-items:start}.gameLayout.rail-collapsed{grid-template-columns:56px minmax(0,1fr)}.stageMobileBar{display:none}.boardStage{min-width:0;display:grid;gap:10px;max-width:1200px;margin:0}.movesTickerWrap{display:block;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:#090e18a8;padding:8px 10px;overflow:hidden}.movesTicker{min-width:0;display:block;white-space:nowrap;overflow-x:auto;overflow-y:hidden;font-size:14px;color:#dbe6f7;scrollbar-width:none;cursor:grab;-webkit-overflow-scrolling:touch}.movesTicker::-webkit-scrollbar{display:none}.movesTicker.dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.boardPlayerName{width:min(100%,760px);margin:0 auto;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:#090e18a8;color:#dbe6f7;padding:8px 12px;font-weight:700;letter-spacing:.2px;display:flex;align-items:center;justify-content:space-between;gap:10px}.boardPlayerName.top{text-align:left}.boardPlayerName.bottom{text-align:right}.boardPlayerMain{font-weight:700}.boardPlayerMeta{display:inline-flex;align-items:center;gap:8px;min-height:22px}.clockBadge{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(56,189,248,.45);background:#38bdf824;color:#e0f2fe;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;min-width:56px}.clockBadge.danger{border-color:#ef44448c;background:#ef444429;color:#fecaca}.materialLead{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(34,197,94,.45);background:#22c55e1f;color:#86efac;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:700}.capturedPoints{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(148,163,184,.35);background:#94a3b81f;color:#dbe6f7;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:600}.capturedPieces{display:inline-flex;align-items:center;gap:3px;min-width:44px}.capturedPiece{display:inline-flex;align-items:center;justify-content:center;opacity:.98;width:22px;height:22px;border-radius:999px;background:#f8eed733;border:1px solid rgba(255,255,255,.2)}.capturedPiece .pieceSvgAsset{width:16px;height:16px}.capturedPiece .pieceSvgBlack{filter:brightness(1.38) contrast(1.2) drop-shadow(0 0 1px rgba(255,248,228,.72))}.capturedEmpty{color:#9fb1cf;font-size:12px;font-weight:500}.coachEditorDock{width:min(100%,760px);margin:0 auto;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:#090e18a8;padding:12px;display:grid;gap:8px}.sideRail{position:sticky;top:10px;width:auto;height:calc(100dvh - 20px);z-index:2;border-radius:14px;transform:none;transition:none;overflow-y:auto;padding-bottom:20px;box-shadow:none}.railHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:10px}.railBrand h2{margin:0}.railBrand .muted{margin-top:4px}.railHeaderActions{display:flex;gap:6px}.settingsWrap{position:relative}.settingsMenu{position:absolute;right:0;top:calc(100% + 8px);min-width:170px;background:#0b1220fa;border:1px solid rgba(255,255,255,.16);border-radius:10px;box-shadow:0 14px 30px #00000059;padding:10px;display:grid;gap:6px;z-index:12}.settingsLabel{font-size:12px;color:#9fb0c7;font-weight:700}.settingsMenu select{background:#0d1628;color:var(--text);border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:8px 9px}.settingsMenu select:focus{outline:none;border-color:#22c55e99;box-shadow:0 0 0 2px #22c55e24}.iconBtn{width:38px;height:38px;display:grid;place-items:center;background:#0d1628;color:var(--text);border:1px solid rgba(255,255,255,.18);border-radius:8px;cursor:pointer;padding:0}.iconBtn:hover{border-color:#ffffff59}.iconBtn.toggleBtn{background:#22c55e2e;border-color:#22c55e73}.iconBtn svg{width:18px;height:18px;fill:currentColor}.mobileOnly,.sideRailBody.hidden{display:none}.sideRail.collapsed{transform:none;padding:6px 6px 8px}.sideRail.collapsed .railHeader{position:relative;justify-content:flex-end;margin:6px 0;min-height:44px}.sideRail.collapsed .railHeaderActions{position:absolute;right:4px;top:4px;width:44px;justify-content:center;align-items:center}.sideRail.collapsed .closeRailBtn{display:none}.sideRail.collapsed .railBrand,.sideRail.collapsed .iconBtn:not(.toggleBtn){display:none}.sideRail.collapsed .iconBtn.toggleBtn{width:34px;height:34px}.closeRailBtn{background:#0d1628;color:var(--text);border:1px solid rgba(255,255,255,.18);border-radius:8px;padding:6px 8px;cursor:pointer}.sideBackdrop{display:none}.pageHint{margin-top:10px}.panel{background:var(--panel);border:1px solid var(--stroke);border-radius:14px;padding:16px}.boardPanel{background:linear-gradient(160deg,#111827f5,#0b1220f5);display:grid;place-items:center;min-height:680px;position:relative}.sidePanel{background:linear-gradient(180deg,#111827fa,#0c121efa)}.board{width:min(100%,760px);aspect-ratio:1 / 1;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.08);-webkit-user-select:none;user-select:none;touch-action:none;position:relative;margin-inline:auto}.square{display:grid;place-items:center;position:relative}.coordLabel{position:absolute;font-size:clamp(9px,1.15vw,11px);font-weight:700;line-height:1;letter-spacing:.02em;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:4;text-transform:lowercase}.coordLabel.onLight{color:#26221ab8}.coordLabel.onDark{color:#faefdac7}.fileLabel{left:5px;bottom:4px}.rankLabel{left:5px;top:4px}.square.light{background:var(--light)}.square.dark{background:var(--dark)}.square.hintFrom{box-shadow:inset 0 0 0 4px var(--hintFrom)}.square.hintTo{box-shadow:inset 0 0 0 4px var(--hintTo)}.square.recentMoveTo{animation:recentMovePulse .34s ease-out}.square.checkFlashSquare{animation:checkDangerPulse 1.7s ease-out}.square.invalidFlashSquare{animation:invalidMovePulse .78s ease-out}.square.selectedSquare{box-shadow:inset 0 0 0 4px #22c55ed1}.square.moveTargetSquare{cursor:pointer}.moveTargetDot{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(20px,34%);aspect-ratio:1 / 1;border-radius:999px;background:#94a3b857;box-shadow:0 0 0 1px #0a101c29;pointer-events:none;z-index:1}@keyframes recentMovePulse{0%{box-shadow:inset 0 0 #10b98100}45%{box-shadow:inset 0 0 0 6px #10b9818c}to{box-shadow:inset 0 0 0 2px #10b98140}}@keyframes checkDangerPulse{0%{box-shadow:inset 0 0 #ef444400}28%{box-shadow:inset 0 0 0 7px #ef4444bf}56%{box-shadow:inset 0 0 0 3px #ef444473}to{box-shadow:inset 0 0 #ef444400}}@keyframes invalidMovePulse{0%{box-shadow:inset 0 0 #ef444400}35%{box-shadow:inset 0 0 0 8px #ef4444d1}to{box-shadow:inset 0 0 #ef444400}}.piece{width:100%;height:100%;display:grid;place-items:center;transition:transform .14s ease-out}.piece svg,.piece img{width:86%;height:86%}.pieceSvgAsset{image-rendering:-webkit-optimize-contrast}.pieceSvgBlack{filter:brightness(1.22) contrast(1.12) drop-shadow(0 0 .6px rgba(242,227,186,.5)) drop-shadow(0 1px 1px rgba(0,0,0,.45))}.dragGhost{position:absolute;top:0;left:0;width:0;height:0;pointer-events:none;filter:drop-shadow(0 8px 10px rgba(0,0,0,.35));opacity:.95}.botMoveGhost{position:absolute;width:12.5%;aspect-ratio:1 / 1;pointer-events:none;z-index:7;left:0;top:0;transform:translate(-50%,-50%);transform-origin:center;transition:none;will-change:left,top;filter:drop-shadow(0 8px 10px rgba(0,0,0,.28))}.botMoveGhost.moving{transition:left .28s cubic-bezier(.2,.9,.2,1),top .28s cubic-bezier(.2,.9,.2,1)}.arrowOverlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.hintArrow{stroke:#22c55ee6;stroke-width:1.55;stroke-linecap:round;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}.moves{padding-left:18px}.moves li{margin:4px 0;color:var(--muted)}.moves li strong{color:var(--text)}.setupControls{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.setupTurnControls button{flex:1 1 180px;min-height:42px;border-radius:12px;font-weight:800;letter-spacing:.01em;border-color:#ffffff4d;background:linear-gradient(180deg,#1e293b,#111827);box-shadow:0 2px #00000040;transition:transform .1s ease,box-shadow .12s ease,background-color .12s ease,border-color .12s ease}.setupTurnControls button:hover{border-color:#ffffff7a;background:linear-gradient(180deg,#243245,#162033)}.setupTurnControls button.active{color:inherit;border-color:#ffffff4d;background:linear-gradient(180deg,#1e293b,#111827);box-shadow:0 2px #00000040}.setupTurnControls button.flash{animation:turnButtonFlash 1.1s ease-out}.setupTurnControls button:active{transform:translateY(1px) scale(.99);box-shadow:0 1px #0000003d;animation:turnBtnPressPulse .2s ease-out}@keyframes turnBtnPressPulse{0%{filter:brightness(1)}45%{filter:brightness(1.08)}to{filter:brightness(1)}}@keyframes turnButtonFlash{0%{color:#042410;border-color:#16a34ae6;background:linear-gradient(180deg,#34d399,#16a34a);box-shadow:0 2px #052e1652,inset 0 0 0 1px #bbf7d073}to{color:var(--text);border-color:#ffffff4d;background:linear-gradient(180deg,#1e293b,#111827);box-shadow:0 2px #00000040}}.setupActionControls button{flex:1 1 180px}.setupBadges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.badge{font-size:12px;letter-spacing:.2px;padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:#0b12208f;color:#b6c4d8}.badge.active{background:#22c55e2e;border-color:#22c55e99;color:#ddfbe9}.badge.warn{border-color:#f43f5e73;color:#fecdd3}.badge.warn.active{background:#f43f5e38;border-color:#f43f5ebf;color:#ffe4e6}.setupControls button.active,.pieceBtn.active{border-color:#22c55ee6;box-shadow:inset 0 0 0 1px #22c55eb3}.pieceBank{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.pieceBtn{padding:6px;display:grid;place-items:center}.pieceBank .pieceBtn{background:linear-gradient(180deg,#f4e7cf,#e9d7b8);border-color:#00000047}.pieceBank .pieceBtn:hover{background:linear-gradient(180deg,#f8edd8,#eddcc0);border-color:#0006}.pieceBank .pieceBtn.active{border-color:#22c55ee6;box-shadow:inset 0 0 0 1px #22c55eb8,0 0 0 1px #0000002e}.promotionOverlay{position:fixed;inset:0;background:#02060f99;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:50;padding:16px}.promotionCard{width:min(440px,96vw);background:linear-gradient(165deg,#172235f7,#0a101cf7);border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:16px}.promotionCard h3{margin:0}.promotionChoices{margin-top:10px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.promotionBtn{border:1px solid rgba(255,255,255,.2);border-radius:10px;background:#0b1220b8;color:var(--text);display:grid;justify-items:center;gap:6px;padding:10px 8px;cursor:pointer;transition:border-color .15s ease,transform .12s ease}.promotionBtn:hover{border-color:#22c55e99;transform:translateY(-1px)}.resultOverlay{position:absolute;inset:0;background:#02060f9e;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:30;padding:16px}.resultCard{width:min(420px,94vw);border:1px solid rgba(239,68,68,.45);border-radius:14px;background:linear-gradient(170deg,#250a0af5,#100808f7);padding:20px;text-align:center;box-shadow:0 18px 42px #0000006b}.resultCard h2{margin:0;letter-spacing:1px;color:#fecaca}.resultCard p{margin:8px 0 16px;color:#ffe4e6}.resultCard .primary{border:1px solid rgba(255,255,255,.16);border-radius:10px;padding:10px 14px;cursor:pointer;font-weight:700;background:linear-gradient(180deg,var(--accent),var(--accent-2));color:#042410}@media(max-width:520px){.app{padding:10px}.header,.panel{padding:12px}.boardPanel{min-height:auto}.board{width:min(100%,96vw)}.pieceBank{grid-template-columns:repeat(4,minmax(0,1fr))}.nameGrid{grid-template-columns:1fr}.setupTurnControls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.setupTurnControls button{width:100%}.setupActionControls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.setupActionControls button{width:100%}}@media(max-width:1080px){.gameLayout{display:block}.hamburgerBtn{display:inline-block}.stageMobileBar{display:flex;justify-content:flex-start}.sideRail{position:fixed;top:0;left:0;height:100dvh;width:min(420px,92vw);z-index:46;border-right:1px solid rgba(255,255,255,.16);border-top:0;border-bottom:0;transform:translate(-104%);transition:transform .2s ease;overflow-y:auto;padding-bottom:24px;max-height:none;border-radius:0;box-shadow:none}.sideRail.open,.sideRail.open.collapsed{transform:translate(0)}.sideRail.collapsed{width:min(420px,92vw);transform:translate(-104%);padding:16px}.railHeaderActions .toggleBtn{display:none}.railHeader{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.railHeader h2{margin:0;font-size:18px}.sideBackdrop{display:block;position:fixed;inset:0;border:0;background:#02060f85;z-index:45}.mobileOnly{display:inline-block}}@media(max-width:920px){.menuGrid{grid-template-columns:1fr}}
