:root,[data-theme=dark]{--bg-app: #121212;--bg-panel: #1e1e1e;--text-primary: #ffffff;--text-secondary: #aaaaaa;--accent-primary: #ff0055;--accent-secondary: #00e5ff;--accent-gold: #ffd700;--tile-empty: #2e2e2e;--tile-2: #eee4da;--tile-4: #ede0c8;--tile-8: #f2b179;--tile-16: #f59563;--tile-32: #f67c5f;--tile-64: #f65e3b;--tile-128: #edcf72;--tile-256: #edcc61;--tile-512: #edc850;--tile-1024: #edc53f;--tile-2048: #edc22e;--tile-super: #3c3a32;--grid-gap: 10px;--tile-size: 80px;--transition-speed: .2s}[data-theme=light]{--bg-app: #faf8ef;--bg-panel: #bbada0;--text-primary: #776e65;--text-secondary: #8f7a66;--accent-primary: #f67c5f;--accent-secondary: #edc22e;--accent-gold: #f1c40f;--tile-empty: #cdc1b4}[data-theme=classic]{--bg-app: #faf8ef;--bg-panel: #bbada0;--text-primary: #776e65;--text-secondary: #8f7a66;--accent-primary: #8f7a66;--accent-secondary: #bbada0;--accent-gold: #edc22e;--tile-empty: #cdc1b4}[data-animations=off] *{animation:none!important;transition:none!important}body{margin:0;background-color:var(--bg-app);color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden;-webkit-user-select:none;user-select:none;transition:background-color .3s ease}#root{width:100vw;min-height:100vh;display:flex;justify-content:center;align-items:flex-start;padding-top:20px}.app-container{display:flex;flex-direction:column;align-items:center;min-height:100vh;padding:15px;touch-action:manipulation}.mobile-controls{display:none}.top-bar{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:15px;width:100%;max-width:800px}.settings-btn{background:#ffffff1a;border:none;border-radius:50%;width:45px;height:45px;font-size:1.5rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.settings-btn:hover{background:#fff3;transform:rotate(45deg)}.game-layout{display:flex;align-items:flex-start;justify-content:center;gap:15px;width:100%}.left-panel,.right-panel{display:flex;flex-direction:column;gap:15px}@media(max-width:900px){.app-container{padding:10px}.game-layout{flex-direction:column;align-items:center;gap:10px}.left-panel,.right-panel{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:10px;width:100%;max-width:500px}.left-panel{order:2}.board-container{order:1}.right-panel{order:3}}@media(max-width:600px){.top-bar{gap:10px;flex-wrap:wrap}.settings-btn{width:40px;height:40px;font-size:1.2rem}.left-panel,.right-panel{gap:8px}.leaderboard-inline{max-width:100%}.stats-panel{min-width:auto;padding:10px}.joker-panel{padding:8px}.joker-btn{padding:8px 6px;min-width:60px}.grid-panel{padding:8px}.new-game-btn{padding:10px 12px;font-size:.75rem}.size-btn{padding:6px 10px;font-size:.7rem}}@media(max-width:400px){.app-container{padding:5px}.top-bar{margin-bottom:10px}.score-container{gap:8px}}.tile{grid-column:var(--tile-col);grid-row:var(--tile-row);width:100%;height:100%;border-radius:6px;overflow:visible;position:relative;transition:all .15s ease-in-out;z-index:10;box-shadow:0 2px 4px #0003;background:#cdc1b4}.tile-crown{position:absolute;top:-12px;left:50%;transform:translate(-50%);font-size:.9rem;z-index:100;animation:crownBounce 2s ease-in-out infinite;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}.tile-crowned{box-shadow:0 0 15px #ffd70066}@keyframes crownBounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-3px)}}.tile-selectable{cursor:pointer;pointer-events:auto}.tile-selectable:hover{transform:scale(1.05);box-shadow:0 0 15px #f059;z-index:20}.tile-selected{box-shadow:0 0 20px #00ff64cc;outline:3px solid #00ff64}.tile-inner{width:100%;height:100%;display:flex;justify-content:center;align-items:center;font-weight:700;color:#776e65;font-size:clamp(14px,4vh,48px)}.tile-1024 .tile-inner,.tile-2048 .tile-inner{font-size:clamp(12px,3vh,40px)}.tile-super .tile-inner{font-size:clamp(10px,2.5vh,32px)}.tile-new{animation:tileAppear .2s cubic-bezier(.34,1.56,.64,1)}.tile-merged{animation:tileMerge .25s cubic-bezier(.34,1.56,.64,1)}.tile-hammered{animation:hammerExplode .4s cubic-bezier(.25,.46,.45,.94) forwards;pointer-events:none}@keyframes hammerExplode{0%{transform:scale(1) rotate(0);opacity:1}30%{transform:scale(1.3) rotate(5deg);opacity:1}to{transform:scale(0) rotate(180deg);opacity:0}}.tile-doubled{animation:doubleGlow .5s ease-out}@keyframes doubleGlow{0%{transform:scale(1);box-shadow:0 0 #ffd70000}30%{transform:scale(1.2);box-shadow:0 0 40px #ffd700cc,inset 0 0 20px #ffffff80}60%{transform:scale(.95);box-shadow:0 0 20px #ffd70080}to{transform:scale(1);box-shadow:0 2px 4px #0003}}.tile-shuffled{animation:shuffleSpin .6s cubic-bezier(.25,.46,.45,.94)}@keyframes shuffleSpin{0%{transform:scale(.5) rotate(-180deg);opacity:.5}50%{transform:scale(1.1) rotate(10deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}.tile-swapped{animation:swapBounce .4s cubic-bezier(.34,1.56,.64,1)}@keyframes swapBounce{0%{transform:scale(.7);opacity:.7}50%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}.tile-undone{animation:undoRewind .35s ease-out}@keyframes undoRewind{0%{transform:translate(20px) scale(.9);opacity:.5;filter:blur(2px)}to{transform:translate(0) scale(1);opacity:1;filter:blur(0)}}@keyframes tileAppear{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes tileMerge{0%{transform:scale(1)}50%{transform:scale(1.2);box-shadow:0 0 20px #fff6}to{transform:scale(1)}}.tile-2{background:#eee4da}.tile-2 .tile-inner{color:#776e65}.tile-4{background:#ede0c8}.tile-4 .tile-inner{color:#776e65}.tile-8{background:#f2b179}.tile-8 .tile-inner{color:#f9f6f2}.tile-16{background:#f59563}.tile-16 .tile-inner{color:#f9f6f2}.tile-32{background:#f67c5f}.tile-32 .tile-inner{color:#f9f6f2}.tile-64{background:#f65e3b}.tile-64 .tile-inner{color:#f9f6f2}.tile-128{background:#edcf72}.tile-128 .tile-inner{color:#f9f6f2}.tile-256{background:#edcc61}.tile-256 .tile-inner{color:#f9f6f2}.tile-512{background:#edc850}.tile-512 .tile-inner{color:#f9f6f2}.tile-1024{background:#edc53f}.tile-1024 .tile-inner{color:#f9f6f2}.tile-2048{background:#edc22e}.tile-2048 .tile-inner{color:#f9f6f2}.tile-4096{background:linear-gradient(135deg,#ff6b6b,#ee5a5a)}.tile-4096 .tile-inner{color:#f9f6f2;font-size:clamp(10px,2.5vh,32px)}.tile-8192{background:linear-gradient(135deg,#c44569,#a03050)}.tile-8192 .tile-inner{color:#f9f6f2;font-size:clamp(10px,2.5vh,32px)}.tile-16384{background:linear-gradient(135deg,#8e44ad,#6c3483)}.tile-16384 .tile-inner{color:#f9f6f2;font-size:clamp(8px,2vh,28px)}.tile-32768{background:linear-gradient(135deg,#2980b9,#1a5276)}.tile-32768 .tile-inner{color:#f9f6f2;font-size:clamp(8px,2vh,28px)}.tile-65536{background:linear-gradient(135deg,#16a085,#0e6655)}.tile-65536 .tile-inner{color:#f9f6f2;font-size:clamp(8px,2vh,28px)}.tile-131072{background:linear-gradient(135deg,#27ae60,#1e8449)}.tile-131072 .tile-inner{color:#f9f6f2;font-size:clamp(6px,1.8vh,24px)}.tile-262144{background:linear-gradient(135deg,#f39c12,#d68910)}.tile-262144 .tile-inner{color:#f9f6f2;font-size:clamp(6px,1.8vh,24px)}.tile-524288{background:linear-gradient(135deg,#e74c3c,#c0392b)}.tile-524288 .tile-inner{color:#f9f6f2;font-size:clamp(6px,1.8vh,24px)}.tile-1048576{background:linear-gradient(135deg,#9b59b6,#7d3c98)}.tile-1048576 .tile-inner{color:#f9f6f2;font-size:clamp(5px,1.5vh,20px)}.tile-2097152{background:linear-gradient(135deg,#3498db,#2874a6)}.tile-2097152 .tile-inner{color:#f9f6f2;font-size:clamp(5px,1.5vh,20px)}.tile-4194304{background:linear-gradient(135deg,#1abc9c,#148f77)}.tile-4194304 .tile-inner{color:#f9f6f2;font-size:clamp(5px,1.5vh,20px)}.tile-8388608{background:linear-gradient(145deg,gold,#ffb800,#ff9500);box-shadow:0 0 20px #ffd70080}.tile-8388608 .tile-inner{color:#1a1a1a;font-size:clamp(5px,1.5vh,20px);text-shadow:0 1px 2px rgba(255,255,255,.5)}.tile-super{background:linear-gradient(135deg,#667eea,#764ba2,#f64f59);animation:rainbowShift 3s ease infinite}.tile-super .tile-inner{color:#f9f6f2;font-size:clamp(5px,1.5vh,20px)}@keyframes rainbowShift{0%,to{filter:hue-rotate(0deg)}50%{filter:hue-rotate(60deg)}}:root{--board-bg: #1e1e1e;--grid-cell-bg: rgba(60, 60, 60, .5);--grid-gap: 8px}.board-container{position:relative;background:var(--board-bg);border-radius:8px;margin:10px auto;height:75vh;width:75vh;max-width:96vw;max-height:96vw;box-shadow:0 10px 30px #00000080;touch-action:none;user-select:none;-webkit-user-select:none}.grid-background{display:grid;grid-template-columns:repeat(var(--grid-size),1fr);grid-template-rows:repeat(var(--grid-size),1fr);gap:var(--grid-gap);padding:var(--grid-gap);width:100%;height:100%;box-sizing:border-box}.grid-cell{background:var(--grid-cell-bg);border-radius:4px}.tile-container{position:absolute;top:0;left:0;width:100%;height:100%;display:grid;grid-template-columns:repeat(var(--grid-size),1fr);grid-template-rows:repeat(var(--grid-size),1fr);gap:var(--grid-gap);padding:var(--grid-gap);box-sizing:border-box;pointer-events:none}.board-container.joker-selection-mode{box-shadow:0 0 20px #ff005580}.board-container.joker-selection-mode .tile-container{pointer-events:auto}.grid-cell.selectable{cursor:pointer;transition:background .2s}.grid-cell.selectable:hover{background:#ff00554d}@media(max-width:600px){:root{--grid-gap: 5px}.board-container{width:95vw;height:95vw;max-width:95vw;max-height:95vw;border-radius:6px;margin:5px auto}}@media(max-width:400px){:root{--grid-gap: 4px}.board-container{border-radius:4px}.grid-cell{border-radius:3px}}.scoreboard-container{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:500px;margin-bottom:20px}.score-box{background:var(--bg-panel);padding:5px 15px;border-radius:6px;min-width:80px;text-align:center}.score-label{font-size:.8rem;color:var(--text-secondary);font-weight:700}.score-value{font-size:1.2rem;color:#fff;font-weight:700}.diamond-box{background:#00e5ff1a;border:1px solid var(--accent-secondary);padding:5px 15px;border-radius:20px;display:flex;align-items:center;gap:8px}.diamond-icon{font-size:1.2rem}.diamond-value{font-size:1.2rem;color:var(--accent-secondary);font-weight:700}.joker-panel{display:flex;flex-direction:column;gap:8px;padding:10px}.joker-mode-indicator{background:linear-gradient(135deg,#f67c5f,#e55039);color:#fff;padding:8px;border-radius:8px;text-align:center;font-size:.8rem;font-weight:700;display:flex;align-items:center;justify-content:space-between;gap:8px}.cancel-btn{background:#0000004d;border:none;color:#fff;width:24px;height:24px;border-radius:50%;cursor:pointer;font-size:.8rem}.joker-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 8px;min-width:70px;border:1px solid var(--accent-primary);border-radius:8px;background:#0006;color:#fff;cursor:pointer;transition:all .2s}.joker-btn:hover:not(:disabled){background:#f053;transform:translateY(-2px)}.joker-btn.active{background:#f056;border-color:#fff;box-shadow:0 0 10px #ff005580}.joker-btn.disabled{opacity:.4;cursor:not-allowed}.joker-btn:disabled{opacity:.3}.joker-name{font-size:.75rem;font-weight:700;margin-bottom:4px}.joker-price{font-size:.7rem;color:var(--accent-gold)}.grid-panel{display:flex;flex-direction:column;gap:8px;padding:10px}.new-game-btn{background:linear-gradient(135deg,#8f7a66,#6d5d50);color:#f9f6f2;border:none;border-radius:8px;padding:12px 16px;font-size:.85rem;font-weight:700;cursor:pointer;transition:all .2s;white-space:nowrap}.new-game-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.grid-sizes{display:flex;flex-direction:column;gap:5px}.size-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#ccc;border-radius:6px;padding:8px 12px;font-size:.8rem;font-weight:700;cursor:pointer;transition:all .2s}.size-btn:hover{background:#ffffff26;color:#fff}.size-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.stats-panel{background:#0006;border-radius:12px;padding:15px;min-width:200px}.player-name{text-align:center;color:gold;font-weight:700;font-size:1rem;margin-bottom:12px;cursor:pointer;padding:5px;border-radius:6px;transition:background .2s}.player-name:hover{background:#ffffff1a}.stats-grid{display:flex;flex-direction:column;gap:10px}.stat-card{background:#ffffff0d;border-radius:8px;padding:12px;text-align:center}.stat-label{font-size:.75rem;color:#888;margin-bottom:4px}.stat-value{font-size:1.4rem;font-weight:700;color:#fff}.best-score .stat-value{color:gold}.highest-tile .stat-value{color:#edc22e}.stat-meta{font-size:.7rem;color:#666;margin-top:4px}.games-played{text-align:center;font-size:.8rem;color:#666;margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.1)}.game-over-overlay{position:fixed;inset:0;background:#000000d9;display:flex;justify-content:center;align-items:center;z-index:100;animation:fadeIn .3s ease-out}.game-over-content{background:linear-gradient(135deg,#2d2d2d,#1a1a1a);border-radius:20px;padding:35px 45px;text-align:center;box-shadow:0 20px 60px #00000080;border:1px solid rgba(255,255,255,.1);min-width:300px}.game-over-content h2{color:#f67c5f;font-size:2.2rem;margin:0 0 25px;text-shadow:0 2px 10px rgba(246,124,95,.3)}.game-over-stats{display:flex;justify-content:center;gap:20px;margin-bottom:20px}.game-over-stats .stat{background:#ffffff0d;border-radius:10px;padding:15px 20px;min-width:80px}.game-over-stats .stat-value{display:block;font-size:1.5rem;font-weight:700;color:gold}.game-over-stats .stat-label{display:block;font-size:.75rem;color:#888;margin-top:5px}.leaderboard-submitted{color:#667eea;font-size:.9rem;margin:15px 0}.play-again-btn{margin-top:15px;padding:14px 40px;font-size:1.1rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#f67c5f,#e55039);border:none;border-radius:10px;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 15px #f67c5f66}.play-again-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #f67c5f80}.play-again-btn:active{transform:translateY(0)}.export-import-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease-out}.export-import-modal{background:linear-gradient(145deg,#2a2a2a,#1e1e1e);border-radius:16px;padding:30px;max-width:400px;width:90%;position:relative;box-shadow:0 20px 60px #00000080;animation:slideUp .3s ease-out}.export-import-modal h2{margin:0 0 15px;color:#fff;font-size:1.4rem;text-align:center}.export-import-modal .description{color:#999;font-size:.85rem;text-align:center;margin-bottom:20px;line-height:1.5}.close-btn{position:absolute;top:15px;right:15px;background:none;border:none;color:#666;font-size:1.5rem;cursor:pointer;transition:color .2s}.button-group{display:flex;flex-direction:column;gap:12px}.action-btn{padding:14px 20px;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:10px}.action-btn:disabled{opacity:.5;cursor:not-allowed}.export-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.export-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 20px #667eea66}.import-btn{background:linear-gradient(135deg,#11998e,#38ef7d);color:#fff}.import-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 20px #38ef7d66}.action-btn.secondary{background:#ffffff1a;color:#aaa}.action-btn.secondary:hover{background:#ffffff26}.code-display{display:flex;align-items:center;justify-content:center;gap:10px;background:#0000004d;border-radius:10px;padding:20px;margin:20px 0}.code-display .code{font-family:Courier New,monospace;font-size:1.8rem;font-weight:700;color:#4fc3f7;letter-spacing:3px}.copy-btn{background:#ffffff1a;border:none;border-radius:8px;padding:10px 15px;font-size:1.2rem;cursor:pointer;transition:all .2s}.copy-btn:hover{background:#fff3}.warning{background:#ffc1071a;border:1px solid rgba(255,193,7,.3);border-radius:8px;padding:12px;color:#ffc107;font-size:.8rem;text-align:center;margin-bottom:20px}.code-input{width:100%;padding:15px;border:2px solid rgba(255,255,255,.1);border-radius:10px;background:#0000004d;color:#fff;font-family:Courier New,monospace;font-size:1.5rem;font-weight:700;text-align:center;letter-spacing:5px;margin-bottom:15px;text-transform:uppercase}.code-input:focus{outline:none;border-color:#4fc3f7}.code-input::placeholder{color:#555;letter-spacing:3px}.error-msg{background:#f443361a;border:1px solid rgba(244,67,54,.3);border-radius:8px;padding:12px;color:#f44336;font-size:.85rem;text-align:center;margin-top:15px}.success-msg{background:#4caf501a;border:1px solid rgba(76,175,80,.3);border-radius:8px;padding:12px;color:#4caf50;font-size:.85rem;text-align:center;margin-top:15px}.settings-overlay{position:fixed;inset:0;background:#000000d9;display:flex;justify-content:center;align-items:center;z-index:200;animation:fadeIn .2s ease}.settings-modal{background:linear-gradient(145deg,#2a2a2a,#1a1a1a);border-radius:16px;width:90%;max-width:400px;max-height:80vh;overflow-y:auto;box-shadow:0 20px 60px #00000080;border:1px solid rgba(255,255,255,.1);animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.settings-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid rgba(255,255,255,.1)}.settings-header h2{margin:0;color:#fff;font-size:1.3rem}.close-btn{background:none;border:none;color:#888;font-size:1.5rem;cursor:pointer;padding:5px;transition:color .2s}.settings-content{padding:20px}.setting-group{margin-bottom:20px}.setting-label{color:#ccc;font-size:.95rem;display:block;margin-bottom:10px}.setting-row{display:flex;justify-content:space-between;align-items:center}.theme-buttons{display:flex;gap:8px}.theme-btn{flex:1;padding:12px 8px;border:2px solid transparent;border-radius:8px;background:#ffffff0d;color:#aaa;font-size:.85rem;cursor:pointer;transition:all .2s}.theme-btn:hover{background:#ffffff1a;color:#fff}.theme-btn.active{border-color:#f67c5f;background:#f67c5f33;color:#fff}.toggle-btn{padding:8px 20px;border:none;border-radius:20px;font-weight:700;font-size:.85rem;cursor:pointer;transition:all .2s}.toggle-btn.on{background:linear-gradient(135deg,#4caf50,#2e7d32);color:#fff}.toggle-btn.off{background:#ffffff1a;color:#888}.settings-footer{margin-top:30px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);text-align:center}.settings-footer p{margin:5px 0;color:#666;font-size:.85rem}.backup-section{border-top:1px solid rgba(255,255,255,.1);padding-top:15px}.backup-buttons{display:flex;gap:10px}.backup-btn{flex:1;padding:10px;border:none;border-radius:6px;font-size:.85rem;font-weight:700;cursor:pointer;transition:all .2s}.backup-btn.export{background:linear-gradient(135deg,#4caf50,#2e7d32);color:#fff}.backup-btn.import{background:linear-gradient(135deg,#2196f3,#1565c0);color:#fff}.backup-btn:hover{transform:translateY(-1px)}.backup-status{text-align:center;font-size:.85rem;margin-top:10px;color:#4caf50}.cloud-section{border-top:1px solid rgba(255,255,255,.1);padding-top:15px}.setting-desc{color:#777;font-size:.8rem;margin-top:-5px;margin-bottom:12px}.cloud-sync-btn{width:100%;padding:14px;border:none;border-radius:10px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.cloud-sync-btn:hover{transform:translateY(-2px);box-shadow:0 5px 20px #667eea66}.feedback-section{border-top:1px solid rgba(255,255,255,.1);padding-top:15px}.feedback-btn{width:100%;padding:14px;border:none;border-radius:10px;background:linear-gradient(135deg,#27ae60,#2ecc71);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.feedback-btn:hover{transform:translateY(-2px);box-shadow:0 5px 20px #27ae6066}.feedback-overlay{position:fixed;inset:0;background:#000000e6;display:flex;justify-content:center;align-items:center;z-index:300}.feedback-modal{background:linear-gradient(145deg,#2a2a2a,#1a1a1a);border-radius:16px;padding:25px;width:90%;max-width:350px;text-align:center}.feedback-modal h3{color:#fff;margin:0 0 15px}.feedback-modal textarea{width:100%;padding:12px;border:1px solid rgba(255,255,255,.2);border-radius:10px;background:#0000004d;color:#fff;font-size:.9rem;resize:none;margin-bottom:15px}.feedback-modal textarea:focus{outline:none;border-color:#27ae60}.feedback-actions{display:flex;gap:10px}.feedback-actions button{flex:1;padding:12px;border:none;border-radius:8px;cursor:pointer;font-weight:600}.feedback-actions button:first-child{background:#ffffff1a;color:#aaa}.feedback-actions .send-btn{background:linear-gradient(135deg,#27ae60,#2ecc71);color:#fff}.feedback-actions .send-btn:disabled{opacity:.5;cursor:not-allowed}.feedback-success{color:#27ae60;font-size:1.1rem;padding:20px}.daily-reward-btn{position:fixed;top:15px;right:15px;background:linear-gradient(135deg,#f67c5f,#e55039);border:none;border-radius:50%;width:50px;height:50px;font-size:1.5rem;cursor:pointer;box-shadow:0 4px 15px #f67c5f66;z-index:50;animation:bounce 2s infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.claim-badge{position:absolute;top:-5px;right:-5px;background:#f05;color:#fff;width:20px;height:20px;border-radius:50%;font-size:.8rem;font-weight:700;display:flex;align-items:center;justify-content:center}.daily-overlay{position:fixed;inset:0;background:#000000e6;display:flex;justify-content:center;align-items:center;z-index:300;animation:fadeIn .2s ease}.daily-modal{background:linear-gradient(145deg,#2a2a2a,#1a1a1a);border-radius:20px;padding:30px;width:90%;max-width:420px;text-align:center;position:relative;border:1px solid rgba(255,255,255,.1);animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.daily-modal h2{margin:0 0 10px;font-size:1.8rem;color:#fff}.daily-subtitle{color:#888;margin-bottom:25px}.days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:25px}.day-box{background:#ffffff0d;border-radius:10px;padding:10px 5px;position:relative;border:2px solid transparent;transition:all .2s}.day-box.claimed{background:#4caf5033;border-color:#4caf50}.day-box.current{background:#ffd70033;border-color:gold;animation:pulse 1.5s infinite}.day-box.grand{background:linear-gradient(135deg,#ffd7004d,#ffa5004d)}@keyframes pulse{0%,to{box-shadow:0 0 #ffd70000}50%{box-shadow:0 0 15px #ffd70080}}.day-label{font-size:.65rem;color:#888;margin-bottom:5px}.day-reward{font-size:.85rem;font-weight:700;color:#fff}.day-check{position:absolute;top:-5px;right:-5px;background:#4caf50;color:#fff;width:18px;height:18px;border-radius:50%;font-size:.7rem;display:flex;align-items:center;justify-content:center}.claim-btn{background:linear-gradient(135deg,gold,#ff8c00);border:none;border-radius:30px;padding:15px 40px;font-size:1.1rem;font-weight:700;color:#1a1a1a;cursor:pointer;box-shadow:0 5px 20px #ffd70066;transition:all .2s}.claim-btn:hover{transform:translateY(-2px);box-shadow:0 8px 25px #ffd70080}.claim-success{background:#4caf5033;border-radius:15px;padding:20px;margin-bottom:15px}.reward-amount{font-size:2rem;font-weight:700;color:gold;display:block;animation:popIn .5s ease}@keyframes popIn{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.claim-success p{color:#4caf50;margin:10px 0 0}.come-back{color:#888;font-style:italic}.streak-info{margin-top:20px;padding-top:15px;border-top:1px solid rgba(255,255,255,.1);color:#888;font-size:.9rem}.streak-info strong{color:gold}.achievements-btn{position:fixed;top:15px;left:15px;background:linear-gradient(135deg,gold,#ff8c00);border:none;border-radius:25px;padding:10px 20px;font-size:1rem;font-weight:700;color:#1a1a1a;cursor:pointer;box-shadow:0 4px 15px #ffd7004d;z-index:50;transition:all .2s}.achievements-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ffd70066}.achievements-overlay{position:fixed;inset:0;background:#000000e6;display:flex;justify-content:center;align-items:center;z-index:300;animation:fadeIn .2s ease}.achievements-modal{background:linear-gradient(145deg,#2a2a2a,#1a1a1a);border-radius:20px;padding:25px;width:90%;max-width:500px;max-height:80vh;overflow-y:auto;position:relative;border:1px solid rgba(255,255,255,.1)}.achievements-modal h2{margin:0 0 5px;text-align:center;color:#fff}.achievement-progress{text-align:center;color:#888;margin-bottom:20px}.close-btn{position:absolute;top:15px;right:15px;background:none;border:none;color:#666;font-size:1.3rem;cursor:pointer}.achievements-list{display:flex;flex-direction:column;gap:10px;margin-bottom:25px}.achievement-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:10px;background:#ffffff0d;transition:all .2s}.achievement-item.unlocked{background:#4caf5026;border:1px solid rgba(76,175,80,.3)}.achievement-item.locked{opacity:.6}.achievement-icon{font-size:1.8rem;min-width:45px;text-align:center}.achievement-info{flex:1}.achievement-name{font-weight:700;color:#fff;font-size:.95rem}.achievement-desc{color:#888;font-size:.8rem;margin-top:2px}.achievement-progress-bar{height:4px;background:#ffffff1a;border-radius:2px;margin-top:6px;overflow:hidden}.achievement-progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:2px;transition:width .3s ease}.achievement-progress-text{font-size:.7rem;color:#666;margin-top:3px}.achievement-reward .claimed{color:#4caf50;font-size:1.2rem}.achievement-reward .reward{color:gold;font-size:.9rem;font-weight:700}.stats-section{border-top:1px solid rgba(255,255,255,.1);padding-top:20px}.stats-section h3{margin:0 0 15px;color:#fff;font-size:1rem;text-align:center}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.stat-item{background:#ffffff0d;border-radius:10px;padding:15px;text-align:center}.stat-value{display:block;font-size:1.3rem;font-weight:700;color:gold}.stat-label{display:block;font-size:.75rem;color:#888;margin-top:5px}.leaderboard-inline{background:#0006;border-radius:12px;padding:12px;min-width:160px}.leaderboard-header{display:flex;flex-direction:column;align-items:center;gap:5px;margin-bottom:10px;font-size:.85rem;color:#fff;font-weight:700}.player-name-inline{color:#667eea;font-size:.75rem;cursor:pointer;padding:2px 6px;border-radius:4px;transition:background .2s}.player-name-inline:hover{background:#ffffff1a}.name-edit-inline input{background:#ffffff1a;border:1px solid #667eea;border-radius:4px;padding:4px 8px;color:#fff;font-size:.75rem;width:100px;text-align:center}.category-toggle{display:flex;gap:4px;margin-bottom:8px}.category-toggle button{flex:1;padding:6px 4px;border:none;border-radius:6px;background:#ffffff0d;color:#888;font-size:.7rem;cursor:pointer;transition:all .2s}.category-toggle button:hover{background:#ffffff1a}.category-toggle button.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.period-toggle{display:flex;gap:2px;background:#0000004d;border-radius:6px;padding:3px;margin-bottom:10px}.period-toggle button{flex:1;padding:4px 2px;border:none;border-radius:4px;background:transparent;color:#666;font-size:.65rem;cursor:pointer;transition:all .2s}.period-toggle button:hover{color:#aaa}.period-toggle button.active{background:#ffffff26;color:#fff}.leaderboard-list{background:#0000004d;border-radius:8px;padding:8px;max-height:200px;overflow-y:auto}.loading,.no-entries{text-align:center;color:#666;font-size:.75rem;padding:15px}.lb-row{display:flex;align-items:center;padding:5px 6px;border-radius:4px;font-size:.7rem;color:#ccc}.lb-row:nth-child(odd){background:#ffffff08}.lb-row.is-me{background:#667eea33;color:#fff}.lb-rank{width:22px;font-weight:700}.lb-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-value{color:gold;font-weight:700;margin-left:5px}.lb-reward{font-size:.6rem;color:#4fc3f7;margin-left:5px;opacity:.8}.period-countdown{text-align:center;font-size:.7rem;color:#888;margin-bottom:8px;padding:6px 8px;background:#ffd7001a;border-radius:6px;border:1px dashed rgba(255,215,0,.3)}.period-countdown span{color:gold;font-weight:700}.offline-warning{position:fixed;top:0;left:0;right:0;background:linear-gradient(135deg,#ff6b6b,#ee5a5a);color:#fff;padding:10px 20px;display:flex;align-items:center;justify-content:center;gap:10px;font-size:.85rem;font-weight:500;z-index:9999;box-shadow:0 2px 10px #0000004d;animation:slideDown .3s ease-out}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.offline-icon{font-size:1.1rem}.offline-text{letter-spacing:.3px}body:has(.offline-warning) .app-container{padding-top:50px}.celebration-overlay{position:fixed;inset:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .3s ease-out}.celebration-modal{background:linear-gradient(145deg,#2a2a2a,#1a1a1a);border-radius:20px;padding:30px 40px;text-align:center;max-width:350px;width:90%;box-shadow:0 0 50px #ffd7004d;border:2px solid rgba(255,215,0,.3);animation:popIn .4s cubic-bezier(.34,1.56,.64,1)}.celebration-crown{font-size:3rem;animation:bounceIn .5s ease-out}@keyframes bounceIn{0%{transform:translateY(-50px);opacity:0}60%{transform:translateY(10px)}to{transform:translateY(0);opacity:1}}.celebration-title{color:gold;font-size:1.5rem;font-weight:700;margin:15px 0 25px;text-shadow:0 0 20px rgba(255,215,0,.5);letter-spacing:2px}.celebration-tile-container{position:relative;display:inline-block;margin:10px 0 25px}.celebration-crown-overlay{position:absolute;top:-30px;left:50%;transform:translate(-50%);font-size:2rem;z-index:1;animation:float 2s ease-in-out infinite}@keyframes float{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-5px)}}.celebration-tile{width:100px;height:100px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;color:#fff;box-shadow:0 10px 30px #0006;animation:glow 1.5s ease-in-out infinite}@keyframes glow{0%,to{box-shadow:0 10px 30px #ffd7004d}50%{box-shadow:0 10px 50px #ffd70099}}.celebration-tile.tile-512{background:#edc850}.celebration-tile.tile-1024{background:#edc53f}.celebration-tile.tile-2048{background:#edc22e}.celebration-tile.tile-4096{background:linear-gradient(135deg,#ff6b6b,#ee5a5a)}.celebration-tile.tile-8192{background:linear-gradient(135deg,#c44569,#a03050)}.celebration-tile.tile-16384{background:linear-gradient(135deg,#8e44ad,#6c3483)}.celebration-tile.tile-32768{background:linear-gradient(135deg,#2980b9,#1a5276)}.celebration-tile.tile-65536{background:linear-gradient(135deg,#16a085,#0e6655)}.celebration-tile.tile-131072{background:linear-gradient(135deg,#27ae60,#1e8449)}.celebration-tile.tile-262144{background:linear-gradient(135deg,#f39c12,#d68910)}.celebration-tile.tile-524288{background:linear-gradient(135deg,#e74c3c,#c0392b)}.celebration-tile.tile-1048576{background:linear-gradient(135deg,#9b59b6,#7d3c98)}.celebration-reward{display:flex;flex-direction:column;gap:5px;margin-bottom:15px}.reward-diamonds{font-size:2rem;font-weight:700;color:#4fc3f7;text-shadow:0 0 15px rgba(79,195,247,.5);animation:pulse 1s ease-in-out infinite}.reward-label{font-size:.9rem;color:#888}.celebration-balance{font-size:.85rem;color:#666;margin-bottom:20px}.celebration-claim-btn{padding:15px 40px;border:none;border-radius:12px;background:linear-gradient(135deg,gold,#ffb800);color:#1a1a1a;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 5px 20px #ffd7004d}.celebration-claim-btn:hover{transform:translateY(-2px);box-shadow:0 8px 30px #ffd70080}.celebration-claim-btn:active{transform:translateY(0)}.daily-quests-btn{position:fixed;top:70px;right:20px;width:45px;height:45px;border-radius:50%;border:none;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:1.3rem;cursor:pointer;box-shadow:0 4px 15px #667eea66;z-index:100;transition:all .2s}.daily-quests-btn:hover{transform:scale(1.1);box-shadow:0 6px 20px #667eea99}.daily-quests-overlay{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease-out}.daily-quests-modal{background:linear-gradient(145deg,#2a2a2a,#1a1a1a);border-radius:16px;padding:25px;max-width:420px;width:90%;max-height:80vh;overflow-y:auto;position:relative;box-shadow:0 20px 60px #00000080}.daily-quests-modal h2{margin:0 0 5px;color:#fff;font-size:1.4rem}.quest-subtitle{color:#888;font-size:.85rem;margin:0 0 20px}.close-btn{position:absolute;top:15px;right:15px;background:none;border:none;color:#666;font-size:1.5rem;cursor:pointer}.quest-list{display:flex;flex-direction:column;gap:12px}.quest-item{display:flex;justify-content:space-between;align-items:center;background:#ffffff0d;border-radius:10px;padding:12px 15px;border:1px solid rgba(255,255,255,.1);transition:all .2s}.quest-item.complete{border-color:#4caf5080;background:#4caf501a}.quest-item.claimed{opacity:.6}.quest-info{flex:1}.quest-name{font-weight:600;color:#fff;font-size:.95rem;margin-bottom:3px}.quest-desc{color:#999;font-size:.8rem;margin-bottom:8px}.quest-progress-bar{height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden;margin-bottom:4px}.quest-progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:3px;transition:width .3s ease}.quest-item.complete .quest-progress-fill{background:linear-gradient(90deg,#4caf50,#2e7d32)}.quest-progress-text{font-size:.75rem;color:#777}.quest-reward{margin-left:15px}.claim-btn{padding:8px 15px;border:none;border-radius:8px;background:linear-gradient(135deg,#4caf50,#2e7d32);color:#fff;font-weight:600;font-size:.85rem;cursor:pointer;transition:all .2s}.claim-btn:hover{transform:translateY(-2px);box-shadow:0 5px 15px #4caf5066}.claim-btn.bonus{background:linear-gradient(135deg,gold,#ffb800);color:#1a1a1a}.claimed-badge{color:#4caf50;font-size:.85rem;font-weight:600}.reward-preview{color:#888;font-size:.85rem}.all-complete-bonus{display:flex;justify-content:space-between;align-items:center;margin-top:15px;padding:15px;background:#ffd7000d;border:2px dashed rgba(255,215,0,.3);border-radius:12px}.all-complete-bonus.ready{background:#ffd70026;border-style:solid;animation:glow 1.5s ease-in-out infinite}@keyframes glow{0%,to{box-shadow:0 0 10px #ffd70033}50%{box-shadow:0 0 25px #ffd70066}}.bonus-info{display:flex;align-items:center;gap:10px}.bonus-icon{font-size:1.5rem}.bonus-text{font-weight:600;color:gold}.ranking-rewards-overlay{position:fixed;inset:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.ranking-rewards-modal{background:linear-gradient(145deg,#2a2a2a,#1a1a1a);border-radius:20px;padding:30px;max-width:380px;width:90%;text-align:center;position:relative;box-shadow:0 0 50px #ffd70033;border:2px solid rgba(255,215,0,.3);animation:popIn .4s cubic-bezier(.34,1.56,.64,1)}@keyframes popIn{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.close-btn{position:absolute;top:12px;right:15px;background:none;border:none;color:#666;font-size:1.8rem;cursor:pointer;line-height:1}.close-btn:hover{color:#fff}.rewards-icon{font-size:4rem;margin-bottom:15px;animation:bounce 1s ease infinite}.rewards-icon.success{animation:none}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.ranking-rewards-modal h2{color:gold;font-size:1.5rem;margin:0 0 10px;text-shadow:0 0 20px rgba(255,215,0,.5)}.rewards-subtitle{color:#888;font-size:.9rem;margin:0 0 20px}.rewards-list{display:flex;flex-direction:column;gap:10px;margin-bottom:15px}.reward-item{display:flex;justify-content:space-between;align-items:center;background:#ffffff0d;border-radius:10px;padding:12px 15px;border:1px solid rgba(255,255,255,.1)}.reward-info{display:flex;align-items:center;gap:10px}.reward-rank{font-weight:700;color:gold;font-size:1.1rem}.reward-period{color:#aaa;font-size:.85rem}.reward-amount{color:#4fc3f7;font-weight:600}.total-rewards{display:flex;justify-content:space-between;align-items:center;padding:15px;background:#ffd7001a;border-radius:12px;margin-bottom:20px;border:1px solid rgba(255,215,0,.3)}.total-rewards span{color:gold;font-weight:600}.total-amount{font-size:1.2rem;text-shadow:0 0 10px rgba(255,215,0,.3)}.claim-btn{padding:15px 40px;border:none;border-radius:12px;background:linear-gradient(135deg,gold,#ffb800);color:#1a1a1a;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 5px 20px #ffd7004d;width:100%}.claim-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 30px #ffd70080}.claim-btn:disabled{opacity:.7;cursor:not-allowed}.claim-btn.done{background:linear-gradient(135deg,#4caf50,#2e7d32);color:#fff}.expiry-note{color:#666;font-size:.75rem;margin:15px 0 0}.claimed-amount{font-size:2.5rem;font-weight:700;color:#4fc3f7;margin:20px 0;text-shadow:0 0 20px rgba(79,195,247,.5);animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.claimed-text{color:#888;margin:0 0 20px}@media(max-width:1024px){body{overflow-x:hidden}.app-container{padding:8px;min-height:100dvh;gap:8px}.top-bar{flex-wrap:wrap;gap:8px;margin-bottom:8px;justify-content:center}.score-container{gap:8px}.score-box{padding:8px 12px;min-width:60px}.score-box .label{font-size:.6rem}.score-box .value{font-size:1rem}.settings-btn{width:36px;height:36px;font-size:1rem}.game-layout{flex-direction:column;align-items:center;gap:8px;width:100%}.left-panel,.right-panel{display:none}.board-container{width:calc(100vw - 16px);height:calc(100vw - 16px);max-width:400px;max-height:400px;margin:0 auto;order:1}.mobile-controls{display:flex;flex-direction:column;gap:8px;width:100%;order:2}.mobile-jokers{display:flex;gap:6px;overflow-x:auto;padding:8px;background:#0000004d;border-radius:10px;-webkit-overflow-scrolling:touch}.mobile-jokers::-webkit-scrollbar{display:none}.mobile-joker-btn{flex-shrink:0;display:flex;flex-direction:column;align-items:center;padding:8px 10px;background:#ffffff14;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:.7rem;min-width:55px;cursor:pointer;transition:all .2s}.mobile-joker-btn:active{transform:scale(.95);background:#ffffff26}.mobile-joker-btn.disabled{opacity:.4;pointer-events:none}.mobile-joker-btn .name{font-weight:700;margin-bottom:2px}.mobile-joker-btn .cost{color:#4fc3f7;font-size:.65rem}.mobile-grid-selector{display:flex;gap:6px;overflow-x:auto;padding:8px;background:#0000004d;border-radius:10px;-webkit-overflow-scrolling:touch}.mobile-grid-selector::-webkit-scrollbar{display:none}.mobile-grid-btn{flex-shrink:0;padding:10px 14px;background:#ffffff14;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:.8rem;font-weight:700;cursor:pointer;transition:all .2s}.mobile-grid-btn:active{transform:scale(.95)}.mobile-grid-btn.active{background:linear-gradient(135deg,#f05,#f48);border-color:#f05}.mobile-new-game{padding:12px 20px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;font-size:.9rem;font-weight:700;cursor:pointer}.mobile-stats{display:flex;justify-content:space-around;padding:10px;background:#0000004d;border-radius:10px}.mobile-stat{text-align:center}.mobile-stat .value{font-size:1rem;font-weight:700;color:gold}.mobile-stat .label{font-size:.6rem;color:#888}.mobile-lb-toggle{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:#0000004d;border-radius:10px;color:#fff;cursor:pointer}.stats-panel,.joker-panel,.grid-panel,.leaderboard-inline{display:none!important}.settings-modal,.achievements-modal,.daily-rewards-modal{width:95vw;max-width:none;max-height:90vh}.game-over-content{padding:20px;width:90vw;max-width:350px}.game-over-stats{gap:10px}.game-over-stats .stat-value{font-size:1.2rem}}@media(max-width:360px){.board-container{width:calc(100vw - 10px);height:calc(100vw - 10px)}.mobile-joker-btn{min-width:48px;padding:6px 8px;font-size:.65rem}.mobile-grid-btn{padding:8px 10px;font-size:.75rem}}.mobile-leaderboard{background:#0006;border-radius:10px;padding:10px;margin-top:5px}.mobile-lb-tabs{display:flex;gap:5px;margin-bottom:8px}.mobile-lb-tabs button{flex:1;padding:8px;border:none;border-radius:6px;background:#ffffff14;color:#888;font-size:.75rem;font-weight:700;cursor:pointer}.mobile-lb-tabs button.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.mobile-lb-periods{display:flex;gap:4px;margin-bottom:10px;background:#0000004d;padding:4px;border-radius:6px}.mobile-lb-periods button{flex:1;padding:6px;border:none;border-radius:4px;background:transparent;color:#666;font-size:.7rem;cursor:pointer}.mobile-lb-periods button.active{background:#ffffff26;color:#fff}.mobile-lb-list{max-height:200px;overflow-y:auto}.mobile-lb-empty{text-align:center;color:#666;padding:20px;font-size:.8rem}.mobile-lb-row{display:flex;align-items:center;padding:8px;border-radius:6px;font-size:.75rem}.mobile-lb-row:nth-child(odd){background:#ffffff08}.mobile-lb-row .rank{width:25px;font-weight:700}.mobile-lb-row .name{flex:1;color:#ccc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-lb-row .value{color:gold;font-weight:700}
