*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f1117;--bg-card:#1a1d27;--bg-deep:#13151e;--border:#2a2d3a;--text:#fff;--text-muted:#888;--text-dim:#666;--accent:#378add;--accent-dark:#185fa5;--accent-subtle:#1a3a5c;--danger:#e24b4a;--win-bg:#3b6d11;--hl-h-bg:#1a3a1a;--hl-h-border:#3b6d11;--hl-h-text:#7abf7a;--hl-v-bg:#1a2a4a;--hl-v-border:#185fa5;--hl-v-text:#7ab8f5;--hl-hv-bg:#2a1a4a;--hl-hv-border:#534ab7;--hl-hv-text:#b8a8f5;--phase-choose-bg:#1a3a5c;--phase-choose-text:#7ab8f5;--phase-place-bg:#1a3a1a;--phase-place-text:#7abf7a;--phase-practice-bg:#3a2a0a;--phase-practice-text:#f5c842;--bonus-bg:#2a2010;--bonus-border:#c8a000;--bonus-text:gold;--login-border:#2a2d3a;--login-divider:#2a2d3a;--login-div-text:#666;--login-tab-text:#888;--login-guest-text:#aaa;--login-guest-border:#2a2d3a;--login-error-bg:#2a0f0f;--login-error-text:#ff7070}[data-theme=light]{--bg:#f0f3f8;--bg-card:#fff;--bg-deep:#e8ecf4;--border:#d0d8e8;--text:#1a1d27;--text-muted:#666;--text-dim:#999;--accent:#2272c3;--accent-dark:#1a5fa0;--accent-subtle:#def;--danger:#d32f2f;--win-bg:#4caf50;--hl-h-bg:#e8f5e9;--hl-h-border:#4caf50;--hl-h-text:#2e7d32;--hl-v-bg:#e3f2fd;--hl-v-border:#1976d2;--hl-v-text:#1565c0;--hl-hv-bg:#f3e5f5;--hl-hv-border:#9c27b0;--hl-hv-text:#6a1b9a;--phase-choose-bg:#def;--phase-choose-text:#1565c0;--phase-place-bg:#e8f5e9;--phase-place-text:#2e7d32;--phase-practice-bg:#fff8e1;--phase-practice-text:#e65100;--bonus-bg:#fff8e1;--bonus-border:#ffc107;--bonus-text:#e65100;--login-border:#e0e0e0;--login-divider:#e8e8e8;--login-div-text:#bbb;--login-tab-text:#666;--login-guest-text:#555;--login-guest-border:#e0e0e0;--login-error-bg:#fff0f0;--login-error-text:#c0392b}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;transition:background .2s,color .2s}#root{max-width:430px;min-height:100vh;margin:0 auto}.app-settings{align-items:center;gap:6px;display:flex}.ui-lang-toggle{gap:4px;display:flex}.ui-lang-toggle button{border:1px solid var(--border);cursor:pointer;opacity:.4;background:0 0;border-radius:8px;padding:4px 8px;font-size:16px;line-height:1;transition:opacity .15s,border-color .15s}.ui-lang-toggle button.active{opacity:1;border-color:var(--accent)}.theme-toggle{border:1px solid var(--border);cursor:pointer;opacity:.7;background:0 0;border-radius:8px;padding:4px 8px;font-size:15px;line-height:1;transition:border-color .15s}.theme-toggle:hover{border-color:var(--accent);opacity:1}.login-wrap{flex-direction:column;align-items:center;gap:12px;max-width:400px;min-height:100dvh;margin:0 auto;padding:48px 24px 32px;display:flex}.login-hero{text-align:center;margin-bottom:8px}.login-hero h1{margin:0;font-size:2.4rem;font-weight:800}.login-hero h1 span{color:var(--accent)}.login-hero p{color:var(--text-muted);margin:4px 0 0;font-size:.95rem}.btn-google{border:1.5px solid var(--login-border);cursor:pointer;color:#333;background:#fff;border-radius:12px;justify-content:center;align-items:center;gap:10px;width:100%;padding:13px;font-size:.95rem;font-weight:600;transition:background .15s;display:flex}.btn-google:hover{background:#f5f5f5}.btn-google:disabled{opacity:.6;cursor:not-allowed}.login-divider{width:100%;color:var(--login-div-text);align-items:center;gap:10px;font-size:.85rem;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--login-divider);flex:1;height:1px}.login-tabs{border:1.5px solid var(--login-border);border-radius:10px;width:100%;display:flex;overflow:hidden}.login-tabs button{cursor:pointer;color:var(--login-tab-text);background:0 0;border:none;flex:1;padding:10px;font-size:.9rem;font-weight:500;transition:background .15s,color .15s}.login-tabs button.active{background:var(--accent);color:#fff;font-weight:700}.btn-guest{border:1.5px dashed var(--login-guest-border);cursor:pointer;width:100%;color:var(--login-guest-text);background:0 0;border-radius:12px;padding:13px;font-size:.95rem;font-weight:600;transition:border-color .15s,color .15s}.btn-guest:hover{border-color:var(--accent);color:var(--accent)}.btn-guest:disabled{opacity:.5;cursor:not-allowed}.btn-back-login{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:.9rem}.login-error{background:var(--login-error-bg);width:100%;color:var(--login-error-text);border-radius:8px;padding:10px 14px;font-size:.9rem}.tut-overlay{z-index:200;background:#000000b3;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.tut-card{background:var(--bg-card);border:1px solid var(--border);border-radius:20px;flex-direction:column;gap:14px;width:100%;max-width:380px;max-height:90dvh;padding:20px;display:flex;overflow-y:auto}.tut-dots{justify-content:center;gap:8px;display:flex}.tut-dot{background:var(--border);cursor:pointer;border-radius:50%;width:8px;height:8px;transition:background .2s,transform .2s}.tut-dot.done{background:var(--accent-subtle)}.tut-dot.active{background:var(--accent);transform:scale(1.3)}.tut-demo{flex-direction:column;align-items:center;gap:8px;display:flex}.tut-board{grid-template-columns:repeat(5,1fr);gap:3px;width:180px;display:grid}.tut-cell{aspect-ratio:1;border:1px solid var(--border);background:var(--bg-deep);color:var(--text);border-radius:5px;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.tut-cell.hl-h{background:var(--hl-h-bg);border-color:var(--hl-h-border);color:var(--hl-h-text)}.tut-cell.hl-v{background:var(--hl-v-bg);border-color:var(--hl-v-border);color:var(--hl-v-text)}.tut-cell.hl-hv{background:var(--hl-hv-bg);border-color:var(--hl-hv-border);color:var(--hl-hv-text)}.tut-cell.bonus{background:var(--bonus-bg);border-color:var(--bonus-border);color:var(--bonus-text);font-size:9px}.tut-cell.tut-target{border:2px dashed var(--accent);background:var(--accent-subtle);color:var(--accent)}.tut-picker{flex-wrap:wrap;justify-content:center;gap:3px;max-width:220px;display:flex}.tut-letter{border:1px solid var(--border);background:var(--bg-deep);width:24px;height:24px;color:var(--text);border-radius:5px;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.tut-letter.sel{background:var(--accent);border-color:var(--accent-dark);color:#fff;transform:scale(1.15)}.tut-choose-demo{flex-direction:column;align-items:center;gap:6px;display:flex}.tut-arrow{color:var(--accent);font-size:20px}.tut-score-table{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:4px;display:flex}.tut-score-table span{background:var(--bg-deep);border:1px solid var(--border);color:var(--text-muted);border-radius:6px;padding:3px 8px;font-size:11px;font-weight:600}.tut-text{text-align:center}.tut-title{margin-bottom:6px;font-size:17px;font-weight:700}.tut-body{color:var(--text-muted);font-size:13px;line-height:1.5}.tut-nav{align-items:center;gap:8px;display:flex}.tut-prev-btn{border:1px solid var(--border);background:var(--bg-deep);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:10px;padding:10px 12px;font-size:13px}.tut-prev-btn:disabled{opacity:.3;cursor:default}.tut-skip-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;flex:1;padding:11px;font-size:14px;font-weight:700}.tut-next-btn{border:1px solid var(--accent);color:var(--accent);cursor:pointer;white-space:nowrap;background:0 0;border-radius:10px;padding:10px 12px;font-size:13px;font-weight:600}.tut-cell.tut-dim{opacity:.3}.tut-best-demo{flex-direction:column;align-items:center;gap:10px;display:flex}.tut-best-labels{flex-direction:column;align-items:center;gap:4px;display:flex}.tut-label-good{color:var(--hl-h-text);font-size:12px;font-weight:700}.tut-label-bad{color:var(--text-dim);font-size:11px}.tut-score-compare{flex-direction:column;gap:6px;width:100%;display:flex}.tut-compare-row{border-radius:8px;justify-content:space-between;align-items:center;padding:7px 12px;font-size:13px;font-weight:600;display:flex}.tut-compare-row.good{background:var(--hl-h-bg);color:var(--hl-h-text)}.tut-compare-row.bad{background:var(--bg-deep);color:var(--text-dim);opacity:.7;text-decoration:line-through}.tut-compare-row .pts{font-size:15px;font-weight:700}.menu{flex-direction:column;min-height:100vh;padding:16px;display:flex}.menu-hero{text-align:center;padding:32px 0 24px}.menu-hero h1{letter-spacing:-1px;font-size:32px;font-weight:800}.menu-hero h1 span{color:var(--accent)}.menu-hero p{color:var(--text-muted);margin-top:4px;font-size:14px}.mode-card{background:var(--bg-card);border:1px solid var(--border);cursor:pointer;border-radius:14px;align-items:center;gap:14px;margin-bottom:10px;padding:16px;transition:border-color .15s;display:flex}.mode-card:hover{border-color:var(--accent)}.mode-card--highlight{border-color:var(--accent);background:var(--accent-subtle)}.mode-card--soon{opacity:.5;cursor:default}.mode-card--soon:hover{border-color:var(--border)}.mode-icon{text-align:center;width:44px;font-size:28px}.mode-title{margin-bottom:2px;font-size:15px;font-weight:600}.mode-desc{color:var(--text-muted);font-size:12px}.back-btn{color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:none;margin-bottom:20px;padding:0;font-size:14px}.setup-title{margin-bottom:20px;font-size:22px;font-weight:700}.field-label{color:var(--text-muted);margin-bottom:6px;font-size:12px;display:block}.field-input{border:1px solid var(--border);background:var(--bg-card);width:100%;color:var(--text);border-radius:10px;outline:none;margin-bottom:16px;padding:12px;font-size:15px}.field-input:focus{border-color:var(--accent)}.lang-row{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px;display:grid}.lang-btn{border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);cursor:pointer;border-radius:10px;padding:11px 4px;font-size:14px;font-weight:500;transition:background .15s,border-color .15s,color .15s}.lang-btn--sel{background:var(--accent);border-color:var(--accent-dark);color:#fff;font-weight:700}.diff-row{grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:20px;display:grid}.diff-btn{border:1px solid var(--border);background:var(--bg-card);color:var(--text);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:12px 4px;font-size:20px;transition:background .15s,border-color .15s;display:flex}.diff-btn span{font-size:12px}.diff-btn--sel{background:var(--accent);border-color:var(--accent-dark)}.start-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:12px;width:100%;margin-top:auto;padding:14px;font-size:16px;font-weight:700;transition:opacity .15s}.start-btn:disabled{opacity:.4;cursor:default}.menu-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:auto;padding-top:16px;display:flex}.menu-user{color:var(--text-dim);font-size:13px}.logout-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;padding:6px 12px;font-size:13px;transition:color .15s,border-color .15s}.logout-btn:hover{color:var(--danger);border-color:var(--danger)}.stats-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:5px;width:100%;padding:10px 14px;display:flex}.stats-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.stat{color:var(--text-muted);flex-direction:column;align-items:center;gap:1px;font-size:10px;display:flex}.stat b{color:var(--text);font-size:14px;font-weight:700}.stat-dot{color:var(--border);font-size:14px}.stats-rating{border-bottom:1px solid var(--border);align-items:baseline;gap:6px;margin-bottom:2px;padding-bottom:6px;display:flex}.stats-rating-val{color:var(--accent);font-size:26px;font-weight:700}.stats-rating-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.my-games-section{width:100%;margin-top:4px}.my-games-title{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:11px;font-weight:600}.my-game-card{background:var(--bg-card);border:1px solid var(--border);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:6px;padding:10px 12px;transition:border-color .15s;display:flex}.my-game-card:hover{border-color:var(--accent)}.my-game-card.my-turn{border-color:var(--danger)}.my-game-info{flex-direction:column;gap:2px;display:flex}.my-game-op{font-size:13px;font-weight:600}.my-game-round{color:var(--text-muted);font-size:11px}.my-game-badge{background:var(--bg-deep);color:var(--text-muted);white-space:nowrap;border-radius:20px;padding:3px 8px;font-size:11px;font-weight:700}.my-game-badge.turn{background:var(--danger);color:#fff}.my-game-badge.wait-p2{background:var(--accent-subtle);color:var(--accent)}.daily-played-notice{color:var(--text-muted);background:var(--bg-card);border:1px solid var(--border);text-align:center;border-radius:10px;margin-bottom:16px;padding:10px 14px;font-size:13px}.tut-open-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:14px;font-weight:700;transition:color .15s,border-color .15s;display:flex}.tut-open-btn:hover{color:var(--accent);border-color:var(--accent)}.report-word-btn{border:1px dashed var(--border);width:100%;color:var(--text-muted);cursor:pointer;text-align:center;background:0 0;border-radius:10px;margin-bottom:10px;padding:11px;font-size:13px;font-weight:600;transition:border-color .15s,color .15s}.report-word-btn:hover{border-color:var(--accent);color:var(--accent)}.report-modal-overlay{z-index:100;background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.report-modal{background:var(--bg-card);border-radius:16px 16px 0 0;width:100%;max-width:480px;padding:16px}.report-modal-header{justify-content:space-between;align-items:center;margin-bottom:14px;font-size:15px;font-weight:700;display:flex}.report-modal-header button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:18px}.report-modal-input{border:1px solid var(--border);background:var(--bg-deep);color:var(--text);text-transform:uppercase;border-radius:8px;outline:none;flex:1;padding:8px 10px;font-size:13px}.report-modal-input:focus{border-color:var(--accent)}.daily-widget{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;margin-bottom:12px;padding:14px 16px}.daily-widget-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.daily-widget-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:13px;font-weight:700}.daily-widget-tabs{gap:4px;display:flex}.daily-widget-tabs button{cursor:pointer;opacity:.45;background:0 0;border:1px solid #0000;border-radius:8px;padding:2px 8px;font-size:16px;transition:opacity .15s}.daily-widget-tabs button.active{opacity:1;border-color:var(--border);background:var(--bg-deep)}.daily-widget-entries{flex-direction:column;gap:5px;display:flex}.daily-widget-row{border-radius:8px;align-items:center;gap:8px;padding:5px 8px;font-size:14px;display:flex}.daily-widget-row.mine{background:var(--accent-dim,#6366f126);font-weight:700}.dwr-rank{text-align:center;flex-shrink:0;width:24px;font-size:15px}.dwr-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.dwr-score{color:var(--accent);flex-shrink:0;font-size:15px;font-weight:700}.daily-widget-footer{color:var(--text-muted);justify-content:space-between;align-items:center;margin-top:10px;font-size:12px;display:flex}.daily-widget-cta{border:1px dashed var(--border);width:100%;color:var(--accent);cursor:pointer;background:0 0;border-radius:10px;padding:10px;font-size:14px;font-weight:600;transition:background .15s}.daily-widget-cta:hover{background:var(--bg-deep)}.daily-widget-cta-small{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;font-weight:600}.game-wrap{flex-direction:column;min-height:100dvh;padding:10px 12px;display:flex}.game-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.phase-badge{background:var(--phase-choose-bg);color:var(--phase-choose-text);border-radius:20px;padding:4px 12px;font-size:11px;font-weight:600}.phase-badge.place{background:var(--phase-place-bg);color:var(--phase-place-text)}.phase-badge.practice{background:var(--phase-practice-bg);color:var(--phase-practice-text)}.round-info{color:var(--text-dim);font-size:12px}.chess-clock{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.chess-clock.clock-low{color:var(--danger)}.lang-badge{vertical-align:middle;margin-right:6px;font-size:14px}.scores-row{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:6px;display:grid}.scores-row.solo{grid-template-columns:1fr}.score-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:7px 10px}.score-card.active{border-color:var(--accent)}.score-name{color:var(--text-muted);margin-bottom:1px;font-size:11px}.score-val{font-size:17px;font-weight:600}.score-val span{color:var(--text-muted);margin-left:2px;font-size:11px;font-weight:400}.score-words{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:10px;overflow:hidden}.board-section{margin-bottom:6px}.board-label{color:var(--text-muted);margin-bottom:4px;font-size:11px;font-weight:500}.board-grid{grid-template-columns:repeat(5,1fr);gap:3px;max-width:260px;display:grid}.cell{aspect-ratio:1;border:1px solid var(--border);background:var(--bg-card);color:var(--text);-webkit-user-select:none;user-select:none;border-radius:6px;justify-content:center;align-items:center;font-size:17px;font-weight:700;transition:background .15s,border-color .15s;display:flex}.cell.clickable{cursor:pointer;border-color:var(--accent-subtle)}.cell.clickable:hover{background:var(--accent-subtle);border-color:var(--accent)}.cell.locked{opacity:.4}.cell.filled{cursor:default}.cell.hl-h{background:var(--hl-h-bg);border-color:var(--hl-h-border);color:var(--hl-h-text)}.cell.hl-v{background:var(--hl-v-bg);border-color:var(--hl-v-border);color:var(--hl-v-text)}.cell.hl-hv{background:var(--hl-hv-bg);border-color:var(--hl-hv-border);color:var(--hl-hv-text)}.cell.bonus{background:var(--bonus-bg);border-color:var(--bonus-border);color:var(--bonus-text);font-size:11px}.cell.bonus.filled{font-size:17px}.cell.bonus.hl-h,.cell.bonus.hl-v,.cell.bonus.hl-hv{background:var(--bonus-bg);border-color:var(--bonus-border)}.mini-cell.bonus{background:var(--bonus-bg);border-color:var(--bonus-border);color:var(--bonus-text);font-size:7px}.ctrl-box{background:var(--bg-card);border-radius:12px;margin-bottom:6px;padding:10px}.current-letter-display{border-bottom:1px solid var(--border);align-items:center;gap:12px;margin-bottom:10px;padding-bottom:10px;display:flex}.current-letter-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}.current-letter-big{background:var(--accent);color:#fff;border-radius:12px;justify-content:center;align-items:center;width:52px;height:52px;font-size:34px;font-weight:700;display:flex;box-shadow:0 3px 12px #00000059}.ctrl-label{color:var(--text-muted);margin-bottom:6px;font-size:12px}.letter-picker{flex-wrap:wrap;gap:4px;margin-bottom:8px;display:flex}.letter-btn{border:1px solid var(--border);background:var(--bg-deep);width:30px;height:30px;color:var(--text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;font-size:13px;font-weight:600;transition:background .1s,border-color .1s;display:flex}.letter-btn:hover{border-color:var(--accent);background:var(--accent-subtle)}.letter-btn.sel{background:var(--accent);border-color:var(--accent-dark);color:#fff}.timer-row{align-items:center;gap:10px;margin-bottom:7px;display:flex}.timer-bar-wrap{background:var(--border);border-radius:3px;flex:1;height:5px;overflow:hidden}.timer-bar{border-radius:3px;height:100%;transition:width .9s linear}.timer-val{text-align:right;min-width:22px;color:var(--text-muted);font-size:13px;font-weight:600}.btn-row{gap:8px;display:flex}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;flex:1;padding:12px;font-size:14px;font-weight:700;transition:opacity .15s}.btn-primary:disabled{opacity:.4;cursor:default}.btn-secondary{border:1px solid var(--border);background:var(--bg-deep);color:var(--text-muted);cursor:pointer;border-radius:10px;padding:12px 16px;font-size:13px}.pass-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:32px 20px;display:flex}.pass-icon{margin-bottom:16px;font-size:56px}.pass-screen h2{margin-bottom:12px;font-size:22px;font-weight:700;line-height:1.3}.pass-screen p{color:var(--text-muted);margin-bottom:32px;font-size:15px}.pass-note{color:var(--text-dim);margin-top:12px;font-size:11px}.over-hero{text-align:center;padding:20px 0 16px}.over-title{margin-bottom:6px;font-size:22px;font-weight:700}.over-sub{color:var(--text-muted);margin-bottom:16px;font-size:14px}.over-boards{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;display:grid}.over-boards.solo{grid-template-columns:1fr;max-width:200px;margin:0 auto 16px}.over-board{background:var(--bg-card);border:1px solid var(--border);text-align:center;border-radius:12px;padding:10px}.over-board.winner{border-color:var(--hl-h-border)}.win-tag{background:var(--win-bg);color:#fff;border-radius:20px;margin-bottom:6px;padding:2px 8px;font-size:10px;font-weight:600;display:inline-block}.over-name{color:var(--text-muted);margin-bottom:2px;font-size:11px}.over-score{margin-bottom:4px;font-size:18px;font-weight:700}.over-words{flex-wrap:wrap;justify-content:center;gap:4px;min-height:16px;margin-bottom:8px;display:flex}.word-tag{background:var(--bg-deep);border:1px solid var(--border);color:var(--text-muted);border-radius:6px;align-items:center;gap:3px;padding:2px 6px;font-size:10px;font-weight:600;display:inline-flex}.flag-btn{cursor:pointer;opacity:.5;background:0 0;border:none;padding:0;font-size:10px;line-height:1;transition:opacity .15s}.flag-btn:hover{opacity:1}.flag-btn.done{opacity:1;color:#4caf50}.mini-grid{grid-template-columns:repeat(5,1fr);gap:2px;display:grid}.mini-cell{aspect-ratio:1;border:1px solid var(--border);background:var(--bg-deep);border-radius:4px;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex}.mini-cell.hl-h{background:var(--hl-h-bg);border-color:var(--hl-h-border);color:var(--hl-h-text)}.mini-cell.hl-v{background:var(--hl-v-bg);border-color:var(--hl-v-border);color:var(--hl-v-text)}.mini-cell.hl-hv{background:var(--hl-hv-bg);border-color:var(--hl-hv-border);color:var(--hl-hv-text)}.online-board-wrap{margin-bottom:6px}.online-board-grid{gap:4px}.online-board-grid .mini-cell{background:var(--bg-card);border-radius:8px;font-size:17px;font-weight:700}.online-board-grid .mini-cell.clickable{cursor:pointer;border-color:var(--accent-subtle)}.online-board-grid .mini-cell.clickable:hover{background:var(--accent-subtle);border-color:var(--accent)}.online-board-grid .mini-cell.locked{opacity:.4}.online-board-grid .mini-cell.bonus{background:var(--bonus-bg);border-color:var(--bonus-border);color:var(--bonus-text);font-size:11px}.online-board-grid .mini-cell.bonus.filled{color:var(--bonus-text);font-size:17px}.op-board-section{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;align-items:center;gap:10px;margin-bottom:6px;padding:7px 10px;display:flex}.op-board-label{color:var(--text-muted);flex-direction:column;flex-shrink:0;gap:3px;min-width:56px;font-size:11px;font-weight:500;display:flex}.op-placed-badge{color:var(--hl-h-text);font-size:11px;font-weight:700}.op-mini-grid{flex:1;gap:3px}.btn-share{border:1.5px dashed var(--border);width:100%;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:10px;margin-bottom:10px;padding:11px;font-size:14px;font-weight:600;transition:border-color .15s,color .15s}.btn-share:hover{border-color:var(--accent);color:var(--accent)}.report-missing{flex-direction:column;gap:4px;width:100%;margin-bottom:10px;display:flex}.report-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;margin-top:4px;font-size:10px;font-weight:600}.report-row{align-items:center;gap:6px;display:flex}.report-row input{border:1px solid var(--border);background:var(--bg-card);color:var(--text);text-transform:uppercase;border-radius:8px;outline:none;flex:1;padding:7px 10px;font-size:12px}.report-row input:focus{border-color:var(--accent)}.report-row button{background:var(--border);color:var(--text-muted);cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:7px 12px;font-size:12px}.report-row button.sent{background:var(--hl-h-bg);color:var(--hl-h-text)}.emoji-row{justify-content:center;gap:6px;margin-bottom:8px;display:flex}.emoji-btn{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;width:38px;height:38px;font-size:20px;transition:transform .1s,border-color .1s;display:flex}.emoji-btn:hover{border-color:var(--accent);transform:scale(1.15)}.emoji-btn:active{transform:scale(.85)}.reaction-popup{z-index:200;pointer-events:none;font-size:80px;animation:2.5s forwards reaction-pop;position:fixed;top:35%;left:50%;transform:translate(-50%)}@keyframes reaction-pop{0%{opacity:0;transform:translate(-50%)translateY(20px)scale(.4)}15%{opacity:1;transform:translate(-50%)translateY(0)scale(1.2)}40%{opacity:1;transform:translate(-50%)translateY(0)scale(1)}75%{opacity:1;transform:translate(-50%)translateY(0)scale(1)}to{opacity:0;transform:translate(-50%)translateY(-30px)scale(.7)}}.leaderboard{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;width:100%;margin-bottom:10px;padding:10px 12px}.lb-title{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-size:11px;font-weight:700}.lb-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:5px 0;font-size:13px;display:flex}.lb-row:last-child{border-bottom:none}.lb-row.lb-me{color:var(--accent);font-weight:600}.lb-rank{color:var(--text-dim);min-width:24px;font-size:11px}.lb-name{flex:1}.lb-score{font-weight:700}.lb-score span{color:var(--text-muted);margin-left:2px;font-size:11px;font-weight:400}.lb-empty{color:var(--text-dim);text-align:center;padding:8px 0;font-size:13px}.btn-abandon-link{width:100%;color:var(--danger);cursor:pointer;text-align:center;opacity:.6;background:0 0;border:none;padding:6px 0 2px;font-size:12px;transition:opacity .15s;display:block}.btn-abandon-link:hover{opacity:1}.rating-delta{margin-top:6px;font-size:15px;font-weight:700}.rating-delta.pos{color:#4caf50}.rating-delta.neg{color:var(--danger)}.rematch-status{text-align:center;color:var(--text-muted);margin-top:8px;font-size:13px}.online-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-right:5px;display:inline-block}.online-dot--on{background:#4caf50;box-shadow:0 0 4px #4caf50}.online-dot--off{background:var(--text-dim)}.offline-label{color:var(--text-dim);font-size:10px}.score-name{justify-content:space-between;align-items:center;display:flex}.guide-banner{background:var(--bg-card);border:1.5px solid var(--accent);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;padding:10px 12px;display:flex}.guide-banner-text{color:var(--text);flex:1;min-width:0;font-size:13px;font-weight:600}.guide-banner-progress{color:var(--accent);white-space:nowrap;font-size:11px;font-weight:700}.guide-skip-btn{color:var(--text-dim);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:2px 4px;font-size:11px}.cell.guide-target{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent);animation:1s ease-in-out infinite guide-pulse}@keyframes guide-pulse{0%,to{box-shadow:0 0 0 2px var(--accent)}50%{box-shadow:0 0 0 5px var(--accent-subtle)}}.guide-word-formed{z-index:50;text-align:center;background:#000000bf;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:32px;display:flex;position:fixed;inset:0}.guide-word-formed-word{color:var(--accent);letter-spacing:6px;font-size:48px;font-weight:700}.guide-word-formed-pts{color:#fff;font-size:22px;font-weight:700}.guide-word-formed-msg{color:#fffc;max-width:280px;margin-bottom:8px;font-size:14px;line-height:1.5}@keyframes cellPop{0%{opacity:0;transform:scale(.3)}60%{opacity:1;transform:scale(1.15)}to{transform:scale(1)}}@keyframes cellGlow{0%{box-shadow:0 0 #378add00}40%{box-shadow:0 0 18px #378addb3}to{box-shadow:0 0 #378add00}}.cell.just-placed{animation:.35s cubic-bezier(.34,1.56,.64,1) cellPop,.6s ease-out cellGlow}@keyframes hlFadeIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.cell.hl-h,.cell.hl-v,.cell.hl-hv{animation:.3s ease-out hlFadeIn}@keyframes scorePop{0%{transform:scale(1)}40%{color:var(--hl-v-text);transform:scale(1.3)}to{transform:scale(1)}}.score-val.updated{animation:.4s ease-out scorePop}@keyframes badgeSlide{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.phase-badge{animation:.25s ease-out badgeSlide}@keyframes thinkPulse{0%,to{opacity:.4;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}.ai-thinking{color:var(--text-muted);align-items:center;gap:6px;padding:10px 0 4px;font-size:13px;display:flex}.ai-thinking .dot{background:var(--accent);border-radius:50%;width:7px;height:7px;animation:1s ease-in-out infinite thinkPulse}.ai-thinking .dot:nth-child(2){animation-delay:.2s}.ai-thinking .dot:nth-child(3){animation-delay:.4s}@keyframes roundBanner{0%{opacity:0;transform:translate(-50%,-50%)scale(.8)}20%{opacity:1;transform:translate(-50%,-50%)scale(1.05)}80%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(.95)}}.round-banner{background:var(--bg-card);border:1px solid var(--accent);color:var(--text);z-index:100;pointer-events:none;border-radius:16px;padding:16px 32px;font-size:20px;font-weight:700;animation:1.2s ease-in-out forwards roundBanner;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes letterPress{0%{transform:scale(1)}40%{transform:scale(.88)}to{transform:scale(1)}}.letter-btn:active{animation:.15s ease-out letterPress}@keyframes placedMsg{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.placed-msg{color:var(--hl-h-text);margin-bottom:8px;font-size:13px;animation:.2s ease-out placedMsg}@keyframes ctrlFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ctrl-box{animation:.3s ease-out ctrlFadeIn}@keyframes timerShake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}.timer-val.warn{color:var(--danger);animation:.3s ease-in-out timerShake}@keyframes boardReveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.board-grid{animation:.35s ease-out boardReveal}.lobby-wrap{flex-direction:column;align-items:center;gap:14px;max-width:420px;min-height:100dvh;margin:0 auto;padding:32px 24px;display:flex}.lobby-hero{text-align:center;margin:8px 0}.lobby-hero h2{margin:0;font-size:1.6rem;font-weight:800}.lobby-hero p{color:var(--text-muted);margin:4px 0 0;font-size:.95rem}.lobby-divider{width:100%;color:var(--text-muted);align-items:center;gap:10px;font-size:.85rem;display:flex}.lobby-divider:before,.lobby-divider:after{content:"";background:var(--border);flex:1;height:1px}.lobby-error{background:var(--login-error-bg);width:100%;color:var(--login-error-text);border-radius:8px;padding:10px 14px;font-size:.9rem}.lobby-waiting{text-align:center;flex-direction:column;align-items:center;gap:16px;margin-top:48px;display:flex}.lobby-waiting h2{margin:0;font-size:1.5rem}.lobby-waiting p{color:var(--text-muted);margin:0}.lobby-spinner{border:4px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:48px;height:48px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.lobby-link-box{background:var(--bg-card);border:1px solid var(--border);word-break:break-all;border-radius:10px;align-items:center;gap:8px;width:100%;max-width:360px;padding:10px 14px;font-size:.85rem;display:flex}.lobby-link-box span{color:var(--text-muted);flex:1}.lobby-link-box button{white-space:nowrap;background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:6px 12px;font-size:.85rem;font-weight:600}.lobby-code{color:var(--text-muted);font-size:1rem}.lobby-waiting-count{text-align:center;color:var(--text-muted);margin-top:-4px;margin-bottom:4px;padding:6px 12px;font-size:13px}.lobby-searching-count{color:var(--text-muted);margin:0;font-size:13px}.admin-wrap{background:var(--bg-deep);flex-direction:column;min-height:100dvh;padding:0 0 24px;display:flex}.admin-header{background:var(--bg-card);border-bottom:1px solid var(--border);z-index:10;justify-content:space-between;align-items:center;padding:14px 16px;display:flex;position:sticky;top:0}.admin-title{font-size:16px;font-weight:700}.admin-exit{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:18px}.admin-msg{background:var(--accent);color:#fff;text-align:center;padding:8px;font-size:13px;font-weight:600}.admin-denied{height:100dvh;color:var(--danger);justify-content:center;align-items:center;font-size:16px;display:flex}.admin-tabs{border-bottom:1px solid var(--border);background:var(--bg-card);display:flex}.admin-tabs button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:6px;padding:12px;font-size:13px;font-weight:600;display:flex}.admin-tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.badge{background:var(--danger);color:#fff;border-radius:10px;padding:1px 6px;font-size:10px;font-weight:700}.admin-loading{text-align:center;color:var(--text-muted);padding:40px}.admin-section{flex-direction:column;gap:16px;padding:12px 16px;display:flex}.admin-empty{color:var(--text-dim);padding:6px 0;font-size:12px}.report-group{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:12px}.report-group-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;font-size:12px;font-weight:700}.report-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:7px 0;display:flex}.report-item:last-child{border-bottom:none}.report-item-word{align-items:center;gap:6px;display:flex}.report-word{font-size:15px;font-weight:700}.report-lang{background:var(--bg-deep);border:1px solid var(--border);color:var(--text-muted);border-radius:4px;padding:1px 5px;font-size:10px}.report-count{color:var(--danger);font-size:11px;font-weight:700}.report-item-actions{flex-shrink:0;gap:6px;display:flex}.admin-btn{cursor:pointer;border:none;border-radius:8px;padding:6px 12px;font-size:12px;font-weight:600;transition:opacity .15s}.admin-btn:disabled{opacity:.4;cursor:default}.admin-btn.action{background:var(--accent);color:#fff}.admin-btn.dismiss{background:var(--bg-deep);color:var(--text-muted);border:1px solid var(--border)}.admin-btn.add{color:#fff;background:#4caf50;flex:1;padding:10px}.admin-btn.remove{background:var(--danger);color:#fff;flex:1;padding:10px}.admin-manual{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:12px}.admin-manual h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;font-size:12px;font-weight:700}.admin-manual-row{gap:6px;margin-bottom:8px;display:flex}.admin-input{border:1px solid var(--border);background:var(--bg-deep);color:var(--text);text-transform:uppercase;border-radius:8px;outline:none;flex:1;padding:9px 12px;font-size:14px;font-weight:600}.admin-input:focus{border-color:var(--accent)}.admin-select{border:1px solid var(--border);background:var(--bg-deep);color:var(--text);border-radius:8px;outline:none;padding:9px 10px;font-size:13px}.admin-btn-row{gap:8px;display:flex}.override-section{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:10px;padding:12px;display:flex}.override-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:700}.override-group{flex-direction:column;gap:4px;display:flex}.override-label{color:var(--text-dim);margin-bottom:2px;font-size:11px}.override-item{border-radius:6px;justify-content:space-between;align-items:center;padding:4px 8px;font-size:13px;font-weight:600;display:flex}.override-item.added{color:#4caf50;background:#4caf501f}.override-item.removed{color:var(--danger);background:#e24b4a1f}.undo-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:14px;transition:background .1s}.undo-btn:hover{background:var(--border)}.undo-btn:disabled{opacity:.3;cursor:default}.rules-wrap{background:var(--bg-deep);flex-direction:column;min-height:100dvh;display:flex}.rules-header{background:var(--bg-card);border-bottom:1px solid var(--border);z-index:10;justify-content:space-between;align-items:center;padding:14px 16px;display:flex;position:sticky;top:0}.rules-title{font-size:16px;font-weight:700}.rules-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:18px}.rules-content{flex-direction:column;gap:24px;width:100%;max-width:480px;margin:0 auto;padding:16px;display:flex}.rules-section{flex-direction:column;gap:10px;display:flex}.rules-section h2{color:var(--accent);border-bottom:1px solid var(--border);margin:0;padding-bottom:6px;font-size:15px;font-weight:700}.rules-section p{color:var(--text-muted);margin:0;font-size:13px;line-height:1.6}.rules-board{gap:3px;max-width:200px;display:grid}.rules-row5{grid-template-columns:repeat(5,1fr);max-width:220px}.rules-cell{aspect-ratio:1;border:1px solid var(--border);background:var(--bg-card);color:var(--text);border-radius:6px;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.rules-cell.filled{background:var(--bg-card)}.rules-cell.hl-h{background:var(--hl-h-bg);border-color:var(--hl-h-border);color:var(--hl-h-text)}.rules-cell.hl-v{background:var(--hl-v-bg);border-color:var(--hl-v-border);color:var(--hl-v-text)}.rules-cell.hl-hv{background:var(--hl-hv-bg);border-color:var(--hl-hv-border);color:var(--hl-hv-text)}.rules-cell.bonus{background:var(--bonus-bg);border-color:var(--bonus-border);color:var(--bonus-text);font-size:9px}.rules-cell.bonus.filled{font-size:13px}.rules-score-table{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:4px;padding:10px 14px;display:flex}.rules-score-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:4px 0;font-size:13px;display:flex}.rules-score-row:last-child{border-bottom:none}.rules-score-len{color:var(--text-muted);letter-spacing:2px;font-family:monospace}.rules-score-pts{color:var(--accent);font-weight:700}.rules-steps{flex-direction:column;gap:6px;display:flex}.rules-step{color:var(--text-muted);align-items:center;gap:10px;font-size:13px;display:flex}.rules-step span{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:flex}.rules-note{color:var(--text-dim);background:var(--bg-card);border-left:3px solid var(--accent);border-radius:0 6px 6px 0;padding:8px 12px;font-size:12px;font-style:italic}.rules-example{flex-direction:column;gap:5px;display:flex}.rules-example-label{text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:700}.rules-example-label.good{color:#4caf50}.rules-example-label.bad{color:var(--danger)}.rules-example-note{color:var(--text-muted);font-size:12px}.rules-board-5{grid-template-columns:repeat(5,1fr);max-width:240px}.rules-word-list{grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;display:grid}.rules-word-col{flex-direction:column;gap:5px;display:flex}.rules-word-dir{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px;font-size:10px;font-weight:700}.rules-word-row{justify-content:space-between;align-items:center;gap:6px;display:flex}.rules-word-tag{border-radius:6px;padding:2px 8px;font-size:12px;font-weight:700}.rules-word-tag.hl-h{background:var(--hl-h-bg);color:var(--hl-h-text)}.rules-word-tag.hl-v{background:var(--hl-v-bg);color:var(--hl-v-text)}.rules-word-pts{color:var(--accent);font-size:12px;font-weight:700}.rules-total{background:var(--bg-card);border:1px solid var(--accent);border-radius:8px;justify-content:space-between;align-items:center;margin-top:4px;padding:8px 12px;font-size:13px;font-weight:600;display:flex}.rules-total-pts{color:var(--accent);font-size:16px;font-weight:700}.rules-guide-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:12px;width:100%;margin-top:8px;padding:14px;font-size:15px;font-weight:700;transition:opacity .15s}.rules-guide-btn:hover{opacity:.9}
