/* Shared interaction rules. Keep the original Jugada palette and layout. */
:root{
 --focus:#865006;
 --control:#788598;
 --nav-control-bg:#1c2b3e;
 --nav-control-ink:#e8eef6;
 --nav-control-line:#8ea0b5;
 --nav-control-hover:#24354b;
 --nav-control-option-bg:#152234;
 --nav-control-option-ink:#e8eef6;
 --nav-control-selected-bg:#293a50;
}
body.dark,html.dark{
 --focus:#ffc16b;
 --control:#7890ad;
 --nav-control-bg:#162334;
 --nav-control-ink:#e8eef6;
 --nav-control-line:#8ea0b5;
 --nav-control-hover:#24354b;
 --nav-control-option-bg:#0c1523;
 --nav-control-option-ink:#e8eef6;
 --nav-control-selected-bg:#293a50;
}
:is(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.sidebar :focus-visible{outline-color:#ffc16b}.skip{z-index:100}
button,.button,select,input:not([type=checkbox]):not([type=radio]),summary{min-height:44px}
button,.button,input,select,textarea{border-color:var(--control)}
.game-fields select,#claim-box select,.auth-card input:not([type=checkbox]){border-color:var(--control)}
input,textarea,select{max-width:100%}textarea{font:inherit}summary{cursor:pointer;padding:9px 3px}
label:has(input[type=checkbox]),label:has(input[type=radio]){min-height:44px;cursor:pointer}
.sidebar{overflow-y:auto}.sidebar .side-bottom{padding-top:12px}
#navigation-toggle{display:none}header{height:auto;min-height:83px;gap:14px;padding-top:12px;padding-bottom:12px;flex-wrap:wrap}
.crumb{overflow-wrap:anywhere}.header-right{gap:10px;flex-wrap:wrap}.page-title{flex-wrap:wrap}
.board-row{display:contents}.board .square{min-height:0;min-width:0;border:0;touch-action:pan-y pinch-zoom}
.game-board-wrap .board:has(button){touch-action:pan-y pinch-zoom}
.board .square:focus-visible{outline:3px solid #172338;outline-offset:-5px;box-shadow:inset 0 0 0 2px white;z-index:2}
.board .piece:not(.white){color:#0b1421}
.board .square.selected{outline:3px solid #172338;outline-offset:-3px;box-shadow:inset 0 0 0 6px #ffcf78}
.board .square.last:not(.selected){box-shadow:inset 0 0 0 3px #172338;border-bottom:3px dashed #172338}
.board .square.target:after{display:none}.destination-marker{position:absolute;z-index:2;background:#fff;color:#172338;border:2px solid #172338;border-radius:50%;width:23px;height:23px;display:grid;place-items:center;font-size:20px;line-height:1;bottom:3px;right:3px;pointer-events:none}
.check-marker{position:absolute;top:3px;right:3px;background:#721d1d;color:white;border-radius:4px;padding:0 5px;font:bold 16px/1.4 sans-serif}
.board .coord{font-size:11px!important;line-height:1.2;color:#172338!important;background:#f5f6f8;padding:1px 2px;border-radius:2px;z-index:3}
.board-help{margin:10px 0 6px;line-height:1.5}.board-status{margin:6px 0 12px;color:var(--ink);font-weight:600;line-height:1.5}.continue-card .board-status,.continue-card .board-help{display:none}
.account-dialog{color:var(--ink);max-height:calc(100dvh - 32px);overflow:auto}.promotion-dialog .toolbar{margin-bottom:20px;text-transform:capitalize}
.move-list,.game-moves,.variation-tree{padding:6px;scroll-padding:6px;overscroll-behavior:contain}.move-list button{min-height:36px;min-width:36px}
[aria-current=step],[aria-current=page]{text-decoration:underline;text-underline-offset:4px}.tabs [role=tab]{min-width:0;white-space:normal}
.feedback:focus{outline:3px solid var(--focus);outline-offset:3px}#completion-status{color:var(--ink)}
#toast{max-width:calc(100vw - 32px);z-index:40}
@media(max-width:760px){
 .sidebar{overflow:visible;padding:18px 16px 12px}.sidebar .side-bottom{padding:0;top:13px;right:14px}.side-bottom #theme{width:44px;height:44px}.language-picker select{min-height:44px}
 #navigation-toggle{display:flex;margin-top:18px;background:#293a50;color:white;border-color:#8d9cb0;width:100%;justify-content:space-between}
 .sidebar nav{display:none;margin-top:8px;overflow:visible}.sidebar.navigation-open nav{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;max-height:60dvh;overflow-y:auto;gap:5px;padding:4px}.sidebar.navigation-open nav>a,.sidebar.navigation-open nav>.nav-group{align-self:start;height:auto}
 .sidebar nav a{white-space:normal;min-height:48px;line-height:1.4}.sidebar nav a span{font-size:14px}.sidebar nav a.active{border:2px solid #ffc16b;padding:8px}
 .auth-pending #navigation-toggle{display:none}header{min-height:70px;padding:12px 16px;gap:8px}.crumb{letter-spacing:.4px;font-size:12px;flex:1;min-width:110px}.crumb span{margin:0 5px}.header-right{gap:6px}.header-right button{padding:8px 10px;font-size:14px}
 body{--content-pad-inline:16px}main{padding:24px 16px 40px}.continue-card{grid-template-columns:1fr}.continue-card #intro-board{max-width:240px}.continue-card h2{font-size:30px}.continue-card .eyebrow{font-size:11px}
 footer{padding-bottom:24px}.stats{flex-wrap:wrap}.stats .stat{min-width:0}
 .board .coord{font-size:10px!important}.board-status{font-size:14px}.game-fields{grid-template-columns:1fr 1fr}.toolbar{gap:8px}
 .reader-layout .prose{order:0}.reader-layout .board-panel{order:1}.auth-card{padding:22px}
}
@media(forced-colors:active){.square.selected{outline:3px solid Highlight}.destination-marker{background:Canvas;color:CanvasText;border-color:CanvasText}.board .piece{color:CanvasText;-webkit-text-stroke:0}.board .coord{background:Canvas;color:CanvasText!important}}

.auth-pending .side-bottom #theme{display:inline-flex}

/* Board rows are independent 8-column grids; no row/column swap on small screens. */
.board{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(8,minmax(0,1fr));width:100%;max-width:100%;aspect-ratio:1 / 1;min-width:0;min-height:0;overflow:hidden}
.board .board-row{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:minmax(0,1fr);min-width:0;min-height:0}
.board .board-row>.square{width:100%;height:100%;min-width:0;min-height:0;aspect-ratio:auto;transform:none;grid-column:auto;grid-row:auto;overflow:hidden}
.board .piece-svg{display:block;position:relative;width:85%;height:85%;max-width:100%;max-height:100%;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-drag:none;z-index:1;filter:none;transform:none}
.board .coord{writing-mode:horizontal-tb;transform:none}
@media(max-width:760px){.board{width:100%;aspect-ratio:1 / 1}.board .board-row{grid-template-columns:repeat(8,minmax(0,1fr))}.board .piece-svg{width:88%;height:88%}}
@media(forced-colors:active){.board .piece-svg{forced-color-adjust:none}}

/* Jugada 9.1: the mark stays put, and small screens use a drawer instead of a shrunk sidebar. */
@media(min-width:901px){
 .sidebar{display:flex;flex-direction:column;overflow:hidden;width:220px;height:100dvh;padding:16px 12px 12px}
 .workspace{margin-left:220px;width:calc(100% - 220px)}
 .sidebar .brand,.sidebar .side-label{flex-shrink:0}
 .sidebar nav{flex:1 1 auto;min-height:0;overflow-y:auto;justify-content:flex-start;gap:2px}
 .sidebar .side-bottom{flex-shrink:0;margin-top:auto;padding-top:12px}
 .sidebar .side-bottom .language-picker{width:100%}
 .sidebar .side-bottom .language-picker select{max-width:none}
 .workspace,.shell{min-width:0}
}
@media(max-height:820px) and (min-width:901px){
 .sidebar{padding-top:12px;padding-bottom:10px}
 .sidebar .side-label{margin:8px 8px 6px}
 .sidebar .side-bottom{padding-top:8px}
}
@media(max-width:900px){
 .shell{display:block}
 .workspace{margin-left:0;width:100%;min-width:0}
 body{overflow-x:hidden}
 .sidebar{position:sticky;top:0;z-index:50;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:8px;width:100%;height:auto;min-height:60px;padding:8px 12px;overflow:visible}
 .sidebar .side-label{display:none}
 .sidebar .brand{position:relative;z-index:46;margin:0;max-width:none;flex:0 1 auto;font-size:26px;white-space:nowrap}
 .sidebar .side-bottom{position:relative;z-index:46;top:auto;right:auto;margin:0;padding:0}
 .sidebar>.account-button{margin-left:auto;flex:0 0 auto;align-self:center;min-height:44px;min-width:44px;white-space:nowrap;padding:8px 12px}
 .sidebar.navigation-open .nav-scroll{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-height:0;overflow-y:auto}
 .sidebar.navigation-open .drawer-language:has(.language-picker){display:grid;gap:6px;margin-top:0;padding:12px 0 4px;border-top:1px solid #334153;flex:0 0 auto;position:static;background:var(--nav)}
 .drawer-language-label{margin:0;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#ffc16b}
 .drawer-language .language-picker select{max-width:none;width:100%;min-height:44px}
 .side-bottom #theme{width:44px;height:44px;overflow:hidden;padding:0}
 #navigation-toggle{order:-1;position:relative;z-index:46;display:inline-flex;width:44px;min-width:44px;height:44px;margin:0;padding:0;justify-content:center;background:transparent;color:#fff;border-color:transparent;font-size:22px}
 .sidebar nav{display:none;position:fixed;z-index:45;top:0;left:0;bottom:0;width:min(280px,86vw);margin:0;background:var(--nav);box-shadow:12px 0 28px #00000073}
 .sidebar.navigation-open nav{display:flex;flex-direction:column;align-items:stretch;max-height:none;height:100dvh;overflow:hidden;gap:2px;padding:68px 12px 16px}
 .sidebar.navigation-open nav>a,
 .sidebar.navigation-open .nav-group summary,
 .sidebar.navigation-open nav .nav-group-links a{min-height:44px;white-space:normal}
 #navigation-backdrop{position:fixed;inset:0;z-index:40;width:100%;height:100%;border:0;padding:0;background:#0c152299}
}
.auth-pending #navigation-toggle{display:none}
#navigation-backdrop[hidden]{display:none}
.nav-scroll{display:contents}
@media(min-width:901px){#navigation-toggle,#navigation-backdrop{display:none}.drawer-language{display:none!important}.nav-scroll{display:contents}}
.account-button{white-space:nowrap;min-height:44px}
.drawer-language{display:none}
.language-picker{display:inline-flex;align-items:center;min-width:0;width:100%}
.language-picker select{
 color-scheme:dark;
 appearance:none;
 -webkit-appearance:none;
 -moz-appearance:none;
 width:100%;
 max-width:140px;
 min-height:40px;
 margin:0;
 padding:8px 28px 8px 10px;
 border:1px solid var(--nav-control-line);
 border-radius:8px;
 background-color:var(--nav-control-bg);
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23e8eef6' d='M1.2 1.3 6 6.1l4.8-4.8 1.1 1.1L6 8.3 0.1 2.4z'/%3E%3C/svg%3E");
 background-repeat:no-repeat;
 background-position:right 10px center;
 background-size:12px 8px;
 color:var(--nav-control-ink);
 font:inherit;
 font-size:13px;
 font-weight:650;
 line-height:1.3;
}
.language-picker select option,
.language-picker select option:checked,
.language-picker select option:hover{
 color-scheme:dark;
 background-color:var(--nav-control-option-bg);
 color:var(--nav-control-option-ink);
}
.language-picker select option:checked{
 background-color:var(--nav-control-selected-bg);
 color:var(--nav-control-ink);
 font-weight:700;
}
.language-picker select option:disabled{
 color:#8ea0b5;
 background-color:var(--nav-control-option-bg);
 font-weight:400;
}
.language-picker select:hover{
 border-color:#b8c6d6;
 background-color:var(--nav-control-hover);
}
.language-picker select:focus,
.language-picker select:focus-visible{
 outline:2px solid var(--accent);
 outline-offset:2px;
 border-color:var(--accent);
}
.language-picker select:disabled{
 opacity:.45;
 color:var(--nav-control-ink);
 background-color:var(--nav-control-bg);
 cursor:not-allowed;
}
.public-preferences .language-picker select,
.drawer-language .language-picker select{
 max-width:none;
}
#lesson-body .exercise-split{display:grid;grid-template-columns:minmax(0,min(100%,calc(100dvh - clamp(18rem,34vh,28rem)))) minmax(16rem,1fr);gap:16px 28px;align-items:start}
#lesson-body .exercise-split .exercise-board-slot{grid-column:1;grid-row:1;min-width:0}
#lesson-body .exercise-split .exercise-copy{grid-column:2;grid-row:1;min-width:0}
#lesson-body .exercise-split .exercise-board.board{width:min(100%,calc(100dvh - clamp(18rem,34vh,28rem)));max-width:100%;aspect-ratio:1 / 1}
@media(max-width:900px){#lesson-body .exercise-split{display:flex;flex-direction:column;gap:12px}#lesson-body .exercise-split .exercise-copy{display:contents}#lesson-body .exercise-split .exercise-head{order:1}#lesson-body .exercise-split .exercise-board-slot{order:2;width:100%}#lesson-body .exercise-split .exercise-content{order:3}#lesson-body .exercise-split .exercise-review{order:4}#lesson-body .exercise-split .exercise-board.board{width:100%;max-width:100%}}
.legal-page h1{font-size:clamp(28px,4vw,36px);margin-top:0}
.legal-page h2{font-size:20px;margin-top:28px}
