.home-page{height:100%;display:flex;align-items:center;justify-content:center;padding:24px;position:relative}.theme-toggle-icon{position:absolute;top:1rem;right:1rem;background:transparent;border:none;font-size:1.5rem;cursor:pointer;padding:.5rem;opacity:.7;transition:opacity .15s ease,transform .15s ease}.theme-toggle-icon:hover{opacity:1;transform:scale(1.1)}.theme-toggle-icon:active{transform:scale(1)!important}.home-content{text-align:center;max-width:400px}.home-title{font-size:3rem;font-weight:700;letter-spacing:-1px;background:linear-gradient(135deg,var(--accent),#ff9a76);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:4px}.home-subtitle{color:var(--text-muted);font-size:1.1rem;margin-bottom:32px}.home-actions{display:flex;flex-direction:column;gap:12px;margin-bottom:40px}.home-btn{padding:14px 24px;font-size:1.1rem;border-radius:8px}.home-rules{text-align:left;background:var(--bg-secondary);border-radius:8px;padding:16px 20px}.home-rules h3{font-size:.9rem;margin-bottom:8px;color:var(--text-muted)}.home-rules ul{list-style:none;padding:0}.home-rules li{font-size:.85rem;color:var(--text-muted);padding:4px 0 4px 16px;position:relative}.home-rules li:before{content:"";position:absolute;left:0;top:50%;width:6px;height:6px;background:var(--accent);border-radius:50%;transform:translateY(-50%)}.settings-link{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--bg-card);border:1px solid rgba(255,255,255,.1);color:var(--text);font-size:1.1rem;font-weight:600;cursor:pointer;padding:14px 24px;border-radius:8px;margin-bottom:24px;min-width:200px;transition:all .15s ease}.settings-link:hover{background:#ffffff1a;border-color:var(--accent)}.settings-link:active{transform:scale(.97)}.settings-icon{font-size:1.4rem}.dev-qr{text-align:center;margin-bottom:16px;opacity:.5}.dev-qr-label{font-size:.7rem;color:var(--text-muted);margin-top:4px}.join-row{display:flex;gap:8px}.join-input{flex:1;padding:12px 16px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:var(--bg-secondary);color:var(--text);font-size:1.1rem;font-family:monospace;letter-spacing:.2em;text-transform:uppercase;outline:none}.resume-row{display:flex;flex-direction:column;gap:4px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.1)}.resume-btn{background:linear-gradient(135deg,var(--accent),#ff9a76)!important}.btn-dismiss{background:none;border:none;color:var(--text-muted);font-size:.8rem;cursor:pointer;padding:4px;-webkit-tap-highlight-color:transparent}.btn-dismiss:hover{color:var(--text)}.join-input:focus{border-color:var(--accent)}.join-input::placeholder{text-transform:none;letter-spacing:normal;color:var(--text-muted);font-family:var(--font)}.board-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:var(--cell-bg);border:1px solid var(--cell-border);border-radius:2px;cursor:pointer;position:relative;transition:background .1s ease,box-shadow .1s ease;user-select:none;-webkit-user-select:none;min-width:0;min-height:0}.board-cell:hover:not(.has-tile):not(.drag-over){background:#ffffff0d}.board-cell.selected{background:#bb86fc33;box-shadow:inset 0 0 0 2px var(--tile-selected)}.board-cell.drag-over:not(.has-tile){background:#bb86fc4d;box-shadow:inset 0 0 0 2px var(--tile-selected)}.board-cell.cursor{background:#34d39933;box-shadow:inset 0 0 0 2px #34d399cc;animation:cursor-pulse 1.5s ease-in-out infinite}@keyframes cursor-pulse{0%,to{box-shadow:inset 0 0 0 2px #34d399cc}50%{box-shadow:inset 0 0 0 2px #34d399}}.board-cell.bonus-dl{background:var(--dl)}.board-cell.bonus-tl{background:var(--tl)}.board-cell.bonus-dw{background:var(--dw)}.board-cell.bonus-tw{background:var(--tw)}.board-cell.center{background:var(--center)}.bonus-label{font-size:.5rem;font-weight:700;color:#ffffffb3;text-transform:uppercase;line-height:1}.center-star{font-size:.7rem;color:#ffffffb3}.cell-tile{width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:2px;position:relative;touch-action:none}.placed-tile{background:var(--tile-bg);color:var(--tile-text);border:1px solid var(--tile-border)}.pending-tile{background:var(--tile-bg);color:var(--tile-text);border:1px solid var(--tile-selected);cursor:grab;animation:tile-place .2s cubic-bezier(.34,1.56,.64,1)}@keyframes tile-place{0%{transform:scale(.5);opacity:.5}to{transform:scale(1);opacity:1}}.cell-tile.dragging{opacity:.2;cursor:grabbing}.ghost-tile{background:var(--tile-bg);color:var(--tile-text);opacity:.35;border:1px dashed var(--tile-border);pointer-events:none}.board-cell.last-move:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:2px;pointer-events:none;z-index:2;box-shadow:var(--lm-shadow, none);animation:last-move-fade 10s ease-out forwards}@keyframes last-move-fade{0%{opacity:1}to{opacity:0}}.tile-letter{font-size:.85rem;font-weight:700;line-height:1}.tile-value{position:absolute;bottom:1px;right:2px;font-size:.4rem;font-weight:600;line-height:1}.score-badge{position:absolute;bottom:-1px;right:-1px;font-size:.35rem;font-weight:700;color:#fff;background:var(--success);padding:0 2px;border-radius:2px;line-height:1.2;pointer-events:none;z-index:3;white-space:nowrap}.board-cell.conflict{box-shadow:inset 0 0 0 2px #ff5757cc;animation:conflict-pulse 1s ease-in-out infinite}@keyframes conflict-pulse{0%,to{box-shadow:inset 0 0 0 2px #ff575799}50%{box-shadow:inset 0 0 0 2px #ff5757}}.blank-picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.blank-picker-modal{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:24px;text-align:center;max-width:320px;width:90%;box-shadow:0 16px 48px #00000080}.blank-picker-title{font-size:1.2rem;font-weight:700;margin-bottom:16px}.blank-picker-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-bottom:16px}.blank-picker-letter{aspect-ratio:1;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:700;background:var(--tile-bg, #e8c170);color:var(--tile-text, #1a1a2e);border:none;border-radius:6px;cursor:pointer;transition:transform .1s,box-shadow .1s;-webkit-tap-highlight-color:transparent}.blank-picker-letter:hover{transform:scale(1.08);box-shadow:0 2px 8px #0000004d}.blank-picker-letter:active{transform:scale(.95)}.blank-picker-cancel{padding:8px 24px;font-size:.9rem;background:transparent;color:var(--text-muted);border:1px solid rgba(255,255,255,.15);border-radius:6px;cursor:pointer}.blank-picker-cancel:hover{background:#ffffff0d}.game-board-container{display:flex;align-items:center;justify-content:center;flex:1;padding:4px;overflow:hidden;position:relative}.game-board{display:grid;grid-template-columns:repeat(15,1fr);grid-template-rows:repeat(15,1fr);gap:1px;background:var(--board-bg);border:2px solid var(--board-border);border-radius:4px;padding:2px;width:min(100%,calc(100vh - 220px));aspect-ratio:1;max-width:560px;touch-action:none;will-change:transform}.game-board.auto-zooming{transition:transform .5s cubic-bezier(.25,.1,.25,1)}.zoom-reset-btn{position:absolute;bottom:8px;right:8px;padding:4px 12px;font-size:.75rem;background:var(--bg-card);color:var(--text);border:1px solid rgba(255,255,255,.2);border-radius:4px;z-index:5;cursor:pointer}.tile-rack-container{min-height:60px;display:flex;justify-content:center;align-items:center}.tile-rack{display:flex;justify-content:center;gap:4px;padding:8px 12px;background:var(--bg-card);border-radius:8px;margin:0 auto;position:relative;z-index:10}.tile-rack.rack-drag-over{box-shadow:0 0 0 2px var(--accent);background:#bb86fc1a}.rack-tile{width:50px;height:50px;display:flex;align-items:center;justify-content:center;background:var(--tile-bg);color:var(--tile-text);border:1px solid var(--tile-border);border-radius:4px;cursor:grab;position:relative;user-select:none;-webkit-user-select:none;transition:box-shadow .2s ease;font-weight:700;touch-action:none;will-change:transform}.rack-tile:active{cursor:grabbing}.rack-tile.dragging{z-index:20;opacity:.2;box-shadow:none;cursor:grabbing;transition:none}.rack-tile.placed{opacity:.4;pointer-events:none;background:var(--bg-card);color:var(--text-muted);border-color:var(--text-muted)}.rack-tile.exchange-selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent);transform:translateY(-3px);cursor:pointer}.rack-tile-letter{font-size:1.4rem;font-weight:700;line-height:1}.rack-tile-value{position:absolute;bottom:3px;right:4px;font-size:.65rem;font-weight:600;line-height:1}.drag-overlay-tile{width:50px;height:50px;display:flex;align-items:center;justify-content:center;background:var(--tile-bg);color:var(--tile-text);border:1px solid var(--tile-border);border-radius:4px;position:relative;font-weight:700;box-shadow:0 12px 24px #00000073;transform:scale(1.2);pointer-events:none;will-change:transform;backface-visibility:hidden}.settings-panel{display:flex;flex-direction:column}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.06);cursor:pointer;gap:16px}.settings-row:last-child{border-bottom:none}.settings-label{display:flex;flex-direction:column;gap:2px;min-width:0}.settings-name{font-size:.95rem;font-weight:600;color:var(--text)}.settings-desc{font-size:.78rem;color:var(--text-muted)}.toggle-switch{flex-shrink:0;width:44px;height:26px;border-radius:13px;background:#ffffff26;position:relative;transition:background .2s ease}.toggle-switch.on{background:var(--accent)}.toggle-knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s ease}.toggle-switch.on .toggle-knob{transform:translate(18px)}.theme-toggle{display:flex;gap:.5rem;flex-shrink:0}.theme-option{padding:.4rem .8rem;font-size:.85rem;border:1px solid rgba(128,128,128,.2);border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .15s ease;font-weight:500}.theme-option.active{background:var(--accent);color:#fff;border-color:var(--accent)}.theme-option:hover:not(.active){background:#8080801a;border-color:#8080804d}.game-header{display:flex;align-items:center;justify-content:space-between;padding:8px 36px;background:var(--bg-secondary);border-bottom:1px solid rgba(255,255,255,.1);position:relative}.game-header .back-btn{position:absolute;left:4px;top:50%;transform:translateY(-50%);z-index:1}.player-info{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 12px;border-radius:6px;transition:all .2s ease}.player-info.active{background:#e9456033;box-shadow:0 0 0 1px var(--accent)}.player-info.you{border-bottom:2px solid var(--success)}.player-name{font-size:.8rem;font-weight:600;color:var(--text-muted);display:flex;align-items:center;gap:6px}.player-info.active .player-name{color:var(--text)}.you-badge{font-size:.55rem;font-weight:700;letter-spacing:.05em;background:var(--success);color:#fff;padding:1px 5px;border-radius:3px}.player-score{font-size:1.4rem;font-weight:700;animation:score-bump .3s cubic-bezier(.34,1.56,.64,1)}@keyframes score-bump{0%{transform:scale(1.3)}to{transform:scale(1)}}.game-info-center{display:flex;flex-direction:column;align-items:center;gap:2px}.bag-count{font-size:.75rem;color:var(--text-muted)}.turn-indicator{font-size:.8rem;font-weight:600;color:var(--text-muted)}.turn-indicator.your-turn{color:var(--success)}.turn-timer{display:flex;align-items:center;gap:6px}.timer-ring{width:36px;height:36px;transform:rotate(-90deg)}.timer-ring-bg{fill:none;stroke:#ffffff1a;stroke-width:3}.timer-ring-progress{fill:none;stroke:var(--success);stroke-width:3;stroke-linecap:round;transition:stroke .3s ease}.turn-timer.warning .timer-ring-progress{stroke:var(--warning)}.turn-timer.critical .timer-ring-progress{stroke:var(--danger)}.timer-digits{font-size:1.2rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text);min-width:3ch}.turn-timer.warning .timer-digits{color:var(--warning);animation:timer-pulse 1.5s ease-in-out infinite}.turn-timer.critical .timer-digits{color:var(--danger);animation:timer-pulse-fast .6s ease-in-out infinite}@keyframes timer-pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes timer-pulse-fast{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.critical-screen-flash{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:50;border:3px solid var(--danger);animation:border-pulse .6s ease-in-out infinite}@keyframes border-pulse{0%,to{border-color:var(--danger);box-shadow:inset 0 0 20px #cf667926}50%{border-color:transparent;box-shadow:none}}.turn-timer.critical .timer-digits{font-size:1.4rem}.turn-timer.critical .timer-ring{width:42px;height:42px}.settings-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);font-size:1.2rem;padding:4px 8px;cursor:pointer;border-radius:4px;line-height:1;z-index:1}.settings-btn:hover{color:var(--text);background:#ffffff1a}.settings-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center;padding:24px}.settings-modal{background:var(--bg-secondary);border-radius:12px;padding:20px;width:100%;max-width:400px;max-height:80vh;overflow-y:auto;border:1px solid rgba(255,255,255,.1)}.settings-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.settings-modal-header h3{font-size:1.1rem;font-weight:700}.settings-modal-close{background:none;border:none;color:var(--text-muted);font-size:1.1rem;cursor:pointer;padding:4px 8px;border-radius:4px;line-height:1}.settings-modal-close:hover{color:var(--text);background:#ffffff1a}.spectator-settings-ingame{margin-top:24px;padding-top:16px;border-top:1px solid var(--border)}.spectator-settings-ingame h4{margin:0 0 12px;font-size:1rem;color:var(--text)}.btn-copy-spectate{width:100%;padding:10px;margin-bottom:12px;background:var(--bg-card);color:var(--text);border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background .15s}.btn-copy-spectate:hover{background:var(--bg-secondary)}.game-controls{padding:8px 12px;display:flex;flex-direction:column;gap:6px}.control-buttons{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}.control-buttons.left-handed{flex-direction:row-reverse}.control-buttons button{flex:0 0 auto;min-width:70px}.move-error{background:#e74c3c33;border:1px solid var(--danger);color:var(--danger);padding:6px 12px;border-radius:6px;font-size:.8rem;text-align:center;cursor:pointer;animation:shake .3s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.score-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);font-size:2.5rem;font-weight:700;color:var(--success);pointer-events:none;z-index:80;animation:score-fly 1.5s ease-out forwards}@keyframes score-fly{0%{opacity:1;transform:translate(-50%,-50%) scale(.5)}30%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}to{opacity:0;transform:translate(-50%,-120%) scale(1)}}.exchange-prompt{position:absolute;bottom:100%;left:0;right:0;text-align:center;font-size:.85rem;color:var(--text-muted);font-weight:600;padding-bottom:4px;pointer-events:none;z-index:11}.exchange-actions{display:flex;gap:6px;justify-content:center}.game-over-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.game-over-modal{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:32px;text-align:center;min-width:280px;max-width:360px;box-shadow:0 16px 48px #00000080}.game-over-title{font-size:1.5rem;font-weight:700;margin-bottom:8px}.game-over-result{font-size:1.1rem;font-weight:600;color:var(--accent);margin-bottom:4px}.game-over-reason{font-size:.85rem;color:var(--text-muted);margin-bottom:16px}.final-scores{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.final-score{display:flex;justify-content:space-between;padding:8px 16px;background:#ffffff0d;border-radius:6px}.final-score.winner{background:#e9456026;border:1px solid rgba(233,69,96,.3)}.final-name{font-weight:600}.final-pts{font-weight:700;font-size:1.1rem}.rematch-btn{width:100%;padding:10px;font-size:1rem}.landscape-warning{display:none}@media(orientation:landscape)and (max-height:500px)and (pointer:coarse){.landscape-warning{display:flex;position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:var(--bg);align-items:center;justify-content:center;text-align:center;color:var(--text);font-size:1.1rem;font-weight:600}.rotate-icon{font-size:3rem;margin-bottom:12px}}.turn-banner{position:fixed;top:0;left:0;right:0;z-index:90;display:flex;justify-content:center;padding:12px;pointer-events:none;animation:banner-lifecycle 1.5s ease-out forwards}.turn-banner-text{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.2);color:var(--text);font-size:1.2rem;font-weight:700;padding:10px 32px;border-radius:8px;box-shadow:0 8px 24px #0006}@keyframes banner-lifecycle{0%{opacity:0;transform:translateY(-20px)}20%{opacity:1;transform:translateY(0)}80%{opacity:1}to{opacity:0}}.game-page{height:100%;display:flex;flex-direction:column;overflow:hidden;touch-action:none}.game-bottom{display:flex;flex-direction:column;gap:4px;padding:4px 0;background:var(--bg);position:relative}.game-loading{height:100%;display:flex;align-items:center;justify-content:center;position:relative}.loading-back-btn{position:absolute;top:8px;left:8px}.loading-text{font-size:1.2rem;color:var(--text-muted);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.online-lobby{text-align:center;max-width:360px}.lobby-label{font-size:.85rem;color:var(--text-muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:.1em}.mode-selector{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.mode-option{padding:16px 20px;background:var(--bg-secondary);border:2px solid transparent;border-radius:12px;cursor:pointer;transition:all .2s ease;text-align:left;-webkit-tap-highlight-color:transparent}.mode-option:hover{background:#ffffff0d}.mode-option.selected{border-color:var(--accent);background:#e9456026}.mode-name{font-size:1.1rem;font-weight:700;color:#fff;margin-bottom:4px}.mode-description{font-size:.85rem;color:var(--text-muted)}.btn-start-game{width:100%;padding:12px;font-size:1.1rem}.room-code{font-size:3rem;font-family:monospace;font-weight:700;letter-spacing:.3em;color:#fff;background:var(--bg-secondary);padding:16px 24px;border-radius:12px;margin-bottom:8px;-webkit-user-select:all;user-select:all;cursor:pointer}.lobby-hint{font-size:.8rem;color:var(--text-muted);margin-bottom:24px}.lobby-qr{margin:16px 0}.lobby-share-buttons{display:flex;gap:8px;justify-content:center;margin-bottom:8px}.btn-copy-link{padding:8px 20px;font-size:.9rem;font-weight:600;background:var(--accent, #e94560);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:opacity .15s;-webkit-tap-highlight-color:transparent}.btn-copy-link:hover{opacity:.85}.btn-copy-link:active{opacity:.7}.error-box{text-align:center;color:var(--danger);font-size:1.1rem}.error-detail{font-size:.85rem;color:var(--text-muted);margin:8px 0 16px}.reconnect-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.reconnect-content,.reconnect-box{text-align:center;display:flex;flex-direction:column;gap:16px;align-items:center}.spectator-settings{margin:16px 0;padding:12px;background:#ffffff0d;border-radius:8px}.spectator-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.9rem;-webkit-user-select:none;user-select:none}.spectator-toggle input[type=checkbox]{cursor:pointer;width:18px;height:18px}.spectator-toggle span{color:var(--text)}.spectator-waiting{text-align:center;display:flex;flex-direction:column;gap:16px;align-items:center}.spectator-hands{padding:8px 12px;display:flex;flex-direction:column;gap:8px;align-items:center}.spectator-hand-row{display:flex;flex-direction:column;align-items:center;gap:4px}.spectator-hand-label{font-size:.8rem;color:var(--text-muted);font-weight:500}.spectator-hands .rack-tile{cursor:default}.settings-page{height:100%;display:flex;flex-direction:column;max-width:480px;margin:0 auto;width:100%}.settings-header{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1)}.settings-title{font-size:1.2rem;font-weight:700}.settings-content{padding:8px 20px;overflow-y:auto;flex:1}:root{--bg: #121212;--bg-secondary: #1e1e1e;--bg-card: #2c2c2c;--text: #e0e0e0;--text-muted: #a0a0a0;--accent: #bb86fc;--accent-hover: #9e66de;--tile-bg: #e0e0e0;--tile-text: #121212;--tile-border: #bdbdbd;--tile-selected: #bb86fc;--board-bg: #1e1e1e;--board-border: #121212;--cell-bg: #2c2c2c;--cell-border: #1e1e1e;--dl: #3a536a;--tl: #6a3a53;--dw: #6a6a3a;--tw: #6a3a3a;--center: #4a4a4a;--success: #03dac6;--warning: #ffab00;--danger: #cf6679;--font: "Inter", system-ui, -apple-system, sans-serif}*{margin:0;padding:0;box-sizing:border-box}html,body,button,input{transition:background-color .3s ease,color .3s ease,border-color .3s ease}html,body{height:100%;font-family:var(--font);background:var(--bg);color:var(--text);overflow:hidden;-webkit-tap-highlight-color:transparent;touch-action:manipulation}#root{height:100%;display:flex;flex-direction:column}button{font-family:var(--font);cursor:pointer;border:none;outline:none;font-size:.9rem;font-weight:600;padding:.5rem 1rem;border-radius:6px;transition:all .15s ease}button:active:not(:disabled){transform:scale(.94);transition-duration:.05s}button:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:active:not(:disabled){background:var(--accent-hover);box-shadow:inset 0 2px 4px #0003}.btn-secondary{background:var(--bg-card);color:var(--text);border:1px solid rgba(255,255,255,.1)}.btn-secondary:hover:not(:disabled){background:#ffffff1a}.back-btn{background:none;border:none;color:var(--text-muted);font-size:1.5rem;min-width:44px;min-height:44px;padding:8px;cursor:pointer;border-radius:8px;line-height:1;display:flex;align-items:center;justify-content:center;transition:all .15s ease;-webkit-tap-highlight-color:transparent}.back-btn:hover:not(:disabled){color:var(--text);background:#ffffff1a}.back-btn:active:not(:disabled){background:#ffffff26;transform:scale(.95)}[data-theme=light]{--bg: #f5f5f7;--bg-secondary: #ffffff;--bg-card: #fafafa;--text: #1d1d1f;--text-muted: #6e6e73;--accent: #9966cc;--accent-hover: #7744aa;--tile-bg: #2c2c2c;--tile-text: #f5f5f5;--tile-border: #1a1a1a;--tile-selected: #9966cc;--board-bg: #dcd4c8;--board-border: #b8afa0;--cell-bg: #e8e3d8;--cell-border: #d0c9bc;--dl: #87ceeb;--tl: #6a5acd;--dw: #f0e68c;--tw: #dc143c;--center: #ffa500;--success: #00a86b;--warning: #ff8c00;--danger: #c41e3a}
