.chess-launch{margin-top:14px;border:1px solid #d4b667;background:linear-gradient(180deg,#d0aa58,#8c642d);color:#140e07;padding:13px 19px;font:700 .6rem 'Cinzel',Georgia,serif;text-transform:uppercase;letter-spacing:.11em;cursor:pointer;box-shadow:0 6px 0 #4b3318,0 12px 26px rgba(0,0,0,.42)}.chess-launch:hover{transform:translateY(-2px);filter:brightness(1.08)}
.chess-modal{position:fixed;inset:0;z-index:3500;background:#030403f2;backdrop-filter:blur(8px)}.chess-modal[hidden]{display:none}.chess-panel{position:relative;width:100vw;height:100vh;overflow:hidden;padding:8px 14px 12px;background:radial-gradient(circle at 45% 38%,rgba(61,52,35,.2),transparent 38%),linear-gradient(rgba(5,7,5,.96),rgba(2,3,2,.995)),url('img/wall.webp') center/cover;color:#e9dec4}.chess-close{position:absolute;right:11px;top:7px;border:1px solid rgba(216,185,112,.25);background:#070807cc;color:#dec88f;font-size:1.8rem;width:42px;height:42px;cursor:pointer;z-index:20}
.chess-head{height:64px;display:flex;justify-content:center;align-items:center;gap:28px;padding:2px 52px 4px}.chess-head>div:first-child{text-align:right}.chess-kicker{margin:0;color:#a88d54;font:600 .46rem 'Cinzel',Georgia,serif;text-transform:uppercase;letter-spacing:.17em}.chess-head h2{margin:2px 0 0;font:600 clamp(1.2rem,2.2vw,2rem) 'Cinzel',Georgia,serif;text-transform:uppercase;letter-spacing:.08em}
.chess-mode{display:flex;justify-content:center;gap:7px;flex-wrap:wrap}.chess-mode button,.chess-actions button,.chess-difficulty button{border:1px solid rgba(206,177,109,.34);background:#11130f;color:#d7c8a7;padding:9px 11px;font:600 .48rem 'Cinzel',Georgia,serif;text-transform:uppercase;letter-spacing:.07em;cursor:pointer}.chess-mode button.active,.chess-actions button.primary,.chess-difficulty button.active{background:#b08a44;color:#111;border-color:#d0ad66;font-weight:700}
.chess-game{height:calc(100vh - 86px);display:grid;grid-template-columns:minmax(0,min(calc(100vh - 94px),calc(100vw - 330px))) 292px;gap:14px;justify-content:center;align-items:center}.magic-chess-board{position:relative;width:100%;aspect-ratio:1;background:url('img/chess/board.webp') center/100% 100% no-repeat;filter:drop-shadow(0 22px 32px rgba(0,0,0,.72));user-select:none}.chess-grid{position:absolute;left:14.95%;right:14.95%;top:14.95%;bottom:14.95%;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr)}.chess-square{position:relative;border:0;background:transparent;padding:0;cursor:pointer;overflow:visible}.chess-square:focus-visible{outline:2px solid #e5bd5c;outline-offset:-2px}.chess-square.selected{box-shadow:inset 0 0 0 4px rgba(239,190,69,.85),inset 0 0 24px rgba(231,177,54,.28)}.chess-square.legal::after{content:"";position:absolute;z-index:4;left:50%;top:50%;width:19%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);background:rgba(225,179,63,.72);box-shadow:0 0 10px rgba(212,160,48,.55)}.chess-square.capture::after{content:"";position:absolute;z-index:4;inset:5%;border-radius:50%;border:4px solid rgba(155,53,39,.84);box-shadow:0 0 15px rgba(145,48,35,.42)}.chess-square.last{background:rgba(214,164,56,.14)}.chess-piece{position:absolute;z-index:2;left:-8%;top:-10%;width:116%;height:116%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 7px 5px rgba(0,0,0,.78));pointer-events:none}.chess-piece.black{filter:drop-shadow(0 7px 5px rgba(0,0,0,.86)) brightness(.9) contrast(1.08)}
.chess-sidebar{align-self:stretch;min-height:0;border:1px solid rgba(206,177,109,.18);padding:10px;background:rgba(6,8,6,.78);display:flex;flex-direction:column;gap:9px;overflow:auto}.chess-opponent{display:grid;grid-template-columns:86px 1fr;gap:10px;align-items:center;border-bottom:1px solid rgba(201,175,111,.17);padding-bottom:8px}.chess-opponent img{width:84px;height:112px;object-fit:cover;object-position:50% 22%;filter:drop-shadow(0 8px 10px rgba(155,194,235,.18));border:1px solid rgba(164,189,211,.14)}.chess-opponent small{display:block;color:#91a4b4;font:600 .42rem 'Cinzel';text-transform:uppercase;letter-spacing:.12em}.chess-opponent strong{display:block;color:#e8edf2;font:600 .76rem 'Cinzel';text-transform:uppercase;letter-spacing:.07em;margin-top:3px}.chess-opponent p{margin:5px 0 0;color:#aaa9a3;font-size:.8rem;font-style:italic;line-height:1.35}.chess-status{padding:9px;border:1px solid rgba(206,177,109,.16);font-family:'Cinzel';color:#e2c57e;font-size:.58rem;line-height:1.45;min-height:42px}.chess-difficulty>span,.chess-history>span,.chess-captured span{display:block;color:#8f856f;font:500 .42rem 'Cinzel';text-transform:uppercase;letter-spacing:.1em;margin-bottom:5px}.chess-difficulty>div{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.chess-difficulty button{padding:7px 3px;font-size:.38rem}.chess-captured{display:grid;gap:7px}.chess-captured>div{border-top:1px solid rgba(206,177,109,.1);padding-top:6px}.chess-captured strong{display:flex;flex-wrap:wrap;align-items:center;min-height:24px}.captured-piece{width:26px;height:26px;object-fit:contain;margin-right:-5px;filter:drop-shadow(0 2px 2px #000)}.chess-history{min-height:0;flex:1;display:flex;flex-direction:column}.chess-history #chessMoveList{min-height:58px;overflow:auto;border-top:1px solid rgba(255,255,255,.06);padding-top:5px;color:#a99b80;font-size:.72rem;line-height:1.5}.chess-actions{margin-top:auto}.chess-actions button{width:100%}
.chess-online{position:relative;z-index:1;width:100%;padding:9px;border:1px solid rgba(205,176,107,.28);background:rgba(4,6,4,.96);box-shadow:0 15px 45px #000}.chess-online[hidden]{display:none}.chess-online-create,.chess-online-join{display:flex;justify-content:center;gap:8px;align-items:center;flex-wrap:wrap;margin:5px 0}.chess-online button{border:1px solid #b7934d;background:#8d6932;color:#140e08;padding:8px 11px;cursor:pointer}.chess-online input{background:#0d100d;color:#eadfc5;border:1px solid rgba(205,176,107,.28);padding:9px;text-transform:uppercase;letter-spacing:.16em;width:145px;text-align:center}.chess-online #chessRoomCode{font:700 1.05rem 'Cinzel',Georgia,serif;letter-spacing:.18em;color:#e4c875}.chess-online p{text-align:center;color:#a99d86;margin:5px 0 0;font-size:.82rem}
@media(max-width:860px){.chess-panel{overflow:auto;padding:8px}.chess-head{height:auto;min-height:70px;flex-direction:column;gap:6px;padding:2px 48px 6px}.chess-head>div:first-child{text-align:center}.chess-game{height:auto;grid-template-columns:1fr;align-items:start}.magic-chess-board{width:min(98vw,82vh);margin:auto}.chess-sidebar{width:min(98vw,720px);margin:auto;max-height:none}.chess-opponent{grid-template-columns:72px 1fr}.chess-opponent img{width:70px;height:84px}.chess-online{position:relative;top:auto}}

/* v42.2 — online ovládání patří do postranního panelu, ne přes šachovnici */
.chess-sidebar .chess-online{position:relative!important;inset:auto!important;transform:none!important;width:100%!important;box-sizing:border-box;box-shadow:none;background:rgba(8,10,8,.82)}
.chess-sidebar .chess-online-create,.chess-sidebar .chess-online-join{justify-content:flex-start}.chess-sidebar .chess-online input{min-width:0;width:120px;flex:1}.chess-sidebar .chess-online p{text-align:left;font-size:.72rem;line-height:1.35}.chess-sidebar .chess-online button{font-size:.55rem}.chess-mode button[data-chess-mode="online"]{white-space:nowrap}


/* v43.3 — konečný výsledek přímo přes šachovnici */
.chess-result-overlay{position:absolute;inset:14.9%;z-index:80;display:grid;place-items:center;background:rgba(3,4,3,.70);backdrop-filter:blur(1.5px);pointer-events:none;animation:chessResultIn .28s ease}.chess-result-overlay[hidden]{display:none}.chess-result-text{max-width:86%;padding:22px 30px;border:1px solid rgba(224,190,106,.66);background:linear-gradient(180deg,rgba(18,20,15,.96),rgba(6,8,6,.98));box-shadow:0 20px 55px #000;color:#ead28b;text-align:center;font:700 clamp(1.2rem,3.2vw,2.6rem) 'Cinzel',Georgia,serif;letter-spacing:.07em;text-transform:uppercase;text-shadow:0 3px 14px #000}@keyframes chessResultIn{from{opacity:0}to{opacity:1}}


/* v43.5.3 — jasný tah, perspektiva hráče a rošáda */
.chess-turn-banner{position:absolute;z-index:40;left:50%;top:2.2%;transform:translateX(-50%);min-width:210px;max-width:72%;padding:7px 13px;border:1px solid rgba(225,194,112,.45);background:rgba(7,9,7,.92);color:#dfc786;text-align:center;font:700 clamp(.5rem,1vw,.72rem) 'Cinzel',Georgia,serif;letter-spacing:.11em;text-transform:uppercase;box-shadow:0 7px 22px rgba(0,0,0,.45);pointer-events:none;transition:.2s ease}.chess-turn-banner.is-you{border-color:#e2bf68;color:#fff0b4;background:rgba(61,45,15,.96);box-shadow:0 0 0 2px rgba(226,191,104,.12),0 7px 26px rgba(0,0,0,.55)}.chess-turn-banner.is-opponent{color:#aeb7c0;border-color:rgba(159,176,193,.34);background:rgba(9,13,16,.92)}.chess-turn-banner.is-check{color:#ffd7cc;border-color:rgba(212,91,67,.85);background:rgba(70,15,12,.96);animation:chessCheckPulse 1s ease-in-out infinite alternate}.chess-turn-banner.is-waiting{color:#c0b8a5}.magic-chess-board.your-turn{filter:drop-shadow(0 22px 32px rgba(0,0,0,.72)) drop-shadow(0 0 11px rgba(220,181,83,.22))}.magic-chess-board.opponent-turn{filter:drop-shadow(0 22px 32px rgba(0,0,0,.72)) brightness(.96)}.chess-square.castle::after{width:34%;background:transparent;border:2px solid rgba(113,182,218,.9);box-shadow:0 0 12px rgba(113,182,218,.62)}.chess-square.castle::before{content:'♜';position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%);font-size:clamp(.55rem,1.5vw,1rem);color:rgba(175,218,240,.9);text-shadow:0 2px 8px #000;pointer-events:none}@keyframes chessCheckPulse{from{box-shadow:0 0 0 1px rgba(212,91,67,.1),0 7px 22px #000}to{box-shadow:0 0 0 4px rgba(212,91,67,.18),0 7px 30px #000}}
@media(max-width:560px){.chess-turn-banner{top:1.8%;min-width:165px;padding:5px 8px;letter-spacing:.07em}}

/* v43.6.3 — stejná šachová hra i pro cestu za Kamenem. V příběhové zkoušce je zamčený režim Sir Nicholas. */
.chess-trial-context .chess-mode button:not([data-chess-mode="ai"]){display:none!important}.chess-trial-context .chess-head>div:first-child{text-align:center}


/* v442 — Jednotné, centrované figurky, které NEPŘESAHUJÍ políčko.
   Oprava odstraňuje vzájemně si odporující historické změny velikostí. */
.chess-square{overflow:hidden!important;box-sizing:border-box}
.chess-square .chess-piece{
  position:absolute!important;left:50%!important;right:auto!important;
  top:auto!important;bottom:4%!important;
  width:92%!important;height:91%!important;
  max-width:92%!important;max-height:96%!important;
  object-fit:contain!important;object-position:center bottom!important;
  transform:translateX(-50%)!important;
  transform-origin:center bottom!important;pointer-events:none;
}
.chess-square .chess-piece.piece-pawn{height:72%!important;bottom:8%!important}
.chess-square .chess-piece.piece-rook{height:86%!important;bottom:5%!important}
.chess-square .chess-piece.piece-knight{height:90%!important;bottom:4%!important}
.chess-square .chess-piece.piece-bishop{height:92%!important;bottom:3%!important}
.chess-square .chess-piece.piece-queen{height:94%!important;bottom:3%!important}
.chess-square .chess-piece.piece-king{height:94%!important;bottom:3%!important}

/* v446: upravene obrazove velikosti po kontrole realne sahovnice (1050x1050). */
.chess-grid{left:15.05%!important;right:15.05%!important;top:15.10%!important;bottom:15.30%!important}
.chess-square{overflow:hidden!important}
.chess-square .chess-piece{width:78%!important;max-width:78%!important;height:76%!important;max-height:78%!important;bottom:11%!important;object-position:center bottom!important}
.chess-square .chess-piece.piece-pawn{height:55%!important;bottom:15%!important}
.chess-square .chess-piece.piece-rook{height:67%!important;bottom:12%!important}
.chess-square .chess-piece.piece-knight{height:69%!important;bottom:12%!important}
.chess-square .chess-piece.piece-bishop{height:73%!important;bottom:11%!important}
.chess-square .chess-piece.piece-queen{height:76%!important;bottom:11%!important}
.chess-square .chess-piece.piece-king{height:78%!important;bottom:10%!important}
