.navbar{background:var(--color-card);padding:4px 0;padding-bottom:env(safe-area-inset-bottom,4px);z-index:100;border-top:1px solid #e2e8f0;justify-content:center;display:flex;position:relative;bottom:0;left:0;right:0}.navbar-tab{color:#94a3b8;max-width:160px;font-size:.75rem;font-family:var(--font);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 0;transition:color .15s;display:flex}.navbar-tab.active{color:var(--color-primary)}.navbar-icon{font-size:1.4rem}.navbar-label{font-weight:600}.navbar-version{right:8px;bottom:env(safe-area-inset-bottom,4px);color:#cbd5e1;font-size:.55rem;font-family:var(--font);position:absolute}.reward-bar{background:var(--color-card);border-radius:var(--radius);align-items:center;gap:.75rem;width:100%;max-width:360px;margin-bottom:.75rem;padding:.5rem .75rem;display:flex;box-shadow:0 1px 4px #0000000f}.reward-items{white-space:nowrap;gap:.5rem;font-size:.9rem;font-weight:600;display:flex}.reward-item{align-items:center;gap:.15rem;display:flex}.reward-progress{flex:1;align-items:center;gap:.4rem;display:flex}.reward-progress-bar{background:#e2e8f0;border-radius:3px;flex:1;height:6px;overflow:hidden}.reward-progress-fill{background:#fbbf24;border-radius:3px;height:100%;transition:width .3s}.reward-progress-label{color:#94a3b8;text-align:right;min-width:2.2rem;font-size:.7rem;font-weight:600}.reward-popup-overlay{z-index:200;background:#0006;justify-content:center;align-items:center;animation:.2s reward-fade-in;display:flex;position:fixed;inset:0}@keyframes reward-fade-in{0%{opacity:0}to{opacity:1}}.reward-popup{background:var(--color-card);border-radius:var(--radius);text-align:center;padding:2rem 2.5rem;animation:.35s cubic-bezier(.34,1.56,.64,1) reward-pop;box-shadow:0 8px 32px #00000026}@keyframes reward-pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.reward-popup-emoji{margin-bottom:.5rem;font-size:4rem;animation:.6s .3s both reward-bounce}@keyframes reward-bounce{0%{transform:scale(1)}40%{transform:scale(1.3)}70%{transform:scale(.95)}to{transform:scale(1)}}.reward-popup-title{color:var(--color-text);margin-bottom:.25rem;font-size:1.5rem;font-weight:700}.reward-popup-subtitle{color:#64748b;margin-bottom:1.5rem;font-size:1rem}.reward-popup-button{font-size:1.1rem;font-weight:600;font-family:var(--font);border-radius:var(--radius);background:var(--color-primary);color:#fff;cursor:pointer;border:none;min-height:48px;padding:.75rem 2.5rem}.quiz{padding-top:1rem;padding:var(--spacing);flex-direction:column;justify-content:flex-start;align-items:center;display:flex}.quiz-card{background:var(--color-card);border-radius:var(--radius);border:3px solid #0000;width:100%;max-width:360px;padding:1.5rem 1.25rem;transition:border-color .2s;box-shadow:0 2px 12px #00000014}.quiz-card--correct{border-color:var(--color-correct)}.quiz-question{text-align:center;color:var(--color-text);justify-content:center;align-items:center;gap:.3rem;margin-bottom:.75rem;font-size:3.5rem;font-weight:700;display:flex;overflow:hidden}.quiz-op{color:#94a3b8;font-size:2.5rem}.quiz-factor{display:inline-block}.quiz-factor--left{animation:.3s cubic-bezier(.22,1,.36,1) both slide-from-left}.quiz-factor--right{animation:.3s cubic-bezier(.22,1,.36,1) both slide-from-right}@keyframes slide-from-left{0%{opacity:0;transform:translate(-120px)}55%{opacity:1;transform:translate(0)}65%{transform:translate(6px)rotate(3deg)}75%{transform:translate(-4px)rotate(-2deg)}85%{transform:translate(2px)rotate(1deg)}to{transform:translate(0)rotate(0)}}@keyframes slide-from-right{0%{opacity:0;transform:translate(120px)}55%{opacity:1;transform:translate(0)}65%{transform:translate(-6px)rotate(-3deg)}75%{transform:translate(4px)rotate(2deg)}85%{transform:translate(-2px)rotate(-1deg)}to{transform:translate(0)rotate(0)}}.quiz-answer{align-items:center;min-width:1.2em;display:inline-flex}.quiz-answer--wrong{color:var(--color-wrong)}.quiz-cursor{color:var(--color-primary);font-weight:300;animation:1s ease-in-out infinite blink;position:relative;top:-.075em}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.quiz-result-row{text-align:center;min-height:1.8rem;margin-bottom:.5rem}.quiz-result{align-items:center;gap:.4rem;font-size:1.1rem;font-weight:700;display:inline-flex}.quiz-result--correct{color:var(--color-correct)}.quiz-result--wrong{color:var(--color-wrong)}.quiz-result-icon{font-size:1.3rem}.quiz-time-inline{color:#64748b;font-size:.8rem;font-weight:400}.quiz-numpad{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.numpad-btn{aspect-ratio:1;font-size:1.5rem;font-weight:600;font-family:var(--font);border-radius:var(--radius);color:var(--color-text);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#f1f5f9;border:none;transition:background .1s}.numpad-btn:active{background:#cbd5e1}.numpad-btn:disabled{opacity:.3;cursor:default}.numpad-btn--submit{color:#16a34a;background:#dcfce7}.numpad-btn--submit:active{background:#bbf7d0}.numpad-btn--delete{color:#dc2626;background:#ffe4e6}.numpad-btn--delete:active{background:#fecdd3}.row-selector{padding:var(--spacing);padding-bottom:80px}.row-selector-title{color:var(--color-text);margin:0 0 .25rem;font-size:1.3rem;font-weight:700}.row-selector-hint{color:#64748b;margin:0 0 1.25rem;font-size:.9rem}.row-selector-grid{grid-template-columns:repeat(5,1fr);gap:.5rem;margin-bottom:1rem;display:grid}.row-btn{font-size:1.1rem;font-weight:600;font-family:var(--font);border-radius:var(--radius);background:var(--color-card);color:var(--color-text);cursor:pointer;border:2px solid #e2e8f0;min-height:48px;padding:.75rem 0;transition:all .15s}.row-btn--active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.row-selector-actions{gap:.5rem;display:flex}.row-action{font-size:.95rem;font-weight:600;font-family:var(--font);border-radius:var(--radius);background:var(--color-card);color:var(--color-text);cursor:pointer;border:2px solid #e2e8f0;flex:1;min-height:44px;padding:.6rem}.stats{padding:var(--spacing);padding-bottom:80px}.stats-import-banner{color:#166534;border-radius:var(--radius);background:#dcfce7;margin-bottom:.75rem;padding:.6rem 1rem;font-size:.9rem;font-weight:600}.stats-title{color:var(--color-text);margin:0 0 .25rem;font-size:1.3rem;font-weight:700}.stats-overview{gap:.5rem;margin-bottom:1rem;display:flex}.stats-overview-item{background:var(--color-card);border-radius:var(--radius);flex-direction:column;flex:1;align-items:center;padding:.6rem .25rem;display:flex;box-shadow:0 1px 4px #0000000f}.stats-overview-value{color:var(--color-text);font-size:1.2rem;font-weight:700}.stats-overview-label{color:#94a3b8;font-size:.65rem;font-weight:600}.stats-summary{color:#64748b;margin:0 0 1rem;font-size:.9rem}.stats-grid{grid-template-columns:repeat(11,1fr);gap:2px;margin-bottom:1rem;display:grid}.stats-cell{aspect-ratio:1;cursor:help;-webkit-user-select:none;user-select:none;color:var(--color-text);border-radius:4px;justify-content:center;align-items:center;font-size:.7rem;font-weight:600;display:flex}.stats-header{color:#475569;cursor:default;background:#e0ecf4;font-size:.65rem;font-weight:800}.stats-cell--new{color:#94a3b8;background:#f1f5f9}.stats-legend{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.stats-legend-item{color:#64748b;align-items:center;gap:.35rem;font-size:.8rem;display:flex}.stats-dot{border-radius:3px;width:12px;height:12px}.stats-dot--mastered-border{background:#f1f5f9;border:1.5px solid #16a34a}.stats-reset{text-align:center;border-top:1px solid #e2e8f0;margin-top:2rem;padding-top:1.5rem}.stats-reset-confirm p{color:var(--color-text);margin:0 0 .75rem;font-size:.9rem}.stats-info{color:#64748b;margin-top:1.5rem;font-size:.85rem}.stats-info strong{color:var(--color-text)}.stats-info p{margin:.25rem 0 0}.stats-reset-actions{justify-content:center;gap:.5rem;display:flex}.stats-reset-btn{font-size:.85rem;font-weight:600;font-family:var(--font);border-radius:var(--radius);background:var(--color-card);color:#64748b;cursor:pointer;border:1px solid #e2e8f0;padding:.5rem 1rem}.stats-transfer{color:#64748b;border-top:1px solid #e2e8f0;margin-top:2rem;padding-top:1.5rem;font-size:.85rem}.stats-transfer strong{color:var(--color-text)}.stats-transfer-desc{margin:.25rem 0 .5rem}.stats-transfer-btn{font-size:.85rem;font-weight:600;font-family:var(--font);border-radius:var(--radius);background:var(--color-card);color:#64748b;cursor:pointer;border:1px solid #e2e8f0;min-width:180px;padding:.5rem 1rem}.stats-transfer-btn--primary{background:var(--color-primary,#3b82f6);color:#fff;border-color:var(--color-primary,#3b82f6)}.stats-transfer-btn:disabled{opacity:.4;cursor:default}.stats-import-form{gap:.5rem;width:100%;max-width:400px;display:flex}.stats-import-field{font-size:.85rem;font-family:var(--font);border-radius:var(--radius);background:var(--color-card);color:var(--color-text);border:1px solid #e2e8f0;flex:1;padding:.5rem .75rem}.stats-import-confirm p{color:var(--color-text);margin:.5rem 0 .75rem;font-size:.9rem}.stats-import-message{margin:.25rem 0 0;font-size:.85rem}.stats-import-message--success{color:#16a34a}.stats-import-message--error{color:var(--color-wrong,#ef4444)}.stats-reset-btn--danger{background:var(--color-wrong);color:#fff;border-color:var(--color-wrong)}:root{--color-primary:#4f46e5;--color-correct:#22c55e;--color-wrong:#ef4444;--color-bg:#f8fafc;--color-card:#fff;--color-text:#1e293b;--radius:12px;--spacing:16px;--font:"Segoe UI", system-ui, -apple-system, sans-serif}*,:before,:after{box-sizing:border-box}html,body{background:var(--color-bg);color:var(--color-text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;padding:0}.app{max-width:500px;margin:0 auto}.app-content{padding-bottom:72px}.import-overlay{z-index:100;padding:var(--spacing);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.import-dialog{background:var(--color-card);border-radius:var(--radius);width:100%;max-width:360px;padding:1.5rem;box-shadow:0 4px 24px #00000026}.import-dialog p{color:var(--color-text);margin:0 0 1rem;font-size:.95rem}.import-dialog-actions{justify-content:flex-end;gap:.5rem;display:flex}.import-dialog-btn{font-size:.85rem;font-weight:600;font-family:var(--font);border-radius:var(--radius);background:var(--color-card);color:#64748b;cursor:pointer;border:1px solid #e2e8f0;padding:.5rem 1rem}.import-dialog-btn--primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}
