:root{color:#eef5ed;background:#0f1211;color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.4;text-rendering:optimizeLegibility}html{background:#0f1211;min-height:100%}*{box-sizing:border-box}body{background-color:#0f1211;margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,#2a463e3d,#0f121100 300px),#0f1211}body.carlsen-zen-mode{height:100dvh;overflow:hidden}#root{background:#0f1211;min-height:100vh}body.carlsen-zen-mode #root{height:100dvh;min-height:100dvh;overflow:hidden}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}.app-shell{width:min(1660px,100%);margin:0 auto;padding:14px}.carlsen-zen-mode .app-shell{display:grid;height:100dvh;max-width:none;overflow:hidden;padding:clamp(6px,1.3vmin,12px);width:100%}.auth-shell{align-items:center;display:grid;min-height:100vh;padding:18px}.auth-card{background:#121917f2;border:1px solid rgba(88,113,105,.42);border-radius:8px;box-shadow:0 16px 42px #00000047;display:grid;gap:12px;margin:0 auto;max-width:520px;padding:20px;width:100%}.auth-admin-card{max-width:880px}.auth-header-row,.auth-client-group-heading,.auth-client-row,.auth-form-row{align-items:center;display:flex;gap:10px;justify-content:space-between}.auth-copy,.auth-empty,.auth-error,.auth-form p,.auth-client-row span,.auth-client-row small{color:#a9b7ad;font-size:.86rem}.auth-error{color:#f3a6a6}.auth-form{display:grid;gap:8px}.auth-mode-switch{background:#101715;border:1px solid rgba(88,113,105,.42);border-radius:8px;display:grid;gap:3px;grid-template-columns:repeat(2,minmax(0,1fr));padding:3px}.auth-mode-switch button{background:transparent;border:0;border-radius:6px;color:#a9b7ad;font:inherit;font-size:.82rem;font-weight:560;min-height:32px;padding:6px 8px}.auth-mode-switch button.active{background:#63998b38;box-shadow:inset 0 0 0 1px #9acbbe29;color:#d2eee6}.auth-form label{color:#c9d8cf;font-size:.78rem;font-weight:560}.auth-form input{background:#101715;border:1px solid #344841;border-radius:6px;color:#eef5ed;min-height:36px;min-width:0;padding:7px 9px;width:100%}.auth-inline-input{background:#101715;border:1px solid #344841;border-radius:6px;color:#eef5ed;font:inherit;font-size:.86rem;min-height:32px;min-width:0;padding:5px 7px;width:min(100%,240px)}.auth-form button,.auth-client-row button,.auth-link-button{background:#2f8b78;border:1px solid #4eb49e;border-radius:6px;color:#fff;font-size:.82rem;font-weight:560;min-height:34px;padding:6px 10px;text-decoration:none;white-space:nowrap}.auth-client-group{border-top:1px solid #2b3a36;display:grid;gap:10px;padding-top:12px}.auth-client-group-heading h2{font-size:.92rem}.auth-client-group-heading span{color:#80d5bd;font-size:.8rem;font-weight:560}.auth-client-list{display:grid;gap:8px}.auth-client-row{background:#101715c2;border:1px solid #2b3a36;border-radius:8px;min-height:62px;padding:9px}.auth-account-row,.account-pair-row{align-items:start}.auth-client-row>div{display:grid;gap:2px;min-width:0}.auth-client-actions{display:flex;flex:0 0 auto;flex-wrap:wrap;gap:8px}.auth-account-name-row{align-items:center;display:flex;gap:8px;min-width:0}.auth-account-name-row .auth-inline-input{width:min(100%,220px)}.auth-client-actions .auth-switch{align-items:center;background:#101715;border-color:#344841;color:#c9d8cf;display:inline-flex;gap:8px;justify-content:flex-start;min-width:136px;padding:5px 8px}.auth-client-actions .auth-switch.active{background:#63998b29;border-color:#69c5ad;color:#d2eee6}.auth-switch-track{align-items:center;background:#26352f;border:1px solid #40544d;border-radius:999px;display:inline-flex;flex:0 0 auto;height:18px;padding:2px;transition:background .14s ease,border-color .14s ease;width:34px}.auth-switch-track span{background:#8ea59b;border-radius:999px;display:block;height:12px;transform:translate(0);transition:transform .14s ease,background .14s ease;width:12px}.auth-switch.active .auth-switch-track{background:#80d5bd;border-color:#9be0cf}.auth-switch.active .auth-switch-track span{background:#0f1211;transform:translate(16px)}.auth-client-row button.danger{background:#7d35352e;border-color:#e8868694;color:#ffd2d2}.auth-token-code{background:#0b0f0e;border:1px solid #2b3a36;border-radius:6px;color:#eef5ed;display:block;font-size:.76rem;margin-top:5px;max-width:100%;overflow-x:auto;padding:6px 7px}.auth-client-row strong,.auth-client-row span,.auth-client-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-header{display:block;align-items:center;justify-content:space-between;gap:14px;padding:6px 2px 14px}.carlsen-zen-mode .app-header,.carlsen-zen-mode .account-panel{display:none}.header-main{min-width:0}.header-main h1{padding-block:2px}.header-controls{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-top:10px}.eyebrow{color:#a9d8ca;font-size:.78rem;font-weight:560;letter-spacing:0;margin:0 0 2px}h1,h2,p{margin:0}h1{font-size:2.42rem;font-weight:580;line-height:1}h2{font-size:1rem;font-weight:580}.header-stats{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;min-width:0}.app-mode-tabs{background:#131b18eb;border:1px solid rgba(88,113,105,.42);border-radius:8px;display:inline-grid;gap:3px;grid-auto-columns:minmax(82px,1fr);grid-auto-flow:column;padding:3px}.app-mode-tabs button{align-items:center;background:transparent;border:0;border-radius:6px;color:#a9b7ad;display:inline-flex;gap:6px;justify-content:center;font-size:.78rem;font-weight:560;min-height:28px;padding:4px 10px;white-space:nowrap}.app-mode-tabs button svg{flex:0 0 auto}.app-mode-tabs button.active{background:#63998b38;box-shadow:inset 0 0 0 1px #9acbbe29;color:#d2eee6}.header-stats span,.result-pill,.status-line{border:1px solid #344841;border-radius:8px;background:#18201dcc;color:#c9d8cf;font-size:.8rem;font-weight:520;padding:5px 8px}.result-pill{flex:0 0 auto;white-space:nowrap}.mode-button{align-items:center;background:#2f8b78;border:1px solid #4eb49e;border-radius:8px;color:#fff;display:inline-flex;gap:6px;font-size:.82rem;font-weight:560;min-height:32px;padding:6px 9px;text-decoration:none;white-space:nowrap}.mode-button svg{flex:0 0 auto}.status-line{border-radius:8px;margin-bottom:10px}.account-panel{display:grid;gap:9px;margin-bottom:12px}.account-actions{display:flex;gap:8px}.account-actions .secondary-button{min-height:32px}.account-form{border-top:1px solid #2b3a36;padding-top:9px}.account-chip-row{display:flex;flex-wrap:wrap;gap:6px}.account-chip-row span{background:#25312dc7;border-radius:999px;color:#cbd8ce;font-size:.74rem;font-weight:560;line-height:1;padding:4px 7px}.desktop-layout{display:grid;grid-template-columns:minmax(220px,310px) minmax(520px,1fr) minmax(250px,340px);gap:18px;align-items:start}.analysis-workspace{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(230px,310px) minmax(520px,1fr) minmax(260px,360px)}.finder-workspace{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(210px,300px) minmax(520px,1fr) minmax(250px,330px)}.finder-workspace.zen-mode{align-items:stretch;grid-template-columns:minmax(0,1fr);height:100%;margin:0;max-height:100%;max-width:100%;overflow:hidden;width:100%}.finder-workspace.zen-mode .finder-left-panel,.finder-workspace.zen-mode .finder-right-panel{display:none}.finder-workspace.zen-mode .finder-board-area{align-items:center;display:grid;column-gap:clamp(8px,1.6vmin,18px);grid-template-areas:"board clock" "promotion clock";grid-template-columns:minmax(0,1fr) clamp(112px,17vw,220px);grid-template-rows:minmax(0,1fr) auto;height:100%;margin:0 auto;max-height:100%;max-width:min(100%,1120px);overflow:hidden;width:100%}.finder-workspace.zen-mode .zen-play-hud{align-self:center;grid-area:clock;justify-self:stretch;margin:0;max-width:100%;width:100%}.finder-workspace.zen-mode .game-heading{display:none}.finder-workspace.zen-mode .board-shell{align-self:center;grid-area:board;height:auto;justify-self:center;max-width:min(100%,calc(100dvh - clamp(18px,3vmin,30px)));width:min(100%,calc(100dvh - clamp(18px,3vmin,30px)))}.finder-workspace.zen-mode .promotion-chooser{grid-area:promotion;justify-self:center}.zen-icon-button{align-items:center;background:#111816b3;border:1px solid rgba(139,167,156,.36);border-radius:8px;color:#e4efe8;display:inline-flex;height:36px;justify-content:center;padding:0;position:fixed;right:14px;top:14px;width:36px;z-index:45}.zen-icon-button:hover{background:#26342fe0;border-color:#80d5bd9e}.zen-exit-button{right:14px}.zen-flip-button{right:58px}@media(max-height:560px){.finder-workspace.zen-mode .board-shell{max-width:min(100%,calc(100dvh - 18px));width:min(100%,calc(100dvh - 18px))}.zen-play-hud{gap:4px}.zen-play-hud .play-clock-side{padding-bottom:6px}.zen-play-hud .play-clock-side strong{font-size:clamp(1.35rem,5.2vmin,2.25rem)}.zen-play-hud .play-clock-side strong.clock-infinite{font-size:clamp(1.05rem,4vmin,1.65rem)}.zen-play-hud p{display:none}.zen-icon-button{top:8px}.zen-exit-button{right:8px}.zen-flip-button{right:50px}}@media(max-width:620px){.finder-workspace.zen-mode .finder-board-area{column-gap:6px;grid-template-columns:minmax(0,1fr) clamp(86px,22vw,116px)}}.analysis-left-panel,.analysis-right-panel,.analysis-board-area,.analysis-import-card,.finder-left-panel,.finder-right-panel,.finder-board-area,.finder-card{display:grid;gap:12px}.finder-left-panel,.finder-right-panel{max-height:calc(100vh - 142px);overflow:auto;padding-right:2px}.analysis-actions{display:grid;gap:6px;grid-template-columns:minmax(76px,1fr) minmax(52px,.72fr) minmax(76px,1fr)}.analysis-actions .file-button,.analysis-actions .secondary-button{font-size:.76rem;gap:4px;min-width:0;padding-inline:5px}.analysis-actions .file-button svg,.analysis-actions .secondary-button svg{height:16px;width:16px}.analysis-pgn-textarea{background:#111816;border:1px solid #344841;border-radius:8px;color:#eef5ed;font:inherit;font-size:.78rem;min-height:132px;outline:0;padding:10px;resize:vertical;width:100%}.analysis-pgn-textarea:focus{border-color:#69c5ad}.analysis-message,.analysis-board-hint,.finder-setup-status,.finder-player-note,.finder-result p,.finder-game-source span{color:#9caea3;font-size:.78rem}.finder-actions{display:flex;gap:8px}.finder-actions .primary-button,.finder-actions .secondary-button{flex:1;font-size:.8rem;min-width:0}.finder-actions .primary-button span,.finder-actions .secondary-button span{white-space:nowrap}.connection-toast{align-items:center;background:#3a1010;border:1px solid #d85858;border-radius:8px;box-shadow:0 16px 38px #0000005c;color:#ffe4e4;display:flex;font-size:.84rem;font-weight:560;gap:10px;justify-content:space-between;max-width:min(420px,calc(100vw - 28px));padding:9px 11px;position:fixed;right:14px;top:14px;z-index:40}.connection-toast button{align-items:center;background:transparent;border:0;color:inherit;display:inline-flex;flex:0 0 auto;justify-content:center;min-height:26px;padding:0;width:26px}.finder-header-action{flex:0 0 auto;justify-content:space-between;min-height:34px;padding:6px 9px;white-space:nowrap}.finder-header-actions{display:flex;flex:0 0 auto;gap:8px;justify-content:flex-end}.finder-header-action.shared{min-width:166px}.play-start-button{min-width:120px}.zen-toggle-button{min-width:92px}.finder-header-label{flex:1 1 auto}.finder-header-counter{align-items:center;background:#11181647;border:1px solid rgba(209,230,222,.22);border-radius:999px;display:inline-flex;flex:0 0 42px;font-size:.72rem;font-weight:560;justify-content:center;line-height:1;padding:3px 6px}.finder-lobby-panel{display:grid;gap:9px}.play-clock-settings{align-items:end;display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr)) auto}.play-clock-settings .secondary-button{min-height:34px;min-width:74px;padding-inline:8px}.play-clock-settings input:disabled{color:#8da099;opacity:.75}.finder-mode-switch{display:grid;gap:6px}.finder-mode-switch>span{color:#b7c7be;font-size:.74rem;font-weight:560}.finder-mode-tabs{background:#101715;border:1px solid rgba(88,113,105,.42);border-radius:8px;display:grid;gap:3px;grid-template-columns:repeat(2,minmax(0,1fr));padding:3px}.finder-mode-tabs.locked{background:#111816}.finder-mode-tabs button{align-items:center;background:transparent;border:0;border-radius:6px;color:#a9b7ad;display:inline-flex;gap:6px;justify-content:center;font:inherit;font-size:.78rem;font-weight:560;min-height:28px}.finder-mode-tabs button:disabled{cursor:default;opacity:.58}.finder-mode-tabs button svg{flex:0 0 auto}.finder-mode-tabs button.active{background:#63998b38;box-shadow:inset 0 0 0 1px #9acbbe29;color:#d2eee6}.finder-mode-tabs button.active:disabled{opacity:1}.finder-setup-status{background:#1118169e;border:1px solid #31423d;border-radius:8px;line-height:1.35;padding:7px 9px}.finder-lobby-code{align-items:center;background:#111816;border:1px solid #31423d;border-radius:8px;display:flex;gap:10px;justify-content:space-between;padding:7px 9px}.finder-lobby-code span,.finder-field span{color:#b7c7be;font-size:.74rem;font-weight:560}.finder-lobby-code strong{color:#edf6ef;font-size:.94rem;font-weight:560;letter-spacing:.02em}.finder-lobby-code.play-lobby-code{background:transparent;border-color:transparent;padding:0 1px}.finder-lobby-code.invite-code{background:#2f8b7833;border-color:#80d5bd61}.finder-lobby-panel.invited .finder-actions .primary-button:disabled{opacity:.46}.finder-field{display:grid;gap:5px}.finder-field.requires-input span{color:#ffb7b7}.finder-field.requires-input input{border-color:#d85858;box-shadow:inset 0 0 0 1px #d8585852}.finder-field input{background:#111816;border:1px solid #344841;border-radius:8px;color:#eef5ed;font:inherit;font-size:.82rem;min-height:34px;min-width:0;outline:0;padding:6px 8px;width:100%}.finder-field input:focus{border-color:#69c5ad}.secondary-button.active{background:#2f8b7847;border-color:#69c5ad;color:#a8ead9}.finder-game-source{border-top:1px solid #31423d;display:grid;gap:3px;margin-top:12px;padding-top:10px}.finder-game-source strong{color:#edf6ef;font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finder-player-list{display:grid;gap:7px}.finder-player-card{background:#18211ec7;border:1px solid rgba(88,113,105,.4);border-radius:8px;display:grid;gap:4px;padding:8px}.finder-player-card.active{border-color:#69c5ad;box-shadow:inset 3px 0 #69c5ad}.finder-player-row{align-items:center;display:flex;gap:8px;justify-content:space-between;min-height:26px}.finder-player-name{align-items:center;display:flex;gap:6px;min-width:0}.finder-player-tools{align-items:center;display:flex;flex:0 0 auto;gap:6px;justify-content:flex-end}.player-icon-button{align-items:center;background:#101715;border:1px solid #344841;border-radius:999px;color:#a9b7ad;display:inline-flex;height:24px;justify-content:center;padding:0;width:24px}.player-icon-button:disabled{opacity:.55}.bot-strength-field{align-items:center;display:grid;gap:6px;grid-template-columns:auto minmax(0,1fr);margin-top:2px}.bot-strength-field span{color:#8da099;font-size:.72rem;font-weight:560}.bot-strength-field select{background:#101715;border:1px solid #344841;border-radius:6px;color:#dce7df;font:inherit;font-size:.74rem;min-height:28px;padding:3px 7px;width:100%}.finder-player-name strong,.finder-player-move strong{color:#eef5ed;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finder-player-name span,.finder-player-chip,.finder-player-move span{border-radius:999px;font-size:.72rem;font-weight:560;line-height:1;padding:3px 6px;white-space:nowrap}.finder-player-name span{background:#2f8b7838;color:#a8ead9}.finder-player-name .finder-player-color{border:1px solid rgba(238,245,237,.42);border-radius:999px;flex:0 0 auto;height:12px;padding:0;width:12px}.finder-player-chip{background:#9caea31f;color:#c9d8cf;flex:0 0 auto}.finder-player-chip.ready,.finder-player-chip.solved{background:#62dc8d29;color:#a8eab9}.finder-player-chip.spectating{background:#d8a25f29;color:#ffd9aa}.finder-player-chip.opening{background:#76bdf724;color:#bfe1ff}.finder-player-chip.pending{background:#cdd8d224;color:#d8e1dc}.finder-player-chip.missed{background:#ff5c5c29;color:#ffb5b5}.finder-player-move{align-items:center;color:#9caea3;display:flex;gap:7px;justify-content:space-between;min-width:0}.finder-player-move span{background:#d8a25f2e;color:#efc889;flex:0 0 auto}.finder-player-note{overflow-wrap:anywhere}.opening-helper-switch{align-items:center;background:#101715;border:1px solid #344841;border-radius:999px;color:#a9b7ad;display:inline-flex;font:inherit;font-size:.7rem;font-weight:560;gap:5px;min-height:25px;padding:3px 7px 3px 5px;white-space:nowrap}.opening-helper-switch.active{background:#63998b29;border-color:#69c5ad;color:#d2eee6}.opening-helper-switch svg{flex:0 0 auto}.opening-helper-track{align-items:center;background:#26352f;border:1px solid #40544d;border-radius:999px;display:inline-flex;flex:0 0 auto;height:15px;padding:2px;width:28px}.opening-helper-track span{background:#8ea59b;border-radius:999px;display:block;height:9px;transform:translate(0);transition:transform .14s ease,background .14s ease;width:9px}.opening-helper-switch.active .opening-helper-track{background:#80d5bd;border-color:#9be0cf}.opening-helper-switch.active .opening-helper-track span{background:#0f1211;transform:translate(13px)}.play-standing-row,.play-pairing{align-items:center;display:flex;gap:7px;min-width:0}.play-standing-row{color:#9caea3;font-size:.74rem;justify-content:flex-end}.play-standing-row span,.play-standing-row small{background:#9caea31f;border-radius:999px;color:#c9d8cf;font-size:.72rem;font-weight:560;line-height:1;padding:3px 6px}.play-standing-row .play-record-pill{min-width:58px;text-align:center}.play-standing-row small{color:#80d5bd}.play-pairing{background:#18211ec7;border:1px solid rgba(88,113,105,.4);border-radius:8px;flex-wrap:wrap;justify-content:space-between;padding:8px 9px}.play-pairing span{color:#eef5ed;font-size:.84rem;font-weight:560;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.play-pairing strong{color:#d8a25f;flex:0 0 auto;font-size:.72rem;font-weight:560}.play-pairing small{background:#d8a25f29;border:1px solid rgba(216,162,95,.24);border-radius:999px;color:#ffd9aa;flex:0 0 auto;font-size:.68rem;font-weight:560;line-height:1;margin-left:auto;padding:3px 6px}.play-clock-display{align-items:end;display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.play-clock-side{border-bottom:1px solid rgba(114,139,130,.34);display:grid;gap:2px;min-width:0;padding:0 2px 8px}.play-clock-side:last-child{text-align:right}.play-clock-side span,.play-clock-side small{color:#8da099;font-size:.72rem;font-weight:560;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.play-clock-side strong{color:#dce7df;font-size:clamp(1.75rem,3.8vw,2.75rem);font-variant-numeric:tabular-nums;font-weight:520;letter-spacing:0;line-height:.95;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.play-clock-side strong.clock-infinite{font-size:clamp(1.35rem,2.6vw,2.1rem)}.play-clock-side.active{border-color:#80d5bd}.play-clock-side.active strong{color:#fff}.zen-play-hud{display:grid;gap:clamp(8px,1.6vmin,14px)}.zen-play-hud.untimed{gap:clamp(6px,1.2vmin,10px)}.zen-play-hud .play-clock-display{align-items:stretch;gap:clamp(14px,2.6vmin,24px);grid-template-columns:1fr}.zen-play-hud .play-clock-side{padding-bottom:clamp(8px,1.4vmin,12px);text-align:left}.zen-play-hud .play-clock-side:last-child{text-align:left}.zen-play-hud .play-clock-side strong{font-size:clamp(1.75rem,5.4vmin,3.4rem)}.zen-play-hud .play-clock-side strong.clock-infinite{font-size:clamp(1.15rem,3.8vmin,2.3rem)}.zen-play-hud p{color:#b7c7be;font-size:clamp(.72rem,1.6vmin,.9rem);line-height:1.25;margin:0;text-align:left}.zen-player-strip{display:grid;gap:8px}.zen-player-line{border-bottom:1px solid rgba(114,139,130,.28);display:grid;gap:2px;min-width:0;padding:0 2px 7px}.zen-player-line.active{border-color:#80d5bd}.zen-player-line span{color:#8da099;font-size:.68rem;font-weight:560}.zen-player-line strong{color:#dce7df;font-size:clamp(.82rem,1.9vmin,1.05rem);font-weight:560;line-height:1.15;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.zen-player-line.active strong{color:#fff}.play-wide-button{width:100%}.play-action-row{display:grid;gap:7px;grid-template-columns:repeat(3,minmax(0,1fr))}.play-action-row .secondary-button{font-size:.76rem;min-width:0;padding-inline:6px}.play-admin-row{align-items:center;background:#18211ec7;border:1px solid rgba(88,113,105,.4);border-radius:8px;display:flex;gap:8px;justify-content:space-between;padding:7px 8px}.play-admin-row span,.play-notice{color:#9caea3;font-size:.78rem}.play-admin-row .secondary-button{min-height:32px}.secondary-button.danger{background:#7d35352e;border-color:#e8868694;color:#ffd2d2}.finder-result{background:#18211ec7;border:1px solid rgba(88,113,105,.4);border-radius:8px;display:grid;gap:6px;padding:9px}.finder-result.solved{border-color:#62dc8d8f}.finder-result.missed{border-color:#ff5c5c7a}.finder-result-line{align-items:center;display:flex;gap:8px;justify-content:space-between}.finder-result-line strong{color:#edf6ef;font-size:1rem}.finder-result-line span{background:#2f8b783d;border-radius:999px;color:#a8ead9;font-size:.74rem;font-weight:560;padding:3px 7px}.analysis-game-list{display:grid;gap:7px;max-height:34vh;overflow:auto;padding-right:2px}.analysis-board-hint{margin:-2px auto 0;text-align:center;width:min(100%,72vh)}.left-rail,.right-rail,.board-area{display:grid;gap:12px}.left-rail,.right-rail{max-height:calc(100vh - 142px);overflow:auto;padding-right:2px}.panel{background:#141c19e6;border:1px solid rgba(88,113,105,.42);border-radius:8px;box-shadow:0 10px 26px #0003;padding:10px}.panel-title,.panel-subtitle,.atlas-title{align-items:center;color:#edf6ef;display:flex;gap:8px;font-size:.88rem;font-weight:580}.panel-title-detail{color:#80d5bd;font-size:.72rem;font-weight:560;margin-left:auto}.panel-title-action{align-items:center;background:#101715;border:1px solid #344841;border-radius:999px;color:#d2ded8;display:inline-flex;font:inherit;font-size:.72rem;font-weight:560;gap:5px;margin-left:auto;min-height:25px;padding:3px 8px}.panel-title-action:disabled{color:#73847b;opacity:.68}.panel-subtitle{margin-top:14px}.import-panel{display:grid;grid-template-columns:1fr 1fr;gap:8px}.import-panel .panel-title{grid-column:1 / -1}.file-button,.primary-button,.secondary-button,.move-controls button,.mobile-tabs button{align-items:center;border:1px solid #3a4e47;border-radius:7px;display:inline-flex;gap:7px;justify-content:center;min-height:36px;padding:7px 9px;text-decoration:none}.file-button,.primary-button{background:#2f8b78;border-color:#4eb49e;color:#fff;font-weight:560}.secondary-button,.move-controls button{background:#202c28;color:#eef5ed;font-weight:540}.file-button span,.primary-button span,.secondary-button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-button svg,.primary-button svg,.secondary-button svg{flex:0 0 auto}.icon-button{aspect-ratio:1;min-width:36px;padding:7px}.file-button input{display:none}.search-box{align-items:center;background:#111816;border:1px solid #344841;border-radius:8px;display:flex;gap:8px;padding:7px 9px}.search-box input{background:transparent;border:0;color:#eef5ed;min-width:0;outline:0;width:100%}.game-list{display:grid;gap:7px;margin-top:10px;max-height:min(42vh,410px);overflow:auto;padding-right:2px}.game-row,.similar-row{background:#18211ec7;border:1px solid rgba(88,113,105,.4);border-radius:8px;color:#edf6ef;display:grid;gap:3px;padding:9px;text-align:left;width:100%}.game-row.selected{border-color:#69c5ad;box-shadow:inset 3px 0 #69c5ad}.game-row-main{font-size:.9rem;font-weight:580;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-row-meta,.similar-row small,.muted,.game-heading p{color:#9caea3;font-size:.78rem}.versus{color:#d8a25f;font-size:.76rem;font-weight:560}.game-heading{align-items:center;display:flex;justify-content:space-between;gap:12px;min-height:38px;max-width:100%;min-width:0;overflow:hidden}.game-heading>div{min-width:0}.game-heading h2,.game-heading p{overflow:hidden;text-overflow:ellipsis}.game-heading h2,.game-heading p{white-space:nowrap}.game-heading-meta{align-items:center;display:flex;flex-wrap:wrap;gap:3px 8px}.game-heading-meta span{min-width:0}.game-heading-meta span:not(:last-child):after{color:#5d7169;content:"·";margin-left:8px}.game-heading-auto{flex:0 0 auto}.board-shell{aspect-ratio:1 / 1;margin:0 auto;max-width:min(78vh,680px);width:100%}.chess-board{aspect-ratio:1 / 1;border:6px solid #111816;border-radius:8px;box-shadow:0 22px 42px #0000005c;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));overflow:hidden;position:relative;touch-action:none;width:100%}.board-arrows,.board-annotations{top:0;right:0;bottom:0;left:0;pointer-events:none;position:absolute;z-index:2}.board-annotation-arrow{opacity:.78;stroke:#8fec74d1;stroke-linecap:round;transition:opacity .14s ease,stroke-width .14s ease}.board-annotation-arrow.held{opacity:.92}.board-annotation-circle{fill:#8fec7429;opacity:.88;stroke:#8fec74e6;stroke-width:1.25}.board-square{align-items:center;aspect-ratio:1 / 1;border:0;color:inherit;cursor:pointer;display:flex;justify-content:center;padding:0;position:relative;touch-action:none;-webkit-user-select:none;user-select:none}.square-light{background:#d9d5ba}.square-dark{background:#4f7a67}.square-highlight:after{background:#ffffff4d;border:2px solid rgba(255,255,255,.74);content:"";top:0;right:0;bottom:0;left:0;position:absolute}.square-premove:after{background:#dc303a33;border:2px solid rgba(255,86,96,.7);content:"";top:0;right:0;bottom:0;left:0;position:absolute;z-index:1}.square-selected:before{border:3px solid rgba(120,214,188,.9);content:"";top:0;right:0;bottom:0;left:0;position:absolute;z-index:2}.square-target:before{background:#78d6bc29;content:"";top:0;right:0;bottom:0;left:0;position:absolute;z-index:1}.square-feedback-good:after,.square-feedback-bad:after,.square-feedback-pending:after{content:"";top:0;right:0;bottom:0;left:0;position:absolute;z-index:1}.square-feedback-good:after{background:#4dce7538;border:2px solid rgba(98,220,141,.72)}.square-feedback-bad:after{background:#ff525233;border:2px solid rgba(255,92,92,.76)}.square-feedback-pending:after{background:#cdd8d229;border:2px solid rgba(205,216,210,.52)}.target-dot{background:#1118165c;border-radius:999px;height:22%;position:absolute;width:22%;z-index:2}.analysis-badge{align-items:center;border:1px solid rgba(10,12,11,.58);border-radius:999px;box-shadow:0 3px 10px #0000003d;color:#08110d;display:inline-flex;font-size:.72rem;font-weight:620;gap:2px;justify-content:center;min-height:24px;min-width:24px;padding:2px 5px;position:absolute;right:6px;top:6px;z-index:5}.analysis-badge.only{animation:analysis-pop .9s ease-in-out infinite;background:#58b6ff;color:#061521}.analysis-badge.best,.analysis-badge.excellent{background:#62dc8d}.analysis-badge.bad{background:#ff5c5c;color:#230606}.analysis-badge.pending{background:#cdd8d2}.king-result-badge{align-items:center;border:1px solid rgba(6,8,7,.62);border-radius:999px;box-shadow:0 4px 14px #00000047;display:inline-flex;height:28px;justify-content:center;left:50%;min-width:28px;padding:0;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:28px;z-index:6}.king-result-overlay{top:0;right:0;bottom:0;left:0;pointer-events:none;position:absolute;z-index:4}.king-result-overlay.win{background:#f1c85b52}.king-result-overlay.checkmate{background:#242b275c}.king-result-overlay.timeout{background:#76bdf74d}.king-result-overlay.resigned{background:#ff8f6252}.king-result-overlay.draw{background:#aeb8b157}.king-result-badge.win{background:#f1c85b;color:#171007}.king-result-badge.checkmate{background:#242b27;color:#f5f2e4}.king-result-badge.timeout{background:#76bdf7;color:#071725}.king-result-badge.resigned{background:#ff8f62;color:#220b05}.king-result-badge.draw{background:#aeb8b1;color:#101614;width:34px}.king-result-symbol{font-size:.86rem;font-weight:620;line-height:1;transform:translateY(-1px)}.piece-img{display:block;height:92%;object-fit:contain;pointer-events:none;position:relative;-webkit-user-select:none;user-select:none;width:92%;z-index:3}.piece-img-dragging{opacity:.24}.piece-img-animating-target{opacity:0}.piece-move-ghost{animation:piece-move-slide .21s cubic-bezier(.22,.84,.32,1) forwards;filter:drop-shadow(0 9px 12px rgba(0,0,0,.26));height:11.5%;left:var(--from-x);object-fit:contain;pointer-events:none;position:absolute;top:var(--from-y);transform:translate(-50%,-50%);-webkit-user-select:none;user-select:none;width:11.5%;z-index:11}.piece-drag-ghost{filter:drop-shadow(0 12px 16px rgba(0,0,0,.38));height:11.5%;object-fit:contain;pointer-events:none;position:absolute;transform:translate(-50%,-50%) scale(1.04);-webkit-user-select:none;user-select:none;width:11.5%;z-index:12}@keyframes piece-move-slide{0%{left:var(--from-x);top:var(--from-y)}to{left:var(--to-x);top:var(--to-y)}}.rank-label,.file-label{color:#172033b3;font-size:.68rem;font-weight:560;position:absolute;z-index:4}.rank-label{left:5px;top:4px}.file-label{bottom:3px;right:5px}.moves-panel{min-width:0}.pattern-panel{display:grid;grid-template-rows:auto 36px 74px 92px;min-height:238px}.pattern-panel .position-meta{align-content:start;max-height:26px;min-height:26px;overflow:hidden}.pattern-panel .tag-cloud{align-content:start;max-height:54px;min-height:54px;overflow:hidden}.pattern-panel .eval-box{align-self:end;min-height:64px}.pattern-panel:has(.eval-result) .eval-box,.pattern-panel:has(.inline-error) .eval-box{min-height:82px}.compact-title{justify-content:space-between;margin-bottom:10px}.move-controls{align-items:center;display:grid;gap:7px;grid-template-columns:36px 36px 36px minmax(0,1fr);margin-bottom:10px;min-height:36px}.move-controls button{aspect-ratio:1;min-height:36px;padding:0;width:36px}.move-controls .analysis-link{aspect-ratio:auto;min-height:30px;padding:4px 8px;width:auto}.ply-counter{color:#a9b7ad;font-size:.82rem;font-weight:560;margin-left:auto}.analysis-controls-inline{align-items:center;display:flex;gap:5px;justify-self:end;min-width:0}.move-grid,.move-table,.move-tree-flow,.move-tree-vertical{display:grid;gap:6px;max-height:210px;overflow:auto}.move-tree-vertical{gap:2px;max-height:min(38vh,300px);padding-right:2px}.move-row-vertical{display:grid;gap:2px}.move-row-main,.variation-row-vertical,.variation-move-row{align-items:center;display:grid;gap:8px;grid-template-columns:34px minmax(0,1fr) minmax(0,1fr);min-height:28px}.variation-branch{border-left:2px solid rgba(105,197,173,.34);display:grid;gap:2px;margin:1px 0 3px;padding-left:8px}.move-text-button,.variation-text-button{align-items:center;background:transparent;border:0;border-radius:4px;color:#edf6ef;display:inline-flex;font-size:.84rem;font-weight:560;gap:5px;justify-content:flex-start;min-height:24px;min-width:0;overflow:hidden;padding:1px 4px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.move-text-button:hover,.variation-text-button:hover{color:#a8ead9;text-decoration:underline}.move-text-button.readonly{cursor:default}.move-text-button.readonly:hover{color:#edf6ef;text-decoration:none}.move-text-button.selected,.variation-text-button.selected{background:#2f8b782e;color:#a8ead9;text-decoration:underline;text-underline-offset:3px}.move-text-button.empty,.variation-text-button.empty{opacity:0;pointer-events:none}.move-text-button.premove{color:#edf6ef}.move-text-marker{background:#63998b2e;border:1px solid rgba(154,203,190,.24);border-radius:999px;color:#d2eee6;flex:0 0 auto;font-size:.62rem;font-weight:560;line-height:1;padding:2px 5px}.variation-text-button.bad{color:#ff9a9a}.move-tree-flow{align-items:center;align-content:start;display:flex;flex-wrap:wrap;gap:5px;line-height:1.55}.move-table{grid-template-columns:1fr}.move-row{align-items:center;display:grid;gap:6px;grid-template-columns:34px minmax(0,1fr) minmax(0,1fr)}.move-chip,.move-cell,.variation-token{align-items:center;background:#18211ec7;border:1px solid rgba(88,113,105,.4);border-radius:7px;color:#edf6ef;display:flex;gap:5px;justify-content:flex-start;min-height:28px;overflow:hidden;padding:4px 7px}.move-cell.empty{opacity:0;pointer-events:none}.move-chip.selected,.move-cell.selected,.variation-token.selected{background:#2f8b7847;border-color:#69c5ad}.move-number{color:#9caea3;font-size:.72rem;font-weight:560}.move-number.inline{align-items:center;display:inline-flex;min-height:30px;padding:0 1px}.variation-prefix{color:#7f9187;margin-left:2px}.position-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.position-meta span,.corpus-stats span,.tag-cloud span,.eval-result span{align-items:center;background:#25312dc7;border-radius:999px;color:#cbd8ce;display:inline-flex;font-size:.74rem;font-weight:560;line-height:1;min-height:22px;max-width:100%;overflow:hidden;padding:4px 7px;text-overflow:ellipsis;white-space:nowrap}.corpus-stats,.tag-cloud{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.tag-cloud span{background:#2f8b783d;color:#a8ead9}.eval-box{border-top:1px solid #31423d;display:grid;gap:8px;grid-auto-rows:auto;grid-template-rows:40px;margin-top:10px;overflow:hidden;padding-top:10px}.eval-box:has(.eval-result),.eval-box:has(.inline-error){grid-template-rows:40px minmax(26px,1fr)}.promotion-chooser{align-items:center;background:#18211ef5;border:1px solid #4e675f;border-radius:8px;box-shadow:0 12px 30px #0000004d;display:flex;gap:8px;justify-content:center;margin:-2px auto 2px;padding:7px;width:min(100%,360px)}.promotion-chooser button{align-items:center;background:#d9d5ba;border:1px solid #111816;border-radius:8px;display:inline-flex;height:50px;justify-content:center;padding:4px;width:50px}.promotion-chooser img{height:100%;object-fit:contain;width:100%}.analysis-link,.analysis-icon-button{align-items:center;background:#25312d;border:1px solid #3a4e47;border-radius:7px;color:#dce7df;display:inline-flex;font-size:.74rem;font-weight:560;min-height:26px;padding:4px 7px}.analysis-icon-button{aspect-ratio:1;justify-content:center;padding:0;width:30px}.variation-line{align-items:center;background:#151d1abd;border:1px solid rgba(49,66,61,.74);border-radius:8px;display:inline-flex;flex-wrap:wrap;gap:4px;max-width:100%;padding:3px 5px}.variation-paren{color:#7f9187;font-weight:560}.variation-token{font-size:.8rem;min-height:26px;padding:3px 7px}.variation-token.bad{border-color:#ff5c5c99}.analysis-grade,.analysis-grade-icon{align-items:center;border-radius:999px;display:inline-flex;font-size:.62rem;font-weight:620;height:19px;justify-content:center;width:19px}.analysis-grade.only{animation:analysis-pop .9s ease-in-out infinite;background:#58b6ff;color:#061521}.analysis-grade.pending{background:#cdd8d2;color:#111816}.analysis-grade.bad{background:#ff5c5c;color:#230606;width:auto;padding:0 6px}.analysis-grade-icon.best,.analysis-grade-icon.excellent{background:#62dc8d;color:#08110d;padding:5px}@keyframes analysis-pop{0%,to{transform:scale(1)}50%{transform:scale(1.16)}}.eval-result{align-items:center;display:flex;flex-wrap:nowrap;gap:8px;max-height:34px;min-height:30px;min-width:0;overflow:hidden}.eval-result strong{color:#e2a35e;flex:0 0 auto;font-size:1.24rem;font-weight:580}.inline-error{color:#ff8b9a;font-size:.8rem;font-weight:560}.similar-list,.atlas-list,.source-commands{display:grid;gap:7px;margin-top:8px}.similar-list{max-height:260px;overflow:auto;padding-right:2px}.moves-similar-list{max-height:140px}.similar-row span{color:#edf6ef;font-size:.84rem;font-weight:580;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.similar-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.atlas-row{align-items:center;border-bottom:1px solid #31423d;display:flex;justify-content:space-between;gap:10px;padding:7px 0}.atlas-row span{color:#dce7df;font-size:.84rem;font-weight:560}.atlas-row strong{color:#e2a35e}.source-commands code{background:#0b0f0e;border-radius:8px;color:#eef5ed;display:block;font-size:.76rem;overflow-x:auto;padding:9px}.mobile-tabs,.mobile-panel{display:none}.study-shell{align-items:center;background:#0f1211;color:#f8fafc;display:grid;grid-template-columns:minmax(0,1fr) 300px;min-height:100vh;overflow:hidden}.study-board-zone{align-items:center;display:grid;min-height:100vh;padding:16px}.study-board-zone .board-shell{width:min(92vh,92vw)}.study-overlay{align-content:center;background:#111816e6;border-left:1px solid rgba(255,255,255,.1);display:grid;gap:14px;height:100vh;padding:18px}.study-game-line{display:grid;gap:4px;min-height:44px}.study-game-line span{font-size:1rem;font-weight:580;line-height:1.22;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.study-game-line small{color:#aeb9c8;font-size:.82rem}.study-pattern-line{align-content:flex-start;align-items:flex-start;display:flex;flex-wrap:wrap;gap:7px;height:62px;overflow:hidden}.study-pattern-line span,.study-reason,.study-eval-turn{align-items:center;background:#2d756b57;border:1px solid rgba(144,210,199,.26);border-radius:999px;color:#d8fff6;display:inline-flex;font-size:.78rem;font-weight:560;line-height:1;min-height:26px;max-width:min(100%,210px);overflow:hidden;padding:5px 8px;text-overflow:ellipsis;white-space:nowrap}.study-reason{border-radius:8px;color:#fff;height:36px;overflow:hidden}.study-eval-turn{align-items:center;background:#9b4d1a57;border-color:#ffbe7d57;border-radius:8px;display:flex;flex-wrap:nowrap;gap:8px;height:38px;max-width:100%;overflow:hidden}.study-eval-turn strong{color:#fff;flex:0 0 auto;font-size:1rem}.study-eval-turn span,.study-eval-turn small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.study-eval-turn small{color:#ffd9aa;font-weight:560}.study-controls{display:flex;gap:10px}.study-controls button{align-items:center;background:#25312d;border:0;border-radius:8px;color:#eef5ed;display:inline-flex;height:40px;justify-content:center;width:40px}@media(max-width:1040px){.desktop-layout,.analysis-workspace,.finder-workspace{grid-template-columns:minmax(220px,300px) minmax(400px,1fr)}.right-rail,.analysis-right-panel,.finder-right-panel{grid-column:1 / -1}}@media(max-width:760px){.app-shell{padding:9px}.app-header{align-items:start;gap:10px;padding:4px 2px 10px}.header-controls{justify-content:space-between;margin-top:10px}h1{font-size:1.86rem}.header-stats{justify-content:flex-start}.mode-button{min-height:32px;padding:6px 10px}.auth-shell{align-items:start;padding:12px}.auth-card{padding:16px}.auth-header-row,.auth-client-row,.auth-form-row{align-items:stretch;display:grid;grid-template-columns:1fr}.auth-client-row button,.auth-form button,.auth-link-button{justify-self:start}.auth-account-name-row{align-items:stretch;display:grid;grid-template-columns:1fr auto}.auth-account-name-row .auth-inline-input{width:100%}.auth-client-actions .auth-switch{min-width:0}.play-clock-settings{grid-template-columns:repeat(2,minmax(0,1fr))}.play-clock-settings .secondary-button{grid-column:1 / -1;width:100%}.play-action-row{grid-template-columns:1fr}.desktop-layout{display:block}.analysis-workspace,.finder-workspace{display:grid;gap:10px;grid-template-columns:1fr}.left-rail,.right-rail,.board-area .moves-panel{display:none}.board-area,.analysis-left-panel,.analysis-right-panel,.analysis-board-area,.finder-left-panel,.finder-right-panel,.finder-board-area{display:grid;gap:10px}.analysis-left-panel{order:2}.analysis-board-area,.finder-board-area{order:1}.analysis-right-panel{order:3}.finder-right-panel{order:2}.finder-left-panel{order:3}.analysis-actions{grid-template-columns:1fr}.finder-left-panel,.finder-right-panel{max-height:none;overflow:visible;padding-right:0}.game-heading{padding:0 2px}.board-shell{max-width:420px;min-width:0;width:calc(100vw - 18px)}.chess-board{border-width:5px}.piece{font-size:2.2rem}.mobile-tabs{background:#141c19f5;border:1px solid rgba(88,113,105,.42);border-radius:8px;bottom:7px;box-shadow:0 10px 24px #00000042;display:grid;gap:4px;grid-template-columns:repeat(3,1fr);margin:9px 0;padding:5px;position:sticky;z-index:10}.mobile-tabs button{align-content:center;background:transparent;border:0;color:#a9b7ad;display:grid;font-size:.68rem;gap:2px;grid-template-rows:20px 14px;justify-items:center;line-height:1;min-height:40px;padding:4px}.mobile-tabs button svg{align-self:center;display:block;justify-self:center}.mobile-tabs button span{align-self:center;line-height:1}.mobile-tabs button.active{background:#63998b33;color:#d2eee6}.mobile-panel{display:grid;gap:10px;margin-top:0}.game-list{max-height:42vh}.move-grid,.move-table,.move-tree-vertical{max-height:34vh}.import-panel{grid-template-columns:1fr 1fr}.study-shell{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 178px;min-height:100svh}.study-board-zone{align-items:center;min-height:auto;padding:9px}.study-board-zone .board-shell{width:min(100%,calc(100svh - 198px))}.study-overlay{align-content:start;border-left:0;border-top:1px solid rgba(255,255,255,.12);gap:8px;height:178px;overflow:hidden;padding:10px 12px}.study-game-line{min-height:38px}.study-game-line span{font-size:.9rem}.study-pattern-line{height:30px}.study-pattern-line span,.study-reason,.study-eval-turn{font-size:.72rem;min-height:24px;max-width:150px;padding:5px 7px}.study-reason,.study-eval-turn{height:30px;min-height:30px}.study-controls{justify-content:center}.study-controls button{height:40px;width:40px}}
