/* AI practice: board appearance only; no battle player or media loading. */
.practice-return{margin:0 0 8px}body>header{padding:16px 24px}body>header strong{font-size:26px;color:#ecc778}body>header small{font-size:14px}
html[data-practice-game=ninja] #board-frame{background:#43473a url('./moss-ground.webp') center/cover;border-color:#777966}
html[data-practice-game=kishin] #board-frame{background:radial-gradient(circle at 20% 30%,#fff 0 1px,transparent 1.5px) 0 0/47px 47px,radial-gradient(ellipse at 70% 60%,#49316f,transparent 65%),linear-gradient(145deg,#030611,#132641);border-color:#637996}
html:is([data-practice-game=ninja],[data-practice-game=kishin]) #board{background:transparent;box-sizing:border-box;width:100%;border:0;box-shadow:none}
html:is([data-practice-game=ninja],[data-practice-game=kishin]) #board .square{background:transparent;border:.5px solid #e2ddc16b}
html[data-practice-game=kishin] #board .square{border-color:#a6c4e87a}
html:is([data-practice-game=ninja],[data-practice-game=kishin]) :is(.file-labels,.rank-labels){color:#fff4cd;text-shadow:0 1px 3px #000,0 0 4px #000}
html:is([data-practice-game=ninja],[data-practice-game=kishin]) #board .square.selected{background:#ffd55c30;box-shadow:inset 0 0 0 2px #ffe07a}
html[data-practice-game=ninja] #board.dark-board .square.fog{background:#08101988}
@media(max-width:600px){html[data-practice-game=ninja] #board-frame{background-image:url('./moss-ground-mobile.webp')}body>header{padding:12px 16px}}

/* Game-specific pieces. The parent cell keeps click and visibility handling. */
html[data-practice-game=ninja] #board .square{display:flex;align-items:center;justify-content:center;padding:0}
html[data-practice-game=kishin] #board .square{display:flex;align-items:center;justify-content:center;padding:0}
.kishin-disc{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:78%;aspect-ratio:1;flex:none;border-radius:50%;border:3px solid #88cfff;background:radial-gradient(circle at 35% 25%,#b7e5ff,#3070a4 55%,#123054);box-shadow:inset 0 0 0 2px #203b68,0 3px 2px #0008;color:#fff;font:bold clamp(16px,3vw,32px)/1 "Yu Mincho","Hiragino Mincho ProN",serif;text-shadow:0 1px 2px #000;pointer-events:none}
.kishin-disc.gote{border-color:#ffad9e;background:radial-gradient(circle at 35% 25%,#ffd5c8,#a94242 55%,#4c1425);box-shadow:inset 0 0 0 2px #782234,0 3px 2px #0008}
.kishin-disc.reversed{transform:rotate(180deg)}
.kishin-disc.promoted{color:#e00000;text-shadow:0 0 2px white,0 0 4px white}
.practice-piece-hand{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:60px}
.practice-piece-hand .ninja-token{height:48px!important;max-width:none!important}
.practice-piece-hand .kishin-disc{width:44px;font-size:22px}
@media(max-width:600px){.practice-piece-hand{min-height:50px;padding:3px 5px}.practice-piece-hand .ninja-token{height:40px!important}.practice-piece-hand .kishin-disc{width:38px;font-size:20px}}

/* Blur only the continuous terrain layer, never pieces, coordinates or grid. */
html:is([data-practice-game=ninja],[data-practice-game=kishin]) #board-frame{position:relative;isolation:isolate;overflow:hidden;background:#08111d}
html:is([data-practice-game=ninja],[data-practice-game=kishin]) #board-frame::before{content:"";position:absolute;inset:-8px;z-index:0;pointer-events:none;filter:blur(2.5px);background-position:center;background-size:cover}
html:is([data-practice-game=ninja],[data-practice-game=kishin]) #board-frame>div{position:relative;z-index:1}
html[data-practice-game=ninja] #board-frame::before{background-image:linear-gradient(#17271c55,#17271c55),url('./moss-ground.webp')}
html[data-practice-game=kishin] #board-frame::before{background-image:
radial-gradient(ellipse at 18% 72%,#8a467a88,transparent 36%),
radial-gradient(ellipse at 68% 30%,#477eaa99,transparent 40%),
radial-gradient(ellipse at 48% 52%,#7867a977,transparent 27%),
radial-gradient(ellipse at 80% 82%,#192e6599,transparent 45%),
linear-gradient(135deg,transparent 22%,#40597b66 37%,#8587a855 45%,#443c7666 53%,transparent 69%),
radial-gradient(circle at 12% 24%,#d9e6ff 0 1px,transparent 2px),
radial-gradient(circle at 77% 17%,#d9e6ff 0 1px,transparent 2px),
radial-gradient(circle at 35% 81%,#d9e6ff 0 1px,transparent 2px),
radial-gradient(circle at 84% 58%,#d9e6ff 0 1px,transparent 2px),
linear-gradient(145deg,#020612,#101629 55%,#050c1c)}
html[data-practice-game=kishin] #board .kishin-disc{width:80%;height:auto;min-height:0;max-height:none;aspect-ratio:1/1;border-radius:50%;clip-path:circle(50%);box-shadow:none;flex-shrink:0}
html[data-practice-game=kishin] #board .kishin-disc:not(.reversed){transform:none}
@media(max-width:600px){html[data-practice-game=ninja] #board-frame::before{background-image:linear-gradient(#17271c55,#17271c55),url('./moss-ground-mobile.webp')}}

/* Anchor the disc to the CELL, not an auto-sized grid content track. */
html[data-practice-game=kishin] #board .square{position:relative!important}
html[data-practice-game=kishin] #board .square>.kishin-disc{position:absolute!important;left:10%!important;top:10%!important;width:80%!important;height:80%!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;box-sizing:border-box!important;aspect-ratio:1/1;border-radius:50%!important;clip-path:none!important;display:flex!important;align-items:center!important;justify-content:center!important}

#board-frame{position:relative}#formationScore{position:absolute;z-index:5;top:8%;left:5%;right:5%;padding:10px 12px;border:1px solid #edc574;border-radius:10px;background:rgba(13,29,39,.92);color:#fff;text-align:center;pointer-events:none;font-size:clamp(12px,2.4vw,18px);line-height:1.5}#formationScore[hidden]{display:none!important}#formationScore strong{color:#ffdb87}#formationScore small{display:block;font-size:.8em}.formation-totals{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.formation-totals b{font-size:1.35em;color:#ffdb87}#stock button{position:relative;padding-bottom:20px!important}#stock .stock-point{position:absolute;bottom:1px;left:0;right:0;color:#101d27;font:bold 12px/18px sans-serif;text-align:center}.formation-values{font-size:14px}

#download{display:none!important}

/* Compact conditions and formation controls */
#game-options{padding:12px 14px;margin:10px 0}#game-options h2{margin:0 0 8px;font-size:19px;display:flex;align-items:center;gap:14px}#game-options h2 small{font-size:13px;font-weight:normal}#game-options .game-options-fields{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}#game-options label{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:14px}#game-options select{width:auto;min-height:38px;padding:6px 8px;font-size:14px}#game-ninja-options{display:flex;gap:12px;align-items:center;flex-wrap:nowrap}#game-ninja-options[hidden],#game-kishin-options[hidden]{display:none!important}#condition-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex-basis:100%}#condition-actions>button{margin:0;padding:10px 12px;font-size:14px}#condition-actions>label{margin:0!important}#game-options>p{font-size:12px;margin:6px 0 0}#game-options button:disabled{opacity:.45;cursor:default}.game-heading{margin-bottom:8px}.game-heading h1{margin:4px 0}.practice-return{margin-bottom:10px}#formationScore{top:5%;left:3%;right:3%;max-height:48%;overflow:auto;padding:7px 9px;pointer-events:auto;font-size:clamp(11px,2.2vw,16px)}#formationScore #setup h3{font-size:16px;margin:4px 0}#formationScore #setup p{margin:3px 0;font-size:12px;line-height:1.35}#formationScore #setup .formation-values{display:none}#formationScore #setup button{display:inline-block;width:auto;min-height:38px;padding:7px 10px;margin:4px 4px 0 0;font-size:12px}#formationScore #setup button:disabled{opacity:.45}#formationScore small{line-height:1.3}.formation-totals{gap:8px}#formationScore[hidden]{display:none!important}@media(max-width:480px){#game-options{padding:10px}#game-options .game-options-fields{gap:8px}#game-ninja-options{gap:8px}#game-options select{max-width:140px}#condition-actions{gap:8px}#condition-actions>button{font-size:12px;padding:10px 8px}#condition-actions>label{font-size:12px}#formationScore .formation-totals b{font-size:1.1em}}
#game-options .game-options-fields,#game-options .game-options-fields>div{flex-direction:row}#game-options #game-ninja-options{width:auto;flex-wrap:nowrap}#game-options #game-ninja-options label{width:auto;white-space:nowrap}#formationScore{top:2%;max-height:52%;padding:5px 7px}#formationScore #setup>p:not(.formation-values){display:none}#formationScore #setup h3{font-size:14px;margin:2px 0}#formationScore #setup button{min-height:34px;padding:5px 7px;line-height:1.2;margin:3px 2px 0 0}#formationScore small{font-size:11px}@media(max-width:360px){#game-options #game-ninja-options{gap:6px}#game-options #game-ninja-options label{font-size:12px;gap:4px}#game-options #game-ninja-options select{max-width:124px;font-size:12px;padding:5px}#formationScore{font-size:10px;line-height:1.3}#formationScore small{font-size:10px}#formationScore #setup h3{font-size:12px}#formationScore #setup button{font-size:10px;padding:4px;min-height:32px}}

#stock button{padding-bottom:6px!important}.turn-strip{display:flex!important;align-items:center;gap:8px;margin:0 0 10px!important;padding:9px 4px;flex-wrap:wrap}.turn-strip #status{flex:1;min-width:0;font-size:clamp(16px,3vw,22px);font-weight:700;line-height:1.35;margin:0;color:#ffdc86}.turn-strip .human-seat{margin-left:auto;white-space:nowrap;font-size:13px}.turn-strip #team-count:empty{display:none}.turn-strip #team-count:not(:empty){font-size:12px}#level-label{display:none}

.enemy-hand-row{display:flex;align-items:center;gap:8px;background:#152b36;border:1px solid #334c59}.enemy-hand-row #gote-hand{flex:1;min-width:0;border:0;margin:0;padding:8px}.enemy-status{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-left:auto;padding:6px 8px}.enemy-status #hint{margin:0;font-size:12px;line-height:1.35;max-width:220px}.enemy-status #resign{padding:8px 10px;min-height:38px;font-size:13px;white-space:nowrap;margin:0}.turn-strip+.dark-assist-controls{margin:0 0 10px}.player-effect-speech{display:block;position:absolute;left:0;bottom:5px;transform:translateX(-50%);background:#fff;color:#152333;border:2px solid #17232e;border-radius:16px;padding:7px 14px;white-space:nowrap;font:bold 20px/1.2 sans-serif;box-shadow:0 3px 7px #0008}.player-effect-speech:after{content:"";position:absolute;bottom:-9px;left:45%;border-left:7px solid transparent;border-right:7px solid transparent;border-top:9px solid #fff}.player-surprise-vortex{display:block;position:absolute;left:0;top:4px;font-size:42px;line-height:1;animation:surprise-spin .4s linear infinite}@keyframes surprise-spin{from{transform:translateX(-50%) rotate(0deg)}to{transform:translateX(-50%) rotate(360deg)}}@media(max-width:480px){.enemy-hand-row{gap:3px}.enemy-hand-row #gote-hand{padding:6px;font-size:12px}.enemy-status{gap:4px;padding:4px}.enemy-status #hint{font-size:10px;max-width:115px}.enemy-status #resign{font-size:12px;padding:7px;min-height:36px}.player-effect-speech{font-size:17px}}
