:root{--bg: var(--tg-theme-secondary-bg-color, #f2f3f5);--surface: var(--tg-theme-bg-color, #ffffff);--surface-sunken: var(--tg-theme-secondary-bg-color, #f2f3f5);--bottom-bar: var(--tg-theme-bottom-bar-bg-color, var(--tg-theme-bg-color, #ffffff));--text: var(--tg-theme-text-color, #0f0f0f);--text-secondary: var(--tg-theme-subtitle-text-color, #707579);--text-hint: var(--tg-theme-hint-color, #8e9297);--text-link: var(--tg-theme-link-color, #2f81d6);--text-destructive: var(--tg-theme-destructive-text-color, #df3f40);--separator: var(--tg-theme-section-separator-color, rgba(128, 128, 128, .22));--brand: #2f6b55;--on-brand: #ffffff;--accent: #2f6b55;--accent-wash: rgba(47, 107, 85, .1);--on-filled: #ffffff;--switch-knob: #ffffff;--switch-knob-shadow: 0 1px 3px rgba(0, 0, 0, .25);--backdrop: rgba(0, 0, 0, .4);--state-new: rgba(128, 128, 128, .32);--state-learning: var(--accent);--state-learning: color-mix(in srgb, var(--accent) 40%, var(--surface));--state-strengthening: var(--accent);--state-strengthening: color-mix(in srgb, var(--accent) 70%, var(--surface));--state-mastered: var(--accent);--state-track: rgba(128, 128, 128, .16);--bar-muted: rgba(128, 128, 128, .3);--warning-wash: var(--accent-wash);--warning-text: var(--accent);--danger-wash: rgba(223, 63, 64, .12);--zone-past: #96694c;--zone-present: var(--accent);--zone-future: #55678f;--radius-card: 14px;--radius-control: 10px;--radius-pill: 999px;--pad-screen: 16px;--tab-bar-height: 56px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--mono: ui-monospace, SFMono-Regular, Menlo, monospace;--font-display: ui-serif, "New York", "Iowan Old Style", Georgia, "Noto Serif", serif}[data-theme=dark]{--bg: var(--tg-theme-secondary-bg-color, #0f0f10);--surface: var(--tg-theme-bg-color, #1c1c1e);--surface-sunken: var(--tg-theme-secondary-bg-color, #0f0f10);--bottom-bar: var(--tg-theme-bottom-bar-bg-color, var(--tg-theme-bg-color, #1c1c1e));--text: var(--tg-theme-text-color, #f5f5f7);--text-secondary: var(--tg-theme-subtitle-text-color, #a1a1a6);--text-hint: var(--tg-theme-hint-color, #8e8e93);--state-new: rgba(255, 255, 255, .22);--separator: rgba(255, 255, 255, .12);--state-track: rgba(255, 255, 255, .12);--bar-muted: rgba(255, 255, 255, .22);--danger-wash: rgba(223, 63, 64, .18);--zone-past: #c09477;--zone-future: #8a9bc4;--brand: #3f8a6f;--accent: #7cc0a4;--accent-wash: rgba(124, 192, 164, .14)}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--tg-font-family, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, sans-serif);font-size:16px;line-height:1.4;-webkit-font-smoothing:antialiased}.app{height:100vh;height:100dvh;height:var(--tg-viewport-stable-height, 100dvh);max-width:560px;margin:0 auto;display:flex;flex-direction:column;background:var(--bg);position:relative;--tabbar-gap: max(10px, var(--safe-bottom));--tabbar-space: calc(var(--tabbar-gap) + 64px)}.app--keyboard{--tabbar-space: 0px}.pane{flex:1;min-height:0;display:flex;flex-direction:column}.app:before{content:"";position:fixed;top:0;left:0;right:0;height:var(--safe-top);background:linear-gradient(var(--bg) 75%,transparent);pointer-events:none;z-index:10}.screen{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:calc(var(--safe-top) + 8px) calc(var(--pad-screen) + var(--safe-right)) calc(var(--tabbar-space) + 16px) calc(var(--pad-screen) + var(--safe-left))}.app--focus:before{display:none}.screen__title{margin:0;font-size:24px;font-weight:600;letter-spacing:-.015em}.screen__subtitle{margin:2px 0 0;font-size:14px;color:var(--text-hint)}.screen__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.screen__actions{display:flex;align-items:center;gap:4px;flex:none}.stack{display:flex;flex-direction:column;gap:12px}.grow{flex:1;min-width:0}.muted{color:var(--text-hint)}.mono{font-family:var(--mono)}.card{background:var(--surface);border-radius:var(--radius-card);padding:14px 16px}.card--wash{background:var(--accent-wash)}.card--form{margin-bottom:12px}.card__label{font-size:13px;color:var(--text-secondary)}.card__row{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px;font-size:13px;color:var(--text-secondary)}.card__row-value{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}.card__hint{margin:10px 0 0;font-size:12px;color:var(--text-hint)}.card__hint--top{margin:4px 0 10px}.today__value{font-size:28px;font-weight:600;line-height:1.15;letter-spacing:-.015em;color:var(--text);font-variant-numeric:tabular-nums}.today__meta{font-size:13px;color:var(--text-secondary);margin-top:2px}.plan__cta{margin-top:14px}.inline-row{display:flex;align-items:center;gap:12px}.inline-row__title{font-size:15px;font-weight:600}.inline-row__meta{font-size:13px;color:var(--text-hint);margin-top:2px}.inline-row .btn-secondary{flex:none;padding:9px 14px}.today__note{margin-top:10px;padding-top:10px;border-top:1px solid var(--separator);font-size:12px;color:var(--text-secondary)}.streak{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600;color:var(--warning-text);background:var(--warning-wash);border-radius:var(--radius-pill);padding:4px 10px;white-space:nowrap}.segbar{display:flex;height:10px;border-radius:5px;overflow:hidden;background:var(--state-track)}.segbar--thin{height:5px;border-radius:3px}.segbar__seg{height:100%}.legend{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin-top:12px}.legend__item{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--text-secondary);min-width:0}.legend__item--tappable{border:0;background:transparent;font:inherit;font-size:13px;color:var(--text-secondary);cursor:pointer;padding:3px 0;text-align:left;-webkit-tap-highlight-color:transparent}.legend__item--tappable:active{opacity:.55}.legend__dot{width:8px;height:8px;border-radius:50%;flex:none}.legend__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend__value{margin-left:auto;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.week{display:flex;align-items:flex-end;gap:6px;height:72px}.week__col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;gap:4px}.week__count{font-size:11px;color:var(--text-hint);font-variant-numeric:tabular-nums}.week__bar{width:100%;border-radius:4px;background:var(--brand);min-height:4px}.week__zero{width:100%;height:2px;border-radius:1px;background:var(--state-track)}.week__labels{display:flex;gap:6px;margin-top:6px}.week__label{flex:1;text-align:center;font-size:12px;color:var(--text-hint)}.week__label--today{color:var(--text);font-weight:600}.list{background:var(--surface);border-radius:var(--radius-card);overflow:hidden}.list-caption{font-size:13px;color:var(--text-secondary);margin:20px 0 8px}.row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;background:var(--surface);border:0;text-align:left;color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.list>*:not(:last-child) .row,.list>.row:not(:last-child){box-shadow:inset 0 -.5px 0 var(--separator)}.row:active{background:var(--surface-sunken)}.row__body{flex:1;min-width:0}.row__head{display:flex;align-items:center;gap:8px;min-width:0}.row__title{font-size:15px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row__meta{display:block;font-size:13px;color:var(--text-hint);margin-top:2px}.row__bar{margin:8px 0 6px}.row__chevron{flex:none;color:var(--text-hint);font-size:18px;line-height:1}.row__accent{flex:none;width:3px;align-self:stretch;border-radius:2px;min-height:34px}.chip{display:inline-flex;align-items:center;font-size:13px;font-weight:600;padding:3px 9px;border-radius:var(--radius-pill);white-space:nowrap;font-variant-numeric:tabular-nums}.chip--due{background:var(--warning-wash);color:var(--warning-text)}.chip--muted{background:var(--surface-sunken);color:var(--text-secondary)}.chip--brand{background:var(--accent-wash);color:var(--accent)}.filters{display:flex;gap:8px;margin-bottom:12px;overflow-x:auto;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filter{border:0;font:inherit;cursor:pointer;background:var(--surface);color:var(--text-secondary);font-size:14px;padding:6px 14px;border-radius:var(--radius-pill);white-space:nowrap}.filter--active{background:var(--accent-wash);color:var(--accent);font-weight:600}.disclosure{display:flex;align-items:center;gap:8px;width:100%;margin-top:16px;padding:0;background:none;border:0;font:inherit;text-align:left;cursor:pointer;color:var(--text)}.disclosure__label{font-size:13px;color:var(--text-secondary)}.disclosure__value{margin-left:auto;min-width:0;font-size:13px;color:var(--text-hint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.disclosure__chevron{flex:none;font-size:17px;line-height:1;color:var(--text-hint);transition:transform .16s ease}.disclosure[aria-expanded=true] .disclosure__chevron{transform:rotate(90deg)}.picks{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}.pick{border:1px solid var(--separator);background:var(--surface-sunken);color:var(--text-secondary);font:inherit;font-size:14px;font-weight:500;padding:6px 13px;border-radius:var(--radius-pill);cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pick--on{background:var(--accent-wash);border-color:var(--accent);color:var(--accent);font-weight:600}.share{display:flex;align-items:center;gap:12px}.share__title{font-size:15px;font-weight:600}.share__hint{font-size:12px;color:var(--text-hint);margin-top:2px}.share .pick{flex:none}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:var(--surface-sunken);border-radius:var(--radius-control);padding:4px;margin-top:8px}.segmented button{border:0;background:transparent;border-radius:7px;padding:9px 8px;font:inherit;font-size:14px;font-weight:600;color:var(--text-secondary);cursor:pointer}.segmented--3{grid-template-columns:repeat(3,1fr)}.segmented--4{grid-template-columns:repeat(4,1fr)}.segmented button.on{background:var(--surface);color:var(--accent)}.btn-ghost{border:0;background:transparent;font:inherit;font-size:15px;font-weight:600;color:var(--accent);cursor:pointer;padding:4px 0}.btn-back{border:0;background:transparent;font:inherit;font-size:15px;font-weight:500;color:var(--accent);cursor:pointer;padding:0 0 6px;margin-left:-2px}.btn-fallback{width:100%;border:0;font:inherit;font-size:16px;font-weight:600;background:var(--brand);color:var(--on-brand);border-radius:var(--radius-control);padding:14px;cursor:pointer}.btn-primary{border:0;font:inherit;font-size:15px;font-weight:600;background:var(--brand);color:var(--on-brand);border-radius:var(--radius-control);padding:11px 18px;cursor:pointer}.btn-primary:disabled{opacity:.45}.btn-secondary{border:1px solid var(--separator);font:inherit;font-size:15px;font-weight:500;background:var(--surface);color:var(--text);border-radius:var(--radius-control);padding:11px 18px;cursor:pointer}.btn-secondary:disabled{opacity:.45}.btn-block{width:100%;margin-bottom:12px}.btn-block--last{margin-bottom:0}.button-row{display:flex;gap:8px;margin-top:10px}.btn-remove{flex:none;border:0;background:transparent;color:var(--text-hint);font-size:17px;line-height:1;padding:8px;cursor:pointer}.icon-btn{border:0;background:transparent;color:var(--text-hint);cursor:pointer;padding:6px;display:inline-flex;border-radius:8px}input,textarea,.select{width:100%;border:0;font:inherit;font-size:15px;background:var(--surface-sunken);color:var(--text);border-radius:var(--radius-control);padding:11px 14px}input::placeholder,textarea::placeholder{color:var(--text-hint)}textarea{min-height:120px;resize:vertical;margin-bottom:4px}.search{width:100%;border:0;font:inherit;font-size:15px;background:var(--surface);color:var(--text);border-radius:var(--radius-control);padding:10px 14px;margin-bottom:12px}.search::placeholder{color:var(--text-hint)}.error-banner{display:flex;align-items:center;gap:10px;background:var(--danger-wash);color:var(--text-destructive);border-radius:var(--radius-control);padding:11px 13px;margin-bottom:12px;font-size:14px}.error-banner__text{flex:1;min-width:0}.error-banner__action{flex:none;background:none;border:0;padding:0;font:inherit;font-weight:600;color:inherit;text-decoration:underline;cursor:pointer}.notice{margin:0 0 8px;font-size:13px;color:var(--accent)}.swipe{position:relative;overflow:hidden}.swipe__delete{position:absolute;inset:0 0 0 auto;width:88px;border:0;font:inherit;font-size:14px;font-weight:600;background:var(--text-destructive);color:var(--on-filled);cursor:pointer}.swipe__content{position:relative;will-change:transform;touch-action:pan-y}.tabbar{display:flex;background:var(--bottom-bar);box-shadow:inset 0 .5px 0 var(--separator);padding-bottom:var(--safe-bottom);padding-left:var(--safe-left);padding-right:var(--safe-right);flex:none}.tab{flex:1;border:0;background:transparent;font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 0 9px;height:var(--tab-bar-height);color:var(--text-hint);font-size:11px;-webkit-tap-highlight-color:transparent}.tab--active{color:var(--accent);font-weight:600}.review__topbar{display:flex;align-items:center;gap:10px;margin-bottom:14px}.review__topbar .btn-back{flex:none;padding-bottom:0}.review__topbar .select{flex:1}.review__progress{margin-bottom:14px}.review__bar{height:4px;border-radius:2px;background:var(--state-track);overflow:hidden}.review__bar-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .2s ease-out}.review__count{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;margin-top:8px;font-size:13px;color:var(--text-hint);font-variant-numeric:tabular-nums}.review__card{background:var(--surface);border-radius:var(--radius-card);padding:32px 20px;text-align:center;margin-bottom:14px;min-height:190px;display:flex;flex-direction:column;justify-content:center;gap:12px;cursor:pointer;-webkit-tap-highlight-color:transparent}.review__topics{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-hint)}.review__word{font-size:27px;font-weight:600;letter-spacing:-.02em;overflow-wrap:anywhere}.review__card--static{cursor:default}.cloze{font-size:19px;line-height:1.5;overflow-wrap:anywhere}.cloze__gap{display:inline-block;min-width:3ch;border-bottom:2px solid var(--text-hint);line-height:1.2}.cloze__gap--filled{border-bottom-color:var(--accent);color:var(--accent);font-weight:600}.verdict{margin-top:4px;padding-top:12px;border-top:1px solid var(--separator);display:flex;flex-direction:column;gap:6px}.verdict__title{font-size:13px;font-weight:600}.verdict--ok .verdict__title{color:var(--accent)}.verdict--miss .verdict__title{color:var(--text-destructive)}.verdict__note{margin-top:6px;font-size:14px;color:var(--text-secondary)}.verdict__answer{font-size:22px;font-weight:700;display:block;text-align:center}.type-form{display:flex;flex-direction:column;gap:10px}.type-form__input{font-size:18px;padding:13px 14px;background:var(--surface);text-align:center}.type-form .btn-primary,.type-form .btn-secondary{padding:14px 10px}.quiz{margin-top:4px}.screen__title+.review__progress{margin-top:12px}.quiz__sentence{font-size:18px;line-height:1.55;overflow-wrap:anywhere}.quiz__options{display:flex;flex-direction:column;gap:8px}.quiz__option{width:100%;text-align:left;border:1px solid var(--separator);background:var(--surface);color:var(--text);font:inherit;font-size:16px;padding:13px 16px;border-radius:var(--radius-control);cursor:pointer}.quiz__option:disabled{cursor:default}.quiz__option--right{border-color:var(--accent);background:var(--accent-wash);color:var(--accent);font-weight:600}.quiz__option--wrong{border-color:var(--text-destructive);background:var(--danger-wash);color:var(--text-destructive)}.quiz__option--dim{opacity:.5}.quiz__verdict{margin-top:0;padding-top:0;border-top:0}.quiz__why{margin:0;font-size:14px;color:var(--text-secondary);line-height:1.45}.card .quiz__why{margin-top:8px}.gr-practice{margin-top:20px}.gr-practice__words{margin-top:8px}.speak-btn{vertical-align:middle;margin-left:4px;color:var(--text-hint)}.review-screen{display:flex;flex-direction:column}.review-screen .review__card--grow{flex:1 1 auto}.review-screen .grade-grid,.review-screen>.btn-fallback{margin-top:auto}.review__word--long{font-size:23px}.review__word--en{font-family:var(--font-display);font-weight:500;font-size:36px;letter-spacing:-.01em;line-height:1.15}.review__word--en.review__word--long{font-size:26px}.entry-rule{width:56px;height:1px;margin:4px auto;background:var(--separator)}.meanings{list-style:none;margin:0;padding:0;display:inline-flex;flex-direction:column;gap:4px;text-align:left}.meanings li{display:flex;gap:10px;font-size:18px;color:var(--text)}.meanings__n{flex:none;width:1ch;font-size:13px;line-height:1.9;font-variant-numeric:tabular-nums;color:var(--text-hint)}.review__answer--en{font-family:var(--font-display);font-weight:500;font-size:30px;color:var(--text)}.review__example{font-family:var(--font-display)}.review__example u{text-decoration-color:var(--accent);text-decoration-thickness:1.5px;text-underline-offset:3px;font-style:normal}.cloze,.quiz__sentence,.verdict__answer{font-family:var(--font-display)}.verdict__answer{font-weight:500}.word-row__word,.sheet__word b,.wordmap__word{font-family:var(--font-display);font-weight:500;font-size:17px}.receipt{background:var(--surface);border-radius:var(--radius-card);padding:18px 18px 14px}.receipt__head{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-hint)}.receipt__total{margin-top:14px;font-family:var(--font-display);font-size:44px;font-weight:500;line-height:1;font-variant-numeric:tabular-nums}.receipt__unit{margin-left:8px;font-family:inherit;font-size:18px;color:var(--text-secondary)}.receipt__sub{margin-top:6px;font-size:13px;color:var(--text-secondary)}.receipt__rule{margin:14px 0 6px;border-top:1px dashed var(--separator)}.receipt__list{list-style:none;margin:0;padding:0}.receipt__list li{display:flex;align-items:baseline;gap:10px;padding:7px 0}.receipt__mark{width:1em;color:var(--accent);font-weight:600}.receipt__mark--miss{color:var(--text-hint)}.receipt__word{flex:1;min-width:0;font-family:var(--font-display);font-size:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.receipt__next{font-family:var(--mono);font-size:11px;color:var(--text-hint);white-space:nowrap}.receipt__more{color:var(--text-hint);font-size:13px}.wordmap{margin-top:10px}.wordmap__field{display:block;width:100%;height:auto;touch-action:manipulation}@keyframes wordmap-dot-in{0%{opacity:0;transform:scale(.3)}}.wordmap__dot{transform-box:fill-box;transform-origin:center;animation:wordmap-dot-in .42s cubic-bezier(.2,.7,.2,1) backwards;transition:fill .3s ease}.wordmap__caption{min-height:24px;margin-top:10px;font-size:14px;display:flex;align-items:baseline;gap:4px;flex-wrap:wrap}.wordmap__when{margin-left:auto;font-size:12px;color:var(--text-hint);white-space:nowrap}.wordmap__legend{display:grid;grid-template-columns:1fr 1fr;gap:2px 14px;margin-top:8px;padding-top:8px;border-top:1px solid var(--separator)}.wordmap__key{display:flex;align-items:center;gap:7px;border:0;background:none;padding:5px 0;font:inherit;font-size:13px;color:var(--text-secondary);cursor:pointer;text-align:left}.wordmap__key-value{margin-left:auto;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.wordmap__due{display:flex;align-items:center;gap:7px;margin:4px 0 0;font-size:12px;color:var(--text-hint)}.wordmap__loading{padding:30px 0}.review__ipa{margin-top:-6px;font-family:var(--mono);font-size:14px;color:var(--text-hint)}.review__answer{font-size:20px;font-weight:500;color:var(--accent);overflow-wrap:anywhere}.review__example{font-size:15px;color:var(--text-secondary);font-style:italic}.review__hint{font-size:14px;color:var(--text-hint)}.grade-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grade{display:flex;flex-direction:column;align-items:center;gap:2px;border:1px solid var(--separator);background:var(--surface);border-radius:var(--radius-control);padding:12px 10px;font:inherit;font-size:16px;font-weight:600;color:var(--text);cursor:pointer}.grade:active{background:var(--surface-sunken)}.grade--good{border-color:var(--accent);color:var(--accent)}.grade__hint{font-size:12px;font-weight:400;color:var(--text-hint);font-variant-numeric:tabular-nums}.grade:disabled{opacity:.5}.word-row{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--surface)}.word-row:not(:last-child){box-shadow:inset 0 -.5px 0 var(--separator)}.word-row__word{font-size:15px;font-weight:600}.word-row__translation{font-size:13px;color:var(--text-secondary)}.word-row__shared{font-size:11px;color:var(--text-hint);margin-top:2px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:var(--backdrop);display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:560px;max-height:82vh;display:flex;flex-direction:column;background:var(--surface);border-radius:16px 16px 0 0;padding:14px 16px calc(var(--safe-bottom) + 16px)}.sheet__head{display:flex;align-items:flex-start;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--separator)}.sheet__title{font-size:18px;font-weight:700}.sheet__sub{font-size:12px;color:var(--text-hint);margin-top:2px}.sheet__note{font-size:12px;color:var(--text-hint);margin:8px 0 0}.sheet__body{overflow-y:auto;-webkit-overflow-scrolling:touch}.sheet__word{display:flex;align-items:center;gap:10px;padding:10px 0;font-size:14px}.sheet__word:not(:last-child){box-shadow:inset 0 -.5px 0 var(--separator)}.sheet__word-topics{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-hint);margin-top:3px}.sheet__when{flex:none;font-size:11px;color:var(--text-hint);white-space:nowrap}.empty{text-align:center;padding:40px 20px;color:var(--text-hint);font-size:15px}.gr-note{font-size:13.5px;color:var(--text-secondary);margin:0 0 12px}.gr-zone{font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;margin:20px 0 10px;padding-bottom:5px;border-bottom:2px solid}.gr-zone--past{color:var(--zone-past);border-color:var(--zone-past)}.gr-zone--present{color:var(--zone-present);border-color:var(--zone-present)}.gr-zone--future{color:var(--zone-future);border-color:var(--zone-future)}.gr-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin-bottom:8px}.gr-card{background:var(--surface);border-radius:var(--radius-card);border-left:4px solid var(--text-hint);padding:12px 14px;min-width:0}.gr-card--past{border-left-color:var(--zone-past)}.gr-card--present{border-left-color:var(--zone-present)}.gr-card--future{border-left-color:var(--zone-future)}.gr-name{font-weight:600;font-size:15px}.gr-ru{color:var(--text-hint);font-size:12.5px;margin-bottom:8px}.gr-formula{font-family:var(--mono);font-size:13px;background:var(--surface-sunken);border-radius:8px;padding:7px 10px;margin-bottom:8px;white-space:normal;overflow-wrap:anywhere}.gr-when{font-size:13.5px;margin-bottom:8px}.gr-ex{border-top:1px solid var(--separator);padding-top:8px}.gr-en{font-weight:600;font-size:14px}.gr-tr{color:var(--text-hint);font-size:12.5px;display:block;margin-top:2px}.gr-tl{display:block;width:100%;height:auto;margin:2px 0 10px}.gr-tl-lbl,.gr-tl-num{font-family:var(--mono);font-size:9px;fill:var(--text-hint)}.gr-forms{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.gr-form-row{display:flex;align-items:baseline;gap:9px}.gr-form-row .mono{font-size:12.5px;line-height:1.4;min-width:0;overflow-wrap:anywhere}.gr-sign{flex:none;width:14px;text-align:center;font-family:var(--mono);font-weight:700;font-size:14px}.gr-sign--pos{color:var(--zone-present)}.gr-sign--neg{color:var(--text-destructive)}.gr-sign--q{color:var(--zone-future)}.gr-markers{border-top:1px solid var(--separator);padding-top:8px;font-size:12px;color:var(--text-hint);line-height:1.5}.gr-markers-lbl{display:inline-block;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);margin-right:4px}.gr-table{background:var(--surface);border-radius:var(--radius-card);padding:0 14px;margin-bottom:8px}.gr-trow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto);gap:4px 10px;padding:10px 0}.gr-trow:not(:last-child){box-shadow:inset 0 -.5px 0 var(--separator)}.gr-tense{font-weight:600;font-size:13.5px}.gr-form{font-family:var(--mono);font-size:13px;color:var(--zone-present);font-weight:700;text-align:right;overflow-wrap:anywhere}.gr-tex{grid-column:1 / -1;font-size:13.5px}.gr-flow{margin:4px 0 12px}.gr-box{background:var(--surface);border:1.5px solid var(--separator);border-radius:var(--radius-control);padding:10px 12px;font-size:14px;min-width:0;overflow-wrap:anywhere}.gr-box--act{border-color:var(--zone-present)}.gr-box--pas{border-color:var(--zone-future)}.gr-box--past{border-color:var(--zone-past)}.gr-box--present{border-color:var(--zone-present)}.gr-box--future{border-color:var(--zone-future)}.gr-form--past{color:var(--zone-past)}.gr-form--present{color:var(--zone-present)}.gr-form--future{color:var(--zone-future)}.gr-wrong{color:var(--text-secondary);font-weight:500}.gr-box s{color:var(--text-secondary)}.gr-box-tag{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--text-hint);margin-bottom:3px}.gr-flow-arrow{text-align:center;color:var(--text-hint);font-size:13px;padding:8px 0}.login{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:calc(var(--safe-top) + 24px) calc(var(--pad-screen) + var(--safe-right)) calc(var(--safe-bottom) + 24px) calc(var(--pad-screen) + var(--safe-left))}.login__card{width:100%;max-width:340px;background:var(--surface);border-radius:var(--radius-card);padding:30px 22px 26px;text-align:center}.login__logo{width:58px;height:58px;margin:0 auto 18px;border-radius:16px;background:var(--brand);color:var(--on-brand);font-weight:700;font-size:21px;display:flex;align-items:center;justify-content:center}.login__title{font-size:21px;font-weight:700;margin:0 0 4px}.login__text{font-size:14px;color:var(--text-secondary);margin:0 0 20px}.login__widget{display:flex;justify-content:center;min-height:48px}.settings{margin-top:12px;gap:20px}.settings__caption{margin:0 0 6px 16px;font-size:13px;font-weight:500;color:var(--text-secondary)}.settings__hint{margin:6px 16px 0;font-size:12px;color:var(--text-hint)}.settings__sublabel{margin-top:16px}.settings__row{display:flex;align-items:center;gap:12px;min-height:44px;font-size:15px}.settings__row+.settings__row{box-shadow:inset 0 .5px 0 var(--separator)}.settings__control{width:auto;max-width:60%;flex:none;padding:7px 10px;font-size:15px;background:var(--surface-sunken);color:var(--text);border:0;border-radius:8px}.settings__link{border:0;background:none;padding:0;font:inherit;color:var(--text-link);cursor:pointer}.switch{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex:none;width:51px;height:31px;margin:0;padding:0;border-radius:var(--radius-pill);background:var(--state-track);position:relative;cursor:pointer;transition:background .16s ease}.switch:after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:var(--switch-knob);box-shadow:var(--switch-knob-shadow);transition:transform .16s ease}.switch:checked{background:var(--brand)}.switch:checked:after{transform:translate(20px)}.switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}:root,[data-theme=light],[data-theme=dark]{--bg: #0b0b0c;--surface: #161618;--surface-sunken: #202023;--bottom-bar: #0b0b0c;--text: #f4f4f5;--text-secondary: #a1a1a6;--text-hint: #6e6e73;--text-link: #dcc08a;--text-destructive: #ff6b5e;--separator: rgba(255, 255, 255, .1);--brand: #f4f4f5;--on-brand: #0b0b0c;--accent: #c9a86a;--accent-wash: rgba(201, 168, 106, .14);--danger-wash: rgba(255, 107, 94, .14);--state-new: rgba(255, 255, 255, .22);--state-track: rgba(255, 255, 255, .1);--bar-muted: rgba(255, 255, 255, .18);--radius-card: 18px;--radius-control: 14px;--font-display: -apple-system, "SF Pro Display", "Helvetica Neue", Roboto, sans-serif}body,.screen{background:var(--bg)}.screen__title{font-family:var(--font-display);font-size:32px;font-weight:700;letter-spacing:-.03em;line-height:1.08}.card__label,.list-caption,.settings__caption{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-hint)}.btn-fallback,.btn-primary{border-radius:999px}.tabbar{position:absolute;z-index:15;left:50%;bottom:var(--tabbar-gap);transform:translate(-50%);width:min(calc(100% - 2 * var(--pad-screen) - var(--safe-left) - var(--safe-right)),360px);height:64px;padding:6px;gap:4px;border-radius:999px;background:#1e1e21b8;-webkit-backdrop-filter:blur(22px) saturate(1.6);backdrop-filter:blur(22px) saturate(1.6);box-shadow:inset 0 0 0 .5px #ffffff1f,0 10px 30px #00000073}.tab{flex:1;height:52px;padding:0;justify-content:center;gap:3px;border-radius:999px;font-size:11px;font-weight:500;letter-spacing:.01em;color:var(--text-hint);transition:background .18s ease,color .18s ease}.tab:active{transform:scale(.96)}.tab--active{color:var(--text);font-weight:600;background:#ffffff1a}.hero{display:flex;flex-direction:column;padding-top:calc(var(--safe-top) + 18px)}.hero__top{display:flex;align-items:flex-start}.hero__date{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-hint)}.hero__streak{margin-top:4px;font-size:13px;color:var(--accent)}.hero__top .icon-btn{margin-left:auto;margin-top:-6px}.hero__body{flex:1;display:flex;flex-direction:column;justify-content:center;padding:24px 0}.hero__num{font-family:var(--font-display);font-size:clamp(96px,20vh,168px);font-weight:200;line-height:.85;letter-spacing:-.06em;font-variant-numeric:tabular-nums}.hero__num--text{font-size:56px;font-weight:300;letter-spacing:-.03em;line-height:1.05}.hero__label{margin-top:12px;font-size:21px;font-weight:300;line-height:1.35;color:var(--text-secondary)}.hero__week{display:flex;gap:8px;margin-top:36px}.hero__week i{width:30px;height:4px;border-radius:2px;background:var(--state-track);display:block}.hero__week i.on{background:var(--text)}.hero__week i.today{background:var(--accent)}.hero__week i.today.off{background:transparent;box-shadow:inset 0 0 0 1px var(--accent)}.hero__extra{align-self:flex-start;margin-top:22px;border:0;background:none;padding:0;font:inherit;font-size:15px;color:var(--text-secondary);cursor:pointer}.hero__extra b{color:var(--text);font-weight:600}.hero__start{display:flex;align-items:center;justify-content:space-between;width:100%;height:64px;padding:0 9px 0 28px;border:0;border-radius:999px;background:var(--brand);color:var(--on-brand);font:inherit;font-size:18px;font-weight:600;cursor:pointer}.hero__start span{width:46px;height:46px;border-radius:50%;background:var(--on-brand);color:var(--brand);display:grid;place-items:center;font-size:20px}.hero__start:active{transform:scale(.985)}.focus{--surface: rgba(255, 255, 255, .07);--surface-sunken: rgba(255, 255, 255, .11);--text-secondary: rgba(244, 244, 245, .72);--text-hint: rgba(244, 244, 245, .5);--separator: rgba(244, 244, 245, .16);--state-track: rgba(244, 244, 245, .2);color:var(--text);transition:background .4s ease}.app--focus{background:var(--bg)}.focus .review__card{background:transparent;box-shadow:none}.focus .review__card--grow{touch-action:pan-y;transition:transform .22s ease-out;-webkit-user-select:none;user-select:none}.focus .select{background:transparent;color:var(--text-secondary);padding-left:0}.focus .btn-back{color:var(--text-secondary)}.focus .review__count .chip{background:transparent;color:var(--text-hint);padding:0}.focus .review__word{font-family:var(--font-display);font-size:56px;font-weight:650;letter-spacing:-.035em;line-height:1.05}.focus .review__word--long{font-size:34px}.focus .review__word--xlong{font-size:27px;letter-spacing:-.02em}.focus .review__word{overflow-wrap:break-word}.focus .review__ipa{font-size:16px}.focus .review__answer,.focus .meanings li{font-size:24px;font-weight:300}.focus .meanings__n{font-size:14px;line-height:2.2}.focus .review__example{font-family:inherit;font-style:italic;font-size:16px;color:var(--text-secondary)}.focus .entry-rule{display:none}.story{display:flex;gap:3px}.story i{flex:1;height:3px;border-radius:2px;background:var(--state-track);display:block}.story i.done{background:var(--text)}.story i.now{background:var(--accent)}.review-screen.focus .grade-grid{grid-template-columns:1fr auto 1fr;align-items:center}.focus .grade{background:transparent;border:0;padding:10px 2px;align-items:flex-start;font-size:15px;font-weight:500}.focus .grade--good{align-items:flex-end;color:var(--accent)}.focus .grade:active{background:transparent;opacity:.6}.swipe-knob{width:54px;height:54px;border-radius:50%;border:1px solid var(--separator);display:grid;place-items:center;font-size:12px;color:var(--text-hint)}.focus .verdict{border-top:0;margin-top:10px;padding:12px 14px;background:var(--surface);border-radius:16px}.focus .type-form__input{background:var(--surface);color:var(--text)}.focus .cloze,.focus .verdict__answer{font-family:var(--font-display)}.receipt-lead{margin:0 2px;font-size:16px;line-height:1.45;color:var(--text-secondary)}.receipt__total,.receipt__word{font-family:var(--font-display)}.gr-index{list-style:none;margin:4px 0 0;padding:0}.gr-index__row{display:flex;align-items:center;gap:16px;width:100%;padding:14px 0;border:0;border-bottom:1px solid var(--separator);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.gr-index__row:active{opacity:.6}.gr-index__n{flex:none;width:22px;font-family:var(--mono);font-size:12px;color:var(--text-hint)}.gr-index__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.gr-index__title{font-family:var(--font-display);font-size:20px;font-weight:600;letter-spacing:-.015em}.gr-index__meta{font-size:13px;color:var(--text-hint)}.gr-index__chev{color:var(--text-hint);font-size:18px}.gr-recent{margin-top:18px}:root,[data-theme=light],[data-theme=dark]{--zone-past: #b9ae9c;--zone-present: var(--accent);--zone-future: #8fa6c9}.gr-card,.gr-card--past,.gr-card--present,.gr-card--future{border-left:0}.gr-zone,.gr-zone--past,.gr-zone--present,.gr-zone--future{color:var(--text-secondary);border-bottom:1px solid var(--separator);letter-spacing:.1em;font-weight:600}.gr-name{font-family:var(--font-display);font-size:18px;letter-spacing:-.01em}.gr-form-row .mono{font-family:inherit;font-size:14px}.gr-formula{background:var(--surface-sunken)}.gr-box{border-width:1px;border-color:var(--separator)}.gr-practice{margin-top:28px;display:flex;flex-direction:column;gap:12px}.gr-practice__best{margin:0 4px;font-size:13px;color:var(--text-hint)}.quiz-room .quiz{margin-top:28px;gap:14px}.focus .quiz .card{background:transparent;padding:0;box-shadow:none}.focus .quiz__sentence{font-family:var(--font-display);font-size:26px;line-height:1.35;letter-spacing:-.01em}.focus .quiz__option{border-radius:999px;border-color:var(--separator);background:var(--surface);color:var(--text);padding:14px 20px;font-size:17px}.focus .quiz__option--right{border-color:var(--accent);background:var(--accent-wash);color:var(--accent)}.focus .quiz__option--wrong{border-color:var(--text-destructive);background:var(--danger-wash);color:var(--text-destructive)}.focus .quiz__verdict{background:var(--surface);padding:12px 14px;border-radius:16px}.focus .quiz .btn-fallback{border-radius:999px;height:56px}.focus .quiz .card--wash{background:var(--surface);padding:18px}.focus .quiz .card--wash~.card{border-top:1px solid var(--separator);padding-top:14px;border-radius:0}.wordmap__empty{margin:4px 0 6px;font-size:14px;color:var(--text-secondary)}.wordmap__waiting{display:block;margin-top:6px;padding:4px 0;border:0;background:none;font:inherit;font-size:13px;color:var(--text-secondary);cursor:pointer}.settings .card .card__label{font-size:14px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--text-secondary)}.list .row{min-height:52px;padding-top:10px;padding-bottom:10px}.row__tag{display:block;font-size:12px;color:var(--text-hint);margin-top:1px}.row__count{flex:none;font-size:13px;color:var(--text-hint);font-variant-numeric:tabular-nums}.sets-more{margin:10px 2px 0}section+section .list-caption{margin-top:26px}.gr-table{padding:2px 16px}.gr-trow{display:block;padding:14px 0}.gr-tense{font-size:13px;font-weight:500;line-height:1.35;color:var(--text-secondary)}.gr-form{margin:4px 0 8px;font-family:inherit;font-size:17px;font-weight:600;line-height:1.35;letter-spacing:-.005em;text-align:left;overflow-wrap:break-word}.gr-tex{font-size:15px;line-height:1.45}.gr-tex>span:first-child{display:block}.gr-tr{font-size:13px;line-height:1.4;margin-top:3px}.gr-wrong{font-size:15px}.gr-card{padding:16px}.gr-when{font-size:15px;line-height:1.45;color:var(--text-secondary)}.gr-note{font-size:15px;line-height:1.5;color:var(--text-secondary)}.gr-markers{font-size:13px}.settings__disclosure{margin-top:18px;min-height:36px}.settings__disclosure .disclosure__label{font-size:14px;font-weight:500;color:var(--text-secondary)}.settings__disclosure .disclosure__value{font-size:14px;color:var(--text);max-width:55%}.settings__disclosure+.card__hint{margin-top:10px}.settings__value{font-size:15px;color:var(--text-secondary)}.settings__action{margin-top:4px}
