/* JU-2 · tablero táctil adaptado a móvil. Sin llamadas a cuentas o datos privados. */
.chess-shell{padding:40px 0 70px}
.chess-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.chess-heading h1{font-size:clamp(2.4rem,5vw,4rem);letter-spacing:-.06em;line-height:1;margin:12px 0;color:#162039}
.chess-heading p{font-size:.96rem;color:#64748b;line-height:1.6;max-width:700px}
.chess-release-tag{border:1px solid #b9c7e7;border-radius:99px;background:#eef2ff;color:#4338ca;padding:10px 14px;font-weight:750;font-size:.78rem}
.chess-notice{border:1px solid #d8def0;border-left:3px solid #6366f1;background:#f7f8ff;border-radius:11px;padding:15px 17px;margin:27px 0;color:#475569;font-size:.87rem;line-height:1.65}
.chess-layout{display:grid;grid-template-columns:minmax(0,650px) minmax(275px,1fr);gap:24px;align-items:start}
.chess-board-panel,.chess-side-panel{background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:20px;box-shadow:0 12px 30px rgba(30,41,59,.05)}
.chess-player{min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.88rem;color:#1e293b;font-weight:750}
.chess-player span:last-child{font-size:.76rem;font-weight:500;color:#94a3b8}
.chess-player-top{margin-bottom:12px}.chess-player-bottom{margin-top:12px}
.chess-board{display:grid;grid-template-columns:repeat(8,1fr);aspect-ratio:1;max-width:100%;border-radius:9px;overflow:hidden;border:3px solid #475569;background:#e8edf2}
.chess-square{aspect-ratio:1;border:0;margin:0;padding:0;border-radius:0;position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;touch-action:manipulation;min-width:0;user-select:none;-webkit-tap-highlight-color:transparent}
.chess-square.light{background:#ede5d9}.chess-square.dark{background:#96b0a4}
.chess-square.selected{background:#e6c45b}.chess-square.last-move{box-shadow:inset 0 0 0 99px rgba(247,213,116,.23)}
.chess-square:focus-visible{z-index:4;outline:3px solid #3730a3;outline-offset:-3px}
.chess-square .piece{position:relative;z-index:2;font-size:clamp(1.35rem,6.2vw,3.8rem);line-height:1;text-shadow:0 2px 2px rgba(0,0,0,.16);pointer-events:none}
.chess-square .piece.white{color:#fffaf0;-webkit-text-stroke:1px #1f2937}
.chess-square .piece.black{color:#1e293b;-webkit-text-stroke:.6px #fbf4e8}
.chess-square .hint{position:absolute;width:24%;height:24%;background:rgba(23,63,52,.36);border-radius:50%;z-index:1;pointer-events:none}
.chess-square .hint.capture{width:82%;height:82%;background:transparent;border:5px solid rgba(23,63,52,.38)}
.chess-square .coord{position:absolute;z-index:1;font-weight:800;font-size:clamp(.45rem,1.5vw,.66rem);line-height:1;pointer-events:none}
.chess-square .coord.file{bottom:3px;right:3px}.chess-square .coord.rank{top:3px;left:3px}
.chess-square.light .coord{color:#648476}.chess-square.dark .coord{color:#fffaf0}
.chess-loading{font-size:.8rem;color:#64748b;line-height:1.5}
.chess-info{padding:2px 2px 18px;border-bottom:1px solid #e2e8f0}
.chess-info h2{font-size:1.35rem;margin:10px 0 8px;color:#1e293b}
.chess-info p{font-size:.86rem;color:#64748b;line-height:1.6;margin:0}
.chess-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:17px}
.chess-actions button,.chess-copy,.promotion-options button,.promotion-cancel{font:inherit;font-size:.81rem;font-weight:750;cursor:pointer;border:1px solid #cbd5e1;border-radius:9px;color:#334155;background:#fff;padding:11px 8px;transition:background .12s,border-color .12s}
.chess-actions button:last-child{grid-column:1/-1;background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}
.chess-actions button:hover:enabled,.chess-copy:hover:enabled{background:#f1f5f9}
.chess-actions button:disabled,.chess-copy:disabled{opacity:.48;cursor:not-allowed}
.chess-history-section{margin-top:25px}
.chess-history-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.chess-history-head h3{font-size:.96rem;color:#334155;margin:0}
.chess-history-head span{font-size:.75rem;color:#94a3b8}
.chess-moves{margin:12px 0 14px;padding:12px 10px;list-style:none;max-height:225px;overflow:auto;background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px;min-height:90px;display:grid;align-content:start;gap:7px}
.chess-moves li{display:grid;grid-template-columns:37px 1fr 1fr;gap:10px;font-size:.84rem;color:#334155}
.chess-moves .number{color:#94a3b8;font-variant-numeric:tabular-nums}
.chess-copy{width:100%}
.chess-help{color:#64748b;font-size:.78rem;line-height:1.55;margin:19px 0 3px}
.chess-bottom-link{margin:28px 0 0}
.chess-bottom-link a{color:#2563eb;font-size:.85rem;font-weight:750;text-decoration:none}
.chess-promotion{border:1px solid #d1d5db;border-radius:16px;padding:22px;width:min(400px,calc(100% - 32px));background:#fff;color:#1e293b;box-shadow:0 30px 90px rgba(15,23,42,.25)}
.chess-promotion::backdrop{background:rgba(15,23,42,.6)}
.chess-promotion h2{font-size:1.45rem;margin:0 0 8px}
.chess-promotion p{font-size:.88rem;color:#64748b}
.promotion-options{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:20px 0}
.promotion-options button{font-size:2.5rem;padding:8px 0}
.promotion-cancel{width:100%}
@media(max-width:800px){.chess-layout{grid-template-columns:1fr}.chess-side-panel{max-width:650px}.chess-shell{padding-top:26px}}
@media(max-width:500px){.chess-shell{width:calc(100% - 14px)!important}.chess-board-panel{padding:7px;border-radius:10px}.chess-side-panel{padding:16px}.chess-square .piece{font-size:clamp(1.6rem,9.6vw,2.9rem)}.chess-heading{padding:0 5px}.chess-notice{margin:19px 5px}.chess-player{padding:0 4px}.chess-board{border-width:2px}.chess-square .hint.capture{border-width:3px}}
