@import "https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#15120f;--bg-rgb:21, 18, 15;--surface:#26201bc7;--surface-rgb:38, 32, 27;--surface-solid:#221d18;--surface2:#2d2620;--surface2-rgb:45, 38, 32;--accent:#f5a524;--accent-rgb:245, 165, 36;--accent-hover:#e8961a;--accent-deep:#d97706;--accent-glow:#f5a5244d;--on-accent:#1a1410;--accent-2:#fb7a5c;--accent-2-rgb:251, 122, 92;--text:#f4ede4;--text-muted:#a8998a;--correct:#34d399;--correct-glow:#34d3994d;--wrong:#f87171;--wrong-glow:#f871714d;--white-04:#ffffff0a;--white-05:#ffffff0d;--white-06:#ffffff0f;--white-08:#ffffff14;--white-10:#ffffff1a;--white-12:#ffffff1f;--white-14:#ffffff24;--white-18:#ffffff2e;--white-20:#fff3;--white-28:#ffffff47;--radius:12px;--radius-sm:9px;--radius-card:22px;--tabbar-h:4rem;--safe-bottom:env(safe-area-inset-bottom,0px);--shadow:0 8px 28px #00000061;--shadow-sm:0 3px 12px #00000042;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1)}html{-webkit-tap-highlight-color:transparent}body{background:var(--bg);color:var(--text);min-height:100dvh;font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;overflow-x:hidden}a{color:var(--accent);text-decoration:none}.app{flex-direction:column;max-width:480px;height:100dvh;min-height:100dvh;margin:0 auto;display:flex;position:relative;overflow:hidden}.app-bg{z-index:-1;background:radial-gradient(ellipse 80% 50% at 50% -10%, rgba(var(--accent-rgb), .18), transparent), radial-gradient(ellipse 60% 40% at 100% 80%, rgba(var(--surface2-rgb), .5), transparent), radial-gradient(ellipse 50% 30% at 0% 60%, rgba(var(--accent-2-rgb), .07), transparent), var(--bg);position:fixed;inset:0}.header{padding:.6rem .75rem;padding-top:calc(.6rem + env(safe-area-inset-top,0px));background:rgba(var(--bg-rgb), .75);-webkit-backdrop-filter:blur(16px)saturate(1.4);border-bottom:1px solid var(--white-06);z-index:100;flex-shrink:0;justify-content:space-between;align-items:center;gap:.5rem;display:flex;overflow:visible}.logo{color:var(--text);min-width:0;transition:transform .2s var(--ease-out);flex-shrink:0;align-items:center;gap:.4rem;font-size:.95rem;font-weight:700;display:flex}.logo:active{transform:scale(.97)}.logo-mark{flex-shrink:0;width:1.4em;height:1.4em;font-size:1.15rem;line-height:1;display:block}.logo-flag{font-size:1.2rem;animation:3s ease-in-out infinite flagWave}@keyframes flagWave{0%,to{transform:rotate(0)}25%{transform:rotate(-6deg)}75%{transform:rotate(6deg)}}.logo-text{background:linear-gradient(135deg, var(--text) 40%, var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.header-actions{flex:1;justify-content:flex-end;align-items:center;gap:.25rem;min-width:0;display:flex;overflow:visible}.header-start{flex-shrink:0;align-items:center;gap:.35rem;min-width:0;display:flex}.header-badges{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.header-lang-toggle{border:1px solid var(--white-10);background:var(--white-04);cursor:pointer;transition:background .2s, border-color .2s, transform .2s var(--ease-out);border-radius:999px;justify-content:center;align-items:center;padding:.25rem .45rem;display:flex}.header-lang-toggle:hover{background:var(--white-08);border-color:var(--white-18)}.header-lang-toggle:active{transform:scale(.95)}.header-streak{color:#fdba74;background:#fb923c1a;border:1px solid #fb923c40;border-radius:999px;flex-shrink:0;align-items:center;gap:.2rem;padding:.25rem .55rem;font-size:.82rem;font-weight:700;display:flex}.streak-icon{font-size:.95rem;line-height:1}.streak-count{text-align:center;min-width:.75rem}.header-nav{flex-shrink:0;justify-content:flex-end;align-items:center;gap:.25rem;min-width:0;display:flex}.header-account{display:block;position:relative}.header-icon-btn{border:1px solid var(--white-10);background:var(--white-04);width:1.9rem;height:1.9rem;color:var(--text-muted);cursor:pointer;transition:color .2s, background .2s, border-color .2s, transform .15s var(--ease-out);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.header-icon-btn:hover{color:var(--text);background:var(--white-08);border-color:#ffffff29}.header-icon-btn:active{transform:scale(.94)}.header-icon-btn--active{color:var(--text);background:rgba(var(--accent-rgb), .2);border-color:rgba(var(--accent-rgb), .35)}.header-icon-btn--cta{color:var(--accent);background:rgba(var(--accent-rgb), .15);border-color:rgba(var(--accent-rgb), .25)}.header-icon-btn--cta.header-icon-btn--active{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.header-icon-btn__glyph{font-size:1rem;line-height:1}.header-icon-btn--cta .header-icon-btn__glyph{font-size:1.2rem;font-weight:700}.header-dropdown{border:1px solid var(--white-10);background:rgba(var(--surface-rgb), .98);-webkit-backdrop-filter:blur(16px)saturate(1.4);z-index:30;border-radius:.85rem;min-width:11.5rem;padding:.35rem;position:absolute;top:calc(100% + .45rem);right:0;box-shadow:0 12px 40px #00000073}.header-dropdown__user{color:var(--text-muted);border-bottom:1px solid var(--white-06);white-space:nowrap;text-overflow:ellipsis;margin:0 0 .2rem;padding:.45rem .65rem .35rem;font-size:.72rem;font-weight:600;overflow:hidden}.header-dropdown__item{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:.55rem;padding:.55rem .65rem;font-family:inherit;font-size:.85rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s;display:block}.header-dropdown__item:hover{background:var(--white-06)}.header-dropdown__item--danger{color:var(--wrong);border-top:1px solid var(--white-06);border-radius:0 0 .55rem .55rem;margin-top:.15rem;padding-top:.65rem}.header-dropdown__item--danger:hover{background:#ff6b6b1a}.nav-cta-plus{font-size:1rem;font-weight:700;line-height:1}@media (width<=767px){.header-icon-btn{width:2rem;height:2rem}.header-lang-toggle{padding:.2rem .4rem}.header-streak{padding:.2rem .45rem;font-size:.78rem}.logo-flag{font-size:1.05rem}}.main{min-height:0;padding:.9rem;padding-bottom:calc(1.25rem + var(--safe-bottom));flex:1;overflow-y:auto}.page-enter{animation:pageEnter .45s var(--ease-out) backwards}@keyframes pageEnter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.page-title{letter-spacing:-.02em;margin-bottom:.85rem;font-size:1.3rem;font-weight:700}.page-title-count{background:var(--white-08);color:var(--text-muted);vertical-align:middle;border-radius:999px;margin-left:.5rem;padding:.1rem .55rem;font-size:.9rem;font-weight:600}.page-title--with-icon{align-items:center;gap:.6rem;display:flex}.page-title-icon{animation:iconPop .5s var(--ease-spring) both;font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;font-size:1.8rem;line-height:1}@keyframes iconPop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.back-link{color:var(--text-muted);transition:color .2s, transform .2s var(--ease-out);align-items:center;gap:.25rem;margin-bottom:.75rem;font-size:.9rem;display:inline-flex}.back-link:hover{color:var(--text);transform:translate(-3px)}.breadcrumb{color:var(--text-muted);margin:-.5rem 0 .9rem;font-size:.85rem}.breadcrumb a{color:var(--text-muted);text-underline-offset:2px;text-decoration:underline}.breadcrumb a:hover{color:var(--text)}.loading-screen{flex-direction:column;justify-content:center;align-items:center;gap:1.25rem;padding:4rem 1rem;display:flex}.loading-spinner{gap:.4rem;display:flex}.loading-spinner span{background:var(--accent);border-radius:50%;width:10px;height:10px;animation:1.2s ease-in-out infinite bounce}.loading-spinner span:nth-child(2){animation-delay:.15s}.loading-spinner span:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,80%,to{opacity:.4;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}.loading-label{color:var(--text-muted);font-size:.9rem;animation:2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.status{text-align:center;color:var(--text-muted);padding:2rem}.status.error{color:var(--wrong);animation:.4s shake}.status.success{color:var(--correct,#4ecdc4);white-space:pre-line}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.banner{border-radius:var(--radius);color:var(--text);border:1px solid var(--white-08);background:var(--surface);box-shadow:var(--shadow-sm);transition:transform .25s var(--ease-out), box-shadow .25s, border-color .25s;animation:slideUp .5s var(--ease-out) both;align-items:center;gap:.7rem;margin-bottom:.6rem;padding:.7rem .9rem;display:flex}.banner:nth-child(2){animation-delay:80ms}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.banner:active{transform:scale(.98)}.banner--practice{border-color:rgba(var(--accent-rgb), .3);background:linear-gradient(135deg, rgba(var(--accent-rgb), .12), rgba(var(--surface2-rgb), .5))}.banner--practice:hover{border-color:rgba(var(--accent-rgb), .5);box-shadow:0 8px 24px var(--accent-glow);transform:translateY(-2px)}.banner--grammar{border-color:rgba(var(--accent-2-rgb), .3);background:linear-gradient(135deg, rgba(var(--accent-2-rgb), .1), rgba(var(--surface2-rgb), .5))}.banner--grammar:hover{border-color:rgba(var(--accent-2-rgb), .5);box-shadow:0 8px 24px rgba(var(--accent-2-rgb), .25);transform:translateY(-2px)}.banner--reading{background:linear-gradient(135deg, #38bdf81a, rgba(var(--surface2-rgb), .5));border-color:#38bdf84d}.banner--reading:hover{border-color:#38bdf880;transform:translateY(-2px);box-shadow:0 8px 24px #38bdf838}.banner--pinned{border-color:rgba(var(--accent-2-rgb), .35);background:linear-gradient(135deg, rgba(var(--accent-2-rgb), .12), rgba(var(--surface2-rgb), .5))}.banner--pinned:hover{border-color:rgba(var(--accent-2-rgb), .6);box-shadow:0 8px 24px rgba(var(--accent-2-rgb), .28);transform:translateY(-2px)}.banner--due{background:linear-gradient(135deg, #34d3991a, rgba(var(--surface2-rgb), .5));animation:slideUp .5s var(--ease-out) both, glowPulse 3s ease-in-out 3;border-color:#34d3994d}@keyframes glowPulse{0%,to{box-shadow:var(--shadow-sm)}50%{box-shadow:0 4px 24px var(--correct-glow)}}.banner--due:hover{transform:translateY(-2px)}.banner-icon{flex-shrink:0;font-size:1.3rem}.banner-content{flex-direction:column;flex:1;gap:.15rem;display:flex}.banner-title{font-size:.9rem;font-weight:700}.banner-sub{color:var(--text-muted);font-size:.75rem}.banner-arrow{color:var(--text-muted);transition:transform .2s var(--ease-out);font-size:1rem}.banner:hover .banner-arrow{color:var(--accent);transform:translate(4px)}.banner-badge{background:var(--correct);color:var(--bg);min-width:1.7rem;height:1.7rem;animation:badgePop .6s var(--ease-spring) .3s both;border-radius:999px;justify-content:center;align-items:center;font-size:.78rem;font-weight:700;display:flex}@keyframes badgePop{0%{transform:scale(0)}to{transform:scale(1)}}.category-list{flex-direction:column;gap:.5rem;list-style:none;display:flex}.category-list li{animation:staggerIn .45s var(--ease-out) both;animation-delay:calc(var(--i,0) * 60ms + .15s)}@media (width>=768px){.category-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem;display:grid}.category-list li{animation-name:gridIn}.category-card{height:100%}}@keyframes staggerIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.section-title{color:var(--text-muted);margin:1.5rem 0 .75rem;font-size:1.05rem;font-weight:700}.add-subcategory-link{margin-top:1.25rem}.search-bar{align-items:center;margin-bottom:1rem;display:flex;position:relative}.search-bar-icon{pointer-events:none;opacity:.6;font-size:.95rem;position:absolute;left:.9rem}.search-bar-input{border-radius:var(--radius-sm);border:1px solid var(--white-10);background:var(--surface-solid);width:100%;color:var(--text);padding:.55rem 2.25rem;font-family:inherit;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.search-bar-input::placeholder{color:var(--text-muted)}.search-bar-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);outline:none}.search-bar-clear{background:var(--white-08);width:1.6rem;height:1.6rem;color:var(--text-muted);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:.7rem;transition:background .2s,color .2s;display:flex;position:absolute;right:.6rem}.search-bar-clear:hover{color:var(--text);background:#ffffff26}.card-filters{flex-direction:column;gap:.65rem;margin-bottom:1rem;display:flex}.filter-pills{gap:.5rem;display:flex}.filter-pill{border-radius:var(--radius-sm);border:1px solid var(--white-12);background:var(--surface-solid);color:var(--text-muted);cursor:pointer;transition:all .2s var(--ease-out);flex:1;padding:.45rem .5rem;font-family:inherit;font-size:.82rem}.filter-pill:hover:not(.active){border-color:var(--white-20);color:var(--text)}.filter-pill.active{color:#fff;font-weight:700}.filter-pill--easy.active{background:var(--correct);border-color:var(--correct)}.filter-pill--medium.active{color:var(--bg);background:#fbbf24;border-color:#fbbf24}.filter-pill--hard.active{background:var(--wrong);border-color:var(--wrong)}.filter-count{color:var(--text-muted);margin:0;font-size:.82rem}.category-card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--white-06);border-left:3px solid var(--cat-color,var(--accent));color:var(--text);box-shadow:var(--shadow-sm);transition:transform .25s var(--ease-out), box-shadow .25s, background .2s;align-items:center;gap:.7rem;padding:.65rem .85rem;display:flex}.category-card:hover{box-shadow:var(--shadow);background:rgba(var(--surface-rgb), .9);transform:translate(4px)}.category-card:active{transform:scale(.98)}.category-list li{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.category-list--static li{animation:none}.category-list li.is-dragging{z-index:2;position:relative}.category-list li.is-dragging .category-card{background:var(--surface-solid);border-color:rgba(var(--accent-rgb), .5);cursor:grabbing;transform:scale(1.03);box-shadow:0 10px 28px #00000059}.category-reorder-hint{color:var(--text-muted);margin:0 0 .6rem;font-size:.8rem}.category-icon{text-align:center;width:1.4rem;transition:transform .3s var(--ease-spring);flex-shrink:0;font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;font-size:1.25rem;line-height:1}.category-card:hover .category-icon{transform:scale(1.15)rotate(-5deg)}.category-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.92rem;font-weight:600;overflow:hidden}.category-arrow{color:var(--text-muted);opacity:0;transition:opacity .2s, transform .2s var(--ease-out);transform:translate(-6px)}.category-card:hover .category-arrow{opacity:1;transform:translate(0)}.category-delete-btn{border-radius:var(--radius-sm,8px);width:2.2rem;height:2.2rem;color:var(--text-muted);cursor:pointer;opacity:.6;transition:all .2s var(--ease-out);z-index:2;background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.category-card:hover .category-delete-btn{opacity:.85}.category-delete-btn:hover{opacity:1;color:var(--wrong);background:#ef444424;border-color:#ef44444d;transform:scale(1.1)}.category-delete-btn:active{transform:scale(.95)}.category-delete-icon{width:1.15rem;height:1.15rem}.category-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.category-header-row .page-title{flex:1;margin-bottom:0}.btn-category-header-delete{border-radius:var(--radius-sm,8px);color:var(--wrong);cursor:pointer;transition:all .2s var(--ease-out);background:#ef444414;border:1px solid #ef444433;align-items:center;gap:.45rem;padding:.45rem .85rem;font-size:.85rem;font-weight:500;display:inline-flex}.btn-category-header-delete:hover{background:#ef44442e;border-color:#ef444473;transform:translateY(-1px)}.btn-category-header-delete:active{transform:scale(.97)}.btn-category-header-delete .category-delete-icon{width:1rem;height:1rem}.delete-deck-modal{max-width:440px}.delete-deck-modal-header{align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.delete-deck-modal-icon{font-size:1.7rem;line-height:1}.delete-deck-modal-desc{color:var(--text-muted);margin-bottom:1.35rem;font-size:.95rem;line-height:1.55}.flashcard-grid{grid-template-columns:1fr;gap:1rem;list-style:none;display:grid}.flashcard-grid li{animation:gridIn .4s var(--ease-out) both;animation-delay:calc(var(--i,0) * 50ms)}@media (width>=768px){.flashcard-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}}@media (width>=1100px){.flashcard-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}@keyframes gridIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.empty{text-align:center;color:var(--text-muted);padding:3rem 1rem}.empty--enter,.empty--celebrate{animation:fadeIn .5s var(--ease-out) both}.empty--celebrate .empty-icon{animation:celebrate .8s var(--ease-spring) both}@keyframes celebrate{0%{opacity:0;transform:scale(0)rotate(-20deg)}60%{transform:scale(1.2)rotate(5deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.empty-icon{margin-bottom:1rem;font-size:3rem;display:block}.empty p{margin-bottom:1.25rem;font-size:1.05rem}.empty-actions{flex-direction:column;align-items:center;gap:.75rem;display:flex}.practice-limit-picker{color:var(--text-muted);align-items:center;gap:.55rem;font-size:.88rem;font-weight:600;display:flex}.practice-limit-picker select{border-radius:var(--radius-sm);border:1px solid var(--white-12);background:var(--surface-solid);color:var(--text);font:inherit;padding:.45rem .65rem;font-size:.95rem}.btn{border-radius:var(--radius-sm);cursor:pointer;transition:background .2s, transform .15s var(--ease-out), box-shadow .2s;border:none;justify-content:center;align-items:center;padding:.6rem 1.15rem;font-family:inherit;font-size:.9rem;font-weight:600;display:inline-flex}.btn:active:not(:disabled){transform:scale(.96)}.btn-primary{background:linear-gradient(135deg, var(--accent), var(--accent-deep));color:var(--on-accent);box-shadow:0 4px 16px var(--accent-glow)}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg, var(--accent-hover), var(--accent-deep));box-shadow:0 6px 24px var(--accent-glow);transform:translateY(-1px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--surface-solid);color:var(--text);border:1px solid var(--white-10)}.btn-secondary:hover:not(:disabled){background:var(--surface2);border-color:#ffffff26}.btn--wide{flex:1;width:100%}.btn-correct{background:linear-gradient(135deg, var(--correct), #059669);color:#fff;box-shadow:0 4px 16px var(--correct-glow);flex:1}.btn-correct:hover:not(:disabled){box-shadow:0 6px 24px var(--correct-glow);transform:translateY(-1px)}.btn-danger,.btn-wrong{background:linear-gradient(135deg, var(--wrong), #dc2626);color:#fff;box-shadow:0 4px 16px var(--wrong-glow);flex:1}.btn-danger:hover:not(:disabled),.btn-wrong:hover:not(:disabled){box-shadow:0 6px 24px var(--wrong-glow);transform:translateY(-1px)}.flashcard-delete{z-index:2;color:var(--wrong);cursor:pointer;opacity:0;background:#f8717126;border:1px solid #f871714d;border-radius:8px;padding:.25rem .45rem;font-size:.75rem;line-height:1;transition:opacity .2s,background .2s,transform .15s;position:absolute;top:.4rem;right:.4rem}.flashcard-container--compact:hover .flashcard-delete{opacity:1}.flashcard-delete:hover{background:#f871714d;transform:scale(1.1)}.flashcard-edit{z-index:2;background:rgba(var(--accent-rgb), .15);border:1px solid rgba(var(--accent-rgb), .3);color:var(--accent);cursor:pointer;opacity:0;border-radius:8px;padding:.25rem .45rem;font-size:.75rem;line-height:1;transition:opacity .2s,background .2s,transform .15s;position:absolute;top:.4rem;right:2.2rem}.flashcard-container--compact:hover .flashcard-edit{opacity:1}.flashcard-edit:hover{background:rgba(var(--accent-rgb), .3);transform:scale(1.1)}.flashcard-pin{z-index:2;color:#fbbf24b3;cursor:pointer;opacity:0;background:#fbbf241f;border:1px solid #fbbf244d;border-radius:8px;padding:.25rem .45rem;font-size:.8rem;line-height:1;transition:opacity .2s,background .2s,transform .15s,color .2s;position:absolute;top:.4rem;right:4.2rem}.flashcard-container--compact:hover .flashcard-pin{opacity:1}.flashcard-pin:hover{color:#fbbf24;background:#fbbf2440;transform:scale(1.15)}.flashcard-pin--active{color:#fbbf24;background:#fbbf242e;border-color:#fbbf2480;opacity:1!important}.difficulty-badge{animation:fadeIn .3s var(--ease-out) both;border-radius:999px;align-self:flex-start;margin-bottom:.5rem;padding:.25rem .7rem;font-size:.75rem;font-weight:600;display:inline-block}.difficulty-easy{color:var(--correct);background:#34d39926;border:1px solid #34d3994d}.difficulty-medium{color:#fbbf24;background:#fbbf2426;border:1px solid #fbbf244d}.difficulty-hard{color:var(--wrong);background:#f8717126;border:1px solid #f871714d}.difficulty-dot{border-radius:50%;width:8px;height:8px;position:absolute;top:.5rem;right:.5rem}.difficulty-dot.difficulty-easy{background:var(--correct)}.difficulty-dot.difficulty-medium{background:#fbbf24}.difficulty-dot.difficulty-hard{background:var(--wrong)}.difficulty-picker{flex-direction:column;gap:.5rem;display:flex}.difficulty-picker--enter{animation:slideUp .35s var(--ease-out) both}.difficulty-picker-label{color:var(--text-muted);text-align:center;font-size:.85rem}.difficulty-picker-buttons{gap:.5rem;display:flex}.btn-difficulty{border:1px solid var(--white-12);background:var(--surface-solid);color:var(--text-muted);transition:all .2s var(--ease-out);flex:1;padding:.55rem .25rem;font-size:.85rem}.btn-difficulty:hover:not(.active){border-color:var(--white-20);color:var(--text)}.btn-difficulty.active{color:#fff;font-weight:700;transform:scale(1.03)}.btn-difficulty-easy.active{background:var(--correct);border-color:var(--correct);box-shadow:0 4px 12px var(--correct-glow)}.btn-difficulty-medium.active{color:var(--bg);background:#fbbf24;border-color:#fbbf24;box-shadow:0 4px 12px #fbbf244d}.btn-difficulty-hard.active{background:var(--wrong);border-color:var(--wrong);box-shadow:0 4px 12px var(--wrong-glow)}.flashcard-container--compact .difficulty-picker{margin-top:.5rem}.flashcard-container--compact .difficulty-picker-buttons{flex-direction:column}.flashcard-container--compact .btn-difficulty{padding:.35rem;font-size:.72rem}.flashcard-container{animation:cardEnterFade .5s var(--ease-out) both;flex-direction:column;gap:1.25rem;display:flex}.flashcard-container--compact{position:relative}.flashcard-container--exit{animation:cardExitFade .28s var(--ease-out) forwards}@keyframes cardEnterFade{0%{opacity:0}to{opacity:1}}@keyframes cardExitFade{to{opacity:0}}.flashcard{cursor:pointer;perspective:1200px;color:#fff;width:100%;min-height:300px;animation:cardEnterMove .5s var(--ease-out) both;background:0 0;border:none}@keyframes cardEnterMove{0%{transform:translateY(24px)scale(.96)}to{transform:translateY(0)scale(1)}}.flashcard-container--exit .flashcard{animation:cardExitMove .28s var(--ease-out) forwards}@keyframes cardExitMove{to{transform:translate(40px)scale(.95)}}.flashcard--compact{min-height:168px}.flashcard-inner{width:100%;min-height:300px;position:relative}.flashcard--compact .flashcard-inner{min-height:168px}.flashcard-front,.flashcard-back{border-radius:var(--radius);border:1px solid var(--white-14);box-shadow:var(--shadow);transform-origin:50%;flex-direction:column;justify-content:center;align-items:center;padding:1.75rem 1.25rem;transition:transform .33s ease-in;display:flex;position:absolute;inset:0}.flashcard-front{z-index:2;background:linear-gradient(155deg,#5a4636 0%,#46372b 45%,#3a2e25 100%);justify-content:flex-start;transform:perspective(1200px)rotateY(0)}.flashcard.flipped .flashcard-front{pointer-events:none;transition-timing-function:ease-in;transform:perspective(1200px)rotateY(-90deg)}.flashcard-back{z-index:1;pointer-events:none;background:linear-gradient(155deg,#4a3a2e 0%,#3d3026 45%,#31271f 100%);transition:transform .33s ease-out;transform:perspective(1200px)rotateY(90deg)}.flashcard.flipped .flashcard-back{pointer-events:auto;transition-delay:.33s;transition-timing-function:ease-out;transform:perspective(1200px)rotateY(0)}.flashcard--compact .flashcard-front{justify-content:center}.flashcard-body{flex-direction:column;flex:1;justify-content:center;align-items:center;width:100%;min-height:0;display:flex}.flashcard-image{object-fit:cover;border:1px solid var(--white-18);border-radius:10px;width:100%;max-width:220px;height:130px;margin-bottom:.85rem;box-shadow:0 4px 16px #0003}.flashcard--compact .flashcard-image{border-radius:8px;max-width:100%;height:72px;margin-bottom:.5rem}.flashcard:not(.flipped):hover .flashcard-front{border-color:rgba(var(--accent-rgb), .35);box-shadow:var(--shadow), 0 0 24px rgba(var(--accent-rgb), .15)}.flashcard h2{text-align:center;word-break:break-word;letter-spacing:-.02em;color:#fff;text-shadow:0 1px 2px #00000040;font-size:1.9rem;font-weight:700;line-height:1.2}.word-row{justify-content:center;align-items:center;gap:.5rem;display:flex}.flashcard--compact .word-row{gap:.35rem}.speak-btn{background:var(--white-10);color:#fff;cursor:pointer;width:2.1rem;height:2.1rem;transition:background .2s, transform .15s var(--ease-out), border-color .2s;border:1px solid #ffffff40;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.05rem;display:inline-flex}.speak-btn:hover{background:var(--white-20);border-color:#fff6}.speak-btn:active{transform:scale(.92)}.speak-btn--active{border-color:var(--accent);background:var(--accent-glow);animation:.9s ease-in-out infinite speakPulse}@keyframes speakPulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.flashcard--compact .speak-btn{width:1.6rem;height:1.6rem;font-size:.8rem}.speak-btn--inline{vertical-align:middle;width:1.6rem;height:1.6rem;margin-left:.4rem;font-size:.8rem}.flashcard--compact h2{font-size:1.15rem;line-height:1.25}.flashcard--compact .flashcard-front,.flashcard--compact .flashcard-back{box-shadow:var(--shadow-sm);padding:1.35rem .85rem}.flashcard--compact .label{color:#f0e4d6bf;margin-bottom:.3rem;font-size:.62rem}.flashcard--compact .example{color:#f0e8decc;margin-top:.5rem;font-size:.82rem}.flashcard--compact .pronunciation{color:#f0e8debf;font-size:.82rem}@media (width<=767px){.flashcard-grid{gap:1.25rem}.flashcard--compact,.flashcard--compact .flashcard-inner{min-height:300px}.flashcard--compact .flashcard-front,.flashcard--compact .flashcard-back{padding:1.75rem 1.25rem}.flashcard--compact .flashcard-image{max-width:280px;height:150px;margin-bottom:.75rem}.flashcard--compact h2{font-size:1.75rem;line-height:1.3}.flashcard--compact .label{margin-bottom:.45rem;font-size:.72rem}.flashcard--compact .pronunciation{margin-top:.5rem;font-size:1rem}.flashcard--compact .example{margin-top:.65rem;font-size:.95rem}.flashcard--compact .speak-btn,.flashcard--compact .speak-btn--inline{width:2rem;height:2rem;font-size:.95rem}.flashcard-container--compact .btn-difficulty{padding:.55rem .75rem;font-size:.85rem}.flashcard-container--compact .difficulty-picker-buttons{flex-direction:row;gap:.5rem}.flashcard:not(.flashcard--compact),.flashcard:not(.flashcard--compact) .flashcard-inner{min-height:min(68vh,480px)}.flashcard:not(.flashcard--compact) .flashcard-front,.flashcard:not(.flashcard--compact) .flashcard-back{padding:2rem 1.5rem}.flashcard:not(.flashcard--compact) .flashcard-image{max-width:280px;height:160px}.flashcard:not(.flashcard--compact) h2{font-size:1.65rem}.review-actions{flex-direction:column}.review-actions .btn{width:100%}}.label{text-transform:uppercase;letter-spacing:.12em;color:#f0e4d6d9;margin-bottom:.65rem;font-size:.72rem;font-weight:600}.flashcard .pronunciation{color:#f0e8decc;margin-top:.75rem;font-size:1.05rem;font-style:italic}.flashcard .example{color:#f0e8ded9;text-align:center;margin-top:1rem;font-size:1rem;font-style:italic;line-height:1.45}.hint{color:#d6ccc0a6;text-align:center;opacity:1;flex-shrink:0;margin-top:.75rem;font-size:.78rem;line-height:1.3;animation:2.5s ease-in-out infinite hintPulse}@keyframes hintPulse{0%,to{opacity:.5}50%{opacity:.9}}.review-actions{gap:.75rem;display:flex}.review-actions--enter{animation:slideUp .35s var(--ease-out) .1s both}.review-progress-wrap{animation:fadeIn .4s var(--ease-out) both;margin-bottom:1.25rem}.review-progress-header{justify-content:space-between;align-items:baseline;margin-bottom:.5rem;display:flex}.review-progress-count{font-size:.95rem;font-weight:700}.review-progress-of{color:var(--text-muted);font-size:.85rem;font-weight:400}.review-progress-label{color:var(--text-muted);font-size:.8rem}.progress-track{background:var(--white-08);border-radius:999px;height:6px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--accent), #34d399);height:100%;transition:width .5s var(--ease-out);border-radius:999px;position:relative}.progress-fill:after{content:"";background:linear-gradient(90deg,#0000,#ffffff4d,#0000);animation:2s ease-in-out infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.form-panel{animation:fadeIn .35s var(--ease-out) both}.tabs{background:var(--white-04);border-radius:calc(var(--radius) + 2px);-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:.35rem;margin-bottom:1.25rem;padding:.3rem;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:background .25s, color .25s, transform .15s var(--ease-out);background:0 0;border:none;flex:1 0 auto;padding:.65rem .85rem;font-family:inherit;font-size:.9rem;font-weight:600;line-height:1.2}.tab-label--short{display:none}.tab:hover:not(.active){color:var(--text);background:var(--white-05)}.tab.active{background:var(--accent);color:var(--on-accent);box-shadow:0 4px 12px var(--accent-glow)}.tab:active{transform:scale(.97)}@media (width<=767px){.tabs{gap:.25rem;padding:.25rem}.tab{flex:1 1 0;min-width:0;padding:.55rem .35rem;font-size:.78rem}.tab-label--full{display:none}.tab-label--short{display:inline}}.form{flex-direction:column;gap:1rem;display:flex}.lookup-search{gap:.6rem;margin:.35rem 0 1rem;display:flex}.lookup-search .btn{flex-shrink:0}.lookup-search input{flex:1;min-width:0}.lookup-kind{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.65rem;font-size:.78rem;font-weight:700}.lookup-results{flex-direction:column;gap:.5rem;margin-bottom:1.1rem;list-style:none;display:flex}.lookup-result{text-align:left;border:1px solid var(--white-10);background:var(--white-04);width:100%;color:var(--text);cursor:pointer;font:inherit;border-radius:14px;flex-wrap:wrap;align-items:baseline;gap:.35rem .55rem;padding:.8rem .9rem;display:flex}.lookup-result:hover{border-color:var(--white-18);background:#ffffff12}.lookup-result--active{border-color:rgba(var(--accent-rgb), .55);background:rgba(var(--accent-rgb), .16);box-shadow:0 0 0 1px rgba(var(--accent-rgb), .2)}.lookup-result-front{font-size:1.02rem;font-weight:700}.lookup-result-pos{color:var(--text-muted);text-transform:lowercase;font-size:.72rem;font-weight:650}.lookup-result-back{color:#f0e8ded1;flex-basis:100%;font-size:.9rem}.lookup-add{border-top:1px solid var(--white-08);padding-top:.25rem}.lookup-field-row{align-items:center;gap:.45rem;display:flex}.lookup-field-row input{flex:1;min-width:0}.lookup-meta{color:var(--text-muted);font-size:.82rem}.lookup-manual-toggle{width:100%;color:var(--accent);font:inherit;cursor:pointer;text-align:center;background:0 0;border:none;margin-top:1.1rem;padding:.45rem;font-size:.88rem;font-weight:650;display:block}.lookup-manual-toggle:hover{color:var(--text)}.ui-lang-fieldset{border:1px solid var(--white-10);border-radius:var(--radius-sm);flex-direction:column;gap:.65rem;margin:0;padding:.9rem 1rem 1rem;display:flex}.ui-lang-fieldset legend{padding:0 .35rem;font-size:.9rem;font-weight:600}.ui-lang-option{cursor:pointer;align-items:flex-start;gap:.65rem;font-weight:400;flex-direction:row!important;display:flex!important}.ui-lang-option input{width:auto;accent-color:var(--accent);margin-top:.2rem}.form label{flex-direction:column;gap:.4rem;font-size:.9rem;font-weight:500;display:flex}.form input,.form select,.lookup-search input{border-radius:var(--radius-sm);border:1px solid var(--white-10);background:var(--surface-solid);color:var(--text);transition:border-color .2s, box-shadow .2s, transform .15s var(--ease-out);padding:.6rem .75rem;font-family:inherit;font-size:1rem}.form input:focus,.form select:focus,.lookup-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);outline:none}.form input[type=color]{cursor:pointer;height:48px;padding:.3rem}.field-hint{color:var(--text-muted);margin-top:-.5rem;font-size:.8rem}.auth-page{min-height:100dvh;padding:1.5rem 1rem;padding-top:calc(1.5rem + env(safe-area-inset-top,0px));padding-bottom:calc(1.5rem + env(safe-area-inset-bottom,0px));justify-content:center;align-items:center;display:flex;position:relative}.auth-page:before{content:"";z-index:-1;background:radial-gradient(ellipse 80% 50% at 50% -10%, rgba(var(--accent-rgb), .18), transparent), radial-gradient(ellipse 60% 40% at 100% 80%, rgba(var(--surface2-rgb), .5), transparent), var(--bg);position:fixed;inset:0}.auth-card{border-radius:var(--radius);background:var(--surface);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--white-08);width:100%;max-width:400px;box-shadow:var(--shadow);padding:1.5rem}.ui-language-picker{justify-content:flex-end;align-items:center;gap:.4rem;margin-bottom:.75rem;display:flex}.ui-language-picker-icon{opacity:.65;font-size:.9rem}.ui-language-picker select{border-radius:var(--radius-sm);border:1px solid var(--white-08);background:var(--white-05);color:var(--text-muted);cursor:pointer;padding:.3rem .5rem;font-family:inherit;font-size:.85rem;transition:color .2s,border-color .2s}.ui-language-picker select:hover,.ui-language-picker select:focus-visible{color:var(--text);border-color:var(--accent)}.auth-brand{text-align:center;margin-bottom:1.5rem}.auth-brand .logo-mark{margin:0 auto .5rem;font-size:2rem;display:block}.auth-title{margin-bottom:.35rem;font-size:1.35rem;font-weight:700}.auth-subtitle{color:var(--text-muted);font-size:.9rem}.auth-footer{text-align:center;color:var(--text-muted);margin-top:1.25rem;font-size:.9rem}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{border-radius:var(--radius-sm,.85rem);border:1px solid var(--white-12);background:var(--surface,#16181f);flex-direction:column;gap:.85rem;width:min(26rem,100%);padding:1.35rem;display:flex;box-shadow:0 18px 45px #00000073}.modal--error{border-color:#f8717159}.modal-title{margin:0;font-size:1.05rem}.modal--error .modal-title{color:#f87171}.modal-body{color:var(--text-muted);flex-direction:column;gap:.5rem;font-size:.9rem;line-height:1.5;display:flex}.modal-body p{margin:0}.modal-detail{color:var(--text);font-weight:600}.language-setup-options{grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:.5rem;margin-top:.35rem;display:grid}.language-setup-option{border:1px solid var(--white-12);background:var(--white-04);color:var(--text);text-align:left;cursor:pointer;border-radius:.65rem;align-items:center;gap:.5rem;padding:.6rem .75rem;font-family:inherit;font-size:.9rem;transition:background .2s,border-color .2s;display:flex}.language-setup-option:hover:not(:disabled){background:var(--white-08)}.language-setup-option--active{border-color:var(--accent);background:rgba(var(--accent-rgb), .18)}.admin-table .admin-name{color:var(--text);display:block}.admin-table .admin-email{color:var(--text-muted);font-size:.75rem;display:block}.admin-badge{border:1px solid #0000;border-radius:999px;padding:.2rem .55rem;font-size:.7rem;display:inline-block}.admin-badge--active{color:#4ade80;background:#4ade801a;border-color:#4ade8066}.admin-badge--blocked{color:#f87171;background:#f871711a;border-color:#f8717166}.admin-self{color:var(--text-muted);font-size:.75rem}.btn--small{padding:.3rem .7rem;font-size:.75rem}.auth-divider{color:var(--text-muted);align-items:center;gap:.75rem;margin:1.25rem 0 1rem;font-size:.8rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--white-12);flex:1;height:1px}.google-signin{justify-content:center;min-height:44px;display:flex}.import-panel{flex-direction:column;gap:1rem;display:flex}.import-hint{color:var(--text-muted);margin:0;font-size:.9rem;line-height:1.5}.import-template-btn{align-self:flex-start}.import-dropzone{flex-direction:column;gap:.5rem;display:flex}.import-file-input{display:none}.import-preview{border-radius:var(--radius-sm);border:1px solid var(--white-08);background:#ffffff08;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.import-preview-title{margin:0;font-weight:600}.import-checkbox{cursor:pointer;align-items:center;gap:.5rem;font-size:.95rem;display:flex}.import-checkbox input{width:1.1rem;height:1.1rem;accent-color:var(--accent)}.import-table-wrap{overflow-x:auto}.import-table{border-collapse:collapse;width:100%;font-size:.85rem}.import-table th,.import-table td{text-align:left;border-bottom:1px solid var(--white-06);padding:.5rem .75rem}.import-table th{color:var(--text-muted);font-weight:500}.import-more{color:var(--text-muted);margin:.25rem 0 0;font-size:.8rem}.import-format-help{color:var(--text-muted);font-size:.85rem}.import-format-help summary{cursor:pointer;-webkit-user-select:none;user-select:none}.import-format-body{flex-direction:column;gap:.4rem;margin-top:.5rem;line-height:1.5;display:flex}.import-format-body p{margin:0}.ai-generate-form{flex-direction:column;gap:1rem;display:flex}.ai-generate-form label{flex-direction:column;gap:.4rem;font-size:.9rem;font-weight:500;display:flex}.ai-generate-form textarea{border-radius:var(--radius-sm);border:1px solid var(--white-10);background:var(--surface-solid);color:var(--text);resize:vertical;min-height:6rem;padding:.8rem .9rem;font-family:inherit;font-size:1rem;line-height:1.5;transition:border-color .2s,box-shadow .2s}.ai-generate-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);outline:none}.ai-generate-form textarea:disabled{opacity:.6;cursor:not-allowed}.ai-example-prompts{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.ai-example-label{color:var(--text-muted);font-size:.8rem}.ai-example-btn{border:1px solid var(--white-12);background:var(--white-04);color:var(--text-muted);cursor:pointer;border-radius:999px;padding:.35rem .65rem;font-family:inherit;font-size:.75rem;transition:background .2s,color .2s,border-color .2s}.ai-example-btn:hover:not(:disabled){background:var(--white-08);color:var(--text);border-color:var(--white-20)}.ai-example-btn:disabled{opacity:.5;cursor:not-allowed}.ai-saved-prompts{flex-direction:column;gap:.5rem;display:flex}.ai-saved-list{flex-wrap:wrap;gap:.5rem;display:flex}.ai-saved-chip{border:1px solid var(--white-12);background:var(--white-04);border-radius:999px;align-items:center;display:inline-flex;overflow:hidden}.ai-saved-chip-load,.ai-saved-chip-delete{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:.75rem;transition:background .2s,color .2s}.ai-saved-chip-load{text-overflow:ellipsis;white-space:nowrap;max-width:14rem;padding:.35rem .5rem .35rem .65rem;overflow:hidden}.ai-saved-chip-delete{padding:.35rem .6rem .35rem .35rem;font-size:.9rem;line-height:1}.ai-saved-chip-load:hover:not(:disabled),.ai-saved-chip-delete:hover:not(:disabled){background:var(--white-08);color:var(--text)}.ai-saved-chip-load:disabled,.ai-saved-chip-delete:disabled{opacity:.5;cursor:not-allowed}.ai-save-form{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.ai-save-form input{flex:12rem;min-width:0}.ai-form-actions{flex-wrap:wrap;gap:.5rem;display:flex}.grammar-intro{color:var(--text-muted);margin:-.5rem 0 1.25rem;font-size:.95rem}.grammar-settings-bar{background:var(--surface);border:1px solid var(--white-05);border-radius:var(--radius);justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding:.75rem 1rem;font-size:.88rem;display:flex}.grammar-settings-bar .settings-label{color:var(--text-muted);font-weight:500}.grammar-settings-bar .settings-options{gap:.35rem;display:flex}.grammar-settings-bar .settings-btn{background:var(--white-04);border:1px solid var(--white-08);color:var(--text-muted);cursor:pointer;border-radius:8px;padding:.25rem .65rem;font-weight:600;transition:all .2s}.grammar-settings-bar .settings-btn:hover:not(:disabled){background:var(--white-08);color:var(--text)}.grammar-settings-bar .settings-btn.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent);box-shadow:0 0 12px var(--accent-glow)}.grammar-tabs-container{scrollbar-width:none;margin-bottom:1rem;padding-bottom:.25rem;overflow-x:auto}.grammar-tabs-container::-webkit-scrollbar{display:none}.grammar-tabs{gap:.5rem;min-width:max-content;display:flex}.grammar-tab-btn{background:var(--surface);border:1px solid var(--white-05);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;transition:all .25s var(--ease-out);padding:.6rem 1.1rem;font-size:.9rem;font-weight:700}.grammar-tab-btn:hover:not(:disabled){color:var(--text);background:var(--white-08)}.grammar-tab-btn--a1.active{color:#34d399;background:#10b98126;border-color:#10b981;box-shadow:0 0 15px #10b98133}.grammar-tab-btn--a2.active{color:#22d3ee;background:#06b6d426;border-color:#06b6d4;box-shadow:0 0 15px #06b6d433}.grammar-tab-btn--b1.active{color:#60a5fa;background:#3b82f626;border-color:#3b82f6;box-shadow:0 0 15px #3b82f640}.grammar-tab-btn--b2.active{color:#a78bfa;background:#8b5cf626;border-color:#8b5cf6;box-shadow:0 0 15px #8b5cf640}.grammar-tab-btn--c1.active{color:#fbbf24;background:#f59e0b26;border-color:#f59e0b;box-shadow:0 0 15px #f59e0b40}.grammar-level-card{background:var(--surface);border-radius:var(--radius);border-left:4px solid var(--accent);animation:pageEnter .4s var(--ease-out) backwards;margin-bottom:1.25rem;padding:1.2rem}.grammar-level-card--a1{border-left-color:#10b981}.grammar-level-card--a2{border-left-color:#06b6d4}.grammar-level-card--b1{border-left-color:#3b82f6}.grammar-level-card--b2{border-left-color:#8b5cf6}.grammar-level-card--c1{border-left-color:#f59e0b}.grammar-level-card h2{color:var(--text);margin:0 0 .5rem;font-size:1.15rem;font-weight:700}.grammar-level-card .level-card-desc{color:var(--text-muted);margin:0;font-size:.88rem;line-height:1.45}.grammar-topics-grid{grid-template-columns:1fr;gap:.75rem;margin-bottom:2rem;display:grid}.grammar-topic-card{background:var(--surface);border:1px solid var(--white-05);border-radius:var(--radius);text-align:left;cursor:pointer;transition:all .25s var(--ease-out);align-items:center;gap:1rem;width:100%;padding:1rem;display:flex}.grammar-topic-card:hover:not(:disabled){background:var(--white-04);border-color:var(--white-12);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.grammar-topic-card:active:not(:disabled){transform:translateY(0)}.grammar-topic-card .topic-icon{background:#ffffff08;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;font-size:1.8rem;display:flex}.grammar-topic-card .topic-content{flex-direction:column;flex-grow:1;gap:.2rem;display:flex}.grammar-topic-card .topic-content h3{color:var(--text);margin:0;font-size:.95rem;font-weight:600;line-height:1.35}.grammar-topic-card .topic-action-label{color:var(--accent);opacity:.8;font-size:.78rem;font-weight:600;transition:opacity .2s}.grammar-topic-card:hover:not(:disabled) .topic-action-label{opacity:1}.grammar-exercise{background:var(--surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius);border:1px solid var(--white-08);box-shadow:var(--shadow-sm);animation:pageEnter .4s var(--ease-out) backwards;padding:1.25rem}.grammar-exercise--correct{border-color:#34d39966}.grammar-exercise--wrong{border-color:#f8717166}.grammar-exercise-type{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);background:rgba(var(--accent-rgb), .15);border-radius:999px;margin-bottom:.75rem;padding:.2rem .55rem;font-size:.72rem;font-weight:600;display:inline-block}.grammar-exercise-prompt{margin-bottom:1rem;font-size:1.1rem;font-weight:500;line-height:1.5}.grammar-exercise-form{flex-direction:column;gap:.65rem;display:flex}.grammar-exercise-input{border-radius:var(--radius-sm);border:1px solid var(--white-10);background:var(--surface-solid);color:var(--text);padding:.8rem .9rem;font-family:inherit;font-size:1rem;transition:border-color .2s,box-shadow .2s}.grammar-exercise-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);outline:none}.grammar-exercise-input:disabled{opacity:.7}.grammar-options{flex-direction:column;gap:.5rem;display:flex}.grammar-option{text-align:left;border-radius:var(--radius-sm);border:1px solid var(--white-10);background:var(--surface-solid);color:var(--text);cursor:pointer;transition:all .2s var(--ease-out);padding:.85rem 1rem;font-family:inherit;font-size:.95rem}.grammar-option:hover:not(:disabled){border-color:var(--white-20);transform:translate(3px)}.grammar-option--selected{border-color:var(--accent);background:rgba(var(--accent-rgb), .12)}.grammar-option--correct{border-color:var(--correct);color:var(--correct);background:#34d39926;font-weight:600}.grammar-option--wrong{border-color:var(--wrong);color:var(--wrong);background:#f871711f}.grammar-feedback{border-top:1px solid var(--white-08);animation:fadeIn .3s var(--ease-out) both;margin-top:1rem;padding-top:1rem}.grammar-feedback-result{margin-bottom:.4rem;font-weight:700}.grammar-feedback-result--correct{color:var(--correct)}.grammar-feedback-result--wrong{color:var(--wrong)}.grammar-feedback-explanation{color:var(--text-muted);font-size:.9rem;line-height:1.5}.grammar-results-title{color:var(--text);margin-bottom:.35rem;font-size:1.4rem;font-weight:700}.grammar-results-topic{color:var(--text-muted);margin-bottom:1rem;font-size:.9rem}@media (width>=768px){.app{max-width:960px}.main{padding:1.5rem 2rem}.header{padding:.85rem 2rem;padding-top:calc(.85rem + env(safe-area-inset-top,0px));gap:1rem}.logo{gap:.5rem;font-size:1.05rem}.header-start .header-badges{margin-left:.25rem}.header-start{gap:.75rem}.header-actions{flex:initial;gap:.75rem}.main--immersive,body.category-reviewing .main{padding:.75rem 1.25rem 1rem;padding-top:calc(.55rem + env(safe-area-inset-top,0px))}.filter-pills{max-width:420px}}@media (width>=1100px){.app{max-width:1200px}.category-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.modal-overlay{z-index:1000;background:rgba(var(--bg-rgb), .82);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fadeIn .25s var(--ease-out);justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal-content{background:var(--surface-solid);border:1px solid var(--white-10);border-radius:var(--radius);width:100%;max-width:440px;box-shadow:var(--shadow);animation:modalEnter .3s var(--ease-spring);padding:1.75rem 1.5rem 1.5rem;position:relative}.modal-title{color:var(--text);margin-bottom:1.25rem;font-size:1.25rem;font-weight:700}.modal-close{background:var(--white-05);border:1px solid var(--white-08);color:var(--text-muted);cursor:pointer;border-radius:8px;padding:.35rem .5rem;font-size:.9rem;line-height:1;transition:all .2s;position:absolute;top:1rem;right:1rem}.modal-close:hover{background:var(--white-10);color:var(--text)}.modal-actions{justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}@keyframes modalEnter{0%{opacity:0;transform:scale(.92)translateY(16px)}to{opacity:1;transform:scale(1)translateY(0)}}.review-navigation-actions{justify-content:space-between;align-items:center;gap:.75rem;margin-top:1.25rem;display:flex}.review-navigation-actions .btn{flex:1}.pinned-session-actions{flex-wrap:wrap;gap:.75rem;margin-top:1rem;display:flex}.pinned-session-actions .btn{flex:1}.pinned-list-count{color:var(--text-muted);margin:0 0 .75rem}.pinned-list{flex-direction:column;gap:.5rem;margin:0 0 1.25rem;padding:0;list-style:none;display:flex}.pinned-list-item{background:var(--surface);border:1px solid var(--white-06);border-radius:12px;align-items:center;gap:.75rem;padding:.6rem .75rem;display:flex}.pinned-list-word{min-width:0;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:flex-start;padding:0;display:flex}.pinned-list-front{overflow-wrap:anywhere;font-weight:600}.pinned-list-back{color:var(--text-muted);overflow-wrap:anywhere;font-size:.9em}.pinned-list-learned{white-space:nowrap;flex-shrink:0}.review-category-btn{transition:all .2s var(--ease-out);justify-content:center;align-items:center;gap:.5rem;font-weight:600;display:flex}.review-category-btn:hover{box-shadow:0 4px 16px var(--accent-glow);transform:translateY(-1px)}.tabbar{background:rgba(var(--bg-rgb), .9);-webkit-backdrop-filter:blur(18px)saturate(1.4);border-top:1px solid var(--white-08);z-index:120;touch-action:manipulation;-webkit-user-select:none;user-select:none;flex-shrink:0;grid-template-columns:repeat(4,1fr);padding:0 .45rem;display:grid}.tabbar-link{min-width:0;min-height:2.9rem;padding:.4rem .15rem calc(.45rem + var(--safe-bottom));color:var(--text-muted);letter-spacing:.01em;-webkit-touch-callout:none;-webkit-user-drag:none;touch-action:manipulation;flex-direction:column;justify-content:center;align-items:center;gap:.2rem;font-size:.62rem;font-weight:600;text-decoration:none;display:flex}.tabbar-icon{border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;width:1.85rem;height:1.85rem;transition:color .2s,background .2s,border-color .2s,box-shadow .2s,transform .12s;display:inline-flex}.tabbar-link:active .tabbar-icon{background:var(--white-08);transform:scale(.88)}.tabbar-icon svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:1.15rem;height:1.15rem}.tabbar-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.tabbar-link--active{color:var(--text)}.tabbar-link--active .tabbar-icon{color:var(--accent);border-color:rgba(var(--accent-rgb), .7);background:rgba(var(--accent-rgb), .14);box-shadow:0 0 0 2px rgba(var(--accent-rgb), .16)}.session-chips{flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem;margin-bottom:.7rem;display:flex}.session-chip{border:1px solid var(--white-12);background:rgba(var(--bg-rgb), .72);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--text);border-radius:999px;align-items:center;gap:.25rem;padding:.28rem .65rem;font-size:.78rem;font-weight:700;display:inline-flex}.session-chip--streak{color:#fdba74;background:#fb923c1f;border-color:#fb923c4d}.session-chip--progress{color:#f4ece2eb}.app--immersive .header,body.category-reviewing .header{display:none}.main--immersive,body.category-reviewing .main{padding:.55rem .7rem .85rem;padding-top:calc(.45rem + env(safe-area-inset-top,0px))}.main--immersive .page-enter,body.category-reviewing .main .page-enter{height:100%;animation:none;transform:none}.review-session{flex-direction:column;height:100%;min-height:100%;display:flex}.card-scene{z-index:0;position:absolute;inset:0}.card-scene-photo,.card-scene-sky{object-fit:cover;width:100%;height:100%;display:block}.card-scene-shade{background:linear-gradient(#18100a2e 0%,#140d081f 42%,#0e0a06cc 100%);position:absolute;inset:0}.flashcard-container--immersive{flex-direction:column;flex:1;min-height:0;display:flex}.flashcard.flashcard--immersive,.flashcard.flashcard--immersive .flashcard-inner{min-height:420px}@media (width<=767px){.review-session--pinned .flashcard.flashcard--immersive,.review-session--pinned .flashcard.flashcard--immersive .flashcard-inner{min-height:340px}.review-session--pinned .pinned-session-actions{margin-top:1.5rem}.review-session--pinned .review-navigation-actions{margin-top:1.75rem}}.app--immersive .flashcard.flashcard--immersive,body.category-reviewing .flashcard.flashcard--immersive{flex-direction:column;flex:1;width:100%;min-height:0;display:flex}.app--immersive .flashcard.flashcard--immersive .flashcard-inner,body.category-reviewing .flashcard.flashcard--immersive .flashcard-inner{flex:1;height:auto;min-height:0}.flashcard.flashcard--immersive .flashcard-front,.flashcard.flashcard--immersive .flashcard-back{border:1px solid var(--white-12);border-radius:var(--radius-card);padding:0;overflow:hidden;box-shadow:0 18px 50px #00000061}.flashcard.flashcard--immersive .flashcard-front{background:#5a4636;justify-content:flex-end;align-items:stretch}.flashcard.flashcard--immersive .flashcard-back{background:#3a2e25;justify-content:center;align-items:center;padding:2.4rem 1.4rem}.flashcard.flashcard--immersive .flashcard-back .label,.flashcard.flashcard--immersive .flashcard-back h2,.flashcard.flashcard--immersive .flashcard-back .example{z-index:1;position:relative}.flashcard.flashcard--immersive .flashcard-body{z-index:1;flex:1;justify-content:center;padding:4.4rem 1.2rem .4rem;position:relative}.flashcard.flashcard--immersive h2{letter-spacing:.14em;text-transform:uppercase;text-shadow:0 8px 28px #00000059;font-size:clamp(2.05rem,8.4vw,2.85rem);font-weight:700}.flashcard--immersive .pronunciation--hero{color:#ffffffe0;letter-spacing:.04em;align-items:center;gap:.35rem;margin-top:.55rem;font-size:.95rem;font-style:normal;display:inline-flex}.flashcard-chrome{z-index:2;align-items:center;gap:.4rem;display:flex;position:absolute;top:.85rem;left:.85rem;right:.85rem}.flashcard-chrome-btn{border:1px solid var(--white-28);background:var(--white-14);color:#fff;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;width:1.9rem;height:1.9rem;padding:0;display:inline-flex}.flashcard-chrome-btn svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:1.05rem;height:1.05rem}.flashcard-status{border:1px solid var(--white-28);background:var(--white-12);letter-spacing:.14em;text-transform:uppercase;color:#ffffffeb;border-radius:999px;margin-left:auto;padding:.28rem .7rem;font-size:.62rem;font-weight:700}.flashcard-progress{border:1px solid var(--white-28);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-variant-numeric:tabular-nums;color:#fff;background:#00000059;border-radius:999px;margin-left:auto;padding:.24rem .65rem;font-size:.75rem;font-weight:700}.flashcard-progress+.flashcard-status{margin-left:0}.flashcard-quiz{z-index:2;-webkit-backdrop-filter:blur(18px)saturate(1.3);background:#ffffff29;border:1px solid #ffffff38;border-radius:18px;margin:0 .85rem .2rem;padding:.7rem .8rem .8rem;position:relative;box-shadow:0 10px 30px #0000002e}.quiz-kicker{color:#ffffffc7;margin-bottom:.2rem;font-size:.72rem;font-weight:700}.quiz-prompt{color:#fff;margin-bottom:.7rem;font-size:.98rem;font-weight:650;line-height:1.35}.quiz-actions,.quiz-form-actions{gap:.5rem;display:flex}.quiz-btn{background:var(--white-12);color:#fff;min-height:2.15rem;font:inherit;cursor:pointer;border:1px solid #ffffff38;border-radius:999px;flex:1;padding:.45rem .6rem;font-size:.78rem;font-weight:650}.quiz-btn--solid{color:#2a1f17;background:#ffffffeb;border-color:#0000}.quiz-btn--live{background:#f8717138;border-color:#fca5a5}.quiz-form{flex-direction:column;gap:.55rem;display:flex}.quiz-input{color:#fff;width:100%;font:inherit;background:#140d0847;border:1px solid #ffffff38;border-radius:12px;padding:.65rem .75rem;font-size:1rem}.quiz-input::placeholder{color:#ffffff8c}.quiz-feedback,.quiz-transcript{color:#ffffffdb;margin-top:.55rem;font-size:.8rem;line-height:1.4}.quiz-feedback--good{color:#86efac}.quiz-feedback--try{color:#fecaca}.flashcard--immersive .hint{z-index:2;color:#ffffff9e;margin:.4rem 0 .75rem;position:relative}@media (width>=768px){.tabbar{padding-left:1.5rem;padding-right:1.5rem}}.reading-intro{margin-bottom:1rem}.reading-upload{width:100%;margin-bottom:1.25rem}.reading-list{flex-direction:column;gap:.75rem;list-style:none;display:flex}.reading-card{background:var(--surface);border:1px solid var(--white-08);border-radius:var(--radius);align-items:stretch;gap:.15rem;display:flex;overflow:hidden}.reading-card-main{min-width:0;color:inherit;flex:1;gap:.85rem;padding:.75rem;display:flex}.reading-cover{object-fit:cover;background:var(--surface2);border-radius:8px;flex-shrink:0;width:3.4rem;height:4.6rem}.reading-cover--placeholder{justify-content:center;align-items:center;font-size:1.4rem;display:flex}.reading-card-text{flex-direction:column;gap:.15rem;min-width:0;display:flex}.reading-card-title{font-size:.95rem;font-weight:700}.reading-card-author{color:var(--text-muted);font-size:.8rem}.reading-card-action{color:var(--accent);margin-top:auto;font-size:.78rem;font-weight:600}.reading-delete{color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:none;padding:.75rem .85rem;font-size:.75rem}.reading-delete:hover{color:var(--wrong)}.app--reading .tabbar{display:none}.main.main--reading{padding:calc(.3rem + env(safe-area-inset-top,0px)) .3rem calc(.3rem + var(--safe-bottom))}.app--reading .word-sheet{padding-bottom:calc(1rem + var(--safe-bottom))}.reader{flex-direction:column;gap:.3rem;height:100%;min-height:0;display:flex}.reader-toolbar{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.5rem;padding:0 .35rem;display:grid}.reader-back{white-space:nowrap;font-size:.85rem;font-weight:600}.reader-title{text-align:center;white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:700;overflow:hidden}.reader-page{color:var(--text-muted);text-align:right;min-width:3.6rem;font-size:.75rem}.reader-viewport-wrap{flex:1;min-height:240px;position:relative}.reader-viewport{background:var(--bg);border:1px solid var(--white-08);border-radius:var(--radius);height:100%;min-height:240px;position:relative;overflow:hidden}@media (width<=767px){.reader-viewport{border:none;border-radius:.6rem}}.status-detail{opacity:.75;overflow-wrap:anywhere;margin-top:.3rem;font-size:.72rem;display:block}.reader-touch-layer{z-index:1;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;position:absolute;inset:0}.reader-loading{z-index:2;background:rgba(var(--bg-rgb), .55);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.reader-loading .loading-screen{padding:1rem}.reader-nav{display:none}@media (width>=768px){.reader-nav{justify-content:space-between;gap:.5rem;display:flex}}.reader-nav .btn{padding:.65rem .7rem;font-size:.85rem}.word-sheet-backdrop{z-index:200;background:rgba(var(--bg-rgb), .55);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.word-sheet{width:min(480px,100%);max-height:min(72dvh,34rem);padding:.65rem 1rem calc(1rem + var(--tabbar-h) + var(--safe-bottom));background:var(--surface-solid);border:1px solid var(--white-10);border-bottom:none;border-radius:18px 18px 0 0;overflow-y:auto;box-shadow:0 -12px 40px #0006}.word-sheet-handle{background:var(--white-18);border-radius:999px;width:2.6rem;height:4px;margin:.15rem auto .75rem}.word-sheet-title-row{align-items:center;gap:.5rem;display:flex}.word-sheet-word{letter-spacing:-.02em;font-size:1.35rem}.word-sheet-pos,.word-sheet-ipa{color:var(--text-muted);font-size:.82rem}.word-sheet-ipa{font-family:ui-serif,Georgia,serif}.word-sheet-status{padding:.75rem 0}.word-sheet-body{flex-direction:column;gap:.9rem;margin:.85rem 0 1rem;display:flex}.word-sheet-body h3{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:.25rem;font-size:.72rem}.word-sheet-example{font-style:italic}.word-sheet-example-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.word-sheet-extend{flex-wrap:wrap;gap:.4rem;margin-top:.7rem;display:flex}.word-sheet-extend .word-sheet-sense:disabled{opacity:.35;cursor:default}.word-sheet-add-btn{width:100%;margin-bottom:.6rem}.word-sheet-add{gap:.6rem;margin-bottom:.9rem}.word-sheet-add-done{margin-bottom:.9rem}.word-sheet-senses{flex-wrap:wrap;gap:.4rem;display:flex}.word-sheet-sense{border:1px solid var(--white-12);background:var(--white-04);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;padding:.3rem .7rem;font-size:.78rem}.word-sheet-sense--active{border-color:rgba(var(--accent-rgb), .7);background:rgba(var(--accent-rgb), .18)}.word-sheet-close{width:100%}.image-picker{flex-direction:column;gap:.45rem;display:flex}.image-picker-label{color:var(--text-muted);font-size:.85rem}.image-picker-strip{-webkit-overflow-scrolling:touch;gap:.4rem;padding-bottom:.25rem;scroll-padding:3px;display:flex;overflow-x:auto}.image-picker-tile{border:1px solid var(--white-10);border-radius:var(--radius-sm);background:var(--surface2);cursor:pointer;flex:none;width:72px;height:54px;padding:0;transition:border-color .15s,box-shadow .15s;overflow:hidden}.image-picker-tile img{object-fit:cover;width:100%;height:100%;display:block}.image-picker-tile.is-selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.image-picker-none{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:.1rem;font-size:.95rem;display:flex}.image-picker-none-text{text-align:center;font-size:.6rem;line-height:1.1}.image-picker-search{gap:.4rem;display:flex}.image-picker-search input{flex:1;min-width:0}.image-picker-search .btn{flex:none;padding-inline:.8rem}
