.endgame-layout{max-width:1220px;display:grid;grid-template-columns:minmax(0,660px) minmax(280px,1fr);gap:24px;margin:0 auto;padding:0 28px 36px;align-items:start}.endgame-layout .arena{width:100%}.endgame-sidebar{display:grid;gap:16px;min-width:0}.endgame-sidebar h1{margin:8px 0;font-size:1.7rem}.endgame-subtitle{max-width:38em}.endgame-editor{margin-top:16px}.endgame-editor h2{font-size:1rem;margin:0 0 6px}.piece-tray{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:8px 0 14px}.piece-tray button{padding:5px 2px;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:.72rem;min-width:0;background:#10202a}.piece-tray .piece-face{width:100%;max-width:50px;height:auto}.piece-tray button[aria-pressed=true],.editor-tools button[aria-pressed=true]{border-color:var(--gold);background:#ddbd7d25;box-shadow:0 0 0 1px var(--gold)}.editor-tools,.endgame-buttons{display:flex;gap:8px;flex-wrap:wrap}.editor-tools button{flex:1;min-width:86px;min-height:44px}.endgame-buttons button{min-height:44px;flex:1}.endgame-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.endgame-fields label,.endgame-sidebar label{display:flex;flex-direction:column;gap:7px;font-size:.875rem;color:var(--muted)}.endgame-fields select{width:100%;min-height:44px;padding:7px}.endgame-sidebar input,.endgame-sidebar textarea{width:100%;padding:10px;font:inherit;color:var(--ink);background:#11232c;border:1px solid var(--line);border-radius:7px}.endgame-sidebar textarea{resize:vertical}.endgame-sidebar label+label{margin-top:12px}.endgame-sidebar .full{margin-top:10px;min-height:44px}.endgame-feedback{min-height:1.5em;line-height:1.6;font-size:.875rem;color:var(--gold);overflow-wrap:anywhere}.endgame-feedback.error{color:var(--danger)}.endgame-sidebar .position-errors{padding-left:18px;color:var(--danger);font-size:.875rem;line-height:1.6}.endgame-status{margin-top:12px;padding:14px 16px;border:1px solid var(--line);border-radius:8px}.endgame-status strong{color:var(--gold)}.endgame-status p{font-size:.875rem;line-height:1.6;color:var(--muted);margin:6px 0}.endgame-clock{display:flex;align-items:center;gap:10px}.endgame-clock time{font-size:1.2rem}.endgame-clock span{font-size:.78rem;color:var(--muted)}.endgame-history{max-height:300px;overflow:auto;display:grid;gap:4px}.endgame-history button{text-align:left;line-height:1.4;font-weight:400}.endgame-history button.chosen{color:var(--gold);border-color:var(--gold)}.endgame-replay{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.endgame-replay button{flex:1;min-height:44px}.position-list{max-height:340px;overflow:auto;display:grid;gap:8px;margin-top:12px}.position-list button{text-align:left;min-width:0;overflow-wrap:anywhere;line-height:1.5}.position-list button small{display:block;color:var(--muted)}.position-list button.selected{border-color:var(--gold)}.analysis-label{display:inline-block;border:1px solid #ddbd7d77;color:var(--gold);font-size:.73rem;padding:4px 8px;border-radius:99px;margin:10px 0}.analysis-list{display:grid;gap:8px}.analysis-list button{text-align:left;line-height:1.5}.analysis-list button.selected{border-color:var(--gold)}.endgame-sidebar details summary{cursor:pointer;font-size:.9rem;line-height:1.6}.endgame-sidebar .analysis-line{line-height:1.65;padding-left:20px;font-size:.875rem;max-height:230px;overflow:auto}.analysis-line button{font-weight:400;font-size:.82rem;text-align:left;min-height:36px;padding:5px 9px}.endgame-layout #board.editing .board-cell,.endgame-layout #board.editing .piece{cursor:crosshair}.endgame-layout .player{margin:0 0 8px}.endgame-layout #bottom-player{margin:8px 0 0}.endgame-layout .board-tools{flex-wrap:wrap}.endgame-layout .board-tools button{min-height:44px}.endgame-sidebar .trial-note{font-size:.8125rem;color:var(--muted)}.endgame-controls{margin-top:14px}.endgame-controls button{min-height:44px}.position-meta{font-size:.8rem;line-height:1.6;color:var(--muted)}.endgame-layout .player-name strong{white-space:normal;line-height:1.3}.endgame-layout .player-name span{line-height:1.5}.endgame-layout .avatar{flex-shrink:0}.endgame-layout .avatar img{object-fit:cover}.endgame-layout .endgame-history:empty::after{content:'Chưa có nước đi.';color:var(--muted);font-size:.875rem;padding:8px 0}.capacity-row{padding:10px 0;border-bottom:1px solid var(--line);font-size:.875rem;line-height:1.5}.capacity-row button{margin-top:7px}.endgame-layout .river-button{min-width:90px}.endgame-layout .endgame-sidebar .panel h2{font-size:1.05rem}
@media(max-width:900px){.endgame-layout{grid-template-columns:minmax(0,1fr) 280px;gap:16px;padding:0 16px 28px}.piece-tray{gap:3px}.piece-tray button{font-size:.67rem}.endgame-sidebar .panel{padding:14px}}
@media(max-width:720px){.endgame-layout{grid-template-columns:1fr;padding:0 12px 24px;gap:16px}.endgame-layout .arena{max-width:580px;margin:auto}.endgame-sidebar{width:100%;max-width:580px;margin:auto}.endgame-sidebar .panel{padding:18px}.piece-tray button{font-size:.75rem;min-height:68px}.piece-tray{gap:5px}.endgame-editor{padding:13px}.endgame-layout .player{height:64px}.endgame-layout .player-name strong{font-size:.875rem}.endgame-clock time{font-size:1.2rem}.endgame-clock{gap:5px;flex-direction:column}.endgame-layout .board-tools span{font-size:.8rem}.endgame-fields{gap:10px}.endgame-layout .river-button b{font-size:.75rem}.endgame-layout #board .board-cell:focus-visible{stroke:#244f43;stroke-width:2}.endgame-layout .board-result{max-width:80%}}

@media(min-width:721px){.endgame.previewing[data-owner=true] .arena{position:sticky;top:12px;max-width:min(100%,calc((100vh - 280px)*580/646));justify-self:center}.endgame.previewing[data-owner=true] .endgame-status{padding:8px 12px}.endgame.previewing[data-owner=true] .endgame-status p{font-size:.8rem}}

.endgame #owner-controls input[type=checkbox]{width:22px;height:22px;min-height:22px;accent-color:#8fceb5}.endgame #owner-controls label:first-of-type{flex-direction:row;align-items:center;color:var(--ink)}.endgame-hint{padding:12px 0;border-bottom:1px solid var(--line)}.endgame-hint strong{color:var(--gold)}.endgame-hint p{font-size:.85rem;line-height:1.5}.board-tray .piece-tray{padding:8px;background:#182833;border:1px solid var(--line);border-radius:10px}.endgame .room-chat .comments{max-height:260px}.endgame .match-actions{margin-bottom:12px}.endgame .draw-panel{margin-bottom:14px}
.research-numbers{display:flex;justify-content:space-between;gap:12px;font-size:20px;color:var(--gold);margin:14px 0}.research-panel progress{width:100%;height:14px;accent-color:#d8b56b}.research-exports{display:grid;gap:8px;margin-top:18px}.research-panel h3{margin-top:20px}.research-panel .position-list{max-height:250px;overflow:auto}.research-panel .two-buttons{flex-wrap:wrap}#research-message{color:#dfc991}#research-top-tray,#research-bottom-tray{margin:8px 0}#research-replay{border-top:1px solid #44505a;margin-top:14px;padding-top:10px}

/* Shared-room-only layout: never alter the private study or standard chess rooms. */
.endgame[data-room=true] .seat-lease{font-variant-numeric:tabular-nums;color:var(--gold);font-weight:600;line-height:1.6}
.endgame[data-room=true] .player{min-height:68px;height:auto;padding-top:8px;padding-bottom:8px;gap:8px}
.endgame[data-room=true] .player-name{min-width:0;flex:1}
.endgame[data-room=true] .player-name strong{overflow-wrap:anywhere}
.endgame[data-room=true] .endgame-clock,.endgame[data-room=true] #bottom-move-time{flex-shrink:0;font-variant-numeric:tabular-nums}
.endgame[data-room=true] .panel,.endgame[data-room=true] .arena{min-width:0;overflow-wrap:anywhere}
.endgame[data-room=true] [hidden]{display:none!important}
.endgame[data-room=true] .header-actions{flex-wrap:wrap}
@media(max-width:420px){.endgame[data-room=true] header{gap:10px;flex-wrap:wrap}.endgame[data-room=true] .player-name strong{font-size:.82rem}.endgame[data-room=true] .endgame-clock{max-width:64px}.endgame[data-room=true] .endgame-sidebar .panel{padding:14px}.endgame[data-room=true] .endgame-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}

.endgame[data-room=true] #adjudication-panel select{width:100%;min-width:0;min-height:44px;padding:8px;background:#11232c;color:var(--ink);border:1px solid var(--line);border-radius:7px}
.endgame[data-room=true] .archive-moves{max-height:280px;overflow:auto;padding-left:24px;font-size:.875rem;line-height:1.65}
.endgame[data-room=true] #adjudication-panel{border-color:var(--gold)}

.endgame[data-room=true] #archive-select{width:100%;min-width:0;min-height:44px;padding:8px;color:var(--ink);background:#11232c;border:1px solid var(--line);border-radius:7px}
.endgame[data-room=true] #archive-picker{margin-top:12px}
.endgame[data-room=true] #archive-fen{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.75rem;line-height:1.6}

.endgame[data-room=true] .archive-board{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));width:100%;max-width:450px;aspect-ratio:9/10;background:#e6c694;border:2px solid #825c34;border-radius:4px;overflow:hidden;margin:12px auto;pointer-events:none}
.endgame[data-room=true] .archive-cell{min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;border:1px solid #99744155;color:#222;font-weight:700;font-size:clamp(9px,2vw,14px);line-height:1}
.endgame[data-room=true] .archive-cell.archive-river{border-bottom:4px solid #997441}
.endgame[data-room=true] .archive-cell .piece-face{width:100%;height:100%;max-width:50px;max-height:50px}
.endgame[data-room=true] .archive-piece-r{color:#a42220}
.endgame[data-room=true] .archive-replay h3{font-size:.95rem;line-height:1.5}

.endgame[data-room=true] .engine-thinking-panel,.endgame[data-room=true] .draw-policy-note{padding:12px 14px;margin:0 0 12px;border:1px solid var(--line);border-radius:8px;line-height:1.6;overflow-wrap:anywhere}
.endgame[data-room=true] .engine-thinking-panel strong{color:var(--gold)}
.endgame[data-room=true] .engine-thinking-panel p{margin:5px 0;font-size:.875rem}
.endgame[data-room=true] #engine-thinking-progress{font-variant-numeric:tabular-nums}
.endgame[data-room=true] #draw-policy{width:100%;min-width:0;min-height:44px;color:var(--ink);background:#11232c;border:1px solid var(--line);border-radius:7px;padding:8px}
/* Owner-only research workspace; preserve public and guest board geometry. */
body[data-research="true"] .endgame-sidebar{font-size:16px;line-height:1.55}
body[data-research="true"] .panel{scroll-margin-top:20px}
body[data-research="true"] .research-nav{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
body[data-research="true"] .research-nav a{padding:9px 12px;background:#253b49;color:#fff;border-radius:8px;min-height:44px;display:inline-flex;align-items:center;text-decoration:none}
body[data-research="true"] .research-help,body[data-research="true"] .research-selection{background:#203d3b;border-left:4px solid #e5bd72;padding:12px;color:#fff}
body[data-research="true"] .research-disclaimer{background:#342d1f;border:1px solid #cda95e;padding:12px;border-radius:8px;color:#fff2d3}
body[data-research="true"] .research-filters{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
body[data-research="true"] .research-filters label:first-child{grid-column:1/-1}
body[data-research="true"] .research-filters input,body[data-research="true"] .research-filters select,body[data-research="true"] .research-fen textarea{width:100%;min-width:0;box-sizing:border-box;font-size:16px}
body[data-research="true"] .research-fen{margin:14px 0;border-top:1px solid #617582;padding-top:12px}
body[data-research="true"] .research-fen summary{cursor:pointer;min-height:44px}
body[data-research="true"] .position-mini{display:block;width:72px;height:80px;float:right;margin-left:8px;background:#f1d6a6;border:1px solid #937347;flex-shrink:0}
body[data-research="true"] #research-results,body[data-research="true"] #research-exports{border-top:1px solid #617582;margin-top:20px;padding-top:18px}
body[data-research="true"] #research-move-analysis{white-space:pre-line}
body[data-research="true"] .position-list button{overflow-wrap:anywhere;min-height:48px}
body[data-research="true"] .micro{font-size:14px;color:#d9e3eb}
@media(max-width:480px){body[data-research="true"] .research-filters{grid-template-columns:1fr}body[data-research="true"] .research-nav a{flex:1 1 40%;justify-content:center}body[data-research="true"] .research-numbers{flex-wrap:wrap;gap:8px}}
body[data-research="true"] #research-stats{white-space:pre-line}

/* Adaptive analysis is private research only; no guest geometry changes. */
body[data-research="true"] .research-campaign,body[data-research="true"] .research-dossier{border-top:1px solid #617582;margin-top:20px;padding-top:16px;min-width:0}
body[data-research="true"] .research-dossier article{border:1px solid #617582;border-radius:8px;padding:12px;margin:12px 0;background:#172c38;overflow-wrap:anywhere}
body[data-research="true"] .research-dossier details{border:1px solid #617582;border-radius:8px;padding:12px;margin:10px 0;min-width:0;overflow-wrap:anywhere}
body[data-research="true"] .research-dossier details summary{min-height:44px;font-weight:650;color:#fff;cursor:pointer}
body[data-research="true"] .research-dossier p,body[data-research="true"] .research-dossier li,body[data-research="true"] .research-campaign p{white-space:pre-line;overflow-wrap:anywhere}
body[data-research="true"] .research-dossier h4{color:#f5d793;margin:12px 0 8px}
body[data-research="true"] #research-campaign-quality{border-left:4px solid #e5bd72;padding:10px;background:#203d3b;color:#fff}

