:root{--paper: #f7efe2;--wood: #d69b56;--wood-dark: #6f3e1d;--ink: #2b170b;--red: #9b2226;--black: #111827;--panel: #fff8ea;--cream: #fffdf7;--line: #c78a43;--muted: #6b5d51;--green: #2f6f4e;--blue: #2563a8;--shadow: rgba(43, 23, 11, .18);color:var(--ink);background:linear-gradient(135deg,rgba(155,34,38,.08),transparent 35%),linear-gradient(180deg,var(--paper),#ead9bf);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button{min-width:0;min-height:2.75rem;border:1px solid var(--red);border-radius:6px;padding:0 1rem;color:#fff;background:linear-gradient(180deg,#b12a2e,var(--red));box-shadow:0 2px #2b170b2e;font:inherit;font-weight:700;line-height:1.1;cursor:pointer}button:hover:not(:disabled){filter:brightness(1.04)}button:focus-visible{outline:3px solid rgba(37,99,168,.55);outline-offset:2px}button.secondary{border-color:#c7b28f;color:var(--ink);background:var(--cream)}button:disabled{border-color:#c9bda8;color:#786c5f;background:#e5dac8;box-shadow:none;cursor:not-allowed}button.locked,button[aria-disabled=true]{border-color:#c9bda8;color:#786c5f;background:#eee4d4;box-shadow:inset 0 -2px #6f3e1d0f}.app-shell{display:grid;min-height:100vh;place-items:center;padding:1rem}.panel{width:min(100%,32rem);border:1px solid #d6bea0;border-radius:8px;padding:2rem;background:var(--panel);box-shadow:0 18px 45px var(--shadow)}.panel h1{margin:0;color:var(--ink);font-size:2rem;line-height:1.1}.brand-title{display:flex;align-items:center;gap:.75rem}.brand-logo{display:block;width:3rem;height:3rem;flex:0 0 3rem;object-fit:contain}.panel p{margin:1rem 0;color:var(--muted)}.actions{display:flex;flex-wrap:wrap;gap:.75rem}.actions button{flex:1 1 9rem}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:1rem;background:#1118276b}.auth-dialog{width:min(420px,100%);border:1px solid #d6bea0;border-radius:8px;padding:1.25rem;background:var(--panel);box-shadow:0 18px 45px var(--shadow)}.auth-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.auth-dialog-header h2{margin:0;color:var(--ink);font-size:1.35rem;line-height:1.2}.auth-dialog-header button{min-height:2.25rem;padding:0 .8rem}.auth-dialog form{display:grid;gap:.85rem}.form-row{display:grid;gap:.4rem;color:var(--ink);font-weight:700}.form-row input{width:100%;min-height:2.75rem;border:1px solid #d6bea0;border-radius:6px;padding:0 .8rem;color:var(--ink);background:var(--cream);font:inherit}.form-row input:focus{outline:3px solid rgba(37,99,168,.28);outline-offset:1px}.auth-code-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(7.5rem,auto);gap:.6rem}.auth-code-row button{white-space:nowrap}.form-error{margin:0;border:1px solid rgba(155,34,38,.35);border-radius:6px;padding:.65rem .75rem;color:var(--red);background:#9b222614;font-weight:700}.auth-note{margin:.9rem 0 0;color:var(--muted);font-size:.9rem;line-height:1.5}.account-status{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem;min-width:0}.account-status button{min-height:2.25rem;padding:0 .75rem;font-size:.9rem;white-space:nowrap}.account-status-main{display:inline-flex;align-items:center;gap:.45rem;max-width:100%;overflow:hidden}.account-status-main span{min-width:0}.account-status-identity{overflow:hidden;text-overflow:ellipsis}.account-status-sync{flex:0 0 auto;color:var(--muted)}.account-panel{display:grid;gap:.75rem;border:1px solid var(--line);border-radius:8px;padding:.9rem;color:var(--ink);background:var(--panel);box-shadow:0 10px 24px var(--shadow)}.account-panel-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-width:0}.account-panel-row button{min-height:2.35rem;padding:0 .85rem;white-space:nowrap}.account-panel-kicker,.account-panel-identity,.account-panel-phone,.account-panel-sync,.account-panel-description,.account-panel-note{margin:0}.account-panel-kicker{color:var(--red);font-size:.76rem;font-weight:800;letter-spacing:0}.account-panel-identity,.account-panel-sync{margin-top:.2rem;font-weight:800;line-height:1.25}.account-panel-phone{margin-top:.2rem;color:var(--muted);font-size:.84rem;font-weight:650;line-height:1.35}.account-panel-description{max-width:18rem;color:var(--muted);font-size:.86rem;font-weight:650;line-height:1.45;text-align:right}.account-panel-note{border-top:1px solid var(--line);padding-top:.7rem;color:var(--muted);font-size:.88rem;line-height:1.5}@media (max-width: 480px){.account-status{justify-content:stretch}.account-status button{flex:1 1 auto}.account-panel-row{align-items:stretch;flex-direction:column}.account-panel-description{max-width:none;text-align:left}}.lobby-shell{align-items:center}.lobby-panel{width:min(100%,44rem)}.lobby-heading{display:grid;gap:.5rem;margin-bottom:.5rem}.lobby-header-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem}.lobby-settings-button{display:inline-grid;width:2.25rem;min-width:2.25rem;min-height:2.25rem;place-items:center;padding:0;border-color:#c7b28f;color:var(--ink);background:var(--cream);font-size:.9rem}.lobby-settings-button svg{display:block}.eyebrow{margin:0;color:var(--red);font-size:.78rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.difficulty-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-bottom:1rem}.difficulty-control button{display:grid;min-height:8.5rem;align-content:start;gap:.35rem;padding:.75rem;border-color:#d1b997;color:var(--ink);text-align:left;background:var(--cream);box-shadow:inset 0 -2px #6f3e1d14}.difficulty-control button.active{border-color:var(--wood-dark);color:#fff;background:linear-gradient(180deg,#8b4b23,var(--wood-dark))}.difficulty-label{font-size:1rem;font-weight:800}.difficulty-strength,.difficulty-behavior{font-size:.78rem;font-weight:600;line-height:1.45}.difficulty-behavior{color:#684832}.difficulty-control button.active .difficulty-behavior{color:#f8dcc0}.difficulty-control button.locked .difficulty-behavior{color:var(--red)}.mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1.5rem}.mode-card{min-height:6rem;border:1px solid #dcc4a5;border-radius:8px;padding:1rem;background:linear-gradient(180deg,rgba(214,155,86,.16),transparent 65%),var(--cream)}.mode-card h2{margin:0 0 .75rem;color:var(--ink);font-size:1rem}.mode-card-title{display:block;margin:0 0 .75rem;color:var(--ink);font-size:1rem;font-weight:800}.mode-card span{color:var(--muted);font-size:.9rem}.mode-card.locked span:last-child{color:var(--red);font-weight:800}.disabled-card{opacity:.74}@media (max-width: 540px){.lobby-header-actions{justify-content:flex-start}}.puzzle-list-shell{align-items:flex-start}.puzzle-list-panel{width:min(100%,64rem)}.puzzle-grid{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}.puzzle-card{display:grid;min-height:14rem;align-content:start;gap:.5rem;border-color:#dcc4a5;color:var(--ink);text-align:left;background:linear-gradient(180deg,rgba(214,155,86,.14),transparent 62%),var(--cream);box-shadow:inset 0 -2px #6f3e1d14}.puzzle-card:hover:not(:disabled),.puzzle-card:focus-visible{border-color:#9b222694}.puzzle-card-title{color:var(--ink);font-size:1.05rem;font-weight:800}.puzzle-card-meta,.puzzle-card-tags,.puzzle-card-record{color:var(--muted);font-size:.84rem;font-weight:700;line-height:1.35}.puzzle-card-description{color:#3d2a1d;font-size:.92rem;font-weight:650;line-height:1.5}.puzzle-card-completed{border-color:var(--green);box-shadow:inset 0 -2px #2f6f4e1f}.puzzle-card-completed .puzzle-card-title:after{content:" ✓";color:var(--green)}.puzzle-progress-bar-container{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.puzzle-progress-bar{flex:1;height:.5rem;border-radius:999px;background:#e3ceb1;overflow:hidden}.puzzle-progress-bar-fill{height:100%;border-radius:999px;background:var(--green);transition:width .3s ease}.puzzle-progress-label{color:var(--muted);font-size:.84rem;font-weight:700;white-space:nowrap}.puzzle-filter{display:flex;gap:.5rem;margin-bottom:1rem}.puzzle-filter button{min-height:2.25rem;padding:0 .8rem}.status-pill.puzzle-failed{border-color:var(--wood-dark);color:#fff;background:linear-gradient(180deg,#8b4b23,var(--wood-dark))}.puzzle-session-panel,.puzzle-result-panel{border:1px solid #d6bea0;border-radius:8px;padding:1rem;background:var(--panel);box-shadow:0 12px 28px #2b170b1a}.puzzle-card-skeleton{min-height:132px;border-radius:12px;background:linear-gradient(90deg,var(--surface-muted, rgba(127, 127, 127, .12)) 25%,var(--surface, rgba(127, 127, 127, .2)) 37%,var(--surface-muted, rgba(127, 127, 127, .12)) 63%);background-size:400% 100%;animation:puzzle-skeleton-shimmer 1.4s ease infinite;cursor:default}@keyframes puzzle-skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.puzzle-loading{padding:2rem;text-align:center;color:var(--muted)}.game-shell{min-height:100vh;padding:1.25rem}.game-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:min(100%,76rem);margin:0 auto 1rem}.game-header-actions{display:flex;align-items:center;gap:.5rem}.game-header-icon-button{display:inline-grid;width:2.75rem;min-width:2.75rem;min-height:2.75rem;place-items:center;padding:0;border-color:#c7b28f;color:var(--ink);background:var(--cream)}.game-header-icon-button svg{display:block}.game-header h1{margin:.15rem 0 0;color:var(--ink);font-size:1.75rem;line-height:1.1}.game-meta{margin:.45rem 0 0;color:var(--muted);font-size:.92rem;font-weight:700}.status-pill{min-width:7rem;border:1px solid #cba77f;border-radius:999px;padding:.55rem .8rem;text-align:center;color:var(--ink);background:var(--panel);box-shadow:0 6px 18px #2b170b1a;font-weight:800}.status-pill.game-over{border-color:var(--red);color:#fff;background:linear-gradient(180deg,#b12a2e,var(--red));animation:game-over-pulse 1.2s ease-in-out 3}@keyframes game-over-pulse{0%,to{box-shadow:0 6px 18px #2b170b1a}50%{box-shadow:0 6px 24px #9b222666}}.confirm-dialog{width:min(380px,100%);border:1px solid #d6bea0;border-radius:8px;padding:1.25rem;background:var(--panel);box-shadow:0 18px 45px var(--shadow)}.confirm-dialog p{margin:0 0 1rem;color:var(--ink);font-size:1rem;line-height:1.5}.confirm-dialog-actions{display:flex;gap:.75rem;justify-content:flex-end}.game-over-dialog{width:min(420px,100%);border:1px solid #d6bea0;border-radius:8px;padding:1.25rem;background:var(--panel);box-shadow:0 18px 45px var(--shadow)}.game-over-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.game-over-dialog-header h2{margin:0;color:var(--ink);font-size:1.5rem;line-height:1.2}.game-over-dialog-close{min-width:44px;min-height:44px;padding:0;font-size:1.2rem;line-height:1}.game-over-dialog-reason{margin:0 0 1.25rem;color:var(--muted);font-size:1rem;font-weight:700}.game-over-dialog-actions{display:flex;flex-wrap:wrap;gap:.75rem}.game-over-dialog-actions button{flex:1 1 8rem}@media (max-width: 520px){.game-over-backdrop{align-items:flex-end;padding:0}.game-over-dialog{width:100%;border-radius:12px 12px 0 0;padding:1.25rem 1rem calc(1.25rem + env(safe-area-inset-bottom))}.game-over-dialog-actions{flex-direction:column}.game-over-dialog-actions button{flex:1 1 auto}}.game-layout{display:grid;grid-template-columns:minmax(20rem,38rem) minmax(17rem,22rem);align-items:start;justify-content:center;gap:1.25rem;width:min(100%,76rem);margin:0 auto}.thinking-indicator{grid-column:1 / -1;justify-self:center;width:1.35rem;height:1.35rem;margin-bottom:.15rem;border:3px solid rgba(43,23,11,.15);border-top-color:var(--wood-dark);border-radius:50%;animation:thinking-spin .8s linear infinite}@keyframes thinking-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.thinking-indicator{animation:none}}.toast{position:fixed;right:1.25rem;bottom:1.25rem;z-index:60;max-width:min(24rem,calc(100vw - 2.5rem));padding:.75rem 1rem;border-radius:8px;color:#fff;background:#2b170beb;box-shadow:0 12px 32px var(--shadow);font-size:.92rem;line-height:1.4;animation:toast-in .2s ease-out}@keyframes toast-in{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.toast{animation:none}}@media (max-width: 720px){.toast{left:1rem;right:1rem;bottom:1rem;max-width:none;text-align:center}}.chess-board{--board-padding: clamp(1.6rem, 5.8vw, 3.25rem);--coordinate-label-height: clamp(1.25rem, 3.2vw, 1.65rem);--point-size: clamp(2rem, 8.4vw, 3.35rem);position:relative;width:min(100%,38rem);aspect-ratio:8 / 9;border:6px solid var(--wood-dark);border-radius:8px;padding:var(--board-padding);background:linear-gradient(90deg,rgba(255,255,255,.16),transparent 18% 82%,rgba(43,23,11,.1)),var(--wood);box-shadow:inset 0 0 0 2px #fff8ea6b,0 18px 38px var(--shadow);overflow:visible}.board-lines{position:absolute;inset:var(--board-padding);border:2px solid rgba(111,62,29,.76);pointer-events:none}.board-line{position:absolute;background:#6f3e1da3}.board-coordinate-labels{position:absolute;right:var(--board-padding);left:var(--board-padding);height:var(--coordinate-label-height);pointer-events:none}.board-coordinate-labels.top{top:0}.board-coordinate-labels.bottom{bottom:0}.coordinate-label{position:absolute;left:calc(var(--file) * 100% / 8);display:grid;width:1.35rem;height:100%;place-items:center;transform:translate(-50%);color:#2b170bb8;font-family:Georgia,Times New Roman,serif;font-size:clamp(.76rem,2.4vw,1rem);font-weight:800;line-height:1;text-shadow:0 1px 0 rgba(255,248,234,.44)}.vertical-line{top:0;bottom:0;left:calc(var(--file) * 100% / 8);width:1px;transform:translate(-.5px)}.vertical-line.river-gap{background:transparent}.vertical-line.river-gap:before,.vertical-line.river-gap:after{position:absolute;right:0;left:0;height:calc(4 * 100% / 9);background:#6f3e1da3;content:""}.vertical-line.river-gap:before{top:0}.vertical-line.river-gap:after{bottom:0}.horizontal-line{right:0;left:0;top:calc(var(--rank) * 100% / 9);height:1px;transform:translateY(-.5px)}.river-label{position:absolute;top:50%;z-index:1;transform:translateY(-50%);color:#6f3e1d6b;font-family:Georgia,Times New Roman,serif;font-size:clamp(1rem,3.4vw,1.75rem);font-weight:800;letter-spacing:.18em;line-height:1}.red-river{left:16%}.black-river{right:16%}.board-square{position:absolute;z-index:2;display:grid;place-items:center;width:var(--point-size);height:var(--point-size);min-width:var(--point-size);min-height:var(--point-size);border:0;border-radius:50%;padding:0;left:calc(var(--board-padding) + var(--point-x) * (100% - var(--board-padding) * 2) / 8);top:calc(var(--board-padding) + var(--point-y) * (100% - var(--board-padding) * 2) / 9);transform:translate(-50%,-50%);color:var(--ink);background:transparent;box-shadow:none}.board-square:hover:not(:disabled){filter:brightness(1.04)}.board-square.selected{outline:3px solid var(--green);outline-offset:2px}.board-square.editor-selected{outline:3px solid #2563eb;outline-offset:2px}.board-square.legal-target{background:radial-gradient(circle at center,rgba(47,111,78,.42) 0 18%,transparent 20%)}.board-square.last-move{box-shadow:0 0 0 4px #9b222652}.board-square.hint-move{box-shadow:0 0 0 4px #2563a86b}.board-square.last-move.hint-move{box-shadow:0 0 0 4px #9b222652,0 0 0 8px #2563a838}.piece-label{position:relative;display:grid;place-items:center;width:100%;height:100%;border:1px solid rgba(96,55,25,.58);border-radius:50%;background:radial-gradient(circle at 32% 22%,rgba(255,255,255,.92) 0 7%,transparent 8%),radial-gradient(circle at 50% 46%,#fff5df 0,#fff5df 48%,#e9c99f 68%,#b9783d);box-shadow:inset 0 2px 3px #fff9,inset 0 -5px 9px #542d1247,inset 0 0 0 4px #fff4dc5c,inset 0 0 0 7px #6538182e,0 2px #5c301375,0 7px 13px #2b170b47;font-size:clamp(1rem,4vw,1.45rem);font-weight:900;line-height:1;text-shadow:0 1px 0 rgba(255,244,220,.52),0 -1px 0 rgba(70,34,12,.18)}.piece-label:before,.piece-label:after{position:absolute;border-radius:50%;content:"";pointer-events:none}.piece-label:before{top:13%;right:13%;bottom:13%;left:13%;border:1px solid currentColor;opacity:.46;box-shadow:inset 0 1px 2px #fff8ea73,0 1px 1px #4f291029}.piece-label:after{top:7%;right:16%;bottom:55%;left:16%;background:linear-gradient(180deg,rgba(255,255,255,.34),transparent);opacity:.72}.board-piece{position:absolute;z-index:3;display:grid;place-items:center;width:var(--point-size);height:var(--point-size);min-width:var(--point-size);min-height:var(--point-size);left:calc(var(--board-padding) + var(--point-x) * (100% - var(--board-padding) * 2) / 8);top:calc(var(--board-padding) + var(--point-y) * (100% - var(--board-padding) * 2) / 9);transform:translate(-50%,-50%);pointer-events:none;transition:left .18s ease,top .18s ease}.board-piece.captured{transition:opacity .28s ease;opacity:0}.board-piece.red .piece-label{color:var(--red);background:radial-gradient(circle at 32% 22%,rgba(255,255,255,.94) 0 7%,transparent 8%),radial-gradient(circle at 50% 46%,#fff7e9 0,#fff7e9 48%,#edcda1 68%,#c68547)}.board-piece.black .piece-label{border-color:#201813c2;color:#24170f;background:radial-gradient(circle at 32% 22%,rgba(255,255,255,.34) 0 7%,transparent 8%),radial-gradient(circle at 50% 46%,#d7b17a 0,#d7b17a 42%,#8e5a2e 67%,#3d2517);box-shadow:inset 0 2px 3px #ffedbe59,inset 0 -5px 9px #18100b70,inset 0 0 0 4px #e0b06838,inset 0 0 0 7px #1b120c40,0 2px #28160d9e,0 7px 13px #2b170b4d;text-shadow:0 1px 0 rgba(232,186,114,.34),0 -1px 0 rgba(0,0,0,.22)}@media (prefers-reduced-motion: reduce){.board-piece,.board-piece.captured{transition:none}}.side-panel{display:grid;gap:1rem;min-width:0}.game-controls,.move-history{border:1px solid #d6bea0;border-radius:8px;padding:1rem;background:var(--panel);box-shadow:0 12px 28px #2b170b1a}.game-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.game-controls button{padding-inline:.7rem;white-space:normal}.game-controls .danger-muted{border-color:#9b222661;color:var(--red);background:#9b222614}.side-panel-global-action{width:100%}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.section-heading h2{margin:0;color:var(--ink);font-size:1rem}.section-heading span,.empty-text{color:var(--muted)}.move-history ol{display:grid;list-style:none;max-height:min(24rem,52vh);margin:0;padding-left:0;overflow:auto;gap:.45rem}.move-history li{color:#3d2a1d;font-size:.92rem}.move-history-row{display:grid;grid-template-columns:2.25rem 3.25rem minmax(0,1fr);align-items:center;gap:.45rem;width:100%;min-height:2.35rem;border:1px solid rgba(111,62,29,.14);border-radius:7px;padding:.38rem .5rem;background:#fff8ea61}.move-history-row span{min-width:0}.move-history-notation{overflow-wrap:anywhere;color:var(--ink);font-weight:700}.move-history-index{color:#3d2a1d8f;font-variant-numeric:tabular-nums;font-weight:800}.move-history-side{display:inline-grid;min-height:1.45rem;place-items:center;border-radius:999px;padding:0 .45rem;font-size:.78rem;font-weight:800}.move-history-side.red{color:var(--red);background:#9b22261a}.move-history-side.black{color:#2b170b;background:#2b170b1a}.move-history li button{border:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.move-history li button:hover{border-color:#6f3e1d3d;background:#d6bea052}.move-history li.active .move-history-row{border-color:#8b4b2361;color:#2b170b;background:linear-gradient(180deg,#d6bea09e,#f4eadbe0);box-shadow:inset 3px 0 0 var(--wood-dark)}.empty-text{margin:0}.board-column{display:grid;gap:.85rem}.replay-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem;border:1px solid #d6bea0;border-radius:8px;padding:.65rem .85rem;background:var(--panel);box-shadow:0 12px 28px #2b170b1a}.replay-controls button{min-width:44px;min-height:44px;padding:.4rem .65rem}.replay-controls-step{min-width:7rem;text-align:center;color:var(--ink);font-variant-numeric:tabular-nums}@media (max-width: 860px){.game-layout,.mode-grid,.difficulty-control{grid-template-columns:1fr}.game-header{align-items:flex-start;flex-wrap:wrap}.status-pill{width:100%}.chess-board{justify-self:center;width:min(100%,38rem)}.move-history ol{max-height:14rem}}@media (max-width: 520px){.app-shell,.game-shell{padding:.75rem}.panel,.game-controls,.move-history{padding:.85rem}.panel h1{font-size:1.75rem}.difficulty-control,.game-controls{grid-template-columns:1fr}.actions{flex-direction:column}.actions button{flex-basis:auto;width:100%}.chess-board{--board-padding: clamp(2.15rem, 8.6vw, 2.7rem);--coordinate-label-height: clamp(1.35rem, 5.6vw, 1.75rem);--point-size: clamp(1.5rem, 7.6vw, 1.88rem);border-width:4px}}.settings-shell{min-height:100vh;padding:1.25rem}.settings-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;width:min(100%,64rem);margin:0 auto 1rem}.settings-page-header h1{margin:.15rem 0 0;color:var(--ink);font-size:1.75rem;line-height:1.1}.settings-page-header .eyebrow{margin-bottom:.15rem}.settings-layout{display:grid;grid-template-columns:minmax(10rem,12rem) minmax(0,42rem);gap:1rem;width:min(100%,64rem);margin:0 auto;align-items:start}.settings-content{border:1px solid #d6bea0;border-radius:8px;background:var(--panel);box-shadow:0 12px 28px #2b170b1a}.settings-nav{display:grid;align-content:start;gap:.5rem;padding:.25rem 0;background:transparent;box-shadow:none;border:0}.settings-nav button{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;text-align:left}.segmented-control button.active,.settings-nav button.active{border-color:var(--wood-dark);color:#fff;background:linear-gradient(180deg,#8b4b23,var(--wood-dark))}.settings-drawer{min-width:0;background:transparent;border:0;box-shadow:none}.settings-modal-backdrop{z-index:40}.settings-modal{display:grid;gap:1rem;width:min(64rem,100%);max-height:min(88vh,54rem);overflow:auto;border:1px solid #d6bea0;border-radius:8px;padding:1rem;background:var(--panel);box-shadow:0 18px 45px var(--shadow)}.settings-modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.settings-modal-header h1{margin:0;color:var(--ink);font-size:1.45rem;line-height:1.15}.settings-modal .settings-layout{grid-template-columns:minmax(10rem,12rem) minmax(0,1fr);width:100%;margin:0}.settings-modal .settings-content{box-shadow:none}.settings-modal-close{display:inline-grid;width:2.5rem;min-width:2.5rem;min-height:2.5rem;place-items:center;padding:0}.settings-modal-close svg{display:block}.quick-settings-drawer{display:grid;gap:1rem;padding:1rem;border:1px solid #d6bea0;border-radius:8px;background:var(--panel);box-shadow:0 12px 28px #2b170b1a}.settings-content{display:grid;gap:1rem;padding:1rem}.settings-content .account-panel{border:0;padding:0;background:transparent;box-shadow:none}.settings-locked-guide{display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px dashed #c7b28f;border-radius:8px;padding:.9rem;background:#f4eadbb8}.settings-locked-guide h2{margin:0 0 .35rem;color:var(--ink);font-size:1.05rem;line-height:1.2}.settings-locked-guide p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.45}.setting-row{display:grid;grid-template-columns:minmax(10rem,1.2fr) minmax(0,2fr);gap:1rem;align-items:center;border-top:1px solid #e3ceb1;padding-top:1rem}.setting-row:first-child{border-top:0;padding-top:0}.setting-row h3{margin:0 0 .35rem;font-size:1.1rem;font-weight:800}.setting-row p{margin:0;color:var(--muted);font-size:.88rem}.setting-control,.segmented-control{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.setting-toggle{min-width:4rem;box-shadow:0 2px #2b170b24}.setting-toggle--on{border-color:var(--green);color:#fff;background:linear-gradient(180deg,#3f8a63,var(--green))}.setting-toggle--off{border-color:#c7b28f;color:var(--muted);background:#f4eadb;box-shadow:inset 0 -2px #2b170b0f}.segmented-control{max-width:100%}.segmented-control button{display:grid;min-width:0;max-width:100%;gap:.35rem;padding:.7rem .85rem;text-align:left}.segmented-control button .difficulty-label{font-size:.98rem}.segmented-control button .difficulty-strength,.segmented-control button .difficulty-behavior{display:block}.segmented-control--difficulty{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;max-width:100%}.segmented-control--difficulty button{display:grid;min-height:5.5rem;align-content:start;gap:.25rem;padding:.6rem .7rem;text-align:left}.segmented-control--delay{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;max-width:100%}.segmented-control--delay button{padding:.6rem .7rem;text-align:center}button.danger{border-color:#7f1d1d;background:linear-gradient(180deg,#b91c1c,#7f1d1d)}@media (max-width: 720px){.settings-layout,.setting-row{grid-template-columns:1fr}.settings-modal-backdrop{place-items:stretch;padding:0}.settings-modal{width:100%;max-height:none;min-height:100vh;min-height:100dvh;align-content:start;grid-auto-rows:max-content;border:0;border-radius:0;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left))}.settings-modal .settings-layout{grid-template-columns:1fr;align-content:start;align-items:stretch}.settings-modal .settings-drawer,.settings-modal .settings-content{width:100%;align-self:start}.settings-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-locked-guide{align-items:stretch;flex-direction:column}.setting-control{justify-content:flex-start}.setting-control>button,.setting-control>.segmented-control{width:100%}.segmented-control--difficulty{grid-template-columns:repeat(2,minmax(0,1fr))}.segmented-control--delay{grid-template-columns:1fr}.segmented-control button{width:100%;max-width:none}}@media (max-width: 860px){.quick-settings-drawer{position:sticky;bottom:0;z-index:5}}.profile-panel{display:grid;gap:1rem;border-top:1px solid #e3ceb1;padding-top:1rem}.profile-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.profile-identity{display:flex;align-items:center;min-width:0;gap:.8rem}.profile-identity h2{margin:.2rem 0 .25rem;color:var(--ink);font-size:1.25rem;line-height:1.18}.profile-identity p{margin:0;color:var(--muted);line-height:1.45}.profile-avatar{display:grid;width:4rem;height:4rem;flex:0 0 4rem;place-items:center;overflow:hidden;border:1px solid #d6bea0;border-radius:8px;object-fit:cover;background:var(--cream);color:var(--wood-dark);font-size:1.25rem;font-weight:800}.profile-avatar--fallback{box-shadow:inset 0 0 0 3px #d69b562e}.profile-avatar-actions,.profile-form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem}.profile-avatar-actions button,.profile-form-actions button{min-height:2.45rem}.profile-file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.profile-message,.profile-muted{margin:0;border-radius:6px;padding:.65rem .75rem;color:var(--wood-dark);background:#d69b5624;font-weight:700}.profile-muted{color:var(--muted);font-weight:600}.profile-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin:0}.profile-summary div{min-width:0;border-top:1px solid #ead8bd;padding-top:.7rem}.profile-summary dt{margin:0 0 .25rem;color:var(--muted);font-size:.82rem;font-weight:700}.profile-summary dd{margin:0;color:var(--ink);overflow-wrap:anywhere;line-height:1.42}.profile-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.profile-form label{display:grid;min-width:0;gap:.4rem;color:var(--ink);font-weight:800}.profile-form input,.profile-form select,.profile-form textarea{width:100%;min-height:2.65rem;border:1px solid #d6bea0;border-radius:6px;padding:0 .75rem;color:var(--ink);background:var(--cream);font:inherit}.profile-form textarea{min-height:5.5rem;padding:.7rem .75rem;resize:vertical}.profile-form input:focus,.profile-form select:focus,.profile-form textarea:focus{outline:3px solid rgba(37,99,168,.28);outline-offset:1px}.profile-form label span{color:var(--red);font-size:.84rem;font-weight:700}.profile-form-wide,.profile-form-actions{grid-column:1 / -1}@media (max-width: 720px){.profile-panel-header{align-items:stretch;flex-direction:column}.profile-panel-header>button{width:100%}.profile-summary,.profile-form{grid-template-columns:1fr}.profile-avatar-actions button,.profile-form-actions button{flex:1 1 10rem}}.setup-shell{min-height:100vh;padding:1.25rem}.setup-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.setup-header h1{margin:.15rem 0 0;color:var(--ink);font-size:1.85rem;line-height:1.1}.setup-header p:not(.eyebrow){margin:.6rem 0 0;color:var(--muted)}.setup-layout{display:grid;grid-template-columns:minmax(20rem,42rem) minmax(18rem,26rem);align-items:start;justify-content:center;gap:1.25rem;width:min(100%,80rem);margin:0 auto}.setup-board-area,.setup-side-panel{display:grid;gap:1rem}.setup-side-panel{align-content:start}.setup-card{border:1px solid #d6bea0;border-radius:8px;padding:1rem;background:var(--panel);box-shadow:0 12px 32px #2b170b1f}.setup-card h2{margin:0 0 .85rem;color:var(--ink);font-size:1rem}.setup-tray{display:grid;gap:1rem}.setup-tray-group{display:grid;gap:.65rem}.setup-tray-group h2,.setup-tray-group h3{margin:0;font-size:.95rem}.setup-piece-grid,.setup-difficulty-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.setup-piece-grid button,.setup-difficulty-grid button,.segmented-control button{min-width:0}.setup-piece-grid button.active,.setup-difficulty-grid button.active{border-color:var(--wood-dark);color:#fff;background:linear-gradient(180deg,#8b4b23,var(--wood-dark))}.setup-difficulty-grid button{display:grid;gap:.25rem;padding:.75rem .8rem;text-align:left}.setup-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.setup-actions button{width:100%}.setup-validation{margin:0;color:var(--ink);font-weight:600}.setup-validation-ok{color:var(--green)}.setup-validation-error{color:var(--red)}.setup-validation-icon{margin-right:.35rem;font-weight:800}.setup-validation ul{margin:0;padding-left:1.1rem}.setup-validation li+li{margin-top:.35rem}.puzzle-result-panel{max-height:0;opacity:0;overflow:hidden;transition:max-height .3s ease,opacity .2s ease}.puzzle-result-panel.puzzle-result-visible{max-height:400px;opacity:1}.primary-action{border-color:#8f571b;background:linear-gradient(180deg,#c47f2d,#8f571b)}@media (max-width: 980px){.setup-layout{grid-template-columns:1fr}}@media (max-width: 720px){.setup-shell{padding:1rem}.setup-piece-grid,.setup-difficulty-grid,.setup-actions{grid-template-columns:1fr}}.records-shell{align-items:flex-start}.records-panel{width:min(100%,56rem)}.records-page-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.records-page-header button{flex:0 0 auto}.records-empty{margin:0;border:1px solid #dcc4a5;border-radius:8px;padding:1rem;color:var(--muted);background:var(--cream);font-weight:700}.record-list{display:grid;gap:.6rem}.record-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;min-height:4.25rem;border-color:#dcc4a5;padding:.75rem .9rem;color:var(--ink);text-align:left;background:var(--cream)}.record-row-main,.record-row-stats,.record-summary{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem .85rem}.record-row-main{min-width:0}.record-row-title{display:inline-flex;flex-wrap:wrap;gap:.35rem;color:var(--ink);font-weight:850}.record-row-title span+span:before{content:"· ";color:var(--muted)}.record-row-time,.record-row-stats,.record-summary{color:var(--muted);font-size:.88rem;font-weight:700}.record-summary{margin-bottom:1rem}.record-filter{display:flex;gap:.5rem;margin-bottom:1rem}.record-filter button{min-height:2.35rem;padding:0 .85rem}.record-filter button.active{border-color:var(--wood-dark);color:#fff;background:linear-gradient(180deg,#8b4b23,var(--wood-dark))}.record-event-list{display:grid;gap:.5rem;margin:0;padding:0;list-style:none}.record-event-row{display:grid;grid-template-columns:2.25rem minmax(0,1fr);align-items:center;gap:.75rem;border:1px solid #dcc4a5;border-radius:8px;padding:.65rem .75rem;color:var(--ink);background:var(--cream);font-weight:750}.record-event-index{color:var(--muted);font-size:.82rem}@media (max-width: 560px){.records-page-header,.record-row{grid-template-columns:1fr}.records-page-header{display:grid}.records-page-header button{width:100%}.record-row-stats{justify-content:flex-start}}.theme-light{--paper: #f8fafc;--panel: #ffffff;--cream: #ffffff;--wood: #d8b98a;--wood-dark: #74512f;--ink: #1f2937;--muted: #64748b}.theme-dark{--paper: #171717;--panel: #26201a;--cream: #31281f;--wood: #9a6a3a;--wood-dark: #3b2416;--ink: #f8ead8;--muted: #d3bfa5;--shadow: rgba(0, 0, 0, .36)}
