:root{--bg-page:#f5f5f5;--bg-card:#fff;--bg-panel:#f8f9fa;--bg-input:#fff;--bg-hover:#e2e8f0;--bg-accent:#f0f4ff;--text-primary:#213547;--text-heading:#1a1a2e;--text-secondary:#555;--text-muted:#666;--text-faint:#888;--text-dimmed:#999;--border-color:#ddd;--border-input:#ccc;--border-strong:#333;--card-shadow:#00000014;--accent-color:#5b8def;--accent-hover:#4a7cde;--success-color:#28a745;--success-hover:#218838;--move-list-bg:#fafafa;--move-even-bg:#f0f0f0;--move-active-bg:#4a90d9;--move-hover-bg:#d0e4f7;--panel-collapse-bg:#f0f4ff;--panel-collapse-border:#d0d8e8;--panel-collapse-text:#4a5568;--review-bg:#eef4fb;--review-border:#4a90d9;--review-text:#2c5f8a;--sidebar-bg:#1a1a2e;--sidebar-text:#c0c0d0;--sidebar-hover:#2d2d4a;--sidebar-active:#3a3a5c;--sidebar-border:#2d2d4a;--sidebar-active-accent:#5b8def;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}[data-theme=dark]{--bg-page:#121218;--bg-card:#1e1e2a;--bg-panel:#252535;--bg-input:#2a2a3c;--bg-hover:#35354a;--bg-accent:#252540;--text-primary:#d8d8e0;--text-heading:#e8e8f0;--text-secondary:#a0a0b8;--text-muted:#8888a0;--text-faint:#707088;--text-dimmed:#606078;--border-color:#3a3a50;--border-input:#4a4a60;--border-strong:#888;--card-shadow:#0000004d;--accent-color:#5b8def;--accent-hover:#4a7cde;--success-color:#2ea043;--success-hover:#238636;--move-list-bg:#1e1e2a;--move-even-bg:#252535;--move-active-bg:#3a6bc5;--move-hover-bg:#2a3f5e;--panel-collapse-bg:#252540;--panel-collapse-border:#3a3a5c;--panel-collapse-text:#a0a0c0;--review-bg:#1a2a3e;--review-border:#3a6bc5;--review-text:#7aacde;--sidebar-bg:#0e0e18;--sidebar-text:#b0b0c0;--sidebar-hover:#22223a;--sidebar-active:#2e2e4a;--sidebar-border:#22223a;--sidebar-active-accent:#5b8def;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=blunznstyle]{--bg-page:#140808;--bg-card:#1f0e0e;--bg-panel:#281414;--bg-input:#2e1818;--bg-hover:#3a2020;--bg-accent:#2e1518;--text-primary:#e0c8c0;--text-heading:#f0d8c8;--text-secondary:#b89888;--text-muted:#a07868;--text-faint:#886050;--text-dimmed:#785848;--border-color:#4a2228;--border-input:#5a3038;--border-strong:#8b4040;--card-shadow:#3c0a0a66;--accent-color:#b83040;--accent-hover:#982838;--success-color:#8b6020;--success-hover:#7a5018;--move-list-bg:#1f0e0e;--move-even-bg:#281414;--move-active-bg:#8b2232;--move-hover-bg:#3a1820;--panel-collapse-bg:#2e1518;--panel-collapse-border:#4a2228;--panel-collapse-text:#b89088;--review-bg:#2a1218;--review-border:#8b2232;--review-text:#d07070;--sidebar-bg:#0e0505;--sidebar-text:#c09888;--sidebar-hover:#2a1212;--sidebar-active:#3a1818;--sidebar-border:#2a1212;--sidebar-active-accent:#b83040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{min-height:100vh;margin:0}*{box-sizing:border-box}select,input,textarea,button{color:inherit;font:inherit}select,input[type=number],input[type=text],textarea{background-color:var(--bg-input);border-color:var(--border-input)}.sidebar{background:var(--sidebar-bg);color:#e0e0e0;z-index:100;flex-direction:column;width:220px;height:100vh;transition:transform .25s;display:flex;position:fixed;top:0;left:0}.sidebar-header{border-bottom:1px solid var(--sidebar-border);padding:20px 16px 12px}.sidebar-header h2{color:#fff;white-space:nowrap;margin:0;font-size:18px}.sidebar-nav{flex:1;margin:0;padding:8px 0;list-style:none}.sidebar-item{width:100%;color:var(--sidebar-text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:12px 16px;font-size:14px;transition:background .15s,color .15s;display:flex}.sidebar-item:hover{background:var(--sidebar-hover);color:#fff}.sidebar-item--active{background:var(--sidebar-active);color:#fff;border-left:3px solid var(--sidebar-active-accent);font-weight:600}.sidebar-icon{text-align:center;flex-shrink:0;width:24px;font-size:18px}.sidebar-label{flex:1}.sidebar-badge{background:var(--sidebar-active-accent);color:#fff;text-align:center;border-radius:10px;min-width:20px;padding:2px 7px;font-size:11px;font-weight:700}.sidebar-badge--offline{background:#6b6b7b;font-size:10px;font-weight:500}.sidebar-item:disabled{opacity:.45;cursor:not-allowed}.sidebar-item:disabled:hover{color:var(--sidebar-text);background:0 0}.sidebar-user{border-top:1px solid var(--sidebar-border);flex-direction:column;gap:6px;padding:12px 16px;display:flex}.sidebar-user-profile-btn{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;width:100%;padding:6px 8px;transition:background .15s;display:flex}.sidebar-user-profile-btn:hover{background:var(--sidebar-hover)}.sidebar-user-profile-btn--active{background:var(--sidebar-active)}.sidebar-user-avatar{flex-shrink:0;font-size:20px}.sidebar-user-name{color:var(--sidebar-text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.sidebar-logout-btn{border:1px solid var(--sidebar-active);color:var(--sidebar-text);cursor:pointer;background:0 0;border-radius:4px;padding:4px 10px;font-size:12px;transition:background .15s,color .15s}.sidebar-logout-btn:hover{background:var(--sidebar-active);color:#fff}.sidebar-hamburger{z-index:200;background:var(--sidebar-bg);color:#fff;cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;width:40px;height:40px;font-size:22px;display:none;position:fixed;top:12px;left:12px}.sidebar-overlay{display:none}.app-with-sidebar{margin-left:220px}@media (width<=900px){.sidebar{transform:translate(-100%)}.sidebar--open{transform:translate(0)}.sidebar-hamburger{display:flex}.sidebar-header{padding-left:56px}.sidebar-overlay{z-index:99;background:#0006;display:block;position:fixed;inset:0}.app-with-sidebar{margin-left:0}}.sidebar-theme{border-top:1px solid var(--sidebar-border);padding:8px 16px 12px}.sidebar-theme-label{color:var(--sidebar-text);align-items:center;gap:8px;margin-bottom:4px;font-size:12px;font-weight:600;display:flex}.sidebar-theme-select{border:1px solid var(--sidebar-border);background:var(--sidebar-hover);color:#e0e0e0;cursor:pointer;border-radius:4px;width:100%;padding:5px 8px;font-size:12px}.sidebar-theme-select:focus{outline:1px solid var(--sidebar-active-accent);border-color:var(--sidebar-active-accent)}.welcome-screen{background:var(--bg-page);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.welcome-card{background:var(--bg-card);border:1px solid var(--border-color);width:100%;max-width:420px;box-shadow:0 2px 8px var(--card-shadow);text-align:center;border-radius:12px;padding:36px 40px}.welcome-card h1{color:var(--text-heading);margin:0 0 4px;font-size:28px}.welcome-subtitle{color:var(--text-muted);margin:0 0 28px;font-size:14px}.welcome-section{margin-bottom:20px}.welcome-section-title{color:var(--text-faint);text-transform:uppercase;letter-spacing:.5px;margin:0 0 10px;font-size:13px;font-weight:600}.welcome-btn{border:1px solid var(--border-color);background:var(--bg-card);width:100%;color:var(--text-heading);cursor:pointer;border-radius:8px;margin-bottom:8px;padding:12px 16px;font-size:15px;font-weight:500;transition:background .15s,border-color .15s;display:block}.welcome-btn:hover{background:var(--bg-hover);border-color:var(--border-input)}.provider-icon{vertical-align:middle;margin-right:4px}.welcome-btn--primary{color:#fff;background:#1a1a2e;border-color:#1a1a2e}.welcome-btn--primary:hover{background:#2d2d4a;border-color:#2d2d4a}.welcome-btn--guest{background:var(--accent-color);color:#fff;border-color:var(--accent-color)}.welcome-btn--guest:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.welcome-divider{color:var(--text-dimmed);align-items:center;gap:12px;margin:20px 0;font-size:12px;display:flex}.welcome-divider:before,.welcome-divider:after{content:"";border-top:1px solid var(--border-color);flex:1}.welcome-error{color:#d32f2f;margin-top:8px;font-size:13px}.welcome-loading{color:var(--text-faint);margin-top:8px;font-size:14px}.quick-start-screen{justify-content:center;align-items:flex-start;padding:20px;display:flex}.quick-start-card{background:var(--bg-card);border:1px solid var(--border-color);width:100%;max-width:400px;box-shadow:0 2px 8px var(--card-shadow);border-radius:12px;padding:28px 32px}.quick-start-card h2{text-align:center;color:var(--text-heading);margin:0 0 4px;font-size:22px}.quick-start-subtitle{text-align:center;color:var(--text-muted);margin:0 0 20px;font-size:13px}.qs-group{margin-bottom:14px}.qs-group label{color:var(--text-secondary);margin-bottom:4px;font-size:13px;font-weight:600;display:block}.qs-group select,.qs-group input[type=number],.qs-group input[type=text]{border:1px solid var(--border-input);border-radius:6px;width:100%;padding:8px 10px;font-size:14px}.qs-description{color:var(--text-muted);margin-top:4px;font-size:12px;line-height:1.4}.qs-clock-group{border:1px solid var(--border-color);border-radius:8px;margin-bottom:14px;padding:12px}.qs-clock-group legend{color:var(--text-secondary);padding:0 4px;font-size:13px;font-weight:600}.qs-checkbox-label{cursor:pointer;align-items:center;gap:8px;margin-bottom:8px;font-weight:500;display:flex}.qs-sub-group{margin-top:8px}.qs-sub-group label{color:var(--text-secondary);margin-bottom:2px;font-size:12px;font-weight:500}.qs-start-btn{background:var(--success-color);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;margin-top:10px;padding:12px 20px;font-size:16px;font-weight:600;transition:background .15s}.qs-start-btn:hover{background:var(--success-hover)}.chessboard-wrapper{display:inline-block;position:relative}.chessboard{-webkit-user-select:none;user-select:none;border:2px solid #333;grid-template-rows:repeat(8,1fr);grid-template-columns:repeat(8,1fr);width:min(80vw,560px);height:min(80vw,560px);display:grid}.square{cursor:pointer;aspect-ratio:1;justify-content:center;align-items:center;display:flex;position:relative}.square.light{background-color:#f0d9b5}.square.dark{background-color:#b58863}.square.selected{background-color:#ff6!important}.square.highlighted{position:relative}.square.last-move{background-color:#cdd26a80}.square.last-move.light{background-color:#f5f682}.square.last-move.dark{background-color:#b9c53b}.piece{pointer-events:none;z-index:1;font-size:min(8vw,56px);line-height:1}.white-piece,.black-piece{filter:drop-shadow(1px 1px 1px #0000004d)}.move-dot{z-index:2;background-color:#0003;border-radius:50%;width:25%;height:25%;position:absolute}.capture-ring{z-index:0;border:4px solid #0003;border-radius:50%;width:90%;height:90%;position:absolute}.rank-label{color:#666;pointer-events:none;z-index:3;font-size:10px;font-weight:700;position:absolute;top:2px;left:3px}.file-label{color:#666;pointer-events:none;z-index:3;font-size:10px;font-weight:700;position:absolute;bottom:2px;right:3px}.promotion-overlay{z-index:100;background:#00000080;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.promotion-dialog{text-align:center;background:#fff;border-radius:8px;padding:16px 24px;box-shadow:0 4px 12px #0000004d}.promotion-dialog p{margin:0 0 12px;font-weight:700}.promotion-choices{gap:8px;display:flex}.promotion-btn{cursor:pointer;background:#f8f8f8;border:2px solid #ccc;border-radius:8px;justify-content:center;align-items:center;width:60px;height:60px;font-size:40px;transition:background .15s;display:flex}.promotion-btn:hover{background:#e0e0e0;border-color:#999}.removal-target{cursor:pointer!important;background:#ff00004d!important}.square.best-move-hint{box-shadow:inset 0 0 0 3px #3b82f6b3}.square.best-move-hint.light{background-color:#a8c7fa}.square.best-move-hint.dark{background-color:#6a9edf}.square.drop-target{cursor:pointer!important;background:#4caf5033!important}.drop-dot{background:#4caf5099!important}.piece-slide{animation:.2s ease-out piece-slide-in}@keyframes piece-slide-in{0%{transform:translate(var(--slide-x,0), var(--slide-y,0))}to{transform:translate(0)}}.piece-drop{animation:.3s ease-out piece-drop-in}@keyframes piece-drop-in{0%{opacity:0;transform:scale(0)translateY(-40%)}60%{opacity:1;transform:scale(1.15)translateY(0)}to{opacity:1;transform:scale(1)translateY(0)}}.square.explosion{animation:.4s ease-out explosion-burst}.square.explosion:after{content:"";z-index:10;pointer-events:none;background:radial-gradient(circle,#ffa000e6 0%,#ff3c0099 40%,#0000 70%);border-radius:50%;animation:.4s ease-out forwards explosion-ring;position:absolute;inset:0}@keyframes explosion-burst{0%{background-color:#ffc800cc}50%{background-color:#ff500080}to{background-color:#0000}}@keyframes explosion-ring{0%{opacity:1;transform:scale(.3)}to{opacity:0;transform:scale(1.5)}}.square.premove{background-color:#4682b499!important}.square.premove.light{background-color:#64aadcb3!important}.square.premove.dark{background-color:#326ea0b3!important}.piece-premove-ghost{opacity:.5}.piece-premove-dimmed{opacity:.3}.move-list{border:1px solid var(--border-input);background:var(--move-list-bg);border-radius:8px;width:220px;max-height:min(80vw,560px);padding:8px;overflow-y:auto}.move-list h3{text-align:center;border-bottom:1px solid var(--border-color);margin:0 0 8px;padding-bottom:4px;font-size:14px}.move-list-header{-webkit-user-select:none;user-select:none}.move-list-header--collapsible{cursor:pointer}.move-header{color:var(--text-secondary);border-bottom:1px solid var(--border-color);margin-bottom:2px;padding-bottom:4px;font-size:12px;font-weight:600}.move-header .move-number{color:var(--text-secondary)}.move-list-content{font-family:monospace;font-size:13px}.no-moves{color:var(--text-dimmed);text-align:center;font-style:italic}.move-pair{border-radius:3px;grid-template-columns:30px 1fr 1fr;gap:4px;padding:2px 4px;display:grid}.move-pair:nth-child(2n){background:var(--move-even-bg)}.move-number{color:var(--text-faint);text-align:right}.move-white,.move-black{padding-left:4px}.move-clickable{cursor:pointer;border-radius:3px}.move-clickable:hover{background:var(--move-hover-bg)}.move-active{background:var(--move-active-bg);color:#fff;border-radius:3px;font-weight:600}.report-icon{vertical-align:middle;margin-left:2px;font-size:11px}.report-icon.missed-check,.report-icon.piece-removal,.report-icon.time-reduction{cursor:help}.move-extra{font-style:italic}.extra-label{cursor:help;font-size:11px}.report-icon[data-tooltip],.extra-label[data-tooltip]{position:relative}.report-icon[data-tooltip]:after,.extra-label[data-tooltip]:after{content:attr(data-tooltip);color:#fff;white-space:normal;text-align:left;z-index:100;pointer-events:none;opacity:0;visibility:hidden;background:#222;border-radius:6px;width:max-content;max-width:220px;padding:6px 10px;font-family:system-ui,sans-serif;font-size:12px;line-height:1.4;transition:opacity .15s,visibility .15s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 2px 8px #00000040}.report-icon[data-tooltip]:hover:after,.report-icon[data-tooltip]:focus:after,.extra-label[data-tooltip]:hover:after,.extra-label[data-tooltip]:focus:after{opacity:1;visibility:visible}.report-icon[data-tooltip]:focus,.extra-label[data-tooltip]:focus{outline-offset:1px;border-radius:3px;outline:2px solid #4a90d9}@media (hover:none){.report-icon[data-tooltip]:active:after,.extra-label[data-tooltip]:active:after{opacity:1;visibility:visible}}@media (width<=900px){.move-list{width:100%;max-height:none;overflow-y:visible}.report-icon[data-tooltip]:after,.extra-label[data-tooltip]:after{max-width:min(220px,90vw);left:0;transform:none}}.game-status{min-width:250px;padding:12px}.clocks-display{justify-content:space-between;gap:8px;margin-bottom:12px;display:flex}.clock{text-align:center;border-radius:6px;flex:1;padding:6px 12px;font-family:Courier New,monospace;font-size:20px;font-weight:700}.clock-white{color:#5a4a3a;background:#e8e0d4;border:1px solid #c8b89a}.clock-black{color:#aaa;background:#1a1a2e;border:1px solid #333}.clock-white.clock-active{color:#7b5e00;background:#f5efe7;border-color:#c8a54e}.clock-black.clock-active{color:gold;background:#2a2a4e;border-color:#555}.scores-display{background:var(--bg-panel);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;padding:6px 10px;font-size:14px;font-weight:600;display:flex}.move-limit-display{color:var(--text-muted);font-size:12px;font-weight:400}.extra-turn-indicator{color:#856404;background:#fff3cd;border:1px solid #ffc107;border-radius:6px;margin-bottom:8px;padding:6px 10px;font-size:13px;font-weight:600}.result-panel{color:#eee;text-align:center;background:#1a1a2e;border-radius:10px;margin-bottom:12px;padding:16px 20px}.result-title{margin:0 0 8px;font-size:20px}.result-winner{color:gold;margin:4px 0;font-size:18px;font-weight:700}.result-reason{margin:4px 0;font-size:14px}.result-detail{color:#aaa;margin:8px 0 0;font-size:13px}.turn-indicator{align-items:center;gap:8px;margin-bottom:12px;font-size:16px;font-weight:600;display:flex}.turn-dot{border:2px solid var(--border-strong);border-radius:50%;width:16px;height:16px}.white-dot{background:#fff}.black-dot{background:#333}.thinking{color:var(--text-faint);font-size:14px;font-weight:400;animation:1s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.violation-alert{color:#856404;background:#fff3cd;border:1px solid #ffc107;border-radius:6px;margin-bottom:8px;padding:8px 12px;font-size:13px}.report-btn{color:#fff;cursor:pointer;background:#dc3545;border:none;border-radius:6px;width:100%;margin-bottom:12px;padding:10px 20px;font-size:15px;font-weight:600;transition:background .15s}.report-btn:hover{background:#c82333}.gspritzt-btn{background:#722f37}.gspritzt-btn:hover{background:#5a252c}.report-feedback{border-radius:6px;margin-bottom:8px;padding:8px 12px;font-size:13px;font-weight:600}.feedback-valid{color:#155724;background:#d4edda;border:1px solid #28a745}.feedback-invalid{color:#721c24;background:#f8d7da;border:1px solid #dc3545}.report-counters{color:var(--text-muted);border-top:1px solid var(--border-color);flex-direction:column;gap:2px;padding-top:8px;font-size:12px;display:flex}.violation-details{text-align:left;background:#ffffff14;border-radius:6px;margin-top:10px;padding:10px 12px;font-size:13px}.violation-category{padding:2px 0}.violation-category-label{color:gold;font-weight:600}.violation-category-moves{color:#ccc;font-family:monospace}.game-controls{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:8px;min-width:220px;padding:12px}.game-controls h3{border-bottom:1px solid var(--border-color);margin:0 0 12px;padding-bottom:6px;font-size:15px}.control-group{margin-bottom:10px}.control-group label{color:var(--text-secondary);margin-bottom:3px;font-size:13px;font-weight:600;display:block}.control-group select,.control-group input[type=number]{border:1px solid var(--border-input);border-radius:4px;width:100%;padding:6px 8px;font-size:13px}.control-group input[type=range]{width:100%}.new-game-btn{background:var(--success-color);color:#fff;cursor:pointer;border:none;border-radius:6px;width:100%;margin-top:4px;padding:10px 16px;font-size:14px;font-weight:600;transition:background .15s}.new-game-btn:hover{background:var(--success-hover)}.restart-btn{color:#fff;cursor:pointer;background:#fd7e14;border:none;border-radius:6px;width:100%;margin-top:6px;padding:10px 16px;font-size:14px;font-weight:600;transition:background .15s}.restart-btn:hover{background:#e8690b}.botvbot-controls{border-top:1px solid var(--border-color);margin-top:12px;padding-top:12px}.pause-btn{color:#fff;cursor:pointer;background:#6c757d;border:none;border-radius:6px;width:100%;margin-bottom:8px;padding:8px 14px;font-size:13px;transition:background .15s}.pause-btn:hover{background:#5a6268}.pause-btn.paused{background:#007bff}.pause-btn.paused:hover{background:#0056b3}.eval-toggle{border-top:1px solid var(--border-color);margin-top:10px;padding-top:10px}.eval-toggle label{cursor:pointer;align-items:center;gap:4px;font-weight:400;display:flex}.game-summary{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:8px;padding:12px}.game-summary h3{border-bottom:1px solid var(--border-color);margin:0 0 10px;padding-bottom:6px;font-size:15px}.summary-list{margin:0;padding:0}.summary-item{justify-content:space-between;padding:4px 0;font-size:13px;display:flex}.summary-item dt{color:var(--text-muted);font-weight:500}.summary-item dd{color:var(--text-heading);margin:0;font-weight:600}.setup-screen{justify-content:center;align-items:flex-start;padding:20px;display:flex}.setup-card{background:var(--bg-card);border:1px solid var(--border-color);width:100%;max-width:400px;box-shadow:0 2px 8px var(--card-shadow);border-radius:12px;padding:28px 32px}.setup-card h2{text-align:center;color:var(--text-heading);margin:0 0 20px;font-size:22px}.setup-group{margin-bottom:14px}.setup-group label{color:var(--text-secondary);margin-bottom:4px;font-size:13px;font-weight:600;display:block}.setup-group select,.setup-group input[type=number]{border:1px solid var(--border-input);border-radius:6px;width:100%;padding:8px 10px;font-size:14px}.setup-group.checkbox-group label{cursor:pointer;align-items:center;gap:8px;font-weight:500;display:flex}.start-game-btn{background:var(--success-color);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;margin-top:10px;padding:12px 20px;font-size:16px;font-weight:600;transition:background .15s}.start-game-btn:hover{background:var(--success-hover)}.mode-description{color:var(--text-muted);margin-top:4px;font-size:12px;line-height:1.4}.rules-panel{margin-top:12px}.rules-toggle{color:#fff;cursor:pointer;background:#17a2b8;border:none;border-radius:6px;width:100%;padding:8px 16px;font-size:14px;transition:background .15s}.rules-toggle:hover{background:#138496}.rules-content{background:#f8f9fa;border:1px solid #ddd;border-radius:8px;margin-top:8px;padding:12px;font-size:13px;line-height:1.5}.rules-content h3{margin:0 0 8px;font-size:16px}.rules-content h4{color:#333;margin:12px 0 4px;font-size:14px}.rules-content p{margin:4px 0 8px}.rules-content ul{margin:4px 0;padding-left:20px}.rules-content li{margin-bottom:4px}.rules-page{justify-content:center;align-items:flex-start;padding:20px;display:flex}.rules-page-card{background:var(--bg-card);border:1px solid var(--border-color);width:100%;max-width:640px;box-shadow:0 2px 8px var(--card-shadow);border-radius:12px;padding:28px 32px}.rules-page-card h2{text-align:center;color:var(--text-heading);margin:0 0 8px;font-size:22px}.rules-page-intro{text-align:center;color:var(--text-muted);margin:0 0 20px;font-size:13px;line-height:1.5}.rules-section{margin-bottom:20px}.rules-section h3{color:var(--text-heading);border-bottom:2px solid var(--accent-color);margin:0 0 12px;padding-bottom:4px;font-size:17px}.rules-mode-block{background:var(--bg-panel);border-left:3px solid var(--accent-color);border-radius:6px;margin-bottom:12px;padding:10px 12px}.rules-mode-block h4{color:var(--text-heading);margin:0 0 4px;font-size:14px}.rules-mode-desc{color:var(--text-secondary);margin:0 0 6px;font-size:13px;line-height:1.4}.rules-mode-block ul,.rules-mode-block ol{margin:4px 0 0;padding-left:20px;font-size:13px;line-height:1.5}.rules-mode-block li{margin-bottom:3px}.rules-mode-block p{margin:4px 0;font-size:13px;line-height:1.5}.rules-difficulty-table{border-collapse:collapse;width:100%;margin-top:6px;font-size:12px}.rules-difficulty-table th,.rules-difficulty-table td{border:1px solid var(--border-color);text-align:left;padding:4px 6px}.rules-difficulty-table th{background:var(--bg-panel);color:var(--text-heading);font-weight:600}.rules-difficulty-table td{color:var(--text-secondary)}.mini-board{border:1px solid #999;border-radius:2px;flex-shrink:0;grid-template-rows:repeat(8,1fr);width:80px;height:80px;display:inline-grid;overflow:hidden}.mini-row{display:flex}.mini-cell{justify-content:center;align-items:center;width:10px;height:10px;font-size:8px;line-height:1;display:flex}.mini-cell--light{background:#f0d9b5}.mini-cell--dark{background:#b58863}.analyse-position-form{margin-bottom:20px}.analyse-position-hint{text-align:center;color:#666;margin:0 0 14px;font-size:13px}.analyse-position-row{align-items:flex-start;gap:16px;display:flex}.analyse-position-fields{flex:1;min-width:0}.analyse-position-preview{flex-shrink:0;align-self:center}.analyse-field{margin-bottom:10px}.analyse-field label{color:#444;margin-bottom:4px;font-size:13px;font-weight:600;display:block}.analyse-field select,.analyse-fen-input{box-sizing:border-box;border:1px solid #ccc;border-radius:6px;width:100%;padding:8px 10px;font-size:14px}.analyse-fen-input.fen-invalid{border-color:#dc3545}.analyse-fen-error{color:#dc3545;margin:4px 0 0;font-size:12px}.analyse-overlays{border:1px solid #e0e0e0;border-radius:8px;margin:10px 0 0;padding:8px 12px}.analyse-overlays legend{color:#444;padding:0 4px;font-size:13px;font-weight:600}.analyse-overlays label{cursor:pointer;align-items:center;gap:6px;padding:3px 0;font-size:13px;font-weight:500;display:flex}.analyse-start-btn{color:#fff;cursor:pointer;background:#5b8def;border:none;border-radius:8px;width:100%;margin-top:12px;padding:10px 16px;font-size:15px;font-weight:600;transition:background .15s;display:block}.analyse-start-btn:hover:not(:disabled){background:#3a6bd4}.analyse-start-btn:disabled{cursor:not-allowed;background:#b0c4de}.analyse-section{justify-content:center;align-items:flex-start;padding:20px;display:flex}.analyse-card{background:var(--bg-card);border:1px solid var(--border-color);width:100%;max-width:600px;box-shadow:0 2px 8px var(--card-shadow);border-radius:12px;padding:28px 32px}.analyse-card h2{text-align:center;color:var(--text-heading);margin:0 0 8px;font-size:22px}.analyse-subtitle{text-align:center;color:var(--text-muted);margin:0 0 16px;font-size:13px}.analyse-empty{text-align:center;color:var(--text-muted);padding:20px 0;font-size:14px;line-height:1.6}.analyse-list{flex-direction:column;gap:8px;display:flex}.analyse-game-item{background:var(--bg-panel);border:1px solid var(--border-color);cursor:pointer;text-align:left;border-radius:8px;align-items:center;gap:12px;width:100%;padding:10px 12px;transition:background .15s,border-color .15s;display:flex}.analyse-game-item:hover{background:var(--bg-accent);border-color:var(--accent-color)}.analyse-game-info{flex:1;min-width:0}.analyse-game-meta{color:var(--text-heading);margin-bottom:2px;font-size:13px;font-weight:600}.analyse-separator{color:var(--text-dimmed);margin:0 4px}.analyse-gametype{color:var(--text-muted);font-weight:400}.analyse-game-mode{color:var(--text-secondary);margin-bottom:2px;font-size:12px}.analyse-game-result{margin-bottom:2px;font-size:13px;font-weight:600}.analyse-reason{color:var(--text-muted);font-size:12px;font-weight:400}.result-white{color:var(--text-heading)}.result-black{color:var(--text-secondary)}.result-draw{color:var(--text-faint)}.analyse-game-details{color:var(--text-dimmed);font-size:11px}.analyse-section-heading{color:var(--text-heading);border-bottom:1px solid var(--border-color);margin:20px 0 10px;padding-bottom:4px;font-size:15px;font-weight:700}.analyse-section-heading:first-of-type{margin-top:0}.analyse-sim-item{background:var(--bg-accent);border:1px solid var(--panel-collapse-border);cursor:pointer;text-align:left;border-radius:8px;align-items:center;gap:12px;width:100%;padding:10px 12px;transition:background .15s,border-color .15s;display:flex}.analyse-sim-item:hover{background:var(--bg-hover);border-color:var(--accent-color)}.analyse-sim-icon{text-align:center;min-width:40px;font-size:28px}.analyse-sim-standing{margin-bottom:2px;font-size:13px;font-weight:600}.analyse-sim-summary-header{flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:8px;display:flex}.analyse-back-btn{color:var(--accent-color);cursor:pointer;background:0 0;border:none;margin-bottom:12px;padding:0;font-size:13px;font-weight:600;transition:color .15s;display:inline-block}.analyse-back-btn:hover{color:var(--accent-hover)}.analyse-remote-row{align-items:center;gap:4px;display:flex}.analyse-remote-row .analyse-game-item{flex:1;min-width:0}.analyse-remote-delete{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:6px;font-size:16px;transition:background .15s,border-color .15s}.analyse-remote-delete:hover{background:#fee;border-color:#e88}.analyse-remote-delete:disabled{opacity:.4;cursor:not-allowed}.analyse-remote-loading{text-align:center;color:var(--text-muted);padding:12px 0;font-size:13px}.analyse-remote-error{text-align:center;color:#c00;padding:8px 0;font-size:13px}.analyse-pagination{justify-content:center;align-items:center;gap:12px;margin-top:12px;display:flex}.analyse-pagination button{background:var(--bg-accent);border:1px solid var(--panel-collapse-border);color:#1a5cb0;cursor:pointer;border-radius:6px;padding:4px 12px;font-size:12px;font-weight:600;transition:background .15s,border-color .15s}.analyse-pagination button:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent-color)}.analyse-pagination button:disabled{opacity:.4;cursor:not-allowed}.analyse-page-info{color:var(--text-muted);font-size:12px}.played-games-section{justify-content:center;align-items:flex-start;padding:20px;display:flex}.played-games-card{background:var(--bg-card);border:1px solid var(--border-color);width:100%;max-width:700px;box-shadow:0 2px 8px var(--card-shadow);border-radius:12px;padding:28px 32px}.played-games-card h2{text-align:center;color:var(--text-heading);margin:0 0 16px;font-size:22px}.played-games-filters{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.played-games-filter{color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.played-games-filter input[type=checkbox]{cursor:pointer}.connection-filter{border:1px solid var(--border-input);border-radius:6px;gap:0;display:flex;overflow:hidden}.connection-filter-btn{background:var(--bg-panel);border:none;border-right:1px solid var(--border-input);cursor:pointer;color:var(--text-secondary);padding:4px 10px;font-size:12px;transition:background .15s,color .15s}.connection-filter-btn:last-child{border-right:none}.connection-filter-btn:hover{background:var(--bg-hover)}.connection-filter-btn--active{background:var(--text-heading);color:#fff}.played-games-empty{text-align:center;color:var(--text-muted);padding:20px 0;font-size:14px;line-height:1.6}.games-timeline{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:8px;margin-bottom:24px;padding:12px}.games-timeline-title{color:var(--text-secondary);margin:0 0 8px;font-size:13px;font-weight:600}.games-timeline-chart{align-items:flex-end;gap:2px;height:60px;display:flex;overflow-x:auto}.games-timeline-empty{justify-content:center;align-items:center;display:flex}.games-timeline-empty-text{color:var(--text-dimmed);font-size:12px;font-style:italic}.timeline-bar-wrapper{cursor:pointer;flex:1;align-items:flex-end;min-width:4px;max-width:12px;height:100%;display:flex}.timeline-bar{border-radius:2px;flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.timeline-segment{width:100%}.timeline-win{background:#4caf50}.timeline-draw{background:#ffc107}.timeline-loss{background:#f44336}.timeline-neutral{background:#fff;box-shadow:inset 0 0 0 1px #ccc}.games-month-group{margin-top:20px}.games-month-heading-row{border-bottom:2px solid var(--border-color);align-items:baseline;gap:10px;margin:0 0 12px;padding-bottom:4px;display:flex}.games-month-heading-row .games-month-heading{border-bottom:none;margin:0;padding-bottom:0}.games-month-heading{color:var(--text-heading);border-bottom:2px solid var(--border-color);margin:0 0 12px;padding-bottom:4px;font-size:16px;font-weight:700}.games-date-group{margin-bottom:16px}.games-date-heading{color:var(--text-muted);margin:0 0 8px;font-size:13px;font-weight:600}.games-list{flex-direction:column;gap:8px;display:flex}.game-card{background:var(--bg-panel);border:1px solid var(--border-color);border-left:4px solid #0000;border-radius:8px;transition:border-color .15s;overflow:hidden}.game-card--win{background:#f6fdf6;border-left-color:#4caf50}.game-card--loss{background:#fef6f6;border-left-color:#f44336}.game-card--draw{background:#fffdf6;border-left-color:#ffc107}.game-card:hover{border-color:var(--accent-color);border-left-color:var(--accent-color)}.game-card--win:hover{border-left-color:#4caf50}.game-card--loss:hover{border-left-color:#f44336}.game-card--draw:hover{border-left-color:#ffc107}.game-card-main{align-items:center;gap:12px;padding:10px 12px;display:flex}.game-card-info{flex:1;min-width:0}.game-card-result{margin-bottom:2px;font-size:14px;font-weight:600}.game-card-result.result-win{color:#2e7d32}.game-card-result.result-loss{color:#c62828}.game-card-result.result-draw{color:#f57f17}.game-card-outcome-badge{font-weight:700}.game-card-result-detail,.game-card-reason{color:var(--text-muted);font-size:12px;font-weight:400}.game-card-meta{color:var(--text-secondary);margin-bottom:4px;font-size:12px}.game-card-sep{color:var(--text-dimmed);margin:0 4px}.game-card-actions{gap:8px;margin-top:4px;display:flex}.game-card-analyse-btn{color:#1a5cb0;cursor:pointer;background:#e8f0fe;border:1px solid #c4d8f5;border-radius:6px;padding:3px 10px;font-size:12px;font-weight:600;transition:background .15s,border-color .15s}.game-card-analyse-btn:hover:not(:disabled){background:#dbe8ff;border-color:#5b8def}.game-card-analyse-btn:disabled{opacity:.4;cursor:not-allowed}.game-card-expand-btn{border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;padding:3px 10px;font-size:12px;transition:background .15s}.game-card-expand-btn:hover{background:var(--bg-hover)}.game-card-details{border-top:1px solid var(--border-color);background:var(--bg-card);padding:8px 12px 12px}.game-card-detail-row{gap:8px;padding:2px 0;font-size:12px;display:flex}.game-card-detail-row .game-card-detail-label{color:var(--text-secondary);min-width:90px;font-weight:600}.played-games-remote-error{text-align:center;color:#c00;padding:8px 0;font-size:13px}.played-games-remote-loading{text-align:center;color:var(--text-muted);padding:12px 0;font-size:13px}.played-games-pagination{justify-content:center;align-items:center;gap:12px;margin-top:12px;display:flex}.played-games-pagination button{background:var(--bg-accent);border:1px solid var(--panel-collapse-border);color:#1a5cb0;cursor:pointer;border-radius:6px;padding:4px 12px;font-size:12px;font-weight:600;transition:background .15s,border-color .15s}.played-games-pagination button:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent-color)}.played-games-pagination button:disabled{opacity:.4;cursor:not-allowed}.played-games-page-info{color:var(--text-muted);font-size:12px}.results-summary-total{background:#f0f4ff;border:1px solid #d0ddf5;border-radius:8px;align-items:center;gap:8px;margin-bottom:8px;padding:10px 12px;display:flex}.results-summary-label{color:var(--text-heading);font-size:13px;font-weight:600}.results-summary{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.results-badge{border-radius:10px;padding:1px 8px;font-size:12px;font-weight:600;display:inline-block}.results-badge--win{color:#2e7d32;background:#e8f5e9}.results-badge--loss{color:#c62828;background:#ffebee}.results-badge--draw{color:#f57f17;background:#fff8e1}.results-badge--neutral{color:#666;background:#f5f5f5}.simulation-section{flex-direction:column;align-items:center;padding:20px;display:flex}.simulation-active-list{flex-direction:column;gap:16px;width:100%;max-width:720px;margin-top:16px;display:flex}.simulation-card{background:#fff;border:1px solid #ddd;border-radius:12px;width:100%;max-width:600px;padding:28px 32px;box-shadow:0 2px 8px #00000014}.simulation-card--wide{max-width:720px}.simulation-card h2{text-align:center;color:#1a1a2e;margin:0 0 8px;font-size:22px}.simulation-subtitle{text-align:center;color:#666;margin:0 0 16px;font-size:13px}.sim-setup-group{margin-bottom:14px}.sim-setup-group label{color:#333;margin-bottom:4px;font-size:13px;font-weight:600;display:block}.sim-setup-group select,.sim-setup-group input[type=number]{background:#fff;border:1px solid #ccc;border-radius:6px;width:100%;padding:8px 10px;font-size:14px}.sim-description{color:#666;margin:4px 0 0;font-size:12px}.sim-start-btn{color:#fff;cursor:pointer;background:#5b8def;border:none;border-radius:8px;width:100%;margin-top:18px;padding:12px;font-size:16px;font-weight:600;transition:background .15s;display:block}.sim-start-btn:hover{background:#4a7bde}.sim-config-summary{flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:16px;display:flex}.sim-tag{color:#1a5cb0;background:#e8f0fe;border-radius:12px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.sim-standing{flex-wrap:wrap;justify-content:center;gap:16px;margin-bottom:12px;display:flex}.sim-standing-row{text-align:center}.sim-standing-label{color:#888;text-transform:uppercase;letter-spacing:.5px;font-size:11px;display:block}.sim-standing-value{color:#333;font-size:22px;font-weight:700;display:block}.sim-standing-white{color:#1a1a2e}.sim-standing-black{color:#444}.sim-standing-draw{color:#888}.sim-progress-bar{background:#e0e0e0;border-radius:3px;height:6px;margin-bottom:14px;overflow:hidden}.sim-progress-fill{background:#5b8def;border-radius:3px;height:100%;transition:width .3s}.sim-controls{justify-content:center;gap:10px;margin-bottom:16px;display:flex}.sim-stop-btn{color:#fff;cursor:pointer;background:#e74c3c;border:none;border-radius:6px;padding:8px 20px;font-size:14px;font-weight:600;transition:background .15s}.sim-stop-btn:hover{background:#c0392b}.sim-back-btn{color:#fff;cursor:pointer;background:#6c757d;border:none;border-radius:6px;padding:8px 20px;font-size:14px;font-weight:600;transition:background .15s}.sim-back-btn:hover{background:#5a6268}.sim-game-list{flex-direction:column;gap:4px;max-height:420px;display:flex;overflow-y:auto}.sim-game-row{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:6px;align-items:center;gap:10px;padding:8px 12px;font-size:13px;display:flex}.sim-game-number{color:#555;min-width:36px;font-weight:700}.sim-game-moves{color:#666;min-width:70px}.sim-game-result{min-width:80px;font-weight:600}.sim-game-reason{color:#888;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;overflow:hidden}.sim-game-pending{color:#999;align-items:center;gap:6px;display:flex}.sim-analyse-btn{color:#1a5cb0;cursor:pointer;white-space:nowrap;background:#e8f0fe;border:1px solid #c4d8f5;border-radius:4px;padding:4px 10px;font-size:12px;font-weight:600;transition:background .15s}.sim-analyse-btn:hover{background:#d0e2fc}.sim-spinner{border:2px solid #ccc;border-top-color:#5b8def;border-radius:50%;width:14px;height:14px;animation:.6s linear infinite sim-spin;display:inline-block}@keyframes sim-spin{to{transform:rotate(360deg)}}@media (width<=600px){.simulation-section{padding:12px 8px}.simulation-card{padding:18px 16px}.sim-game-row{flex-wrap:wrap;gap:6px}.sim-game-reason{width:100%}.sim-analyse-btn{text-align:center;width:100%}.sim-controls{flex-direction:column;align-items:stretch}.sim-stop-btn,.sim-back-btn{text-align:center;width:100%}}@media (width<=480px){.sim-game-number{min-width:28px}.sim-game-moves{min-width:56px}.sim-game-result{min-width:60px}}.sim-details-table{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:16px;padding:12px 16px}.sim-details-heading{color:#333;border-bottom:1px solid #e0e0e0;margin:0 0 8px;padding-bottom:6px;font-size:14px}.sim-details-list{margin:0;padding:0}.sim-details-item{justify-content:space-between;padding:3px 0;font-size:13px;display:flex}.sim-details-item dt{color:#666;font-weight:500}.sim-details-item dd{color:#333;margin:0;font-weight:600}.sim-overview{border-top:1px solid #e0e0e0;width:100%;max-width:600px;margin-top:24px;padding-top:18px}.sim-overview-heading{color:#1a1a2e;margin:0 0 12px;font-size:16px;font-weight:700}.sim-overview-empty{text-align:center;color:#666;padding:12px 0;font-size:13px;line-height:1.6}.sim-overview-loading{text-align:center;color:#666;padding:8px 0;font-size:13px}.sim-overview-error{text-align:center;color:#c00;padding:8px 0;font-size:13px}.sim-overview-list{flex-direction:column;gap:8px;display:flex}.sim-overview-item{text-align:left;background:#f0f4ff;border:1px solid #c4d8f5;border-radius:8px;align-items:center;gap:12px;width:100%;padding:10px 12px;transition:background .15s,border-color .15s;display:flex}.sim-overview-item:hover{background:#dbe8ff;border-color:#5b8def}.sim-overview-item-main{cursor:pointer;flex:1;align-items:center;gap:12px;min-width:0;display:flex}.sim-overview-icon{text-align:center;justify-content:center;align-items:center;min-width:40px;font-size:28px;display:flex}.sim-overview-spinner{border:3px solid #c4d8f5;border-top-color:#5b8def;border-radius:50%;width:22px;height:22px;animation:.6s linear infinite sim-overview-spin;display:inline-block}@keyframes sim-overview-spin{to{transform:rotate(360deg)}}.sim-overview-info{flex:1;min-width:0}.sim-overview-meta{color:#333;margin-bottom:2px;font-size:13px;font-weight:600}.sim-overview-sep{color:#999;margin:0 4px}.sim-overview-gametype{color:#666;font-weight:400}.sim-overview-standing{margin-bottom:2px;font-size:13px;font-weight:600}.sim-overview-white{color:#1a1a2e}.sim-overview-black{color:#444}.sim-overview-draw{color:#777}.sim-overview-details{color:#999;font-size:11px}.sim-overview-status--running{color:#5b8def;font-weight:600}.sim-overview-date{color:#999}.sim-overview-item-wrapper{flex-direction:column;display:flex}.sim-overview-info-toggle{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;flex-shrink:0;padding:4px 6px;font-size:16px;line-height:1;transition:background .15s,border-color .15s}.sim-overview-info-toggle:hover{background:#e0ecff;border-color:#5b8def}.sim-overview-expanded{background:#f8fbff;border:1px solid #c4d8f5;border-top:none;border-radius:0 0 8px 8px;padding:8px 12px 12px 52px}.sim-overview-item-wrapper .sim-overview-item{border-radius:8px}.sim-overview-item-wrapper--expanded .sim-overview-item{border-radius:8px 8px 0 0}.sim-overview-pagination{justify-content:center;align-items:center;gap:12px;margin-top:12px;display:flex}.sim-overview-pagination button{color:#1a5cb0;cursor:pointer;background:#f0f4ff;border:1px solid #c4d8f5;border-radius:6px;padding:4px 12px;font-size:12px;font-weight:600;transition:background .15s,border-color .15s}.sim-overview-pagination button:hover:not(:disabled){background:#dbe8ff;border-color:#5b8def}.sim-overview-pagination button:disabled{opacity:.4;cursor:not-allowed}.sim-overview-page-info{color:#666;font-size:12px}@media (width<=600px){.sim-overview-icon{min-width:32px;font-size:22px}.sim-overview-item{gap:8px;padding:8px 10px}.sim-overview-expanded{padding:8px 12px 12px}}.sim-detail-back-btn{color:#5b8def;cursor:pointer;background:0 0;border:none;margin-bottom:8px;padding:4px 0;font-size:14px}.sim-detail-back-btn:hover{text-decoration:underline}.sim-detail-subtitle{text-align:center;color:#666;margin:0 0 16px;font-size:13px}.sim-detail-list{flex-direction:column;gap:8px;display:flex}.sim-detail-game-item{cursor:pointer;text-align:left;background:#f0f4ff;border:1px solid #c4d8f5;border-radius:8px;align-items:center;gap:12px;width:100%;padding:10px 12px;transition:background .15s,border-color .15s;display:flex}.sim-detail-game-item:hover{background:#dbe8ff;border-color:#5b8def}.sim-detail-game-info{flex:1;min-width:0}.sim-detail-game-meta{color:#444;margin-bottom:2px;font-size:13px}.sim-detail-game-number{font-weight:600}.sim-detail-sep{color:#aaa;margin:0 4px}.sim-detail-variant{color:#666}.sim-detail-game-result{margin-bottom:2px;font-size:13px;font-weight:600}.sim-detail-reason{color:#888;font-weight:400}.sim-detail-game-moves{color:#888;font-size:12px}@media (width<=600px){.sim-detail-game-item{gap:8px;padding:8px 10px}.sim-detail-game-meta,.sim-detail-game-result{font-size:12px}}.eval-bar{border:2px solid #333;border-radius:4px;flex-direction:column;flex-shrink:0;width:24px;height:min(80vw,560px);display:flex;position:relative;overflow:hidden}.eval-bar-black{background:#333;transition:height .3s}.eval-bar-white{background:#f0f0f0;flex:1;transition:height .3s}.eval-bar-label{color:#888;white-space:nowrap;pointer-events:none;text-shadow:1px 1px #fff,-1px -1px #fff,1px -1px #fff,-1px 1px #fff;font-size:11px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-90deg)}.review-controls{border:2px solid var(--review-border);background:var(--review-bg);text-align:center;border-radius:8px;padding:8px 12px}.review-label{color:var(--review-text);margin-bottom:6px;font-size:14px;font-weight:600}.review-nav-buttons{justify-content:center;align-items:center;gap:6px;display:flex}.review-btn{border:1px solid var(--border-input);background:var(--bg-card);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;width:36px;height:30px;padding:0;font-size:14px;display:flex}.review-btn:hover:not(:disabled){background:var(--move-hover-bg)}.review-btn:disabled{opacity:.35;cursor:default}.review-position-indicator{text-align:center;min-width:50px;color:var(--text-heading);font-family:monospace;font-size:13px}.crazyhouse-reserve{border-radius:4px;flex-wrap:wrap;align-items:center;gap:2px;min-height:36px;padding:4px 8px;display:flex}.crazyhouse-reserve-white{background:#e8e0d4;border:1px solid #c8b89a}.crazyhouse-reserve-white .crazyhouse-reserve-label{color:#6b5c4a}.crazyhouse-reserve-white .reserve-piece .reserve-count{color:#3a3020;background:#f5efe7}.crazyhouse-reserve-black{color:#ddd;background:#2a2a2a;border:1px solid #444}.crazyhouse-reserve-black .crazyhouse-reserve-label{color:#aaa}.crazyhouse-reserve-black .reserve-piece .reserve-count{color:#fff;background:#1a1a1a}.crazyhouse-reserve-label{margin-right:4px;font-size:.75rem;font-weight:600}.reserve-piece{cursor:default;-webkit-user-select:none;user-select:none;border-radius:4px;justify-content:center;align-items:center;width:30px;height:30px;font-size:1.3rem;display:inline-flex;position:relative}.reserve-piece.empty{opacity:.2;pointer-events:none}.reserve-piece.clickable{cursor:grab}.reserve-piece.clickable:active{cursor:grabbing}.reserve-piece.clickable:hover{background:#ffffff26}.reserve-piece.selected{background:#4285f466;outline:2px solid #4285f4}.reserve-piece .reserve-count{border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;font-size:.6rem;line-height:1;display:flex;position:absolute;bottom:-2px;right:-2px}.crazyhouse-reserves-container{flex-direction:column;gap:4px;margin-bottom:4px;display:flex}.fen-display{align-items:center;gap:6px;padding:4px 0;display:flex}.fen-label{color:var(--text-secondary);flex-shrink:0;font-size:12px;font-weight:600}.fen-input{border:1px solid var(--border-input);background:var(--move-list-bg);color:var(--text-heading);border-radius:4px;flex:1;min-width:0;padding:4px 6px;font-family:monospace;font-size:12px}.fen-input:focus{border-color:#4a90d9;outline:none}.fen-copy-btn{border:1px solid var(--border-input);background:var(--bg-card);cursor:pointer;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:14px;display:flex}.fen-copy-btn:hover{background:var(--bg-hover);border-color:var(--border-strong)}.report-issue{background:#f8f9fa;border:1px solid #ddd;border-radius:8px;padding:12px}.report-issue-btn{color:#fff;cursor:pointer;background:#6c757d;border:none;border-radius:6px;width:100%;padding:8px 14px;font-size:13px;font-weight:600;transition:background .15s}.report-issue-btn:hover{background:#5a6268}.report-issue-form{flex-direction:column;gap:8px;margin-top:10px;display:flex}.report-issue-form label{color:#444;font-size:12px;font-weight:600}.report-issue-form input,.report-issue-form textarea{border:1px solid #ccc;border-radius:4px;width:100%;padding:6px 8px;font-family:inherit;font-size:13px}.report-issue-form textarea{resize:vertical;min-height:60px}.report-issue-form input:focus,.report-issue-form textarea:focus{border-color:#4a90d9;outline:none}.report-issue-actions{gap:6px;display:flex}.report-issue-submit{color:#fff;cursor:pointer;background:#0d6efd;border:none;border-radius:6px;flex:1;padding:8px 14px;font-size:13px;font-weight:600;transition:background .15s}.report-issue-submit:hover{background:#0b5ed7}.report-issue-cancel{color:#333;cursor:pointer;background:#e9ecef;border:1px solid #ccc;border-radius:6px;padding:8px 14px;font-size:13px;transition:background .15s}.report-issue-cancel:hover{background:#dee2e6}.online-screen{justify-content:center;align-items:flex-start;padding:20px;display:flex}.online-card{background:#fff;border:1px solid #ddd;border-radius:12px;width:100%;max-width:480px;padding:28px 32px;box-shadow:0 2px 8px #00000014}.online-card h2{text-align:center;color:#1a1a2e;margin:0 0 4px;font-size:22px}.online-subtitle{text-align:center;color:#666;margin:0 0 20px;font-size:13px}.online-section{margin-bottom:18px}.online-section h3{color:#444;margin:0 0 8px;font-size:14px;font-weight:600}.online-join-row{gap:8px;display:flex}.online-join-input{text-transform:uppercase;letter-spacing:1px;border:1px solid #ccc;border-radius:6px;flex:1;padding:8px 10px;font-size:14px}.online-join-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#5b8def;border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:600;transition:background .15s}.online-join-btn:hover{background:#4a7cde}.online-join-btn:disabled{opacity:.6;cursor:not-allowed}.online-active-room{text-align:center;background:#f0f4ff;border:2px solid #5b8def;border-radius:10px;padding:16px}.online-room-code{letter-spacing:3px;color:#1a1a2e;margin:8px 0;font-family:monospace;font-size:28px;font-weight:700}.online-room-status{color:#666;margin:0 0 12px;font-size:13px}.online-waiting-spinner{margin-right:4px;animation:1.2s ease-in-out infinite online-pulse;display:inline-block}@keyframes online-pulse{0%,to{opacity:1}50%{opacity:.4}}.online-leave-btn{color:#d32f2f;cursor:pointer;background:0 0;border:1px solid #d32f2f;border-radius:6px;padding:6px 14px;font-size:13px;transition:background .15s,color .15s}.online-leave-btn:hover{color:#fff;background:#d32f2f}.online-room-list-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.online-room-list-header h3{margin:0}.online-refresh-btn{cursor:pointer;background:0 0;border:1px solid #ccc;border-radius:6px;padding:4px 10px;font-size:12px;transition:background .15s}.online-refresh-btn:hover{background:#f0f0f5}.online-refresh-btn:disabled{opacity:.6;cursor:not-allowed}.online-room-table{border-collapse:collapse;width:100%;font-size:13px}.online-room-table th{text-align:left;color:#666;border-bottom:2px solid #ddd;padding:6px 8px;font-size:12px;font-weight:600}.online-room-table td{border-bottom:1px solid #eee;padding:6px 8px}.online-room-table .online-join-list-btn{color:#fff;cursor:pointer;background:#5b8def;border:none;border-radius:4px;padding:4px 12px;font-size:12px;transition:background .15s}.online-room-table .online-join-list-btn:hover{background:#4a7cde}.online-room-table .online-join-list-btn:disabled{opacity:.6;cursor:not-allowed}.online-empty{text-align:center;color:#999;padding:12px 0;font-size:13px}.online-hub-status{color:#666;align-items:center;gap:6px;margin-bottom:14px;font-size:12px;display:flex}.online-hub-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.online-hub-dot--connected{background:#28a745}.online-hub-dot--disconnected{background:#d32f2f}.online-divider{color:#999;align-items:center;gap:12px;margin:18px 0;font-size:12px;display:flex}.online-divider:before,.online-divider:after{content:"";border-top:1px solid #ddd;flex:1}.online-error{color:#d32f2f;text-align:center;margin-top:8px;font-size:13px}@media (width<=480px){.online-screen{padding:12px 8px}.online-card{padding:20px 16px}.online-room-code{letter-spacing:2px;font-size:24px}.online-room-table th,.online-room-table td{padding:6px 4px}}.online-lobby-screen{justify-content:center;align-items:flex-start;padding:20px;display:flex}.online-lobby-card{background:#fff;border:1px solid #ddd;border-radius:12px;width:100%;max-width:480px;padding:28px 32px;box-shadow:0 2px 8px #00000014}.online-lobby-card h2{text-align:center;color:#1a1a2e;margin:0 0 4px;font-size:22px}.online-lobby-subtitle{text-align:center;color:#666;margin:0 0 20px;font-size:13px}.online-lobby-hub-status{color:#666;align-items:center;gap:6px;margin-bottom:14px;font-size:12px;display:flex}.online-lobby-hub-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.online-lobby-hub-dot--connected{background:#28a745}.online-lobby-hub-dot--disconnected{background:#d32f2f}.online-lobby-config-summary{margin-bottom:18px}.online-lobby-room{text-align:center;background:#f0f4ff;border:2px solid #5b8def;border-radius:10px;margin-bottom:16px;padding:16px}.online-lobby-room-title{color:#444;margin:0 0 8px;font-size:13px;font-weight:600}.online-lobby-room-code{letter-spacing:4px;color:#1a1a2e;-webkit-user-select:all;user-select:all;margin:8px 0;font-family:monospace;font-size:32px;font-weight:700}.online-lobby-waiting{color:#666;margin:0;font-size:13px}.online-lobby-countdown{color:#999;margin:6px 0 0;font-size:12px}.online-lobby-spinner{margin-right:4px;animation:1.2s ease-in-out infinite online-lobby-pulse;display:inline-block}@keyframes online-lobby-pulse{0%,to{opacity:1}50%{opacity:.4}}.online-lobby-joined{color:#28a745;margin:8px 0 0;font-size:14px;font-weight:600}.online-lobby-creating{text-align:center;color:#999;padding:20px 0;font-size:14px}.online-lobby-error{color:#d32f2f;text-align:center;margin:8px 0;font-size:13px}.online-lobby-cancel-btn{color:#666;cursor:pointer;background:0 0;border:1px solid #888;border-radius:8px;margin:0 auto;padding:8px 20px;font-size:14px;transition:background .15s,color .15s;display:block}.online-lobby-cancel-btn:hover{color:#333;background:#f0f0f5}@media (width<=480px){.online-lobby-screen{padding:12px 8px}.online-lobby-card{padding:20px 16px}.online-lobby-room-code{letter-spacing:2px;font-size:24px}}.online-game-layout{flex-direction:column;gap:0;height:100%;display:flex}.online-game-info-bar{background:#f0f4ff;border-bottom:1px solid #d0d8e8;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 16px;font-size:13px;display:flex}.online-game-opponent{align-items:center;gap:6px;display:flex}.online-game-status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.online-game-status-dot--online{background:#28a745}.online-game-status-dot--offline{background:#d32f2f}.online-game-opponent-name{color:#1a1a2e;font-weight:600}.online-game-opponent-status{color:#666;font-size:12px}.online-game-room-info{align-items:center;gap:8px;display:flex}.online-game-room-label{color:#888}.online-game-room-code{letter-spacing:1px;color:#1a1a2e;font-family:monospace;font-weight:600}.online-game-color-label{color:#555;font-weight:500}.online-game-error{color:#d32f2f;text-align:center;background:#fff3f3;border:1px solid #e8c4c4;padding:6px 16px;font-size:13px}.online-game-disconnect-banner{color:#e65100;background:#fff3e0;border:1px solid #ffb74d;border-radius:6px;align-items:center;gap:8px;padding:6px 14px;font-size:13px;font-weight:500;animation:1.5s ease-in-out infinite disconnect-pulse;display:flex}.online-game-disconnect-icon{flex-shrink:0;font-size:16px}.online-game-countdown{font-variant-numeric:tabular-nums;color:#d32f2f;font-size:15px}@keyframes disconnect-pulse{0%,to{opacity:1}50%{opacity:.7}}.online-game-main{flex-wrap:wrap;flex:1;justify-content:center;align-items:flex-start;gap:16px;padding:12px 16px;display:flex;overflow-y:auto}.online-game-controls{background:#fafafa;border:1px solid #e0e0e0;border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex}.online-game-eval-toggle{color:#444;cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.online-game-resign-btn{color:#d32f2f;cursor:pointer;background:0 0;border:1px solid #d32f2f;border-radius:6px;padding:6px 12px;font-size:13px;transition:background .15s,color .15s}.online-game-resign-btn:hover{color:#fff;background:#d32f2f}.online-game-cancel-btn{color:#666;cursor:pointer;background:0 0;border:1px solid #888;border-radius:6px;padding:4px 10px;font-size:12px}.online-game-draw-btn{color:#5b8def;cursor:pointer;background:0 0;border:1px solid #5b8def;border-radius:6px;padding:6px 12px;font-size:13px;transition:background .15s,color .15s}.online-game-draw-btn:hover{color:#fff;background:#5b8def}.online-game-draw-pending{color:#888;margin:0;font-size:12px}.online-game-draw-declined{color:#d32f2f;margin:0;font-size:12px}.online-game-draw-offer{text-align:center;background:#fff8e1;border:1px solid #f5d060;border-radius:8px;padding:12px}.online-game-draw-offer p{margin:0 0 8px;font-size:13px;font-weight:600}.online-game-accept-btn{color:#fff;cursor:pointer;background:#28a745;border:none;border-radius:6px;margin-right:8px;padding:6px 14px;font-size:13px}.online-game-decline-btn{color:#fff;cursor:pointer;background:#d32f2f;border:none;border-radius:6px;padding:6px 14px;font-size:13px}.online-game-result{text-align:center;border-radius:10px;margin-bottom:12px;padding:16px}.online-game-result h2{margin:0 0 4px;font-size:20px}.online-game-result--win{background:#e8f5e9;border:2px solid #28a745}.online-game-result--win h2{color:#28a745}.online-game-result--loss{background:#ffeef0;border:2px solid #d32f2f}.online-game-result--loss h2{color:#d32f2f}.online-game-result--draw{background:#fff8e1;border:2px solid #f5a623}.online-game-result--draw h2{color:#f5a623}.online-game-result-reason{color:#444;margin:4px 0;font-size:14px}.online-game-result-detail{color:#777;margin:4px 0;font-size:12px}.online-game-leave-btn{color:#fff;cursor:pointer;background:#5b8def;border:none;border-radius:8px;margin-top:10px;padding:8px 18px;font-size:14px;font-weight:600;transition:background .15s}.online-game-leave-btn:hover{background:#4a7cde}@media (width<=900px){.online-game-main{flex-direction:column;align-items:center;padding:12px 8px}.online-game-main .left-panel,.online-game-main .right-panel{flex:none;width:100%;max-width:560px}.online-game-info-bar{flex-direction:column;align-items:flex-start;padding:8px 12px}}@media (width<=480px){.online-game-main{gap:12px;padding:8px 4px}.online-game-info-bar{padding:6px 10px;font-size:12px}.online-game-room-code{letter-spacing:.5px}.online-game-result{padding:12px}.online-game-result h2{font-size:18px}}.profile-screen{justify-content:center;align-items:flex-start;padding:20px;display:flex}.profile-card{background:#fff;border:1px solid #ddd;border-radius:12px;width:100%;max-width:520px;padding:28px 32px;box-shadow:0 2px 8px #00000014}.profile-card h2{text-align:center;color:#1a1a2e;margin:0 0 4px;font-size:22px}.profile-subtitle{text-align:center;color:#666;margin:0 0 20px;font-size:13px}.profile-section{margin-bottom:24px}.profile-section h3{color:#444;margin:0 0 8px;font-size:14px;font-weight:600}.profile-provider-hint{color:#888;margin:0 0 6px;font-size:12px;font-style:italic}.profile-name-row{gap:8px;display:flex}.profile-name-input{border:1px solid #ccc;border-radius:6px;flex:1;padding:8px 10px;font-size:14px}.profile-name-input:focus{border-color:#5b8def;outline:none;box-shadow:0 0 0 2px #5b8def26}.profile-save-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#5b8def;border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:600;transition:background .15s}.profile-save-btn:hover{background:#4a7cde}.profile-save-btn:disabled{opacity:.6;cursor:not-allowed}.profile-avatar-hint{color:#666;margin:0 0 12px;font-size:13px}.profile-current-avatar{background:#f0f4ff;border:1px solid #d0dcf0;border-radius:8px;align-items:center;gap:10px;margin-bottom:14px;padding:10px 14px;display:flex}.profile-current-avatar-emoji{font-size:32px}.profile-current-avatar-label{color:#555;font-size:13px;font-weight:500}.profile-avatar-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.profile-avatar-option{cursor:pointer;background:#fafafa;border:2px solid #e0e0e0;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:12px 6px;transition:border-color .15s,background .15s,transform .1s;display:flex}.profile-avatar-option:hover{background:#f0f4ff;border-color:#5b8def;transform:scale(1.05)}.profile-avatar-option--selected{background:#e8efff;border-color:#5b8def;box-shadow:0 0 0 2px #5b8def40}.profile-avatar-option:disabled{opacity:.6;cursor:not-allowed;transform:none}.profile-avatar-emoji{justify-content:center;align-items:center;font-size:28px;line-height:1;display:flex}.profile-current-avatar-emoji{justify-content:center;align-items:center;font-size:32px;line-height:1;display:flex}.profile-avatar-label{color:#666;text-align:center;font-size:11px}.profile-error{color:#d32f2f;text-align:center;margin-bottom:12px;font-size:13px}.profile-success{color:#28a745;margin:6px 0 0;font-size:13px}@media (width<=480px){.profile-avatar-grid{grid-template-columns:repeat(2,1fr)}.profile-card{padding:20px 16px}}:root{color:var(--text-primary);background-color:var(--bg-page);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.app-layout{min-height:100vh;display:flex}.app-with-sidebar{flex:1;max-width:1200px;margin-left:220px;padding:16px}.app-main{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:16px;display:flex}.left-panel{flex:0 0 240px}.panel-collapse-toggle{background:var(--panel-collapse-bg);border:1px solid var(--panel-collapse-border);width:100%;color:var(--panel-collapse-text);cursor:pointer;text-align:left;border-radius:8px;margin-bottom:8px;padding:8px 12px;font-size:13px;font-weight:500;transition:background .15s;display:block}.panel-collapse-toggle:hover{background:var(--bg-hover)}.board-section{flex-direction:column;flex:none;align-items:stretch;gap:4px;display:flex}.board-row{align-items:stretch;gap:4px;display:flex}.right-panel{flex-direction:column;flex:0 0 250px;gap:12px;display:flex}@media (width>=901px) and (width<=1349px){.board-section{order:1}.right-panel{order:2}.left-panel{order:3}}@media (width<=900px){.app-with-sidebar{margin-left:0;padding:56px 16px 16px}.app-main{flex-direction:column;align-items:center}.left-panel,.right-panel{flex:none;width:100%;max-width:560px}}
