:root{--bg: #0b0f1a;--surface: #131a2a;--surface-2: #1a2338;--border: rgba(255,255,255,.06);--border-strong: rgba(255,255,255,.12);--text: #e8ecf4;--text-muted: #8b95a9;--accent: #6c8cff;--accent-2: #9b6cff;--accent-dim: rgba(108,140,255,.16);--accent-text: #b9c6ff;--gradient-accent: linear-gradient(135deg, var(--accent), var(--accent-2));--due: var(--accent);--learning: #f5a524;--learning-2: #ffcf6b;--learning-dim: rgba(245,165,36,.16);--learned: #22c55e;--learned-2: #6ee7b7;--learned-dim: rgba(34,197,94,.16);--danger: #ef4444;--danger-2: #f87171;--danger-dim: rgba(239,68,68,.16);--gradient-learning: linear-gradient(135deg, var(--learning), var(--learning-2));--gradient-learned: linear-gradient(135deg, var(--learned), var(--learned-2));--gradient-danger: linear-gradient(135deg, var(--danger), var(--danger-2));--glow-accent: 0 8px 24px -8px rgba(108,140,255,.55);--glow-learned: 0 8px 24px -8px rgba(34,197,94,.45);--glow-danger: 0 8px 24px -8px rgba(239,68,68,.45);--radius-sm: 14px;--radius-lg: 20px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--fs-xs: 12px;--fs-sm: 14px;--fs-md: 16px;--fs-lg: 20px;--fs-xl: 28px;--fs-2xl: 40px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--kb-offset: 0px;--tabbar-h: 56px;--composer-h: 56px;--ease: .15s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}html{height:100%}body{font-family:var(--font);font-size:var(--fs-md);line-height:1.5;color:var(--text);background:radial-gradient(900px 500px at 15% -8%,rgba(108,140,255,.16),transparent 60%),radial-gradient(700px 420px at 100% 0%,rgba(155,108,255,.12),transparent 55%),var(--bg);background-attachment:fixed;min-height:100%;-webkit-font-smoothing:antialiased}button,input,textarea{font-family:inherit;color:inherit}#app{max-width:480px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;position:relative}.screen{flex:1;display:flex;flex-direction:column;padding:calc(var(--sp-4) + var(--safe-t)) var(--sp-4) var(--sp-4)}.screen--tabbed{padding-bottom:calc(var(--tabbar-h) + var(--safe-b) + var(--sp-4))}.screen--composer{padding-bottom:calc(var(--tabbar-h) + var(--composer-h) + var(--safe-b) + var(--sp-4))}h1,h2,h3{font-weight:700;letter-spacing:-.01em}.topbar{display:flex;align-items:center;gap:var(--sp-2);padding-bottom:var(--sp-4)}.topbar h1{font-size:var(--fs-lg);flex:1;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-size:var(--fs-md);font-weight:600;border:none;border-radius:var(--radius-sm);padding:.8rem 1.25rem;cursor:pointer;transition:transform var(--ease),opacity var(--ease),background var(--ease),box-shadow var(--ease);-webkit-tap-highlight-color:transparent;background:none;color:var(--text)}.btn-primary:before,.rating-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#ffffff38,#fff0 55%);pointer-events:none}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.btn-block{width:100%}.btn-primary{background:var(--gradient-accent);color:#fff;box-shadow:var(--glow-accent)}.btn-primary:active{box-shadow:0 4px 14px -6px #6c8cff80}.btn-secondary{background:linear-gradient(160deg,var(--surface-2),var(--surface));border:1px solid var(--border-strong);color:var(--text)}.btn-ghost{background:none;color:var(--accent-text);padding:.5rem .6rem}.btn-danger{background:var(--danger-dim);color:var(--danger)}.btn-icon{width:36px;height:36px;padding:0;border-radius:999px;background:linear-gradient(160deg,var(--surface-2),var(--surface));border:1px solid var(--border);color:var(--text-muted);flex:none}.btn-sm{font-size:var(--fs-sm);padding:.45rem .8rem;border-radius:10px}.card{background:linear-gradient(160deg,var(--surface-2),var(--surface));border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-4);box-shadow:0 12px 32px -20px #0009}.card+.card{margin-top:var(--sp-3)}.list{display:flex;flex-direction:column;gap:var(--sp-2)}.row{background:linear-gradient(160deg,var(--surface-2),var(--surface));border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--sp-3) var(--sp-4);display:flex;align-items:center;gap:var(--sp-3);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--ease),opacity var(--ease),background var(--ease),box-shadow var(--ease)}.row:active{transform:scale(.98);box-shadow:0 0 0 1px var(--accent-dim),var(--glow-accent)}.row-main{flex:1;min-width:0}.row-title{font-weight:600;font-size:var(--fs-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-sub{font-size:var(--fs-sm);color:var(--text-muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-meta{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap;text-align:right}.row-meta-row{display:flex;align-items:center;gap:var(--sp-2)}.dot{width:8px;height:8px;border-radius:50%;flex:none}.dot-new{background:var(--text-muted)}.dot-learning{background:var(--learning)}.dot-learned{background:var(--learned)}.chip-row{display:flex;gap:var(--sp-2);overflow-x:auto;-webkit-overflow-scrolling:touch}.chip-row::-webkit-scrollbar{display:none}.chip{padding:.4rem .9rem;border-radius:999px;border:1px solid var(--border-strong);background:none;color:var(--text-muted);font-size:var(--fs-sm);font-weight:500;cursor:pointer;white-space:nowrap;transition:background var(--ease),color var(--ease),border-color var(--ease)}.chip.active{background:var(--gradient-accent);border-color:transparent;color:#fff;box-shadow:0 6px 16px -8px #6c8cff99}.input,textarea.input{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.7rem .9rem;font-size:var(--fs-md);color:var(--text);width:100%;outline:none;transition:border-color var(--ease),box-shadow var(--ease);-webkit-appearance:none}.input::placeholder{color:var(--text-muted)}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.input-error{border-color:var(--danger)}.input-error:focus{box-shadow:0 0 0 3px var(--danger-dim)}.input-hint{font-size:var(--fs-xs);color:var(--text-muted);margin-top:var(--sp-1)}.input-hint.error{color:var(--danger)}.field-label{display:block;font-size:var(--fs-xs);font-weight:600;color:var(--text-muted);margin-bottom:var(--sp-2);letter-spacing:.02em}.field-block{margin-bottom:var(--sp-4)}textarea.input{resize:vertical;min-height:68px;font-family:inherit}.tabbar{position:fixed;left:0;right:0;bottom:0;margin:0 auto;max-width:480px;display:flex;height:calc(var(--tabbar-h) + var(--safe-b) + var(--kb-offset));padding-bottom:calc(var(--safe-b) + var(--kb-offset));background:linear-gradient(180deg,#131a2ad9,#0b0f1af5);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--border);z-index:40}.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;border:none;color:var(--text-muted);font-size:11px;font-weight:500;cursor:pointer;-webkit-tap-highlight-color:transparent}.tab.active span{background:var(--gradient-accent);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.tab-icon{font-size:20px;line-height:1}.tab:active{opacity:.7}.composer{position:fixed;left:0;right:0;bottom:calc(var(--tabbar-h) + var(--safe-b) + var(--kb-offset));margin:0 auto;max-width:480px;display:flex;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);background:var(--bg);border-top:1px solid var(--border);z-index:30}.composer .input{flex:1}.hero{position:relative;overflow:hidden;background:radial-gradient(120% 140% at 20% -20%,rgba(108,140,255,.25),transparent 60%),radial-gradient(120% 140% at 100% 0%,rgba(155,108,255,.18),transparent 55%),linear-gradient(160deg,var(--surface-2),var(--surface));border:1px solid rgba(108,140,255,.22);border-radius:var(--radius-lg);padding:var(--sp-6) var(--sp-5);text-align:center;margin-bottom:var(--sp-4);box-shadow:0 20px 48px -28px #6c8cff80}.hero-count{font-size:var(--fs-2xl);font-weight:800;letter-spacing:-.02em;background:var(--gradient-accent);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.hero-label{font-size:var(--fs-sm);color:var(--text-muted);margin-top:var(--sp-1);margin-bottom:var(--sp-5)}.segbar{display:flex;height:6px;border-radius:999px;overflow:hidden;background:var(--surface-2);margin-bottom:var(--sp-2)}.segbar-seg{transition:width .3s ease}.segbar-seg.new{background:var(--border-strong)}.segbar-seg.learning{background:var(--gradient-learning)}.segbar-seg.learned{background:var(--gradient-learned)}.seglegend{display:flex;justify-content:space-between;font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:var(--sp-5)}.seglegend b{color:var(--text);font-weight:600}.section-title{font-size:var(--fs-sm);font-weight:600;color:var(--text-muted);margin:var(--sp-2) 0 var(--sp-3)}.empty{text-align:center;padding:var(--sp-8) var(--sp-4);color:var(--text-muted)}.empty-emoji{font-size:2.5rem;margin-bottom:var(--sp-3)}.empty p+p{margin-top:var(--sp-1);font-size:var(--fs-sm)}.row-pending .row-title{color:var(--text-muted)}.row-error{border-color:#ef444459;background:var(--danger-dim);cursor:default}.row-error .row-title{color:var(--text)}.row-error .row-sub{color:var(--danger)}.row-actions{display:flex;gap:var(--sp-2);flex:none}.spinner{width:18px;height:18px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;flex:none}.spinner-lg{width:36px;height:36px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.auth-screen{justify-content:center;min-height:100dvh}.brand{background:var(--gradient-accent);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.auth-title{font-size:var(--fs-xl);font-weight:800;margin-bottom:var(--sp-1)}.auth-sub{color:var(--text-muted);font-size:var(--fs-sm);margin-bottom:var(--sp-6)}.auth-card{padding:var(--sp-5)}.auth-card h2{font-size:var(--fs-lg);margin-bottom:var(--sp-5)}.auth-switch{text-align:center;margin-top:var(--sp-5);font-size:var(--fs-sm);color:var(--text-muted)}.study-progress{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-5)}.progress-bar{flex:1;height:4px;background:var(--surface-2);border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:var(--gradient-accent);border-radius:2px;transition:width .3s ease}.progress-text{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap}.study-word{text-align:center;font-size:var(--fs-2xl);font-weight:700;letter-spacing:-.02em;padding:var(--sp-6) var(--sp-3) var(--sp-5);cursor:pointer;-webkit-tap-highlight-color:transparent;text-shadow:0 0 40px rgba(108,140,255,.35)}.study-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-4);margin-bottom:var(--sp-3);animation:fadeIn .25s ease}.study-section-label{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:var(--sp-2)}.study-section p{line-height:1.6}.word-hi{color:var(--accent-text);font-weight:600}.examples p+p{margin-top:var(--sp-2)}.tap-hint{text-align:center;color:var(--text-muted);font-size:var(--fs-sm);padding:var(--sp-4) 0;cursor:pointer;-webkit-user-select:none;user-select:none}.rating-row{display:flex;gap:var(--sp-2);margin-top:var(--sp-4);animation:fadeIn .25s ease}.rating-btn{flex:1;flex-direction:column;padding:.7rem .5rem;gap:2px;color:#fff}.rating-btn-sub{font-size:11px;font-weight:600;opacity:.9}.rating-again{background:var(--gradient-danger);box-shadow:var(--glow-danger)}.rating-good{background:var(--gradient-accent);box-shadow:var(--glow-accent)}.rating-easy{background:var(--gradient-learned);box-shadow:var(--glow-learned)}.rating-btn:active{box-shadow:none}.complete-screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--sp-3);padding:var(--sp-8) var(--sp-4)}.complete-screen .big-emoji{font-size:3.5rem}.complete-screen h2{font-size:var(--fs-xl)}.complete-screen p{color:var(--text-muted)}.detail-word{font-size:var(--fs-xl);font-weight:800;letter-spacing:-.02em;margin-bottom:var(--sp-1)}.detail-field{margin-bottom:var(--sp-4)}.detail-field-head{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2)}.detail-field-label{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);flex:1}.detail-field-body{font-size:var(--fs-md);line-height:1.6;cursor:text;border-radius:var(--radius-sm);padding:var(--sp-1) 0}.detail-field-body:active{opacity:.75}.regen-icon{display:inline-block;font-size:16px;line-height:1}.regen-icon.spinning{animation:spin .7s linear infinite}.detail-meta{font-size:var(--fs-xs);color:var(--text-muted);padding-top:var(--sp-3);margin-top:var(--sp-2);border-top:1px solid var(--border)}.detail-meta b{color:var(--text);font-weight:600}.save-bar{position:sticky;bottom:0;display:flex;gap:var(--sp-2);padding:var(--sp-3) 0 calc(var(--sp-3) + var(--safe-b));margin-top:auto;background:linear-gradient(to top,var(--bg) 70%,transparent)}.save-bar .btn{flex:1}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:50;animation:fadeIn .15s ease}.sheet{position:fixed;left:0;right:0;bottom:0;margin:0 auto;max-width:480px;background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border);border-bottom:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--sp-2) var(--sp-2) calc(var(--sp-2) + var(--safe-b));z-index:51;animation:slideUp .2s ease;box-shadow:0 -20px 48px -24px #0009}.sheet-action{width:100%;display:flex;align-items:center;gap:var(--sp-3);background:none;border:none;color:var(--text);font-size:var(--fs-md);font-weight:500;padding:var(--sp-4);border-radius:var(--radius-sm);cursor:pointer;text-align:left}.sheet-action:active{background:var(--surface-2)}.sheet-action.danger{color:var(--danger)}.sheet-action.cancel{color:var(--text-muted);justify-content:center;margin-top:var(--sp-1)}.toast-stack{position:fixed;left:0;right:0;bottom:calc(var(--tabbar-h) + var(--safe-b) + var(--kb-offset) + var(--sp-3));display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);z-index:60;pointer-events:none}.toast-stack.toast-stack--flush{bottom:calc(var(--safe-b) + var(--kb-offset) + var(--sp-3))}.toast-stack.toast-stack--above-savebar{bottom:calc(var(--safe-b) + var(--kb-offset) + 76px)}.toast{display:flex;align-items:center;gap:var(--sp-2);background:linear-gradient(160deg,var(--surface-2),var(--surface));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-strong);color:var(--text);padding:.6rem .7rem .6rem 1rem;border-radius:999px;font-size:var(--fs-sm);font-weight:500;max-width:90vw;pointer-events:auto;animation:slideUp .2s ease;box-shadow:0 8px 28px -6px #00000080}.toast-icon{flex:none;font-size:15px}.toast-msg{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast-action{flex:none;background:none;border:none;color:var(--accent-text);font-weight:700;font-size:var(--fs-sm);padding:.3rem .5rem;cursor:pointer}.toast-error{border-color:#ef444459;box-shadow:0 8px 28px -6px #ef444459}.toast-success{border-color:#22c55e4d;box-shadow:0 8px 28px -6px #22c55e4d}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9998;gap:var(--sp-4)}.loading-overlay p{color:var(--text);font-size:var(--fs-md);font-weight:500}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
