*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}:root{--bg-primary: #FEFCF3;--bg-secondary: #F5F0E1;--text-primary: #1A1A1A;--text-secondary: #666;--button-bg: #fff;--button-text: #1A1A1A;--button-border: #ddd;--dice-black-bg: #2D2D2D;--dice-black-text: #FFF;--dice-red-bg: #C41E3A;--dice-red-text: #FFF;--success: #2E7D32;--warning: #F9A825;--error: #C62828;--accent: #1565C0;--bonus-glow: #FFD700;--border: #ddd}[data-theme=dark]{--bg-primary: #181A1B;--bg-secondary: #23272A;--text-primary: #F5F6F7;--text-secondary: #B0B3B8;--button-bg: #23272A;--button-text: #F5F6F7;--button-border: #444;--dice-black-bg: #23272A;--dice-black-text: #F5F6F7;--dice-red-bg: #23272A;--dice-red-text: #F5F6F7;--success: #8BC34A;--warning: #FFD54F;--error: #FF5252;--accent: #4F8FD8;--bonus-glow: #FFD700;--border: #444}[data-theme=dark] .die,[data-theme=dark] .results-dice-container .results-die{background-color:#fff;color:#000;border:1px solid rgb(0 0 0 / 8%);box-shadow:0 2px 4px #0000001f}[data-theme=dark] .die.red,[data-theme=dark] .results-dice-container .results-die.red{background-color:#fff;color:#c41e3a;border:1px solid rgb(0 0 0 / 8%);box-shadow:0 0 10px var(--bonus-glow),0 2px 4px #0000001f}[data-theme=dark] .feedback-message.success{background-color:#8bc34a1f;color:var(--text-primary);border:1px solid rgb(139 195 74 / 22%)}[data-theme=dark] .feedback-message.error{background-color:#f443361f;color:var(--text-primary);border:1px solid rgb(244 67 54 / 22%)}[data-theme=dark] .modal-close{color:var(--text-primary)}#themeToggle{padding:12px;min-width:48px}#themeToggle .theme-icon{font-size:1.25rem;line-height:1}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);font-size:18px;min-height:100vh;min-height:-webkit-fill-available;min-height:stretch;display:flex;flex-direction:column;align-items:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{height:100vh;height:-webkit-fill-available;height:stretch}.container{max-width:600px;width:100%;padding:16px;padding-bottom:env(safe-area-inset-bottom,16px)}header{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:2px solid var(--text-primary);margin-bottom:16px}header h1{font-size:1.5rem;font-weight:700;letter-spacing:-.5px}.header-buttons{display:flex;gap:8px}.icon-btn{background:none;border:none;color:var(--text-primary);cursor:pointer;font-size:1rem;padding:12px 16px;min-width:48px;min-height:48px;border-radius:8px;transition:background-color .2s;display:flex;align-items:center;justify-content:center;gap:6px;font-weight:500}.icon-btn:hover,.icon-btn:active{background-color:var(--bg-secondary)}.icon-btn span{font-size:1.25rem}.screen{display:none}.screen.active{display:block}.logo-dice{display:flex;justify-content:center;gap:6px;margin-bottom:24px}.logo-die{width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;border-radius:8px;background-color:var(--dice-black-bg);color:var(--dice-black-text);border:2px solid rgb(255 255 255 / 20%);box-shadow:0 2px 4px #0003}.logo-die.red{background-color:var(--dice-red-bg);color:var(--dice-red-text)}.welcome-content{text-align:center;padding:24px 0}.welcome-content h2{font-size:2rem;margin-bottom:8px}.welcome-content p{color:var(--text-secondary);margin-bottom:24px}.welcome-content .day-label{font-size:.875rem;font-weight:600;color:var(--accent);margin-bottom:8px;text-transform:uppercase;letter-spacing:1px}.stats-preview{display:flex;justify-content:center;gap:32px;margin-bottom:32px}.stat-item{text-align:center}.stat-value{font-size:2rem;font-weight:700}.stat-label{font-size:.875rem;color:var(--text-secondary);text-transform:uppercase}.play-btn{background-color:var(--text-primary);color:var(--bg-primary);border:none;padding:18px 52px;font-size:1.35rem;font-weight:600;border-radius:8px;cursor:pointer;transition:transform .1s,box-shadow .1s;min-height:56px}.play-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.play-btn:active{transform:translateY(0)}#viewResultsBtn{color:#fff}.timer-display{text-align:center;font-size:2.5rem;font-weight:700;font-variant-numeric:tabular-nums;margin-bottom:16px}.timer-display.warning{color:var(--warning)}.timer-display.danger{color:var(--error);animation:pulse .5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.dice-container{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:24px;padding:16px;background-color:var(--bg-secondary);border-radius:12px}.die{width:56px;height:56px;display:flex;align-items:center;justify-content:center;font-size:1.75rem;font-weight:700;border-radius:8px;background-color:var(--dice-black-bg);color:var(--dice-black-text);-webkit-user-select:none;user-select:none;cursor:pointer;transition:all .1s;touch-action:manipulation;border:2px solid rgb(255 255 255 / 20%);box-shadow:0 2px 4px #0003;transform-origin:center}.die.animate-drop{animation:die-drop .4s cubic-bezier(.175,.885,.32,1.275) both}@keyframes die-drop{0%{opacity:0;transform:translateY(-40px) scale(.5) rotate(-15deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}.die:hover{transform:scale(1.05);box-shadow:0 4px 8px #0000004d}.die:active{transform:scale(.98);box-shadow:0 1px 2px #0003}.die.red{background-color:var(--dice-red-bg);color:var(--dice-red-text);box-shadow:0 0 12px var(--bonus-glow)}.die.used{opacity:.4}.die.backspace{background-color:var(--bg-primary);color:var(--text-secondary);border:2px dashed var(--text-secondary);box-shadow:none;font-size:1.5rem}.die.backspace:hover,.die.backspace:active{transform:none;box-shadow:none}[data-theme=dark] .die.backspace{background-color:#fff;color:#666;border-color:#999}.results-dice-container{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0;padding:12px;background-color:var(--bg-secondary);border-radius:12px;place-content:flex-start center}.results-dice-header{width:100%;font-size:.875rem;font-weight:600;color:var(--text-secondary);margin-bottom:8px;text-align:center}.results-dice-container .results-die{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700;border-radius:6px;background-color:var(--dice-black-bg);color:var(--dice-black-text);-webkit-user-select:none;user-select:none;border:2px solid rgb(255 255 255 / 20%);box-shadow:0 2px 4px #0003}.results-dice-container .results-die.red{background-color:var(--dice-red-bg);color:var(--dice-red-text);box-shadow:0 0 12px var(--bonus-glow)}.shuffle-btn{display:block;margin:8px auto 16px;padding:10px 20px;font-size:1rem;font-weight:500;background:none;border:1px solid var(--text-secondary);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .2s;min-height:44px}.shuffle-btn:hover,.shuffle-btn:active{background-color:var(--bg-secondary);border-color:var(--text-primary);color:var(--text-primary)}.input-row{display:flex;gap:8px;margin-bottom:16px}.input-wrapper{flex:1;position:relative;display:flex;align-items:center}.input-wrapper .word-input{width:100%;padding-right:40px}.clear-btn{position:absolute;right:8px;width:28px;height:28px;padding:0;background:var(--bg-secondary);border:none;border-radius:50%;font-size:1.25rem;line-height:1;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.clear-btn:hover,.clear-btn:active{background:var(--text-secondary);color:#fff}.clear-btn.hidden{display:none}.word-input{flex:1;padding:14px 18px;font-size:1.5rem;border:2px solid var(--text-primary);border-radius:8px;text-transform:uppercase;letter-spacing:2px}.word-input:focus{outline:none;border-color:var(--accent)}.word-input.error{border-color:var(--error);animation:shake .3s}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.submit-btn{padding:14px 28px;font-size:1.35rem;font-weight:600;background-color:var(--accent);color:#fff;border:none;border-radius:8px;cursor:pointer;min-height:52px;touch-action:manipulation}.submit-btn:hover,.submit-btn:active{opacity:.9}.feedback-message{text-align:center;padding:8px;margin-bottom:16px;border-radius:8px;font-weight:500;min-height:40px}.feedback-message.success{background-color:#e8f5e9;color:var(--success)}.feedback-message.error{background-color:#ffebee;color:var(--error)}.score-display{text-align:center;margin-bottom:16px}.score-value{font-size:3rem;font-weight:700}.score-label{font-size:.875rem;color:var(--text-secondary);text-transform:uppercase}.words-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px;max-height:200px;overflow-y:auto;padding:16px;background-color:var(--bg-secondary);border-radius:12px}.word-group{margin-bottom:12px}.word-group-header{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;margin-bottom:4px;padding-bottom:4px;border-bottom:1px solid #ddd}.word-group-header.complete{color:var(--success)}.word-item{display:inline-block;padding:4px 8px;margin:2px;background-color:var(--button-bg);color:var(--text-primary);border-radius:4px;font-size:.875rem;font-weight:500}.results-content{text-align:center;padding:24px 0}.results-content h2{font-size:1.5rem;margin-bottom:24px}.final-score{font-size:4rem;font-weight:700;margin-bottom:8px}.score-breakdown{margin:24px 0;padding:16px;background-color:var(--bg-secondary);border-radius:12px;text-align:left}.breakdown-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #ddd}.breakdown-row:last-child{border-bottom:none;font-weight:700}.share-btn{background-color:var(--success);color:#fff;border:none;padding:16px 32px;font-size:1.125rem;font-weight:600;border-radius:8px;cursor:pointer;margin-bottom:16px;touch-action:manipulation}.share-btn:hover,.share-btn:active{opacity:.9}.share-preview{background-color:#1a1a1a;color:#fff;padding:16px;border-radius:8px;font-family:monospace;font-size:.875rem;white-space:pre-line;text-align:left;margin-top:16px}.next-puzzle{margin-top:24px;margin-bottom:24px;padding:12px 16px;background-color:var(--bg-secondary);border-radius:8px;font-size:.875rem;color:var(--text-secondary);text-align:center}.results-actions,.welcome-actions{display:flex;justify-content:center;gap:12px;margin-top:16px;flex-wrap:wrap}#calendarBackBtn,#installBtn,#pastPuzzleWelcomeBtn,#installBtnWelcome{margin:0;color:var(--text-primary);background-color:var(--bg-secondary);border:1px solid var(--border);width:auto;padding:10px 20px}#calendarBackBtn:hover,#installBtn:hover,#pastPuzzleWelcomeBtn:hover,#installBtnWelcome:hover{background-color:var(--border)}.icon-btn.hidden{display:none}.missed-word-container{margin:16px 0;padding:16px;background-color:var(--bg-secondary);border:2px dashed var(--accent);border-radius:12px;text-align:center}.missed-word-container.hidden{display:none}.missed-word-label{font-size:.875rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;margin-bottom:8px}.missed-word-value{font-size:1.5rem;font-weight:700;color:var(--accent);letter-spacing:2px}.missed-word-item{display:inline-block;white-space:nowrap}.bonus-prompt{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:100}.bonus-prompt.hidden{display:none}.bonus-card{background:var(--bg-primary);padding:32px;border-radius:16px;text-align:center;max-width:400px;margin:16px;animation:slide-up .3s ease-out}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.bonus-card h2{font-size:1.5rem;margin-bottom:16px}.bonus-card p{color:var(--text-secondary);margin-bottom:8px}.bonus-card .warning-text{color:var(--error);font-weight:600;margin:16px 0}.bonus-buttons{display:flex;gap:12px;justify-content:center;margin-top:24px}.bonus-accept{background-color:var(--dice-red-bg);color:#fff;border:none;padding:14px 28px;font-size:1rem;font-weight:600;border-radius:8px;cursor:pointer;min-height:48px;touch-action:manipulation}.bonus-accept:active{opacity:.9}.bonus-decline{background-color:transparent;border:2px solid var(--text-primary);padding:14px 28px;font-size:1rem;font-weight:600;border-radius:8px;cursor:pointer;min-height:48px;touch-action:manipulation}.bonus-decline:active{background-color:var(--bg-secondary)}.modal{position:fixed;inset:0;background:#0000007f;display:flex;align-items:center;justify-content:center;z-index:100}.modal.hidden{display:none}.modal-content{background:var(--bg-primary);padding:24px;border-radius:16px;max-width:400px;width:90%}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:8px;margin:-8px -8px -8px 0}.modal-close:active{background-color:var(--bg-secondary)}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--text-primary);color:var(--bg-primary);padding:12px 24px;border-radius:8px;font-weight:500;z-index:200;animation:fade-in-out 2s ease-in-out}.toast.hidden{display:none}@keyframes fade-in-out{0%,to{opacity:0}10%,90%{opacity:1}}.help-content{text-align:left;max-height:60vh;overflow-y:auto}.help-content h4{margin-top:16px;margin-bottom:8px;font-size:1rem}.help-content ul{margin-left:20px;margin-bottom:8px}.help-content li{margin-bottom:4px;color:var(--text-secondary)}.help-content p{color:var(--text-secondary);font-size:1rem}.help-content .help-note{font-style:italic;margin-bottom:4px}.scoring-table{width:100%;border-collapse:collapse;margin:8px 0 12px;font-size:1rem}.scoring-table th,.scoring-table td{padding:6px 12px;text-align:center;border-bottom:1px solid var(--border)}.scoring-table th{background-color:var(--bg-secondary);font-weight:600;color:var(--text-primary)}.scoring-table td{color:var(--text-secondary)}.bonus-word{background-color:#ffebee;color:#7a1024;border:1px solid var(--dice-red-bg)}.words-summary{margin:16px 0;padding:16px;background-color:var(--bg-secondary);border-radius:12px;text-align:left;max-height:200px;overflow-y:auto}.words-summary h4{margin-bottom:8px;font-size:.875rem;color:var(--text-secondary);text-transform:uppercase}.words-summary-list{display:flex;flex-wrap:wrap;gap:6px}.words-summary-list span{padding:4px 8px;background-color:var(--button-bg);color:var(--text-primary);border-radius:4px;font-size:.75rem;font-weight:500}.words-summary-list span.bonus-word{background-color:#ffebee;color:#7a1024;border:1px solid var(--dice-red-bg)}[data-theme=dark] .bonus-word,[data-theme=dark] .words-summary-list span.bonus-word{background-color:#4a2028;color:#ffdde3;border:1px solid var(--error)}@media(max-width:480px){.die{width:52px;height:52px;font-size:1.25rem}.timer-display{font-size:2rem}.score-value{font-size:2.5rem}.play-btn{width:100%;padding:16px 32px}.logo-die{width:36px;height:36px;font-size:1.125rem;border-radius:6px}.logo-dice{gap:4px}.modal-content{width:95%;max-height:90vh;overflow-y:auto}.words-grid{max-height:150px}}.compact-mode .timer-display{font-size:1.4rem;margin-bottom:6px}.compact-mode .dice-container{padding:8px;gap:6px;margin-bottom:8px}.compact-mode .die{width:40px;height:40px;font-size:1.1rem}.compact-mode .die.backspace{font-size:1rem}.compact-mode .shuffle-btn{display:none}.compact-mode .input-row{margin-bottom:6px}.compact-mode .word-input{padding:8px 12px;font-size:1.2rem}.compact-mode .input-wrapper .word-input{padding-right:34px}.compact-mode .submit-btn{padding:8px 18px;font-size:1.1rem;min-height:40px}.compact-mode .feedback-message{min-height:0;padding:4px;margin-bottom:4px;font-size:.85rem}.compact-mode .score-display{margin-bottom:4px}.compact-mode .score-value{font-size:1.8rem}.compact-mode #wordsFound .word-group-header{font-size:.65rem}.compact-mode #wordsFound .word-item{font-size:.75rem}@media(pointer:coarse){body{overscroll-behavior-y:contain}}.archive-bar{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;background-color:var(--bg-secondary);border-radius:8px;margin-bottom:8px;font-size:.8rem}.archive-bar.hidden{display:none}.archive-back-link{color:var(--accent);text-decoration:none;font-weight:500}.archive-back-link:hover{text-decoration:underline}.archive-date-label{color:var(--text-secondary)}.archive-content{padding:8px 0}.calendar-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.calendar-nav-btn{background:none;border:1px solid var(--bg-secondary);border-radius:6px;width:32px;height:32px;font-size:1.2rem;cursor:pointer;color:var(--text-primary);display:flex;align-items:center;justify-content:center}.calendar-nav-btn:hover:not(:disabled){background-color:var(--bg-secondary)}.calendar-nav-btn:disabled{opacity:.3;cursor:default}.calendar-month-label{font-weight:600;font-size:.95rem}.calendar-grid,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-day-header{text-align:center;font-size:.7rem;font-weight:600;color:var(--text-secondary);padding:4px 0}.calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.8rem;border-radius:8px;cursor:pointer;position:relative;font-weight:500}.calendar-day.empty{cursor:default}.calendar-day.disabled{color:var(--text-secondary);opacity:.35;cursor:default}.calendar-day.today{opacity:.5;font-weight:700;border:1.5px solid var(--text-secondary)}.calendar-day.today.completed{opacity:1;border-color:var(--success);cursor:pointer}.calendar-day.completed{background-color:#e8f5e9;color:var(--success);flex-direction:column;gap:0}.calendar-day-score{font-size:.5rem;font-weight:400;opacity:.75;line-height:1}.calendar-day.completed:hover{background-color:#c8e6c9}.calendar-day.in-progress{background-color:#fff8e1;color:#e65100}.calendar-day.in-progress:hover{background-color:#ffecb3}.calendar-day.available:hover{background-color:var(--bg-secondary)}.calendar-legend{display:flex;justify-content:center;gap:16px;margin-top:12px;font-size:.7rem;color:var(--text-secondary)}.legend-item{display:flex;align-items:center;gap:4px}.legend-dot{width:10px;height:10px;border-radius:3px;display:inline-block}.legend-dot.completed{background-color:#c8e6c9}.legend-dot.in-progress{background-color:#ffecb3}.legend-dot.available{background-color:var(--bg-secondary);border:1px solid #ccc}
