@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap";*{margin:0;padding:0;box-sizing:border-box}html{background:var(--surface)}body{background:var(--bg)}*{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}input,textarea,[contenteditable=true],[contenteditable=plaintext-only]{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}:root{--primary-h: 200;--primary-s: 50%;--primary-l: 65%;--primary: hsl(var(--primary-h), var(--primary-s), var(--primary-l));--primary--dark: hsl(var(--primary-h), var(--primary-s), 55%);--primary--light: hsl(var(--primary-h), 45%, 88%);--bg-h: 210;--bg-s: 20%;--bg-l: 12%;--bg: hsl(var(--bg-h), var(--bg-s), var(--bg-l));--surface: hsl(var(--bg-h), var(--bg-s), 18%);--surface--elevated: hsl(var(--bg-h), var(--bg-s), 22%);--surface-hover: hsl(var(--bg-h), var(--bg-s), 25%);--accent-h: 35;--accent-s: 60%;--accent-l: 55%;--accent: hsl(var(--accent-h), var(--accent-s), var(--accent-l));--accent--dark: hsl(var(--accent-h), var(--accent-s), 45%);--text--primary: hsl(210, 15%, 85%);--text--secondary: hsl(210, 15%, 60%);--border: hsl(210, 15%, 30%);--error: hsl(5, 75%, 60%);--success: hsl(120, 45%, 55%);--level-a1: hsl(200, 45%, 55%);--level-a2: hsl(220, 40%, 55%);--level-b1: hsl(240, 35%, 60%);--level-b2: hsl(280, 40%, 55%);--level-c1: hsl(320, 45%, 50%);--level-c2: hsl(350, 50%, 50%);--z-base: 1;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700}html{overflow-x:hidden;overflow-y:visible;width:100%;max-width:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:var(--bg);color:var(--text--primary);margin:0 auto;max-width:375px;box-shadow:0 0 0 1px #2b333b;overflow-x:hidden}.mockup-container{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:var(--bg);color:var(--text--primary);width:100%;max-width:100%;min-height:100vh;position:relative;overflow-x:hidden;overflow-y:visible;-webkit-overflow-scrolling:touch}.page{width:100%;max-width:375px;margin:0 auto}body.body--with-bottom-nav,.body--with-bottom-nav{padding-bottom:calc(80px + env(safe-area-inset-bottom,0))}body.body--centered,.mockup-container .body--centered{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:20px;max-width:none;box-shadow:none;background:var(--bg)}@media(min-width:768px){body.body--centered,.mockup-container .body--centered{box-shadow:inset 0 0 0 1px #2b333b}}body.body--step-page{display:flex;flex-direction:column;height:100vh;touch-action:pan-y}body.body--step-page .app-bar,body.body--step-page .progress{flex-shrink:0}body.body--step-page .content{flex:1;overflow-y:auto;padding:24px 16px 100px}body.body--step-page .action-bar{flex-shrink:0}body.body--generation{display:flex;flex-direction:column;height:100vh;touch-action:pan-y}body.body--generation .app-bar{flex-shrink:0}body.body--generation .content{flex:1;overflow-y:auto;padding:24px 16px calc(120px + env(safe-area-inset-bottom,0));display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:0}body.body--generation .content>div:not(.hidden){display:flex;flex-direction:column;align-items:center;gap:24px;width:100%;max-width:380px}body.body--index{padding:40px 20px;max-width:1200px}.app-bar{background:var(--surface);border-bottom:1px solid var(--border);padding:12px;padding-top:calc(12px + env(safe-area-inset-top,0));display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:12px;position:sticky;top:0;z-index:var(--z-sticky);min-height:56px;width:100%;box-sizing:border-box}.app-bar--primary{background:var(--primary);color:#fff;border-bottom:none}.app-bar__title{font-size:18px;font-weight:600;text-align:center;grid-column:2}.app-bar__page-title,.app-bar__greeting{font-size:20px;font-weight:600;text-align:center;grid-column:2}.app-bar__step{font-size:14px;color:var(--text--secondary);font-weight:500}.app-bar__btn-back{width:44px;height:44px;background:transparent;border:none;color:var(--primary);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:8px;padding:8px;min-height:44px;min-width:44px}.app-bar--primary .app-bar__btn-back{color:#fff}.app-bar__btn-back:active{background:var(--surface--elevated)}.app-bar__btn-more,.app-bar__btn-filter{background:none;border:none;font-size:20px;cursor:pointer;padding:8px;min-height:44px;min-width:44px;color:var(--text--primary)}.app-bar--primary .app-bar__btn-more{color:#fff}.app-bar__avatar{width:44px;height:44px;border-radius:50%;background:var(--primary--light);color:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px}.progress{background:var(--surface);padding:0 16px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.progress__bar{height:4px;background:var(--border);border-radius:2px;overflow:hidden}.progress__bar--inline{height:6px;border-radius:3px;margin-bottom:12px}.progress__fill{height:100%;background:var(--accent);transition:width .3s ease;width:0%}.progress__fill--step-1{width:33.33%}.progress__fill--step-2{width:66.66%}.progress__fill--step-3{width:100%}.progress__fill--25{width:25%}.progress__fill--40{width:40%}.progress__fill--60{width:60%}.progress__fill--75{width:75%}.content{padding:16px}.content--with-bottom-nav{padding-bottom:calc(80px + env(safe-area-inset-bottom,0))}.content--with-action-bar{padding-bottom:calc(90px + env(safe-area-inset-bottom,0))}.nav{position:fixed;bottom:0;left:0;right:0;height:calc(60px + env(safe-area-inset-bottom,0));max-width:100%;margin:0 auto;background:var(--surface);border-top:1px solid var(--border);display:flex;z-index:var(--z-fixed);justify-content:space-around;align-items:flex-start;padding:0 8px;padding-bottom:env(safe-area-inset-bottom,0)}.nav__item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;color:var(--text--secondary);padding:8px;position:relative;min-height:44px}.nav__item--active{color:var(--primary)}.nav__item--active:after{content:"";position:absolute;top:0;left:20%;right:20%;height:3px;background:var(--accent);border-radius:0 0 3px 3px}.nav__icon{font-size:24px;margin-bottom:2px}.nav__label{font-size:11px;font-weight:500}.action-bar{position:fixed;bottom:0;left:0;right:0;max-width:100%;margin:0 auto;background:var(--surface);border-top:1px solid var(--border);padding:16px;display:flex;z-index:var(--z-fixed);gap:12px;flex-shrink:0}.action-bar .btn{flex:1}.lesson-action-bar{position:fixed;bottom:0;left:0;right:0;max-width:100%;margin:0 auto;background:var(--bg);border-top:1px solid var(--border);padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0));display:flex;z-index:var(--z-fixed);flex-direction:column;align-items:center;gap:12px;box-shadow:0 -4px 12px #0000004d}.lesson-action-bar .self-assessment__buttons{width:100%;max-width:380px}.fab{position:fixed;bottom:80px;right:20px;width:56px;height:56px;border-radius:50%;background:var(--accent);color:#fff;border:none;font-size:28px;z-index:calc(var(--z-fixed) + 1);cursor:pointer;box-shadow:0 4px 12px #00000026;display:flex;align-items:center;justify-content:center;z-index:50}.fab:active{transform:scale(.95)}/*!* Modifier: Slower FAB (bottom right, above action bar) *!*/.fab--slower{bottom:104px}.section,.section__header{margin-bottom:24px}.section__title{font-size:18px;font-weight:600;margin-bottom:16px}.section__title--large{font-size:24px;font-weight:700;margin-bottom:8px}.section__description{font-size:15px;color:var(--text--secondary);line-height:1.5}.btn{height:48px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transform:scale(1);transition:transform .15s ease-out,background .2s ease-out}.btn--primary{width:100%;height:48px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transform:scale(1);transition:transform .15s ease-out,background .2s ease-out}.btn--primary:hover{background:var(--accent--dark);transform:scale(1.02)}.btn--primary:active{transform:scale(.98);transition-duration:50ms}.btn--primary:disabled{background:var(--border);cursor:not-allowed;opacity:.6;transform:none}.btn--secondary{background:transparent;border:2px solid var(--border);color:var(--text--primary);display:flex;align-items:center;justify-content:center;gap:8px}.btn--secondary:active{background:var(--surface--elevated)}.btn--resume,.btn--cta{width:100%;height:44px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer}.btn--resume:active,.btn--cta:active{transform:scale(.98)}.btn--continue{width:100%;max-width:280px;height:48px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:24px;flex-shrink:0}.btn--continue:active{transform:scale(.98)}.btn--add{width:48px;height:48px;background:var(--primary);border:none;border-radius:8px;color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.btn--add:active{transform:scale(.95);background:var(--primary--dark)}.btn--add:disabled{opacity:.5;cursor:not-allowed}.form__logo{text-align:center;margin-bottom:48px}.form__logo-image{width:128px;height:128px;margin:0 auto 24px;display:block;border-radius:20%;object-fit:contain;box-shadow:0 4px 12px #00000026;transition:transform .3s ease,box-shadow .3s ease}.form__logo-image:hover{transform:translateY(-4px);box-shadow:0 8px 20px #0003}.form__app-name{font-size:32px;font-weight:700;color:var(--primary);margin-bottom:8px}.form__app-subtitle{font-size:16px;color:var(--text--secondary);font-weight:400}.form__card{background:var(--surface);border-radius:16px;padding:24px;width:100%;max-width:400px;box-shadow:0 2px 8px #0000004d;border:1px solid var(--border)}.form__title{font-size:24px;font-weight:600;margin-bottom:24px;text-align:center}.form__group{margin-bottom:24px}.form__label{display:block;font-size:14px;font-weight:600;margin-bottom:8px;color:var(--text--primary)}.form__label-hint{display:block;font-size:12px;font-weight:400;color:var(--text--secondary);margin-top:4px}.form__select{width:100%;padding:12px;font-size:16px;border:2px solid var(--border);border-radius:8px;background-color:var(--surface--elevated);color:var(--text--primary);cursor:pointer;transition:border-color .2s ease;font-family:inherit}.form__select:focus{outline:none;border-color:var(--primary)}.form__input{width:100%;height:48px;padding:12px 16px;font-size:16px;background:var(--surface--elevated);color:var(--text--primary);border:2px solid var(--border);border-radius:8px;transition:border-color .2s;font-family:inherit}.form__input:focus{outline:none;border-color:var(--primary)}.form__input--error{border-color:var(--error)}.form__input::placeholder{color:var(--text--secondary);opacity:.6}.form__input-wrapper{display:flex;gap:8px}.form__input-wrapper .form__input{flex:1;padding:0 16px;width:auto}.form__error{color:var(--error);font-size:14px;margin-top:6px;padding:.5rem .75rem;background:#fbe9e9;border-left:4px solid hsl(0,70%,50%);border-radius:4px;display:none}.form__error--visible{display:block;animation:slideInFade .3s ease-out}.form__helper{font-size:13px;color:var(--text--secondary);margin-top:8px}.form__password-wrapper{position:relative}.form__password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text--secondary);font-size:14px;cursor:pointer;padding:4px 8px;min-height:44px}.form__divider{display:flex;align-items:center;margin:24px 0;gap:16px}.form__divider:before,.form__divider:after{content:"";flex:1;height:1px;background:var(--border)}.form__divider span{font-size:14px;color:var(--text--secondary);text-transform:lowercase}.google-signin-wrapper{width:100%;display:flex;flex-direction:column;align-items:center}.google-signin-button{width:100%;display:flex;justify-content:center}.google-signin-button>div{width:100%!important}.google-signin-loading{font-size:14px;color:var(--text--secondary);margin-bottom:8px}.form__footer{text-align:center;margin-top:24px}.form__footer p{font-size:14px;color:var(--text--secondary)}.form__footer a{color:var(--primary);text-decoration:none;font-weight:600}.form__footer a:hover{text-decoration:underline}.card{background:var(--surface);border-radius:12px;padding:16px;box-shadow:0 2px 4px #0000004d;border:1px solid var(--border);margin-bottom:12px;cursor:pointer;transition:all .2s;text-decoration:none;color:var(--text--primary);display:block}.card:active{transform:scale(.98);background:var(--surface--elevated)}.card--stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:20px}.card--action{text-align:center;min-height:100px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:20px}.card--action:active{transform:scale(.95)}.card--action.card--primary{background:var(--primary);color:#fff}.card--mockup{padding:24px;text-decoration:none;display:flex;flex-direction:column}.card--mockup:hover{transform:translateY(-4px);box-shadow:0 8px 16px #0006;border-color:var(--primary)}.card--level{border:2px solid var(--border);padding:20px 16px;text-align:center;min-height:120px;justify-content:center;gap:8px}.card--level:active{transform:scale(.97)}.card--quick-start .level-badge{font-size:24px;margin-bottom:8px}.card--quick-start .card__subtitle{font-size:12px;color:var(--text--secondary);text-transform:uppercase;letter-spacing:.5px}.card--level.card--selected{border-color:var(--accent);background:var(--surface--elevated);box-shadow:0 0 0 2px var(--accent)}.card--level.card--expanded{border-color:var(--accent);background:var(--surface--elevated);box-shadow:0 0 0 2px var(--accent);min-height:auto;padding-bottom:24px}.card__expanded-content{margin-top:12px;padding-top:12px;border-top:1px solid var(--border);text-align:left}.card__expanded-content .card__description{color:var(--text--secondary);font-size:14px;line-height:1.5;margin:0}.card--grammar{border:2px solid var(--border);display:flex;align-items:flex-start;gap:12px}.card--grammar:active{transform:scale(.98)}.card--grammar.card--selected{border-color:var(--accent);background:var(--surface--elevated)}.card--dialogue{transition:all .3s;position:relative;overflow:hidden}.card--dialogue.card--active{background:var(--surface--elevated)}.card--dialogue.card--active:before{content:"";position:absolute;left:1px;top:1px;bottom:1px;width:4px;background:var(--accent);border-radius:11px 0 0 11px}.card--dialogue.card--playing{animation:cardPulse 2s ease-in-out infinite}.card__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.card__title{font-size:16px;font-weight:600;flex:1;margin-right:8px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card__meta{display:flex;gap:16px;font-size:14px;color:var(--text--secondary);margin-bottom:12px}.card__meta-item{display:flex;align-items:center;gap:4px}.card__grammar{font-size:13px;color:var(--text--secondary);margin-bottom:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card__footer{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--text--secondary)}.card__checkbox{width:24px;height:24px;border:2px solid var(--border);border-radius:6px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:14px;color:#fff;transition:all .2s}.card--grammar.card--selected .card__checkbox{background:var(--accent);border-color:var(--accent)}.card__content{flex:1}.card__action-icon{font-size:32px;margin-bottom:8px}.card__action-label{font-size:14px;font-weight:600}.card__mockup-number{font-size:14px;color:var(--accent);font-weight:700;margin-bottom:8px}.card__mockup-title{font-size:20px;font-weight:600;margin-bottom:12px}.card__mockup-description{font-size:14px;color:var(--text--secondary);line-height:1.5;margin-bottom:16px;flex:1}.card__mockup-features{list-style:none;padding:0;margin-bottom:16px}.card__mockup-features li{font-size:13px;color:var(--text--secondary);padding:4px 0 4px 20px;position:relative}.card__mockup-features li:before{content:"✓";position:absolute;left:0;color:var(--accent);font-weight:700}.card__text-estonian{font-size:18px;font-weight:500;line-height:1.5;margin-bottom:12px;color:var(--text--primary)}.card__text-translation{font-size:15px;color:var(--text--secondary);line-height:1.4;margin-bottom:12px;padding-left:8px;border-left:2px solid var(--border)}.card__stars{display:flex;align-items:center;gap:2px}.quick-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.stat{text-align:center}.stat__value{font-size:28px;font-weight:700;color:var(--accent);display:block;margin-bottom:4px}.stat__icon{font-size:20px;margin-bottom:8px;display:block}.stat__label{font-size:12px;color:var(--text--secondary);font-weight:500}.level-badge{background:var(--level-a1);color:#fff;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;white-space:nowrap}.level-badge--a1{background:var(--level-a1)}.level-badge--a2{background:var(--level-a2)}.level-badge--b1{background:var(--level-b1)}.level-badge--b2{background:var(--level-b2)}.level-badge--c1{background:var(--level-c1)}.level-badge--c2{background:var(--level-c2)}.level-badge--large{font-size:20px;font-weight:700;padding:8px 16px;border-radius:8px;margin-bottom:4px}.level-badge__name{font-size:13px;font-weight:600;margin-bottom:4px}.level-badge__description{font-size:11px;color:var(--text--secondary);line-height:1.4}.level-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:24px}.chip{background:var(--surface--elevated);color:var(--primary);padding:6px 12px;border-radius:16px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s;border:1px solid var(--primary)}.chip:active{background:var(--primary);color:var(--bg)}.chip--word{background:var(--surface--elevated);border:2px solid var(--primary);border-radius:20px;padding:8px 16px;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--text--primary)}.chip--suggested{background:var(--surface);border:2px solid var(--border);border-radius:20px;padding:8px 16px;font-size:14px;font-weight:500;color:var(--text--primary);transition:all .2s}.chip--suggested:active{transform:scale(.95);border-color:var(--primary)}.chip__btn-remove{background:transparent;border:none;color:var(--text--secondary);font-size:16px;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%}.chip__btn-remove:active{background:var(--border)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips--words{min-height:60px;margin-bottom:24px}.chips--suggested-section{margin-top:32px}.chips__title{font-size:16px;font-weight:600;margin-bottom:12px}.audio-player{background:var(--surface);padding:20px;box-shadow:0 2px 8px #0000004d;border-bottom:1px solid var(--border);position:sticky;top:56px;z-index:calc(var(--z-sticky) - 1)}.audio-player__waveform{height:60px;display:flex;align-items:center;gap:2px;margin-bottom:16px;cursor:pointer}.audio-player__waveform-bar{flex:1;background:var(--border);border-radius:2px;transition:background .2s;min-height:10px}.audio-player__waveform-bar--played{background:var(--primary)}.audio-player__progress-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;font-size:13px;color:var(--text--secondary)}.audio-player__segment-indicator{font-weight:600;color:var(--primary)}.audio-player__controls{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px}.audio-player__playback{display:flex;justify-content:center;align-items:center;gap:24px;grid-column:2}.audio-player__btn-control{background:none;border:none;color:var(--primary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .1s}.audio-player__btn-control:active{transform:scale(.95)}.audio-player__btn-control--small{width:36px;height:36px;font-size:20px}.audio-player__btn-control--large{width:56px;height:56px;background:var(--accent);border-radius:50%;color:#fff;font-size:28px}.audio-player__speed{display:flex;align-items:center;justify-content:flex-end;grid-column:3}.audio-player__btn-speed{background:none;border:1px solid var(--border);color:var(--text--secondary);padding:6px 12px;border-radius:16px;font-size:13px;font-weight:600;cursor:pointer;min-height:32px}.audio-player__btn-speed--active{background:var(--surface--elevated);color:var(--primary);border-color:var(--primary)}.dialogue{background:var(--bg);padding:16px;min-height:calc(100vh - 300px)}.lesson-detail{min-height:100vh;background:var(--bg);padding:20px;max-width:1200px;margin:0 auto}.lesson-header{background:var(--surface);border-radius:12px;padding:24px;margin-bottom:24px;border:1px solid var(--border)}.lesson-header h1{font-size:28px;font-weight:700;color:var(--text--primary);margin-bottom:16px}.lesson-meta{display:flex;gap:24px;margin-bottom:20px;flex-wrap:wrap}.lesson-meta span{font-size:14px;color:var(--text--secondary)}.lesson-actions{display:flex;gap:12px;flex-wrap:wrap}.lesson-actions button{padding:10px 20px;font-size:14px;font-weight:600;border-radius:8px;border:none;cursor:pointer;transition:all .2s;min-height:44px}.lesson-actions button:first-child{background:var(--surface--elevated);color:var(--text--primary);border:2px solid var(--border)}.lesson-actions button:first-child:hover{background:var(--border)}.btn-danger{background:var(--error)!important;color:#fff!important}.btn-danger:hover{background:#df3020!important}.audio-controls{background:var(--surface);border-radius:12px;padding:24px;margin-bottom:24px;border:1px solid var(--border)}.audio-controls h2{font-size:20px;font-weight:600;color:var(--text--primary);margin-bottom:16px}.audio-buttons{display:flex;gap:12px;flex-wrap:wrap}.audio-buttons button{padding:12px 24px;font-size:15px;font-weight:600;border-radius:8px;border:none;cursor:pointer;transition:all .2s;background:var(--accent);color:#fff;min-height:44px}.audio-buttons button:hover{background:var(--accent--dark);transform:translateY(-2px);box-shadow:0 4px 8px #0003}.audio-buttons button.playing{animation:audioPulse 1.5s ease-in-out infinite}.btn-secondary{background:var(--surface--elevated)!important;color:var(--text--primary)!important;border:2px solid var(--border)!important}.btn-secondary:hover{background:var(--border)!important}.warning{color:var(--accent);font-size:14px;margin-top:12px;padding:12px;background:#d198471a;border-radius:8px;border-left:3px solid var(--accent)}.dialogues{background:var(--surface);border-radius:12px;padding:24px;border:1px solid var(--border)}.dialogues h2{font-size:20px;font-weight:600;color:var(--text--primary);margin-bottom:20px}.dialogue-card{background:var(--surface--elevated);border-radius:12px;padding:20px;margin-bottom:16px;border:1px solid var(--border);transition:all .2s}.dialogue-card:hover{border-color:var(--primary);box-shadow:0 4px 12px #0000004d}.dialogue-card:last-child{margin-bottom:0}.dialogue-number{font-size:12px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.dialogue-line{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px;padding:12px;background:var(--surface);border-radius:8px}.dialogue-line:last-child{margin-bottom:0}.dialogue-line.estonian{background:hsla(var(--primary-h),var(--primary-s),var(--primary-l),.05)}.line-content{flex:1;display:flex;flex-direction:column;gap:8px}.line-label{font-size:12px;font-weight:700;color:var(--text--secondary);text-transform:uppercase;letter-spacing:.5px}.line-text{font-size:16px;line-height:1.5;color:var(--text--primary)}.toggle-translation-btn{padding:8px 12px;background:var(--surface--elevated);border:2px solid var(--border);border-radius:6px;font-size:18px;cursor:pointer;transition:all .2s;align-self:flex-start;min-height:36px;min-width:36px}.toggle-translation-btn:hover{border-color:var(--primary);transform:scale(1.1)}.toggle-translation-btn:active{transform:scale(.95)}.play-btn{padding:10px 16px;background:var(--accent);border:none;border-radius:8px;font-size:20px;cursor:pointer;transition:all .2s;color:#fff;min-height:44px;min-width:44px;flex-shrink:0}.play-btn:hover{background:var(--accent--dark);transform:scale(1.05)}.play-btn:active{transform:scale(.95)}.play-btn.playing{animation:playPulse 1s ease-in-out infinite}.lesson-detail .loading,.lesson-detail .error{text-align:center;padding:40px 20px;font-size:16px;color:var(--text--secondary)}.lesson-detail .error{color:var(--error)}.lesson-state{display:none;width:100%;max-width:375px;margin:0 auto;box-sizing:border-box}.lesson-state--active{display:flex;flex-direction:column;gap:0}.lesson-intro{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:100vh;padding:0;text-align:center;width:100%;box-sizing:border-box}.lesson-intro__title{font-size:28px;font-weight:700;margin-bottom:32px;color:var(--text--primary)}.lesson-intro__stats{width:calc(100% - 32px);max-width:320px;background:var(--surface);border-radius:16px;padding:24px;margin:32px 16px;border:1px solid var(--border)}.lesson-intro__stat-item{display:flex;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid var(--border)}.lesson-intro__stat-item:last-child{border-bottom:none}.lesson-intro__stat-icon{width:44px;height:44px;border-radius:50%;background:var(--surface--elevated);display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--primary);flex-shrink:0}.lesson-intro__stat-content{flex:1;text-align:left}.lesson-intro__stat-label{font-size:14px;letter-spacing:.5px;color:var(--text--secondary);margin-bottom:4px}.lesson-intro__stat-value{font-size:18px;font-weight:600;color:var(--text--primary)}.lesson-intro__begin-btn{width:calc(100% - 32px);max-width:280px;height:56px;background:var(--accent);color:#fff;border:none;border-radius:12px;font-size:18px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:12px;margin:0 16px;transition:all .2s;min-height:56px}.lesson-intro__begin-btn:hover{background:var(--accent--dark);transform:translateY(-2px);box-shadow:0 8px 16px #0000004d}.lesson-intro__begin-btn:active{transform:translateY(0)}.lesson-text__native{font-size:22px;font-weight:500;line-height:1.5;text-align:center;margin-bottom:32px;color:var(--text--primary)}.lesson-text__estonian{font-size:20px;line-height:1.5;text-align:center;margin-bottom:32px;color:var(--text--secondary)}.lesson-text__estonian--blurred{filter:blur(8px);-webkit-user-select:none;user-select:none;pointer-events:none}.lesson-text__instruction{font-size:15px;text-align:center;color:var(--text--secondary);margin-bottom:32px;line-height:1.5}.lesson-controls{display:flex;justify-content:center;gap:12px;margin-top:24px}.playing-native{width:100%;box-sizing:border-box;display:flex;flex-direction:column;min-height:100vh}.playing-native__content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:24px 16px;min-height:calc(100vh - 180px)}.playing-native__native-text{font-size:22px;font-weight:500;line-height:1.5;text-align:center;margin-bottom:32px;color:var(--text--primary)}.playing-native__estonian-text{font-size:20px;line-height:1.5;text-align:center;margin-bottom:32px;color:var(--text--secondary)}.playing-native__estonian-text--blurred{filter:blur(8px);-webkit-user-select:none;user-select:none;pointer-events:none}.playing-native__controls{display:flex;justify-content:center;margin-top:24px}.translation-timer{display:flex;flex-direction:column;align-items:center;min-height:calc(100vh - 76px);padding:24px 16px;text-align:center;width:100%;box-sizing:border-box}.translation-timer__native-text{font-size:20px;font-weight:500;line-height:1.5;margin-bottom:48px;color:var(--text--primary)}.translation-timer__instruction{font-size:16px;color:var(--text--secondary);margin-bottom:32px}.translation-timer__timer{width:200px;height:200px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-bottom:48px;transition:background-color .5s ease;border:4px solid var(--border)}.translation-timer__timer--fast{background-color:#59c05933;border-color:var(--success)}.translation-timer__timer--moderate{background-color:#ffbf0033;border-color:#ffbf00}.translation-timer__timer--slow{background-color:#e6594c33;border-color:var(--error)}.translation-timer__time{font-size:48px;font-weight:700;font-family:monospace;margin-bottom:8px}.translation-timer__label{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:1px}.translation-timer__done-btn{width:100%;max-width:280px;height:56px;background:var(--accent);color:#fff;border:none;border-radius:12px;font-size:18px;font-weight:700;cursor:pointer;transition:all .2s;min-height:56px}.translation-timer__done-btn:hover{background:var(--accent--dark);transform:translateY(-2px)}.translation-timer__done-btn:active{transform:translateY(0)}.playing-estonian{width:100%;box-sizing:border-box;display:flex;flex-direction:column;min-height:100vh}.playing-estonian__content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:24px 16px;min-height:calc(100vh - 180px)}.playing-estonian__native-text{font-size:18px;font-weight:500;line-height:1.5;text-align:center;margin-bottom:24px;color:var(--text--secondary)}.playing-estonian__estonian-text{font-size:24px;font-weight:600;line-height:1.5;text-align:center;margin-bottom:32px;color:var(--text--primary);will-change:filter;transition:filter .1s linear}.playing-estonian__estonian-text--blurred{filter:blur(8px);-webkit-user-select:none;user-select:none;pointer-events:none}.playing-estonian__controls{display:flex;justify-content:center;gap:12px;margin-top:24px}.self-assessment{display:flex;flex-direction:column;align-items:center;min-height:100vh;width:100%;box-sizing:border-box}.self-assessment__content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:24px 16px;min-height:calc(100vh - 180px);gap:32px;width:100%}.self-assessment__texts{width:100%;max-width:380px}.self-assessment__native-text{font-size:16px;font-weight:500;line-height:1.5;text-align:center;margin-bottom:8px;color:var(--text--secondary)}.self-assessment__estonian-text{font-size:24px;font-weight:600;line-height:1.5;text-align:center;color:var(--text--primary);margin-top:16px}.self-assessment__prompt{font-size:20px;font-weight:600;margin-bottom:24px;text-align:center;color:var(--text--primary)}.self-assessment__buttons{display:flex;gap:12px;width:100%;max-width:380px}.self-assessment__btn{flex:1;height:56px;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px;min-height:56px}.self-assessment__btn--yes{background:var(--success);color:#fff;border:none}.self-assessment__btn--yes:hover{background:#3fa63f;transform:translateY(-2px)}.self-assessment__btn--no{background:var(--surface);color:var(--text--primary);border:2px solid var(--border)}.self-assessment__btn--no:hover{background:var(--surface--elevated)}.self-assessment__btn:active{transform:translateY(0)}.self-assessment__repeat-btn{background:transparent;border:1px solid var(--border);color:var(--text--secondary);padding:16px 24px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;min-height:48px}.self-assessment__repeat-btn:hover{background:var(--surface--elevated)}.word-selection{display:flex;flex-direction:column;min-height:100vh;max-width:100%;box-sizing:border-box}.word-selection__content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:24px 16px;min-height:calc(100vh - 180px);width:100%}.word-selection__native-text{font-size:16px;font-weight:500;line-height:1.5;text-align:center;margin-bottom:32px;color:var(--text--secondary);padding-bottom:16px;border-bottom:2px solid var(--border)}.word-selection__chip-order{background:var(--surface);border:2px solid var(--border);border-radius:20px;padding:12px 20px;font-size:15px;font-weight:500;color:var(--text--primary);cursor:pointer;transition:all .2s;margin:0 auto 24px;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;max-width:calc(100% - 32px);width:auto;white-space:normal;text-align:center;flex-wrap:wrap}.word-selection__chip-order:active{transform:scale(.98)}.word-selection__chip-order--active{border-color:var(--accent);background:var(--surface--elevated);color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.word-selection__words{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:32px;justify-content:center}.word-selection__word-chip{background:var(--surface);border:3px solid var(--success);border-radius:24px;padding:12px 20px;font-size:16px;font-weight:500;color:var(--text--primary);cursor:pointer;transition:all .2s;box-shadow:0 0 8px #4caf5066;min-height:48px}.word-selection__word-chip:active{transform:scale(.95)}.word-selection__word-chip--red{border-color:var(--error);box-shadow:0 0 8px #f4433666}.word-selection__next-btn{width:calc(100% - 32px);max-width:320px;height:56px;background:var(--accent);color:#fff;border:none;border-radius:12px;font-size:18px;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px;min-height:56px;box-sizing:border-box}.word-selection__next-btn:disabled{background:var(--border);cursor:not-allowed;opacity:.6}.word-selection__next-btn:not(:disabled):hover{background:var(--accent--dark);transform:translateY(-2px)}.word-selection__next-btn:active{transform:translateY(0)}.completion{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:32px 16px;text-align:center;width:100%;box-sizing:border-box}.completion__icon{width:120px;height:120px;border-radius:50%;background:var(--success);display:flex;align-items:center;justify-content:center;font-size:64px;color:#fff;margin-bottom:32px;animation:completionPop .6s cubic-bezier(.68,-.55,.265,1.55)}.completion__title{font-size:28px;font-weight:700;margin-bottom:16px;color:var(--text--primary)}.completion__subtitle{font-size:16px;color:var(--text--secondary);margin-bottom:32px}.completion__stats{width:100%;max-width:360px;background:var(--surface);border-radius:16px;padding:24px;margin-bottom:32px;border:1px solid var(--border)}.completion__stat-item{padding:12px 0;border-bottom:1px solid var(--border)}.completion__stat-item:last-child{border-bottom:none}.completion__stat-label{font-size:14px;color:var(--text--secondary);margin-bottom:4px}.completion__stat-value{font-size:20px;font-weight:600;color:var(--accent)}.completion__back-btn{width:100%;max-width:320px;height:56px;background:var(--primary);color:#fff;border:none;border-radius:12px;font-size:18px;font-weight:700;cursor:pointer;transition:all .2s;min-height:56px}.completion__back-btn:hover{background:var(--primary--dark);transform:translateY(-2px)}.completion__back-btn:active{transform:translateY(0)}.completion__stars-header{display:flex;flex-direction:column;align-items:center;margin-bottom:16px}.completion__stars-earned{margin-bottom:16px;animation:starsSlideIn .5s ease-out}@keyframes starsSlideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.completion__star-details{width:100%;max-width:360px;background:var(--surface);border-radius:12px;padding:16px;margin-bottom:24px;border:1px solid var(--border)}.completion__star-line{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);font-size:.9rem;color:var(--text--primary)}.completion__star-line:last-child{border-bottom:none}.completion__star-line i.fa-star{font-size:1.1rem}.completion__star-line--new{background:#f59e0b1a;border-radius:8px;margin:-2px -8px;padding:10px 8px}.completion__new-badge{background:var(--color-warning, #f59e0b);color:#fff;font-size:.7rem;font-weight:700;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px;margin-left:auto;animation:newBadgePulse 1s ease-in-out infinite}@keyframes newBadgePulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.robot-avatar{position:relative;-webkit-user-select:none;user-select:none}.robot-avatar__svg{display:block}.robot-avatar__talking{animation:robot-talk .6s ease-in-out infinite}.circular-timer{display:flex;flex-direction:column;align-items:center;gap:12px;margin:24px 0}.circular-timer__wrapper{position:relative;display:inline-block}.circular-timer__svg{display:block}.circular-timer__progress{transition:stroke-dashoffset .3s linear,stroke .3s ease}.circular-timer__content{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.circular-timer__time{font-size:.9rem;font-weight:600;font-family:SF Mono,Monaco,Inconsolata,Fira Code,monospace;line-height:1;letter-spacing:-.05em;transition:color .3s ease}.circular-timer__label{font-size:.75rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;margin-top:4px;transition:color .3s ease}.circular-timer__description{font-size:.875rem;color:var(--text--secondary);text-align:center}@media(max-width:375px){.circular-timer__time{font-size:.9rem}.circular-timer__label{font-size:.625rem}}.chat-bubble{position:relative;display:flex;align-items:flex-start;gap:12px;margin-bottom:24px;padding:0 16px;animation:chat-bubble-fade-in .3s ease-out}.chat-bubble--left{flex-direction:row;justify-content:flex-start}.chat-bubble--right{flex-direction:row-reverse;justify-content:flex-start}.chat-bubble--left .chat-bubble-actions{margin-left:auto;margin-right:0}.chat-bubble--right .chat-bubble-actions{margin-right:auto;margin-left:0}.chat-bubble__message{max-width:65%;padding:16px 20px;border-radius:16px;box-shadow:0 2px 8px #00000026;position:relative;overflow:hidden}.chat-bubble__message--left{background:var(--surface--elevated);border-bottom-left-radius:4px;color:var(--text--primary)}.chat-bubble__message--right{background:var(--surface--elevated);border-bottom-right-radius:4px;color:var(--text--primary)}.chat-bubble__text{font-size:1.125rem;line-height:1.6;letter-spacing:.01em;transition:opacity .2s ease-out}.chat-bubble__text--peeking{text-shadow:0 0 10px rgba(100,150,255,.8),0 0 20px rgba(100,150,255,.5),0 0 30px rgba(100,150,255,.3);transition:text-shadow 1s ease}@media(max-width:375px){.chat-bubble{gap:8px;margin-bottom:16px;padding:0 12px}.chat-bubble__message{max-width:70%;padding:12px 16px}.chat-bubble__text{font-size:1rem}}.system-message{display:flex;justify-content:center;margin:32px 0}.system-message__badge{display:inline-block;padding:6px 16px;background:hsla(var(--bg-h),var(--bg-s),18%,.5);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:12px;font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text--secondary);box-shadow:0 2px 8px #0000001a}@media(max-width:375px){.system-message{margin:24px 0}.system-message__badge{padding:4px 12px;font-size:.625rem}}.assessment-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-end;animation:modal-fade-in .2s ease-out;pointer-events:none}.assessment-modal--transparent{background:transparent}.assessment-modal__backdrop{position:absolute;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.assessment-modal__sheet{position:relative;width:100%;max-width:500px;margin:0 auto;background:var(--surface);border-top-left-radius:24px;border-top-right-radius:24px;padding:32px 24px;box-shadow:0 -4px 24px #0000004d;animation:modal-slide-up .3s ease-out;pointer-events:auto}.assessment-modal__title{text-align:center;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text--secondary);margin-bottom:24px}.assessment-modal__buttons{display:grid;grid-template-columns:1fr 1fr;gap:16px}.assessment-modal__btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 16px;border:2px solid transparent;border-radius:16px;background:var(--surface--elevated);color:var(--text--primary);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.assessment-modal__btn i{font-size:1.5rem}.assessment-modal__btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.assessment-modal__btn:active{transform:translateY(0)}.assessment-modal__btn:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px hsla(var(--accent-h),var(--accent-s),var(--accent-l),.3)}.assessment-modal__btn--yes:hover{background:#39ac6326;border-color:#39ac63;color:#52e086}.assessment-modal__btn--no:hover{background:#e6594c26;border-color:#e6594c;color:#f47c71}@media(max-width:375px){.assessment-modal__sheet{padding:24px 16px}.assessment-modal__buttons{gap:12px}.assessment-modal__btn{padding:16px 12px;font-size:.8125rem}.assessment-modal__btn i{font-size:1.25rem}}.translation-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-end;animation:modal-fade-in .2s ease-out;pointer-events:none}.translation-modal--transparent{background:transparent}.translation-modal__sheet{position:relative;width:100%;max-width:500px;margin:0 auto;background:var(--surface);border-top-left-radius:24px;border-top-right-radius:24px;padding:32px 24px;box-shadow:0 -4px 24px #0000004d;animation:modal-slide-up .3s ease-out;pointer-events:auto}.translation-modal__sheet--compact{padding:20px 24px}.translation-modal__title{text-align:center;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text--secondary);margin-bottom:16px}.translation-modal__buttons{display:flex;justify-content:center}.translation-modal__btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 48px;border:2px solid transparent;border-radius:16px;background:var(--surface--elevated);color:var(--text--primary);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.translation-modal__btn i{font-size:1.5rem}.translation-modal__btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.translation-modal__btn:active{transform:translateY(0)}.translation-modal__btn:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px hsla(var(--accent-h),var(--accent-s),var(--accent-l),.3)}.translation-modal__btn--done:hover{background:#39ac6326;border-color:#39ac63;color:#52e086}@media(max-width:375px){.translation-modal__sheet{padding:24px 16px}.translation-modal__sheet--compact{padding:16px}.translation-modal__btn{padding:16px 36px;font-size:.8125rem}.translation-modal__btn i{font-size:1.25rem}}.word-selection-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-end;animation:modal-fade-in .2s ease-out}.word-selection-modal__backdrop{position:absolute;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.word-selection-modal__sheet{position:relative;width:100%;max-width:500px;margin:0 auto;background:var(--surface);border-top-left-radius:24px;border-top-right-radius:24px;padding:32px 24px;box-shadow:0 -4px 24px #0000004d;animation:modal-slide-up .3s ease-out;max-height:70vh;overflow-y:auto}.word-selection-modal__title{text-align:center;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:24px}.word-selection-modal__words{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:32px}.word-selection-modal__word{padding:10px 16px;border:2px solid transparent;border-radius:12px;background:var(--surface--elevated);color:var(--text--primary);font-size:1.125rem;font-weight:500;cursor:pointer;transition:all .15s ease;-webkit-user-select:none;user-select:none}.word-selection-modal__word:hover{background:var(--surface);transform:translateY(-2px)}.word-selection-modal__word:active{transform:translateY(0)}.word-selection-modal__word--selected{background:#e6594c33;border-color:#e6594c;color:#f47c71}.word-selection-modal__word--focused{outline:none;box-shadow:0 0 0 3px hsla(var(--accent-h),var(--accent-s),var(--accent-l),.3)}.word-selection-modal__continue{width:100%;display:flex;align-items:center;justify-content:center;gap:12px;padding:16px 24px;border:none;border-radius:16px;background:var(--accent);color:#fff;font-size:1rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px hsla(var(--accent-h),var(--accent-s),var(--accent-l),.3)}.word-selection-modal__continue:hover{background:var(--accent--dark);transform:translateY(-2px);box-shadow:0 6px 16px hsla(var(--accent-h),var(--accent-s),var(--accent-l),.4)}.word-selection-modal__continue:active{transform:translateY(0)}.word-selection-modal__continue:focus{outline:none;box-shadow:0 0 0 3px hsla(var(--accent-h),var(--accent-s),var(--accent-l),.3)}.word-selection-modal__hint{text-align:center;font-size:.875rem;color:var(--text--secondary);margin-top:16px}@media(max-width:375px){.word-selection-modal__sheet{padding:24px 16px;max-height:75vh}.word-selection-modal__words{gap:8px;margin-bottom:24px}.word-selection-modal__word{padding:8px 12px;font-size:1rem}.word-selection-modal__continue{padding:14px 20px;font-size:.875rem}}.chat-bubble-actions{display:flex;flex-direction:column;gap:8px;align-self:flex-start;margin:0 8px;z-index:10;min-width:40px;flex-shrink:0}.peek-btn,.slower-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:2px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text--secondary);cursor:pointer;transition:all .2s ease;font-size:1rem;box-shadow:0 2px 8px #0003}.peek-btn:hover,.slower-btn:hover{background:var(--surface--elevated);color:var(--text--primary);border-color:var(--accent);transform:scale(1.1)}.peek-btn:active,.slower-btn:active{transform:scale(1)}.peek-btn--active{background:var(--accent);border-color:var(--accent);color:#fff}@media(max-width:375px){.peek-btn,.slower-btn{width:36px;height:36px;font-size:.875rem}.chat-bubble-actions{gap:6px;margin:0 6px}}.lesson-chat{display:flex;flex-direction:column;height:100vh;max-width:100%;background:var(--bg);overflow:hidden}.lesson-chat__scroll-container{flex:1;overflow-y:auto;overflow-x:hidden;position:relative;-webkit-overflow-scrolling:touch}.lesson-chat__fade-gradient{position:sticky;top:0;height:32px;background:linear-gradient(to bottom,var(--bg) 0%,transparent 100%);pointer-events:none;z-index:var(--z-base)}.lesson-chat__history{padding:0 0 24px}.lesson-chat__history-item{opacity:.5;transition:opacity .3s ease}.lesson-chat__history-item:hover{opacity:1}.lesson-chat__active-area{min-height:500px;padding:24px 0}.lesson-chat__timer-inline{display:flex;justify-content:center;margin-top:24px;padding:0 16px}.lesson-chat__timer-wrapper{display:flex;flex-direction:column;align-items:center;gap:24px;margin-top:32px;padding:0 16px}.lesson-chat__done-btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 32px;border:2px solid var(--accent);border-radius:8px;background:var(--accent);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px}.lesson-chat__done-btn:hover{background:var(--accent--dark);border-color:var(--accent--dark);transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.lesson-chat__done-btn:active{transform:translateY(0);box-shadow:0 2px 6px #0003}.lesson-chat__done-wrapper{display:flex;justify-content:center;margin-top:24px;padding:0 16px}.lesson-chat__blocked-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);cursor:pointer;-webkit-tap-highlight-color:transparent}.lesson-chat__blocked-content{display:flex;flex-direction:column;align-items:center;gap:16px;padding:32px;background:var(--bg--card);border-radius:16px;text-align:center;animation:blocked-fade-in .3s ease}.lesson-chat__blocked-icon{width:64px;height:64px;border-radius:50%;background:var(--primary);display:flex;align-items:center;justify-content:center;font-size:24px;color:#fff;animation:blocked-pulse 2s ease-in-out infinite}.lesson-chat__blocked-text{font-size:1rem;color:var(--text--primary);margin:0}@media(max-width:375px){.lesson-chat__active-area{min-height:450px}.lesson-chat__timer-wrapper{gap:20px;margin-top:24px}.lesson-chat__done-btn{padding:10px 24px;font-size:.875rem}}@media(prefers-reduced-motion:reduce){.lesson-chat__scroll-container{scroll-behavior:auto}.lesson-chat__history-item,.lesson-chat__done-btn{transition:none}.chat-bubble{animation:none}.chat-bubble__text,.chat-bubble__message{transition:none}}.lesson-listen{display:flex;flex-direction:column;height:100vh;max-width:100%;background:var(--bg);overflow:hidden}.lesson-listen__scroll-container{flex:1;overflow-y:auto;overflow-x:hidden;position:relative;-webkit-overflow-scrolling:touch}.lesson-listen__fade-gradient{position:sticky;top:0;height:32px;background:linear-gradient(to bottom,var(--bg) 0%,transparent 100%);pointer-events:none;z-index:var(--z-base)}.lesson-listen__history{padding:0 0 24px}.lesson-listen__history-item{opacity:.5;transition:opacity .3s ease}.lesson-listen__history-item:hover{opacity:1}.lesson-listen__active-area{min-height:300px;padding:24px 0}.lesson-listen__pause-indicator{display:flex;justify-content:center;padding:24px 0}.lesson-listen__pause-dots{display:flex;gap:8px}.lesson-listen__pause-dot{width:10px;height:10px;border-radius:50%;background:var(--text--secondary);animation:pause-dot-pulse 1.4s ease-in-out infinite}.lesson-listen__pause-dot:nth-child(1){animation-delay:0s}.lesson-listen__pause-dot:nth-child(2){animation-delay:.2s}.lesson-listen__pause-dot:nth-child(3){animation-delay:.4s}@keyframes pause-dot-pulse{0%,80%,to{opacity:.3;transform:scale(1)}40%{opacity:1;transform:scale(1.2)}}.lesson-listen__blocked-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);cursor:pointer;-webkit-tap-highlight-color:transparent}.lesson-listen__blocked-content{display:flex;flex-direction:column;align-items:center;gap:16px;padding:32px;background:var(--bg--card);border-radius:16px;text-align:center;animation:blocked-fade-in .3s ease}.lesson-listen__blocked-icon{width:64px;height:64px;border-radius:50%;background:var(--primary);display:flex;align-items:center;justify-content:center;font-size:24px;color:#fff;animation:blocked-pulse 2s ease-in-out infinite}.lesson-listen__blocked-text{font-size:1rem;color:var(--text--primary);margin:0}@media(max-width:375px){.lesson-listen__active-area{min-height:250px}.lesson-listen__pause-dot{width:8px;height:8px}.lesson-listen__pause-dots{gap:6px}}@media(prefers-reduced-motion:reduce){.lesson-listen__scroll-container{scroll-behavior:auto}.lesson-listen__history-item{transition:none}.lesson-listen__pause-dot{animation:none;opacity:.6}}.vocab-counters{display:flex;align-items:center;gap:12px;background:var(--surface--elevated);border:1px solid var(--border);border-radius:20px;padding:12px 16px;font-size:15px;font-weight:600;min-height:44px}.vocab-counters__green{color:var(--success);display:flex;align-items:center;gap:6px}.vocab-counters__red{color:var(--error);display:flex;align-items:center;gap:6px}.vocab-counters__separator{color:var(--text--secondary)}.vocab-counters__dot{width:8px;height:8px;border-radius:50%;display:inline-block}.vocab-counters__dot--green{background-color:var(--success)}.vocab-counters__dot--red{background-color:var(--error)}.vocab-counters--pulse{animation:counterPulse .3s ease-in-out}.vocab-counters--hidden{display:none}.vocabulary-stats{background:var(--surface);border-radius:12px;padding:20px;margin-bottom:24px;border:1px solid var(--border);display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.vocabulary-stats .stat{text-align:center}.vocabulary-columns{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:80px}@media(max-width:768px){.vocabulary-columns{grid-template-columns:1fr}}.vocabulary-empty-state{text-align:center;padding:60px 20px;background:var(--surface);border-radius:12px;border:1px solid var(--border)}.vocabulary-empty-state i{font-size:64px;color:var(--text--secondary);opacity:.5;margin-bottom:24px;display:block}.vocabulary-empty-state h2{font-size:24px;font-weight:600;color:var(--text--primary);margin-bottom:12px}.vocabulary-empty-state p{font-size:16px;color:var(--text--secondary)}.vocabulary-error{text-align:center;padding:40px 20px;background:var(--surface);border-radius:12px;border:1px solid var(--border)}.vocabulary-error i{font-size:48px;color:var(--error);margin-bottom:16px;display:block}.vocabulary-error p{font-size:16px;color:var(--text--secondary);margin-bottom:20px}.vocabulary-error .btn{margin:0 auto;max-width:200px}.variation-btn{background:var(--accent);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;font-size:.95rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .2s ease}.variation-btn .icon-refresh{flex-shrink:0}.variation-btn:hover{background:var(--accent--dark);transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.variation-btn:active{transform:translateY(0);box-shadow:0 2px 6px #0003}.variation-btn:disabled{background:var(--border);color:var(--text--secondary);cursor:not-allowed;transform:none;box-shadow:none;opacity:.6}.vocabulary-column{background:var(--surface);border-radius:12px;padding:16px;box-shadow:0 2px 8px #0003}.vocabulary-column__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.vocabulary-column__title{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:600;color:var(--text--primary)}.vocabulary-column__count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 8px;background:var(--surface--elevated);border-radius:12px;font-size:12px;font-weight:600;color:var(--text--secondary)}.vocabulary-column__add-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--accent);border:none;border-radius:50%;color:#fff;font-size:16px;cursor:pointer;transition:transform .2s,background .2s}.vocabulary-column__add-btn:hover{transform:scale(1.05);background:var(--accent--dark)}.vocabulary-column__add-btn:active{transform:scale(.95)}.vocabulary-column__content{display:flex;flex-direction:column;gap:12px;user-select:none;-webkit-user-select:none}.vocabulary-column__words{display:flex;flex-direction:column;gap:8px;touch-action:pan-y;-webkit-overflow-scrolling:touch;-webkit-tap-highlight-color:transparent}.vocabulary-column__empty{padding:40px 20px;text-align:center;color:var(--text--secondary);font-size:14px}.vocabulary-column--not-learned .vocabulary-column__title{color:var(--accent)}.vocabulary-column--learned .vocabulary-column__title{color:var(--primary)}.word-item{display:flex;justify-content:space-between;align-items:center;min-height:44px;padding:12px 16px;background:var(--surface--elevated);border-radius:8px;border:2px solid transparent;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s}.word-item:hover{border-color:var(--primary--light);transform:translateY(-1px)}.word-item--pressed{transform:scale(.98);background:var(--bg)}.vocabulary-column--not-learned .word-item{border-left:3px solid var(--accent)}.vocabulary-column--learned .word-item{border-left:3px solid var(--primary)}.word-item__text{font-size:16px;font-weight:500;color:var(--text--primary)}.word-item__mastery{display:flex;gap:4px;align-items:center}.word-item__mastery-dot{width:6px;height:6px;border-radius:50%;background:var(--border);transition:background .2s}.word-item__mastery-dot--filled{background:var(--primary)}.add-word-input{display:flex;gap:8px;align-items:flex-start;padding:12px;background:var(--bg);border-radius:8px;border:2px solid var(--accent)}.add-word-input__field{flex:1;padding:8px 12px;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text--primary);font-size:14px;outline:none}.add-word-input__field:focus{border-color:var(--primary)}.add-word-input__field::placeholder{color:var(--text--secondary)}.add-word-input__actions{display:flex;gap:8px}.add-word-input__btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:6px;cursor:pointer;transition:all .2s;font-size:14px}.add-word-input__btn--submit{background:var(--success);color:#fff}.add-word-input__btn--submit:hover:not(:disabled){background:#3fa63f}.add-word-input__btn--submit:disabled{opacity:.5;cursor:not-allowed}.add-word-input__btn--cancel{background:var(--surface);color:var(--text--secondary)}.add-word-input__btn--cancel:hover{background:var(--surface--elevated)}.add-word-input__error{margin-top:8px;font-size:12px;color:var(--error)}.word-action-menu__backdrop{position:fixed;inset:0;background:#0009;display:flex;align-items:flex-end;justify-content:center;z-index:var(--z-modal-backdrop);animation:fadeIn .2s}.word-action-menu{width:100%;max-width:500px;background:var(--surface);border-radius:16px 16px 0 0;padding:24px;animation:slideUp .3s;z-index:var(--z-modal)}.word-action-menu__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.word-action-menu__word{font-size:20px;font-weight:600;color:var(--text--primary)}.word-action-menu__close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:50%;color:var(--text--secondary);font-size:20px;cursor:pointer;transition:all .2s}.word-action-menu__close:hover{background:var(--surface--elevated);color:var(--text--primary)}.word-action-menu__stats{display:flex;flex-direction:column;gap:8px;padding:16px;margin-bottom:16px;background:var(--surface--elevated);border-radius:8px;border-left:4px solid var(--primary)}.word-action-menu__score{font-size:18px;font-weight:600}.word-action-menu__score--positive{color:var(--success, #4caf50)}.word-action-menu__score--negative{color:var(--error, #f44336)}.word-action-menu__stat{font-size:14px;color:var(--text--secondary)}.word-action-menu__stat--muted{font-size:13px;color:var(--text--tertiary)}.word-action-menu__actions{display:flex;flex-direction:column;gap:8px}.word-action-menu__action{display:flex;align-items:center;gap:16px;min-height:56px;padding:16px;background:var(--surface--elevated);border:none;border-radius:8px;color:var(--text--primary);font-size:16px;cursor:pointer;transition:all .2s;text-align:left}.word-action-menu__action:hover{background:var(--bg);transform:translate(4px)}.word-action-menu__action i{font-size:18px;width:24px;color:var(--primary)}.word-action-menu__action--danger,.word-action-menu__action--danger i{color:var(--error)}.word-explanation__backdrop{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:var(--z-popover);padding:20px;animation:fadeIn .2s}.word-explanation{width:100%;max-width:600px;max-height:80vh;background:var(--surface);border-radius:12px;padding:24px;display:flex;flex-direction:column;animation:scaleIn .3s;overflow:hidden;z-index:var(--z-tooltip)}.word-explanation__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-shrink:0}.word-explanation__word{font-size:24px;font-weight:600;color:var(--primary)}.word-explanation__close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:50%;color:var(--text--secondary);font-size:20px;cursor:pointer;transition:all .2s;flex-shrink:0}.word-explanation__close:hover{background:var(--surface--elevated);color:var(--text--primary)}.word-explanation__content{flex:1;overflow-y:auto}.word-explanation__text{color:var(--text--primary);line-height:1.6}.word-explanation__text p{margin-bottom:12px}.word-explanation__text p:last-child{margin-bottom:0}.word-explanation__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center}.word-explanation__spinner{width:40px;height:40px;border:4px solid var(--surface--elevated);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.word-explanation__loading p{color:var(--text--secondary)}.word-explanation__error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center}.word-explanation__error i{font-size:48px;color:var(--error);margin-bottom:16px}.word-explanation__error p{color:var(--text--primary);margin-bottom:20px}@media(min-width:768px){.vocabulary-columns{flex-direction:row;gap:24px}.vocabulary-column{flex:1}.word-action-menu__backdrop{align-items:center}.word-action-menu{border-radius:12px;animation:scaleIn .3s}.word-explanation{max-height:600px}}@media(min-width:1200px){.vocabulary-columns{max-width:1200px;margin:0 auto}.vocabulary-stats{max-width:600px;margin:16px auto}}.fallback-order-list{margin-bottom:2rem;padding:1rem;border:1px solid #ddd;border-radius:4px;background:#f9f9f9}.fallback-order-list h4{margin-top:0;margin-bottom:1rem;font-size:1rem;font-weight:600;color:#2c3e50}.provider-items{display:flex;flex-direction:column;gap:.5rem}.provider-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#fff;border:1px solid #ddd;border-radius:4px;cursor:move;transition:all .2s ease}.provider-item:hover{border-color:#4a90e2;box-shadow:0 2px 4px #0000001a}.provider-item.dragging{opacity:.5;cursor:grabbing}.drag-handle{font-size:1.2rem;color:#999;cursor:grab;-webkit-user-select:none;user-select:none}.provider-item.dragging .drag-handle{cursor:grabbing}.provider-name{flex:1;font-weight:500;color:#2c3e50}.badge-primary{padding:.25rem .5rem;background:#4a90e2;color:#fff;border-radius:3px;font-size:.8rem;font-weight:600}.tts-fallback-section{margin-top:2rem;padding:1.5rem;border-top:2px solid #ddd}.tts-fallback-section h3{margin-top:0;margin-bottom:.5rem;font-size:1.25rem;color:#2c3e50}.tts-fallback-section .help-text{margin-bottom:1.5rem;color:#666;font-size:.9rem}.music-toggle{position:relative;width:40px;height:40px;border-radius:50%;background:#336699d9;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all .3s ease;box-shadow:0 2px 8px #0003;flex-shrink:0;margin-left:16px}.music-toggle:hover{background:#369;transform:scale(1.05);box-shadow:0 4px 12px #0000004d}.music-toggle:active{transform:scale(.95)}.music-toggle:focus{outline:2px solid var(--primary--light);outline-offset:2px}.music-toggle--playing{animation:music-pulse 2s ease-in-out infinite}@media(max-width:375px){.music-toggle{width:36px;height:36px;font-size:.9rem;margin-left:12px}}.animation{position:relative;width:80px;height:80px;margin:0 auto;flex-shrink:0}.animation__circle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;border:3px solid var(--accent);border-radius:50%;opacity:.3;animation:circlePulse 2s ease-in-out infinite}.animation__icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:32px;color:var(--accent);animation:iconFloat 2s ease-in-out infinite}.status__title{font-size:24px;font-weight:700;margin-bottom:8px;text-align:center}.status__description{font-size:15px;color:var(--text--secondary);text-align:center;margin-bottom:0;line-height:1.5}.step-progress{width:100%;max-width:320px;margin:0 auto;flex-shrink:0}.step-progress__item{display:flex;align-items:center;gap:12px;padding:12px;margin-bottom:8px;border-radius:8px;transition:all .3s}.step-progress__item--active{background:var(--surface--elevated)}.step-progress__item--completed{opacity:.6}.step-progress__icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;border:2px solid var(--border);color:var(--text--secondary)}.step-progress__item--active .step-progress__icon{border-color:var(--accent);color:var(--accent);animation:stepPulse 1.5s ease-in-out infinite}.step-progress__item--completed .step-progress__icon{background:var(--success);border-color:var(--success);color:#fff}.step-progress__content{flex:1}.step-progress__name{font-size:15px;font-weight:600;margin-bottom:2px}.step-progress__description{font-size:12px;color:var(--text--secondary)}.success-icon{width:120px;height:120px;border-radius:50%;background:var(--success);display:flex;align-items:center;justify-content:center;font-size:64px;color:#fff;margin:0 auto 24px;flex-shrink:0;animation:successPop .5s cubic-bezier(.68,-.55,.265,1.55)}.bottom-info{position:fixed;bottom:0;left:0;right:0;max-width:100%;margin:0 auto;background:var(--surface);border-top:1px solid var(--border);padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0));display:flex;align-items:center;justify-content:space-between;z-index:var(--z-fixed)}.bottom-info__content{flex:1;text-align:center}.bottom-info__text{font-size:13px;color:var(--text--secondary);margin-bottom:8px}.bottom-info__time{font-size:15px;font-weight:600;color:var(--accent)}.card--photo{border:2px dashed var(--accent);padding:20px 16px;text-align:center;min-height:120px;justify-content:center;gap:8px;background:var(--surface);transition:all .2s ease}.card--photo:hover{background:var(--surface--elevated);border-color:var(--accent);transform:translateY(-2px)}.card--photo:active{transform:scale(.97)}.card--photo .card__icon{font-size:32px;margin-bottom:4px}.upload-zone{background:var(--surface);border:2px dashed var(--border);border-radius:12px;padding:48px 24px;text-align:center;cursor:pointer;transition:all .2s ease;margin:16px 0}.upload-zone:hover{border-color:var(--primary);background:var(--surface--elevated)}.upload-zone__icon{font-size:48px;color:var(--primary);margin-bottom:16px;display:block}.upload-zone__title{font-size:16px;font-weight:600;color:var(--text--primary);margin-bottom:8px}.upload-zone__subtitle{font-size:14px;color:var(--text--secondary);margin:12px 0}.upload-zone__hint{font-size:12px;color:var(--text--secondary);margin-top:12px}.image-preview{background:var(--surface);border-radius:12px;padding:16px;margin:16px 0;border:1px solid var(--border)}.image-preview__img{width:100%;max-height:300px;object-fit:contain;border-radius:8px;margin-bottom:12px;background:var(--bg)}.image-preview__info{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text--secondary)}.image-preview__size{margin-left:auto;font-size:12px;color:var(--text--secondary)}.progress-bar{width:100%;height:8px;background:var(--surface);border-radius:4px;overflow:hidden;margin:16px 0 8px}.progress-bar__fill{height:100%;background:var(--primary);transition:width .3s ease;border-radius:4px}.progress-bar__text{text-align:center;font-size:14px;color:var(--text--secondary);margin-top:8px}.extraction-summary{background:var(--surface);border-radius:12px;padding:16px;margin:16px 0;border:1px solid var(--border)}.extraction-summary__item{display:flex;flex-direction:column;gap:4px;padding:12px 0;border-bottom:1px solid var(--border)}.extraction-summary__item:last-child{border-bottom:none}.extraction-summary__label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text--secondary)}.extraction-summary__value{font-size:14px;color:var(--text--primary);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.extraction-summary__value .level-badge{margin-right:8px}.extraction-summary__value i{font-size:16px}.info--success{background:#59c05926;border-color:var(--success)}.info--error{background:#e6594c26;border-color:var(--error)}.info--warning{background:#d1984726;border-color:var(--accent)}.star-display{display:inline-flex;align-items:center;justify-content:center;transition:transform .2s ease,color .2s ease}.star-display--sm{font-size:1rem}.star-display--md{font-size:1.5rem}.star-display--lg{font-size:2rem}.star-display--earned{color:var(--color-warning, #f59e0b)}.star-display--empty{color:var(--text--tertiary, #9ca3af)}.star-display--animated{animation:starPop .5s ease-out}@keyframes starPop{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.3)}to{transform:scale(1);opacity:1}}.stars-progress{display:flex;align-items:center;gap:.5rem}.stars-progress__stars{display:flex;align-items:center;gap:.25rem}.stars-progress__count{font-size:.875rem;color:var(--text--secondary, #6b7280);font-weight:500;margin-left:.25rem}.level-selector{display:flex;flex-direction:column;gap:1.5rem;padding:1rem}.level-selector__progress{display:flex;justify-content:center;padding:.5rem 0}.level-selector__modes{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.level-selector__mode{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.25rem 1rem;background:var(--surface, #ffffff);border:2px solid var(--border, #e5e7eb);border-radius:12px;cursor:pointer;transition:all .2s ease;text-align:center}.level-selector__mode:hover:not(:disabled){border-color:var(--primary, #4b7bec);background:var(--surface-hover, #f9fafb);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.level-selector__mode:active:not(:disabled){transform:translateY(0)}.level-selector__mode:disabled{opacity:.6;cursor:not-allowed}.level-selector__mode--completed{border-color:var(--color-success, #10b981);background:#10b9810d}.level-selector__mode--completed:hover:not(:disabled){border-color:var(--color-success, #10b981);background:#10b9811a}.level-selector__mode-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--primary, #4b7bec);font-size:1.25rem}.level-selector__mode--completed .level-selector__mode-icon{background:#10b98126;color:var(--color-success, #10b981)}.level-selector__mode-name{font-size:1.125rem;font-weight:600;color:var(--text--primary, #1f2937)}.level-selector__mode-description{font-size:.8125rem;color:var(--text--secondary, #6b7280)}.level-selector__mode-reward{font-size:.75rem;font-weight:500;padding:.25rem .5rem;border-radius:4px;margin-top:.25rem}.level-selector__earned{color:var(--color-success, #10b981)}.level-selector__earned i{margin-right:.25rem}.level-selector__partial{color:var(--color-warning, #f59e0b)}.level-selector__partial i{margin-right:.25rem}.level-selector__available{color:var(--text--secondary, #6b7280)}.level-selector__available i{color:var(--color-warning, #f59e0b);margin-right:.125rem}.level-selector__info{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;background:var(--surface-secondary, #f9fafb);border-radius:8px;font-size:.8125rem}.level-selector__info-item{display:flex;align-items:flex-start;gap:.5rem;color:var(--text--secondary, #6b7280)}.level-selector__info-item i{color:var(--primary, #4b7bec);margin-top:.125rem;flex-shrink:0}.level-selector__info-item strong{color:var(--text--primary, #1f2937)}.level-selector__mode--vocab{grid-column:1 / -1;flex-direction:row;justify-content:flex-start;padding:1rem 1.25rem;gap:1rem}.level-selector__mode--vocab .level-selector__mode-icon{width:40px;height:40px;font-size:1rem;flex-shrink:0}.level-selector__mode--vocab .level-selector__mode-name{font-size:1rem}.level-selector__mode--vocab .level-selector__mode-description{font-size:.75rem}.level-selector__mode--vocab .level-selector__mode-reward{margin-left:auto;margin-top:0}@media(max-width:360px){.level-selector__modes{grid-template-columns:1fr}.level-selector__mode{padding:1rem}}@keyframes slideInFade{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}@keyframes cardPulse{0%,to{box-shadow:0 0 #d39b4f66}50%{box-shadow:0 0 0 8px #d39b4f00}}@keyframes circlePulse{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.3}50%{transform:translate(-50%,-50%) scale(1.2);opacity:.1}}@keyframes iconFloat{0%,to{transform:translate(-50%,-50%) translateY(0)}50%{transform:translate(-50%,-50%) translateY(-8px)}}@keyframes stepPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes successPop{0%{transform:scale(0)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes counterPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@keyframes completionPop{0%{transform:scale(0)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes audioPulse{0%,to{box-shadow:0 0 #d39b4fb3}50%{box-shadow:0 0 0 10px #d39b4f00}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes music-pulse{0%,to{transform:scale(1);box-shadow:0 2px 8px #0003}50%{transform:scale(1.05);box-shadow:0 4px 12px #3696}}@keyframes robot-talk{0%,to{opacity:1}50%{opacity:.3}}@keyframes chat-bubble-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slideInFromTop{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInFromLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInFromRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes backgroundReveal{0%{opacity:0}to{opacity:1}}@keyframes blocked-fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes blocked-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.empty{text-align:center;padding:32px 16px}.empty--words{width:100%;padding:20px;font-size:14px}.empty__icon{font-size:48px;margin-bottom:12px;opacity:.5}.empty__text{font-size:16px;color:var(--text--secondary);margin-bottom:16px}.info-text{font-size:13px;color:var(--text--secondary);text-align:center;margin:12px 0}.word-count,.selection-info{font-size:13px;color:var(--text--secondary);margin-bottom:16px}.selection-info{background:var(--surface--elevated);border:1px solid var(--border);border-radius:8px;padding:12px 16px;margin-bottom:20px;display:flex;align-items:center;gap:12px}.selection-info i{font-size:18px;color:var(--primary)}.selection-text{flex:1;font-size:13px;color:var(--text--secondary);line-height:1.4}.swipe-hint{text-align:center;padding:16px;font-size:13px;color:var(--text--secondary);display:flex;align-items:center;justify-content:center;gap:8px}.swipe-hint i{font-size:16px}@media(min-width:768px){body{max-width:768px;box-shadow:0 0 0 1px #2b333b}.page,.nav,.action-bar,.bottom-info{max-width:768px}.fab{right:calc(50% - 364px)}body.body--index{padding:20px 16px}header h1{font-size:28px}.intro,.design-specs{padding:24px}.mockups-grid{grid-template-columns:1fr}.lesson-action-bar{max-width:768px}}@media(max-width:374px){.form__app-name{font-size:28px}.form__card{padding:20px}.card--stats{gap:12px}.stat__value{font-size:24px}.content{padding:12px}.card--lesson{padding:14px}.audio-player{padding:16px}.audio-player__controls{gap:8px}.audio-player__playback{gap:16px}.dialogue{padding:12px}.fab{right:20px}}@media(min-width:768px){.upload-zone{padding:64px 32px}.upload-zone__icon{font-size:64px}.image-preview__img{max-height:400px}.extraction-summary{padding:24px}.extraction-summary__item{flex-direction:row;align-items:center;padding:16px 0}.extraction-summary__label{min-width:140px;margin-bottom:0}}header{text-align:center;margin-bottom:48px}header h1{font-size:36px;color:var(--primary);margin-bottom:12px}.subtitle{font-size:18px;color:var(--text--secondary)}.intro{background:var(--surface);border-radius:16px;padding:32px;margin-bottom:32px;box-shadow:0 2px 8px #0000004d;border:1px solid var(--border)}.intro h2{font-size:24px;margin-bottom:16px;color:var(--primary--dark)}.intro p{line-height:1.6;margin-bottom:12px;color:var(--text--secondary)}.intro ul{margin:16px 0 16px 24px;line-height:1.8;color:var(--text--secondary)}.mockups-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-bottom:32px}.view-btn{background:var(--primary);color:#fff;padding:12px 24px;border-radius:8px;text-align:center;font-weight:600;text-decoration:none;display:block}.view-btn:hover{background:var(--primary--dark)}.design-specs{background:var(--surface);border-radius:16px;padding:32px;box-shadow:0 2px 8px #0000004d;border:1px solid var(--border)}.design-specs h2{font-size:24px;margin-bottom:24px;color:var(--primary--dark)}.spec-section{margin-bottom:24px}.spec-section h3{font-size:18px;margin-bottom:12px;color:var(--primary)}.spec-section p{line-height:1.6;color:var(--text--secondary);margin-bottom:8px}.color-swatch{display:inline-block;width:20px;height:20px;border-radius:4px;vertical-align:middle;margin-right:8px;border:1px solid var(--border)}.note{background:var(--surface--elevated);border-left:4px solid var(--primary);padding:16px;margin:24px 0;border-radius:4px;border:1px solid var(--border)}.note strong{color:var(--primary)}.intro__description{text-align:center;color:var(--text--secondary);font-size:14px;line-height:1.5;margin-bottom:24px}.intro__languages{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:24px}.intro__language-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px 12px;background:var(--surface--elevated);border:2px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s ease;min-height:80px}.intro__language-btn:hover{border-color:var(--primary);background:var(--surface--hover)}.intro__language-btn--selected{border-color:var(--primary);background:var(--primary-light, rgba(74, 111, 165, .1))}.intro__language-btn--selected .intro__language-label{color:var(--primary);font-weight:600}.intro__language-flag{font-size:28px;line-height:1}.intro__language-label{font-size:14px;color:var(--text--primary);font-weight:500}@media(max-width:360px){.intro__languages{grid-template-columns:repeat(2,1fr)}}.home-entrance{animation:backgroundReveal .4s ease-out}.animate-from-top{animation:slideInFromTop .5s ease-out both}.animate-from-bottom{animation:slideInFromBottom .5s ease-out both}.animate-from-left{animation:slideInFromLeft .5s ease-out both}.animate-from-right{animation:slideInFromRight .5s ease-out both}.animate-delay-1{animation-delay:.1s}.animate-delay-2{animation-delay:.2s}.animate-delay-3{animation-delay:.3s}.animate-delay-4{animation-delay:.4s}.animate-delay-5{animation-delay:.5s}.stat-animate{animation:slideInFromBottom .4s ease-out both}.stat-animate:nth-child(1){animation-delay:.15s}.stat-animate:nth-child(2){animation-delay:.25s}.stat-animate:nth-child(3){animation-delay:.35s}.action-animate{animation:slideInFromBottom .4s ease-out both}.action-animate:nth-child(1){animation-delay:.4s}.action-animate:nth-child(2){animation-delay:.5s}.home-entrance .nav{animation:fadeIn .4s ease-out .2s both}@media(prefers-reduced-motion:reduce){.home-entrance,.home-entrance .nav,.animate-from-top,.animate-from-bottom,.animate-from-left,.animate-from-right,.stat-animate,.action-animate{animation:none;opacity:1;transform:none}}.quote-intro{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;min-height:100%;position:relative}.quote-intro--fading-out{opacity:0;transition:opacity 2s ease-out}.quote-intro__content{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;max-width:600px;padding:24px;flex:1}.quote-intro__content--exiting{opacity:0;transition:opacity .8s ease-in}.quote-intro__text{font-family:Cormorant Garamond,Georgia,Times New Roman,serif;font-size:clamp(22px,5vw,36px);font-weight:400;font-style:italic;line-height:1.5;letter-spacing:.01em;color:var(--text--primary);margin:0;padding:0 8px;display:flex;flex-direction:column;gap:16px}.quote-intro__sentence{opacity:0;transition:opacity 1.2s cubic-bezier(.22,1,.36,1)}.quote-intro__sentence--visible{opacity:1}.quote-intro__author{font-family:Cormorant Garamond,Georgia,Times New Roman,serif;font-size:clamp(14px,2.5vw,18px);font-weight:500;font-style:normal;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-top:28px;opacity:0;transition:opacity 1s cubic-bezier(.22,1,.36,1)}.quote-intro__author--visible{opacity:1}.quote-intro__progress{display:flex;gap:12px;margin-top:auto;padding-bottom:max(24px,env(safe-area-inset-bottom,24px))}.quote-intro__progress-dot{width:6px;height:6px;border-radius:50%;background:var(--border);transition:background .4s ease,transform .3s ease,box-shadow .4s ease}.quote-intro__progress-dot--active{background:var(--accent);transform:scale(1.3);box-shadow:0 0 10px hsla(var(--accent-h),var(--accent-s),var(--accent-l),.3)}.quote-intro__progress-dot--completed{background:var(--text--secondary)}@media(max-width:480px){.quote-intro{padding:20px}.quote-intro__content{padding:16px}.quote-intro__author{margin-top:24px;letter-spacing:.08em}}@media(prefers-reduced-motion:reduce){.quote-intro,.quote-intro__content,.quote-intro__author,.quote-intro__sentence,.quote-intro__progress-dot{transition-duration:.01ms!important}}.generation-progress-bar{width:100%;margin:2rem 0}.generation-progress-bar__overall{margin-bottom:2rem}.generation-progress-bar__label{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:1rem;font-weight:600;color:var(--color-text-primary, #1a1a2e)}.generation-progress-bar__percentage{font-size:1.25rem;font-weight:700;color:var(--color-primary, #4a5568)}.generation-progress-bar__track{width:100%;height:24px;background:#00000014;border-radius:12px;overflow:hidden;position:relative}.generation-progress-bar__track--small{height:8px;border-radius:4px}.generation-progress-bar__fill{height:100%;border-radius:inherit;transition:width .3s ease-out;position:relative;overflow:hidden}.generation-progress-bar__fill--overall{background:linear-gradient(90deg,#4a90e2,#357abd)}.generation-progress-bar__fill--dialogue{background:linear-gradient(90deg,#6b46c1,#553c9a)}.generation-progress-bar__fill--estonian{background:linear-gradient(90deg,#f59e0b,#d97706)}.generation-progress-bar__fill--native{background:linear-gradient(90deg,#10b981,#059669)}.generation-progress-bar__fill--completed{background:linear-gradient(90deg,#22c55e,#16a34a)}.generation-progress-bar__fill:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:shimmer 2s infinite}@keyframes shimmer{0%{left:-100%}to{left:100%}}.generation-progress-bar__phases{display:flex;flex-direction:column;gap:1.25rem}.generation-progress-bar__phase{width:100%}.generation-progress-bar__phase-label{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.9rem;color:var(--color-text-secondary, #666)}.generation-progress-bar__phase-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:.875rem}.generation-progress-bar__phase-percentage{margin-left:auto;font-weight:600;font-size:.875rem;color:var(--color-text-primary, #1a1a2e)}.generation-progress-bar__processing{font-size:.75rem;color:var(--color-warning, #f59e0b);font-weight:400}@media(max-width:480px){.generation-progress-bar{margin:1.5rem 0}.generation-progress-bar__label{font-size:.9rem}.generation-progress-bar__percentage{font-size:1.1rem}.generation-progress-bar__track{height:20px}.generation-progress-bar__track--small{height:6px}.generation-progress-bar__phase-label{font-size:.85rem}.generation-progress-bar__phase-percentage{font-size:.8rem}}.lesson-vocab{display:flex;flex-direction:column;height:100%;padding:var(--spacing-4, 16px);box-sizing:border-box;overflow:hidden}.lesson-vocab__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-3, 12px);flex-shrink:0}.lesson-vocab__back-btn{background:var(--surface, hsl(210, 20%, 18%));border:1px solid var(--border, hsl(210, 15%, 30%));color:var(--text--secondary, hsl(210, 15%, 60%));font-size:1.125rem;width:44px;height:44px;min-width:44px;min-height:44px;cursor:pointer;border-radius:var(--radius-md, 8px);transition:all .2s ease;display:flex;align-items:center;justify-content:center}.lesson-vocab__back-btn:hover{background-color:var(--surface--elevated, hsl(210, 20%, 22%));color:var(--text--primary, hsl(210, 15%, 85%))}.lesson-vocab__back-btn:active{transform:scale(.95)}.lesson-vocab__progress-info{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.lesson-vocab__progress-text{font-size:.875rem;color:var(--text--secondary, hsl(210, 15%, 60%));font-weight:600;font-variant-numeric:tabular-nums}.lesson-vocab__progress-subtitle{font-size:.6875rem;color:var(--text--tertiary, hsl(210, 10%, 50%));font-weight:500}.lesson-vocab__progress-bar{height:4px;background:var(--border, hsl(210, 15%, 30%));border-radius:2px;overflow:hidden;margin-bottom:var(--spacing-4, 16px);flex-shrink:0}.lesson-vocab__progress-fill{height:100%;background:var(--accent, hsl(35, 60%, 55%));border-radius:2px;transition:width .4s cubic-bezier(.4,0,.2,1)}.lesson-vocab__card-container{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;perspective:1200px;padding:var(--spacing-2, 8px);min-height:0}.lesson-vocab__card{width:100%;max-width:360px;height:100%;max-height:320px;min-height:240px;cursor:pointer;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.4,0,.2,1);position:relative}.lesson-vocab__card--flipped{transform:rotateY(180deg)}.lesson-vocab__card--entering{animation:cardEnter .4s cubic-bezier(.4,0,.2,1) forwards}@keyframes cardEnter{0%{opacity:0;transform:translate(30px) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}.lesson-vocab__card--exiting{animation:cardExit .3s cubic-bezier(.4,0,.2,1) forwards}@keyframes cardExit{to{opacity:0;transform:translate(-30px) scale(.95)}}.lesson-vocab__card-front,.lesson-vocab__card-back{position:absolute;top:0;left:0;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:var(--radius-lg, 12px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-5, 20px);box-sizing:border-box;text-align:center;overflow:hidden}.lesson-vocab__card-front{background:var(--surface--elevated, hsl(210, 20%, 22%));border:2px solid var(--border, hsl(210, 15%, 30%));box-shadow:0 4px 6px #0000004d,0 1px 3px #0003}.lesson-vocab__card-front:active{transform:scale(.98);transition:transform .1s ease}.lesson-vocab__card-back{background:linear-gradient(135deg,var(--primary, hsl(200, 50%, 65%)) 0%,var(--primary--dark, hsl(200, 50%, 55%)) 100%);border:2px solid var(--primary--dark, hsl(200, 50%, 55%));box-shadow:0 4px 6px #0000004d,0 1px 3px #0003,inset 0 1px #ffffff1a;transform:rotateY(180deg)}.lesson-vocab__card-word{font-size:2rem;font-weight:700;color:var(--text--primary, hsl(210, 15%, 85%));margin-bottom:var(--spacing-3, 12px);line-height:1.2;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.lesson-vocab__card-back .lesson-vocab__card-word{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.2)}.lesson-vocab__card-context{font-size:.9375rem;color:var(--text--secondary, hsl(210, 15%, 60%));line-height:1.5;max-width:90%;font-style:italic;padding:var(--spacing-2, 8px) var(--spacing-3, 12px);background:#00000026;border-radius:var(--radius-md, 8px);margin-top:var(--spacing-2, 8px)}.lesson-vocab__card-back .lesson-vocab__card-context{color:#ffffffe6;background:#0003}.lesson-vocab__card-hint{position:absolute;bottom:var(--spacing-4, 16px);display:flex;align-items:center;gap:var(--spacing-2, 8px);font-size:.8125rem;color:var(--text--secondary, hsl(210, 15%, 60%));opacity:.8;animation:hintPulse 2s ease-in-out infinite}.lesson-vocab__card-hint i{font-size:1rem}@keyframes hintPulse{0%,to{opacity:.6;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}.lesson-vocab__ratings{display:flex;gap:var(--spacing-3, 12px);justify-content:center;padding:var(--spacing-4, 16px) 0;flex-shrink:0;animation:ratingsSlideUp .4s cubic-bezier(.4,0,.2,1) forwards}@keyframes ratingsSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.lesson-vocab__rating{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-1, 4px);padding:var(--spacing-3, 12px) var(--spacing-4, 16px);border:2px solid transparent;border-radius:var(--radius-md, 8px);cursor:pointer;font-size:.875rem;font-weight:600;min-width:88px;min-height:64px;transition:all .2s ease;box-shadow:0 2px 4px #0003}.lesson-vocab__rating:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000004d}.lesson-vocab__rating:active{transform:scale(.95) translateY(0);transition-duration:.1s}.lesson-vocab__rating i{font-size:1.5rem}.lesson-vocab__rating--forgot{background:linear-gradient(135deg,#dd493c,#c92b1d);color:#fff;border-color:#b32619}.lesson-vocab__rating--forgot:hover{background:linear-gradient(135deg,#d93526,#b32619)}.lesson-vocab__rating--hard{background:linear-gradient(135deg,#e89c30,#d48311);color:#fff;border-color:#bd740f}.lesson-vocab__rating--hard:hover{background:linear-gradient(135deg,#e69119,#bd740f)}.lesson-vocab__rating--easy{background:linear-gradient(135deg,#46b946,#393);color:#fff;border-color:#2d862d}.lesson-vocab__rating--easy:hover{background:linear-gradient(135deg,#3fa63f,#2d862d)}.lesson-vocab__loading,.lesson-vocab__error,.lesson-vocab__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:var(--spacing-6, 24px);color:var(--text--secondary, hsl(210, 15%, 60%))}.lesson-vocab__loading{gap:var(--spacing-4, 16px)}.lesson-vocab__loading:before{content:"";width:40px;height:40px;border:3px solid var(--border, hsl(210, 15%, 30%));border-top-color:var(--accent, hsl(35, 60%, 55%));border-radius:50%;animation:spin 1s linear infinite}.lesson-vocab__error i,.lesson-vocab__empty i{font-size:3.5rem;margin-bottom:var(--spacing-4, 16px);color:var(--text--tertiary, hsl(210, 10%, 40%))}.lesson-vocab__error h2,.lesson-vocab__empty h2{font-size:1.25rem;font-weight:600;margin-bottom:var(--spacing-2, 8px);color:var(--text--primary, hsl(210, 15%, 85%))}.lesson-vocab__error p,.lesson-vocab__empty p{margin-bottom:var(--spacing-4, 16px);line-height:1.5}.lesson-vocab__mastered{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:var(--spacing-6, 24px);animation:fadeIn .5s ease forwards}.lesson-vocab__mastered-icon{font-size:5rem;color:var(--accent, hsl(35, 60%, 55%));margin-bottom:var(--spacing-4, 16px);animation:trophyBounce .8s cubic-bezier(.68,-.55,.265,1.55) forwards;text-shadow:0 4px 12px rgba(211,155,79,.4)}@keyframes trophyBounce{0%{transform:scale(0) rotate(-15deg);opacity:0}60%{transform:scale(1.2) rotate(5deg)}80%{transform:scale(.95) rotate(-2deg)}to{transform:scale(1) rotate(0);opacity:1}}.lesson-vocab__mastered h2{font-size:1.75rem;font-weight:700;margin-bottom:var(--spacing-2, 8px);color:var(--text--primary, hsl(210, 15%, 85%));animation:slideInFromBottom .4s ease .2s both}.lesson-vocab__mastered>p{color:var(--text--secondary, hsl(210, 15%, 60%));margin-bottom:var(--spacing-3, 12px);font-size:1rem;animation:slideInFromBottom .4s ease .3s both}.lesson-vocab__mastered-hint{font-size:.875rem;color:var(--text--tertiary, hsl(210, 10%, 50%));margin-bottom:var(--spacing-6, 24px);animation:slideInFromBottom .4s ease .4s both}.lesson-vocab__mastered .btn--primary{animation:slideInFromBottom .4s ease .5s both}@media(min-width:768px){.lesson-vocab__mastered-icon{font-size:6rem}.lesson-vocab__mastered h2{font-size:2rem}}.lesson-vocab__complete{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:var(--spacing-6, 24px);animation:fadeIn .5s ease forwards}.lesson-vocab__complete-icon{font-size:5rem;color:var(--success, hsl(120, 45%, 55%));margin-bottom:var(--spacing-4, 16px);animation:completionPop .6s cubic-bezier(.68,-.55,.265,1.55) forwards}@keyframes completionPop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.lesson-vocab__complete h2{font-size:1.75rem;font-weight:700;margin-bottom:var(--spacing-2, 8px);color:var(--text--primary, hsl(210, 15%, 85%));animation:slideInFromBottom .4s ease .2s both}.lesson-vocab__complete>p{color:var(--text--secondary, hsl(210, 15%, 60%));margin-bottom:var(--spacing-6, 24px);font-size:1rem;animation:slideInFromBottom .4s ease .3s both}.lesson-vocab__stats{display:flex;gap:var(--spacing-3, 12px);margin-bottom:var(--spacing-6, 24px);animation:slideInFromBottom .4s ease .4s both}.lesson-vocab__stat{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-4, 16px) var(--spacing-5, 20px);border-radius:var(--radius-lg, 12px);background:transparent;border:2px solid;min-width:80px;box-shadow:0 2px 4px #0003}.lesson-vocab__stat--easy{border-color:#39ac63}.lesson-vocab__stat--hard{border-color:#d98e26}.lesson-vocab__stat--forgot{border-color:#d93526}.lesson-vocab__stat-value{font-size:1.75rem;font-weight:700;color:var(--text--primary)}.lesson-vocab__stat-label{font-size:.75rem;font-weight:600;color:var(--text--secondary);text-transform:uppercase;letter-spacing:.5px}.lesson-vocab__complete .btn--primary{animation:slideInFromBottom .4s ease .5s both}@media(max-width:375px){.lesson-vocab{padding:var(--spacing-3, 12px)}.lesson-vocab__card{max-height:280px;min-height:220px}.lesson-vocab__card-word{font-size:1.75rem}.lesson-vocab__card-context{font-size:.875rem;padding:var(--spacing-2, 8px)}.lesson-vocab__rating{min-width:76px;padding:var(--spacing-2, 8px) var(--spacing-3, 12px)}.lesson-vocab__rating i{font-size:1.25rem}.lesson-vocab__stats{gap:var(--spacing-2, 8px)}.lesson-vocab__stat{min-width:70px;padding:var(--spacing-3, 12px) var(--spacing-4, 16px)}.lesson-vocab__stat-value{font-size:1.5rem}}@media(min-width:768px){.lesson-vocab__card{max-width:420px;max-height:360px}.lesson-vocab__card-word{font-size:2.5rem}.lesson-vocab__card-context{font-size:1rem}.lesson-vocab__rating{min-width:100px;padding:var(--spacing-4, 16px) var(--spacing-5, 20px)}.lesson-vocab__rating i{font-size:1.75rem}.lesson-vocab__complete-icon{font-size:6rem}.lesson-vocab__complete h2{font-size:2rem}}@media(min-width:1024px){.lesson-vocab__card{max-width:480px;max-height:400px}.lesson-vocab__card:hover{box-shadow:0 8px 16px #0006,0 4px 8px #0000004d}}@media(max-height:500px)and (orientation:landscape){.lesson-vocab__card{max-height:200px;min-height:160px}.lesson-vocab__card-word{font-size:1.5rem;margin-bottom:var(--spacing-2, 8px)}.lesson-vocab__card-context{display:none}.lesson-vocab__card-hint{bottom:var(--spacing-2, 8px);font-size:.75rem}.lesson-vocab__ratings{padding:var(--spacing-2, 8px) 0}.lesson-vocab__rating{min-height:48px;padding:var(--spacing-2, 8px) var(--spacing-3, 12px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.lesson-vocab__play-btn{display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:var(--spacing-4, 16px) auto 0;border:2px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text--secondary);cursor:pointer;transition:all .2s ease;font-size:1.25rem;box-shadow:0 2px 8px #0003}.lesson-vocab__play-btn:hover{background:var(--surface--elevated);color:var(--accent);border-color:var(--accent);transform:scale(1.1)}.lesson-vocab__play-btn:active{transform:scale(1)}.lesson-vocab__play-btn--playing{background:var(--accent);border-color:var(--accent);color:#fff;animation:playPulse 1s ease-in-out infinite}.lesson-vocab__rating-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-end;animation:modal-fade-in .2s ease-out;pointer-events:none;background:transparent}.lesson-vocab__rating-sheet{position:relative;width:100%;max-width:500px;margin:0 auto;background:var(--surface);border-top-left-radius:24px;border-top-right-radius:24px;padding:32px 24px;box-shadow:0 -4px 24px #0000004d;animation:modal-slide-up .3s ease-out;pointer-events:auto}.lesson-vocab__rating-title{text-align:center;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text--secondary);margin-bottom:24px}.lesson-vocab__rating-buttons{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.lesson-vocab__rating-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 16px;border:2px solid transparent;border-radius:16px;background:var(--surface--elevated);color:var(--text--primary);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.lesson-vocab__rating-btn i{font-size:1.5rem}.lesson-vocab__rating-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.lesson-vocab__rating-btn:active{transform:translateY(0)}.lesson-vocab__rating-btn:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px hsla(var(--accent-h),var(--accent-s),var(--accent-l),.3)}.lesson-vocab__rating-btn--forgot{border-color:#d93526;color:#e47267}.lesson-vocab__rating-btn--forgot:hover{background:#d935261a;border-color:#e24536;color:#eb5547}.lesson-vocab__rating-btn--hard{border-color:#d98e26;color:#e0a552}.lesson-vocab__rating-btn--hard:hover{background:#d98e261a;border-color:#e29b36;color:#e89c30}.lesson-vocab__rating-btn--easy{border-color:#39ac63;color:#47d17a}.lesson-vocab__rating-btn--easy:hover{background:#39ac631a;border-color:#39c66d;color:#2dd269}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.lesson-vocab__done-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-end;animation:modal-fade-in .2s ease-out;pointer-events:none;background:transparent}.lesson-vocab__done-sheet{width:100%;background:var(--surface--elevated);border-radius:var(--radius-xl, 16px) var(--radius-xl, 16px) 0 0;padding:var(--spacing-5, 20px) var(--spacing-4, 16px) var(--spacing-6, 24px);box-shadow:0 -4px 20px #0000004d;animation:sheet-slide-up .3s ease-out;pointer-events:auto;display:flex;justify-content:center}.lesson-vocab__done-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 48px;border:2px solid transparent;border-radius:16px;background:var(--surface--elevated);color:var(--text--primary);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:inherit}.lesson-vocab__done-btn i{font-size:1.5rem}.lesson-vocab__done-btn span{font-size:.875rem;font-weight:600}.lesson-vocab__done-btn:hover{background:#39ac6326;border-color:#39ac63;color:#52e086;transform:translateY(-2px);box-shadow:0 4px 12px #0003}.lesson-vocab__done-btn:active{transform:translateY(0)}@keyframes playPulse{0%,to{box-shadow:0 0 #d39b4fb3}50%{box-shadow:0 0 0 8px #d39b4f00}}@media(max-width:375px){.lesson-vocab__rating-sheet{padding:24px 16px}.lesson-vocab__rating-buttons{gap:8px}.lesson-vocab__rating-btn{padding:16px 12px;font-size:.8125rem}.lesson-vocab__rating-btn i{font-size:1.25rem}.lesson-vocab__play-btn{width:48px;height:48px;font-size:1rem}}.lp-page{--lp-spacing-xs: 8px;--lp-spacing-sm: 12px;--lp-spacing-md: 16px;--lp-spacing-lg: 20px;--lp-spacing-xl: 24px;--lp-spacing-2xl: 32px;--lp-radius-sm: 12px;--lp-radius-md: 16px;--lp-radius-lg: 20px;--lp-radius-full: 9999px;--lp-progress-ring-size: 44px;--lp-icon-size: 40px;--lp-touch-target: 48px;--lp-journey-line-color: hsl(210, 15%, 25%);--lp-journey-line-width: 3px;--lp-category-bg: hsl(210, 18%, 16%);--lp-category-bg-hover: hsl(210, 18%, 19%);--lp-category-border: hsl(210, 15%, 24%);--lp-progress-track: hsl(210, 15%, 25%);--lp-progress-fill: var(--primary, hsl(200, 50%, 55%));--lp-progress-complete: hsl(150, 60%, 45%);--lp-locked-overlay: hsla(210, 20%, 10%, .6);--lp-completed-glow: hsla(150, 60%, 50%, .15);--lp-active-glow: hsla(35, 60%, 55%, .2)}.lp-page{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.lp-header{background:#1d242b;padding:var(--lp-spacing-md);border-bottom:1px solid hsl(210,15%,20%)}.lp-header__row{display:flex;align-items:center;justify-content:space-between;gap:var(--lp-spacing-md)}.lp-header__stars{display:flex;align-items:center;gap:6px;background:#d1984726;border:1px solid hsla(35,60%,55%,.3);border-radius:var(--lp-radius-full);padding:8px 14px;font-size:15px;font-weight:700;color:var(--accent, hsl(35, 60%, 55%))}.lp-header__stars i{font-size:14px;color:var(--accent, hsl(35, 60%, 55%))}.lp-header__level-selector{display:flex;align-items:center;gap:var(--lp-spacing-sm)}.lp-header__level-selector label{font-size:14px;font-weight:500;color:var(--text--secondary, hsl(210, 15%, 55%))}.lp-header__dropdown{appearance:none;background:#2a333c;color:var(--text--primary, hsl(210, 15%, 90%));border:2px solid hsl(210,15%,28%);border-radius:var(--lp-radius-sm);padding:10px 36px 10px 14px;font-size:15px;font-weight:600;cursor:pointer;min-height:var(--lp-touch-target);transition:all .25s ease;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238899aa' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.lp-header__dropdown:hover{background-color:#2e3842}.lp-header__dropdown:focus{outline:none}.lp-loading,.lp-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--lp-spacing-2xl) var(--lp-spacing-lg);min-height:200px;text-align:center}.lp-loading{color:var(--text--secondary, hsl(210, 15%, 55%));font-size:16px;font-weight:500}.lp-loading:before{content:"";width:40px;height:40px;border:3px solid hsl(210,15%,25%);border-top-color:var(--primary, hsl(200, 50%, 55%));border-radius:50%;margin-bottom:var(--lp-spacing-md);animation:lp-spin .8s linear infinite}@keyframes lp-spin{to{transform:rotate(360deg)}}.lp-error{color:var(--error, hsl(5, 70%, 55%));font-size:16px;font-weight:500}.lp-error:before{content:"!";width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#dd493c26;border:2px solid var(--error, hsl(5, 70%, 55%));border-radius:50%;font-size:20px;font-weight:700;margin-bottom:var(--lp-spacing-md)}.lp-content{padding:var(--lp-spacing-md);padding-bottom:calc(var(--lp-spacing-2xl) + 80px);position:relative}.lp-content:before{content:"";position:absolute;left:calc(var(--lp-spacing-md) + 21px);top:var(--lp-spacing-md);bottom:calc(var(--lp-spacing-2xl) + 80px);width:var(--lp-journey-line-width);background:linear-gradient(180deg,var(--lp-journey-line-color) 0%,transparent 100%);border-radius:var(--lp-journey-line-width);z-index:0}.lp-category{position:relative;margin-bottom:var(--lp-spacing-md);z-index:1}.lp-category:last-child{margin-bottom:0}.lp-category__header{display:grid;grid-template-columns:var(--lp-progress-ring-size) 1fr auto auto;align-items:center;gap:var(--lp-spacing-sm);width:100%;padding:var(--lp-spacing-md);background:var(--lp-category-bg);border:1px solid var(--lp-category-border);border-radius:var(--lp-radius-md);cursor:pointer;transition:all .25s ease;min-height:72px}.lp-category__header:hover:not(:disabled){background:var(--lp-category-bg-hover);border-color:#414d58}.lp-category__header:disabled{cursor:not-allowed}.lp-category--expanded .lp-category__header{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent;background:var(--lp-category-bg-hover)}.lp-category--locked{opacity:1}.lp-category--locked .lp-category__header{background:#1e2429cc;border-color:#2b333b}.lp-category--locked .lp-category__header:after{content:"";position:absolute;inset:0;background:var(--lp-locked-overlay);border-radius:inherit;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);pointer-events:none}.lp-category__icon-wrapper{position:relative;width:var(--lp-progress-ring-size);height:var(--lp-progress-ring-size);flex-shrink:0}.lp-category__progress-ring{position:absolute;top:0;left:0;width:100%;height:100%;transform:rotate(-90deg)}.lp-category__progress-ring-bg{stroke:var(--lp-progress-track)}.lp-category__progress-ring-fill{stroke:var(--lp-progress-fill);transition:stroke-dasharray .5s ease,stroke .3s ease}.lp-category__icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;border-radius:8px;color:#fff;font-size:16px;box-shadow:0 2px 8px #2d688659,inset 0 1px #fff3;transition:transform .25s ease,box-shadow .25s ease}.lp-category--locked .lp-category__icon{background:#364049;color:#6c8093;box-shadow:none}.lp-category--locked .lp-category__progress-ring-bg{stroke:#2b333b}.lp-category__title{font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text--secondary, hsl(210, 15%, 65%));margin:0;line-height:1.3;transition:color .2s ease}.lp-category__header:hover:not(:disabled) .lp-category__title{color:var(--text--primary, hsl(210, 15%, 85%))}.lp-category--locked .lp-category__title{color:#627384}.lp-category__progress{display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:var(--text--secondary, hsl(210, 15%, 55%));min-width:48px}.lp-category__progress .fa-lock{font-size:16px;color:#576675}.lp-category__chevron{display:flex;align-items:center;justify-content:center;width:24px;height:24px;font-size:14px;color:var(--text--secondary, hsl(210, 15%, 50%));transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.lp-category--expanded .lp-category__chevron{transform:rotate(180deg)}.lp-category__subtopics-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s cubic-bezier(.34,1.56,.64,1);overflow:hidden}.lp-category--expanded .lp-category__subtopics-wrapper{grid-template-rows:1fr}.lp-category__subtopics{display:flex;flex-direction:column;gap:0;background:#1d242a;border:1px solid var(--lp-category-border);border-top:none;border-bottom-left-radius:var(--lp-radius-md);border-bottom-right-radius:var(--lp-radius-md);padding:var(--lp-spacing-xs);min-height:0;opacity:0;transform:translateY(-8px);transition:opacity .25s ease,transform .25s ease}.lp-category--expanded .lp-category__subtopics{opacity:1;transform:translateY(0);transition-delay:.1s}.lp-subtopic{background:transparent;border-radius:var(--lp-radius-sm);margin-bottom:2px;overflow:hidden}.lp-subtopic:last-child{margin-bottom:0}.lp-subtopic__header{display:flex;justify-content:space-between;align-items:center;width:100%;padding:var(--lp-spacing-sm) var(--lp-spacing-md);background:transparent;border:none;border-radius:var(--lp-radius-sm);cursor:pointer;min-height:var(--lp-touch-target);transition:background .2s ease}.lp-subtopic__header:hover:not(:disabled){background:#598ca61a}.lp-subtopic__header:disabled{cursor:not-allowed}.lp-subtopic--expanded .lp-subtopic__header{background:#598ca614;border-bottom-left-radius:0;border-bottom-right-radius:0}.lp-subtopic--locked .lp-subtopic__header{opacity:.5}.lp-subtopic__title{font-size:16px;font-weight:600;color:var(--text--primary, hsl(210, 15%, 88%));margin:0;flex:1;text-align:left}.lp-subtopic__progress{font-size:13px;font-weight:600;color:var(--text--secondary, hsl(210, 15%, 55%));padding:4px 10px;background:#414d5880;border-radius:var(--lp-radius-full)}.lp-subtopic__progress .fa-lock{font-size:12px}.lp-subtopic__chevron{display:flex;align-items:center;justify-content:center;width:24px;height:24px;margin-left:var(--lp-spacing-xs);font-size:12px;color:var(--text--secondary, hsl(210, 15%, 50%));transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.lp-subtopic--expanded .lp-subtopic__chevron{transform:rotate(180deg)}.lp-subtopic__scenarios-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s cubic-bezier(.34,1.56,.64,1);overflow:hidden}.lp-subtopic--expanded .lp-subtopic__scenarios-wrapper{grid-template-rows:1fr}.lp-subtopic__scenarios{display:flex;flex-direction:column;gap:var(--lp-spacing-xs);padding:var(--lp-spacing-xs) var(--lp-spacing-sm) var(--lp-spacing-sm);min-height:0;opacity:0;transform:translateY(-4px);transition:opacity .2s ease,transform .2s ease}.lp-subtopic--expanded .lp-subtopic__scenarios{opacity:1;transform:translateY(0);transition-delay:.08s}.lp-scenario{display:flex;align-items:center;gap:var(--lp-spacing-sm);width:100%;padding:var(--lp-spacing-sm) var(--lp-spacing-md);border:none;border-radius:var(--lp-radius-sm);cursor:pointer;min-height:var(--lp-touch-target);text-align:left;transition:background .2s ease,transform .15s ease,box-shadow .2s ease}.lp-scenario:active{transform:scale(.98)}.lp-scenario__icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;font-size:14px;flex-shrink:0;transition:transform .2s ease}.lp-scenario__text{flex:1;font-size:15px;font-weight:500;line-height:1.4;color:var(--text--primary, hsl(210, 15%, 85%))}.lp-scenario--completed{background:linear-gradient(135deg,#cc8c331f,#b87e2e0f);border:1px solid hsla(35,60%,55%,.25)}.lp-scenario--completed:hover{background:linear-gradient(135deg,#cc8c332e,#b87e2e1a);box-shadow:0 0 20px #d1984726}.lp-scenario--completed .lp-scenario__icon{background:var(--accent, hsl(35, 60%, 55%));color:#fff;box-shadow:0 2px 8px #d1984766}.lp-scenario--completed .lp-scenario__text{color:#dbcfbd}.lp-scenario--unlocked{background:#2d384399;border:1px solid hsla(210,15%,35%,.5)}.lp-scenario--unlocked:hover{background:#36546366;border-color:var(--primary, hsl(200, 50%, 50%));box-shadow:0 0 16px #4095bf26}.lp-scenario--unlocked .lp-scenario__icon{background:#414d58cc;color:var(--text--secondary, hsl(210, 15%, 60%));border:2px solid hsla(210,15%,40%,.5)}.lp-scenario--unlocked:hover .lp-scenario__icon{background:var(--primary, hsl(200, 50%, 50%));color:#fff;border-color:transparent;transform:scale(1.1)}.lp-scenario--locked{background:#272e3580;border:1px solid hsla(210,15%,25%,.3);cursor:pointer}.lp-scenario--locked:hover{background:#2b333b99}.lp-scenario--locked .lp-scenario__icon{background:#36404999;color:#627384}.lp-scenario--locked .lp-scenario__text{color:#6c8093}.lp-modal__overlay{position:fixed;inset:0;background:#0f141ad9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--lp-spacing-md);animation:lp-fadeIn .25s ease-out}@keyframes lp-fadeIn{0%{opacity:0;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}to{opacity:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}.lp-modal{background:linear-gradient(180deg,#252e37,#1f262e);border:1px solid hsl(210,15%,28%);border-radius:var(--lp-radius-lg);max-width:340px;width:100%;padding:var(--lp-spacing-xl);box-shadow:0 24px 48px #090d1180,0 0 0 1px #4c59671a;animation:lp-modalIn .3s cubic-bezier(.34,1.56,.64,1)}@keyframes lp-modalIn{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.lp-modal__header{display:flex;align-items:flex-start;gap:var(--lp-spacing-sm);margin-bottom:var(--lp-spacing-sm)}.lp-modal__icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#d1984726;border-radius:var(--lp-radius-sm);font-size:18px;color:var(--accent, hsl(35, 60%, 55%));flex-shrink:0}.lp-modal__title{font-size:18px;font-weight:700;color:var(--text--primary, hsl(210, 15%, 90%));line-height:1.3;padding-top:2px}.lp-modal__breadcrumb{font-size:13px;color:var(--text--secondary, hsl(210, 15%, 55%));margin-bottom:var(--lp-spacing-md);padding-left:52px}.lp-modal__unlock{background:#d1984714;border:1px solid hsla(35,60%,55%,.2);padding:var(--lp-spacing-md);border-radius:var(--lp-radius-sm);margin-bottom:var(--lp-spacing-lg)}.lp-modal__unlock strong{display:flex;align-items:center;gap:var(--lp-spacing-xs);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--lp-spacing-xs);color:var(--accent, hsl(35, 60%, 55%))}.lp-modal__unlock strong:before{content:"";font-family:"Font Awesome 6 Free";font-weight:400}.lp-modal__unlock p{margin:0;font-size:15px;line-height:1.5;color:var(--text--primary, hsl(210, 15%, 85%))}.lp-modal__close{width:100%;background:var(--primary, hsl(200, 50%, 55%));color:#fff;border:none;border-radius:var(--lp-radius-sm);padding:14px;font-size:16px;font-weight:600;cursor:pointer;min-height:var(--lp-touch-target);transition:all .2s ease}.lp-modal__close:hover{background:#4095bf;transform:translateY(-1px);box-shadow:0 4px 12px #4095bf4d}.lp-modal__close:active{transform:translateY(0)}@media(min-width:768px){.lp-content{max-width:680px;margin:0 auto;padding:var(--lp-spacing-xl)}.lp-content:before{left:calc(var(--lp-spacing-xl) + 21px)}.lp-header{padding:var(--lp-spacing-xl) var(--lp-spacing-lg)}.lp-header__title{font-size:32px}.lp-category__header{padding:var(--lp-spacing-lg)}.lp-subtopic__scenarios{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--lp-spacing-sm)}}@media(min-width:1024px){.lp-content{max-width:800px;padding:var(--lp-spacing-2xl)}.lp-content:before{left:calc(var(--lp-spacing-2xl) + 21px)}.lp-subtopic__scenarios{grid-template-columns:repeat(3,1fr)}}@media(prefers-reduced-motion:reduce){.lp-category__subtopics-wrapper,.lp-subtopic__scenarios-wrapper,.lp-category__subtopics,.lp-subtopic__scenarios,.lp-category__chevron,.lp-subtopic__chevron,.lp-scenario,.lp-modal__overlay,.lp-modal,.lp-category__header,.lp-subtopic__header,.lp-category__icon,.lp-scenario__icon,.lp-loading:before{transition:none!important;animation:none!important}.lp-category--expanded .lp-category__subtopics,.lp-subtopic--expanded .lp-subtopic__scenarios{opacity:1;transform:none}}.lp-category__header:focus-visible,.lp-subtopic__header:focus-visible,.lp-scenario:focus-visible,.lp-modal__close:focus-visible{outline:2px solid var(--primary, hsl(200, 50%, 55%));outline-offset:2px}.scenario-detail{flex:1;overflow-y:auto}.scenario-detail__header{background:var(--surface, hsl(210, 20%, 18%));color:var(--text--primary, hsl(210, 15%, 85%));padding:24px 16px;border-bottom:1px solid var(--border, hsl(210, 15%, 30%))}.scenario-detail__level-badge{margin-bottom:12px}.scenario-detail__back-link{color:var(--primary, hsl(200, 50%, 65%));text-decoration:none;font-size:14px;margin-bottom:16px;display:inline-block}.scenario-detail__back-link:hover{text-decoration:underline}.scenario-detail__title{font-size:20px;font-weight:700;margin:0 0 8px;color:var(--text--primary, hsl(210, 15%, 85%))}.scenario-detail__breadcrumb{font-size:14px;margin:0 0 12px;color:var(--text--secondary, hsl(210, 15%, 60%))}.scenario-detail__description{font-size:14px;margin:0;color:var(--text--secondary, hsl(210, 15%, 60%))}.scenario-detail__loading,.scenario-detail__error{padding:24px;text-align:center;color:var(--text--secondary, hsl(210, 15%, 60%))}.scenario-detail__error{color:var(--error, hsl(5, 75%, 60%))}.scenario-detail__lessons-section{padding:16px}.scenario-detail__lessons-title{font-size:18px;font-weight:700;margin:0 0 16px;color:var(--text--primary, hsl(210, 15%, 85%))}.scenario-detail__lessons-list{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.scenario-detail__lesson-card{background:var(--surface, hsl(210, 20%, 18%));border:1px solid var(--border, hsl(210, 15%, 30%));border-radius:12px;padding:16px;display:flex;align-items:center;gap:12px}.scenario-detail__lesson-icon{font-size:24px;color:var(--primary, hsl(200, 50%, 65%))}.scenario-detail__lesson-info{flex:1}.scenario-detail__lesson-title{font-size:16px;font-weight:600;margin:0 0 4px;color:var(--text--primary, hsl(210, 15%, 85%));display:flex;align-items:center;gap:8px;flex-wrap:wrap}.scenario-detail__stars{display:inline-flex;gap:2px;font-size:12px}.scenario-detail__lesson-meta{font-size:14px;color:var(--text--secondary, hsl(210, 15%, 60%));margin:0}.scenario-detail__vocab-stats{font-size:14px}.scenario-detail__lesson-button{background:var(--primary, hsl(200, 50%, 65%));color:var(--bg, hsl(210, 20%, 12%));text-decoration:none;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:600;white-space:nowrap}.scenario-detail__lesson-button:hover{opacity:.9}.scenario-detail__empty-state{background:var(--surface, hsl(210, 20%, 18%));border:1px solid var(--border, hsl(210, 15%, 30%));border-radius:12px;padding:32px 16px;text-align:center;margin-bottom:16px}.scenario-detail__empty-text{font-size:16px;font-weight:600;color:var(--text--primary, hsl(210, 15%, 85%));margin:0 0 8px}.scenario-detail__empty-hint{font-size:14px;color:var(--text--secondary, hsl(210, 15%, 60%));margin:0}.scenario-detail__generate-button{width:100%;background:var(--accent, hsl(35, 60%, 55%));color:var(--bg, hsl(210, 20%, 12%));border:none;border-radius:12px;padding:16px;font-size:16px;font-weight:700;cursor:pointer}.scenario-detail__generate-button:hover:not(:disabled){opacity:.9}.scenario-detail__generate-button:disabled{opacity:.6;cursor:not-allowed}.slp-page{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:16px;display:flex;flex-direction:column;gap:24px}.slp-section{display:flex;flex-direction:column;gap:12px}.slp-section__title{font-size:16px;font-weight:600;color:var(--text-secondary, hsl(210, 10%, 70%));margin:0;padding:0 4px}.slp-loading,.slp-error{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--text-secondary, hsl(210, 10%, 70%));font-size:15px}.slp-error{color:#db5757}.slp-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center;background:#212930;border-radius:16px;border:1px solid hsl(210,15%,24%)}.slp-empty__icon{font-size:48px;color:#4c5967;margin-bottom:16px}.slp-empty__text{font-size:16px;font-weight:600;color:var(--text-primary, hsl(210, 10%, 90%));margin:0 0 8px}.slp-empty__hint{font-size:14px;color:var(--text-secondary, hsl(210, 10%, 70%));margin:0}.slp-books{display:flex;flex-direction:column;gap:12px}.slp-book{display:flex;align-items:center;gap:16px;padding:16px;background:#212930;border:1px solid hsl(210,15%,24%);border-radius:16px;cursor:pointer;transition:all .2s ease;text-align:left;width:100%}.slp-book:hover{background:#283039;border-color:#414d58}.slp-book:active{transform:scale(.98)}.slp-book__cover{flex-shrink:0;width:56px;height:56px;border-radius:12px;background:linear-gradient(135deg,#379,#265973);display:flex;align-items:center;justify-content:center;overflow:hidden}.slp-book__cover img{width:100%;height:100%;object-fit:cover}.slp-book__cover i{font-size:24px;color:#fff;opacity:.9}.slp-book__info{flex:1;min-width:0}.slp-book__title{font-size:16px;font-weight:600;color:var(--text-primary, hsl(210, 10%, 90%));margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slp-book__description{font-size:13px;color:var(--text-secondary, hsl(210, 10%, 70%));margin:0;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.slp-book__arrow{flex-shrink:0;font-size:14px;color:#73808c}.slp-section--unlock{margin-top:auto;padding-top:24px;border-top:1px solid hsl(210,15%,20%)}.slp-unlock{display:flex;flex-direction:column;gap:8px}.slp-unlock__input-group{display:flex;gap:8px}.slp-unlock__input{flex:1;padding:14px 16px;background:#1d242a;border:1px solid hsl(210,15%,24%);border-radius:12px;color:var(--text-primary, hsl(210, 10%, 90%));font-size:15px;font-family:inherit;letter-spacing:.5px;text-transform:uppercase;transition:border-color .2s ease}.slp-unlock__input::placeholder{color:#67737e;text-transform:none;letter-spacing:normal}.slp-unlock__input:focus{outline:none;border-color:var(--primary, hsl(200, 50%, 55%))}.slp-unlock__btn{flex-shrink:0;width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:var(--primary, hsl(200, 50%, 55%));border:none;border-radius:12px;color:#fff;font-size:18px;cursor:pointer;transition:all .2s ease}.slp-unlock__btn:hover:not(:disabled){background:#4095bf}.slp-unlock__btn:active:not(:disabled){transform:scale(.95)}.slp-unlock__btn:disabled{opacity:.5;cursor:not-allowed}.slp-unlock__error{font-size:13px;color:#db5757;margin:4px 0 0;padding:0 4px}@media(min-width:600px){.slp-page{padding:24px;max-width:600px;margin:0 auto}.slp-book{padding:20px}.slp-book__cover{width:64px;height:64px}.slp-book__title{font-size:17px}}.admin-settings-page{padding-bottom:calc(var(--bottom-nav-height, 72px) + 24px)}.admin-loading,.admin-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;text-align:center;color:var(--text--secondary);gap:16px}.admin-loading i,.admin-error i{font-size:48px}.admin-error i{color:var(--error, #e74c3c)}.admin-error p{max-width:300px;line-height:1.5}.admin-category{padding:0!important;overflow:hidden}.admin-setting{padding:16px 20px;border-bottom:1px solid var(--border, rgba(0, 0, 0, .1))}.admin-setting:last-child{border-bottom:none}.admin-setting__header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.admin-setting__key{margin:0;font-size:14px;font-weight:600;color:var(--text--primary);font-family:SF Mono,Monaco,Inconsolata,Fira Code,monospace;background:var(--surface-secondary, rgba(0, 0, 0, .05));padding:4px 8px;border-radius:4px}.admin-setting__modified{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--accent, #d39b4f);background:#d39b4f26;padding:2px 8px;border-radius:4px}.admin-setting__description{margin:0 0 12px;font-size:13px;color:var(--text--secondary);line-height:1.4}.admin-setting__value{margin:0 0 12px;padding:12px;background:var(--surface-secondary, rgba(0, 0, 0, .03));border-radius:8px;font-size:13px;font-family:SF Mono,Monaco,Inconsolata,Fira Code,monospace;color:var(--text--primary);white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto;line-height:1.5}.admin-setting__edit{display:flex;flex-direction:column;gap:12px}.admin-setting__textarea{width:100%;padding:12px;font-size:13px;font-family:SF Mono,Monaco,Inconsolata,Fira Code,monospace;border:2px solid var(--primary, #527990);border-radius:8px;background:var(--card-bg, #fff);color:var(--text--primary);resize:vertical;min-height:100px;line-height:1.5}.admin-setting__textarea:focus{outline:none;border-color:var(--primary-dark, #3d5a6b);box-shadow:0 0 0 3px #52799033}.admin-setting__actions{display:flex;gap:8px;flex-wrap:wrap}.btn--sm{padding:8px 12px;font-size:13px;min-height:auto}.btn--sm i{margin-right:4px}.btn--secondary{background:transparent;color:var(--text--secondary);border:1px solid var(--border, rgba(0, 0, 0, .15))}.btn--secondary:hover{background:var(--surface-secondary, rgba(0, 0, 0, .05));color:var(--text--primary)}@media(max-width:480px){.admin-setting{padding:14px 16px}.admin-setting__key{font-size:12px}.admin-setting__value{font-size:12px;max-height:150px}.admin-setting__textarea{font-size:12px}.btn--sm{padding:6px 10px;font-size:12px}}
