*,:before,:after{box-sizing:border-box}body{color:#111;-webkit-font-smoothing:antialiased;background:#fff;margin:0;font-family:system-ui,Segoe UI,Roboto,sans-serif}#root{width:100%;max-width:600px;margin:0 auto}button{font-family:inherit}.loader-screen{flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:100svh;display:flex}.spinner{border:4px solid #e5e7eb;border-top-color:#2563eb;border-radius:50%;width:44px;height:44px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loader-text{color:#6b7280;margin:0;font-size:1rem}.game{box-sizing:border-box;flex-direction:column;align-items:center;gap:28px;min-height:100svh;padding:24px 20px 40px;display:flex}.game-header-wrapper{width:100%;max-width:320px;position:relative}.game-header{justify-content:space-between;align-items:center;width:100%;display:flex}.game-header-help{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.game-header-help .help-btn{pointer-events:auto}.back-btn{color:#2563eb;cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:.95rem;font-weight:500}.back-btn:hover{text-decoration:underline}.score{color:#111;font-size:1.1rem;font-weight:700}.score-btn{color:#111;cursor:pointer;background:0 0;border:2px solid #d1d5db;border-radius:8px;align-items:center;gap:6px;padding:4px 10px;font-family:inherit;font-weight:700;transition:border-color .15s,background .15s;display:flex}.score-level{color:#6b7280;font-size:.8rem;font-weight:500}.score-points{font-size:1rem}.score-btn:hover{background:#f3f4f6;border-color:#9ca3af}.game-body{flex-direction:column;align-items:center;gap:28px;width:100%;max-width:320px;display:flex;position:relative}.used-words-anchor{width:100%;height:40px;position:relative}.used-words-box{cursor:pointer;text-align:left;color:#374151;box-sizing:border-box;z-index:1;background:#f9fafb;border:2px solid #e5e7eb;border-radius:10px;height:40px;padding:8px 36px 8px 12px;font-family:inherit;font-size:.875rem;transition:border-color .15s,background .15s;position:absolute;top:0;left:0;right:0;overflow:hidden}.used-words-box.expanded{z-index:25;height:auto;max-height:400px;overflow-y:auto;box-shadow:0 8px 24px #0000001f}.used-words-box:not(:disabled):hover{background:#f3f4f6;border-color:#9ca3af}.used-words-box:disabled{cursor:default;color:#9ca3af}.used-words-empty{font-style:italic}.used-words-preview{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.used-words-list{flex-direction:column;display:flex}.used-words-item{padding:2px 0}.used-words-chevron{color:#9ca3af;pointer-events:none;font-size:.7rem;position:absolute;top:12px;right:10px}.word-display-wrapper{z-index:20;flex-direction:column;align-items:center;width:100%;display:flex;position:relative}.toast-row{pointer-events:none;z-index:20;align-items:center;gap:8px;display:flex;position:absolute;top:-48px}.toast{color:#fff;white-space:nowrap;border-radius:20px;padding:8px 18px;font-size:.95rem;font-weight:600;animation:.2s ease-out toast-in}.toast--success{background:#16a34a;box-shadow:0 4px 12px #16a34a4d}.toast--error{background:#dc2626;box-shadow:0 4px 12px #dc26264d}.points-float{color:#16a34a;white-space:nowrap;font-size:1.1rem;font-weight:700;animation:1.8s ease-out forwards points-rise}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes points-rise{0%{opacity:1;transform:translateY(0)}60%{opacity:1;transform:translateY(-18px)}to{opacity:0;transform:translateY(-32px)}}.word-display{box-sizing:border-box;background:#f3f4f6;border-radius:10px;justify-content:center;align-items:center;width:100%;min-height:56px;padding:8px 16px;display:flex}.word-placeholder{color:#9ca3af;font-size:1rem}.word-text{letter-spacing:4px;color:#111;text-transform:uppercase;font-size:1.6rem;font-weight:700}.word-char--center{color:#2563eb}.game-grid{grid-template-columns:repeat(3,1fr);gap:10px;width:100%;display:grid}.game-letter-btn{cursor:pointer;color:#111;-webkit-user-select:none;user-select:none;background:#f9fafb;border:2px solid #d1d5db;border-radius:10px;justify-content:center;align-items:center;height:90px;font-size:1.6rem;font-weight:700;transition:background .12s,border-color .12s,transform .1s;display:flex}.game-letter-btn:active{transform:scale(.93)}@media (hover:hover){.game-letter-btn:hover{background:#e5e7eb;border-color:#9ca3af}.game-letter-btn.center:hover{background:#1d4ed8}}.game-letter-btn.center{color:#fff;background:#2563eb;border-color:#1d4ed8}.game-actions{gap:10px;width:100%;display:flex}.action-btn{cursor:pointer;border:2px solid #d1d5db;border-radius:8px;flex:1;padding:12px 8px;font-size:.9rem;font-weight:600;transition:background .12s,border-color .12s,opacity .12s}.action-btn:disabled{opacity:.35;cursor:not-allowed}.delete-btn{color:#b91c1c;background:#fef2f2;border-color:#fca5a5}.delete-btn:hover:not(:disabled){background:#fee2e2;border-color:#f87171}.shuffle-btn{color:#374151;background:#f9fafb;border-color:#d1d5db}.shuffle-btn:hover{background:#e5e7eb;border-color:#9ca3af}.enter-btn{color:#fff;background:#2563eb;border-color:#1d4ed8}.enter-btn:hover:not(:disabled){background:#1d4ed8}.confirm-overlay{z-index:100;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-dialog{background:#fff;border-radius:14px;flex-direction:column;gap:20px;width:calc(100% - 40px);max-width:300px;padding:28px 24px 20px;display:flex;box-shadow:0 20px 40px #0003}.confirm-text{color:#111;text-align:center;margin:0;font-size:1rem;line-height:1.5}.confirm-actions{gap:10px;display:flex}.confirm-btn{cursor:pointer;border:2px solid #0000;border-radius:8px;flex:1;padding:11px 8px;font-family:inherit;font-size:.9rem;font-weight:600;transition:background .12s,opacity .12s}.confirm-cancel{color:#374151;background:#f3f4f6;border-color:#e5e7eb}.confirm-cancel:hover{background:#e5e7eb}.confirm-exit{color:#fff;background:#dc2626}.confirm-exit:hover{background:#b91c1c}.progress-dialog{text-align:center;gap:16px}.progress-title{margin:0;font-size:1.1rem;font-weight:700}.level-list{flex-direction:column;gap:2px;width:100%;margin:0;padding:0;list-style:none;display:flex}.level-row{color:#9ca3af;border-radius:6px;justify-content:space-between;align-items:center;padding:6px 10px;font-size:.9rem;display:flex}.level-row.level-reached{color:#2563eb}.level-row.level-current{background:#eff6ff;font-weight:700}.level-name{text-align:left}.level-threshold{text-align:right;font-variant-numeric:tabular-nums}.progress-count{color:#2563eb;margin:0;font-size:2.2rem;font-weight:700;line-height:1}.progress-label{color:#6b7280;margin:0;font-size:.9rem}.share-btn{cursor:pointer;color:#fff;background:#2563eb;border:2px solid #1d4ed8;border-radius:8px;width:100%;padding:11px 8px;font-family:inherit;font-size:.9rem;font-weight:600;transition:background .12s}.share-btn:hover{background:#1d4ed8}.confirm-show-words{color:#15803d;background:#f0fdf4;border-color:#86efac;width:100%}.confirm-show-words:hover{background:#dcfce7;border-color:#4ade80}.all-words-overlay{z-index:110}.all-words-dialog{flex-direction:column;gap:16px;max-width:340px;max-height:calc(100svh - 40px);padding:24px 20px 20px;display:flex;overflow:hidden}.all-words-title{flex-direction:column;flex-shrink:0;align-items:center;gap:4px;display:flex}.all-words-title-label{color:#6b7280;letter-spacing:normal;font-size:1rem;font-weight:500}.all-words-title-letters{text-align:center;letter-spacing:6px;text-transform:uppercase;color:#374151;font-size:1.5rem;font-weight:700}.all-words-title-center{color:#2563eb}.all-words-list-wrapper{border:2px solid #e5e7eb;border-radius:10px;flex:1;min-height:0;overflow-y:auto}.all-words-list{margin:0;padding:8px 0;list-style:none}.all-words-item{color:#374151;align-items:center;gap:8px;padding:5px 14px;font-size:.95rem;display:flex}.all-words-item--found{color:#15803d}.all-words-check{color:#16a34a;flex-shrink:0;width:14px;font-size:.85rem;font-weight:700}.all-words-word{flex:1}.all-words-close-btn{flex-shrink:0;width:100%}.help-overlay{z-index:100;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.help-dialog{background:#fff;border-radius:14px;flex-direction:column;gap:16px;width:calc(100% - 40px);max-width:320px;padding:28px 24px 20px;display:flex;box-shadow:0 20px 40px #0003}.help-title{color:#111;text-align:center;margin:0;font-size:1.1rem;font-weight:700}.help-rules{color:#374151;flex-direction:column;gap:10px;margin:0;padding:0 0 0 20px;font-size:.9rem;line-height:1.5;display:flex}.help-close-btn{cursor:pointer;color:#fff;background:#2563eb;border:none;border-radius:8px;width:100%;padding:11px 8px;font-family:inherit;font-size:.9rem;font-weight:600;transition:background .12s}.help-close-btn:hover{background:#1d4ed8}.help-btn{color:#6b7280;cursor:pointer;background:#f9fafb;border:2px solid #d1d5db;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.95rem;font-weight:700;line-height:1;transition:border-color .15s,background .15s,color .15s;display:flex}.help-btn:hover{color:#111;background:#e5e7eb;border-color:#9ca3af}.setup{box-sizing:border-box;flex-direction:column;align-items:center;gap:28px;min-height:100svh;padding:16px 20px 40px;display:flex}.setup-title-row{box-sizing:border-box;align-items:center;width:100vw;padding:0 10px;display:flex}.setup-title-row .title{text-align:center;flex:1}.setup-title-row:before{content:"";flex-shrink:0;width:32px;display:block}.title{letter-spacing:-1px;color:#111;margin:0;font-size:2.5rem;font-weight:700}.selected-letters{flex-wrap:wrap;place-content:center;align-items:center;gap:8px;height:108px;display:flex}.placeholder{color:#aaa;font-size:.95rem}.selected-tile{color:#111;background:#e5e7eb;border:2px solid #d1d5db;border-radius:8px;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.2rem;font-weight:700;display:inline-flex}.selected-tile.first{color:#fff;background:#2563eb;border-color:#1d4ed8}.letter-grid{grid-template-columns:repeat(5,1fr);gap:10px;width:100%;max-width:320px;display:grid}.letter-btn{cursor:pointer;color:#111;background:#f9fafb;border:2px solid #d1d5db;border-radius:8px;justify-content:center;align-items:center;height:52px;font-size:1.1rem;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:flex}@media (hover:hover){.letter-btn:hover:not(:disabled){background:#e5e7eb;border-color:#9ca3af}}.letter-btn.selected{color:#111;background:#e5e7eb;border-color:#6b7280}.letter-btn.selected-first{color:#fff;background:#2563eb;border-color:#1d4ed8}.letter-btn.disabled{opacity:.35;cursor:not-allowed}.random-btn{cursor:pointer;color:#374151;background:#f9fafb;border:2px solid #d1d5db;border-radius:8px;padding:10px 24px;font-size:.95rem;font-weight:500;transition:background .15s,border-color .15s}.random-btn:hover:not(:disabled){background:#e5e7eb;border-color:#9ca3af}.random-btn:disabled{opacity:.35;cursor:not-allowed}.todays-game-btn{cursor:pointer;color:#1d4ed8;background:#eff6ff;border:2px solid #1d4ed8;border-radius:8px;padding:10px 24px;font-size:.95rem;font-weight:600;transition:background .15s,border-color .15s,color .15s}.todays-game-btn:hover:not(:disabled){background:#dbeafe;border-color:#1d4ed8}.todays-game-btn:disabled{opacity:.5;cursor:not-allowed}.bottom-actions{align-items:center;gap:12px;display:flex}.start-btn{cursor:pointer;color:#fff;background:#2563eb;border:none;border-radius:8px;padding:12px 36px;font-size:1rem;font-weight:700;transition:background .15s,opacity .15s}.start-btn:hover:not(:disabled){background:#1d4ed8}.start-btn:disabled{opacity:.35;cursor:not-allowed}.word-count{color:#374151;align-items:center;min-height:1.26rem;margin:-14px 0;font-size:.9rem;line-height:1.4;display:flex}.word-count-placeholder{color:#aaa}.word-count-loader{vertical-align:middle;background:linear-gradient(90deg,#e5e7eb 25%,#d1d5db 50%,#e5e7eb 75%) 0 0/200% 100%;border-radius:4px;width:120px;height:.85em;animation:1.2s linear infinite word-count-shimmer;display:inline-block}@keyframes word-count-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.shared-overlay{z-index:100;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.shared-dialog{background:#fff;border-radius:14px;flex-direction:column;gap:20px;width:calc(100% - 40px);max-width:300px;padding:28px 24px 20px;display:flex;box-shadow:0 20px 40px #0003}.shared-text{color:#111;text-align:center;margin:0;font-size:1rem;line-height:1.5}.shared-actions{gap:10px;display:flex}.shared-btn{cursor:pointer;border:2px solid #0000;border-radius:8px;flex:1;padding:11px 8px;font-family:inherit;font-size:.9rem;font-weight:600;transition:background .12s}.shared-cancel{color:#374151;background:#f3f4f6;border-color:#e5e7eb}.shared-cancel:hover{background:#e5e7eb}.shared-confirm{color:#fff;background:#2563eb;border-color:#1d4ed8}.shared-confirm:hover{background:#1d4ed8}
