:root{--glass-bg: rgba(255, 255, 255, .45);--glass-bg-strong: rgba(255, 255, 255, .65);--glass-border: rgba(255, 255, 255, .5);--glass-blur: 20px;--glass-blur-light: 12px;--glass-radius: 20px;--glass-radius-sm: 14px;--glass-radius-xs: 10px;--glass-shadow: 0 4px 24px rgba(0, 0, 0, .06);--glass-shadow-elevated: 0 8px 32px rgba(0, 0, 0, .1);--glass-glow: 0 0 0 1px rgba(255, 255, 255, .3) inset;--icon-bg-tint: rgba(64, 167, 227, .1);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-smooth: .3s cubic-bezier(.4, 0, .2, 1);--color-win: #2ca45c;--color-loss: #e06c6c;--color-draw: #d4963a;--color-turn: var(--tg-theme-button-color, #40a7e3);--board-light: rgba(238, 230, 210, .7);--board-dark: rgba(140, 162, 186, .45);--safe-bottom: 80px;--content-hpad: 20px}[data-theme=dark]{--tg-theme-bg-color: #1c1c1e;--tg-theme-text-color: #ffffff;--tg-theme-hint-color: #98989e;--tg-theme-link-color: #64b5ef;--tg-theme-button-color: #64b5ef;--tg-theme-button-text-color: #ffffff;--tg-theme-secondary-bg-color: #2c2c2e;--tg-theme-destructive-text-color: #eb5545;--tg-theme-accent-text-color: #64b5ef;--tg-theme-section-separator-color: rgba(255, 255, 255, .08);--glass-bg: rgba(255, 255, 255, .08);--glass-bg-strong: rgba(255, 255, 255, .14);--glass-border: rgba(255, 255, 255, .12);--glass-shadow: 0 4px 24px rgba(0, 0, 0, .2);--glass-shadow-elevated: 0 8px 32px rgba(0, 0, 0, .3);--glass-glow: 0 0 0 1px rgba(255, 255, 255, .08) inset;--icon-bg-tint: rgba(100, 181, 239, .12);--color-win: #38c96a;--color-loss: #eb5545;--color-draw: #e8a840;--board-light: rgba(255, 255, 255, .13);--board-dark: rgba(80, 110, 160, .22)}@media(prefers-color-scheme:dark){:root:not([data-theme]){--tg-theme-bg-color: #1c1c1e;--tg-theme-text-color: #ffffff;--tg-theme-hint-color: #98989e;--tg-theme-link-color: #64b5ef;--tg-theme-button-color: #64b5ef;--tg-theme-button-text-color: #ffffff;--tg-theme-secondary-bg-color: #2c2c2e;--tg-theme-destructive-text-color: #eb5545;--tg-theme-accent-text-color: #64b5ef;--tg-theme-section-separator-color: rgba(255, 255, 255, .08);--glass-bg: rgba(255, 255, 255, .08);--glass-bg-strong: rgba(255, 255, 255, .14);--glass-border: rgba(255, 255, 255, .12);--glass-shadow: 0 4px 24px rgba(0, 0, 0, .2);--glass-shadow-elevated: 0 8px 32px rgba(0, 0, 0, .3);--glass-glow: 0 0 0 1px rgba(255, 255, 255, .08) inset;--icon-bg-tint: rgba(100, 181, 239, .12);--color-win: #38c96a;--color-loss: #eb5545;--color-draw: #e8a840;--board-light: rgba(255, 255, 255, .13);--board-dark: rgba(80, 110, 160, .22)}}[data-theme=crystal]{--glass-bg: rgba(255, 255, 255, .55);--glass-bg-strong: rgba(255, 255, 255, .72);--glass-border: rgba(180, 200, 220, .35);--glass-shadow: 0 4px 24px rgba(80, 120, 180, .08), 0 1px 3px rgba(0, 0, 0, .04);--glass-shadow-elevated: 0 8px 40px rgba(80, 120, 180, .12), 0 2px 6px rgba(0, 0, 0, .06);--glass-glow: 0 0 0 .5px rgba(255, 255, 255, .8) inset, 0 1px 0 rgba(255, 255, 255, .9) inset;--color-win: #1a9a4a;--color-loss: #dc4545;--color-draw: #c88520}body:before{content:"";position:fixed;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(ellipse at 20% 20%,rgba(64,167,227,.12) 0%,transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(167,119,227,.08) 0%,transparent 50%),radial-gradient(ellipse at 50% 50%,rgba(119,200,227,.06) 0%,transparent 60%);z-index:-1;animation:bgDrift 20s ease-in-out infinite alternate;will-change:transform}@keyframes bgDrift{0%{transform:translate(0) rotate(0)}to{transform:translate(-3%,-3%) rotate(3deg)}}[data-theme=crystal] body:before{background:radial-gradient(ellipse at 20% 15%,rgba(64,167,227,.25) 0%,transparent 50%),radial-gradient(ellipse at 80% 75%,rgba(180,120,230,.18) 0%,transparent 50%),radial-gradient(ellipse at 60% 40%,rgba(255,180,130,.14) 0%,transparent 55%)}[data-theme=dark] body:before{background:radial-gradient(ellipse at 20% 20%,rgba(64,130,200,.08) 0%,transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(100,80,160,.06) 0%,transparent 50%),radial-gradient(ellipse at 50% 50%,rgba(60,100,140,.04) 0%,transparent 60%)}@media(prefers-color-scheme:dark){:root:not([data-theme]) body:before{background:radial-gradient(ellipse at 20% 20%,rgba(64,130,200,.08) 0%,transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(100,80,160,.06) 0%,transparent 50%),radial-gradient(ellipse at 50% 50%,rgba(60,100,140,.04) 0%,transparent 60%)}}.glass{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow),var(--glass-glow);will-change:transform}.glass-strong{background:var(--glass-bg-strong);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow-elevated),var(--glass-glow);will-change:transform}:focus-visible{outline:2px solid var(--tg-theme-button-color, #40a7e3);outline-offset:2px}button:focus:not(:focus-visible){outline:none}.screen{display:none;position:absolute;inset:0;overflow-y:auto;-webkit-overflow-scrolling:touch;transition:opacity .25s ease,transform .25s ease}.screen.active{display:flex;flex-direction:column}.screen.fade-in{animation:fadeIn .25s ease forwards}.screen.slide-in{animation:slideIn .25s ease forwards}.screen.slide-out{animation:slideOut .2s ease forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translate(30%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOut{0%{transform:translate(0);opacity:1}to{transform:translate(-15%);opacity:0}}*{margin:0;padding:0;box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}html,body{height:100%}body{background:var(--tg-theme-bg-color, #ffffff);color:var(--tg-theme-text-color, #000000);display:flex;justify-content:flex-start;align-items:center;min-height:100vh;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.4;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input{font-family:inherit}img{display:block;max-width:100%}.app{position:relative;width:100%;height:100%;overflow:hidden}.screen-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:4px;flex-shrink:0;min-height:52px}.screen-header-title{font-size:17px;font-weight:600;text-align:center;color:var(--tg-theme-text-color, #000);flex:1}.screen-header-spacer{width:44px;flex-shrink:0}.back-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--tg-theme-link-color, #40a7e3);flex-shrink:0;transition:background var(--transition-fast)}.back-btn:active{background:var(--icon-bg-tint)}.tab-bar{position:absolute;left:48px;right:48px;bottom:8px;bottom:calc(8px + env(safe-area-inset-bottom,0px));z-index:100;display:grid;grid-template-columns:repeat(4,1fr);align-items:end;padding:3px 2px;border-radius:16px;background:#ffffffe0;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:.5px solid var(--glass-border);box-shadow:0 4px 20px #00000014;overflow:hidden}[data-theme=dark] .tab-bar{background:#28282aeb;box-shadow:0 4px 20px #0000004d}@media(prefers-color-scheme:dark){:root:not([data-theme]) .tab-bar{background:#28282aeb;box-shadow:0 4px 20px #0000004d}}[data-theme=crystal] .tab-bar{background:#ffffffd1;border-color:#b4c8dc4d;box-shadow:0 -1px #ffffffe6 inset,0 4px 24px #5078b41a}.tab-btn{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0 5px;min-height:44px;font-size:10px;font-weight:500;color:var(--tg-theme-hint-color, #6c6c6c);transition:color var(--transition-smooth)}.tab-btn svg{position:relative;z-index:1;flex-shrink:0}.tab-btn>span:not(.tab-badge){position:relative;z-index:1}.tab-btn .tab-icon-fill,.tab-btn.active .tab-icon{display:none}.tab-btn.active .tab-icon-fill{display:block}.tab-btn:before{content:"";position:absolute;inset:1px 6px;border-radius:14px;background:var(--tg-theme-button-color, #40a7e3);opacity:0;transform:scale(.82);transition:transform var(--transition-smooth),opacity var(--transition-smooth)}.tab-btn.active:before{transform:scale(1);opacity:.1}.tab-btn.active{color:var(--tg-theme-button-color, #40a7e3);font-weight:600}.tab-btn:active{opacity:.7}.tab-badge{position:absolute;top:2px;left:50%;margin-left:6px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--tg-theme-destructive-text-color, #e06c6c);color:#fff;font-size:11px;font-weight:600;line-height:18px;text-align:center;z-index:2;transition:opacity var(--transition-fast),transform var(--transition-fast)}.tab-badge.hidden{opacity:0;transform:scale(0);pointer-events:none}.tab-btn-shop .tab-icon,.tab-btn-shop .tab-icon-fill{color:#e8a840;filter:drop-shadow(0 0 3px rgba(232,168,64,.25))}.tab-btn-shop>span:not(.tab-badge){background:linear-gradient(135deg,#e8a840,#d4763a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:700}.tab-btn-shop.active .tab-icon-fill{color:#e8a840;filter:drop-shadow(0 0 6px rgba(232,168,64,.4))}.tab-btn-shop:before{background:linear-gradient(135deg,#e8a840,#d4763a)!important}[data-theme=dark] .tab-btn-shop .tab-icon,[data-theme=dark] .tab-btn-shop .tab-icon-fill{color:#f0b850;filter:drop-shadow(0 0 4px rgba(240,184,80,.35))}[data-theme=dark] .tab-btn-shop>span:not(.tab-badge){background:linear-gradient(135deg,#f0b850,#e8884a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.app-gear{position:absolute;top:14px;right:14px;z-index:200;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--tg-theme-hint-color, #6c6c6c);transition:background var(--transition-fast)}.app-gear:active{background:var(--glass-bg)}#screen-menu{align-items:center;justify-content:center}#screen-game{align-items:center;justify-content:flex-start}#screen-stats{overflow-y:auto;-webkit-overflow-scrolling:touch}#screen-games,#screen-preferences,#screen-replay{overflow:hidden}.menu-content{flex:1;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:20px 48px;padding-bottom:var(--safe-bottom)}.menu-brand{display:flex;flex-direction:column;align-items:center;gap:8px}.menu-logo{line-height:1}.menu-app-name{font-size:24px;font-weight:700;color:var(--tg-theme-text-color, #000000);letter-spacing:-.3px}.menu-subtitle{font-size:13px;color:var(--tg-theme-hint-color, #6c6c6c);margin-top:-2px}.menu-play-group{width:100%;border-radius:var(--glass-radius);overflow:hidden}.menu-play-btn{display:flex;align-items:center;gap:14px;width:100%;padding:14px 16px;font-size:16px;font-weight:500;color:var(--tg-theme-text-color, #000000);transition:background var(--transition-fast)}.menu-play-btn:active{background:var(--icon-bg-tint);transform:scale(.97)}.menu-play-icon{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--icon-bg-tint);color:var(--tg-theme-button-color, #40a7e3);flex-shrink:0}.menu-play-label{flex:1;text-align:left}.menu-play-chevron{color:var(--tg-theme-hint-color, #6c6c6c);opacity:.4;flex-shrink:0}.menu-divider{height:.5px;background:var(--tg-theme-section-separator-color, rgba(0,0,0,.06));margin-left:68px}#random-search-screen{display:none;flex-direction:column;align-items:center;justify-content:center;gap:16px;position:absolute;inset:0;z-index:20;width:100%;text-align:center}[data-theme=crystal] .menu-play-group{box-shadow:var(--glass-shadow-elevated),var(--glass-glow)}.menu-button{padding:16px 24px;font-size:20px;border:none;border-radius:12px;background:var(--tg-theme-button-color, #40a7e3);color:var(--tg-theme-button-text-color, #ffffff);cursor:pointer;box-shadow:0 4px 6px #0000001a;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.menu-button:active{transform:translateY(1px)}.spinner{width:40px;height:40px;border-radius:50%;border:4px solid rgba(64,167,227,.25);border-top-color:var(--tg-theme-button-color, #40a7e3);animation:spinner-rotate .8s linear infinite}@keyframes spinner-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.search-status{font-size:20px;font-weight:600;color:var(--tg-theme-text-color, #000000)}.search-settings{width:90%;max-width:340px;padding:16px;border-radius:var(--glass-radius-sm);display:flex;flex-direction:column;gap:14px}.search-settings-section{display:flex;flex-direction:column;gap:8px}.search-settings-label{font-size:13px;font-weight:600;color:var(--tg-theme-hint-color, #6c6c6c);text-transform:uppercase;letter-spacing:.4px}.search-chips{display:flex;flex-wrap:wrap;gap:6px}.search-settings-note{font-size:11px;color:var(--tg-theme-hint-color, #6c6c6c);opacity:.7;text-align:center;line-height:1.3;margin-top:2px}.search-hint{font-size:13px;color:var(--tg-theme-hint-color, #6c6c6c);text-align:center;padding:0 20px;animation:searchHintFadeIn .5s ease}@keyframes searchHintFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.game-content{display:none;flex-direction:column;align-items:center;gap:4px;padding:2vh 12px 12px;width:100%;max-width:520px;margin:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}canvas{display:block;border-radius:6px;border:1px solid var(--glass-border);box-shadow:var(--glass-shadow-elevated);touch-action:none}#error-message{display:none;color:var(--tg-theme-destructive-text-color, red);text-align:center;padding:20px;font-size:16px;background:#e03c3c14;border-radius:var(--glass-radius-sm);margin:20px}#loading-message{display:none;text-align:center;padding:20px;font-size:16px;color:var(--tg-theme-hint-color, #6c6c6c)}.game-status-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 14px;border-radius:999px;background:#2ca45c1a;color:var(--color-win);font-size:14px;font-weight:600}.game-status-pill .status-dot{width:8px;height:8px;border-radius:50%;background:var(--color-win);animation:dotPulse 1.5s ease-in-out infinite;flex-shrink:0}.game-status-pill.status-check{background:#e06c6c1a;color:var(--color-loss)}.game-status-pill.status-check .status-dot{background:var(--color-loss)}@keyframes dotPulse{0%,to{opacity:1}50%{opacity:.4}}.move-feedback{height:24px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:500;color:var(--tg-theme-destructive-text-color, #e06c6c);min-height:24px;opacity:0;transition:opacity .3s ease}.move-feedback.show{opacity:1}.player-row{display:flex;align-items:center;justify-content:space-between;padding:6px 4px;width:100%}.player-info{display:flex;align-items:center;gap:10px;min-width:0}.avatar{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px;color:#fff;flex-shrink:0;background:var(--tg-theme-button-color, #40a7e3);box-shadow:0 2px 8px #40a7e340;transition:box-shadow var(--transition-normal),background var(--transition-normal)}.avatar.active-turn{background:var(--color-win);animation:turnPulse 2s ease-in-out infinite}@keyframes turnPulse{0%,to{box-shadow:0 0 0 2px #2ca45c4d,0 0 12px #2ca45c26}50%{box-shadow:0 0 0 3px #2ca45c33,0 0 20px #2ca45c4d}}.player-row .player-name{font-size:15px;font-weight:500;color:var(--tg-theme-text-color, #000000);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px;margin-left:0}.timer{font-size:17px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--tg-theme-text-color, #000000);min-width:52px;text-align:right}.timer.low-time{color:var(--color-loss);animation:timerPulse 1.2s ease-in-out infinite}.timer.timer-inactive{opacity:.4}@keyframes timerPulse{0%,to{opacity:1}50%{opacity:.4}}.game-controls{display:flex;gap:8px;width:100%;max-width:520px;justify-content:center;padding-top:6px;flex-shrink:0}.ctrl-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--glass-radius-xs);color:var(--tg-theme-button-color, #40a7e3);transition:all var(--transition-fast);flex-shrink:0}.ctrl-icon:active{transform:scale(.92);background:var(--icon-bg-tint)}.ctrl-icon:disabled{color:var(--tg-theme-hint-color, #999);opacity:.4;cursor:not-allowed}.ctrl-icon:disabled:active{transform:none;background:none}.ctrl-icon.thinking{animation:thinkingPulse 1.2s ease-in-out infinite;color:var(--tg-theme-button-color, #40a7e3);opacity:.7}@keyframes thinkingPulse{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.ctrl-icon.ctrl-resign{color:var(--color-loss)}.ctrl-icon.timer-toggle{width:auto;padding:0 18px;gap:6px;border-radius:999px;font-size:13px;font-weight:500}.ctrl-icon.timer-toggle.timer-off{opacity:.45;text-decoration:line-through}.ctrl-icon.timer-toggle.pending{animation:timerPulse 1.2s ease-in-out infinite}.ctrl-icon.timer-toggle.disabled{opacity:.4;cursor:not-allowed}.timer-label{line-height:1}.game-over-overlay{display:none;position:absolute;inset:0;z-index:50;background:#00000073;align-items:center;justify-content:center;padding:20px;animation:fadeInOverlay .3s ease}.game-over-overlay.open{display:flex}@keyframes fadeInOverlay{0%{opacity:0}to{opacity:1}}.game-over-card{width:100%;max-width:300px;padding:32px 24px;border-radius:var(--glass-radius);text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;animation:cardPop .35s cubic-bezier(.34,1.56,.64,1)}@keyframes cardPop{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}.game-over-icon{font-size:48px;line-height:1}.game-over-title{font-size:22px;font-weight:700;color:var(--tg-theme-text-color, #000)}.result-win .game-over-title{color:var(--color-win)}.result-loss .game-over-title{color:var(--color-loss)}.result-draw .game-over-title{color:var(--color-draw)}.game-over-subtitle{font-size:14px;color:var(--tg-theme-hint-color, #6c6c6c)}.game-over-actions{display:flex;flex-direction:column;gap:8px;width:100%;margin-top:8px}.game-over-btn{width:100%;padding:14px;border-radius:14px;font-size:16px;font-weight:600;transition:all var(--transition-fast)}.game-over-btn:active{transform:scale(.97)}.btn-primary{color:var(--tg-theme-button-text-color, #fff);background:var(--tg-theme-button-color, #40a7e3);box-shadow:0 4px 16px #40a7e34d}.btn-secondary{color:var(--tg-theme-button-color, #40a7e3);background:var(--glass-bg, rgba(255,255,255,.12));border:1.5px solid var(--tg-theme-button-color, #40a7e3)}.game-over-btn.btn-disabled{opacity:.4;pointer-events:none}[data-theme=crystal] .btn-primary{box-shadow:0 4px 20px #40a7e359}.btn-ghost{color:var(--tg-theme-text-color, #000)}.sheet-backdrop{display:none;position:fixed;inset:0;background:#00000059;z-index:200;opacity:0;transition:opacity var(--transition-normal)}.sheet-backdrop.open{display:block;opacity:1}.sheet{position:fixed;left:10px;right:10px;bottom:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:201;border-radius:var(--glass-radius);overflow:hidden;transform:translateY(110%);transition:transform var(--transition-smooth);background:var(--tg-theme-bg-color, #ffffff);box-shadow:0 -4px 32px #00000026;padding-top:8px}.sheet.open{transform:translateY(0)}.sheet-handle{width:36px;height:4px;border-radius:2px;background:var(--tg-theme-hint-color, #ccc);opacity:.4;margin:0 auto 4px}.sheet-option{display:flex;align-items:center;gap:14px;width:100%;padding:16px 20px;font-size:16px;font-weight:500;color:var(--tg-theme-text-color, #000000);transition:background var(--transition-fast)}.sheet-option:active{background:var(--icon-bg-tint)}.sheet-option svg{color:var(--tg-theme-button-color, #40a7e3);flex-shrink:0}.sheet-option.destructive{color:var(--color-loss)}.sheet-option.destructive svg{color:var(--color-loss)}.sheet-divider{height:.5px;background:var(--tg-theme-section-separator-color, rgba(0,0,0,.06))}.sheet-cancel{display:flex;align-items:center;justify-content:center;width:100%;padding:16px 20px;font-size:16px;font-weight:600;color:var(--tg-theme-button-color, #40a7e3);transition:background var(--transition-fast)}.sheet-cancel:active{background:var(--icon-bg-tint)}@media(max-height:700px){.game-content{gap:2px;padding:3vh 10px 8px}.ctrl-icon{width:44px;height:44px}.player-row{padding:4px}.avatar{width:34px;height:34px;font-size:14px}.player-row .player-name{font-size:14px}.timer{font-size:15px}.move-feedback{height:20px;min-height:20px;font-size:13px}}[data-theme=crystal] .avatar{box-shadow:0 2px 12px #40a7e34d}[data-theme=crystal] .game-over-overlay{background:#6482aa59}[data-theme=crystal] .game-over-card{box-shadow:var(--glass-shadow-elevated),var(--glass-glow)}[data-theme=crystal] .sheet-backdrop{background:#6482aa4d}[data-theme=crystal] .sheet{box-shadow:0 -8px 40px #5078b41f}[data-theme=dark] .sheet{background:var(--tg-theme-secondary-bg-color, #2c2c2e)}@media(prefers-color-scheme:dark){:root:not([data-theme]) .sheet{background:var(--tg-theme-secondary-bg-color, #2c2c2e)}}.stats-content{flex:1;display:flex;flex-direction:column;gap:16px;padding:16px;padding-bottom:var(--safe-bottom);overflow-y:auto;-webkit-overflow-scrolling:touch}.stats-page-title{font-size:24px;font-weight:700;color:var(--tg-theme-text-color, #000)}.stats-toolbar-wrap{display:flex;flex-direction:column;gap:8px}.stats-toolbar{display:flex;flex-wrap:wrap;gap:6px}.stats-diff-bar{display:flex;flex-wrap:wrap;gap:6px;overflow:hidden;max-height:120px;opacity:1;transition:max-height var(--transition-normal),opacity var(--transition-fast),margin var(--transition-normal)}.stats-diff-bar.hidden{max-height:0;opacity:0;margin-top:-8px;pointer-events:none}.stats-section{display:flex;flex-direction:column;gap:8px}.stats-section+.stats-section{margin-top:8px}.stats-section-title{font-size:12px;font-weight:600;color:var(--tg-theme-hint-color, #6c6c6c);text-transform:uppercase;letter-spacing:.5px}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.stats-grid-3{grid-template-columns:repeat(3,1fr)}.stat-card{display:flex;flex-direction:column;gap:4px;padding:14px;border-radius:var(--glass-radius-xs);min-height:72px}.stat-card strong{font-size:22px;font-weight:600;line-height:1.1}.stat-card-wide{width:100%;grid-column:1 / -1}.stat-label{font-size:12px;color:var(--tg-theme-hint-color, #6c6c6c);display:flex;align-items:center;gap:4px}.stat-icon{flex-shrink:0}.stat-icon-win{color:var(--color-win)}.stat-icon-loss{color:var(--color-loss)}.stat-icon-draw{color:var(--color-draw)}.stat-win{color:var(--color-win)}.stat-loss{color:var(--color-loss)}.stat-draw{color:var(--color-draw)}.stat-accent{color:var(--tg-theme-button-color, #40a7e3)}.stat-progress{height:4px;border-radius:2px;background:var(--glass-border);margin-top:4px;overflow:hidden}.stat-progress-fill{height:100%;border-radius:2px;background:var(--tg-theme-button-color, #40a7e3);transition:width .6s ease}.state-placeholder{display:none;align-items:center;justify-content:center;min-height:160px;border-radius:var(--glass-radius-xs);padding:18px;text-align:center;color:var(--tg-theme-hint-color, #6c6c6c);font-size:15px;line-height:1.45}.state-placeholder.active{display:flex}.state-placeholder.error{color:var(--color-loss)}.state-spinner{width:32px;height:32px;border-radius:50%;border:3px solid rgba(64,167,227,.2);border-top-color:var(--tg-theme-button-color, #40a7e3);animation:stateSpin .7s linear infinite;margin:0 auto 12px}@keyframes stateSpin{to{transform:rotate(360deg)}}@media(max-width:380px){.stats-grid{grid-template-columns:1fr}.stats-grid-3{grid-template-columns:repeat(3,1fr)}}[data-theme=crystal] .stat-progress-fill{box-shadow:0 0 8px #40a7e34d}.games-content{flex:1;min-height:0;display:flex;flex-direction:column;gap:12px;padding:16px 0 0;overflow-y:auto;-webkit-overflow-scrolling:touch}.games-page-title{font-size:24px;font-weight:700;color:var(--tg-theme-text-color, #000);padding:0 16px;flex-shrink:0}.games-filter-bar{display:flex;gap:6px;padding:0 16px;flex-shrink:0}.games-card-wrap{width:100%;max-width:400px;margin:0 auto;padding:0 0 var(--safe-bottom);border-radius:var(--glass-radius);overflow:hidden;flex-shrink:0}.games-section-label{font-size:11px;font-weight:700;color:var(--tg-theme-hint-color, #6c6c6c);text-transform:uppercase;letter-spacing:.8px;padding:14px 20px 6px}.games-divider{height:.5px;background:var(--tg-theme-section-separator-color, rgba(0,0,0,.06));margin:4px 20px}.games-list{display:flex;flex-direction:column}.game-item{display:flex;align-items:center;gap:12px;padding:12px 20px;cursor:pointer;transition:background var(--transition-fast);position:relative}.game-item:active{background:var(--icon-bg-tint)}.game-item+.game-item:before{content:"";position:absolute;top:0;left:76px;right:20px;height:.5px;background:var(--tg-theme-section-separator-color, rgba(0,0,0,.06))}.game-item-active{background:#40a7e30a}[data-theme=dark] .game-item-active{background:#64b5ef0f}[data-theme=crystal] .game-item-active{background:#40a7e30f}.game-item-avatar{width:44px;height:44px;border-radius:50%;background:var(--tg-theme-button-color, #40a7e3);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:18px;flex-shrink:0;box-shadow:0 2px 8px #40a7e333;overflow:hidden}.game-item-avatar img{width:100%;height:100%;object-fit:cover}.game-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.game-item-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.game-item-name{font-size:15px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-item-time{font-size:12px;color:var(--tg-theme-hint-color, #6c6c6c);flex-shrink:0}.game-item-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px}.game-item-status{font-size:13px;color:var(--tg-theme-hint-color, #6c6c6c);display:flex;align-items:center;gap:4px}.game-item-status .status-icon{flex-shrink:0;vertical-align:middle}.game-item-status.win{color:var(--color-win);font-weight:500}.game-item-status.loss{color:var(--color-loss);font-weight:500}.game-item-status.draw{color:var(--color-draw);font-weight:500}.game-item-status.turn{color:var(--color-turn);font-weight:500}.game-item-badge{width:8px;height:8px;border-radius:50%;background:var(--tg-theme-button-color, #40a7e3)}.game-item-meta{font-size:11px;color:var(--tg-theme-hint-color, #6c6c6c);opacity:.7}.replay-content{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:0 12px 16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.replay-content>.screen-header{position:sticky;top:0;z-index:10;background:var(--glass-bg-strong);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));align-self:stretch}.replay-share{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--tg-theme-link-color, #40a7e3);border-radius:var(--glass-radius-xs);padding:8px 12px;transition:background var(--transition-fast)}.replay-share:active{background:var(--icon-bg-tint)}.replay-result{font-size:15px;font-weight:600;text-align:center;padding:4px 14px;border-radius:999px;display:inline-flex;align-items:center;gap:6px}.replay-result-win{color:var(--color-win);background:#2ca45c1a}.replay-result-loss{color:var(--color-loss);background:#e06c6c1a}.replay-result-draw{color:var(--color-draw);background:#d4963a1a}.replay-board-wrap{width:100%;max-width:520px;position:relative;aspect-ratio:1 / 1}#replay-canvas{width:100%;height:auto;aspect-ratio:1 / 1;max-width:520px}.replay-nav{display:flex;gap:8px;width:100%;max-width:520px}.replay-nav-btn{flex:1;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--glass-radius-xs);color:var(--tg-theme-button-color, #40a7e3);transition:all var(--transition-fast)}.replay-nav-main{flex:1.4}.replay-nav-btn:active{transform:scale(.93);background:var(--icon-bg-tint)}.replay-nav-btn:disabled{color:var(--tg-theme-hint-color, #999);opacity:.35}.replay-nav-btn:disabled:active{transform:none;background:none}.replay-moves{width:100%;flex:1;min-height:80px;overflow-y:auto;-webkit-overflow-scrolling:touch;display:grid;grid-template-columns:34px 1fr 1fr;gap:0 8px;align-content:start;padding:10px 12px;font-size:13px;font-variant-numeric:tabular-nums;line-height:2;border-radius:var(--glass-radius-xs);-webkit-user-select:text;user-select:text}.move-num{color:var(--tg-theme-hint-color, #6c6c6c);text-align:right;font-size:12px}.move-cell{color:var(--tg-theme-text-color, #000000);padding:0 4px;border-radius:4px;cursor:pointer;transition:background var(--transition-fast)}.move-cell:hover{background:#40a7e30f}.move-cell:active{background:#40a7e314}.move-cell.active-move{background:#40a7e333}[data-theme=crystal] .move-cell.active-move{background:#40a7e340;box-shadow:0 0 6px #40a7e31a}.chip{padding:8px 12px;min-height:44px;font-size:13px;font-weight:500;border-radius:12px;border:1.5px solid var(--glass-border);color:var(--tg-theme-text-color, #000000);transition:all var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.chip.active{border-color:var(--tg-theme-button-color, #40a7e3);background:#40a7e314}.chip:active{transform:scale(.95)}.chip.chip-sm{padding:4px 12px;min-height:32px;font-size:12px;font-weight:400;color:var(--tg-theme-hint-color, #999999);border-color:transparent}.chip.chip-sm.active{font-weight:500;color:var(--tg-theme-button-color, #40a7e3);border-color:var(--tg-theme-button-color, #40a7e3);background:#40a7e314}[data-theme=crystal] .chip.active{background:linear-gradient(135deg,#40a7e31a,#78b4f00a);box-shadow:0 1px 4px #40a7e31a}#screen-preferences{display:none;flex-direction:column}#screen-preferences.active{display:flex}.prefs-header{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;width:100%;height:56px;min-height:56px;padding:0 6px;background:var(--tg-theme-bg-color, #ffffff);flex-shrink:0;transition:box-shadow .25s ease}.prefs-header.scrolled{box-shadow:0 1px 8px #0000000f}[data-theme=dark] .prefs-header{background:var(--tg-theme-bg-color, #1c1c1e)}[data-theme=dark] .prefs-header.scrolled{box-shadow:0 1px 8px #0000004d}@media(prefers-color-scheme:dark){:root:not([data-theme]) .prefs-header{background:var(--tg-theme-bg-color, #1c1c1e)}:root:not([data-theme]) .prefs-header.scrolled{box-shadow:0 1px 8px #0000004d}}.prefs-header-title{font-size:17px;font-weight:600;text-align:center;color:var(--tg-theme-text-color, #000);flex:1}.prefs-header-spacer{width:44px;flex-shrink:0}.prefs-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:4px 16px;padding-bottom:var(--safe-bottom);display:flex;flex-direction:column;gap:32px}.prefs-group{display:flex;flex-direction:column;gap:20px;padding:16px;border-radius:var(--glass-radius-sm);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow),var(--glass-glow);margin-bottom:4px}.prefs-group-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--tg-theme-button-color, #40a7e3);padding-bottom:6px}.prefs-section{display:flex;flex-direction:column}.prefs-label{font-size:14px;font-weight:500;color:var(--tg-theme-text-color, #000);margin-bottom:10px}.prefs-chips{display:flex;flex-wrap:wrap;gap:8px}.prefs-hint{font-size:13px;font-weight:400;color:var(--tg-theme-hint-color, #6c6c6c);margin-top:8px;line-height:1.4}.prefs-position-detail{display:none;margin-top:10px;gap:10px;align-items:center}.prefs-position-detail.visible{display:flex}.prefs-position-input{width:80px;padding:8px 12px;font-size:16px;border:2px solid var(--glass-border);border-radius:10px;background:var(--tg-theme-secondary-bg-color, #f0f0f0);color:var(--tg-theme-text-color, #000000);text-align:center;outline:none;-webkit-user-select:text;user-select:text}.prefs-position-input:focus{border-color:var(--tg-theme-button-color, #40a7e3)}.prefs-position-input.invalid{border-color:var(--tg-theme-destructive-text-color, #e06c6c)}.prefs-position-preview{font-size:22px;letter-spacing:4px;color:var(--tg-theme-text-color, #000000);white-space:nowrap}.shop-content{flex:1;display:flex;flex-direction:column;gap:18px;padding:0 0 var(--safe-bottom);padding-top:4px;overflow-y:auto;-webkit-overflow-scrolling:touch}.shop-header{padding:12px 20px 0}.shop-title{font-size:24px;font-weight:700;background:linear-gradient(135deg,#e8a840,#d4763a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.shop-section{padding:0 16px}.shop-section-label{font-size:12px;font-weight:600;color:var(--tg-theme-hint-color, #6c6c6c);text-transform:uppercase;letter-spacing:.6px;margin-bottom:10px}.shop-board-styles{display:flex;gap:8px;flex-wrap:wrap}.shop-board-opt{display:flex;align-items:center;gap:7px;padding:8px 12px;min-height:44px;border-radius:12px;border:1.5px solid var(--glass-border);font-size:13px;font-weight:500;color:var(--tg-theme-text-color, #000);background:transparent;transition:all var(--transition-fast);white-space:nowrap;position:relative}.shop-board-opt:active{transform:scale(.95)}.shop-board-opt.active{border-color:var(--tg-theme-button-color, #40a7e3);background:#40a7e314}.shop-board-swatch{width:20px;height:20px;border-radius:5px;flex-shrink:0}.swatch-wood{background:linear-gradient(135deg,#f0d9b5 50%,#b58863 50%)}.swatch-green{background:linear-gradient(135deg,#eeeed2 50%,#769656 50%)}.swatch-lavender{background:linear-gradient(135deg,#eae7ef 50%,#9a95b0 50%)}.swatch-ice{background:linear-gradient(135deg,#e3edf5 50%,#9ab8d0 50%)}[data-theme=dark] .swatch-wood{background:linear-gradient(135deg,#7a6352 50%,#4a3728 50%)}[data-theme=dark] .swatch-green{background:linear-gradient(135deg,#4d6b4a 50%,#2d4a2a 50%)}[data-theme=dark] .swatch-lavender{background:linear-gradient(135deg,#5c5072 50%,#3a3050 50%)}[data-theme=dark] .swatch-ice{background:linear-gradient(135deg,#5a6878 50%,#333d4a 50%)}@media(prefers-color-scheme:dark){:root:not([data-theme]) .swatch-wood{background:linear-gradient(135deg,#7a6352 50%,#4a3728 50%)}:root:not([data-theme]) .swatch-green{background:linear-gradient(135deg,#4d6b4a 50%,#2d4a2a 50%)}:root:not([data-theme]) .swatch-lavender{background:linear-gradient(135deg,#5c5072 50%,#3a3050 50%)}:root:not([data-theme]) .swatch-ice{background:linear-gradient(135deg,#5a6878 50%,#333d4a 50%)}}.shop-sets-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.shop-set-card{display:flex;flex-direction:column;border-radius:var(--glass-radius-sm);padding:10px;cursor:pointer;transition:all var(--transition-fast);position:relative}.shop-set-card:active{transform:scale(.97)}.shop-set-card.selected{border-color:var(--tg-theme-button-color, #40a7e3);box-shadow:0 0 0 2px var(--tg-theme-button-color, #40a7e3),var(--glass-shadow)}.shop-set-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;gap:4px}.shop-set-name{font-size:13px;font-weight:600;color:var(--tg-theme-text-color, #000);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shop-set-check{flex-shrink:0;font-size:14px;font-weight:700;color:var(--tg-theme-button-color, #40a7e3)}.shop-mini-board,.shop-preview-board{width:100%;aspect-ratio:1;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);border-radius:6px;overflow:hidden;border:1px solid var(--glass-border)}.shop-mini-board .cell,.shop-preview-board .cell{display:flex;align-items:center;justify-content:center}.shop-preview-board .cell.light{background:var(--preview-board-light, #e3edf5)}.shop-preview-board .cell.dark{background:var(--preview-board-dark, #9ab8d0)}.shop-mini-board.wood .cell.light{background:#f0d9b5}.shop-mini-board.wood .cell.dark{background:#b58863}.shop-mini-board.green .cell.light{background:#eeeed2}.shop-mini-board.green .cell.dark{background:#769656}.shop-mini-board.lavender .cell.light{background:#eae7ef}.shop-mini-board.lavender .cell.dark{background:#9a95b0}.shop-mini-board.ice .cell.light{background:#e3edf5}.shop-mini-board.ice .cell.dark{background:#9ab8d0}[data-theme=dark] .shop-mini-board.wood .cell.light{background:#7a6352}[data-theme=dark] .shop-mini-board.wood .cell.dark{background:#4a3728}[data-theme=dark] .shop-mini-board.green .cell.light{background:#4d6b4a}[data-theme=dark] .shop-mini-board.green .cell.dark{background:#2d4a2a}[data-theme=dark] .shop-mini-board.lavender .cell.light{background:#5c5072}[data-theme=dark] .shop-mini-board.lavender .cell.dark{background:#3a3050}[data-theme=dark] .shop-mini-board.ice .cell.light{background:#5a6878}[data-theme=dark] .shop-mini-board.ice .cell.dark{background:#333d4a}@media(prefers-color-scheme:dark){:root:not([data-theme]) .shop-mini-board.wood .cell.light{background:#7a6352}:root:not([data-theme]) .shop-mini-board.wood .cell.dark{background:#4a3728}:root:not([data-theme]) .shop-mini-board.green .cell.light{background:#4d6b4a}:root:not([data-theme]) .shop-mini-board.green .cell.dark{background:#2d4a2a}:root:not([data-theme]) .shop-mini-board.lavender .cell.light{background:#5c5072}:root:not([data-theme]) .shop-mini-board.lavender .cell.dark{background:#3a3050}:root:not([data-theme]) .shop-mini-board.ice .cell.light{background:#5a6878}:root:not([data-theme]) .shop-mini-board.ice .cell.dark{background:#333d4a}}.shop-piece{width:80%;height:80%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.15))}[data-theme=dark] .shop-piece.w-piece,.preview-dark .shop-piece.w-piece{filter:brightness(1.1) drop-shadow(0 1px 3px rgba(0,0,0,.4))}[data-theme=dark] .shop-piece.b-piece,.preview-dark .shop-piece.b-piece{filter:brightness(1.6) drop-shadow(0 0 2px rgba(255,245,230,.5)) drop-shadow(0 1px 3px rgba(0,0,0,.5))}@media(prefers-color-scheme:dark){:root:not([data-theme]) .shop-piece.w-piece{filter:brightness(1.1) drop-shadow(0 1px 3px rgba(0,0,0,.4))}:root:not([data-theme]) .shop-piece.b-piece{filter:brightness(1.6) drop-shadow(0 0 2px rgba(255,245,230,.5)) drop-shadow(0 1px 3px rgba(0,0,0,.5))}}.shop-preview-backdrop{display:none;position:fixed;inset:0;background:#0006;z-index:300;opacity:0;transition:opacity var(--transition-normal)}.shop-preview-backdrop.open{display:block;opacity:1}.shop-preview-panel{position:fixed;left:12px;right:12px;bottom:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:301;border-radius:var(--glass-radius);padding:8px 16px 16px;transform:translateY(110%);transition:transform var(--transition-smooth);background:var(--tg-theme-bg-color, #ffffff);box-shadow:0 -8px 40px #0000002e;display:flex;flex-direction:column;gap:14px;max-height:85vh}[data-theme=dark] .shop-preview-panel{background:var(--tg-theme-secondary-bg-color, #2c2c2e)}@media(prefers-color-scheme:dark){:root:not([data-theme]) .shop-preview-panel{background:var(--tg-theme-secondary-bg-color, #2c2c2e)}}.shop-preview-handle{width:36px;height:4px;border-radius:2px;background:var(--tg-theme-hint-color, #ccc);opacity:.3;margin:0 auto 4px;flex-shrink:0}.shop-preview-panel.preview-dark{background:#1c1c1e;color:#e5e5e7}.shop-preview-panel.preview-dark .shop-preview-name{color:#e5e5e7}.shop-preview-panel.preview-dark .shop-preview-board{border-color:#ffffff1f}.shop-preview-panel.preview-dark .shop-board-opt{border-color:#ffffff1f;color:#e5e5e7}.shop-preview-panel.preview-dark .shop-board-opt.active{border-color:#64b5ef;background:#64b5ef1f}.shop-preview-panel.preview-dark .shop-preview-theme-toggle{background:#ffffff14}.shop-preview-panel.preview-dark .preview-theme-btn{color:#ffffff80}.shop-preview-panel.open{transform:translateY(0)}.shop-preview-head{display:flex;align-items:center;gap:10px}.shop-preview-name{font-size:20px;font-weight:700;color:var(--tg-theme-text-color, #000)}.shop-preview-board-wrap{width:100%;max-width:360px;margin:auto auto 0}.shop-preview-board{box-shadow:var(--glass-shadow-elevated)}.shop-preview-controls{display:flex;align-items:center;justify-content:center;gap:12px}.shop-preview-styles{display:flex;gap:8px;justify-content:center}.shop-preview-theme-toggle{display:flex;gap:2px;padding:3px;border-radius:10px;background:var(--tg-theme-secondary-bg-color, #f0f0f0);flex-shrink:0}.preview-theme-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:14px;color:var(--tg-theme-hint-color, #6c6c6c);transition:all var(--transition-fast)}.preview-theme-btn.active{background:var(--tg-theme-button-color, #40a7e3);color:var(--tg-theme-button-text-color, #fff);box-shadow:0 1px 4px #40a7e34d}.preview-theme-btn:active{transform:scale(.92)}.shop-preview-styles .shop-board-opt{padding:8px;border-radius:10px;gap:0}.shop-preview-styles .shop-board-swatch{width:26px;height:26px;border-radius:6px}.shop-preview-select{width:100%;padding:14px;border-radius:14px;font-size:16px;font-weight:600;color:var(--tg-theme-button-text-color, #fff);background:var(--tg-theme-button-color, #40a7e3);box-shadow:0 4px 16px #40a7e34d;transition:all var(--transition-fast)}.shop-preview-select:active{transform:scale(.98);box-shadow:0 2px 8px #40a7e34d}.shop-preview-select.already-selected{background:var(--tg-theme-secondary-bg-color, #f0f0f0);color:var(--tg-theme-hint-color, #6c6c6c);box-shadow:none}@media(max-width:380px){.shop-sets-grid{grid-template-columns:1fr}}[data-theme=crystal] .shop-preview-backdrop{background:#6482aa59}[data-theme=crystal] .shop-preview-panel{box-shadow:0 -8px 40px #5078b426}[data-theme=crystal] .shop-mini-board.ice .cell.light{background:#e8f0f7}[data-theme=crystal] .shop-mini-board.ice .cell.dark{background:#8dafc8}[data-theme=crystal] .swatch-ice{background:linear-gradient(135deg,#e8f0f7 50%,#8dafc8 50%)}
