/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:host,:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-serif:ui-serif,Georgia,Cambria,"Times New Roman",Times,serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--radius-sm:.25rem;--radius-lg:.5rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.lowercase{text-transform:lowercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.invert{--tw-invert:invert(100%)}.filter,.invert{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--app:light-dark(#f6f7f4,#141a17);--panel:light-dark(#fff,#1b2420);--surface-subtle:light-dark(#f0f3ee,#1f2924);--ink:light-dark(#1f2d26,#e6ece5);--muted:light-dark(#5b695c,#a4b1a3);--faint:light-dark(#617063,#8a978b);--accent:light-dark(#2f6a4a,#7ab391);--accent-hover:light-dark(#265a3e,#8fc4a5);--accent-ink:light-dark(#fff,#14201a);--soft:light-dark(#e8efe5,#243029);--edge:light-dark(#e1e6dc,#2b3831);--edge-strong:light-dark(#c6d1c1,#3e4d44);--danger:light-dark(#b0463f,#e08a82);--danger-soft:light-dark(#fbeeeb,#2c211f);--warning:light-dark(#8a5a1f,#e0b56b);--warning-soft:light-dark(#f8ecd6,#2b2519);--success:light-dark(#2f5a3e,#9fd0b0);--success-soft:light-dark(#e2ede2,#22302a);--info:light-dark(#3f5f86,#9db6d8);--info-soft:light-dark(#e7edf5,#202a34);--focus:light-dark(#2f6a47,#8fc9a6);--radius-sm:6px;--radius:12px;--radius-lg:16px;--pill:999px;--shadow-float:0 12px 32px light-dark(#1d281f1f,#00000073);--control:40px;--control-sm:32px;--control-touch:44px;--sidebar:236px;--topbar:56px;--content-max:1160px;--gutter:40px;--font-ui:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-serif:Georgia,"Times New Roman",serif;--fs-h1:30px;--fs-h2:19px;--fs-h3:15px;--fs-body:14px;--fs-small:13px;--fs-caption:12px;--fs-label:11px;--lh-tight:1.3;--lh-body:1.55;--lh-loose:1.7}html{scroll-behavior:smooth}body{background:var(--app);color:var(--ink);font-family:var(--font-ui);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}a,button,input,select{-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit}a,button,select{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}[tabindex]:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:2px}a{color:inherit;text-decoration:none}button{border:1px solid var(--edge);background:var(--panel);color:var(--ink);border-radius:8px}h1,h2,h3,h4,p{margin:0}h2,h3,h4{line-height:var(--lh-tight);letter-spacing:-.01em}button,select{transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s}@media (hover:hover){:where(button:hover:not(:disabled)){background:var(--surface-subtle)}}code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.92em}::selection{background:light-dark(#cfe1d3,#35564a)}.app{min-height:100vh;display:flex}.sidebar{width:var(--sidebar);border-right:1px solid var(--edge);overscroll-behavior:contain;background:light-dark(#f0f3ec,#181f1b);flex-direction:column;flex:none;padding:20px 14px;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto}.brand{font-family:var(--font-serif);letter-spacing:-.4px;color:var(--ink);align-items:center;gap:10px;padding:4px 8px 14px;font-size:21px;font-weight:400;display:flex}.brand-mark{width:30px;height:30px;color:var(--accent-ink);background:var(--accent);border-radius:9px;flex:none;place-items:center;display:grid}.brand-dot{color:var(--accent)}.nav-label{font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:10px 10px 8px;font-weight:600}.sidebar nav{gap:2px;margin-bottom:16px;display:grid}.sidebar nav a{min-height:38px;font-size:var(--fs-small);color:var(--muted);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-weight:500;line-height:1.3;transition:background-color .15s,color .15s;display:flex}.sidebar nav a svg{opacity:.85;flex:none;width:18px;height:18px}@media (hover:hover){.sidebar nav a:hover{color:var(--ink);background:light-dark(#e7ece3,#1f2924)}}.sidebar nav a.nav-active{background:var(--soft);color:var(--accent);font-weight:600}.sidebar nav a.nav-active svg{opacity:1}.nav-dot{background:var(--accent);border-radius:50%;flex:none;width:5px;height:5px;margin-left:auto}.review-nav-count{min-width:20px;height:20px;font-size:var(--fs-label);color:var(--accent);border-radius:var(--pill);font-variant-numeric:tabular-nums;background:light-dark(#dfe9dc,#2b3a31);place-items:center;padding:0 6px;font-weight:600;display:inline-grid}.sidebar nav a.nav-active .review-nav-count+.nav-dot{display:none}.sidebar-note{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);margin:auto 0 0;padding:16px 14px;display:none;position:relative;overflow:hidden}@media (min-height:820px){.sidebar-note{display:block}}.sidebar-quote-mark{height:18px;font-family:var(--font-serif);color:light-dark(#9db091,#58724a);font-size:34px;line-height:1;display:block}.sidebar-note blockquote{font-family:var(--font-serif);color:var(--ink);margin:0;font-size:14px;line-height:1.45}.sidebar-note p{font-size:var(--fs-caption);color:var(--muted);margin-top:8px;line-height:1.5}.sidebar-note figcaption{font-size:var(--fs-label);color:var(--faint);margin-top:8px}.note-line{display:none}.online-dot{background:var(--accent);border-radius:50%;flex:none;width:6px;height:6px;display:inline-block}main{margin-left:var(--sidebar);width:calc(100% - var(--sidebar));min-width:0}.topbar{height:var(--topbar);border-bottom:1px solid var(--edge);padding:0 var(--gutter);font-size:var(--fs-small);background:var(--app);z-index:30;justify-content:space-between;align-items:center;gap:16px;display:flex;position:sticky;top:0}.topbar>div:first-child{min-width:0;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:8px;font-weight:500;display:flex;overflow:hidden}.breadcrumb{color:var(--faint);font-weight:400}.crumb-divider{color:var(--edge-strong);padding:0 2px}.topbar-actions{flex:none;align-items:center;gap:6px;display:flex}.account-user{min-height:var(--control-sm);border-radius:8px;gap:8px;max-width:220px;padding:0 10px;font-weight:500}@media (hover:hover){.account-user:hover{background:var(--surface-subtle)}}.content{max-width:var(--content-max);padding:32px var(--gutter) 48px;margin:0 auto}.page-heading{max-width:72ch;margin-bottom:28px}.eyebrow{font-size:var(--fs-label);letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin-bottom:10px;font-weight:600}.eyebrow a{color:var(--accent);text-transform:none;letter-spacing:0;font-size:var(--fs-small);font-weight:500}.page-heading h1{font-family:var(--font-serif);font-size:var(--fs-h1);letter-spacing:-.02em;font-weight:400;line-height:1.25}.page-heading p{font-size:var(--fs-body);color:var(--muted);line-height:var(--lh-body);margin-top:10px}.page-meta{font-size:var(--fs-small);color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 14px;display:flex}.page-heading .page-meta{margin-top:10px}.mobile-break{display:none}.session-heading{justify-content:space-between;align-items:center;gap:20px;margin:32px 0 16px;display:flex}.session-heading h2{font-size:var(--fs-h2);margin:0;font-weight:600}.section-kicker{font-size:var(--fs-label);letter-spacing:.08em;color:var(--faint)}.new-badge,.section-kicker{text-transform:uppercase;font-weight:600}.new-badge{vertical-align:2px;letter-spacing:.06em;color:var(--accent);background:0 0;border:1px solid light-dark(#b9d1bf,#3f5a4b);border-radius:4px;margin-left:8px;padding:2px 6px;font-size:10px;line-height:1.3;display:inline-block}h1 .new-badge{vertical-align:middle;margin-left:10px}.lesson-meta{color:var(--muted);font-size:var(--fs-small);align-items:center;gap:12px;display:flex}.level-pill{min-height:22px;font-size:var(--fs-caption);letter-spacing:.02em;color:var(--accent);background:var(--soft);font-variant-numeric:tabular-nums;border-radius:5px;align-items:center;padding:0 7px;font-weight:600;display:inline-flex}.session-progress{width:140px;font-size:var(--fs-caption);color:var(--muted)}.session-progress b{color:var(--accent);font-weight:600}.progress-track{background:var(--edge);border-radius:4px;height:4px;margin-top:8px;overflow:hidden}.progress-track i{background:var(--accent);height:100%;transition:width .25s;display:block}.button.primary,.play-button,.primary-action{min-height:var(--control);background:var(--accent);border:1px solid var(--accent);color:var(--accent-ink);font-size:var(--fs-body);letter-spacing:.005em;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:600;text-decoration:none;transition:background-color .15s,transform 80ms;display:inline-flex}.button.primary:hover:not(:disabled),.play-button:hover:not(:disabled),.primary-action:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-ink)}.button.primary:active:not(:disabled),.play-button:active:not(:disabled),.primary-action:active:not(:disabled){transform:translateY(1px)}.button,.secondary-action{min-height:var(--control);border:1px solid var(--edge-strong);background:var(--panel);color:var(--ink);font-size:var(--fs-body);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-weight:500;text-decoration:none;transition:background-color .15s,border-color .15s,transform 80ms;display:inline-flex}.button:hover:not(:disabled),.secondary-action:hover:not(:disabled){background:var(--surface-subtle)}.button:active:not(:disabled),.secondary-action:active:not(:disabled){transform:translateY(1px)}.button.quiet,.secondary-action.is-quiet{color:var(--muted);background:0 0;border-color:#0000}.text-button{font-size:var(--fs-small);color:var(--muted);background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:6px 8px;font-weight:500;display:inline-flex}.text-button:hover:not(:disabled){background:var(--surface-subtle);color:var(--ink);text-decoration:none}.text-button.is-accent{color:var(--accent)}.icon-button{width:var(--control-sm);height:var(--control-sm);border-radius:8px;display:inline-grid}.filter-chip,.level-chip,.tag-chip{min-height:var(--control-sm);border:1px solid var(--edge);background:var(--panel);color:var(--muted);border-radius:var(--pill);font-size:var(--fs-small);white-space:nowrap;cursor:pointer;align-items:center;gap:6px;padding:0 12px;font-weight:500;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.filter-chip:hover:not(:disabled),.level-chip:hover:not(:disabled),.tag-chip:hover:not(:disabled){background:var(--surface-subtle);color:var(--ink)}.filter-chip.is-selected,.filter-chip[aria-pressed=true],.level-chip.is-selected,.level-chip[aria-pressed=true],.tag-chip[aria-pressed=true]{background:var(--soft);color:var(--accent);border-color:light-dark(#b9d1bf,#3f5a4b);font-weight:600}.filter-chip small,.level-chip small,.tag-chip small{font-size:var(--fs-caption);color:var(--faint);font-variant-numeric:tabular-nums;font-weight:400}.field-input,textarea.field-input{min-height:var(--control);border:1px solid var(--edge-strong);background:var(--panel);color:var(--ink);font:inherit;font-size:var(--fs-body);border-radius:8px;width:100%;padding:0 12px;transition:border-color .15s,box-shadow .15s}.field-input::placeholder{color:var(--faint)}.field-input:focus{border-color:var(--accent);outline:0;box-shadow:0 0 0 3px light-dark(#dfeada,#2a3a30)}.field-label{font-size:var(--fs-small);color:var(--ink);margin-bottom:6px;font-weight:600;display:block}.field-hint{color:var(--muted);line-height:1.5}.field-error,.field-hint{font-size:var(--fs-caption);margin-top:6px}.field-error{color:var(--danger)}.player-card,.recordings-card,.settings-card,.transcript-card{background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius);box-shadow:none}.settings-card{margin-bottom:16px;padding:22px 24px}.card-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.card-heading h3{font-size:var(--fs-h3);font-weight:600}.card-heading>span{font-size:var(--fs-label);letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.error-banner,.pending{background:var(--danger-soft);color:var(--danger);border-radius:var(--radius-sm);font-size:var(--fs-small);border:1px solid light-dark(#e6c9c2,#4a332d);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:12px 14px;line-height:1.5;display:flex}.error-banner button,.pending button{min-height:var(--control-sm);font-size:var(--fs-small);align-items:center;gap:6px;padding:0 12px;display:inline-flex}.loading{text-align:center;color:var(--muted);font-size:var(--fs-small);border:1px dashed var(--edge);border-radius:var(--radius);padding:40px 20px}.loading:before{content:"";background:var(--accent);vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:10px;animation:loading-pulse 1.2s ease-in-out infinite;display:inline-block}@keyframes loading-pulse{0%,to{opacity:.25}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.loading:before{opacity:.6;animation:none}}.empty-state{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);align-items:flex-start;gap:16px;padding:24px;display:flex}.empty-state .empty-icon{background:var(--surface-subtle);width:40px;height:40px;color:var(--muted);border:0;border-radius:10px;flex:none;place-items:center;display:grid}.empty-state strong{font-size:var(--fs-body);font-weight:600;display:block}.empty-state p{font-size:var(--fs-small);color:var(--muted);margin-top:4px;line-height:1.5}.empty-state .empty-action{min-height:var(--control-sm);border:1px solid var(--edge-strong);background:var(--panel);font-size:var(--fs-small);color:var(--accent);white-space:nowrap;border-radius:8px;align-self:center;margin-left:auto;padding:0 12px;font-weight:500}.empty-state .empty-action,.save-status{align-items:center;gap:6px;display:inline-flex}.save-status{color:var(--muted)}.save-status,footer{font-size:var(--fs-caption)}footer{border-top:1px solid var(--edge);color:var(--faint);justify-content:space-between;align-items:center;gap:15px;padding-top:16px;display:flex}.reading-note{font-size:var(--fs-small);color:var(--muted)}:root{color-scheme:light dark}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}:root[data-language=en]:not([data-language-ready]) body{visibility:hidden}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .select-trigger,:root:not([data-theme=light]) select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239fab9b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}}:root[data-theme=dark] .select-trigger,:root[data-theme=dark] select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239fab9b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}*{box-sizing:border-box}dialog:modal{margin:auto}@media (hover:hover){:where(button:hover:not(:disabled)){background:var(--soft)}}.select{min-width:0;display:block;position:relative}.select-trigger,select{appearance:none;border:1px solid var(--edge);background:var(--panel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364705f' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center/15px;width:100%;max-width:100%;min-height:44px;color:var(--ink);font:inherit;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-radius:9px;padding:0 36px 0 13px;font-size:13px;line-height:1.3;transition:border-color .15s,background-color .15s,box-shadow .15s;overflow:hidden}select{width:auto}.select-value{text-overflow:ellipsis;display:block;overflow:hidden}@media (hover:hover){.select-trigger:hover:not(:disabled),select:hover:not(:disabled){background-color:light-dark(#fbfcf9,#21221f);border-color:light-dark(#c6d5b7,#343e2a)}}.select-trigger:focus-visible,select:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-color:light-dark(#7fa070,#506f41)}.select-trigger[aria-expanded=true]{border-color:light-dark(#7fa070,#506f41);box-shadow:0 0 0 3px light-dark(#dfeada,#2a3a30)}.select-trigger:disabled,select:disabled{opacity:.45;cursor:not-allowed;background-color:light-dark(#f6f8f3,#232421)}select:-moz-focusring{color:#0000;text-shadow:0 0 0 var(--ink)}.select-menu{z-index:57;overscroll-behavior:contain;background:var(--panel);border:1px solid var(--edge);border-radius:12px;max-height:300px;margin:0;padding:6px;list-style:none;animation:toast-in .15s;overflow-y:auto;box-shadow:0 12px 32px #1f2a2224}.select-option{min-height:40px;color:var(--ink);white-space:nowrap;cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:0 12px 0 8px;font-size:13px;display:flex}.select-option-check{width:16px;color:var(--accent);flex:none;place-items:center;display:grid}.select-option.is-active{background:var(--soft)}.select-option[aria-selected=true]{color:light-dark(#2b5738,#9ecea9);font-weight:600}.select-option[aria-disabled=true]{opacity:.45;cursor:not-allowed}.select-backdrop{display:none}.listen-speed,.mobile-level-filter,.privacy-field,.take-select-field,.then-and-now-field{color:var(--muted);gap:6px;font-size:11px;display:grid}.listen-speed{color:light-dark(#526750,#93aa91);align-items:center;gap:6px;margin-left:auto;font-size:12px;display:inline-flex}.privacy-field{color:light-dark(#4d5f4f,#9eb2a0);margin-top:14px;font-size:13px}.field-input{border:1px solid var(--edge);background:var(--panel);min-height:44px;color:var(--ink);font:inherit;border-radius:9px;width:100%;padding:0 13px;font-size:13px}.field-input:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-color:light-dark(#7fa070,#506f41)}.select-quiet .select-trigger,select.select-quiet{color:light-dark(#355b3f,#9bc5a4);background-color:#0000;background-position:right 8px center;background-size:13px;border-color:#0000;min-height:36px;padding:0 28px 0 10px;font-size:12px}@media (hover:hover){.select-quiet .select-trigger:hover:not(:disabled),select.select-quiet:hover:not(:disabled){background-color:light-dark(#f0f5eb,#242820);border-color:light-dark(#d3e0cb,#2e3827)}}@media (max-width:600px){.field-input,.select-trigger,select{font-size:16px}.select-quiet .select-trigger,select.select-quiet{background-position:right 4px center;min-height:44px;padding:0 22px 0 4px;font-size:16px}.select-backdrop{z-index:56;background:light-dark(#1f2a2266,#e0efe466);display:block;position:fixed;inset:0}.select-menu{max-height:60vh;padding:10px 10px calc(10px + var(--tabbar-height,0px) + env(safe-area-inset-bottom,0px));border-bottom:0;border-radius:18px 18px 0 0;animation:sheet-up .2s;position:fixed;inset:auto 0 0}.select-option{min-height:48px;font-size:16px}}@keyframes sheet-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}.toast-stack{left:50%;bottom:calc(var(--tabbar-height,0px) + var(--dock-height,0px) + 16px + env(safe-area-inset-bottom,0px));z-index:60;pointer-events:none;gap:8px;width:min(440px,100% - 32px);display:grid;position:fixed;transform:translate(-50%)}.toast{pointer-events:auto;color:light-dark(#fff,#1c2520);background:light-dark(#25372e,#e4ebe3);border-radius:12px;align-items:center;gap:10px;padding:11px 10px 11px 14px;font-size:13px;line-height:1.5;animation:toast-in .22s;display:flex;box-shadow:0 10px 28px #1f2a2240}.toast>svg{flex:none}.toast-success>svg{color:light-dark(#a9d8ad,#304232)}.toast-error{background:light-dark(#7b3531,#f6a49d)}.toast-error>svg{color:light-dark(#ffd6d1,#412a28)}.toast-message{flex:1;min-width:0}.toast button{color:light-dark(#fff,#1c2520);white-space:nowrap;background:light-dark(#ffffff14,#1c252014);border:1px solid light-dark(#ffffff2e,#1c25202e);border-radius:8px;min-height:32px;padding:4px 10px;font-size:12px}.toast button:hover:not(:disabled){background:light-dark(#ffffff26,#1c252026)}.toast .toast-close{color:light-dark(#ffffffb3,#1c2520b3);background:0 0;border-color:#0000;width:32px;padding:0;font-size:18px;line-height:1}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.back-to-top{right:20px;bottom:calc(var(--tabbar-height,0px) + var(--dock-height,0px) + 20px + env(safe-area-inset-bottom,0px));z-index:55;border:1px solid var(--edge);background:var(--panel);width:44px;height:44px;color:var(--accent);border-radius:50%;place-items:center;padding:0;animation:toast-in .2s;display:grid;position:fixed;box-shadow:0 6px 18px #1f2a2226}.back-to-top svg{transform:rotate(-90deg)}@media (hover:hover){.back-to-top:hover{background:var(--soft)}}@media (max-width:900px){body:has(.catalog-page .is-practicing) .back-to-top{--dock-height:73px}}@media (max-width:600px){.back-to-top{right:14px}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}@media (max-width:900px){body:has(.catalog-page .is-practicing) .toast-stack{--dock-height:73px}}.practice-grid{grid-template-columns:minmax(0,1.5fr) minmax(270px,1fr);gap:20px;display:grid}.player-card{background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius);overflow:hidden;box-shadow:0 3px 10px #29362003}.player-top{justify-content:space-between;padding:23px 24px 0}.live-label,.player-top{align-items:center;display:flex}.live-label{letter-spacing:1.3px;color:light-dark(#8b9984,#5d6a56);gap:6px;font-size:11px}.live-label span{background:light-dark(#9aab84,#4e5d39);border-radius:50%;width:5px;height:5px}.sentence-counter{color:light-dark(#9ca694,#525b4b);font-variant-numeric:tabular-nums;font-size:12px}.sentence-stage{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:223px;padding:15px 30px 22px;display:flex}.quote-mark{font-family:var(--font-serif);color:light-dark(#d5dfca,#303727);height:34px;font-size:54px;line-height:36px}.sentence-stage h3{font-family:var(--font-serif);letter-spacing:-.6px;max-width:410px;font-size:30px;font-weight:400;line-height:1.3}.sentence-stage p{color:light-dark(#8c9883,#5f6a57);margin-top:14px;font-size:12px;line-height:1.7}.translation-toggle{color:light-dark(#87967b,#616f55);text-underline-offset:3px;background:0 0;border:0;margin-top:12px;padding:5px;font-size:11px;text-decoration:underline}.play-progress{color:light-dark(#a0a995,#515947);font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:space-between;gap:7px;margin:0 27px;font-size:11px;display:flex}.play-progress-track{background:light-dark(#edf0e8,#282a24);border-radius:3px;width:100%;height:3px;overflow:hidden}.play-progress-track i{background:light-dark(#7d9b6b,#577345);height:100%;display:block}.transport{justify-content:space-between;gap:12px;padding:20px 27px 24px}.play-button,.transport{align-items:center;display:flex}.play-button{background:var(--accent);color:light-dark(#fff,#1c2520);border:0;border-radius:10px;gap:10px;min-height:45px;padding:12px 20px;font-size:12px}.play-button:hover:not(:disabled){background:light-dark(#28563b,#9ecfaf)}.record-area{background:light-dark(#fafbf8,#202924);border-top:1px solid light-dark(#eef1e9,#272923);flex-wrap:wrap;gap:14px;padding:20px 24px}.record-area,.record-caption{align-items:center;display:flex}.record-caption{flex:1;gap:10px;min-width:130px}.record-caption strong{font-size:12px;font-weight:600;display:block}.record-caption small{color:light-dark(#9ba390,#565d4c);margin-top:4px;font-size:11px;line-height:1.6;display:block}.record-dot{background:light-dark(#cbb1a0,#584234);border-radius:50%;flex:none;width:7px;height:7px}.record-dot.active{background:light-dark(#bd5851,#c25d55);box-shadow:0 0 0 4px #f3ddd6}.record-button{background:var(--panel);border-color:light-dark(#dce4d4,#2e3427);align-items:center;gap:7px;min-height:42px;padding:10px 12px;font-size:12px;display:flex}.record-button.is-recording{color:light-dark(#a73c36,#e7766c);background:light-dark(#fcf0ec,#2d2421);border-color:light-dark(#dfbbb5,#533632)}.mic-meter{background:light-dark(#e2e9de,#2a3027);order:3;width:100%;height:4px}.shadow-note{color:light-dark(#8a7844,#93814d);background:light-dark(#fdfaf1,#24221b);border:1px solid light-dark(#e6ddc6,#3a3220);border-radius:9px;flex-basis:100%;order:6;padding:10px 12px;font-size:11px;line-height:1.8}.mic-meter i{background:light-dark(#78a16c,#4b723f);height:100%;display:block}.transcript-card{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);flex-direction:column;padding:23px 20px 20px;display:flex}.sentence-list{gap:9px;margin-top:21px;display:grid}.sentence-row{text-align:left;background:0 0;border-color:#0000;border-radius:9px;align-items:flex-start;gap:12px;padding:15px 12px;display:flex;position:relative}.sentence-row.selected{background:light-dark(#edf2e8,#262922);border-color:light-dark(#e0e8d7,#2b3124)}.row-number{color:light-dark(#a5ae9a,#4d5543);font-size:12px;line-height:20px}.selected .row-number{color:light-dark(#6b8559,#6f895d)}.row-copy{flex:1}.row-copy strong{font-size:12px;font-weight:400;line-height:1.6;display:block}.row-copy small{color:light-dark(#99a58c,#535e47);font-variant-numeric:tabular-nums;margin-top:9px;font-size:11px;display:block}.sentence-done{color:light-dark(#6c9157,#5e8249)}.transcript-tip{color:light-dark(#98a38b,#555f49);align-items:flex-start;gap:9px;margin-top:auto;padding:22px 9px 17px;font-size:11px;line-height:1.8;display:flex}.transcript-tip svg{flex:none;margin-top:2px}.next-button{border-color:light-dark(#e7ecdf,#2a2d23);justify-content:space-between;align-items:center;padding:11px 15px;font-size:12px;display:flex}.recordings-card{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);margin-top:22px;padding:22px 25px}.recordings-card .card-heading h3{margin-top:7px;font-size:14px}.take-count{border:1px solid light-dark(#e7ebdf,#2b2d24);border-radius:5px;padding:6px 9px}.empty-takes{align-items:center;gap:17px;padding:24px 0 5px;display:flex}.empty-icon{color:light-dark(#b6c0ac,#3f4736);border:1px dashed light-dark(#d8dfcf,#313629);border-radius:50%;place-items:center;width:48px;height:48px;display:grid}.empty-takes strong{color:light-dark(#7e8c72,#6b795f);font-size:12px;font-weight:400}.empty-takes p{color:light-dark(#a0a993,#515945);margin-top:7px;font-size:12px}.saved-takes{justify-content:space-between;gap:15px;margin-top:20px}.saved-takes,.take-select{align-items:center;display:flex}.take-select{gap:12px}.take-icon{color:light-dark(#71905d,#61804d);background:light-dark(#edf2e8,#262922);border-radius:10px;place-items:center;width:39px;height:39px;display:grid}.take-select label{color:light-dark(#96a08a,#58614d);flex-direction:column;gap:5px;font-size:11px;display:flex}.take-select select{width:100%}.saved-indicator{color:light-dark(#809a6d,#597247);align-items:center;gap:4px;font-size:11px;display:flex}.take-actions{gap:8px;display:flex}.take-actions button{align-items:center;gap:6px;padding:10px;font-size:12px;display:flex}.take-actions .compare-button{color:light-dark(#547b43,#759d64);background:light-dark(#edf3e8,#252921)}.guide{border-top:1px solid var(--edge);grid-template-columns:repeat(3,1fr);gap:24px;margin-top:32px;padding:28px 0 8px;display:grid}.guide>div{padding-left:32px;position:relative}.step-no{font-family:var(--font-serif);color:var(--faint);font-variant-numeric:tabular-nums;font-size:15px;position:absolute;top:1px;left:0}.guide h4{font-size:var(--fs-body);margin-bottom:4px;font-weight:600}.guide p{font-size:var(--fs-small);color:var(--muted);line-height:1.6}@media (min-width:1500px){:root{--sidebar:252px;--content-max:1240px;--gutter:48px;--fs-h1:34px}.content{padding-top:40px}.sentence-stage{min-height:270px}.sentence-stage h3{font-size:34px}}@media (max-width:1150px){:root{--sidebar:212px;--gutter:28px;--fs-h1:28px}.sidebar{padding:16px 10px}.brand{font-size:20px}.content{padding-top:28px}.practice-grid{grid-template-columns:minmax(0,1.3fr) minmax(240px,1fr);gap:15px}.transport{padding:18px}.play-button{padding:12px;font-size:12px}.sentence-stage{padding:15px 22px}.sentence-stage h3{font-size:26px}.saved-takes{flex-direction:column;align-items:flex-start}.record-area{padding:16px}.record-caption small{font-size:11px}}@media (max-width:900px){:root{--sidebar:0px;--gutter:24px;--topbar:56px;--fs-h1:27px}.sidebar{z-index:31;background:0 0;border:0;align-items:center;width:56px;height:56px;padding:10px;position:absolute;inset:0 auto auto 0;overflow:visible}.brand{gap:0;padding:0;font-size:0}.brand-dot,.nav-label,.sidebar nav,.sidebar-note{display:none}.brand-mark{border-radius:10px;width:36px;height:36px}main{width:100%;margin-left:0}.topbar{padding:0 20px 0 58px}.content{padding-top:24px;padding-bottom:40px}.practice-grid{grid-template-columns:1fr}.transcript-card{padding:21px}.sentence-list{grid-template-columns:repeat(3,1fr)}.sentence-row{gap:7px;padding:12px 8px}.transcript-tip{margin-top:0;padding-top:16px}.next-button{width:100%;max-width:190px;margin-left:auto}.sentence-stage h3{max-width:440px;font-size:32px}.saved-takes{flex-direction:row;align-items:center}.saved-indicator{display:none}.guide p{font-size:12px}footer{flex-wrap:wrap}}@media (max-width:600px){:root{--gutter:16px;--topbar:56px;--fs-h1:26px;--fs-label:12px;--control:44px;--control-sm:44px}main :is(.text-button,.icon-button,.site-footer-links a,.session-step-open,.review-week button,.topic-back,.back-link,.empty-action,.practice-steps button,.video-tabs button,.dictation-choice .filter-chip,.settings-index a,.profile-standing-links a,.profile-links a,.group-chip,.level-chip,.filter-chip,.tag-chip){min-height:44px}.topbar{padding:0 16px 0 58px}.content{padding-top:20px;padding-bottom:32px}.mobile-break{display:block}.page-heading{margin-bottom:20px}.page-heading p{font-size:var(--fs-small)}.session-heading{flex-direction:column;align-items:flex-start;gap:15px;margin-top:28px}.session-heading h2{font-size:19px}.lesson-meta{font-size:12px}.session-progress{align-items:center;gap:12px;width:100%;font-size:12px;display:flex}.progress-track{flex:1;margin:0}.player-top{padding:20px 20px 0}.sentence-stage{min-height:240px;padding:22px}.sentence-stage h3{font-size:30px}.sentence-stage p{font-size:13px}.translation-toggle{min-height:44px;font-size:12px}.play-button{min-height:48px;font-size:12px}.record-area{gap:14px;padding:18px}.record-caption small,.record-caption strong{font-size:12px}.record-button{justify-content:center;width:100%;min-height:46px;font-size:13px}.sentence-list{grid-template-columns:1fr;gap:6px}.sentence-row{gap:13px;padding:12px}.row-copy strong{font-size:14px}.row-copy small{margin-top:5px;font-size:12px}.next-button,.row-number,.transcript-tip{font-size:12px}.next-button{max-width:none;min-height:44px}.card-heading h3{font-size:14px}.recordings-card{padding:20px}.empty-takes{gap:12px}.empty-takes strong{font-size:12px}.empty-takes p{font-size:12px;line-height:1.6}.empty-icon{flex:none}.saved-takes{flex-direction:column;align-items:stretch}.take-actions{flex-wrap:wrap}.take-actions button{min-height:44px;font-size:12px}.guide{grid-template-columns:1fr;gap:20px;padding:25px 5px}.guide h4{font-size:13px}.guide p,footer{font-size:12px}footer{line-height:1.7}.filter-chip,.level-chip,.tag-chip{min-height:40px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.breadcrumb,.empty-takes p,.guide p,.lesson-meta,.page-heading p,.record-caption small,.row-copy small,.sentence-stage p,.transcript-tip,footer{color:var(--muted)}.primary-action.large{justify-content:center;width:100%;min-height:48px;font-size:15px}.primary-action.disabled{cursor:not-allowed;background:light-dark(#c3cdbb,#384031);border-color:light-dark(#c3cdbb,#384031)}.back-link{font-size:var(--fs-small);color:var(--muted);border-radius:6px;align-items:center;gap:6px;margin-bottom:16px;padding:6px 8px 6px 0;font-weight:500;display:inline-flex}.back-link:hover{color:var(--accent)}.library-toolbar{flex-wrap:wrap;gap:12px;margin:30px 0 22px}.library-toolbar,.search-field{align-items:center;display:flex}.search-field{border:1px solid var(--edge);background:var(--panel);color:var(--faint);min-height:var(--control);border-radius:8px;flex:1;gap:8px;min-width:220px;padding:0 12px;transition:border-color .15s,box-shadow .15s}.search-field input{font-size:var(--fs-body);color:var(--ink);background:0 0;border:0;width:100%;padding:8px 0}.search-field input::placeholder{color:var(--faint)}.search-field input:focus{outline:none}.search-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px light-dark(#dfeada,#2a3a30)}.filter-row{flex-wrap:wrap;gap:6px;display:flex}.filter-chip span{font-variant-numeric:tabular-nums;color:var(--faint);font-size:var(--fs-caption)}.filter-chip.selected{background:var(--soft);color:var(--accent);border-color:light-dark(#b9d1bf,#3f5a4b);font-weight:600}.filter-chip.selected span{color:var(--accent);opacity:.8}.lesson-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.lesson-card{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);gap:16px;padding:18px;transition:border-color .15s,background-color .15s;display:flex}.lesson-card:hover{border-color:var(--edge-strong);background:var(--surface-subtle)}.lesson-card-art{background:var(--soft);width:48px;height:48px;color:var(--accent);font-family:var(--font-serif);border-radius:10px;flex:none;place-items:center;font-size:17px;display:grid}.lesson-card-body{flex:1;min-width:0}.lesson-card-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.lesson-card-top h3{letter-spacing:-.3px;font-size:14px;font-weight:600}.lesson-card-body p{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:8px;font-size:12px;line-height:1.7;display:-webkit-box;overflow:hidden}.lesson-card-meta{color:light-dark(#8b9685,#616b5b);flex-wrap:wrap;align-items:center;gap:11px;margin-top:12px;font-size:11px;display:flex}.imported-pill{color:light-dark(#6f8064,#77886c);align-items:center;gap:5px;display:inline-flex}.lesson-card-progress{color:light-dark(#95a08d,#576150);margin-top:13px;font-size:11px}.lesson-card-progress .progress-track{margin-bottom:7px}.state-pill{white-space:nowrap;border-radius:5px;flex:none;padding:5px 8px;font-size:11px}.state-new{color:light-dark(#7f8a78,#6d7867);background:light-dark(#f0f1ec,#272824)}.state-inProgress{color:light-dark(#5c7f4d,#729663);background:light-dark(#eaf0e2,#272b21)}.state-completed{color:light-dark(#3f6a4a,#85b28f);background:light-dark(#e3ede3,#262e27)}.detail-grid{grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);margin-top:28px}.detail-grid,.detail-main{gap:20px;display:grid}.detail-facts{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);grid-template-columns:repeat(4,1fr);gap:12px;padding:20px;display:grid}.detail-facts span{color:light-dark(#95a08d,#576150);font-size:11px;display:block}.detail-facts b{font-variant-numeric:tabular-nums;margin-top:7px;font-size:17px;font-weight:600;display:block}.detail-block{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);padding:22px 24px}.detail-block h2{margin-bottom:15px;font-size:13px;font-weight:600}.target-list{gap:11px;margin:0;padding:0;list-style:none;display:grid}.target-list li{color:var(--muted);align-items:flex-start;gap:9px;font-size:12px;line-height:1.7;display:flex}.target-list svg{color:light-dark(#7c9c68,#557341);flex:none;margin-top:3px}.preview-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.preview-list li{border-radius:9px;align-items:flex-start;gap:12px;padding:12px 10px;display:flex}.preview-list li:nth-child(odd){background:light-dark(#fafbf8,#202924)}.detail-side{align-content:start;gap:12px;display:grid}.side-block{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);padding:18px 20px}.side-block h3{margin-bottom:9px;font-size:12px;font-weight:600}.side-block p{color:var(--muted);font-size:12px;line-height:1.7}.rights-note{color:light-dark(#9aa48f,#545d4a);margin-top:7px;font-size:11px}.side-block.danger{border-color:light-dark(#e8dcd6,#39302c)}.side-block.danger button{color:light-dark(#9b4d40,#d37f70);border-color:light-dark(#e6cfc7,#44322c);align-items:center;gap:7px;min-height:42px;margin-top:12px;padding:10px 13px;font-size:12px;display:inline-flex}.side-block.danger button:hover:not(:disabled){background:light-dark(#fbf2ee,#2a2421)}.confirm-row{gap:8px}.confirm-row,.tag-row{flex-wrap:wrap;display:flex}.tag-row{gap:7px}.tag-pill{color:light-dark(#71806a,#778670);background:light-dark(#eef1ea,#272924);border-radius:5px;padding:6px 9px;font-size:11px}.relink-panel{border-radius:var(--radius);background:light-dark(#fdfaf1,#24221b);border:1px solid light-dark(#e0d8c4,#3b3525);flex-wrap:wrap;align-items:center;gap:15px;margin-bottom:20px;padding:20px;display:flex}.relink-icon{color:light-dark(#8a7844,#93814d);background:light-dark(#f2ecdb,#2f2a1d);border-radius:12px;flex:none;place-items:center;width:44px;height:44px;display:grid}.relink-panel div{flex:1;min-width:200px}.relink-panel strong{font-size:12px;font-weight:600;display:block}.relink-panel p{color:light-dark(#857e6a,#837c68);margin-top:6px;font-size:12px;line-height:1.7}.relink-error{color:light-dark(#994a38,#d8836e)}.relink-panel button{min-height:44px;padding:11px 15px;font-size:12px}.step-rail{flex-wrap:wrap;gap:10px;margin:28px 0 18px;padding:0;list-style:none;display:flex}.step-rail li{border:1px solid var(--edge);color:var(--muted);background:var(--panel);border-radius:10px;align-items:center;gap:9px;padding:10px 14px;font-size:12px;display:flex}.step-rail li.current{color:light-dark(#3f6a4a,#85b28f);border-color:light-dark(#c6d5b7,#343e2a);font-weight:600}.step-rail li.done{color:light-dark(#6f8b60,#678358)}.step-number{font-variant-numeric:tabular-nums;background:light-dark(#eef2e9,#262922);border-radius:50%;place-items:center;width:22px;height:22px;font-size:11px;display:grid}.step-rail li.current .step-number{background:var(--accent);color:light-dark(#fff,#1c2520)}.import-card{border:1px solid var(--edge);background:var(--panel);gap:20px;padding:26px}.file-drop,.import-card{border-radius:var(--radius);display:grid}.file-drop{text-align:center;background:light-dark(#fbfcf9,#21221f);border:1px dashed light-dark(#d3dcc7,#323928);justify-items:center;gap:8px;width:100%;padding:38px 22px}.file-drop.is-over{background:light-dark(#f2f6ec,#24271f);border-color:light-dark(#9fb78e,#415631)}.file-drop strong{font-size:13px;font-weight:600}.file-drop small{color:var(--muted);font-size:11px}.file-drop-icon{color:light-dark(#6f8b60,#678358);background:light-dark(#eef2e9,#262922);border-radius:50%;place-items:center;width:46px;height:46px;display:grid}.import-note{color:var(--muted);font-size:11px;line-height:1.8}.media-summary{border:1px solid var(--edge);background:light-dark(#fafbf8,#202924);border-radius:12px;align-items:center;gap:13px;padding:15px 17px;display:flex}.media-icon{color:light-dark(#71905d,#61804d);background:light-dark(#edf2e8,#262922);border-radius:11px;flex:none;place-items:center;width:40px;height:40px;display:grid}.media-summary div{flex:1;min-width:0}.media-summary strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;display:block;overflow:hidden}.media-summary small{color:var(--muted);margin-top:5px;font-size:11px;display:block}.transcript-options{grid-template-columns:1fr 1fr;align-items:start;gap:16px;display:grid}.paste-panel{gap:9px;display:grid}.paste-panel label{color:light-dark(#7d8a74,#6d7a64);font-size:12px}.paste-panel textarea{border:1px solid var(--edge);resize:vertical;color:var(--ink);background:var(--panel);border-radius:10px;padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.7}.paste-panel button{min-height:44px;padding:11px;font-size:12px}.even-panel{border:1px solid var(--edge);background:light-dark(#fafbf8,#202924);border-radius:12px;flex-wrap:wrap;align-items:flex-end;gap:15px;padding:18px;display:flex}.even-panel>div{flex:1;min-width:200px}.even-panel strong{font-size:12px;font-weight:600;display:block}.even-panel p{color:var(--muted);margin-top:6px;font-size:12px;line-height:1.7}.even-panel label{color:var(--muted);gap:6px;font-size:11px;display:grid}.even-panel input{border:1px solid var(--edge);background:var(--panel);width:88px;color:var(--ink);font-variant-numeric:tabular-nums;border-radius:9px;padding:11px}.even-panel button{min-height:44px;padding:11px 15px;font-size:12px}.step-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.review-fields{grid-template-columns:1fr 1fr;gap:16px;display:grid}.review-fields label{color:light-dark(#7d8a74,#6d7a64);gap:7px;font-size:12px;display:grid}.review-fields input{border:1px solid var(--edge);background:var(--panel);color:var(--ink);border-radius:10px;min-height:44px;padding:12px;font-size:12px}.review-summary{color:var(--muted);flex-wrap:wrap;gap:14px;font-size:11px;display:flex}.issue-list{background:light-dark(#fdfaf1,#24221b);border:1px solid light-dark(#e6ddc6,#3a3220);border-radius:12px;padding:15px 17px}.issue-heading{color:light-dark(#8a7844,#93814d);align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.issue-list ul{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.issue{color:light-dark(#7d7561,#8f8772);flex-wrap:wrap;align-items:baseline;gap:9px;font-size:11px;line-height:1.7;display:flex}.issue-line{font-variant-numeric:tabular-nums;color:light-dark(#9a9280,#6d6655)}.issue-badge{letter-spacing:.6px;color:light-dark(#87795a,#8e8060);background:light-dark(#f0eadb,#2f2b1f);border-radius:4px;padding:3px 7px;font-size:10px}.issue-rejected .issue-badge{color:light-dark(#95513f,#ce8471);background:light-dark(#f6e2dc,#382925)}.editor-toolbar{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:15px;margin-bottom:16px;padding:16px 20px;display:flex}.editor-counts{color:var(--muted);font-size:12px}.editor-counts b{color:var(--ink);font-weight:600}.playhead-readout{color:light-dark(#7d8a74,#6d7a64);font-variant-numeric:tabular-nums;align-items:center;gap:9px;font-size:12px;display:flex}.editor-history{gap:8px;display:flex}.editor-history button{align-items:center;gap:7px;min-height:42px;padding:10px 13px;font-size:12px;display:inline-flex}.edit-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.edit-row{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);gap:14px;padding:18px 20px;display:grid}.edit-row.selected{background:light-dark(#fcfdfa,#1e2722);border-color:light-dark(#c6d5b7,#343e2a)}.edit-row-head{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.row-number-button{color:light-dark(#a5ae9a,#4d5543);font-variant-numeric:tabular-nums;background:0 0;border:0;padding:8px 4px;font-size:12px}.selected .row-number-button{color:light-dark(#6b8559,#6f895d);font-weight:600}.icon-button{flex:none;place-items:center;width:36px;height:36px;padding:0;display:grid}.edit-bounds{flex-wrap:wrap;flex:1;gap:22px;display:flex}.bound-control{gap:6px;display:grid}.bound-label{color:var(--muted);font-size:11px}.bound-value{font-variant-numeric:tabular-nums;color:light-dark(#5b6b4e,#91a384);font-size:12px;font-weight:600}.bound-buttons{flex-wrap:wrap;gap:5px;display:flex}.bound-buttons button{font-variant-numeric:tabular-nums;border-radius:7px;min-height:34px;padding:7px 9px;font-size:11px}.playhead-button{color:light-dark(#5f7f52,#739466)}.edit-field{color:var(--muted);gap:7px;font-size:11px;display:grid}.edit-field input,.edit-field textarea{border:1px solid var(--edge);color:var(--ink);background:var(--panel);resize:vertical;border-radius:10px;padding:11px 12px;font-family:inherit;font-size:13px;line-height:1.7}.edit-field input:focus,.edit-field textarea:focus{border-color:light-dark(#b9c8ac,#39452d)}.edit-row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.edit-row-actions button{align-items:center;gap:7px;min-height:40px;padding:9px 12px;font-size:12px;display:inline-flex}.dirty-note{color:light-dark(#9a8a55,#7e6e3a);margin-right:auto;font-size:11px}.stale-note{color:light-dark(#8a7844,#93814d);background:light-dark(#fdfaf1,#24221b);border:1px solid light-dark(#e6ddc6,#3a3220);border-radius:9px;margin-top:12px;padding:10px 12px;font-size:11px;line-height:1.7}.today-grid{grid-template-columns:minmax(0,1.55fr) minmax(250px,1fr);gap:16px;margin-top:0;display:grid}.today-grid.today-first{grid-template-columns:1fr}.guided-intro .section-kicker,.today-first .resume-card .section-kicker{color:var(--muted)}.today-alternatives{margin:12px 0 0}.today-alternatives summary{cursor:pointer;min-height:40px;color:var(--accent);font-size:var(--fs-small);align-items:center;font-weight:500;display:flex}.today-choices{gap:8px;max-width:760px;margin-top:8px;display:grid}.today-choices a{white-space:normal;justify-content:space-between;gap:16px}.today-next-review{color:var(--muted);gap:8px;margin-top:24px;display:grid}.today-next-review a{min-height:44px;color:var(--accent);align-items:center;display:inline-flex}.guided-intro{gap:8px;margin-bottom:20px;display:grid}.guided-intro p{color:var(--muted);font-size:14px}.guided-intro button{justify-self:start;min-height:44px}.practice-guided .practice-grid{grid-template-columns:1fr}.practice-guided .page-heading h1{font-size:26px}.practice-guided .page-heading p{color:var(--muted);font-size:14px}.practice-guided .guided-intro{margin-top:16px;margin-bottom:12px}.practice-guided .mic-hint:not(.mic-signal-hint),.practice-guided .mic-select,.practice-guided .page-heading .eyebrow,.practice-guided .quote-mark,.practice-guided .stage-actions{display:none}.practice-guided .sentence-stage{min-height:0;padding:20px 24px 16px}.practice-guided .run-idle,.practice-guided .sentence-counter,.practice-guided .sentence-stage p{color:var(--muted)}.practice-guided .transport{padding:12px 24px 16px}.practice-guided .record-area{padding:16px 24px}.practice-guided .record-caption small{color:var(--muted)}.practice-guided .recordings-card{margin-top:16px}.practice-guided .back-link,.practice-guided .loop-controls,.practice-guided .mark-button,.practice-guided .phrase-row,.practice-guided .rating-row,.practice-guided .reading-check,.practice-guided .session-heading,.practice-guided .transcript-card,.practice-guided .waveform-card{display:none}.guided-navigation,.session-next-links{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:16px 0;display:flex}.guided-navigation button,.session-next-links a,.session-review-choice>button{min-height:44px}.guided-navigation span{color:var(--muted);font-size:14px}.session-review-choice{border-top:1px solid var(--edge);gap:14px;margin-top:20px;padding-top:20px;display:grid}.session-review-choice>p{color:var(--muted);font-size:14px}.session-review-choice .select-control{max-width:100%}.resume-card{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius-lg);align-content:start;gap:12px;padding:22px 24px;display:grid}.resume-card h2{font-family:var(--font-serif);letter-spacing:-.3px;font-size:22px;font-weight:400;line-height:1.3}.resume-card p{font-size:var(--fs-small);color:var(--muted);line-height:var(--lh-body)}.resume-action{justify-self:start;min-width:180px}.resume-sentence{font-family:var(--font-serif);color:var(--muted);font-size:15px;line-height:1.7}.week-card{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius-lg);align-content:start;gap:16px;padding:22px 24px;display:grid}.week-stats{grid-template-columns:1fr 1fr;gap:16px;display:grid}.week-stats b{font-family:var(--font-serif);color:var(--ink);font-variant-numeric:tabular-nums;font-size:24px;font-weight:400;line-height:1.2;display:block}.week-stats span{font-size:var(--fs-caption);color:var(--muted);margin-top:4px;line-height:1.5;display:block}.week-note{font-size:var(--fs-caption);color:var(--faint);line-height:1.6}.next-up{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin-top:16px;padding:22px 24px;display:flex}.next-up h3{margin:9px 0 8px;font-size:15px;font-weight:600}.next-up p{color:var(--muted);max-width:560px;font-size:12px;line-height:1.7}@media (max-width:1150px){.detail-grid,.today-grid{grid-template-columns:1fr}.detail-facts{grid-template-columns:repeat(2,1fr)}.review-fields,.transcript-options{grid-template-columns:1fr}}@media (max-width:900px){.lesson-grid{grid-template-columns:1fr}.import-card{padding:20px}.edit-bounds{gap:14px}}@media (max-width:600px){.library-toolbar{gap:9px}.lesson-card{flex-direction:column;gap:13px}.lesson-card-art{width:46px;height:46px;font-size:16px}.detail-facts{grid-template-columns:1fr 1fr;padding:16px}.detail-block{padding:18px}.editor-toolbar{gap:11px;padding:14px}.edit-row{padding:15px}.bound-buttons button{min-height:38px}.resume-card h2,.week-stats b{font-size:22px}.step-rail li{padding:9px 11px;font-size:12px}.empty-action{margin-left:0}}.run-status{color:var(--muted);align-items:center;gap:8px;min-height:20px;margin:0 27px 12px;font-size:12px;display:flex}.run-status b{color:var(--ink)}.run-gap{color:light-dark(#5f7f52,#739466);font-weight:600}.run-stalled{color:light-dark(#96793f,#96793f)}.run-idle{color:light-dark(#a0a993,#515945)}.mark-button{color:light-dark(#6b7a63,#7f8e76);letter-spacing:.4px;min-height:40px;padding:9px 12px;font-size:11px}.follow-button{color:light-dark(#4d7040,#83a976);background:light-dark(#edf2e8,#262922);border-color:light-dark(#dbe4d1,#2d3425);justify-content:center;align-items:center;gap:7px;min-height:42px;margin-top:10px;padding:10px;font-size:12px;display:flex}.sentence-row.sounding{box-shadow:inset 3px 0 #7d9b6b}.sentence-list{scroll-behavior:smooth}.loop-controls{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);gap:18px;margin-top:22px;padding:20px 24px;display:grid}.mode-row{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.mode-chip{text-align:left;border-radius:12px;align-content:center;gap:5px;min-height:64px;padding:14px 15px;display:grid}.mode-chip strong{font-size:12px;font-weight:600}.mode-chip small{color:var(--muted);font-size:11px;line-height:1.5}.mode-chip.selected{background:light-dark(#e6ecdd,#2a2e22);border-color:light-dark(#c6d5b7,#343e2a)}.mode-chip.selected strong{color:light-dark(#3f6a4a,#85b28f)}.mode-chip.selected small{color:light-dark(#6b8559,#6f895d)}.setting-row{flex-wrap:wrap;align-items:end;gap:18px;display:flex}.setting{color:var(--muted);gap:6px;font-size:11px;display:grid}.setting .select,.setting select{min-width:96px}.question-page{padding-bottom:48px}.question-layout{grid-template-columns:minmax(290px,360px) minmax(0,1fr);align-items:start;gap:22px;margin-top:34px;display:grid}.question-form,.question-results{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel)}.question-form{align-content:start;gap:17px;padding:24px;display:grid;position:sticky;top:22px}.question-form .card-heading{align-items:flex-start;padding-bottom:3px}.question-form .card-heading h2{letter-spacing:-.5px;margin-top:9px;font-size:20px;font-weight:600}.question-form .card-heading>span{letter-spacing:.4px;color:light-dark(#6c8a5a,#688656);white-space:nowrap;background:light-dark(#edf3e8,#252921);border-radius:5px;padding:6px 8px;font-size:10px}.question-form label{color:light-dark(#7d8a74,#6d7a64);gap:7px;font-size:12px;display:grid}.question-form input,.question-form textarea{border:1px solid var(--edge);background:var(--panel);width:100%;color:var(--ink);border-radius:9px;min-height:43px;padding:11px 12px;font-size:13px}.question-form .select,.question-form select{width:100%}.question-form textarea{resize:vertical;line-height:1.6}.question-form input:focus,.question-form textarea:focus{border-color:light-dark(#b9c8ac,#39452d)}.question-form-grid{grid-template-columns:1fr 1fr 82px;gap:10px;display:grid}.question-rights-note{color:light-dark(#857e6a,#837c68);background:light-dark(#fdfaf1,#24221b);border:1px solid light-dark(#e6ddc6,#3a3220);border-radius:10px;padding:13px 14px;font-size:11px;line-height:1.7}.question-rights-note strong{color:light-dark(#8a7844,#93814d);margin-bottom:4px;font-size:12px;font-weight:600;display:block}.question-submit{background:var(--accent);color:light-dark(#fff,#1c2520);border:0;border-radius:10px;min-height:45px;padding:12px 16px;font-size:12px;font-weight:600}.question-submit:hover:not(:disabled){background:light-dark(#28563b,#9ecfaf)}.question-results{min-height:520px;padding:24px}.question-empty{text-align:center;min-height:468px;color:var(--muted);place-content:center;justify-items:center;gap:12px;padding:30px;display:grid}.question-empty h2{font-family:var(--font-serif);color:light-dark(#687662,#83927d);font-size:22px;font-weight:400}.question-empty p{max-width:320px;font-size:12px;line-height:1.7}.question-empty-icon{color:light-dark(#71905d,#61804d);background:light-dark(#edf2e8,#262922);border-radius:50%;place-items:center;width:52px;height:52px;font-size:22px;display:grid}.question-spinner{border:3px solid light-dark(#e4ebdf,#292e25);border-top-color:light-dark(#71905d,#61804d);border-radius:50%;width:28px;height:28px;animation:question-spin .8s linear infinite}@keyframes question-spin{to{transform:rotate(1turn)}}.question-result-head{border-bottom:1px solid light-dark(#eef1e9,#272923);justify-content:space-between;align-items:flex-start;gap:15px;padding-bottom:18px;display:flex}.question-result-head h2{font-family:var(--font-serif);letter-spacing:-.5px;margin:8px 0 7px;font-size:26px;font-weight:400;line-height:1.35}.question-result-head p{color:var(--muted);font-size:12px}.question-count{font-size:var(--fs-caption);color:var(--muted);background:var(--surface-subtle);white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:6px;padding:6px 10px}.question-provenance{color:var(--muted);border-bottom:1px solid light-dark(#eef1e9,#272923);flex-wrap:wrap;gap:14px;padding:14px 0;font-size:11px;display:flex}.question-provenance b{color:var(--muted);font-weight:600}.question-list{gap:12px;margin-top:18px;display:grid}.question-card{border:1px solid var(--edge);background:light-dark(#fcfdfa,#1e2722);border-radius:12px;padding:17px 18px}.question-card-top{align-items:center;gap:10px;margin-bottom:11px;display:flex}.question-number{color:light-dark(#6f8b60,#678358);font-variant-numeric:tabular-nums;font-size:11px}.question-type{letter-spacing:.5px;color:light-dark(#9aa48f,#545d4a);text-transform:uppercase;font-size:10px}.question-card h3{font-family:var(--font-serif);color:light-dark(#354a3b,#bbd4c1);font-size:17px;font-weight:400;line-height:1.5}.question-choices{counter-reset:choice;gap:7px;margin:14px 0 0;padding:0;list-style:none;display:grid}.question-choices li{counter-increment:choice;color:light-dark(#697861,#819179);align-items:flex-start;gap:9px;font-size:12px;line-height:1.6;display:flex}.question-choices li:before{content:counter(choice,upper-alpha);color:light-dark(#78916b,#627a55);border:1px solid light-dark(#dce5d5,#2c3327);border-radius:50%;flex:none;place-items:center;width:19px;height:19px;font-size:10px;display:grid}.question-card details{border-top:1px solid light-dark(#edf1e9,#272924);margin-top:14px;padding-top:11px}.question-card summary{color:light-dark(#78916b,#627a55);cursor:pointer;font-size:11px}.question-answer{color:light-dark(#64745e,#85967f);background:light-dark(#f1f5ed,#242721);border-radius:8px;margin-top:9px;padding:11px 12px;font-size:12px;line-height:1.7}.question-answer strong{color:light-dark(#486b4c,#88ad8b);font-weight:600}.question-answer p{margin-top:5px}@media (max-width:900px){.question-layout{grid-template-columns:1fr}.question-form{position:static}.question-results{min-height:380px}.question-empty{min-height:320px}}@media (max-width:600px){.question-form,.question-results{padding:18px}.question-form-grid{grid-template-columns:1fr 1fr}.question-form-grid label:last-child{grid-column:1/-1}.question-result-head{display:grid}.question-result-head h2{font-size:23px}}.catalog-stats{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.catalog-stats span{border:1px solid var(--edge);background:var(--panel);color:var(--muted);border-radius:9px;padding:10px 13px;font-size:11px}.catalog-stats b{color:light-dark(#527550,#7ca17a);font-weight:600}.catalog-layout{grid-template-columns:minmax(245px,310px) minmax(0,1fr);align-items:stretch;gap:18px;margin-top:18px;display:grid}.lesson-catalog{flex-direction:column;min-height:0;display:flex}.lesson-catalog-tools{gap:10px;padding-bottom:12px;display:grid}.lesson-catalog-tools .search-field{margin:0}.lesson-catalog-tools .study-level{color:var(--muted);gap:6px;font-size:11px;display:grid}.lesson-catalog-tools .study-level .select,.lesson-catalog-tools .study-level select{width:100%}.lesson-catalog-sticky{flex-direction:column;min-height:0;max-height:calc(100vh - 32px);display:flex;position:sticky;top:16px}.lesson-save-bar{border-top:1px solid var(--edge);gap:14px;margin-top:16px;padding-top:16px;display:grid}.keep-lesson-compact{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.keep-lesson-compact button{align-items:center;gap:7px;min-height:44px;padding:0 14px;font-size:13px;display:inline-flex}.keep-lesson-compact.is-kept button{color:light-dark(#345f42,#93c1a0);background:light-dark(#edf3e8,#252921);border-color:light-dark(#d3e0cb,#2e3827)}.keep-lesson-compact span{color:var(--muted);font-size:12px;line-height:1.6}.keep-lesson-compact .keep-lesson-error{color:var(--danger);flex-basis:100%;margin:0;font-size:12px}.speak-recorder-title{align-items:center;gap:8px;display:inline-flex}.speak-recorder-title .new-badge{margin-left:0}.kept-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.kept-list li{border:1px solid var(--edge);background:var(--panel);border-radius:12px;align-items:center;gap:12px;padding:12px 16px;display:flex}.kept-list li a{flex:1;gap:3px;min-width:0;display:grid}.kept-list li a strong{font-size:14px;font-weight:600}.kept-list li a small{color:var(--muted);font-size:12px}.kept-list li button{align-items:center;gap:6px;min-height:40px;padding:0 12px;font-size:12px;display:inline-flex}.lesson-catalog,.lesson-detail{background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius)}.lesson-catalog{padding:20px}.lesson-list{gap:5px;margin-top:18px;display:grid}.lesson-catalog-item{text-align:left;background:0 0;border-color:#0000;border-radius:8px;gap:10px;width:100%;padding:11px 9px;display:flex}.lesson-catalog-item>span{color:light-dark(#a5ae9a,#4d5543);font-variant-numeric:tabular-nums;font-size:11px;line-height:1.7}.lesson-catalog-item div{gap:4px;min-width:0;display:grid}.lesson-catalog-item strong{color:var(--muted);font-size:11px;font-weight:600}.lesson-catalog-item small,.lesson-catalog-item strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lesson-catalog-item small{color:light-dark(#a0a993,#515945);font-size:10px}.lesson-catalog-item:hover:not(:disabled){background:light-dark(#f5f7f2,#242521)}.lesson-catalog-item.selected{background:light-dark(#edf2e8,#262922)}.lesson-catalog-item.selected>span{color:light-dark(#6b8559,#6f895d)}.lesson-catalog-item.selected strong{color:light-dark(#3f6a4a,#85b28f)}.lesson-detail{min-height:650px;padding:25px}.lesson-detail-head{border-bottom:1px solid light-dark(#eef1e9,#272923);justify-content:space-between;align-items:flex-start;gap:15px;padding-bottom:18px;display:flex}.lesson-detail-head h2{font-family:var(--font-serif);margin-top:8px;font-size:27px;font-weight:400;line-height:1.3}.prompt-block{padding:24px 0 20px}.prompt-label{letter-spacing:1.4px;color:light-dark(#91a087,#56644d);margin-bottom:10px;font-size:10px;font-weight:600}.prompt-block h3{font-family:var(--font-serif);color:light-dark(#354a3b,#bbd4c1);font-size:24px;font-weight:400;line-height:1.45}.prompt-block p{color:var(--muted);margin-top:7px;font-size:12px}.answer-block{background:light-dark(#f7faf5,#212420);border:1px solid light-dark(#dfe8d8,#2b3125);border-radius:12px;padding:19px 20px}.answer-en{color:light-dark(#405843,#a6c1a9);font-size:16px;line-height:1.75}.answer-vi{color:var(--muted);margin-top:8px;font-size:12px;line-height:1.7}.shadowing-grid{grid-template-columns:1fr 1fr;gap:13px;margin-top:14px;display:grid}.shadowing-card{border:1px solid var(--edge);background:light-dark(#fcfdfa,#1e2722);border-radius:12px;padding:18px}.shadowing-card ol{color:light-dark(#65745f,#86957f);gap:8px;margin:0;padding-left:20px;font-size:12px;line-height:1.6;display:grid}.shadowing-card strong{font-family:var(--font-serif);color:light-dark(#486b4c,#88ad8b);font-size:18px;font-weight:400}.shadowing-card p{color:var(--muted);margin-top:6px;font-size:11px;line-height:1.7}.focus-label{margin-top:18px}.follow-up-block,.tts-block{border-top:1px solid light-dark(#eef1e9,#272923);margin-top:17px;padding-top:14px}.follow-up-block summary,.tts-block summary{color:light-dark(#78916b,#627a55);cursor:pointer;font-size:11px}.follow-up-block ol{color:var(--muted);gap:8px;margin:12px 0 0;padding-left:20px;font-size:12px;line-height:1.6;display:grid}.tts-block pre{color:light-dark(#71806a,#778670);white-space:pre-wrap;background:light-dark(#f8faf7,#222321);border-radius:8px;margin-top:10px;padding:12px;font:11px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace}.language-toggle,.theme-toggle{width:var(--control-sm);height:var(--control-sm);color:var(--muted);background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex}.language-toggle{width:auto;min-width:var(--control-sm);font-size:var(--fs-label);letter-spacing:.06em;padding:0 8px;font-weight:700}.language-toggle:hover,.theme-toggle:hover{color:var(--ink);background:var(--surface-subtle);border-color:var(--edge)}.language-mark{letter-spacing:.5px;width:19px;height:19px;color:var(--muted);place-items:center;font-size:9px;font-weight:700;display:inline-grid}.auth-link{min-height:var(--control-sm);border:1px solid var(--edge-strong);font-size:var(--fs-small);color:var(--ink);background:var(--panel);border-radius:8px;align-items:center;padding:0 12px;font-weight:500;display:inline-flex}.auth-link:hover{background:var(--surface-subtle)}.auth-page{place-items:start center;padding-top:80px;display:grid}.auth-card{background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius-lg);width:min(100%,400px);box-shadow:none;padding:36px 32px 28px}.auth-card h1{font-family:var(--font-serif);letter-spacing:-.02em;margin-top:8px;font-size:28px;font-weight:400}.auth-intro{font-size:var(--fs-body);color:var(--muted);line-height:var(--lh-body);margin-top:8px}.auth-form{gap:16px;margin-top:24px;display:grid}.auth-form label{font-size:var(--fs-small);color:var(--ink);gap:6px;font-weight:600;display:grid}.auth-form input{border:1px solid var(--edge-strong);background:var(--panel);width:100%;color:var(--ink);font-size:var(--fs-body);min-height:var(--control-touch);border-radius:8px;padding:0 12px;transition:border-color .15s,box-shadow .15s}.auth-form input:focus{border-color:var(--accent);outline:0;box-shadow:0 0 0 3px light-dark(#dfeada,#2a3a30)}.auth-switch{font-size:var(--fs-small);text-align:center;color:var(--muted);margin-top:20px}.auth-switch a{color:var(--accent);text-underline-offset:3px;font-weight:500;text-decoration:underline}@media (max-width:900px){.catalog-layout{grid-template-columns:1fr}.lesson-catalog{padding:17px}.lesson-catalog-sticky{max-height:none;position:static}.lesson-list{grid-template-columns:1fr 1fr}.lesson-detail{min-height:500px}}@media (max-width:600px){.catalog-stats{grid-template-columns:1fr 1fr;display:grid}.lesson-list{grid-template-columns:1fr}.lesson-detail{padding:18px}.lesson-detail-head h2{font-size:23px}.prompt-block h3{font-size:21px}.shadowing-grid{grid-template-columns:1fr}}.hidden-sentence{justify-items:center;gap:10px;padding:14px 0;display:grid}.hidden-sentence p{text-align:center;max-width:34ch;color:var(--muted);font-size:13px;line-height:1.7}.reveal-button{border:1px solid var(--edge);background:var(--panel);color:light-dark(#3f6a4a,#85b28f);border-radius:12px;min-height:44px;padding:11px 18px;font-size:13px;font-weight:600}.reveal-button:hover{background:var(--soft)}.row-hidden{letter-spacing:3px;color:light-dark(#b3bdaa,#414939)}.phrase-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:12px;display:flex}.phrase-chip{border:1px solid var(--edge);background:var(--panel);color:light-dark(#5b6b52,#91a287);font-variant-numeric:tabular-nums;border-radius:999px;min-height:40px;padding:9px 14px;font-size:12px}.phrase-chip.selected{color:light-dark(#fff,#1c2520);background:light-dark(#35674c,#84b89a);border-color:light-dark(#35674c,#84b89a)}.phrase-chip:disabled{opacity:.45}.phrase-note{text-align:center;width:100%;color:var(--muted);font-size:11px;line-height:1.6}.ab-banner{color:light-dark(#4d7040,#83a976);background:light-dark(#f2f6ec,#24271f);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;padding:11px 14px;font-size:12px;display:flex}.ab-banner b{font-variant-numeric:tabular-nums}.ab-banner .text-button{color:light-dark(#6b7a63,#7f8e76);margin-left:auto}.shortcut-dialog{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);width:calc(100vw - 34px);max-width:420px;color:var(--ink);padding:26px 28px}.shortcut-dialog::backdrop{background:#25372e4d}.shortcut-dialog h2{font-family:var(--font-serif);letter-spacing:-.5px;margin-bottom:18px;font-size:22px;font-weight:400}.shortcut-dialog dl{gap:11px;margin:0;display:grid}.shortcut-dialog dl>div{align-items:baseline;gap:14px;display:flex}.shortcut-dialog dt{flex:none;min-width:96px}.shortcut-dialog dd{color:var(--muted);margin:0;font-size:12px}.shortcut-dialog kbd{background:light-dark(#fafbf8,#202924);border:solid var(--edge);border-width:1px 1px 2px;border-radius:6px;padding:5px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.dialog-note{color:var(--muted);margin:18px 0 16px;font-size:11px;line-height:1.8}.shortcut-dialog>button{width:100%;min-height:44px;padding:11px;font-size:12px}.lookup-button{z-index:60;background:var(--ink);color:light-dark(#fff,#1c2520);letter-spacing:.2px;white-space:nowrap;-webkit-user-select:none;user-select:none;border:0;border-radius:999px;align-items:center;gap:6px;min-height:36px;padding:0 14px;font-size:12px;font-weight:600;display:inline-flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 18px #25372e40}.lookup-button:hover{background:light-dark(#0f2418,#d9f4e3)}.lookup-dialog{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);width:calc(100vw - 32px);max-width:460px;max-height:calc(100vh - 48px);color:var(--ink);padding:0}.lookup-dialog::backdrop{background:#25372e4d}.lookup-dialog-body{overscroll-behavior:contain;box-sizing:border-box;max-height:calc(100dvh - 48px);padding:24px 28px 22px;overflow:auto}.lookup-dialog h2{font-family:var(--font-serif);letter-spacing:-.5px;overflow-wrap:anywhere;margin-top:10px;font-size:26px;font-weight:400;line-height:1.3}.lookup-sound{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;font-size:14px;display:flex}.lookup-sound button{min-height:30px;padding:3px 12px;font-size:12px}.lookup-sound small{font-size:11px}.lookup-section{margin-top:20px}.lookup-section h3{letter-spacing:1.6px;color:light-dark(#919b88,#5d6654);text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:600}.lookup-translation{font-size:16px;line-height:1.6}.lookup-pending{color:var(--muted);font-size:13px;line-height:1.7}.lookup-link{color:var(--accent);text-underline-offset:3px;margin-top:8px;font-size:13px;text-decoration:underline;display:inline-block}.lookup-retry{min-height:32px;margin-top:8px;padding:4px 12px;font-size:12px}.lookup-senses{gap:10px;margin:0;display:grid}.lookup-senses>div{grid-template-columns:auto 1fr;align-items:baseline;gap:10px;display:grid}.lookup-senses dt{color:light-dark(#87967b,#616f55);white-space:nowrap;font-size:11px;font-style:italic}.lookup-senses dd{margin:0;font-size:14px;line-height:1.55}.lookup-senses em{color:var(--muted);margin-top:3px;font-size:13px;display:block}.lookup-close{width:100%;min-height:44px;margin-top:10px;padding:11px;font-size:13px;display:block}.lookup-save{box-sizing:border-box;background:var(--accent);border:1px solid var(--accent);color:light-dark(#fff,#1c2520);text-align:center;border-radius:10px;width:100%;min-height:46px;margin-top:2px;padding:11px 16px;font-size:14px;font-weight:600;line-height:1.3;display:block}.lookup-save:hover{background:light-dark(#28563b,#9ecfaf);border-color:light-dark(#28563b,#9ecfaf)}.lookup-save:disabled{opacity:.65;cursor:default}.lookup-save-error{color:light-dark(#a33b32,#e97a6d);margin:8px 0 0;font-size:12px;line-height:1.5}@media (max-width:600px){.lookup-dialog-body{padding:20px 18px 18px}.lookup-dialog h2{font-size:22px}}@media (max-width:900px){.mode-row{grid-template-columns:1fr}.loop-controls{padding:18px}}@media (max-width:600px){.run-status{margin:0 20px 10px}.transport{gap:8px}.mark-button{padding:9px;font-size:11px}.setting-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.setting{min-width:0}.setting .select,.setting select{width:100%;min-width:0}}.mic-select{color:var(--muted);flex-basis:100%;order:2;align-items:center;gap:9px;font-size:11px;display:flex}.mic-select .select,.mic-select select{flex:1;min-width:0}.mic-missing{color:light-dark(#9b4d40,#d37f70);flex-basis:100%;order:2;align-items:center;gap:9px;font-size:12px;display:flex}.mic-hint{color:var(--muted);flex-basis:100%;order:5;font-size:11px;line-height:1.7}.mic-meter.is-quiet i{background:light-dark(#c9a04f,#724c00)}.record-area .record-button{order:7}.record-area .text-button{order:8}.prefer-button{color:light-dark(#78846f,#74806b);align-items:center;gap:6px;min-height:40px;padding:9px 12px;font-size:12px;display:inline-flex}.prefer-button.pinned{color:light-dark(#3f6a4a,#85b28f);background:light-dark(#e6ecdd,#2a2e22);border-color:light-dark(#c6d5b7,#343e2a);font-weight:600}.signal-note{border-radius:10px;align-items:flex-start;gap:9px;margin-top:12px;padding:11px 13px;font-size:11px;line-height:1.8;display:flex}.signal-note svg{flex:none;margin-top:2px}.signal-warning{color:light-dark(#8c5343,#ca8b7a);background:light-dark(#fdf3ef,#2a2320);border:1px solid light-dark(#e8cfc6,#45322b)}.signal-info{color:light-dark(#8a7844,#93814d);background:light-dark(#fdfaf1,#24221b);border:1px solid light-dark(#e6ddc6,#3a3220)}.rating-row{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;font-size:12px;display:flex}.rating-chip{color:light-dark(#78846f,#74806b);border-radius:9px;min-height:40px;padding:9px 13px;font-size:12px}.rating-chip.selected{color:light-dark(#3f6a4a,#85b28f);background:light-dark(#e6ecdd,#2a2e22);border-color:light-dark(#c6d5b7,#343e2a);font-weight:600}.capture-conditions{color:light-dark(#a0a993,#515945);margin-top:12px;font-size:11px;line-height:1.7}.session-summary{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);margin-top:22px;padding:22px 25px}.session-summary .card-heading h3{margin-top:7px;font-size:14px}.session-summary .card-heading button{min-height:42px;padding:10px 14px;font-size:12px}.summary-figures{grid-template-columns:repeat(4,1fr);gap:16px;margin-top:20px;display:grid}.admin-figures b,.summary-figures b{font-family:var(--font-serif);color:var(--ink);font-variant-numeric:tabular-nums;font-size:25px;font-weight:400;display:block}.admin-figures span,.summary-figures span{color:var(--muted);margin-top:5px;font-size:11px;line-height:1.5;display:block}.rating-breakdown{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;font-size:11px;display:flex}.rating-tally{color:var(--muted);background:light-dark(#f0f1ec,#272824);border-radius:5px;padding:5px 9px}.rating-tally.confident{color:light-dark(#3f6a4a,#85b28f);background:light-dark(#e3ede3,#262e27)}.rating-tally.again{color:light-dark(#8c5343,#ca8b7a);background:light-dark(#f6ece8,#2e2724)}.summary-nudge{color:var(--muted);align-items:flex-start;gap:9px;margin-top:16px;font-size:12px;line-height:1.8;display:flex}.summary-nudge svg{color:light-dark(#7c9c68,#557341);flex:none;margin-top:3px}.summary-note{color:light-dark(#a0a993,#515945);margin-top:14px;font-size:11px;line-height:1.8}@media (max-width:900px){.summary-figures{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.prefer-button,.rating-chip{min-height:44px}.session-summary{padding:20px}}.settings-index{border-bottom:1px solid var(--edge);flex-wrap:wrap;gap:2px 4px;margin:-8px 0 8px;padding-bottom:12px;display:flex}.settings-index a{min-height:var(--control-sm);font-size:var(--fs-small);color:var(--muted);border-radius:6px;align-items:center;padding:0 10px;font-weight:500;display:inline-flex}.settings-index a:hover{background:var(--surface-subtle);color:var(--ink)}.settings-group{scroll-margin-top:calc(var(--topbar) + 16px);margin-top:32px}.confirm-dialog-field{color:light-dark(#304c3a,#b5d5bf);gap:8px;margin-top:20px;font-size:14px;font-weight:600;display:grid}.confirm-dialog-field input{background:var(--panel);width:100%;min-height:46px;color:var(--ink);font:inherit;border:1px solid light-dark(#cfdacb,#313a2e);border-radius:10px;padding:10px 12px;font-size:16px;font-weight:400}.confirm-dialog-field input:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-color:light-dark(#7fa070,#506f41)}.theme-choice-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.theme-choice-row label{flex:240px;gap:4px;display:grid}.theme-choice-row label strong{color:var(--ink);font-size:14px;font-weight:600}.theme-choice-row label>span{color:var(--muted);font-size:13px;line-height:1.6}.theme-choice-row>div{flex:0 220px;min-width:180px}.theme-choice .reading-note{margin-top:14px}.settings-group-head{gap:2px;margin-bottom:12px;display:grid}.settings-group-head h2{font-size:var(--fs-h2);letter-spacing:-.2px;font-weight:600}.settings-group-head p{font-size:var(--fs-small);color:var(--muted)}.settings-group .privacy-card,.settings-group .settings-card{margin:0 0 14px}.settings-group .privacy-card h2{font-size:15px}.settings-group .privacy-card-lead{font-size:13px;line-height:1.7}.settings-account-row{border:1px solid var(--edge);border-radius:var(--radius);background:var(--surface-subtle);justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:14px 18px;display:flex}.settings-account-row strong{font-size:14px;display:block}.settings-account-row span{color:var(--muted);font-size:12px}.privacy-advanced{margin-bottom:14px}.privacy-advanced>summary{cursor:pointer;color:light-dark(#4d5f4f,#9eb2a0);align-items:center;min-height:44px;padding:0 4px;font-size:13px;font-weight:600;display:flex}.privacy-advanced[open]>summary{margin-bottom:12px}.settings-danger{background:light-dark(#fffbf9,#23201f);border-color:light-dark(#efd9d3,#3f2e29)}.settings-page .privacy-inline-actions label{color:var(--muted);gap:6px;font-size:12px;display:grid}.settings-page .button.danger{color:light-dark(#fff,#1c2520);background:light-dark(#b24d48,#e0837d);border-color:light-dark(#b24d48,#e0837d)}.settings-page .button{min-height:var(--control);font-size:var(--fs-body);padding:0 14px}@media (max-width:600px){.settings-group{margin-top:28px}.settings-account-row{flex-direction:column;align-items:flex-start}}.settings-card .card-heading h2{font-size:var(--fs-h3);margin-top:0;font-weight:600}.settings-note{color:var(--muted);max-width:70ch;margin-top:14px;font-size:12px;line-height:1.9}.settings-note code{background:light-dark(#f2f4ee,#252722);border-radius:4px;padding:2px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.settings-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;display:flex}.settings-actions button:not(.primary-action){min-height:44px;padding:11px 15px;font-size:12px}.settings-hint{color:var(--muted);font-size:11px}.restore-block{border-top:1px solid var(--edge);margin-top:26px;padding-top:22px}.restore-block h3{font-size:13px;font-weight:600}.restore-block .file-drop{margin-top:16px}.restore-outcome{color:light-dark(#3f6a4a,#85b28f);background:light-dark(#eef3e9,#252921);border-radius:10px;align-items:flex-start;gap:9px;margin-top:16px;padding:12px 14px;font-size:12px;line-height:1.8;display:flex}.restore-outcome svg{flex:none;margin-top:2px}.usage-figures{grid-template-columns:repeat(4,1fr);gap:16px;margin-top:20px;display:grid}.usage-figures b{font-family:var(--font-serif);color:var(--ink);font-variant-numeric:tabular-nums;font-size:24px;font-weight:400;display:block}.usage-figures span{margin-top:5px;line-height:1.5;display:block}.usage-bar,.usage-figures span{color:var(--muted);font-size:11px}.usage-bar{margin-top:20px}.usage-bar .progress-track{margin-bottom:8px}@media (max-width:900px){.usage-figures{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.settings-card{padding:20px}.usage-figures{grid-template-columns:1fr 1fr;gap:14px}}.draft-recovery{border-radius:var(--radius);background:light-dark(#fdfaf1,#24221b);border:1px solid light-dark(#e6ddc6,#3a3220);align-items:flex-start;gap:15px;margin-bottom:20px;padding:20px 22px;display:flex}.draft-icon{color:light-dark(#8a7844,#93814d);background:light-dark(#f2ecdb,#2f2a1d);border-radius:12px;flex:none;place-items:center;width:42px;height:42px;display:grid}.draft-recovery>div{flex:1;min-width:0}.draft-recovery strong{font-size:12px;font-weight:600;display:block}.draft-recovery>div>p{color:light-dark(#857e6a,#837c68);max-width:70ch;margin-top:7px;font-size:12px;line-height:1.9}.draft-list{gap:9px;margin:15px 0 0;padding:0;list-style:none;display:grid}.draft-list li{background:light-dark(#fffdf7,#22201c);border:1px solid light-dark(#ece3cf,#362e1f);border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;padding:11px 13px;display:flex}.draft-copy{flex:1;min-width:160px}.draft-copy strong{color:var(--ink);font-size:12px;font-weight:400}.draft-copy small{color:light-dark(#9a9280,#6d6655);margin-top:5px;font-size:11px;display:block}.draft-actions{flex-wrap:wrap;gap:7px;display:flex}.draft-actions button{align-items:center;gap:6px;min-height:40px;padding:9px 11px;font-size:11px;display:inline-flex}@media (max-width:600px){.draft-recovery{padding:18px}.draft-actions button{min-height:44px}}.skip-link{z-index:5;background:var(--panel);border:1px solid var(--accent);color:var(--accent);border-radius:9px;padding:12px 16px;font-size:12px;position:absolute;top:12px;left:-9999px}.skip-link:focus{left:12px}@media (prefers-reduced-motion:reduce){.sentence-list{scroll-behavior:auto}}.due-card{background:var(--soft);border-radius:var(--radius);border:1px solid light-dark(#c6d5b7,#343e2a);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin:0 0 16px;padding:18px 24px;display:flex}.due-card h2{font-family:var(--font-serif);letter-spacing:-.3px;margin:4px 0;font-size:20px;font-weight:400}.due-card p{font-size:var(--fs-small);color:var(--muted);line-height:var(--lh-body);max-width:56ch}.review-status{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);margin-top:26px;padding:22px 25px}.review-figures{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.review-figures b{font-family:var(--font-serif);color:var(--ink);font-variant-numeric:tabular-nums;font-size:26px;font-weight:400;display:block}.review-figures span{color:var(--muted);margin-top:5px;font-size:11px;display:block}.review-note{color:var(--muted);margin-top:16px;font-size:12px;line-height:1.8}.review-start{border-top:1px solid var(--edge);flex-wrap:wrap;align-items:end;gap:18px;margin-top:22px;padding-top:20px;display:flex}.review-start .setting{margin:0}.review-start .primary-action{margin-left:auto}.review-card{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);margin-top:16px;padding:26px}.review-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.review-actions button:not(.play-button){min-height:44px;padding:11px 15px;font-size:12px}.review-done{text-align:center}.review-done h2{font-family:var(--font-serif);margin-bottom:12px;font-size:24px;font-weight:400}.review-done p{color:var(--muted);margin-bottom:18px;font-size:12px;line-height:1.9}.ladder-note{border:1px solid var(--edge);border-radius:var(--radius);background:light-dark(#fafbf8,#202924);margin-top:22px;padding:20px 24px}.ladder-note>summary{cursor:pointer;align-items:center;min-height:44px;font-size:13px;font-weight:600;display:flex}.ladder-note[open]>summary{margin-bottom:8px}.review-heading{padding-bottom:0}.review-heading .page-heading p a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.review-section-title{font-size:var(--fs-h3);letter-spacing:-.1px;margin:0 0 10px;font-weight:600}.review-dashboard,.review-heading+.content{padding-top:8px}.review-foot{padding-top:0}.review-foot .ladder-note{margin-top:0}.review-filters{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.review-filters .filter-chip span{font-size:var(--fs-caption);color:var(--faint);font-variant-numeric:tabular-nums}.review-filters .filter-chip.selected span{color:var(--accent);opacity:.8}.settings-group .review-reminder{border-radius:var(--radius);margin:0 0 14px}.settings-group .review-reminder-heading>div>p{margin:0}@media (max-width:600px){.review-heading .page-heading p{font-size:12px;line-height:1.8}}.ladder-note h3{font-size:12px;font-weight:600}.ladder-note p{color:var(--muted);max-width:74ch;margin-top:9px;font-size:12px;line-height:1.9}.stage-actions{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:12px;display:flex}.note-list{gap:14px;margin:0;padding:0;list-style:none;display:grid}.note-card{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:18px;padding:20px 22px;display:flex}.note-body{flex:1;min-width:240px}.note-body strong{font-family:var(--font-serif);font-size:19px;font-weight:400;line-height:1.45;display:block}.note-body>p{color:var(--muted);margin-top:9px;font-size:12px;line-height:1.8}.note-own{color:var(--muted);border-left:2px solid light-dark(#d5dfca,#303727);padding-left:11px}.note-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px}.note-meta,.note-missing{margin-top:13px;font-size:11px;display:flex}.note-missing{color:light-dark(#8a7844,#93814d);background:light-dark(#fdfaf1,#24221b);border:1px solid light-dark(#e6ddc6,#3a3220);border-radius:9px;align-items:flex-start;gap:8px;padding:10px 12px;line-height:1.8}.note-missing svg{flex:none;margin-top:2px}.note-actions{align-items:center;gap:8px;display:flex}.note-actions button{place-items:center;width:44px;height:44px;padding:0;display:grid}@media (max-width:900px){.review-figures{grid-template-columns:1fr 1fr}}@media (max-width:600px){.due-card,.review-card,.review-status{padding:20px}.note-card{padding:18px}}.auth-header{border-bottom:1px solid var(--edge);justify-content:space-between;align-items:center;gap:20px;padding:24px 32px;display:flex}.auth-header .brand{font-size:24px}.auth-header .brand,.auth-header a{align-items:center;min-height:44px;display:inline-flex}.auth-shell .auth-main{width:100%;margin-left:0}.auth-shell .auth-page{max-width:none;padding:48px 20px}.guest-continue{text-align:center;border:1px solid var(--edge);min-height:44px;color:var(--accent);border-radius:9px;margin-top:22px;padding:12px;display:block}.guest-continue:hover{background:var(--soft)}.lesson-catalog .lesson-list{overscroll-behavior:contain;flex:1;min-height:0;max-height:none;margin-top:0;overflow-y:auto}.catalog-page .page-heading{background:0 0;border:0;max-width:none;padding:0}.catalog-page .page-heading p{max-width:64ch}.catalog-page .catalog-stats{gap:18px;margin-top:18px}.catalog-page .catalog-stats span{color:light-dark(#526453,#98ab99);background:0 0;border:0;padding:0;font-size:14px}.level-intro{margin-top:30px;font-size:17px;font-weight:600}.level-intro span{color:light-dark(#5e7062,#889b8c);margin-left:12px;font-size:14px;font-weight:400}.catalog-page .catalog-layout{grid-template-columns:minmax(240px,300px) minmax(0,1fr);gap:24px;margin-top:28px}.catalog-page .lesson-catalog{background:light-dark(#f1f4ed,#252722);border-color:light-dark(#e0e6da,#2d3128);padding:22px 16px}.catalog-page .prompt-label,.catalog-page .section-kicker{color:light-dark(#526b58,#8ba691);letter-spacing:1.2px;font-size:12px}.catalog-page .lesson-list{grid-auto-rows:max-content;align-content:start}.catalog-page .lesson-catalog-item{align-items:flex-start;gap:12px;min-height:68px;padding:14px 10px}.catalog-page .lesson-catalog-item>div{flex:1;grid-template-columns:minmax(0,1fr);min-width:0}.catalog-page .lesson-catalog-item small,.catalog-page .lesson-catalog-item strong{overflow-wrap:anywhere;text-overflow:clip;overflow:visible}.catalog-page .lesson-catalog-item strong{white-space:normal;color:light-dark(#334b3b,#b8d4c0);font-size:16px;line-height:1.45}.catalog-page .lesson-catalog-item small{color:light-dark(#5e6e60,#8b9c8d);white-space:normal;font-size:13px;line-height:1.5}.catalog-page .lesson-catalog-item>span{color:light-dark(#62745e,#849780);flex-shrink:0;padding-top:3px;font-size:13px}.catalog-page .lesson-catalog-item.selected{background:var(--panel);box-shadow:inset 3px 0 #35674c,0 3px 12px #29362006}.catalog-page .lesson-detail{min-width:0;padding:30px;box-shadow:0 8px 32px #25372e05}.catalog-page .lesson-detail-head h2{font-family:var(--font-ui);font-size:var(--fs-h2);letter-spacing:-.2px;font-weight:600}.catalog-page .question-count{font-size:var(--fs-caption);color:var(--muted)}.catalog-page .prompt-block{padding:28px 0 24px}.catalog-page .prompt-block h3{color:light-dark(#203b2b,#cfefda);font-size:clamp(28px,2.5vw,36px);line-height:1.4}.catalog-page .prompt-block p{color:light-dark(#596b60,#8da095);font-size:17px;line-height:1.65}.reading-practice{border-radius:var(--radius-lg);background:light-dark(#f0f5e9,#24281f);border:1px solid light-dark(#d7e2cc,#2e3625);padding:26px;scroll-margin:30px}.reading-practice:focus-visible{outline-offset:3px;outline:2px solid light-dark(#83a67b,#486941)}.reading-caption{letter-spacing:1px;color:light-dark(#4c684b,#8fad8e);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-bottom:18px;font-size:12px;display:flex}.reading-caption span:last-child{letter-spacing:0;font-size:14px}.reading-practice .answer-en{font-family:var(--font-serif);color:light-dark(#223b29,#d0efd7);overflow-wrap:anywhere;font-size:clamp(24px,2.1vw,30px);line-height:1.65}.reading-start{flex-wrap:wrap;align-items:center;gap:16px;margin-top:24px;display:flex}.reading-start p{color:light-dark(#526453,#98ab99);max-width:26ch;font-size:14px;line-height:1.6}.learn-primary,.reading-controls .learn-primary{background:var(--accent);border:1px solid var(--accent);color:var(--accent-ink);border-radius:8px;align-items:center;gap:12px;min-height:44px;padding:10px 18px;font-size:15px;font-weight:600;display:inline-flex}.learn-primary:hover:not(:disabled),.reading-controls .learn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.reading-translation{color:light-dark(#435e44,#9dbb9d);border-top:1px solid light-dark(#d7e2cc,#2e3625);margin-top:24px;padding-top:16px;font-size:16px;line-height:1.7}.reading-translation summary{cursor:pointer;min-height:44px;padding:11px 0;font-size:15px}.reading-translation p{margin-top:12px}.reading-note{color:light-dark(#5b6b52,#91a287);margin-top:14px;font-size:13px;line-height:1.6}.reading-track{background:light-dark(#dbe5d2,#2c3425);border-radius:5px;height:5px;overflow:hidden}.reading-track i{background:light-dark(#35674c,#84b89a);height:100%;transition:width .2s;display:block}.reading-stage{min-height:200px;padding:24px 0}.reading-position{color:light-dark(#506748,#93ad8b);margin-bottom:12px;font-size:14px;display:block}.reading-stage>p:last-child{color:light-dark(#526453,#98ab99);margin-top:16px;font-size:15px;line-height:1.6}.reading-controls{flex-wrap:wrap;justify-content:space-between;gap:10px;display:flex}.reading-controls button{min-height:48px;padding:12px 16px;font-size:15px}.reading-reset{text-underline-offset:4px;color:light-dark(#526453,#98ab99);background:0 0;border:0;margin-top:16px;padding:6px 0;font-size:14px;text-decoration:underline}.catalog-page .shadowing-grid{grid-template-columns:1fr;margin-top:22px}.catalog-page .shadowing-card{padding:22px}.catalog-page .shadowing-card ol{color:light-dark(#334b3b,#b8d4c0);gap:12px;font-size:18px;line-height:1.8}.catalog-page .shadowing-card strong{color:light-dark(#334b3b,#b8d4c0);font-size:24px}.catalog-page .shadowing-card p{color:light-dark(#526453,#98ab99);font-size:16px;line-height:1.8}.catalog-page .follow-up-block summary,.catalog-page .tts-block summary{color:light-dark(#42614a,#96b89e);min-height:44px;padding:12px 0;font-size:16px}.catalog-page .follow-up-block ol{color:light-dark(#334b3b,#b8d4c0);font-size:18px;line-height:1.7}.catalog-page .tts-block pre{color:light-dark(#435e44,#9dbb9d);font-size:15px}.auth-form label,.auth-intro,.auth-switch{color:light-dark(#526453,#98ab99);font-size:16px;line-height:1.6}.auth-form input{min-height:50px;font-size:17px}@media (max-width:1100px){.catalog-page .catalog-layout{grid-template-columns:240px minmax(0,1fr);gap:16px}.catalog-page .lesson-detail,.reading-practice{padding:22px}}@media (max-width:900px){.catalog-page .catalog-layout{grid-template-columns:1fr}.catalog-page .lesson-list{max-height:260px}}@media (max-width:600px){.catalog-page .catalog-stats{gap:10px 16px}.catalog-page .lesson-detail{padding:20px 16px}.catalog-page .lesson-detail-head{flex-wrap:wrap}.reading-practice{padding:20px 16px}.level-intro span{margin:8px 0 0;display:block}.reading-controls button{flex:1;justify-content:center}.catalog-page .shadowing-card ol{font-size:17px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reading-track i{transition:none}}#current-lesson{scroll-margin-top:24px}@media (max-width:900px){.catalog-page .lesson-detail{grid-row:1}.catalog-page .lesson-catalog{grid-row:2}}.topic-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:0;display:flex}.level-chips{flex-wrap:wrap;gap:8px;display:flex}.level-chip strong{color:var(--ink);font-weight:600}.level-chip.selected strong{color:inherit}.topic-search{border:1px solid var(--edge);background:var(--panel);max-width:360px;color:var(--faint);border-radius:8px;flex:240px;align-items:center;gap:8px;padding:0 12px;transition:border-color .15s,box-shadow .15s;display:flex}.topic-search input{min-width:0;color:var(--ink);font-size:var(--fs-body);min-height:calc(var(--control) - 2px);background:0 0;border:0;flex:1}@media (max-width:900px){.search-field input,.topic-search input{font-size:16px}}@media (max-width:600px){.search-field input,.topic-search input{min-height:44px}}.topic-search input:focus{outline:none}.topic-search input::placeholder{color:var(--faint)}.topic-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px light-dark(#dfeada,#2a3a30)}.group-chips{flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:16px;display:flex}.chip-row-label{font-size:var(--fs-caption);color:var(--faint);flex:none;min-width:48px;margin-right:2px}.group-chip{min-height:var(--control-sm);border-radius:var(--pill);color:var(--muted);font-size:var(--fs-small);background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:0 12px;font-weight:500;transition:background-color .15s,color .15s;display:inline-flex}.group-chip strong{color:inherit;font-weight:500}.group-chip small{font-size:var(--fs-caption);color:var(--faint);font-variant-numeric:tabular-nums}.group-chip:hover{background:var(--surface-subtle);color:var(--ink)}.group-chip.selected{background:var(--soft);color:var(--accent)}.group-chip.selected strong{font-weight:600}.group-chip.selected small{color:var(--accent);opacity:.8}.topic-grid-heading{flex-wrap:wrap;align-items:baseline;gap:12px;margin-top:28px;display:flex}.topic-grid-heading h2{font-size:var(--fs-h2);letter-spacing:-.2px;color:var(--ink);font-weight:600}.topic-grid-heading span{font-size:var(--fs-small);color:var(--muted)}.topic-grid{grid-template-columns:repeat(auto-fill,minmax(252px,1fr));gap:14px;margin-top:14px;padding:0;list-style:none;display:grid}.topic-card{text-align:left;border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);align-content:start;gap:4px;width:100%;height:100%;padding:16px 18px;transition:border-color .15s,background-color .15s;display:grid}.topic-card-name{color:var(--ink);font-size:15px;font-weight:600;line-height:1.4}.topic-card-en{font-size:var(--fs-small);color:var(--muted)}.topic-card-meta{font-size:var(--fs-caption);color:var(--faint);justify-content:space-between;align-items:center;gap:10px;margin-top:10px;display:flex}.topic-card-count{white-space:nowrap}.topic-card-count b{color:var(--muted);font-weight:600}.topic-levels{font-size:var(--fs-caption);color:var(--faint);white-space:nowrap}.topic-card:hover{border-color:var(--edge-strong);background:var(--surface-subtle)}.topic-empty{border:1px dashed var(--edge-strong);border-radius:var(--radius);text-align:center;font-size:var(--fs-body);color:var(--muted);margin-top:24px;padding:28px}.topic-header{flex-wrap:wrap;align-items:center;gap:16px;margin-top:0;display:flex}.topic-header h2{font-family:var(--font-serif);letter-spacing:-.3px;color:var(--ink);font-size:24px;font-weight:400}.topic-header .question-count{margin-left:auto}.topic-back{min-height:var(--control-sm);border:1px solid var(--edge);background:var(--panel);color:var(--muted);font-size:var(--fs-small);border-radius:8px;align-items:center;gap:6px;padding:0 12px 0 8px;font-weight:500;display:inline-flex}.topic-back:hover{background:var(--surface-subtle);color:var(--ink)}.group-chip:focus-visible,.level-chip:focus-visible,.topic-back:focus-visible,.topic-card:focus-visible,.topic-more:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.topic-more{width:100%;min-height:var(--control);font-size:var(--fs-body);color:var(--accent);background:var(--panel);border:1px solid var(--edge);border-radius:8px;justify-content:center;align-items:center;gap:10px;margin-top:16px;padding:8px 20px;font-weight:500;display:flex}.topic-more:hover:not(:disabled){background:var(--surface-subtle);border-color:var(--edge-strong)}.topic-more small{font-size:var(--fs-caption);color:var(--muted);background:var(--surface-subtle);border-radius:var(--pill);white-space:nowrap;padding:2px 8px;font-weight:500}@media (prefers-reduced-motion:reduce){.topic-card{transition:none}.topic-card:hover{transform:none}}@media (max-width:600px){.topic-search{max-width:none}.topic-grid{grid-template-columns:1fr}.topic-header h2{font-size:22px}.level-chips{flex-wrap:wrap;gap:6px}.topic-header{grid-template-columns:auto 1fr;align-items:center;gap:10px 12px;margin-top:20px;display:grid}.topic-header .topic-back{grid-area:1/1;justify-self:start}.topic-header .question-count{grid-area:1/2;justify-self:end;margin-left:0}.topic-header>div{grid-area:2/1/auto/-1}.catalog-page .catalog-stats{flex-wrap:wrap;gap:6px 16px;display:flex}.catalog-page .catalog-stats span{white-space:nowrap}.topbar-actions .auth-link{display:inline-flex}.sidebar .brand,.topbar-actions .auth-link{align-items:center;min-height:44px}}.offline-pill{color:light-dark(#4b6b52,#88aa8f);background:light-dark(#eef3e9,#252921);border-radius:5px;align-items:center;gap:5px;padding:3px 7px;font-size:11px;display:inline-flex}.offline-pill.is-missing{color:light-dark(#8a7844,#93814d);background:light-dark(#fdfaf1,#24221b)}.offline-figures{flex-wrap:wrap;gap:18px 28px;margin-top:4px;display:flex}.offline-figures div{gap:2px;display:grid}.offline-figures b{font-family:var(--font-serif);color:var(--ink);font-variant-numeric:tabular-nums;font-size:22px;font-weight:400}.offline-figures span{color:var(--muted);font-size:12px}.offline-missing{color:light-dark(#8a7844,#93814d);font-size:12px;line-height:1.7}.outbox-badge{color:light-dark(#7b6b3c,#a29262);white-space:nowrap;background:light-dark(#fdfaf1,#24221b);border:1px solid light-dark(#e0d3ac,#3e3722);border-radius:999px;align-items:center;gap:6px;min-height:32px;padding:6px 11px;font-size:12px;display:inline-flex}.outbox-badge:hover{background:light-dark(#faf4e6,#29251a)}.outbox-label{color:light-dark(#2f4636,#c0dbc7);overflow-wrap:anywhere;flex:180px;min-width:0;font-size:13px;font-weight:600}@media (max-width:600px){.outbox-badge{padding:6px 9px;font-size:11px}}.keep-lesson{border:1px solid var(--edge);border-radius:var(--radius);background:light-dark(#f9faf7,#202924);flex-wrap:wrap;align-items:center;gap:14px;margin-top:20px;padding:16px 18px;display:flex}.keep-lesson.is-kept{background:light-dark(#f2f8ef,#222620);border-color:light-dark(#c6dcc0,#2e3c2a)}.keep-lesson>div{flex:260px;min-width:0}.keep-lesson strong{color:light-dark(#25372e,#e4ebe3);font-size:15px;font-weight:600;display:block}.keep-lesson p{color:light-dark(#657460,#859580);margin-top:5px;font-size:13px;line-height:1.65}.keep-lesson-error{color:light-dark(#a1443a,#df7b6e)}.keep-lesson button{flex:none;align-items:center;gap:7px;min-height:44px;padding:11px 15px;font-size:13px;display:inline-flex}.kept-lesson-list{gap:8px;margin:22px 0 0;padding:0;list-style:none;display:grid}.kept-lesson-list button{border:1px solid var(--edge);background:var(--panel);text-align:left;color:light-dark(#2f4636,#c0dbc7);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 14px;width:100%;min-height:48px;padding:13px 16px;font-size:14px;display:flex}.kept-lesson-list button.selected{border-color:var(--accent);background:light-dark(#eff5eb,#242821);font-weight:600}.kept-lesson-list small{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.download-list{gap:8px;margin:18px 0 0;padding:0;list-style:none;display:grid}.download-list li{border:1px solid var(--edge);background:light-dark(#f9faf7,#202924);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px 14px;display:flex}.download-list a{color:light-dark(#2f4636,#c0dbc7);overflow-wrap:anywhere;flex:180px;min-width:0;font-size:13px;font-weight:600}.download-list a:hover{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.download-list span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.download-list button{flex:none;align-items:center;gap:6px;min-height:44px;padding:10px 13px;font-size:12px;display:inline-flex}@media (max-width:600px){.download-list li{gap:10px}.download-list button,.keep-lesson button{justify-content:center;width:100%}}.waveform-card{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);gap:16px;margin-top:18px;padding:22px 24px;display:grid}.waveform-card .card-heading h3{margin-top:6px;font-size:15px;font-weight:600}.waveform-empty{justify-items:start;gap:14px;display:grid}.waveform-empty p{color:var(--muted);max-width:62ch;font-size:13px;line-height:1.7}.waveform-row{gap:8px;display:grid}.waveform-labels{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:4px 12px;font-size:12px;display:flex}.waveform-labels strong{color:light-dark(#43583f,#a8c0a4);font-size:13px}.waveform-labels span{font-variant-numeric:tabular-nums}.waveform-track{background:light-dark(#f7f9f4,#222420);border:1px solid light-dark(#eef1e9,#272923);border-radius:12px;height:72px;padding:6px}.waveform-signal{min-width:2px;height:100%}.waveform-canvas{fill:light-dark(#5d8467,#678e71);width:100%;height:100%;display:block}.waveform-signal.is-attempt .waveform-canvas{fill:light-dark(#9a7f4e,#8d7342)}.waveform-flat{border-top:2px solid light-dark(#cbd6c2,#333c2c);height:100%}.waveform-offset{gap:12px}.waveform-offset,.waveform-offset label{flex-wrap:wrap;align-items:center;display:flex}.waveform-offset label{color:light-dark(#7d8a74,#6d7a64);gap:10px;font-size:12px}.waveform-offset input[type=range]{accent-color:light-dark(#35674c,#84b89a);width:min(320px,60vw)}.waveform-offset output{font-variant-numeric:tabular-nums;color:light-dark(#43583f,#a8c0a4);min-width:72px;font-size:13px}.waveform-note{color:var(--muted);max-width:74ch;font-size:12px;line-height:1.7}.waveform-error{color:light-dark(#8a5a4a,#be8a79);font-size:13px;line-height:1.7}@media (max-width:600px){.waveform-card{padding:18px 16px}.waveform-track{height:60px}.waveform-offset input[type=range]{width:100%}}.then-and-now-card{border-radius:var(--radius);background:light-dark(#f3f7ee,#23261f);border:1px solid light-dark(#c6d5b7,#343e2a);gap:16px;margin-top:18px;padding:22px 24px;display:grid}.then-and-now-card .card-heading h3{margin-top:6px;font-size:15px;font-weight:600}.then-and-now-pair{color:light-dark(#7d9770,#5c744f);align-items:center;gap:14px;display:flex}.then-and-now-take{background:var(--panel);border-radius:var(--radius);min-width:0;color:var(--muted);font-variant-numeric:tabular-nums;border:1px solid light-dark(#dfe7d6,#2c3225);flex:1 1 0;gap:4px;padding:14px 16px;font-size:12px;display:grid}.then-and-now-take strong{color:light-dark(#43583f,#a8c0a4);font-size:15px}.then-and-now-take.is-now{background:light-dark(#eaf2e3,#252b20);border-color:light-dark(#b5cba6,#344627)}.then-and-now-actions{flex-wrap:wrap;align-items:center;gap:12px 18px;display:flex}.then-and-now-play{color:light-dark(#fff,#1c2520);background:light-dark(#35674c,#84b89a);border-color:light-dark(#35674c,#84b89a);border-radius:12px;align-items:center;gap:10px;min-height:48px;padding:12px 18px;font-size:15px;font-weight:600;display:inline-flex}.then-and-now-play:hover:not(:disabled){background:light-dark(#28543b,#a2d1b3)}.then-and-now-actions label{color:light-dark(#7d8a74,#6d7a64);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.language-chips{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.study-language{letter-spacing:1.6px;color:light-dark(#919b88,#5d6654);margin-bottom:8px;font-size:11px;font-weight:600}:lang(ko):lang(ko){font-family:"Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR",var(--font-ui)}:lang(ja):lang(ja){font-family:"Hiragino Sans","Yu Gothic","Noto Sans JP",var(--font-ui)}:lang(zh):lang(zh){font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",var(--font-ui)}.not-found{min-height:60vh}.not-found .page-heading p{max-width:48ch}.not-found-actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}@media (max-width:600px){.not-found-actions a{flex:100%;justify-content:center}}.then-and-now-offer{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin-top:16px;padding:18px 24px;display:flex}.then-and-now-offer h3{font-family:var(--font-serif);max-width:60ch;margin:4px 0;font-size:18px;font-weight:400;line-height:1.5}.then-and-now-offer p{font-size:var(--fs-small);color:var(--muted);line-height:var(--lh-body);max-width:56ch}@media (max-width:600px){.then-and-now-card{padding:18px 16px}.then-and-now-pair{flex-direction:column;align-items:stretch}.then-and-now-pair>svg{align-self:center;transform:rotate(90deg)}.then-and-now-play{justify-content:center;width:100%}.then-and-now-actions label{width:100%}.then-and-now-actions .select,.then-and-now-actions select{flex:1}.then-and-now-offer{padding:20px}.then-and-now-offer h3{font-size:17px}}.recordings-card .saved-takes{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:22px;margin-top:26px;display:grid}.recordings-card .take-select{flex-wrap:wrap;gap:14px;min-width:0;display:flex}.recordings-card .take-icon{border-radius:var(--radius);color:light-dark(#53784a,#789f6f);flex:none;width:46px;height:46px}.recordings-card .take-select label{color:light-dark(#536553,#97aa96);flex:1;min-width:180px;font-size:14px;line-height:1.6}.recordings-card .take-select .select,.recordings-card .take-select select{width:100%;max-width:420px;margin-top:4px;display:block}.recordings-card .prefer-button{white-space:nowrap;border-radius:12px;flex:none;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 16px;font-size:14px;display:inline-flex}.recordings-card .take-actions{border-bottom:1px solid var(--edge);flex-wrap:wrap;gap:10px;padding-bottom:22px;display:flex}.recordings-card .take-actions button{white-space:nowrap;border-radius:12px;justify-content:center;gap:10px;min-height:48px;padding:12px 18px;font-size:16px}.recordings-card .take-actions .take-replay{color:light-dark(#fff,#1c2520);background:light-dark(#35674c,#84b89a);border-color:light-dark(#35674c,#84b89a);font-weight:600}.recordings-card .take-actions .take-replay:hover:not(:disabled){background:light-dark(#28543b,#a2d1b3)}.recordings-card .take-actions .compare-button{color:light-dark(#3f6348,#91b89a);background:light-dark(#edf3e7,#252920)}.recordings-card .take-actions button[aria-label]{flex:none;width:48px;padding:12px}.recordings-card .take-actions button[aria-label="Tải bản ghi xuống"]{margin-left:auto}.recordings-card .rating-row{border-radius:var(--radius);background:light-dark(#f6f8f2,#232420);border:1px solid light-dark(#e6ebdf,#2a2e25);gap:10px;margin:0;padding:18px 20px}.recordings-card .rating-row>span{color:light-dark(#43583f,#a8c0a4);margin-right:auto;font-size:15px;font-weight:600}.recordings-card .rating-chip{background:var(--panel);color:light-dark(#53634d,#9bad94);border-radius:10px;min-height:44px;padding:10px 16px;font-size:15px}.recordings-card .rating-chip.selected{color:light-dark(#fff,#1c2520);background:light-dark(#35674c,#84b89a);border-color:light-dark(#35674c,#84b89a)}.recordings-card .signal-note{border-radius:12px;margin:0;padding:14px 18px;font-size:14px;line-height:1.7}.recordings-card .signal-note svg{flex:none;margin-top:4px}.recordings-card .stale-note{margin:0;font-size:14px;line-height:1.7}.recordings-card .take-details{color:light-dark(#596b60,#8da095);font-size:14px;line-height:1.7}.recordings-card .take-details summary{cursor:pointer;width:fit-content;padding:4px 0}.recordings-card .capture-conditions{color:light-dark(#596b60,#8da095);margin-top:8px;font-size:13px}.recordings-card button:focus-visible,.take-details summary:focus-visible{outline-offset:3px;outline:2px solid light-dark(#83a67b,#486941)}@media (max-width:600px){.recordings-card .saved-takes{gap:18px}.recordings-card .take-select{grid-template-columns:46px minmax(0,1fr);align-items:center;display:grid}.recordings-card .take-select label{width:100%;min-width:0}.recordings-card .take-select .select,.recordings-card .take-select select{max-width:100%}.recordings-card .prefer-button{grid-column:2;justify-self:start;margin-left:0}.recordings-card .take-actions button{padding:12px;font-size:14px}.recordings-card .take-actions .compare-button,.recordings-card .take-actions .take-replay{flex:calc(50% - 10px)}.recordings-card .take-actions button[aria-label="Tải bản ghi xuống"]{margin-left:0}.recordings-card .rating-row{padding:16px}.recordings-card .rating-row>span{width:100%;margin-bottom:4px}.recordings-card .rating-chip{flex:auto;padding:10px 12px;font-size:14px}}.account-learning-actions{border-radius:var(--radius);background:light-dark(#f2f6ed,#242720);border:1px solid light-dark(#dce6d5,#2c3326);margin:18px 0;padding:18px 20px}.account-action-buttons{flex-wrap:wrap;gap:10px;display:flex}.account-action-buttons button,.account-callout button{border-radius:10px;min-height:44px;padding:10px 16px;font-size:15px}.account-action-buttons button{color:light-dark(#315d42,#95c4a5);background:var(--panel)}.account-learning-actions>p{color:light-dark(#54664f,#96aa91);margin-top:10px;font-size:14px;line-height:1.7}.account-callout{border:1px solid var(--edge);border-radius:var(--radius);background:var(--surface-subtle);margin:24px 0;padding:20px 24px}.account-callout h2{font-size:var(--fs-h3);font-weight:600;line-height:1.4}.account-callout p{font-size:var(--fs-small);color:var(--muted);line-height:var(--lh-body);max-width:65ch;margin:6px 0 14px}.account-callout .text-button{margin:12px 0 0 18px;display:inline-block}.account-saved-section{margin:22px 0 30px}.account-section-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;margin-bottom:12px;display:flex}.account-section-heading h2{font-size:15px;font-weight:600}.account-section-heading h2 span{color:var(--muted);font-weight:400}.account-section-tools{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.account-section-tools .search-field{min-width:240px}.account-note-editor .text-button,.account-section-tools .text-button,.saved-item-meta .text-button,.saved-item-unsave{min-height:36px;color:var(--accent);border-radius:8px;padding:6px 8px;font-size:12px}.saved-item-unsave{color:var(--muted)}@media (hover:hover){.account-note-editor .text-button:hover,.account-section-tools .text-button:hover,.saved-item-meta .text-button:hover,.saved-item-unsave:hover{background:var(--soft)}}.account-saved-card{border:1px solid var(--edge);background:var(--panel);border-radius:12px;gap:8px;min-width:0;margin-top:8px;padding:16px 20px;display:grid}.saved-item-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.saved-item-head h3{overflow-wrap:anywhere;flex:1;min-width:0;font-size:15px;font-weight:600;line-height:1.5}.saved-item-head .saved-item-unsave{flex:none;margin:-6px -8px -6px 0}.account-saved-text{min-width:0;font-family:var(--font-serif);white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink);flex:1;margin:0;font-size:19px;line-height:1.45}.saved-item-lesson .account-saved-text{font-family:var(--font-ui);margin-top:10px;font-size:15px;line-height:1.8}.account-translation{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted);margin:0;font-size:13px;line-height:1.7}.saved-item-lesson summary{cursor:pointer;color:var(--accent);align-items:center;gap:6px;min-height:36px;font-size:12px;display:flex}.saved-item-lesson summary:before{content:"▸";font-size:11px}.saved-item-lesson[open] summary:before{content:"▾"}.saved-item-lesson .account-translation{margin-top:8px}.account-note-editor{flex-wrap:wrap;align-items:flex-start;gap:6px;display:flex}.account-note-editor textarea{width:100%;min-width:0;font:inherit;color:var(--ink);resize:none;field-sizing:content;background:0 0;border:1px solid #0000;border-left:2px solid light-dark(#d5dfca,#303727);border-radius:0 8px 8px 0;flex:1;min-height:36px;padding:7px 10px;font-size:13px;line-height:1.6;overflow:hidden}.account-note-editor textarea::placeholder{color:light-dark(#a0a993,#515945)}.account-note-editor textarea:focus{border-color:var(--edge);border-left-color:var(--accent);background:var(--panel)}.account-note-editor .text-button:disabled{visibility:hidden}.account-note-editor .account-note-conflict{flex-basis:100%}.saved-item-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:2px 10px;font-size:12px;display:flex}.saved-item-meta a{color:var(--accent);text-underline-offset:3px;align-items:center;min-height:36px;text-decoration:underline;display:inline-flex}.account-note-conflict{background:light-dark(#fbf7ec,#27241c);border:1px solid light-dark(#d8c9a4,#443b27);border-radius:12px;gap:12px;padding:16px;font-size:14px;display:grid}.account-note-conflict>p{margin:0;line-height:1.7}.account-note-version{background:var(--panel);border:1px solid var(--edge);border-radius:10px;gap:6px;padding:12px;display:grid}.account-note-origin{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:12px}.account-note-text{white-space:pre-wrap;color:var(--ink);margin:0;line-height:1.7}.account-note-version button{justify-self:start}.account-empty{color:var(--muted);padding:12px 0;font-size:13px;line-height:1.8}.account-empty a{color:var(--accent);text-decoration:underline}.account-review-card{margin:18px 0}.account-error,.account-learning-actions .account-error{color:light-dark(#a34532,#de7a65)}.account-alert{color:light-dark(#7c452c,#e0a185);background:light-dark(#fff3e7,#2c231a);padding:14px 24px;font-size:15px}.account-alert button{margin-left:12px;padding:8px}.account-user{text-overflow:ellipsis;white-space:nowrap;max-width:180px;color:var(--ink);align-items:center;gap:6px;font-size:14px;display:inline-flex;overflow:hidden}.account-user:hover{color:var(--accent)}.account-user svg{color:var(--muted);flex:none}@media (max-width:600px){.account-saved-card{padding:14px}.account-callout{padding:20px 16px}.account-section-tools{width:100%}.account-section-tools .search-field{flex:1;min-width:0}.account-note-editor .text-button,.account-section-tools .text-button,.saved-item-meta .text-button,.saved-item-meta a,.saved-item-unsave{min-height:44px}.account-saved-text{font-size:17px}.account-learning-actions{padding:16px}.account-action-buttons button{flex:auto}.account-callout .text-button{margin-left:0}.account-section-heading h2{font-size:15px}.account-review-ratings button{flex:auto}.account-user{max-width:90px}.topbar-actions{gap:10px}.topbar-actions .text-button{white-space:nowrap}}.legal-page{max-width:1060px;font-size:18px;line-height:1.75}.legal-page h1{font-size:clamp(32px,4vw,48px);line-height:1.2}.legal-page h2{margin-top:28px;font-size:25px}.legal-page h3{margin-top:24px;font-size:21px}.legal-page p{margin-block:14px}.legal-links a,.legal-page a,.private-upload a{text-underline-offset:4px;text-decoration:underline}.privacy-panel{background:light-dark(#fff,#1c2520);border:1px solid light-dark(#d4dece,#30372b);border-radius:18px;min-width:0;margin-block:24px;padding:24px}.privacy-panel fieldset{border:0;min-width:0;padding:0}.privacy-panel legend{font-weight:700}.privacy-panel label:not(.consent-check){gap:8px;margin-block:14px;display:grid}.privacy-panel input:not([type=checkbox]),.privacy-panel textarea{color:light-dark(#263e31,#cbe8d7);width:100%;max-width:100%;font:inherit;background:light-dark(#fff,#1c2520);border:1px solid light-dark(#bccdbb,#344233);border-radius:10px;padding:12px}.privacy-panel .select,.privacy-panel select{width:100%}.privacy-panel .button{white-space:normal;margin:8px 12px 8px 0}.auth-form .consent-check,.consent-check{color:light-dark(#304c3a,#b5d5bf);align-items:flex-start;gap:12px;min-height:44px;margin-block:18px;font-size:17px;line-height:1.6;display:flex}.auth-form .consent-check input[type=checkbox],.consent-check input[type=checkbox]{accent-color:light-dark(#35694b,#81b795);flex:0 0 22px;width:22px;height:22px;min-height:22px;margin-top:3px}.privacy-notice{color:light-dark(#304c3a,#b5d5bf);background:light-dark(#edf3e7,#252920);border-left:4px solid light-dark(#60804e,#729360);border-radius:8px;padding:18px}.legal-links{flex-wrap:wrap;gap:12px 24px;margin-block:28px;font-size:16px;display:flex}.legal-links a{min-height:44px;font-size:inherit;color:inherit;border-radius:4px;align-items:center;padding:4px 0;display:inline-flex}.private-file{overflow-wrap:anywhere;border-top:1px solid light-dark(#d4dece,#30372b);flex-wrap:wrap;align-items:center;gap:12px;padding-block:16px;display:flex}.private-file>div{flex:280px}.private-upload{grid-column:1/-1;width:100%;font-size:17px}.private-upload .privacy-panel{max-width:850px}@media (max-width:600px){.privacy-panel{padding:18px}.legal-page{font-size:17px}}.admin-console .button,.legal-page .button,.privacy-center .button,.privacy-panel .button,.private-upload .button{color:light-dark(#304c3a,#b5d5bf);min-height:48px;font:inherit;cursor:pointer;background:light-dark(#f4f7f0,#232520);border:1px solid light-dark(#bdcdbb,#354233);border-radius:12px;justify-content:center;align-items:center;padding:12px 18px;font-weight:600;display:inline-flex}.admin-console .button.primary,.legal-page .button.primary,.privacy-center .button.primary,.private-upload .button.primary{color:light-dark(#fff,#1c2520);background:light-dark(#35694b,#81b795);border-color:light-dark(#35694b,#81b795)}.admin-console .button:disabled,.legal-page .button:disabled,.privacy-center .button:disabled,.private-upload .button:disabled{opacity:.5;cursor:not-allowed}.admin-console .button:focus-visible,.legal-page .button:focus-visible,.privacy-center .button:focus-visible,.privacy-panel .button:focus-visible,.private-upload .button:focus-visible{outline-offset:3px;outline:3px solid light-dark(#527f40,#6d9c5b)}.auth-card-register{width:min(100%,540px)}.required-mark{color:light-dark(#a34532,#de7a65);margin-left:3px;font-weight:600}.auth-form .registration-hint{color:light-dark(#657460,#859580);margin:0;font-size:14px;line-height:1.6}.registration-roles{border:0;grid-template-columns:1fr 1fr;gap:10px;min-width:0;padding:0;display:grid}.registration-roles legend{color:light-dark(#304c3a,#b5d5bf);margin-bottom:10px;font-size:14px;font-weight:600}.auth-form .registration-roles label{border:1px solid var(--edge);cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:12px;font-size:14px;display:flex}.auth-form .registration-roles label:has(input:checked){background:light-dark(#edf3e7,#252920);border-color:light-dark(#60804e,#729360)}.auth-form .registration-roles input{accent-color:light-dark(#35694b,#81b795);flex:0 0 18px;width:18px;height:18px;min-height:18px;padding:0}.registration-roles small{color:light-dark(#657460,#859580);margin-top:3px;font-size:12px;display:block}.auth-card-register .consent-check{gap:10px;margin:0;font-size:14px;line-height:1.6}.auth-card-register .privacy-notice{margin:0;padding:12px 14px;font-size:13px;line-height:1.6}.registration-roles input:focus-visible{outline-offset:3px;outline:2px solid light-dark(#35694b,#81b795)}@media (max-width:480px){.auth-card-register{padding:24px 20px}.registration-roles{grid-template-columns:1fr}}.auth-card-login{border-radius:20px;width:min(100%,460px);padding:36px;box-shadow:0 12px 40px #29362008}.auth-card-login h1{margin-top:12px;font-size:34px;line-height:1.2}.auth-card-login .auth-intro{margin-top:12px;font-size:15px;line-height:1.65}.auth-card-login .auth-form{gap:20px;margin-top:28px}.auth-card-login .auth-form label{color:light-dark(#304c3a,#b5d5bf);font-size:14px;font-weight:600}.auth-card-login .auth-form input{border-radius:10px;font-size:16px}.auth-form input::placeholder{color:light-dark(#84907f,#677262)}.auth-password-field{gap:7px;display:grid}.auth-password-input{position:relative}.auth-form .auth-password-input input{padding-right:68px}.auth-password-input button{color:light-dark(#42614a,#96b89e);min-width:54px;min-height:44px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:8px;font-size:13px;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.auth-password-input button:hover{background:light-dark(#edf3e7,#252920)}.auth-card-login .question-submit{border-radius:10px;width:100%;min-height:50px;margin:4px 0 0;font-size:16px}.auth-card .auth-switch{margin-top:24px;font-size:14px}.auth-forgot{justify-content:center;align-items:center;margin-top:-4px;font-size:14px;display:flex}.auth-forgot a{color:light-dark(#527550,#7ca17a);text-underline-offset:3px;padding:8px 4px;text-decoration:underline}.auth-intro b{color:var(--ink)}.auth-card .guest-continue{border:0;border-top:1px solid var(--edge);border-radius:0;justify-content:center;align-items:center;gap:12px;margin-top:24px;padding:18px 0 0;font-size:14px;display:flex}.auth-card .guest-continue:hover{text-underline-offset:4px;background:0 0;text-decoration:underline}.auth-legal-footer{color:light-dark(#657460,#859580);flex-wrap:wrap;justify-content:center;align-items:center;gap:2px 8px;margin-top:20px;font-size:12px;display:flex}.auth-legal-footer a{min-height:44px;font-size:inherit;color:inherit;border-radius:4px;align-items:center;padding:4px 0;display:inline-flex}.auth-legal-footer a:hover{text-underline-offset:4px;text-decoration:underline}.auth-card a:focus-visible,.auth-password-input button:focus-visible{outline-offset:3px;outline:2px solid light-dark(#35694b,#81b795)}@media (max-width:480px){.auth-shell .auth-page{padding:28px 16px}.auth-card-login{padding:28px 22px}.auth-card-login h1{font-size:30px}.auth-header{padding:20px}.auth-legal-footer{grid-template-columns:repeat(2,auto);justify-content:center;justify-items:center;gap:0 20px;display:grid}.auth-legal-footer span{display:none}}@media (min-width:901px){.sidebar{overscroll-behavior:contain;overflow-y:auto}.sidebar>*{flex-shrink:0}}.privacy-hero p{color:light-dark(#526453,#98ab99);max-width:64ch;font-size:16px;line-height:1.7}.privacy-promises{flex-wrap:wrap;gap:8px;margin:20px 0 0;padding:0;list-style:none;display:flex}.privacy-promises li{color:light-dark(#36553b,#a7caac);background:light-dark(#f0f5e9,#24281f);border:1px solid light-dark(#dce6d5,#2c3326);border-radius:999px;align-items:center;gap:8px;padding:7px 13px;font-size:13px;display:inline-flex}.privacy-promises li:before{content:"";background:light-dark(#6f9860,#547c45);border-radius:50%;width:6px;height:6px}.privacy-hero+.privacy-notice{margin-top:24px;font-size:15px;line-height:1.6}.privacy-layout{grid-template-columns:minmax(0,1fr) minmax(280px,340px);align-items:start;gap:18px 24px;margin-top:28px;display:grid}.privacy-main{gap:18px;min-width:0;display:grid}.privacy-card{border:1px solid var(--edge);border-radius:var(--radius);background:light-dark(#fff,#1c2520);min-width:0;margin:0;padding:24px 26px}.privacy-card h2,.privacy-card>legend{color:light-dark(#25372e,#e4ebe3);font-size:19px;font-weight:600;line-height:1.35}.privacy-card>legend{float:left;width:100%;margin-bottom:14px;padding:0}.privacy-card>legend+*{clear:both}.privacy-card h3{color:light-dark(#304c3a,#b5d5bf);font-size:16px;font-weight:600}.privacy-card a{text-underline-offset:3px;text-decoration:underline}.privacy-card-lead{color:light-dark(#5d6d5f,#8c9d8e);max-width:68ch;margin-top:6px;font-size:14px;line-height:1.7}.privacy-hint{color:light-dark(#657460,#859580);margin-top:10px;font-size:13px;line-height:1.65}.privacy-card label:not(.consent-check){color:light-dark(#304c3a,#b5d5bf);gap:8px;margin-top:16px;font-size:14px;font-weight:600;display:grid}.privacy-card input:not([type=checkbox]){color:light-dark(#263e31,#cbe8d7);width:100%;max-width:440px;min-height:46px;font:inherit;background:light-dark(#fff,#1c2520);border:1px solid light-dark(#cfdacb,#313a2e);border-radius:10px;padding:10px 12px;font-size:15px;font-weight:400}.privacy-card .select,.privacy-card select{width:100%;max-width:440px}.privacy-card input:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-color:light-dark(#7fa070,#506f41)}.privacy-card .consent-check{gap:10px;margin:12px 0 0;font-size:14px;line-height:1.6}.privacy-card .consent-check input[type=checkbox]{flex-basis:20px;width:20px;height:20px;min-height:20px;margin-top:2px}.privacy-card .button{gap:8px;margin-top:18px;font-size:15px}.privacy-card .button.danger{color:light-dark(#fff,#1c2520);background:light-dark(#b24d48,#e0837d);border-color:light-dark(#b24d48,#e0837d)}.privacy-card .privacy-notice{margin:14px 0 0;padding:12px 14px;font-size:13px;line-height:1.6}.privacy-facts{margin:14px 0 0}.privacy-facts>div{border-top:1px solid var(--edge);gap:3px;padding:11px 0;display:grid}.privacy-facts dt{color:light-dark(#6b7a6d,#7d8c7f);font-size:12px}.privacy-facts dd{color:light-dark(#304c3a,#b5d5bf);overflow-wrap:anywhere;gap:2px;margin:0;font-size:14px;font-weight:600;line-height:1.5;display:grid}.privacy-card a.privacy-link{min-height:44px;color:var(--accent);align-items:center;gap:6px;margin-top:14px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.privacy-card a.privacy-link:hover{text-decoration:underline}.privacy-signin{background:linear-gradient(135deg,light-dark(#eef4e8,#242920),light-dark(#f9fbf6,#21231f));border-color:light-dark(#dce6d5,#2c3326);padding:32px}.privacy-signin h2{margin-top:10px;font-family:Georgia,Times New Roman,serif;font-size:28px;font-weight:400;line-height:1.3}.privacy-controls{gap:10px;margin:18px 0 0;padding:0;list-style:none;display:grid}.privacy-controls li{color:light-dark(#304c3a,#b5d5bf);align-items:center;gap:10px;font-size:15px;display:flex}.privacy-controls svg{color:light-dark(#4f7a52,#729e74);flex:none}.privacy-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px;display:flex}.privacy-card .privacy-actions a{min-height:46px;padding:12px 22px;font-size:15px;text-decoration:none}.privacy-subsection{border-top:1px solid var(--edge);margin-top:24px;padding-top:20px}.privacy-inline-actions{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:14px;display:flex}.privacy-inline-actions>label,.privacy-inline-actions>select{flex:260px;max-width:440px}.privacy-card .privacy-inline-actions .button,.privacy-card .privacy-inline-actions>label{margin-top:0}.privacy-files{margin:14px 0 0;padding:0;list-style:none}.privacy-card .private-file{border-top:1px solid var(--edge);padding-block:14px}.privacy-card .private-file p{color:light-dark(#657460,#859580);margin-top:4px;font-size:13px}.privacy-card .private-file .button{min-height:40px;margin-top:0;padding:8px 14px;font-size:14px}.privacy-empty{color:light-dark(#657460,#859580);border:1px dashed light-dark(#d4dece,#30372b);border-radius:12px;align-items:center;gap:10px;margin-top:16px;padding:16px;font-size:14px;display:flex}.privacy-danger{background:light-dark(#fffbf9,#23201f);border-color:light-dark(#efd9d3,#3f2e29)}.privacy-danger h2{color:light-dark(#8f3b2f,#ed8f80)}.privacy-message{color:light-dark(#2f5e3f,#93c5a1);background:light-dark(#eef6e9,#23281f);border:1px solid light-dark(#cfe2c6,#2c3826);border-radius:12px;align-items:center;gap:10px;padding:12px 16px;font-size:15px;display:flex}.privacy-footer{border-top:1px solid var(--edge);margin-top:32px;padding-top:18px}.privacy-footer .legal-links{color:light-dark(#657460,#859580);gap:4px 22px;margin:0;font-size:13px}.privacy-footer .legal-links a{text-decoration:none}.privacy-footer .legal-links a:hover{text-underline-offset:4px;text-decoration:underline}@media (max-width:1100px){.privacy-layout{grid-template-columns:minmax(0,1fr)}}@media (max-width:600px){.privacy-card{padding:20px 16px}.privacy-signin{padding:24px 18px}.privacy-signin h2{font-size:24px}.privacy-actions>a{flex:100%;justify-content:center}.privacy-inline-actions .button{flex:100%}}.pending-save-notice{z-index:40;color:light-dark(#6a4630,#dbb098);background:light-dark(#fffaf4,#25211d);border:1px solid light-dark(#ead7c3,#403121);border-radius:16px;width:min(420px,100vw - 32px);padding:16px 18px;position:fixed;bottom:24px;right:24px;box-shadow:0 18px 50px #3b2a1a1f}.pending-save-notice strong{color:light-dark(#4a2e1d,#ffdbc6);overflow-wrap:anywhere;font-size:15px;line-height:1.45;display:block}.pending-save-notice p{margin-top:4px;font-size:14px;line-height:1.6}.pending-save-notice.is-saved{background:light-dark(#f3f9ef,#21261e);border-color:light-dark(#cfe2c6,#2c3826)}.pending-save-notice.is-saved strong{color:light-dark(#2f5e3f,#93c5a1)}.pending-save-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.pending-save-actions .primary-action,.pending-save-actions .secondary-action{min-height:40px;padding:9px 14px;font-size:14px}.pending-save-actions .text-button{color:light-dark(#7a5a45,#bb9881);font-size:14px}@media (max-width:600px){.pending-save-notice{bottom:16px;right:16px}.text-button{align-items:center;display:inline-flex}.back-link,.bound-buttons button,.edit-row-actions button,.editor-history button,.mark-button,.row-number-button,.side-block.danger button,.text-button{min-height:44px}.icon-button{width:44px;height:44px}.lesson-listen .listen-options .select,.lesson-listen .listen-options select{max-width:none}}.lesson-listen .listen-timeline input,.video-transport .listen-timeline input{background:0 0}.lesson-listen .listen-timeline input::-webkit-slider-runnable-track,.video-transport .listen-timeline input::-webkit-slider-runnable-track{background:linear-gradient(to right,light-dark(#376b4e,#6fa985) var(--listen-progress,0),light-dark(#dce5d8,#2c3329) 0);border-radius:5px;height:5px}.lesson-listen .listen-timeline input::-moz-range-track,.video-transport .listen-timeline input::-moz-range-track{background:linear-gradient(to right,light-dark(#376b4e,#6fa985) var(--listen-progress,0),light-dark(#dce5d8,#2c3329) 0);border-radius:5px;height:5px}.lesson-listen .listen-timeline input::-webkit-slider-thumb,.video-transport .listen-timeline input::-webkit-slider-thumb{margin-top:-8px}@media (max-width:600px){.lesson-listen .listen-timeline input,.video-transport .listen-timeline input{height:44px;margin:0 0 4px;padding-block:19px}}#topic-results{scroll-margin-top:24px}.lesson-audio-label,.topic-audio-note{color:light-dark(#8a5a2b,#c28e5f);align-items:center;gap:6px;font-size:12px;font-weight:400;display:flex}.topic-audio-note{border-top:1px solid light-dark(#edf1e8,#272a23);margin-top:6px;padding-top:10px}.catalog-page .lesson-catalog-item .lesson-audio-label{color:light-dark(#8a5a2b,#c28e5f);margin-top:8px;font-size:11px}.reading-practice.with-listening{background:light-dark(#f3f6ee,#242620);padding:0;overflow:hidden}.with-listening .reading-body{padding:25px 26px}.study-step{color:light-dark(#355b3f,#9bc5a4);align-items:center;gap:10px;font-size:14px;display:flex}.study-step>span{font-variant-numeric:tabular-nums;color:light-dark(#4f6d47,#89a980);border:1px solid light-dark(#c6d6be,#323e2b);border-radius:50%;place-items:center;width:25px;height:25px;font-size:10px;display:grid}.study-step strong{font-weight:600}.with-listening .reading-caption{letter-spacing:1.1px;margin-top:20px;margin-bottom:12px;font-size:10px}.with-listening .reading-caption span:last-child{font-size:12px}.lesson-listen{background:var(--panel);border-bottom:1px solid light-dark(#dce5d5,#2c3327);padding:24px 26px}.listen-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.listen-language{color:light-dark(#687768,#819081);font-size:11px}.listen-description{color:light-dark(#5f705e,#899b88);margin-top:10px;font-size:13px;line-height:1.65}.listen-transport{align-items:center;gap:16px;margin-top:23px;display:flex}.listen-play{color:light-dark(#fff,#1c2520);background:light-dark(#376b4e,#6fa985);border:1px solid light-dark(#376b4e,#6fa985);border-radius:50%;flex:none;place-items:center;width:54px;height:54px;display:grid;box-shadow:0 4px 10px #376b4e15}.listen-play:hover:not(:disabled){background:light-dark(#28563b,#9ecfaf)}.listen-timeline{flex:1;min-width:0}.listen-time{color:light-dark(#526750,#93aa91);font-variant-numeric:tabular-nums;justify-content:space-between;gap:8px;font-size:11px;display:flex}.listen-time>span:last-child{white-space:nowrap}.listen-time i{color:light-dark(#a6b09e,#4b5343);margin:0 3px;font-style:normal}.listen-timeline input{appearance:none;cursor:pointer;accent-color:light-dark(#376b4e,#6fa985);border-radius:5px;width:100%;height:5px;margin:18px 0 12px;display:block}.listen-timeline input::-webkit-slider-thumb{appearance:none;background:light-dark(#376b4e,#6fa985);border:3px solid light-dark(#fff,#1c2520);border-radius:50%;width:15px;height:15px;box-shadow:0 0 0 1px #376b4e}.listen-timeline input::-moz-range-thumb{background:light-dark(#376b4e,#6fa985);border:3px solid light-dark(#fff,#1c2520);border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 1px #376b4e}.listen-timeline input:disabled{cursor:default;opacity:.5}.listen-options{flex-wrap:wrap;align-items:center;gap:6px;margin-top:17px;display:flex}.listen-options button:not(.select-trigger),.listen-options label{color:light-dark(#526750,#93aa91);background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;min-height:40px;padding:7px 10px;font-size:12px;display:inline-flex}.listen-options label{margin-left:auto;padding-right:0}.listen-options .select,.listen-options select{max-width:150px}.listen-options .select,.listen-options .select-trigger{width:auto}.listen-options button[aria-pressed=true]{color:light-dark(#2b5738,#9ecea9);background:light-dark(#eaf1e5,#262b22);border-color:light-dark(#d3e0cb,#2e3827)}.listen-options button:hover:not(:disabled){background:light-dark(#f0f5eb,#242820)}.listen-error{color:light-dark(#9e403b,#e37e76);margin-top:12px;font-size:13px;line-height:1.6}.listen-error button{color:light-dark(#9e403b,#e37e76);min-height:36px;padding:5px 8px}.with-listening .reading-note{color:light-dark(#607257,#879a7e);font-size:12px}.catalog-page .account-learning-actions{margin-top:22px}@media (max-width:1150px){.listen-language{font-size:10px}}@media (max-width:600px){.lesson-listen,.with-listening .reading-body{padding:20px 16px}.listen-heading{gap:8px}.listen-language{margin-left:35px}.listen-transport{gap:12px}.listen-play{width:48px;height:48px}.listen-time{flex-wrap:wrap;font-size:10px}.listen-options{gap:2px}.listen-options button:not(.select-trigger),.listen-options label{min-height:44px;padding:7px 6px;font-size:11px}.study-step{font-size:13px}}.lesson-navigation{border-top:1px solid var(--edge);justify-content:space-between;align-items:center;gap:8px;margin-top:24px;padding-top:20px;display:flex}.lesson-navigation button{align-items:center;gap:8px;min-height:44px;padding:10px 12px;font-size:13px;display:flex}.lesson-navigation>span{color:light-dark(#657460,#859580);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px}@media (max-width:380px){.lesson-navigation button{gap:5px;padding:10px 8px;font-size:12px}.lesson-navigation>span{font-size:11px}}:root{--scroll-thumb:light-dark(#b6c3af,#4a5a4f);--scroll-thumb-hover:light-dark(#8a9f80,#66796b)}*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}@supports selector(::-webkit-scrollbar){*{scrollbar-width:auto;scrollbar-color:auto}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--scroll-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:999px;min-height:32px}::-webkit-scrollbar-thumb:hover{background-color:var(--scroll-thumb-hover)}::-webkit-scrollbar-button{display:none}}@media (forced-colors:active){*{scrollbar-width:auto;scrollbar-color:auto}::-webkit-scrollbar-thumb{background:buttontext}.button,.field-input,.play-button,.primary-action,.record-button,.secondary-action,.select-trigger,.text-button,button,input,textarea{border:1px solid buttontext}:focus-visible{outline-offset:2px;outline:2px solid highlight}.filter-chip.selected,.is-selected,.level-chip.selected,.nav-active,.review-mode button.is-selected,.selected,.tab-current,[aria-checked=true],[aria-current=page],[aria-pressed=true],[aria-selected=true]{outline-offset:-3px;outline:3px solid highlight}.admin-bars-track i,.admin-calendar-day.level-1,.admin-calendar-day.level-2,.admin-calendar-day.level-3,.admin-calendar-day.level-4,.admin-score i:after,.mic-meter i,.play-progress-track i,.progress-track i{forced-color-adjust:none;background:highlight}.admin-bars-track,.admin-calendar-day,.admin-score i,.mic-meter,.play-progress-track,.progress-track{border:1px solid buttontext}.admin-chart polyline{stroke:canvastext}.admin-chart circle,.admin-chart-legend i,.admin-chart-tip i{fill:canvastext;forced-color-adjust:none;background:canvastext}.admin-chart-grid{stroke:graytext}.admin-chart-tip,.admin-delta,.admin-status,.admin-tip:after,.new-badge,.review-progress-tally i,.select-menu,.toast{border:1px solid canvastext}.skip-link:focus{border:2px solid highlight}}.review-dashboard .page-heading{margin-bottom:24px}.review-overview{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:24px 0;display:grid}.review-overview button{text-align:left;background:var(--panel);border-radius:17px;gap:9px;padding:22px;display:grid}.review-overview button.selected{background:light-dark(#eaf1e5,#262b22);border-color:light-dark(#8ca981,#49633e)}.review-overview span{color:light-dark(#456148,#98b79b);font-size:14px}.review-overview strong{font-family:var(--font-serif);color:light-dark(#2d5138,#aad2b4);font-size:40px;font-weight:400;line-height:1.1}.review-overview small{color:light-dark(#657460,#859580);font-size:12px;line-height:1.6}.review-week{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;padding:4px;display:grid}.review-week button{color:var(--muted);background:0 0;border:0;border-radius:8px;justify-items:center;gap:2px;padding:8px 4px;display:grid}.review-week button:hover:not(:disabled){background:var(--surface-subtle)}.review-week button.selected{background:var(--soft);color:var(--accent)}.review-week small,.review-week span{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.04em}.review-week b{color:var(--ink);font-variant-numeric:tabular-nums;font-size:17px;font-weight:600;line-height:1.3}.review-week button.selected b{color:var(--accent)}.review-week small{text-transform:none;letter-spacing:0;color:var(--faint)}.review-week button.has-items small{color:var(--accent);font-weight:600}.review-agenda-heading{font-size:var(--fs-h3);margin:24px 0 10px;font-weight:600}.review-agenda-heading button{min-height:44px;padding:10px 12px;font-size:13px}.review-agenda{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);margin:0;padding:0;list-style:none;overflow:hidden}.review-agenda li{justify-content:space-between;align-items:center;gap:20px;padding:16px 20px;display:flex}.review-agenda li+li{border-top:1px solid var(--edge)}.review-agenda li>div{min-width:0}.review-agenda h3{font-size:var(--fs-body);margin:4px 0;font-weight:600;line-height:1.5}.review-agenda p{font-size:var(--fs-small);color:var(--muted);-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;line-height:1.65;display:-webkit-box;overflow:hidden}.review-agenda small{font-size:var(--fs-caption);color:var(--faint);margin-top:6px;display:block}.review-agenda a{min-height:var(--control-sm);border:1px solid var(--edge);background:var(--panel);font-size:var(--fs-small);color:var(--accent);border-radius:8px;flex:none;justify-content:center;align-items:center;gap:6px;padding:6px 12px;font-weight:500;display:inline-flex}.review-agenda a:hover{background:var(--soft)}.review-due-label{font-size:var(--fs-caption);color:var(--accent)}.review-due-label.overdue{color:var(--warning)}.review-agenda-empty{background:var(--panel);border-radius:var(--radius);border:1px dashed var(--edge-strong);justify-items:start;gap:8px;padding:24px;display:grid}.review-agenda-empty svg{color:var(--accent)}.review-agenda-empty h3{font-family:var(--font-serif);font-size:20px;font-weight:400}.review-agenda-empty p,.review-agenda-note{font-size:var(--fs-small);color:var(--muted);line-height:1.6}.review-agenda-empty a{min-height:40px;color:var(--accent);align-items:center;gap:8px;font-weight:500;display:inline-flex}.review-agenda-note{color:var(--faint);font-size:var(--fs-caption);margin-top:14px}.review-load-more{min-height:var(--control);margin:14px auto;padding:8px 16px;display:block}.review-reminder{background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius-lg);padding:24px}.review-reminder-heading{align-items:flex-start;gap:13px;display:flex}.review-reminder-heading>svg{color:light-dark(#63815a,#718f68);flex:none;margin-top:3px}.review-reminder-heading>div{flex:1}.review-reminder h2{font-size:18px;line-height:1.5}.review-reminder p{color:light-dark(#60705a,#8a9b84);margin-top:8px;font-size:13px;line-height:1.7}.review-reminder-heading>span{white-space:nowrap;background:light-dark(#edf3e7,#252920);border-radius:7px;padding:6px 9px;font-size:11px}.review-reminder-controls{flex-wrap:wrap;align-items:end;gap:12px;margin-top:20px;display:flex}.review-reminder-controls label{color:light-dark(#536b4b,#8ea885);gap:8px;font-size:12px;display:grid}.review-reminder-controls input{background:var(--panel);max-width:100%;min-height:44px;color:var(--ink);border:1px solid light-dark(#dce5d6,#2c3328);border-radius:9px;padding:9px 12px}.review-reminder-controls button{min-height:44px;padding:10px 14px}.review-reminder .review-reminder-hint{color:light-dark(#6b7866,#818f7c);font-size:12px}.review-nav-count{text-align:center;color:light-dark(#345b40,#9bc5a6);background:light-dark(#dce8d4,#2a3323);border-radius:8px;min-width:23px;margin-left:auto;padding:3px 6px;font-size:11px}.review-nav-count+.nav-dot{margin-left:0}#account-review,#device-review{scroll-margin-top:24px}.review-manage>summary{cursor:pointer;min-height:44px;padding:16px 0;font-size:14px}@media (max-width:650px){.review-overview{gap:8px}.review-overview button{padding:14px 10px}.review-overview span{font-size:12px}.review-overview strong{font-size:32px}.review-overview small{font-size:10px}.review-week{gap:2px}.review-week button{padding:8px 2px}.review-week small,.review-week span{font-size:10px}.review-week b{font-size:15px}.review-agenda-heading{align-items:start}.review-agenda-heading h2{font-size:18px}.review-agenda li{flex-wrap:wrap;align-items:start;gap:12px;padding:17px 14px}.review-agenda li>div{width:100%}.review-agenda a{margin-left:auto}.review-reminder{padding:20px 16px}.review-reminder-heading{flex-wrap:wrap}.review-reminder-heading>span{margin-left:35px}.review-reminder-controls label{width:100%;min-width:0}.review-reminder-controls .select,.review-reminder-controls input,.review-reminder-controls select{width:100%}.review-reminder-controls button{flex:1;justify-content:center}}.saved-review-link{color:light-dark(#376b4e,#6fa985);text-underline-offset:4px;align-items:center;min-height:44px;font-size:14px;text-decoration:underline;display:inline-flex}.confirm-dialog{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);width:calc(100vw - 32px);max-width:460px;max-height:calc(100vh - 48px);color:var(--ink);padding:0}.confirm-dialog::backdrop{background:#25372e59}.confirm-dialog form{padding:26px}.confirm-dialog h2{color:light-dark(#25372e,#e4ebe3);font-size:20px;font-weight:600;line-height:1.35}.confirm-dialog.is-danger h2{color:light-dark(#8f3b2f,#ed8f80)}.confirm-dialog-lead{color:light-dark(#5d6d5f,#8c9d8e);margin-top:8px;font-size:14px;line-height:1.7}.confirm-dialog .consent-check{gap:10px;margin:14px 0 0;font-size:14px;line-height:1.6}.confirm-dialog .consent-check input[type=checkbox]{flex-basis:20px;width:20px;height:20px;min-height:20px;margin-top:2px}.confirm-dialog-password{color:light-dark(#304c3a,#b5d5bf);gap:8px;margin-top:20px;font-size:14px;font-weight:600;display:grid}.confirm-dialog-password input{background:var(--panel);color:light-dark(#263e31,#cbe8d7);width:100%;min-height:46px;font:inherit;border:1px solid light-dark(#cfdacb,#313a2e);border-radius:10px;padding:10px 12px;font-size:16px;font-weight:400}.confirm-dialog-password input:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-color:light-dark(#7fa070,#506f41)}.confirm-dialog-hint{color:light-dark(#657460,#859580);margin-top:8px;font-size:13px;line-height:1.6}.confirm-dialog .error-banner{margin-top:14px}.confirm-dialog-actions{flex-wrap:wrap;gap:10px;margin-top:22px;display:flex}.confirm-dialog-actions .button{flex:140px;min-height:48px;margin:0;font-size:15px}.permission-list{gap:12px;margin-top:18px;display:grid}.permission-row{border:1px solid var(--edge);border-radius:var(--radius);background:light-dark(#f9faf7,#202924);flex-wrap:wrap;align-items:center;gap:16px;padding:16px 18px;display:flex}.permission-row.is-on{background:light-dark(#f2f8ef,#222620);border-color:light-dark(#c6dcc0,#2e3c2a)}.permission-copy{flex:260px;min-width:0}.permission-copy strong{color:light-dark(#25372e,#e4ebe3);font-size:15px;font-weight:600;display:block}.permission-copy p{color:light-dark(#657460,#859580);margin-top:5px;font-size:13px;line-height:1.65}.permission-switch{background:0 0;border:0;flex:none;align-items:center;gap:10px;min-height:44px;padding:6px 8px;display:inline-flex}.permission-switch-track{background:light-dark(#ccd5c8,#343b31);border-radius:999px;flex:none;width:50px;height:28px;transition:background .15s;display:block;position:relative}.permission-switch-knob{background:var(--panel);border-radius:50%;width:22px;height:22px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #25372e33}.permission-switch[aria-checked=true] .permission-switch-track{background:var(--accent)}.permission-switch[aria-checked=true] .permission-switch-knob{transform:translate(22px)}.permission-switch-label{color:light-dark(#4a5f4f,#9db4a2);white-space:nowrap;font-size:13px;font-weight:600}.permission-switch:disabled{opacity:.55;cursor:not-allowed}.permission-switch:focus-visible{outline-offset:3px;border-radius:10px;outline:3px solid light-dark(#83a67b,#486941)}.permission-blocked{color:light-dark(#8a5a2b,#c28e5f);flex:100%;margin:0;font-size:13px;line-height:1.6}@media (prefers-reduced-motion:reduce){.permission-switch-knob,.permission-switch-track{transition:none}}@media (max-width:600px){.confirm-dialog form{padding:20px 18px}.permission-row{gap:12px;padding:14px 16px}.permission-switch{justify-content:space-between;width:100%}}.review-mode-choice{border:0;min-width:0;margin:0;padding:0}.review-mode-choice legend{color:light-dark(#536b4b,#8ea885);margin-bottom:8px;padding:0;font-size:12px}.review-mode-choice label{background:var(--panel);color:light-dark(#304c3a,#b5d5bf);cursor:pointer;border:1px solid light-dark(#dce5d6,#2c3328);border-radius:10px;align-items:center;gap:9px;min-height:44px;padding:8px 12px;font-size:13px;display:flex}.review-mode-choice label+label{margin-top:6px}.review-mode-choice label.selected{border-color:var(--accent);background:light-dark(#eff5eb,#242821)}.review-mode-choice label:has(input:disabled){opacity:.55;cursor:not-allowed}.review-mode-choice input{accent-color:light-dark(#35694b,#81b795);flex:none;width:18px;height:18px;min-height:18px;margin:0}.review-reminder .permission-switch{flex:none;margin-left:auto}.review-reminder .permission-blocked{margin-top:10px}@media (max-width:650px){.review-reminder .permission-switch{justify-content:space-between;width:100%;margin-left:0}}.admin-console .page-heading p{max-width:68ch;font-size:14px}.admin-attention{border-radius:var(--radius);background:var(--warning-soft);border:1px solid light-dark(#e6d8b8,#4a3f26);margin-top:24px;padding:18px 22px}.admin-attention.is-clear{border-color:var(--edge);background:var(--success-soft)}.admin-attention h2{font-size:var(--fs-h3);color:var(--warning);align-items:center;gap:9px;font-weight:600;display:flex}.admin-attention.is-clear h2{color:var(--success)}.admin-attention p{font-size:var(--fs-small);color:var(--muted);margin-top:8px;line-height:1.6}.admin-attention ul{gap:10px;margin:14px 0 0;padding:0;list-style:none;display:grid}.admin-attention li{background:var(--panel);border:1px solid light-dark(#e6dcc6,#3a3221);border-radius:12px;padding:12px 14px}.admin-attention li.admin-act{background:light-dark(#fff6f2,#28221f);border-color:light-dark(#e0c7bd,#49362e)}.admin-attention strong{color:light-dark(#2f4636,#c0dbc7);font-size:14px;font-weight:600;line-height:1.5;display:block}.admin-attention span{color:var(--muted);margin-top:5px;font-size:13px;line-height:1.65;display:block}.admin-grid{grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:18px;margin-top:22px;display:grid}.admin-grid .admin-card{margin-bottom:0}.admin-card{min-width:0}.admin-figures{grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:16px;margin-top:18px;display:grid}.admin-figures b.admin-alarm{color:light-dark(#a1443a,#df7b6e)}.admin-note{font-size:var(--fs-small);color:var(--muted);line-height:1.6}.admin-note,.admin-note+.admin-bars,.admin-note+.admin-chart,.admin-note+.admin-list,.admin-note+.admin-status-list,.admin-note+.admin-table-wrap{margin-top:14px}.admin-copies code,.admin-issued code,.admin-log code,.admin-note code{border:1px solid var(--edge);overflow-wrap:anywhere;background:light-dark(#f7f8f5,#151c18);border-radius:6px;padding:2px 6px;font-size:12px}.admin-tally{gap:6px;margin:16px 0 0;display:grid}.admin-tally>div{background:light-dark(#f9faf7,#202924);border-radius:10px;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 12px;display:flex}.admin-tally dt{color:light-dark(#5d6d5f,#8c9d8e);font-size:13px}.admin-tally dd{color:light-dark(#2f4636,#c0dbc7);font-variant-numeric:tabular-nums;margin:0;font-size:14px;font-weight:600}.admin-log{gap:8px;margin:18px 0 0;padding:0;list-style:none;display:grid}.admin-log li{border:1px solid var(--edge);background:light-dark(#f9faf7,#202924);border-radius:12px;flex-wrap:wrap;align-items:baseline;gap:6px 12px;padding:12px 14px;font-size:13px;line-height:1.6;display:flex}.admin-log strong{color:light-dark(#2f4636,#c0dbc7);font-weight:600}.admin-log span{color:var(--muted);flex:200px}.admin-log time{color:var(--muted);font-size:12px}.admin-search{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:18px;display:flex}.admin-search label{color:light-dark(#304c3a,#b5d5bf);flex:220px;gap:8px;min-width:0;font-size:13px;font-weight:600;display:grid}.admin-search input{background:var(--panel);color:light-dark(#263e31,#cbe8d7);width:100%;min-height:48px;font:inherit;border:1px solid light-dark(#cfdacb,#313a2e);border-radius:10px;padding:10px 12px;font-size:16px;font-weight:400}.admin-search input:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-color:light-dark(#7fa070,#506f41)}.admin-search .button{flex:none}.admin-copies{gap:12px;margin:18px 0 0;padding:0;list-style:none;display:grid}.admin-copies li{border:1px solid var(--edge);border-radius:var(--radius);background:light-dark(#f9faf7,#202924);flex-wrap:wrap;align-items:center;gap:14px;padding:16px 18px;display:flex}.admin-copies li>div:first-child{flex:260px;justify-items:start;gap:6px;min-width:0;display:grid}.admin-copies span{color:var(--muted);font-size:13px;line-height:1.6}.admin-copy-actions{flex-wrap:wrap;gap:10px;display:flex}.admin-console .button.danger{background:var(--danger);border-color:var(--danger);color:light-dark(#fff,#1c2520)}.admin-issued{border-radius:var(--radius);background:light-dark(#f2f8ef,#222620);border:1px solid light-dark(#c9dcc3,#2e3b2a);justify-items:start;gap:10px;margin-top:18px;padding:18px;display:grid}.admin-issued strong{color:light-dark(#2f4636,#c0dbc7);font-size:14px;font-weight:600}.admin-issued code{letter-spacing:.5px;font-size:15px}.admin-issued p{color:light-dark(#5d6d5f,#8c9d8e);font-size:13px;line-height:1.7}@media (max-width:600px){.admin-grid{grid-template-columns:1fr;gap:14px}.admin-attention{padding:16px 17px}.admin-copy-actions .button,.admin-search .button{width:100%}.admin-copies li{gap:12px}.admin-console .eyebrow,.admin-console .section-kicker,.admin-figures span{font-size:12px}}.tabbar,.tabbar-backdrop,.tabbar-sheet{display:none}@media (max-width:900px){:root{--tabbar-height:62px}.tabbar{box-sizing:border-box;height:calc(var(--tabbar-height) + env(safe-area-inset-bottom));left:var(--sidebar);z-index:30;background:var(--panel);border-top:1px solid var(--edge);padding:4px 4px max(4px,env(safe-area-inset-bottom));grid-template-columns:repeat(5,1fr);gap:0;margin:0;display:grid;position:fixed;bottom:0;right:0}.tabbar a,.tabbar button{min-height:52px;font-size:var(--fs-label);color:var(--muted);text-align:center;background:0 0;border:0;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:4px 2px;font-weight:500;line-height:1.3;display:flex}.tabbar .tab-current{color:var(--accent);font-weight:600}.language-toggle,.theme-toggle{display:none}.tabbar .tab-icon{place-items:center;display:grid;position:relative}.tabbar .tab-count{background:var(--accent);min-width:17px;height:17px;color:var(--accent-ink);font-variant-numeric:tabular-nums;border-radius:9px;place-items:center;padding:0 4px;font-size:10px;font-weight:700;display:grid;position:absolute;top:-5px;left:11px}main{padding-bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom))}.tabbar-backdrop{z-index:31;background:light-dark(#1d2a1e40,#dff0e040);display:block;position:fixed;inset:0}.tabbar-sheet{z-index:32;left:0;right:0;bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--edge);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-float);gap:0;padding:8px;display:grid;position:fixed}.tabbar-sheet a,.tabbar-sheet-theme{min-height:48px;font-size:var(--fs-body);color:var(--ink);border-radius:8px;align-items:center;gap:12px;padding:0 12px;font-weight:500;display:flex}.tabbar-sheet a svg{color:var(--muted)}.tabbar-sheet a[aria-current=page]{background:var(--soft);color:var(--accent);font-weight:600}.tabbar-sheet a[aria-current=page] svg{color:var(--accent)}.tabbar-sheet-theme{text-align:left;background:0 0;border:0;font-weight:500}.tabbar-sheet-theme svg{color:var(--muted)}.tabbar-sheet a+.tabbar-sheet-theme{border-top:1px solid var(--edge);border-radius:0 0 8px 8px;margin-top:4px}}@media (max-width:600px){.tabbar{left:0}}.listen-dock{display:none}@media (max-width:900px){.listen-dock{z-index:29;left:0;right:0;bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom));background:var(--panel,light-dark(#fff,#1c2520));border-top:1px solid var(--edge);align-items:center;gap:12px;padding:10px 14px;display:flex;position:fixed;box-shadow:0 -6px 18px #24362514}.listen-dock .listen-play{flex:none;justify-content:center;width:46px;height:46px;padding:0}.listen-dock-loop{border-radius:11px;flex:none;place-items:center;width:44px;height:44px;padding:0;display:grid}.listen-dock-loop[aria-pressed=true]{background:var(--soft);color:var(--accent);border-color:light-dark(#c9d8c4,#303c2c)}.listen-dock-copy{flex:1;gap:2px;min-width:0;display:grid}.listen-dock-copy span,.listen-dock-copy strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.listen-dock-copy strong{color:var(--ink);font-size:13px;font-weight:600}.listen-dock-copy span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.listen-dock-copy i{opacity:.5;padding:0 2px;font-style:normal}.is-studying{padding-bottom:calc(var(--tabbar-height) + 70px)}}@media (max-width:600px){.group-chips,.level-chips{scrollbar-width:none;flex-wrap:nowrap;min-width:0;max-width:100%;padding-block:3px;overflow-x:auto}.group-chips::-webkit-scrollbar,.level-chips::-webkit-scrollbar{display:none}.group-chip,.level-chip{flex:none}.topic-toolbar{gap:10px}}@media (max-width:900px){.lesson-switch{flex:none;align-items:center;gap:4px;display:flex}.lesson-switch button{width:44px;height:44px;color:var(--ink);border-radius:11px;place-items:center;padding:0;display:grid}.lesson-switch span{text-align:center;min-width:46px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.lesson-switch i{opacity:.5;padding:0 2px;font-style:normal}.listen-dock-bare{justify-content:flex-end}}.question-home-card{border-radius:var(--radius-lg);background:light-dark(#edf4e9,#242921);border:1px solid light-dark(#ccdcca,#2e3a2c);gap:12px;margin-top:24px;padding:24px;display:grid}.question-home-card h2{color:light-dark(#294b36,#b3dac0);font-size:23px;line-height:1.4}.question-home-card p{color:light-dark(#526453,#98ab99);font-size:15px;line-height:1.6}.question-home-browse{color:light-dark(#376b4e,#6fa985);justify-content:center;align-items:center;min-height:44px;font-size:14px;display:inline-flex}.question-home-card .question-home-activity{border-top:1px solid light-dark(#d5e1ce,#2e3728);padding-top:12px;font-size:14px}.custom-lesson-entry{background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius);color:var(--accent);align-items:center;gap:14px;margin-top:16px;padding:16px 20px;transition:border-color .15s;display:flex}@media (hover:hover){.custom-lesson-entry:hover{border-color:var(--edge-strong)}}.custom-lesson-entry>span{flex:1;gap:5px;min-width:0;display:grid}.custom-lesson-entry strong{font-size:var(--fs-body);color:var(--ink);font-weight:600}.custom-lesson-entry small{font-size:var(--fs-caption);color:var(--muted);line-height:1.5}.custom-lesson-entry>svg{flex:none}.import-guide{margin-top:0}.ai-brief,.import-guide{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);color:var(--ink);padding:20px 24px}.ai-brief{margin-top:16px}.ai-brief h2{font-size:var(--fs-h3);font-weight:600;line-height:1.4}.ai-brief>p{color:light-dark(#526453,#98ab99);max-width:70ch;margin-top:6px;font-size:14px;line-height:1.65}.ai-brief-form{grid-template-columns:auto minmax(0,1fr) auto;align-items:end;gap:12px;margin-top:16px;display:grid}.ai-brief-output{gap:10px;margin-top:14px;display:grid}.ai-brief-output textarea{border:1px solid var(--edge);width:100%;color:var(--ink);font:inherit;resize:vertical;background:light-dark(#f8faf5,#222320);border-radius:12px;padding:12px 14px;font-size:13px;line-height:1.7}.ai-brief-output .primary-action{justify-self:start;align-items:center;gap:8px;display:inline-flex}.ai-brief-steps{gap:12px;margin:18px 0 0;padding-left:24px;list-style:decimal;display:grid}.ai-brief-steps li::marker{color:var(--accent);font-weight:600}.ai-brief-steps strong{font-size:14px}.ai-brief-steps p{color:light-dark(#526453,#98ab99);margin-top:3px;font-size:13px;line-height:1.65}@media (max-width:600px){.ai-brief{padding:18px}.ai-brief-form{grid-template-columns:1fr 1fr}.ai-brief-topic{grid-column:1/-1}.ai-brief-output .primary-action{justify-content:center;justify-self:stretch}}.import-guide h2{font-size:var(--fs-h3);font-weight:600;line-height:1.4}.import-guide summary{font-size:var(--fs-body);color:var(--accent);cursor:pointer;align-items:center;gap:8px;min-height:40px;font-weight:500;line-height:1.4;list-style:none;display:flex}.import-guide summary::-webkit-details-marker{display:none}.import-guide summary:before{content:"";border-bottom:1.5px solid;border-right:1.5px solid;flex:none;width:6px;height:6px;margin-left:2px;transition:transform .15s;transform:rotate(-45deg)}.import-guide details[open]>summary:before{transform:rotate(45deg)}.sample-start{margin:12px 0 4px}.sample-downloads ul{gap:10px;margin:8px 0 16px;padding:0;list-style:none;display:grid}.sample-downloads li{gap:2px;display:grid}.sample-downloads a{text-underline-offset:3px;align-items:center;min-height:44px;font-size:15px;text-decoration:underline;display:flex}.sample-downloads li span{color:light-dark(#526453,#98ab99);font-size:13px;line-height:1.6}.sample-hint{border:1px solid var(--edge);border-radius:var(--radius-sm);background:var(--surface-subtle);font-size:var(--fs-small);color:var(--muted);padding:12px 14px;line-height:1.6}.import-guide ol{gap:14px;margin:16px 0;padding-left:24px;display:grid}.import-guide strong{font-size:15px}.import-guide p{color:light-dark(#526453,#98ab99);margin-top:5px;font-size:14px;line-height:1.65}.import-guide p a{text-underline-offset:3px;text-decoration:underline}.import-page .import-card h2{scroll-margin-top:18px;font-size:20px}.import-page .import-note{font-size:14px;line-height:1.65}.import-page .import-note a{text-underline-offset:3px;text-decoration:underline}.import-page .paste-panel label,.import-page .review-fields label{color:light-dark(#526453,#98ab99);font-size:14px;line-height:1.5}.import-page .even-panel input,.import-page .paste-panel textarea,.import-page .review-fields input{font-family:var(--font-ui);width:100%;min-width:0;font-size:16px}.import-page .even-panel input{max-width:100px}.import-page .even-panel p,.import-page .even-panel strong,.import-page .media-summary strong{font-size:14px}.import-page .step-actions button{min-height:48px;font-size:15px}.import-methods{flex-wrap:wrap;gap:8px;display:flex}.import-methods button{flex:1;min-height:46px;padding:10px 14px;font-size:14px}.import-methods button[aria-pressed=true]{background:var(--accent);color:light-dark(#fff,#1c2520);border-color:var(--accent)}.import-listen{color:light-dark(#526453,#98ab99);gap:10px;min-width:0;font-size:14px;display:grid}.import-listen audio,.import-listen video{width:100%;max-height:250px;display:block}.custom-lesson-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}@media (max-width:600px){.import-page{padding:20px 16px}.import-page .page-heading h1{font-size:28px}.import-page .import-card{gap:16px;min-width:0;padding:16px}.import-guide{margin-top:18px;padding:18px}.import-page .file-drop{width:100%;min-width:0;padding:24px 14px}.import-page .file-drop strong{font-size:17px}.import-page .file-drop small{font-size:13px;line-height:1.6}.import-methods{grid-template-columns:1fr;display:grid}.import-page .step-rail{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.import-page .step-rail li{justify-content:center;gap:5px;padding:10px 4px;font-size:12px}.import-page .step-actions{flex-wrap:wrap;gap:12px}.import-page .step-actions .primary-action{flex:1;justify-content:center}.import-page .review-summary{overflow-wrap:anywhere}.editor-guide .secondary-action{width:100%}}.study-level{color:light-dark(#42614a,#96b89e);align-items:center;gap:10px;font-size:14px;display:flex}.study-level .select,.study-level select{max-width:100%}.lesson-inline-switch{display:none}@media (max-width:900px){.lesson-inline-switch{justify-content:flex-end;margin-top:12px;display:flex}.listen-dock{left:var(--sidebar)}.catalog-page.is-studying{padding-bottom:90px}}@media (max-width:600px){.listen-dock{left:0}.catalog-page{padding-top:16px}.is-browsing .page-heading{background:0 0;border:0;border-radius:0;padding:0}.topic-toolbar{gap:8px;margin-top:16px}.topic-search{flex-basis:100%;order:-1}.group-chips{margin-top:8px}.topic-grid-heading{gap:6px;margin-top:16px}.topic-grid-heading h2{font-size:18px}.topic-grid-heading span{font-size:12px}.topic-grid{gap:10px;margin-top:10px}.topic-card{border-radius:var(--radius);gap:4px;padding:14px}.topic-card-name{font-size:16px}.topic-card-meta{margin-top:4px}.is-studying .topic-header{gap:8px;margin-top:0}.is-studying .topic-header>div{grid-area:2/1;min-width:0}.is-studying .topic-header>div .section-kicker{display:none}.is-studying .topic-header h2{font-size:17px;line-height:1.3}.study-level{flex-wrap:wrap;grid-area:2/2;justify-self:end;gap:4px;max-width:170px;font-size:12px}.study-level .select,.study-level select{width:100%;min-width:0}.is-studying .catalog-layout{margin-top:12px}.catalog-page .lesson-detail{padding:16px 12px}.catalog-page .lesson-detail-head{gap:8px;padding-bottom:10px}.catalog-page .lesson-detail-head h2{margin-top:4px;font-size:16px}.catalog-page .lesson-detail-head .section-kicker{font-size:10px}.catalog-page .prompt-block{padding:14px 0}.catalog-page .prompt-block h3{font-size:24px;line-height:1.3}.catalog-page .prompt-block p{font-size:15px;line-height:1.5}.catalog-page .prompt-label{margin-bottom:6px;font-size:11px}.lesson-listen{padding:14px 12px}.listen-transport{margin-top:12px}.listen-description{margin-top:8px;font-size:12px}.listen-language{display:none}.question-home-card{margin-top:20px;padding:20px}.question-home-card h2{font-size:20px}.question-home-card .primary-action{font-size:15px}.resume-card p{font-size:14px}.week-note,.week-stats span{color:var(--muted);font-size:13px}}.saved-heading{padding-bottom:0}.saved-heading+.content{padding-top:12px}.saved-library .library-toolbar{margin-top:8px}.saved-library .account-callout{margin-top:28px;padding:20px;font-size:14px}.saved-library .account-callout h2{font-size:18px;line-height:1.5}.saved-library .account-callout p{margin:8px 0 16px;font-size:14px;line-height:1.7}.saved-tabs{border-bottom:1px solid var(--edge);gap:8px;margin-top:22px;display:flex}.saved-tab{color:var(--muted);border-bottom:2px solid #0000;gap:3px;min-width:150px;margin-bottom:-1px;padding:12px 16px 14px;display:grid}.saved-tab strong{color:var(--ink);font-size:14px;font-weight:600}.saved-tab small{font-size:11px;line-height:1.5}.saved-tab.is-current{border-bottom-color:var(--accent)}.saved-tab.is-current strong{color:var(--accent)}@media (hover:hover){.saved-tab:hover{background:light-dark(#f4f7f0,#232520);border-radius:9px 9px 0 0}}.saved-tab-note{color:var(--muted);max-width:70ch;margin:0 0 18px;font-size:12px;line-height:1.8}@media (max-width:600px){.saved-tabs{gap:0}.saved-tab{text-align:center;flex:1;min-width:0;padding:10px 8px 12px}.saved-tab small{display:none}}.speak-recorder{border:1px solid var(--edge);background:var(--panel);text-align:left;border-radius:12px;gap:10px;margin-top:16px;padding:14px 16px;display:grid}.speak-recorder.is-recording{background:light-dark(#fffaf8,#24211f);border-color:light-dark(#dfbbb5,#533632)}.speak-recorder-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.speak-recorder-head strong{color:var(--ink);font-size:13px;font-weight:600}.speak-recorder-head>span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.speak-recorder .mic-meter{order:0}.speak-recorder-actions{flex-wrap:wrap;gap:8px;display:flex}.speak-recorder-actions button{align-items:center;gap:7px;min-height:44px;padding:0 14px;font-size:13px;display:inline-flex}.speak-record.is-recording{color:light-dark(#a73c36,#e7766c);background:light-dark(#fcf0ec,#2d2421);border-color:light-dark(#dfbbb5,#533632)}.speak-play{color:light-dark(#345f42,#93c1a0);background:light-dark(#edf3e8,#252921);border-color:light-dark(#d3e0cb,#2e3827)}.speak-recorder .reading-note{margin:0}.speak-recorder-error{color:var(--danger)}@media (max-width:600px){.speak-recorder-actions button{flex:auto;justify-content:center}}.reading-check{border-top:1px solid var(--edge);gap:10px;margin-top:16px;padding:16px 0;display:grid}.reading-check-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.reading-check-actions button{align-items:center;gap:8px;min-height:44px;padding:0 14px;font-size:13px;display:flex}.reading-check-note{color:var(--muted);margin:0;font-size:12px;line-height:1.6}.reading-check-refused{color:var(--ink);background:light-dark(#fbf7ec,#27241c);border:1px solid light-dark(#d8c9a4,#443b27);border-radius:11px;margin:0;padding:12px 14px;font-size:13px;line-height:1.7}.reading-check-result{gap:10px;display:grid}.reading-check-score{color:var(--ink);margin:0;font-size:13px;font-weight:600}.reading-check-score span{color:var(--muted);font-weight:400}.reading-check-line{flex-wrap:wrap;align-items:baseline;gap:6px;margin:0;font-size:17px;line-height:2.2;display:flex}.read-word{border-radius:6px;align-items:baseline;gap:5px;padding:1px 3px;display:inline-flex}.read-word small{color:var(--muted);font-size:11px;font-style:normal}.read-word.is-missing{color:light-dark(#8a5a52,#bd8980);background:light-dark(#f6ece9,#2e2725);text-decoration:line-through;text-decoration-thickness:2px}.read-word.is-different{text-underline-offset:4px;color:light-dark(#7a5a27,#bf9c69);background:light-dark(#faf3e4,#2a251a);-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.read-word.is-extra{color:light-dark(#7a5a27,#bf9c69);border:1px dashed light-dark(#c3b48d,#554724)}.reading-check-evidence{color:var(--muted);font-size:12px}.reading-check-evidence summary{cursor:pointer;align-items:center;min-height:36px;display:flex}.reading-check-evidence p{margin:6px 0 0;line-height:1.7}@media (max-width:600px){.reading-check-actions button{justify-content:center;width:100%}.reading-check-line{font-size:16px;line-height:2.1}}.site-footer{width:calc(100% - 2 * var(--gutter));max-width:calc(var(--content-max) - 2 * var(--gutter));border-top:1px solid var(--edge);font-size:var(--fs-caption);color:var(--faint);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;margin:48px auto 0;padding:20px 0 24px;line-height:1.6;display:flex}.site-footer p{margin:0}.site-footer-links,.site-footer-promise{flex-wrap:wrap;gap:4px 16px;display:flex}.site-footer-links a{min-height:32px;color:var(--muted);align-items:center;text-decoration:none;display:inline-flex}.site-footer-links a:hover{color:var(--accent);text-underline-offset:3px;text-decoration:underline}@media (max-width:600px){.site-footer{flex-direction:column;align-items:flex-start;margin-top:32px;padding:16px 0 20px}.site-footer-links a{min-height:40px}}.mobile-catalog-toggle,.mobile-level-filter{display:none}.practice-steps{background:var(--surface-subtle);border-radius:var(--radius) var(--radius) 0 0;border:1px solid var(--edge);border-bottom:0;grid-template-columns:1fr 1fr;gap:4px;padding:6px;display:grid}.practice-steps button{min-height:40px;color:var(--muted);font-size:var(--fs-body);background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:8px 10px;font-weight:500;transition:background-color .15s,color .15s;display:flex}.practice-steps button[aria-pressed=true]{background:var(--panel);color:var(--ink);font-weight:600;box-shadow:0 1px 2px light-dark(#1f2d2614,#00000040)}.practice-steps button span{background:var(--edge);width:22px;height:22px;font-size:var(--fs-caption);color:var(--muted);border-radius:50%;place-items:center;display:grid}.practice-steps button[aria-pressed=true] span{background:var(--accent);color:var(--accent-ink)}.reading-practice:not(.with-listening){padding:0}.reading-practice:not(.with-listening) .reading-body{padding:24px}.reading-body{scroll-margin-top:20px}.reading-reveal{color:light-dark(#355b3f,#9bc5a4);background:0 0;border:1px dashed light-dark(#a3b899,#415338);min-height:44px;margin-bottom:16px;padding:10px 14px;font-size:14px}.completion-next{justify-content:center;width:100%;margin-bottom:16px}.reading-reset{text-align:left;min-height:44px}.lesson-extras{border-top:1px solid var(--edge);margin-top:16px}.catalog-page .follow-up-block>summary,.lesson-extras>summary{cursor:pointer;color:light-dark(#42614a,#96b89e);min-height:48px;padding:14px 0;font-size:15px;line-height:1.5}.lesson-extras .shadowing-grid{margin-top:0}.catalog-page .reading-caption{letter-spacing:.8px;font-size:12px}.catalog-page .listen-time{font-size:13px}.catalog-page .listen-options button,.catalog-page .listen-options label{min-height:44px;font-size:14px}.catalog-page .listen-options .select-trigger,.catalog-page .listen-options select{min-height:44px}.catalog-page .listen-description{font-size:14px;line-height:1.6}.catalog-page .lesson-navigation{margin-top:16px}@media (max-width:900px){.catalog-page .catalog-layout{gap:12px}.catalog-page .lesson-catalog:not(.is-open) .lesson-catalog-sticky{display:none}.catalog-page .lesson-catalog-tools{grid-template-columns:minmax(0,1fr);gap:12px;padding:12px}.catalog-page .lesson-catalog-tools .search-field{width:100%;min-width:0}.catalog-page .lesson-catalog-tools .study-level{grid-area:auto;justify-content:space-between;justify-self:stretch;align-items:center;width:100%;max-width:none;font-size:14px;display:flex}.catalog-page .lesson-catalog-tools .study-level .select{flex:1;width:auto;min-width:0;max-width:240px}.catalog-page .lesson-catalog{border-radius:12px;grid-row:1;padding:0;overflow:hidden}.catalog-page .lesson-detail{grid-row:2}.mobile-catalog-toggle{text-align:left;color:light-dark(#35543e,#a8cbb1);background:light-dark(#f1f4ed,#252722);border:0;justify-content:space-between;align-items:center;gap:16px;width:100%;min-height:60px;padding:12px 16px;font-size:20px;display:flex}.mobile-catalog-toggle>span:first-child{gap:4px;display:grid}.mobile-catalog-toggle strong{font-size:14px}.mobile-catalog-toggle small{font-size:13px;font-weight:400}.catalog-page .lesson-catalog .lesson-list{overscroll-behavior:contain;max-height:320px;margin:0;padding:8px;display:none;overflow-y:auto}.catalog-page .lesson-catalog.is-open .lesson-list{display:grid}.catalog-page .reading-controls{grid-template-columns:auto minmax(0,1fr);gap:8px;display:grid}.catalog-page .reading-controls button{min-height:52px;padding:12px;font-size:15px}.catalog-page .reading-start{gap:10px;margin-top:20px}.catalog-page .reading-start .learn-primary{justify-content:space-between;width:100%;min-height:52px}.catalog-page .reading-start p{max-width:none;font-size:14px}.catalog-page .reading-stage{min-height:160px;padding:20px 0 12px}.catalog-page .reading-stage .answer-en{font-size:26px;line-height:1.6}.catalog-page .reading-body{padding:18px 16px}}@media (max-width:600px){.catalog-page .topic-toolbar .level-chips{display:none}.video-catalogue .topic-toolbar .level-chips{width:100%;margin-left:calc(-1 * var(--gutter));margin-right:calc(-1 * var(--gutter));width:calc(100% + 2 * var(--gutter));padding:2px var(--gutter);display:flex;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000)}.mobile-level-filter{width:100%;font-size:var(--fs-small);color:var(--muted);justify-content:space-between;align-items:center;gap:12px;display:flex}.mobile-level-filter .select,.mobile-level-filter select{min-width:0;max-width:65%}.catalog-page .group-chips{padding-bottom:2px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000)}.catalog-page .topic-card{grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;padding:16px}.topic-card-en,.topic-card-name{grid-column:1}.catalog-page .topic-card-meta{grid-area:1/2/3;align-content:center;justify-items:end;gap:6px;margin:0;display:grid}.topic-audio-note{grid-column:1/-1}.catalog-page .topic-header{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.catalog-page .study-level{width:100%;max-width:none;font-size:13px}.catalog-page .lesson-detail{border-radius:var(--radius-lg);min-height:0;padding:16px 12px}.catalog-page .lesson-detail-head .section-kicker{letter-spacing:.4px;font-size:12px}.catalog-page .lesson-detail-head h2{display:none}.catalog-page .prompt-block h3{font-size:25px;line-height:1.4}.catalog-page .lesson-listen{padding:16px 14px}.catalog-page .lesson-listen .study-step{display:none}.catalog-page .listen-description{margin-top:0}.catalog-page .listen-options{flex-wrap:wrap;justify-content:space-between;gap:4px;display:flex}.catalog-page .listen-options button,.catalog-page .listen-options label{padding:4px;font-size:13px}.catalog-page .listen-play{width:52px;height:52px}.catalog-page .listen-time{gap:4px;font-size:12px}.catalog-page .reading-practice .answer-en{font-size:23px;line-height:1.65}.catalog-page .reading-caption{gap:8px}.catalog-page .reading-note{font-size:13px}.catalog-page .lesson-navigation{flex-wrap:wrap;gap:8px}.catalog-page .lesson-navigation button{min-height:48px;padding:10px;font-size:14px}}@media (max-width:900px){.catalog-page .is-practicing{padding-bottom:76px}.catalog-page .is-practicing .reading-controls{left:var(--sidebar);right:0;bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom));z-index:29;background:light-dark(#f3f6ee,#242620);border-top:1px solid light-dark(#d7e2cc,#2e3625);padding:10px 16px;position:fixed;box-shadow:0 -4px 16px #2436250a}}@media (max-width:600px){.catalog-page .is-practicing .reading-controls{left:0}.catalog-page .topic-header .question-count,.catalog-page .topic-header>div{display:none}.catalog-page .topic-header .study-level{grid-area:1/2;font-size:0}.catalog-page .topic-header .study-level .select-trigger{min-height:44px}.catalog-page .mobile-catalog-toggle{min-height:48px;padding:10px 14px;font-size:18px}.catalog-page .mobile-catalog-toggle>span:first-child{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.catalog-page .mobile-catalog-toggle small{font-size:12px}.catalog-page .lesson-detail-head h2{font-size:14px;line-height:1.4;display:block}}textarea:focus-visible{border-color:var(--accent);outline:0;box-shadow:0 0 0 3px light-dark(#dfeada,#2a3a30)}@media (min-width:901px){.sidebar{overflow-y:auto}}.practice-page .session-heading{margin-top:20px}.practice-page .lesson-meta{flex-wrap:wrap;gap:8px 12px}.practice-page .lesson-meta .text-button,.practice-page .lesson-meta>span{white-space:nowrap}.settings-account-row>div{overflow-wrap:anywhere;min-width:0}.auth-intro,.error-banner{overflow-wrap:anywhere}.auth-shell .auth-main{padding-bottom:0}@media (max-width:900px){.tabbar-sheet:modal{top:auto;inset-block-start:auto;bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom));left:var(--sidebar);width:calc(100% - var(--sidebar));max-width:none;height:fit-content;min-height:0;max-height:calc(100dvh - var(--tabbar-height) - env(safe-area-inset-bottom) - 16px);color:var(--ink);border:1px solid var(--edge);grid-auto-rows:max-content;align-content:start;margin:0;right:0;overflow-y:auto}.tabbar-sheet::backdrop{background:#1d2a1e66}.tabbar-sheet-heading{font-size:var(--fs-h3);justify-content:space-between;align-items:center;padding:0 4px 4px 12px;font-weight:600;display:flex}.tabbar-sheet-heading button{min-width:56px;min-height:40px;font-size:var(--fs-small);color:var(--muted);background:0 0;border:0;padding:6px 10px;font-weight:500}.edit-field input,.edit-field textarea,.import-page input:not([type=checkbox]):not([type=radio]),.import-page textarea,.settings-page input:not([type=checkbox]):not([type=radio]){font-size:16px}}@media (max-width:600px){.tabbar-sheet:modal{width:100%;left:0}.settings-index{scrollbar-width:none;margin-left:calc(-1 * var(--gutter));margin-right:calc(-1 * var(--gutter));padding:0 var(--gutter) 10px;border-bottom:0;flex-wrap:nowrap;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000)}.settings-index::-webkit-scrollbar{display:none}.settings-index a{flex:none;min-height:40px}.empty-state{flex-wrap:wrap;gap:12px;padding:20px}.empty-state>div{flex:200px;min-width:0}.empty-state .empty-action{font-size:var(--fs-body);align-self:flex-start;margin-left:52px}.saved-library .filter-row{scrollbar-width:none;width:100%;margin-left:calc(-1 * var(--gutter));margin-right:calc(-1 * var(--gutter));padding:2px var(--gutter);width:calc(100% + 2 * var(--gutter));flex-wrap:nowrap;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000)}.saved-library .filter-row::-webkit-scrollbar{display:none}.saved-library .filter-chip{flex:none}.saved-tab{border-radius:0}.review-heading .page-heading p{max-width:none;font-size:14px;line-height:1.8}.edit-row-head{grid-template-columns:44px 44px minmax(0,1fr);align-items:center;display:grid}.edit-bounds{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.bound-control{align-content:start;min-width:0}.bound-buttons{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.bound-buttons button{padding:8px 4px;font-size:12px}.bound-buttons .playhead-button{grid-column:1/-1}}:root{--chart-1:light-dark(#376b4e,#6fa985);--chart-2:light-dark(#9aa686,#8f9c7b);--chart-3:light-dark(#b8895a,#c9975f);--chart-4:light-dark(#6d8fb0,#517292)}.admin-layout{grid-template-columns:184px minmax(0,1fr);align-items:start;gap:32px;max-width:1440px;display:grid}.admin-nav{top:calc(var(--topbar) + 24px);gap:2px;padding:0;display:grid;position:sticky}.admin-nav-title{font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding:4px 10px 8px;font-weight:600}.admin-nav a{min-height:38px;font-size:var(--fs-small);color:var(--muted);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-weight:500;line-height:1.3;transition:background-color .15s,color .15s;display:flex}.admin-nav a svg{opacity:.85;flex:none}.admin-nav a:hover{background:var(--surface-subtle);color:var(--ink)}.admin-nav a.is-current{background:var(--soft);color:var(--accent);font-weight:600}.admin-main{min-width:0}.admin-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px;display:flex}.admin-heading h1{font-family:var(--font-serif);font-size:var(--fs-h1);letter-spacing:-.5px;font-weight:400;line-height:1.3}.admin-heading p{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--muted);max-width:70ch;margin-top:8px}.admin-heading-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.admin-link{font-size:var(--fs-small);color:var(--accent);text-underline-offset:3px;font-weight:500;text-decoration:underline}.admin-kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px;display:grid}.admin-kpi{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);gap:6px;min-width:0;padding:14px 16px;display:grid}.admin-kpi-label{font-size:var(--fs-caption);color:var(--muted);line-height:1.4}.admin-kpi-value{font-family:var(--font-serif);color:var(--ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:26px;font-weight:400;line-height:1.1}.admin-kpi-foot{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:8px;font-size:12px;display:flex}.admin-delta{font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.admin-delta.is-up{color:var(--success)}.admin-delta.is-down{color:var(--danger)}.admin-delta.is-flat{color:var(--muted)}.admin-tip{cursor:help;border-bottom:1px dotted light-dark(#9aa696,#515c4d);align-items:center;gap:4px;display:inline-flex;position:relative}.admin-tip svg{opacity:.55}.admin-tip:focus-visible:after,.admin-tip:hover:after{content:attr(data-tip);z-index:20;text-align:left;color:light-dark(#25372e,#e4ebe3);background:var(--panel);border:1px solid var(--edge);white-space:normal;border-radius:8px;width:max-content;max-width:280px;padding:8px 10px;font-size:12px;font-weight:400;line-height:1.5;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 6px 18px #2936201a}.admin-panel{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);min-width:0;margin-bottom:18px;padding:20px 22px}.admin-panel.is-refreshing{opacity:.7}.admin-panel:has(>.admin-kpis:first-child){background:0 0;border:0;border-radius:0;padding:0}.admin-panel:has(>.admin-kpis:first-child) .admin-kpis:last-child{margin-bottom:0}.admin-panel-head{justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:14px;display:flex}.admin-panel-head h2{font-size:var(--fs-h3);letter-spacing:-.1px;margin-top:4px;font-weight:600}.admin-columns{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));align-items:start;gap:16px;display:grid}.admin-columns.is-thirds{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.admin-columns>.admin-panel{margin-bottom:18px}.admin-table-wrap{margin:0 -22px;padding:0 22px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:var(--fs-small)}.admin-table th{text-align:left;font-size:var(--fs-caption);color:var(--muted);white-space:nowrap;padding:8px 10px;font-weight:600}.admin-table td,.admin-table th{border-bottom:1px solid var(--edge)}.admin-table td{vertical-align:middle;padding:10px}.admin-table tbody tr:hover{background:var(--surface-subtle)}.admin-table td.is-numeric,.admin-table th.is-numeric{text-align:right;font-variant-numeric:tabular-nums}.admin-table th[scope=row]{color:var(--ink);font-weight:600;font-size:var(--fs-small);white-space:nowrap}.admin-table-compact td,.admin-table-compact th{padding:8px 10px}.admin-user{gap:2px;min-width:140px;display:grid}.admin-user strong{color:var(--ink);font-weight:600}.admin-user small{font-size:var(--fs-caption);color:var(--muted);overflow-wrap:anywhere}.admin-lesson{gap:2px;min-width:180px;display:grid}.admin-lesson strong{color:var(--ink);font-weight:600;line-height:1.4}.admin-lesson small,.admin-status{font-size:var(--fs-caption);color:var(--muted)}.admin-status{border-radius:var(--pill);white-space:nowrap;background:var(--surface-subtle);padding:2px 8px;font-weight:600;display:inline-block}.admin-status.is-new{background:var(--info-soft);color:var(--info)}.admin-status.is-highly-active{background:var(--accent);color:var(--accent-ink)}.admin-status.is-active{background:var(--success-soft);color:var(--success)}.admin-status.is-at-risk{background:var(--warning-soft);color:var(--warning)}.admin-status.is-inactive{background:var(--danger-soft);color:var(--danger)}.admin-score{justify-content:flex-end;align-items:center;gap:8px;min-width:96px;display:inline-flex}.admin-score i{background:light-dark(#e1e8da,#2b3126);border-radius:3px;width:56px;height:6px;display:block;position:relative;overflow:hidden}.admin-score i:after{content:"";background:var(--accent);width:inherit;position:absolute;inset:0}.admin-score b{font-variant-numeric:tabular-nums;text-align:right;min-width:2ch;font-weight:600}.admin-skeleton{background:linear-gradient(90deg,light-dark(#eef1e9,#272923),light-dark(#e1e8da,#2b3126),light-dark(#eef1e9,#272923)) 0 0/200% 100%;border-radius:6px;height:12px;animation:admin-shimmer 1.4s linear infinite;display:block}.admin-skeleton.is-tall{height:26px}.admin-skeleton.is-block{border-radius:var(--radius);margin-bottom:18px}.admin-skeleton-table{gap:12px;padding:10px 0;display:grid}.admin-skeleton-row{grid-auto-flow:column;gap:14px;display:grid}@keyframes admin-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.admin-skeleton{animation:none}}.admin-pagination{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;font-size:12px;display:flex}.admin-pagination>div{align-items:center;gap:10px;display:flex}.admin-pagination button{min-height:var(--control-sm);font-size:var(--fs-small);border:1px solid var(--edge-strong);background:var(--panel);color:var(--ink);border-radius:8px;padding:0 12px;font-weight:500}.admin-pagination button:disabled{opacity:.45;cursor:not-allowed}.admin-chips{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.admin-chips button{min-height:var(--control-sm);font-size:var(--fs-small);border:1px solid var(--edge);border-radius:var(--pill);background:var(--panel);color:var(--muted);align-items:center;gap:6px;padding:0 12px;font-weight:500;transition:background-color .15s,color .15s;display:inline-flex}.admin-chips button:hover{background:var(--surface-subtle);color:var(--ink)}.admin-chips button b{color:var(--faint);font-variant-numeric:tabular-nums;font-weight:400;font-size:var(--fs-caption)}.admin-chips button.is-selected{background:var(--soft);color:var(--accent);border-color:light-dark(#b9d1bf,#3f5a4b);font-weight:600}.admin-chips button.is-selected b{color:var(--accent);opacity:.8}.admin-filters{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:18px;display:flex}.admin-filter{font-size:var(--fs-caption);color:var(--muted);gap:6px;min-width:0;display:grid}.admin-filter.is-wide{flex:220px}.admin-filter span{font-weight:600}.admin-filter input{min-height:var(--control);border:1px solid var(--edge);background:var(--panel);color:var(--ink);font:inherit;font-size:var(--fs-body);border-radius:8px;padding:6px 10px}.admin-filter input:focus-visible{border-color:var(--accent);outline:0;box-shadow:0 0 0 3px light-dark(#dfeada,#2a3a30)}.admin-filters .button{min-height:var(--control);font-size:var(--fs-body);padding:0 16px}.admin-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.admin-list li{border-bottom:1px solid var(--edge);font-variant-numeric:tabular-nums;grid-template-columns:minmax(0,1.4fr) auto auto auto;align-items:center;gap:14px;padding:8px 0;font-size:13px;display:grid}.admin-list li:last-child{border-bottom:0}.admin-list small,.admin-list span{color:var(--muted);white-space:nowrap;font-size:12px}.admin-status-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.admin-status-list li{color:var(--muted);grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:12px;font-size:12px;display:grid}.admin-status-list b{color:var(--ink);font-variant-numeric:tabular-nums;min-width:3ch;font-size:15px}.admin-chart{width:100%;position:relative}.admin-chart svg{display:block;overflow:visible}.admin-chart-grid{stroke:light-dark(#eef1e9,#272923)}.admin-chart-cursor{stroke:light-dark(#b0b7ad,#454b43);stroke-dasharray:3 3}.admin-chart-label{fill:light-dark(#8a987e,#5f6c53);font-size:10px}.admin-chart-tip{background:var(--panel);border:1px solid var(--edge);pointer-events:none;white-space:nowrap;z-index:5;border-radius:8px;gap:4px;padding:8px 10px;font-size:12px;display:grid;position:absolute;top:8px;transform:translate(-50%);box-shadow:0 6px 18px #2936201a}.admin-chart-tip strong{color:var(--ink);font-weight:600}.admin-chart-legend span,.admin-chart-tip span{color:var(--muted);align-items:center;gap:6px;display:flex}.admin-chart-tip b{color:var(--ink);font-variant-numeric:tabular-nums;margin-left:auto;padding-left:14px;font-weight:600}.admin-chart-legend i,.admin-chart-tip i{border-radius:2px;flex:none;width:10px;height:3px}.admin-chart-legend{flex-wrap:wrap;gap:16px;margin-top:8px;font-size:12px;display:flex}.admin-sparkline{display:block}.admin-bars{gap:8px;margin:0;padding:0;list-style:none;display:grid}.admin-bars li{grid-template-columns:minmax(80px,140px) minmax(0,1fr) auto;align-items:center;gap:12px;font-size:13px;display:grid}.admin-bars-label{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-bars-track{background:light-dark(#eef1e9,#272923);border-radius:4px;height:8px;overflow:hidden}.admin-bars-track i{background:var(--accent);height:100%;display:block}.admin-bars b{font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap;font-weight:600}.admin-range{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.admin-range button{min-height:var(--control-sm);font-size:var(--fs-small);border:1px solid var(--edge);border-radius:var(--pill);background:var(--panel);color:var(--muted);padding:0 12px;font-weight:500}.admin-range button.is-selected{background:var(--soft);color:var(--accent);border-color:light-dark(#b9d1bf,#3f5a4b);font-weight:600}.admin-range label{color:var(--muted);gap:4px;font-size:11px;display:grid}.admin-range input{min-height:var(--control-sm);border:1px solid var(--edge);background:var(--panel);color:var(--ink);font:inherit;font-size:var(--fs-small);border-radius:8px;padding:4px 8px}.admin-profile{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);flex-wrap:wrap;align-items:center;gap:22px;margin-bottom:18px;padding:18px 22px;display:flex}.admin-avatar{background:var(--soft);width:52px;height:52px;color:var(--accent);letter-spacing:.3px;border-radius:50%;flex:none;place-items:center;font-size:17px;font-weight:600;display:grid}.admin-profile-facts{flex-wrap:wrap;gap:26px;font-size:12px;display:flex}.admin-profile-facts>div{gap:4px;display:grid}.admin-profile-facts span{color:var(--muted)}.admin-profile-facts b{color:var(--ink);font-size:13px;font-weight:600}.admin-facts{gap:8px;margin:0;display:grid}.admin-facts>div{border-bottom:1px solid var(--edge);justify-content:space-between;gap:12px;padding:8px 0;font-size:13px;display:flex}.admin-facts dt{color:var(--muted)}.admin-facts dd{color:var(--ink);font-variant-numeric:tabular-nums;margin:0;font-weight:600}.admin-score-total{align-items:baseline;gap:6px;margin-bottom:12px;display:flex}.admin-score-total b{font-family:var(--font-serif);color:var(--ink);font-size:40px;font-weight:400;line-height:1}.admin-score-total span{color:var(--muted);font-size:13px}.admin-score-parts{gap:6px;margin:0;display:grid}.admin-score-parts>div{border-bottom:1px solid var(--edge);grid-template-columns:minmax(0,1fr) auto 3.5em;align-items:baseline;gap:12px;padding:6px 0;font-size:13px;display:grid}.admin-score-parts dt{color:var(--muted)}.admin-score-parts dd{font-variant-numeric:tabular-nums;text-align:right;margin:0}.admin-score-parts dd.is-share{color:var(--ink);font-weight:600}.admin-calendar{padding-bottom:4px;overflow-x:auto}.admin-calendar-months{color:var(--muted);grid-template-columns:repeat(53,12px);gap:3px;min-width:max-content;margin-bottom:4px;font-size:10px;display:grid}.admin-calendar-months span{white-space:nowrap;overflow:visible}.admin-calendar-grid{grid-template-columns:repeat(53,12px);gap:3px;min-width:max-content;display:grid}.admin-calendar-week{grid-template-rows:repeat(7,12px);gap:3px;display:grid}.admin-calendar-day{cursor:pointer;background:light-dark(#eef1e9,#272923);border:1px solid #0000;border-radius:3px;width:12px;height:12px;padding:0;display:block}.admin-calendar-day.level-1{background:light-dark(#cfe0cc,#2b3929)}.admin-calendar-day.level-2{background:light-dark(#9dc0a1,#325137)}.admin-calendar-day.level-3{background:light-dark(#5f9670,#4a815c)}.admin-calendar-day.level-4{background:var(--accent)}.admin-calendar-day.is-visited{background:var(--panel);border-color:light-dark(#b8c4b3,#3b4537)}.admin-calendar-day.is-today{outline-offset:1px;outline:1px solid light-dark(#376b4e,#6fa985)}.admin-calendar-day.is-selected{box-shadow:0 0 0 2px #fff,0 0 0 4px #376b4e}.admin-calendar-day:disabled{opacity:.35;cursor:default}.admin-calendar-legend{color:var(--muted);align-items:center;gap:5px;margin-top:10px;font-size:11px;display:flex}.admin-calendar-legend .admin-calendar-day{cursor:default}.admin-day{border-top:1px solid var(--edge);margin-top:18px;padding-top:18px}.admin-day h3{margin-bottom:12px;font-size:15px;font-weight:600}.admin-event-counts{flex-wrap:wrap;gap:8px;margin:12px 0;padding:0;list-style:none;display:flex}.admin-event-counts li{border:1px solid var(--edge);color:var(--muted);border-radius:999px;align-items:baseline;gap:8px;padding:5px 10px;font-size:12px;display:inline-flex}.admin-event-counts b{color:var(--ink);font-variant-numeric:tabular-nums}.admin-timeline{gap:18px;margin:14px 0 0;padding:0;list-style:none;display:grid}.admin-timeline>li{border-left:2px solid light-dark(#dfe6d9,#2c3228);padding-left:16px}.admin-timeline-session{flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:6px;font-size:13px;display:flex}.admin-timeline-session strong{color:var(--ink);font-weight:600}.admin-timeline-session span{color:var(--muted);font-size:12px}.admin-timeline ol{gap:4px;margin:0;padding:0;list-style:none;display:grid}.admin-timeline-event{grid-template-columns:52px minmax(0,1fr);gap:10px;font-size:13px;line-height:1.5;display:grid}.admin-timeline-event time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.admin-timeline-event small{color:var(--muted);font-size:11px;display:block}.admin-timeline-event.kind-lesson_completed span,.admin-timeline-event.kind-lesson_started span{color:var(--ink);font-weight:600}.admin-timeline-event.kind-recording_completed span:before{content:"● ";color:light-dark(#bd5851,#c25d55);vertical-align:middle;font-size:9px}.admin-callout{border-radius:var(--radius-sm);background:var(--warning-soft);font-size:var(--fs-small);color:var(--warning);border:1px solid light-dark(#e6d8b8,#4a3f26);margin-bottom:18px;padding:12px 16px;line-height:1.6}.admin-muted{color:var(--muted)}@media (max-width:1150px){.admin-layout{grid-template-columns:160px minmax(0,1fr);gap:22px}}@media (max-width:900px){.admin-layout{grid-template-columns:1fr;gap:12px}.admin-nav{scrollbar-width:none;margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter) 8px;gap:2px;display:flex;position:static;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000)}.admin-nav::-webkit-scrollbar{display:none}.admin-nav-title{display:none}.admin-nav a{white-space:nowrap;min-height:44px;padding:8px 12px}.admin-columns{grid-template-columns:1fr}.admin-heading h1{font-size:26px}.admin-console .button,.admin-console a.button,.admin-console button{min-height:44px}.admin-calendar-day,.admin-calendar-legend .admin-calendar-day{min-height:0}}@media (max-width:600px){.admin-panel{padding:16px}.admin-table-wrap{margin:0 -16px;padding:0 16px}.admin-list li{grid-template-columns:1fr auto}.admin-list li small,.admin-list li span:nth-child(3){display:none}}.review-mode{flex-wrap:wrap;gap:8px;display:flex}.review-mode button{border:1px solid var(--edge);background:var(--panel);color:light-dark(#2f4636,#c0dbc7);border-radius:9px;align-items:center;gap:8px;min-height:44px;padding:0 14px;font-size:13px;display:inline-flex}.review-mode button svg{color:light-dark(#7f9a70,#58724a)}.review-mode button.is-selected{background:var(--soft);color:var(--accent);border-color:light-dark(#7fa070,#506f41)}.review-studying{flex-direction:column;min-height:calc(100svh - 78px);display:flex}.review-session{min-height:0}.review-session,.review-study{flex-direction:column;flex:1;display:flex}.review-study{gap:14px}.review-flashcard{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);flex-direction:column;flex:1;gap:22px;padding:36px 28px 26px}.review-face,.review-flashcard{justify-content:center;display:flex}.review-face{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:16px 12px}.review-face-label{letter-spacing:1.8px;color:light-dark(#8a987e,#5f6c53);font-size:11px;font-weight:600}.review-answer h3,.review-cue{font-family:var(--font-serif);letter-spacing:-.6px;max-width:30ch;font-size:32px;font-weight:400;line-height:1.3}.review-cue{color:light-dark(#2f4636,#c0dbc7)}.review-answer{border-top:1px solid var(--edge);flex-direction:column;align-items:center;gap:10px;width:100%;max-width:60ch;margin-top:12px;padding-top:26px;display:flex}.review-face-translation{color:var(--muted);max-width:52ch;font-size:15px;line-height:1.7}.review-flashcard.is-long .review-answer h3,.review-flashcard.is-long .review-cue{letter-spacing:-.2px;text-align:left;max-width:70ch;font-size:20px;line-height:1.6}.review-flashcard.is-long .review-answer{align-items:flex-start;max-width:70ch}.account-review-card .review-flashcard{flex:0 auto;min-height:0;padding:30px 28px 22px}.review-card-source{text-align:center;color:var(--muted);font-size:12px}.review-listen-big{color:light-dark(#376b4e,#6fa985);background:light-dark(#f1f6ee,#232721);border:1px solid light-dark(#c6d5b7,#343e2a);border-radius:50%;place-items:center;width:76px;height:76px;display:grid}.review-listen-big:disabled{opacity:.45}.review-tools{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:10px;display:flex}.review-tools .play-button{min-height:44px}.review-grade kbd,.review-reveal kbd,.review-tools kbd{opacity:.6;border:1px solid;border-radius:4px;margin-left:4px;padding:1px 5px;font-family:inherit;font-size:10px}.review-tools .speak-recorder{background:0 0;border:0;gap:8px;margin:0;padding:0}.review-tools .speak-recorder-actions{align-items:center}.speak-recorder-status{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.review-bar{border:1px solid var(--edge);background:var(--panel);border-radius:12px;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;padding:12px 16px;display:grid}.review-progress{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:12px;display:flex}.review-progress b{color:light-dark(#2f4636,#c0dbc7);font-weight:600}.review-progress-tally{font-variant-numeric:tabular-nums;gap:8px;display:flex}.review-progress-tally i{background:light-dark(#eef1e9,#272923);border-radius:999px;padding:2px 8px;font-style:normal}.review-progress-tally i.is-again{color:light-dark(#8a5a1f,#c38f57);background:light-dark(#f6e7cf,#352a17)}.review-progress-tally i.is-okay{color:light-dark(#3f5f86,#87aad5);background:light-dark(#e6ecf5,#262b32)}.review-progress-tally i.is-confident{color:light-dark(#2f5a3e,#9ac8a8);background:light-dark(#dfeadf,#283028)}.review-reveal{justify-content:center;min-width:220px}.review-stop{color:var(--muted);text-underline-offset:3px;justify-self:end;min-height:44px;font-size:12px;text-decoration:underline}.review-grade{grid-template-columns:repeat(3,minmax(120px,1fr));gap:8px;display:grid}.review-grade button{border:1px solid var(--edge);background:var(--panel);color:light-dark(#2f4636,#c0dbc7);border-radius:10px;justify-items:center;gap:2px;min-height:56px;padding:8px 12px;display:grid}.review-grade button strong{font-size:13px;font-weight:600}.review-grade button span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.review-grade button:disabled{opacity:.5;cursor:not-allowed}.review-grade-again:not(:disabled):hover{background:light-dark(#fbf3e6,#2b251b);border-color:light-dark(#d9b98b,#573c0d)}.review-grade-okay:not(:disabled):hover{background:light-dark(#eef2f8,#24272b);border-color:light-dark(#a9bcd6,#36465c)}.review-grade-confident:not(:disabled):hover{background:light-dark(#f1f6ee,#232721);border-color:light-dark(#7fa070,#506f41)}.review-done .review-figures{max-width:520px;margin:18px auto}@media (max-width:900px){.review-studying{min-height:calc(100vh - 68px - var(--tabbar-height,0px));min-height:calc(100svh - 68px - var(--tabbar-height,0px))}}@media (max-width:600px){.account-review-card .review-flashcard,.review-flashcard{gap:16px;padding:22px 16px 18px}.review-face{padding:8px 4px}.review-answer h3,.review-cue{font-size:24px}.review-answer{padding-top:18px}.review-bar{grid-template-columns:1fr;gap:10px;padding:12px}.review-progress{justify-content:center}.review-grade{grid-template-columns:repeat(3,1fr);gap:6px}.review-grade button{padding:8px 4px}.review-reveal{width:100%;min-width:0}.review-stop{justify-self:center}.review-start .primary-action{justify-content:center;width:100%;margin-left:0}}.ipa{letter-spacing:.2px;color:light-dark(#6b7d6e,#788a7b);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-family:Charis SIL,Doulos SIL,Gentium Plus,Georgia,Times New Roman,serif;font-size:14px;line-height:1.6}.prompt-block .question-ipa{margin-top:6px;font-size:14px}.answer-ipa{text-align:center;max-width:60ch;margin-top:8px;margin-left:auto;margin-right:auto}.chunk-ipa{text-align:center;margin-top:6px;font-size:16px}.ipa-toggle{border:1px solid var(--edge);background:var(--panel);color:light-dark(#5d6d5f,#8c9d8e);border-radius:999px;min-height:26px;margin-left:12px;padding:2px 8px;font-size:11px}.ipa-toggle[aria-pressed=true]{color:light-dark(#355f43,#94c1a1);background:light-dark(#e1e8da,#2b3126);border-color:light-dark(#c6d3bd,#343e2c)}.shadowing-card ol li .ipa{margin-top:2px;font-size:12px;display:block}.vocabulary-block{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);margin-top:22px;padding:18px 20px}.vocabulary-block .prompt-label{align-items:center;gap:8px;margin-bottom:12px;display:flex}.vocabulary-block .prompt-label .new-badge{margin-left:0}.vocabulary-chips{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.vocabulary-chips button{border:1px solid var(--edge);text-align:left;background:light-dark(#f9faf7,#202924);border-radius:12px;justify-items:start;gap:2px;min-height:44px;padding:8px 14px;display:grid}.vocabulary-chips button strong{color:light-dark(#2f4636,#c0dbc7);font-size:15px;font-weight:600}.vocabulary-chips button .ipa{font-size:13px}@media (hover:hover){.vocabulary-chips button:hover{background:light-dark(#f1f6ee,#232721);border-color:light-dark(#c6d5b7,#343e2a)}}.vocabulary-note{color:var(--muted);margin-top:12px;font-size:12px;line-height:1.7}@media (max-width:600px){.ipa-toggle{min-height:44px;margin-top:6px;margin-left:0;padding:8px 12px;font-size:12px}.reading-caption span{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.chunk-ipa{font-size:15px}}.spoken-word{color:light-dark(#1f3a2a,#e6f6ea);background:light-dark(#dfeada,#33493b);border-radius:4px;box-shadow:0 0 0 3px light-dark(#dfeada,#33493b)}.word-spans>span{-webkit-box-decoration-break:clone;box-decoration-break:clone}.video-grid{grid-template-columns:repeat(auto-fill,minmax(272px,1fr))}.video-card{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);height:100%;color:inherit;align-content:start;gap:6px;padding:0 0 16px;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:grid;overflow:hidden}@media (hover:hover){.video-card:hover{border-color:var(--edge-strong);background:var(--surface-subtle)}}@media (prefers-reduced-motion:reduce){.video-card{transition:none}}.league-page{max-width:1060px}.league-heading{margin-bottom:24px}.league-climb{border-top:1px solid var(--edge);border-bottom:1px solid var(--edge);grid-template-columns:270px minmax(0,1fr);gap:0;display:grid}.league-position{border-right:1px solid var(--edge);align-content:start;gap:18px;padding:28px 26px 28px 0;display:grid}.league-position-main{align-items:center;gap:16px;display:flex}.league-rank-name{font-size:var(--fs-h2);font-family:var(--font-serif);line-height:1.15}.league-rank-name span{font-family:var(--font-ui);font-size:var(--fs-small);color:var(--muted)}.league-position-main strong{font-size:34px;line-height:1;font-family:var(--font-serif);font-variant-numeric:tabular-nums;margin-top:5px;font-weight:400;display:block}.league-movement{font-size:var(--fs-small);color:var(--accent);font-weight:600}.rank-mark{border:1px solid var(--edge-strong);border-radius:50% 50% var(--radius-sm) var(--radius-sm);width:42px;height:46px;color:var(--ink);background:var(--panel);grid-template-columns:repeat(3,5px);align-items:end;gap:3px;padding:7px 8px 6px;display:inline-grid}.rank-mark i{background:currentColor;border-radius:4px 4px 1px 1px;width:5px;display:block}.rank-mark i:first-child{height:12px}.rank-mark i:nth-child(2){height:20px}.rank-mark i:nth-child(3){height:28px}.rank-mark b{font-weight:600;top:4px;right:6px}.rank-mark b,.rank-mark em{font-size:9px;position:absolute}.rank-mark em{background:var(--panel);border:1px solid var(--edge);border-radius:3px;padding:1px 4px;font-style:normal;line-height:1.2;bottom:-13px;right:-4px}.rank-mark-rookie{color:var(--muted)}.rank-mark-explorer{color:var(--info)}.rank-mark-speaker{color:var(--accent)}.rank-mark-fluent{color:var(--success)}.rank-mark-elite{color:var(--warning)}.rank-mark-master{color:light-dark(#725125,#dfba73)}.rank-mark-legend{color:light-dark(#6c4c79,#d2addf);border-color:currentColor}.rank-mark-compact{grid-template-columns:repeat(3,3px);gap:2px;width:28px;height:31px;padding:4px 5px}.rank-mark-compact i{width:3px}.rank-mark-compact i:first-child{height:8px}.rank-mark-compact i:nth-child(2){height:13px}.rank-mark-compact i:nth-child(3){height:18px}.rank-mark-compact b,.rank-mark-compact em{display:none}.league-route{min-width:0;padding:28px 0 26px 32px}.league-route-heading{justify-content:space-between;align-items:start;gap:16px;display:flex}.league-route-heading h2{font-size:var(--fs-h2);margin-top:5px}.league-route-heading>b{font-size:var(--fs-caption);color:var(--accent);white-space:nowrap;font-weight:600}.league-progress{background:var(--edge);border-radius:var(--pill);height:7px;margin-top:20px;overflow:hidden}.league-progress i{border-radius:inherit;height:100%;transition:width .25s;display:block}.league-route>p{font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums;margin-top:7px}.rank-journey{justify-content:space-between;gap:4px;margin:26px 0 0;padding:0;list-style:none;display:flex;position:relative}.rank-journey:before{content:"";background:var(--edge);z-index:0;height:1px;position:absolute;top:15px;left:14px;right:14px}.rank-journey li{z-index:1;min-width:0;color:var(--faint);text-align:center;justify-items:center;gap:6px;font-size:10px;display:grid;position:relative}.rank-journey .journey-current,.rank-journey .journey-past{color:var(--accent);font-weight:600}.rank-journey .journey-current .rank-mark{border-color:var(--accent)}.league-next{justify-content:space-between;align-items:end;gap:20px;padding:28px 0;display:flex}.league-next h2{font-family:var(--font-serif);margin-top:6px;font-size:24px;font-weight:400}.league-next p{color:var(--muted);font-size:var(--fs-small);margin-top:7px}.league-list-section{border-bottom:1px solid var(--edge);padding:27px 0}.league-section-heading{justify-content:space-between;align-items:end;gap:16px;display:flex}.league-section-heading h2{font-size:var(--fs-h2);margin-top:5px}.league-section-heading>span{font-size:var(--fs-caption);color:var(--muted)}.league-competitors{margin:16px 0 0;padding:0;list-style:none}.league-competitors li{border-bottom:1px solid var(--edge);min-height:52px;font-size:var(--fs-small);font-variant-numeric:tabular-nums;grid-template-columns:74px minmax(0,1fr) auto auto;align-items:center;gap:12px;display:grid}.league-competitors li:last-child{border-bottom:0}.competitor-position{color:var(--faint)}.competitor-name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.competitor-score{color:var(--muted)}.competitor-delta{text-align:right;min-width:30px;color:var(--accent);font-size:var(--fs-caption);font-weight:600}.league-competitors .competitor-current{background:var(--soft);color:var(--accent);margin:0 -10px;padding:0 10px}.league-competitors .competitor-current .competitor-position,.league-competitors .competitor-current .competitor-score{color:inherit}.league-lower{grid-template-columns:1fr 1fr;gap:32px;display:grid}.league-lower .league-list-section{border-bottom:0}.league-top-list{margin-top:13px}.league-hall-link{font-size:var(--fs-small);color:var(--accent);margin:7px 0 0;font-weight:600}.league-hall-link a:hover{text-underline-offset:3px;text-decoration:underline}.hall-page{max-width:960px}.hall-champion{border-top:1px solid var(--edge);border-bottom:1px solid var(--edge);padding:30px 0 34px}.hall-champion>div{gap:3px;margin-top:12px;display:grid}.hall-champion p{font-family:var(--font-serif);font-size:32px;line-height:1.1}.hall-champion strong{font-size:var(--fs-small);color:var(--accent);font-weight:600}.hall-champion span{font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums}.hall-columns{grid-template-columns:1fr 1fr;gap:32px;display:grid}.hall-list{border-bottom:1px solid var(--edge);padding:28px 0}.hall-list h2{font-size:var(--fs-h2)}.hall-list ol{margin:14px 0 0;padding:0;list-style:none}.hall-list li{border-bottom:1px solid var(--edge);min-height:45px;font-size:var(--fs-small);font-variant-numeric:tabular-nums;grid-template-columns:28px 1fr auto;align-items:center;gap:10px;display:grid}.hall-list li:last-child{border-bottom:0}.hall-list li>span{color:var(--faint);font-size:var(--fs-caption)}.hall-list li>b{font-weight:500}.hall-list li>em{font-size:var(--fs-caption);color:var(--muted);font-style:normal}.hall-achievements{border-bottom:1px solid var(--edge);grid-template-columns:1fr 1.4fr;gap:40px;padding:29px 0;display:grid}.hall-achievements h2{font-size:var(--fs-h2);margin-top:5px}.hall-achievements ul{margin:0;padding:0;list-style:none}.hall-achievements li{border-bottom:1px solid var(--edge);gap:3px;padding:9px 0;display:grid}.hall-achievements li:last-child{border-bottom:0}.hall-achievements b{font-size:var(--fs-small);font-weight:600}.hall-achievements span{font-size:var(--fs-caption);color:var(--muted)}@media (max-width:700px){.league-climb{grid-template-columns:1fr}.league-position{border-right:0;border-bottom:1px solid var(--edge);grid-template-columns:1fr auto;align-items:end;padding:22px 0}.league-position .section-kicker,.league-position-main{grid-column:1/-1}.league-route{padding:22px 0}.hall-achievements,.hall-columns,.league-lower{grid-template-columns:1fr;gap:0}.hall-achievements{gap:20px}.rank-journey li{font-size:9px}.league-next{flex-direction:column;align-items:start}.league-next .primary-action{width:100%}}@media (max-width:600px){.league-competitors li{grid-template-columns:62px minmax(0,1fr) auto;gap:8px}.league-competitors .competitor-delta{display:none}.league-section-heading{flex-direction:column;align-items:start}.league-route-heading>b{white-space:normal;text-align:right}.rank-mark{flex:none}.hall-champion p{font-size:29px}}.rank-up-dialog{border:1px solid var(--edge-strong);border-radius:var(--radius-lg);background:var(--panel);width:min(440px,100vw - 32px);color:var(--ink);box-shadow:var(--shadow-float);padding:0}.rank-up-dialog::backdrop{background:light-dark(#1f2d2640,#0009)}.rank-up-dialog>div{text-align:center;justify-items:center;padding:38px 32px;display:grid}.rank-up-transition{font-family:var(--font-serif);gap:5px;margin:18px 0 21px;font-size:21px;line-height:1.1;display:grid}.rank-up-transition span{color:var(--muted)}.rank-up-transition i{font-family:var(--font-ui);color:var(--accent);font-size:18px;font-style:normal}.rank-up-transition strong{color:var(--accent);font-weight:400}.rank-up-dialog .rank-mark{margin:0 0 20px;animation:rank-up-seal .48s ease-out}.rank-up-dialog h2{font-family:var(--font-serif);font-size:29px;font-weight:400}.rank-up-dialog p{max-width:30ch;color:var(--muted);font-size:var(--fs-small);margin:9px 0 23px}.rank-up-dialog .primary-action{min-width:180px}@keyframes rank-up-seal{0%{opacity:0;transform:scale(.76)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.rank-up-dialog .rank-mark{animation:none}}.hall-page,.league-page{--app:light-dark(#14231b,#09100c);--panel:light-dark(#193027,#111d16);--surface-subtle:light-dark(#213c30,#17271f);--ink:light-dark(#f2f5ed,#edf5ed);--muted:light-dark(#becab9,#aab8ad);--faint:light-dark(#a1b3a5,#91a095);--edge:light-dark(#3b5848,#294234);--edge-strong:light-dark(#6a8875,#4c6a59);--soft:light-dark(#274936,#1d3528);--accent:light-dark(#91d1a5,#9edcb0);--accent-hover:light-dark(#b1e0bf,#b8e8c5);--accent-ink:light-dark(#102118,#08120c);--league-text:light-dark(#f2f5ed,#edf5ed);isolation:isolate;background:var(--app);margin-top:-32px;padding-top:52px;padding-bottom:56px;position:relative;overflow:hidden}.hall-page :is(h1,h2,h3,.hall-list li>b),.league-page :is(h1,h2,h3,.league-rank-name,.competitor-name,.league-position-main strong){color:var(--league-text)}.hall-page:before,.league-page:before{content:"";z-index:-1;border:1px solid light-dark(#759a7a44,#85ad8a2b);border-radius:50%;width:300px;height:300px;position:absolute;top:-128px;right:-150px;box-shadow:0 0 0 36px light-dark(#759a7a17,#85ad8a12),0 0 0 86px light-dark(#759a7a0c,#85ad8a08)}.league-page:after{content:"";z-index:-1;background:light-dark(#97c79a5c,#8abe8c47);width:1px;position:absolute;top:300px;bottom:56px;left:28px}.hall-heading,.league-heading{margin-bottom:32px;padding:0 32px}.hall-heading .eyebrow,.league-heading .eyebrow{color:var(--accent)}.hall-heading p,.league-heading p,.league-next p,.league-position-main,.league-route>p{color:var(--muted)}.league-page .new-badge{color:var(--accent);border-color:var(--accent)}.league-climb,.league-hall-link,.league-list-section,.league-next{margin-left:32px;margin-right:32px}.league-climb,.league-position{border-color:var(--edge-strong)}.league-position{padding-left:20px}.league-route{padding-right:20px}.league-next h2,.league-route-heading h2{font-family:var(--font-serif);font-weight:400}.league-progress{background:light-dark(#2b4939,#1f372a);height:9px}.league-progress i{background:var(--accent)}.rank-journey:before{background:var(--edge-strong)}.rank-journey .rank-mark{background:var(--app)}.rank-journey .journey-current .rank-mark{background:var(--soft)}.league-next{border-top:1px solid var(--edge);border-bottom:1px solid var(--edge);padding:34px 20px;position:relative}.league-next:before{content:"01";font-family:var(--font-serif);color:light-dark(#8fbc8e1c,#8fbc8e13);font-variant-numeric:tabular-nums;font-size:62px;line-height:1;position:absolute;top:17px;right:170px}.league-next>a,.league-next>div{z-index:1;position:relative}.league-competitors li{border-color:var(--edge)}.league-competitors .competitor-current{box-shadow:inset 3px 0 0 var(--accent);background:light-dark(#2d513d,#203c2c)}.league-lower{gap:40px;margin:0 32px}.league-lower .league-list-section{margin:0}.league-hall-link{padding-left:20px}.hall-page{max-width:1060px;padding-top:62px}.hall-heading{position:relative}.hall-heading h1{letter-spacing:-.055em;font-size:clamp(42px,6vw,72px);line-height:.95}.hall-champion{border:1px solid var(--edge-strong);background:light-dark(#1d372b,#112017);grid-template-columns:minmax(0,1fr) auto;align-items:end;min-height:260px;margin:0 32px;padding:35px 40px;display:grid;position:relative;overflow:hidden}.hall-champion:after{content:"01";font-family:var(--font-serif);color:light-dark(#b7d1b917,#b7d1b910);pointer-events:none;font-size:260px;line-height:1;position:absolute;top:-35px;right:22px}.hall-champion-copy{z-index:1;gap:5px;display:grid;position:relative}.hall-champion-copy>.section-kicker{color:var(--accent)}.hall-champion-copy p{font-family:var(--font-serif);letter-spacing:-.045em;font-size:clamp(38px,5vw,62px);line-height:.95}.hall-champion-copy strong{font-size:var(--fs-small);color:var(--accent);font-weight:600}.hall-champion-copy>span:last-child{font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums}.hall-champion>.rank-mark{z-index:1;color:light-dark(#dfbc75,#e1bc72);background:light-dark(#203e2f,#15291d);border-color:light-dark(#dfbc75,#cfa965);grid-template-columns:repeat(3,10px);gap:6px;width:74px;height:86px;padding:14px 15px 12px;position:relative;box-shadow:0 0 0 8px light-dark(#dfbc7517,#dfbc7512)}.hall-champion>.rank-mark i{width:10px}.hall-champion>.rank-mark i:first-child{height:24px}.hall-champion>.rank-mark i:nth-child(2){height:40px}.hall-champion>.rank-mark i:nth-child(3){height:56px}.hall-champion>.rank-mark b{font-size:13px;top:9px;right:10px}.hall-champion-orbit{z-index:0;border:1px solid light-dark(#b8d7bf40,#b8d7bf2b);border-radius:50%;width:330px;height:330px;position:absolute;bottom:-122px;left:-108px}.hall-champion-orbit i{border:1px solid light-dark(#b8d7bf26,#b8d7bf1c);border-radius:50%;display:block;position:absolute;inset:38px}.hall-champion-orbit i:nth-child(2){inset:80px}.hall-champion-orbit i:nth-child(3){background:light-dark(#b8d7bf22,#b8d7bf18);inset:120px}.hall-columns{background:var(--edge-strong);border:1px solid var(--edge-strong);gap:1px;margin:0 32px}.hall-list{background:var(--panel);border:0;padding:28px 30px}.hall-list h2{font-family:var(--font-serif);font-size:23px;font-weight:400}.hall-list li{border-color:var(--edge)}.hall-list li:first-child b{color:var(--accent)}.hall-list li:first-child>span{color:light-dark(#e6c57b,#e6c57b);font-weight:600}.hall-achievements{border-color:var(--edge-strong);grid-template-columns:.9fr 1.5fr;margin:0 32px;padding:38px 30px}.hall-achievements h2{font-family:var(--font-serif);font-size:26px;font-weight:400}.hall-achievements li{border-color:var(--edge);padding:13px 0}.hall-achievements li:before{content:"✦";float:left;color:light-dark(#e2bd70,#e2bd70);margin:1px 10px 0 0;font-size:13px}.hall-page .league-hall-link{margin-top:22px}@media (max-width:900px){.hall-page,.league-page{margin-top:-24px;padding-top:40px}.hall-heading,.league-heading{padding:0 20px}.hall-achievements,.hall-champion,.hall-columns,.league-climb,.league-hall-link,.league-list-section,.league-lower,.league-next{margin-left:20px;margin-right:20px}.league-lower{background:var(--edge-strong);border:1px solid var(--edge-strong);gap:1px}.league-lower .league-list-section{background:var(--panel);padding-left:20px;padding-right:20px}.league-page:after{left:20px}.hall-champion{padding:30px}.hall-columns{gap:1px}}@media (max-width:700px){.hall-page,.league-page{margin-left:calc(-1 * var(--gutter));margin-right:calc(-1 * var(--gutter));padding-left:0;padding-right:0}.league-position{padding-left:0}.league-next,.league-route{padding-right:0}.league-next{padding-left:0}.league-next:before{right:10px}.hall-achievements,.hall-champion,.hall-columns,.league-climb,.league-hall-link,.league-list-section,.league-lower,.league-next{margin-left:16px;margin-right:16px}.league-page:after{display:none}.hall-page{padding-top:44px}.hall-heading h1{font-size:46px}.hall-champion{min-height:230px;padding:25px 22px}.hall-champion>.rank-mark{grid-template-columns:repeat(3,8px);gap:5px;width:60px;height:70px;padding:11px 12px 9px}.hall-champion>.rank-mark i{width:8px}.hall-champion>.rank-mark i:first-child{height:19px}.hall-champion>.rank-mark i:nth-child(2){height:32px}.hall-champion>.rank-mark i:nth-child(3){height:45px}.hall-champion:after{font-size:190px;right:-14px}.hall-achievements{padding:28px 22px}.hall-list{padding:25px 22px}}.hall-achievements b,.hall-champion-copy,.hall-champion-copy p{color:var(--league-text)}.hall-achievements>div>.section-kicker{color:var(--accent)}.league-competitors .competitor-name{color:var(--league-text)}.video-thumb{aspect-ratio:16/9;background:var(--soft);margin-bottom:8px;display:block;position:relative}.video-thumb img{object-fit:cover;width:100%;height:100%;display:block}.video-duration{color:light-dark(#fff,#e4ebe3);font-variant-numeric:tabular-nums;background:light-dark(#1c2520e6,#0b0f0de6);border-radius:6px;padding:2px 7px;font-size:11px;position:absolute;bottom:8px;right:8px}.video-card-name{color:var(--ink);padding:0 16px;font-size:15px;font-weight:600;line-height:1.4}.video-card-en{color:var(--muted);padding:0 16px;font-size:13px;line-height:1.5}.video-card-meta{font-size:var(--fs-caption);color:var(--faint);flex-wrap:wrap;align-items:center;gap:6px 10px;padding:4px 16px 0;display:flex}.video-filter-rows{margin-top:8px;padding-bottom:4px;position:relative}.video-filter-rows .group-chips{margin-top:12px}.video-clear{min-height:var(--control-sm);font-size:var(--fs-small);position:absolute;top:12px;right:0}.video-filter-rows:has(.video-clear) .group-chips:first-child{padding-right:80px}.catalog-page .group-chips+.empty-state,.catalog-page .topic-toolbar+.empty-state,.video-filter-rows+.empty-state,.video-filter-rows+.loading{margin-top:24px}.video-room .video-heading h1{letter-spacing:-.6px;font-size:28px}.video-layout{grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);grid-template-areas:"stage side""lower side";align-items:start;gap:20px;margin-top:22px;display:grid}.video-sticky{grid-area:stage;min-width:0;scroll-margin-top:16px}.video-lower{grid-area:lower;min-width:0}.video-side{grid-area:side;min-width:0}.video-stage{display:grid}.video-facade,.video-frame{aspect-ratio:16/9;border-radius:12px;grid-area:1/1;overflow:hidden}.video-frame{background:light-dark(#0f1512,#0b0f0d)}.video-frame.is-hidden{visibility:hidden}.video-frame iframe,.video-mount{border:0;width:100%;height:100%;display:block}.video-facade{background:var(--soft);align-content:center;place-items:center;gap:10px;display:grid;position:relative}.video-facade img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.video-facade-play{width:64px;height:64px;position:relative}.video-facade-label{color:light-dark(#fff,#e4ebe3);background:light-dark(#1c2520d9,#0b0f0dd9);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;position:relative}.video-privacy{color:var(--muted);margin-top:10px;font-size:12px;line-height:1.6}.video-error{margin:12px 0 0}.video-error a{color:var(--accent);align-items:center;gap:4px;margin:5px;padding:7px 12px;display:inline-flex}.video-transport{margin-top:14px}.video-transport-row{gap:10px;margin-top:0}.video-step{border:1px solid var(--edge);background:var(--panel);width:44px;height:44px;color:var(--accent);border-radius:50%;flex:none;place-items:center;display:grid}.video-options{margin-top:8px}.video-steps{margin-top:18px}.video-about,.video-shadowing{border-radius:0 0 var(--radius) var(--radius);background:var(--panel);border:1px solid var(--edge);border-top:0;padding:20px 22px}.video-tabs{border:0;border-bottom:1px solid var(--edge);background:0 0;border-radius:0;grid-template-columns:auto auto;justify-content:start;gap:0;margin:0 0 16px;padding:0}.video-tabs button{border-bottom:2px solid #0000;border-radius:0;min-height:36px;margin-bottom:-1px;padding:6px 12px}.video-tabs button[aria-pressed=true]{box-shadow:none;color:var(--accent);border-bottom-color:var(--accent);background:0 0}.video-title{font-size:20px;font-weight:600;line-height:1.35}.video-title-en{color:var(--muted);margin-top:4px;font-size:14px;line-height:1.5}.video-badges{gap:8px;margin-top:12px}.video-badges,.video-tags{flex-wrap:wrap;display:flex}.video-tags{gap:6px;margin:12px 0 0;padding:0;list-style:none}.video-tags .filter-chip{border:1px solid var(--edge);background:var(--panel);text-decoration:none}.video-channel{color:var(--muted);margin-top:14px;font-size:12px}.video-description{margin-top:12px;font-size:14px;line-height:1.7}.video-youtube-link{min-height:44px;color:var(--accent);align-items:center;gap:6px;margin-top:8px;font-size:13px;display:inline-flex}.video-keys{margin-top:12px}.video-side .transcript-card{max-height:calc(100vh - 40px);position:sticky;top:20px}.video-sentences{flex:1;grid-template-columns:1fr;min-height:0;overflow:auto}.video-transcript .follow-button{white-space:nowrap;border-radius:999px;margin:0;padding:10px 16px;position:absolute;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 4px 14px light-dark(#2936201f,#00000059)}.video-sentences .sentence-row{color:var(--ink);border:1px solid #0000;align-items:flex-start;gap:10px}.video-sentences .row-number{font-variant-numeric:tabular-nums;min-width:38px}.video-transcript .row-copy strong{font-size:14px;line-height:1.7}.row-translation{color:var(--muted);margin-top:5px;font-size:12px;line-height:1.6;display:block}.video-sentences .sentence-play{cursor:pointer;background:0 0;border:0;border-radius:9px;padding:0;position:absolute;inset:0}.video-sentences .sentence-row:hover{background:light-dark(#f4f6f1,#212a24)}.video-sentences .sentence-row.selected:hover{background:light-dark(#edf2e8,#262922)}.video-sentences .row-copy,.video-sentences .row-number{pointer-events:none;position:relative}.video-sentences .sentence-save{color:light-dark(#a5ae9a,#5b6553);background:0 0;border:0;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;margin:-10px -8px -10px 0;padding:0;display:grid;position:relative}.video-sentences .sentence-save[aria-pressed=true]{color:light-dark(#b24d48,#e0837d)}.video-sentences .sentence-save[aria-pressed=true] svg{fill:currentColor}@media (hover:hover){.video-sentences .sentence-save:hover{color:var(--ink);background:light-dark(#e8ede3,#2d3a32)}.video-sentences .sentence-save[aria-pressed=true]:hover{color:light-dark(#b24d48,#e0837d)}}.word-button{pointer-events:auto;min-height:44px;font:inherit;color:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;border-radius:4px;margin:-10px 0;padding:0 1px;line-height:44px;-webkit-text-decoration:underline dotted light-dark(#9fb09a,#5f7060);text-decoration:underline dotted light-dark(#9fb09a,#5f7060);display:inline-block}@media (hover:hover){.word-button:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);background:light-dark(#e8ede3,#2d3a32)}}.word-button:focus-visible{outline-offset:0}.transcript-error{margin:10px 0 0;font-size:12px;line-height:1.6}.video-transcript-tip{padding-bottom:6px}.video-shadowing .reading-track{margin-top:12px}.video-shadow-line{font-family:var(--font-serif);color:light-dark(#223b29,#d0efd7);overflow-wrap:anywhere;font-size:clamp(24px,2.1vw,30px);line-height:1.65}.video-shadow-translation{color:var(--muted);margin-top:10px;font-size:14px;line-height:1.6}.video-listen{align-items:center;gap:8px;margin:0 0 14px;display:inline-flex}.video-listen[aria-pressed=true]{background:var(--soft);color:var(--accent);border-color:light-dark(#c9d8c4,#303c2c)}@media (max-width:900px){.video-layout{grid-template-columns:1fr;grid-template-areas:"stage""side""lower";gap:14px}.video-sticky{z-index:5;background:var(--app);padding-bottom:8px;scroll-margin-top:0;position:sticky;top:0}.video-side .transcript-card{max-height:none;padding:16px 12px 12px;position:relative}.video-sentences{max-height:max(180px,calc(100vh - var(--video-stage-height,50vh) - 96px - var(--tabbar-height,0px) - env(safe-area-inset-bottom,0px)));max-height:max(180px,calc(100svh - var(--video-stage-height,50vh) - 96px - var(--tabbar-height,0px) - env(safe-area-inset-bottom,0px)));margin-top:12px;overflow:auto}.video-transcript .follow-button{bottom:20px}.video-keys,.video-transcript-tip{display:none}}@media (max-width:600px){.video-room .video-heading h1{font-size:24px}.video-about,.video-shadowing{padding:18px 16px}.video-card-name{font-size:15px}.video-facade-play{width:56px;height:56px}.video-transport-row{gap:8px}.video-sentences .sentence-row{padding:12px 10px}.video-duration,.video-options button:not(.select-trigger){font-size:12px}}.professional-tracks{grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:18px;margin:26px 0 0;padding:0;list-style:none;display:grid}.professional-track-card{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);height:100%;color:inherit;align-content:start;gap:8px;padding:24px 26px;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:grid}@media (hover:hover){.professional-track-card:hover{border-color:light-dark(#c9d8c4,#3a4a3e);box-shadow:0 4px 14px light-dark(#2936200f,#00000040)}}.professional-track-card h2{font-family:var(--font-serif);letter-spacing:-.5px;font-size:26px;font-weight:400;line-height:1.25}.professional-track-en{color:var(--muted);font-size:13px}.professional-track-promise{font-size:14px;line-height:1.7}.professional-track-meta,.professional-track-progress{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.professional-track-open,.professional-track-progress{color:var(--accent);font-weight:600}.professional-track-open{min-height:44px;align-items:center;gap:6px;margin-top:6px;font-size:13px;display:inline-flex}.professional-guest-note{margin-top:22px}.professional-figures{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);grid-template-columns:repeat(4,1fr);margin-top:22px;padding:20px 22px}.professional-roleplay-note{margin-top:14px}.professional-categories{gap:10px;margin:22px 0 0;padding:0;list-style:none;display:grid}.professional-category{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);overflow:hidden}.professional-category.is-empty{background:var(--app)}.professional-category-head{width:100%;min-height:64px;color:inherit;text-align:left;background:0 0;border:0;border-radius:0;grid-template-columns:36px minmax(0,1fr) auto 20px;align-items:center;gap:14px;padding:14px 20px;display:grid}.professional-category-head svg{color:var(--muted);transition:transform .15s}.is-open>.professional-category-head svg{transform:rotate(90deg)}.professional-category-number{background:var(--soft);width:36px;height:36px;font-family:var(--font-serif);color:light-dark(#3f6a4a,#85b28f);border-radius:50%;place-items:center;font-size:16px;display:grid}.professional-category-title{gap:2px;min-width:0;display:grid}.professional-category-title strong{font-size:16px;font-weight:600}.professional-category-title span{color:var(--muted);font-size:12px}.professional-category-count{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px}.professional-category-body{border-top:1px solid var(--edge);padding:0 20px 18px}.professional-category-lead{color:var(--muted);padding:14px 0 10px;font-size:13px;line-height:1.7}.professional-scenarios{gap:6px;margin:0;padding:0;list-style:none;display:grid}.professional-scenario-row{min-height:56px;color:inherit;border:1px solid #0000;border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:10px 12px;text-decoration:none;display:grid}@media (hover:hover){.professional-scenario-row:hover{background:var(--soft);border-color:light-dark(#dbe4d1,#2d3425)}}.professional-scenario-id code{border:1px solid var(--edge);color:var(--muted);background:var(--app);border-radius:6px;padding:3px 7px;font-size:12px}.professional-scenario-title{gap:2px;min-width:0;display:grid}.professional-scenario-title strong{font-size:15px;font-weight:600}.professional-scenario-title small,.professional-scenario-title span{color:var(--muted);font-size:12px}.professional-state{white-space:nowrap;background:var(--app);border:1px solid var(--edge);color:var(--muted);border-radius:999px;padding:5px 9px;font-size:11px;font-weight:600}.professional-state.is-started{color:light-dark(#3f5f86,#a9c1e0);background:light-dark(#e6ecf5,#26303d);border-color:light-dark(#c9d5e6,#35465a)}.professional-state.is-completed,.professional-state.is-practised{color:light-dark(#2f5a3e,#9fd0ad);background:light-dark(#dfeadf,#243529);border-color:light-dark(#c4d8c4,#345040)}.scenario-heading p{flex-wrap:wrap;align-items:center;gap:4px 6px;display:flex}.scenario-layout{grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);grid-template-areas:"practice intro";align-items:start;gap:20px;margin-top:22px;display:grid}.scenario-intro{grid-area:intro;max-height:calc(100vh - 40px);margin:0;position:sticky;top:20px;overflow:auto}.scenario-practice{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);grid-area:practice;min-width:0}.scenario-practice .reading-body{padding:22px 26px 24px}.scenario-steps{border-radius:var(--radius) var(--radius) 0 0;grid-template-columns:1fr 1fr 1fr}.scenario-steps button small{color:var(--muted);font-size:12px;font-weight:400}.scenario-intro .section-kicker{margin:18px 0 8px;display:block}.scenario-intro>.section-kicker:first-child{margin-top:0}.scenario-setting{font-size:14px;line-height:1.7}.scenario-setting-en{margin-top:6px}.scenario-intro-lead,.scenario-setting-en{color:var(--muted);font-size:12px;line-height:1.6}.scenario-intro-lead{margin-bottom:8px}.scenario-objectives{counter-reset:objective;gap:8px;margin:0;padding:0;list-style:none;display:grid}.scenario-objectives li{align-items:flex-start;gap:10px;font-size:13px;line-height:1.5;display:flex}.scenario-objectives li svg{color:var(--accent);flex:none;margin-top:3px}.scenario-objectives li>span{gap:2px;display:grid}.scenario-objectives li strong{font-weight:600}.scenario-objectives li span span{color:var(--muted);font-size:12px}.scenario-skills{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.scenario-fold{border-top:1px solid var(--edge);margin-top:16px;padding-top:12px}.scenario-fold summary{cursor:pointer;min-height:44px;color:var(--muted);justify-content:space-between;align-items:center;gap:10px;font-size:12px;list-style:none;display:flex}.scenario-fold summary::-webkit-details-marker{display:none}.scenario-fold summary:after{content:"▸";margin-left:-4px;font-size:11px}.scenario-fold[open] summary:after{content:"▾"}.scenario-fold summary .section-kicker{margin:0}.scenario-phrases{gap:8px;margin:6px 0 0;padding:0;list-style:none;display:grid}.scenario-phrases li{align-items:flex-start;gap:10px;display:flex}.scenario-phrases li>span{gap:2px;font-size:14px;line-height:1.5;display:grid}.scenario-phrases small{color:var(--muted);font-size:12px}.scenario-play{border:1px solid var(--edge);background:var(--panel);width:44px;height:44px;color:var(--accent);border-radius:50%;flex:none;place-items:center;display:grid}.scenario-play[aria-pressed=true]{background:var(--soft);border-color:light-dark(#c9d8c4,#303c2c)}.scenario-hint{color:var(--muted);margin:10px 0 14px;font-size:13px;line-height:1.7}.scenario-listen-controls{flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:16px;display:flex}.scenario-listen-controls .secondary-action{align-items:center;gap:8px;display:inline-flex}.scenario-turns{gap:8px;margin:0;padding:0;list-style:none;display:grid}.scenario-turn{border:1px solid #0000;border-radius:12px;align-items:flex-start;gap:12px;padding:12px;display:flex}.scenario-turn.is-learner{border-color:var(--edge);background:light-dark(#f4f7f1,#202924)}.scenario-turn.is-playing{border-color:light-dark(#c9d8c4,#3a4a3e);box-shadow:inset 3px 0 #7d9b6b}.scenario-turn-body{flex:1;gap:4px;min-width:0;display:grid}.scenario-turn-role{letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-size:11px}.scenario-turn-role b{color:var(--accent);letter-spacing:0;text-transform:none;font-weight:600}.scenario-turn-text{font-size:16px;line-height:1.6}.scenario-turn-meaning{color:var(--muted);font-size:13px;line-height:1.6}.scenario-turn-note{color:light-dark(#8a7844,#c9b57a);font-size:12px;font-style:italic;line-height:1.6}.scenario-context{color:var(--muted);gap:4px;margin-bottom:14px;font-size:13px;display:grid}.scenario-context q{color:var(--ink);quotes:"“" "”";font-size:15px}.scenario-line{font-family:var(--font-serif);overflow-wrap:anywhere;font-size:clamp(24px,2.1vw,30px);line-height:1.5}.scenario-line-meaning{color:var(--muted);margin-top:8px;font-size:14px;line-height:1.6}.scenario-shadow-actions{flex-wrap:wrap;gap:10px;margin:0 0 14px;display:flex}.scenario-shadow-actions .video-listen{margin:0}.scenario-next{text-align:center;justify-content:center;align-items:center;text-decoration:none;display:flex}.scenario-roleplay-soon h2{margin:8px 0 12px;font-size:22px;font-weight:600}.scenario-roleplay-soon p{margin-bottom:12px;font-size:14px;line-height:1.7}.scenario-roleplay-soon .reading-controls{margin-top:18px}.scenario-practice>.reading-note{padding:0 26px}.scenario-back{padding:0 26px 22px;font-size:13px}.scenario-back a{min-height:44px;color:var(--accent);align-items:center;display:inline-flex}@media (max-width:900px){.professional-figures{grid-template-columns:repeat(2,1fr)}.scenario-layout{grid-template-columns:1fr;grid-template-areas:"intro""practice";gap:14px}.scenario-intro{max-height:none;padding:18px 20px;position:static;overflow:visible}.scenario-setting-en,.video-keys{display:none}}@media (max-width:600px){.professional-track-card{padding:20px}.professional-figures{padding:16px}.professional-category-head{grid-template-columns:32px minmax(0,1fr) 20px;padding:12px 14px}.professional-category-count{grid-column:2;font-size:12px}.professional-category-body{padding:0 14px 14px}.professional-scenario-row{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:12px}.professional-scenario-id{grid-column:1/-1}.professional-state{grid-column:2}.scenario-steps button{flex-wrap:wrap;gap:6px;padding:8px 4px;font-size:13px}.scenario-steps button small{text-align:center;width:100%;line-height:1}.scenario-turn{padding:10px}.professional-state,.scenario-turn-role{font-size:12px}.scenario-turn-text{font-size:15px}.scenario-listen-controls .text-button{min-height:44px}.scenario-back{padding:0 20px 20px}.scenario-practice>.reading-note{padding:0 20px}.scenario-practice .reading-body{padding:18px 16px 20px}}.dictation-focus{margin-top:0}.dictation-focus p:not(.reading-note){font-size:var(--fs-body);line-height:1.7}.dictation-track-meta{font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums;margin-top:8px}.page-meta.dictation-track-meta{margin:-16px 0 20px}.dictation-next-up{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);font-size:var(--fs-small);color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px 16px;margin:0 0 32px;padding:14px 16px;display:flex}.dictation-next-up strong{color:var(--ink);font-weight:600}@media (max-width:600px){.dictation-next-up .primary-action{justify-content:center;width:100%}}.page-meta-note{color:var(--faint);flex-basis:100%}.dictation-focus-list{gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.dictation-focus-list li{border:1px solid var(--edge);background:var(--app);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;min-height:36px;padding:6px 12px;font-size:13px;display:flex}.dictation-focus-list li b{font-variant-numeric:tabular-nums;color:var(--accent)}.dictation-focus .secondary-action{align-items:center;gap:8px;margin-top:12px;text-decoration:none;display:inline-flex}.dictation-section{margin-top:32px}.dictation-section:first-of-type{margin-top:0}.dictation-section .card-heading{flex-wrap:wrap;align-items:baseline;margin-bottom:12px}.dictation-section .card-heading h2{font-size:var(--fs-h2);flex:auto;margin:0;font-weight:600}.dictation-section .card-heading .section-kicker{flex-basis:100%}.dictation-section .card-heading .reading-note{flex:0 auto;margin:0}.dictation-exercises{grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.dictation-section-more{margin:12px 0 0}.dictation-section-more .secondary-action{cursor:pointer}.dictation-exercise-card a{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);height:100%;color:inherit;gap:4px;padding:16px 18px;text-decoration:none;transition:border-color .15s,background-color .15s;display:grid}@media (hover:hover){.dictation-exercise-card a:hover{border-color:var(--edge-strong);background:var(--surface-subtle)}}.dictation-exercise-card.is-completed a{background:light-dark(#f4f8f2,#1f2a23)}.dictation-exercise-id{font-size:var(--fs-label);letter-spacing:.04em;color:var(--faint);font-variant-numeric:tabular-nums}.dictation-exercise-title{font-size:15px;font-weight:600;line-height:1.35}.dictation-exercise-en{font-size:var(--fs-small);color:var(--muted)}.dictation-exercise-meta{font-size:var(--fs-caption);color:var(--faint);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:4px 6px;margin-top:6px;display:flex}.dictation-exercise-state{font-size:var(--fs-caption);color:var(--faint);align-items:center;gap:6px;margin-top:2px;font-weight:500;display:inline-flex}.is-completed .dictation-exercise-state{color:light-dark(#2f5a3e,#9fd0ad)}.is-started .dictation-exercise-state{color:light-dark(#3f5f86,#a9c1e0)}.dictation-guest-note{margin-top:22px}.dictation-layout{grid-template-areas:"practice side"}.dictation-side{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);grid-area:side;max-height:calc(100vh - 40px);padding:20px 22px;position:sticky;top:20px;overflow:auto}.dictation-side .section-kicker{margin-bottom:10px;display:block}.dictation-segment-list{gap:4px;margin:0 0 12px;padding:0;list-style:none;display:grid}.dictation-segment-list button{width:100%;min-height:40px;color:inherit;text-align:left;background:0 0;border:1px solid #0000;border-radius:10px;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;padding:6px 10px;font-size:13px;display:grid}@media (hover:hover){.dictation-segment-list button:hover{background:var(--soft)}}.dictation-segment-list .is-current button{background:var(--soft);border-color:light-dark(#c9d8c4,#3a4a3e);font-weight:600}.dictation-segment-number{background:var(--app);border:1px solid var(--edge);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;width:26px;height:26px;font-size:12px;display:grid}.is-perfect .dictation-segment-number{color:light-dark(#2f5a3e,#9fd0ad);background:light-dark(#dfeadf,#243529);border-color:light-dark(#c4d8c4,#345040)}.is-tried .dictation-segment-number{color:light-dark(#8a5a1f,#e2b980);background:light-dark(#f6e7cf,#3a2f1c);border-color:light-dark(#e8d3ac,#5a4a2a)}.dictation-segment-speaker{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dictation-segment-state{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.dictation-intro .section-kicker{margin:20px 0 8px;display:block}.dictation-context{font-family:var(--font-serif);letter-spacing:-.1px;max-width:60ch;font-size:18px;line-height:1.6}.dictation-objectives{gap:8px;margin:0;padding:0;list-style:none;display:grid}.dictation-objectives li{font-size:var(--fs-body);flex-wrap:wrap;align-items:flex-start;gap:10px;line-height:1.5;display:flex}.dictation-objectives li svg{color:var(--accent);flex:none;margin-top:3px}.dictation-objective-en{width:100%;font-size:var(--fs-caption);color:var(--muted);padding-left:24px}.dictation-speakers{flex-wrap:wrap;align-items:center;gap:6px;margin-top:16px;display:flex}.dictation-speakers-label{font-size:var(--fs-caption);color:var(--faint);margin-right:4px}.dictation-intro-start{flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:20px;display:flex}.dictation-intro-start .reading-note{margin:0}.dictation-settings{border-top:1px solid var(--edge);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px 24px;margin:20px 0 0;padding-top:16px;display:grid}.dictation-settings .setting>span:first-child{font-size:var(--fs-caption);color:var(--muted);font-weight:600}.dictation-settings .reading-note{font-size:var(--fs-caption);margin:0}.dictation-choice{border:1px solid var(--edge);background:var(--panel);border-radius:8px;gap:0;width:max-content;max-width:100%;margin:4px 0;padding:2px;display:inline-flex}.dictation-choice .filter-chip{min-height:28px;color:var(--muted);background:0 0;border:0;border-radius:6px;padding:0 10px}.dictation-choice .filter-chip[aria-checked=true]{background:var(--soft);color:var(--accent);font-weight:600}.dictation-correction-head,.dictation-stage-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:12px;display:flex}.dictation-stage-head .reading-position{margin:0}.dictation-speaker{letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-size:11px}.dictation-transport{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.dictation-transport button{border:1px solid var(--edge);background:var(--panel);min-height:44px;color:inherit;border-radius:10px;align-items:center;gap:8px;padding:10px 16px;font-size:14px;display:inline-flex}.dictation-play{font-weight:600;background:var(--soft)!important;color:var(--accent)!important;border-color:light-dark(#c9d8c4,#303c2c)!important}.dictation-rate{align-items:center;gap:8px;margin-left:auto;display:flex}.dictation-rate>span{color:var(--muted);font-size:12px}.dictation-count{background:var(--app);border:1px solid var(--edge);font-variant-numeric:tabular-nums;min-width:20px;height:20px;color:var(--muted);border-radius:999px;place-items:center;padding:0 6px;font-size:11px;display:inline-grid}.dictation-answer-label{margin-bottom:6px;font-size:13px;font-weight:600;display:block}.dictation-answer{border:1px solid var(--edge);background:var(--panel);width:100%;min-height:96px;color:var(--ink);font-family:var(--font-serif);resize:vertical;border-radius:12px;padding:14px 16px;font-size:22px;line-height:1.5;display:block}.dictation-answer:focus{border-color:var(--accent);outline:0;box-shadow:0 0 0 3px light-dark(#dfeada,#2a3a30)}.dictation-hints{border:1px dashed var(--edge);background:var(--app);border-radius:10px;margin:12px 0 0;padding:12px 14px;font-size:14px;line-height:1.7}.dictation-hints p{margin:0}.dictation-letters{letter-spacing:1px;flex-wrap:wrap;gap:6px 14px;font-family:ui-monospace,Menlo,monospace;display:flex}.dictation-letters b{color:var(--accent)}.dictation-hint-transcript{font-family:var(--font-serif);font-size:18px}.dictation-confidence{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;font-size:13px;display:flex}.dictation-confidence .filter-chip[aria-checked=true]{background:var(--soft);color:var(--accent);border-color:light-dark(#b9cdb4,#3d5140)}.dictation-stage-actions{margin-top:18px}.dictation-stage-actions kbd{opacity:.85;border:1px solid light-dark(#fff6,#1c252066);border-radius:5px;margin-left:6px;padding:1px 6px;font-family:ui-monospace,Menlo,monospace;font-size:11px}.dictation-figures{color:var(--muted);font-variant-numeric:tabular-nums;margin:0;font-size:14px}.dictation-figures strong{color:var(--ink);font-size:16px}.dictation-result-line{border:1px solid var(--edge);background:var(--app);font-family:var(--font-serif);border-radius:12px;flex-wrap:wrap;gap:8px 10px;margin:0 0 16px;padding:16px 18px;font-size:22px;line-height:1.6;display:flex}.dict-word{border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;padding:2px 6px;display:inline-flex;position:relative}.dict-word s{color:var(--muted);-webkit-text-decoration:line-through light-dark(#b24d48,#e0837d);text-decoration:line-through light-dark(#b24d48,#e0837d)}.dict-word b{font-weight:400}.dict-word ins{text-decoration:none}.dict-word.is-correct{color:light-dark(#2f5a3e,#9fd0ad)}.dict-word.is-spelling{background:light-dark(#fdf5df,#3a2f1c);box-shadow:inset 0 -2px light-dark(#e5c56a,#a68a3a)}.dict-word.is-wrong{background:light-dark(#f9e6e4,#3d2626)}.dict-word.is-missing{background:light-dark(#e6ecf5,#26303d);border:1px dashed light-dark(#3f5f86,#a9c1e0)}.dict-word.is-extra{background:light-dark(#efefef,#2b2b2b)}.dict-word-tag{font-family:var(--font-ui);letter-spacing:.5px;text-transform:uppercase;color:var(--muted);font-size:10px;line-height:1}.dictation-mistakes{gap:6px;margin:0 0 18px;padding:0;font-size:13px;line-height:1.6;list-style:none;display:grid}.dictation-mistakes strong{font-weight:600}.dictation-transcript{border:1px solid var(--edge);background:var(--panel);border-radius:12px;padding:16px 18px}.dictation-transcript-line{font-family:var(--font-serif);margin:6px 0 8px;font-size:22px;line-height:1.55}.dictation-transcript-line .word-button{font:inherit;color:inherit;background:0 0;border:0;border-radius:4px;min-height:0;padding:0 1px}.dictation-transcript-line .spoken-word{background:light-dark(#e3efe0,#2f4a37);border-radius:4px}.dictation-translation{color:var(--muted);font-size:14px;line-height:1.6}.dictation-note{color:light-dark(#8a7844,#c9b57a);margin-top:8px;font-size:13px;font-style:italic;line-height:1.6}.dictation-phenomena{color:var(--muted);gap:4px;margin:8px 0 0;padding:0;font-size:12px;line-height:1.6;list-style:none;display:grid}.dictation-actions{margin-top:18px}.dictation-actions button,.dictation-stage-actions button,.dictation-transport button{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.dictation-actions button.is-saved{color:var(--accent)}.dictation-post-error{color:light-dark(#8a5a1f,#e2b980)}.dictation-results h2{margin:6px 0 4px;font-size:24px;font-weight:600}.dictation-result-figures{grid-template-columns:repeat(4,1fr);margin:16px 0}.dictation-results .section-kicker{margin:18px 0 8px;display:block}.dictation-difficult{gap:6px;margin:0;padding:0;list-style:none;display:grid}.dictation-difficult button{border:1px solid var(--edge);background:var(--app);width:100%;min-height:48px;color:inherit;text-align:left;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 14px;font-size:14px;display:grid}.dictation-difficult button .reading-note{margin:0}.dictation-suggestion{color:var(--accent);margin-top:18px;font-size:15px;font-weight:600}.dictation-results .reading-controls{margin-top:18px}.dictation-results .reading-controls a{justify-content:center;align-items:center;gap:8px;text-decoration:none;display:inline-flex}.dictation-review-list{gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.dictation-review-list a{border:1px solid var(--edge);background:var(--app);min-height:56px;color:inherit;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px;padding:10px 14px;text-decoration:none;display:grid}.dictation-review-list a svg{color:var(--accent);grid-row:1/span 2}.dictation-review-title{font-size:14px;font-weight:600}.dictation-review-list .reading-note{margin:0}.dictation-review .settings-card{margin-top:18px}@media (max-width:900px){.dictation-layout{grid-template-areas:"practice""side"}.dictation-side{max-height:none;padding:18px 20px;position:static;overflow:visible}.dictation-result-figures{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.dictation-exercise-card a{padding:14px 16px}.dictation-exercise-title{font-size:16px}.dictation-answer{min-height:88px;font-size:18px}.dictation-result-line{gap:6px 8px;padding:12px 14px;font-size:18px}.dictation-transcript-line{font-size:19px}.dictation-rate{width:100%;margin-left:0}.dictation-transport button{flex:1;justify-content:center}.dictation-segment-list button{min-height:44px}.dictation-stage-actions kbd{display:none}.dict-word-tag,.dictation-speaker,.dictation-word-tag{font-size:12px}}.admin-tabs{flex-wrap:wrap;gap:6px;margin:0 0 14px;display:flex}.admin-tabs a{min-height:var(--control-sm);border:1px solid var(--edge);border-radius:var(--pill);background:var(--panel);color:var(--muted);font-size:var(--fs-small);align-items:center;padding:0 12px;font-weight:500;text-decoration:none;transition:background-color .15s,color .15s;display:inline-flex}.admin-tabs a:hover{background:var(--surface-subtle);color:var(--ink)}.admin-tabs a[aria-current=page]{background:var(--soft);color:var(--accent);border-color:light-dark(#b9d1bf,#3f5a4b);font-weight:600}.professional-filter-bar{flex-wrap:wrap;align-items:flex-end;gap:12px 16px;margin-bottom:18px;display:flex}.professional-filter-bar .setting{min-width:180px}@media (max-width:600px){.admin-tabs a{min-height:44px}.professional-filter-bar .setting{min-width:100%}}.admin-video-form{gap:4px;display:grid}.admin-video-form .admin-search{margin-top:10px}.admin-video-form .admin-search .setting,.admin-video-form .admin-search label{color:var(--muted);flex:220px;gap:6px;font-size:12px;display:grid}.admin-video-form .admin-video-url{flex:2 360px}.admin-video-form .primary-action{align-self:flex-end}.admin-video-form .admin-issued,.admin-video-form .error-banner{margin-top:14px}.admin-video-cell{align-items:flex-start;gap:12px;min-width:260px;display:flex}.admin-video-cell img{object-fit:cover;background:var(--soft);border-radius:8px;flex:none;width:96px;height:54px}.admin-video-cell div{gap:3px;min-width:0;display:grid}.admin-video-cell strong{font-size:13px;font-weight:600;line-height:1.4}.admin-video-cell span{color:var(--muted);overflow-wrap:anywhere;font-size:12px}.admin-video-level{white-space:nowrap;gap:4px;font-size:12px;display:grid}.admin-video-level small{color:var(--muted);white-space:normal;font-size:11px}.admin-video-state{justify-items:start;gap:5px;min-width:160px;display:grid}.admin-video-level .level-pill{justify-self:start}.admin-video-state small{color:var(--muted);font-size:12px;line-height:1.5}.admin-video-error{color:var(--danger)}.admin-video-actions{flex-wrap:wrap;gap:2px;display:flex}.admin-video-actions .text-button{min-height:36px;color:var(--accent)}@media (max-width:600px){.admin-video-actions .text-button{min-height:44px}.admin-video-cell,.admin-video-state{min-width:0}}.session-card{border:1px solid var(--edge);border-radius:var(--radius-lg);background:var(--panel);margin:0 0 32px;overflow:hidden}.session-card-head{border-bottom:1px solid var(--edge);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px 24px;padding:20px 24px 18px;display:flex}.session-card-title{flex:320px;min-width:0}.session-card-title h2{font-family:var(--font-serif);letter-spacing:-.3px;font-size:22px;font-weight:400;line-height:1.3}.session-card-summary{font-size:var(--fs-small);line-height:var(--lh-body);color:var(--muted);max-width:64ch;margin-top:6px}.session-card-summary strong{color:var(--ink);font-weight:600}.session-actions{flex-wrap:wrap;flex:none;align-items:center;gap:8px;display:flex}.session-actions .secondary-action{text-decoration:none}.session-finished{color:var(--accent);gap:8px;font-weight:600;display:inline-flex}.session-finished,.session-level{font-size:var(--fs-small);align-items:center}.session-level{border-bottom:1px solid var(--edge);color:var(--muted);flex-wrap:wrap;gap:6px 12px;padding:10px 24px;display:flex}.session-level>span:first-child{color:var(--ink);font-weight:600}.session-level-note{color:var(--faint);font-size:var(--fs-caption)}.session-steps{gap:0;margin:0;padding:4px 8px;list-style:none;display:grid}.session-step{border-bottom:1px solid var(--edge);border-radius:8px;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:52px;padding:8px 12px;display:grid}.session-step:last-child{border-bottom:0}.session-step.is-current{background:var(--soft)}.session-step.is-done{opacity:.6}.session-step-number{border:1px solid var(--edge-strong);width:26px;height:26px;font-size:var(--fs-caption);font-variant-numeric:tabular-nums;color:var(--muted);border-radius:50%;place-items:center;font-weight:600;display:grid}.session-step.is-current .session-step-number{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.session-step.is-done .session-step-number{color:var(--accent);border-color:var(--accent)}.session-step-body{gap:1px;min-width:0;display:grid}.session-step-kind{font-size:var(--fs-body);font-weight:600}.session-step-why{font-size:var(--fs-caption);color:var(--muted);line-height:1.5}.session-step-state{font-size:var(--fs-caption);color:var(--accent);font-weight:600}.session-step-open{font-size:var(--fs-small);color:var(--accent);border-radius:6px;padding:8px 10px;font-weight:500}@media (hover:hover){.session-step-open:hover{background:light-dark(#dfe9dc,#2b3a31)}}.session-card-note{font-size:var(--fs-caption);color:var(--faint);border-top:1px solid var(--edge);padding:10px 20px 14px;line-height:1.5}.session-bar{width:calc(100% - 2 * var(--gutter));max-width:calc(var(--content-max) - 2 * var(--gutter));border-radius:var(--radius);background:var(--soft);font-size:var(--fs-small);top:calc(var(--topbar) + 8px);z-index:20;border:1px solid light-dark(#c9d8c4,#3a4a3e);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:12px auto -12px;padding:8px 8px 8px 14px;display:flex;position:sticky}.session-bar-label{color:var(--accent);align-items:center;gap:8px;font-weight:600;display:inline-flex}.session-bar-home{color:var(--muted);text-underline-offset:3px;padding:8px 4px;text-decoration:underline}.session-bar .primary-action{min-height:var(--control-sm);font-size:var(--fs-small);padding:0 12px}.ear-page .page-heading .eyebrow a{text-decoration:none}.ear-summary{margin-top:0}.ear-summary .dictation-track-meta{font-size:var(--fs-body);color:var(--ink);margin-top:0;font-weight:600}.ear-summary .reading-note{margin-top:6px}.ear-summary .section-kicker{margin-top:16px;display:block}.ear-all{margin-top:8px}.ear-all-title{font-size:var(--fs-h3);margin:0 0 4px;font-weight:600}.ear-feature-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.ear-named{margin-top:8px}.ear-feature-link{border-bottom:1px solid var(--edge);min-height:44px;color:inherit;border-radius:6px;grid-template-columns:minmax(120px,1fr) minmax(80px,2fr) auto 16px;align-items:center;gap:12px;padding:8px;text-decoration:none;transition:background-color .15s;display:grid}.ear-feature-row:last-child .ear-feature-link{border-bottom:0}@media (hover:hover){.ear-feature-link:hover{background:var(--surface-subtle)}}.ear-feature-link>svg{color:var(--faint)}.ear-feature-name{font-size:var(--fs-body);font-weight:500}.ear-feature-row.is-named .ear-feature-name{font-weight:600}.ear-feature-bar{background:light-dark(#e6ebdf,#2a2e25);border-radius:4px;height:4px;overflow:hidden}.ear-feature-fill{background:var(--accent);border-radius:4px;height:100%;transition:width .3s;display:block}.ear-feature-bar:empty{visibility:hidden}.ear-feature-figures{font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.ear-feature-thin{color:var(--faint)}.ear-trend.is-trendBetter{color:var(--accent);font-weight:600}.ear-trend.is-trendWorse{color:var(--danger);font-weight:600}.ear-card .settings-card{margin-top:16px}.ear-card .page-heading h1:first-letter{text-transform:uppercase}.ear-why{margin-top:10px;font-size:14px;line-height:1.75}.ear-examples{font-family:var(--font-serif);color:var(--accent);margin-top:12px;font-size:16px}.ear-listen-for{gap:8px;margin:10px 0 0;padding-left:20px;font-size:14px;line-height:1.7;display:grid}.ear-sample{margin-top:12px}.ear-sample-line{font-family:var(--font-serif);letter-spacing:-.3px;font-size:22px;line-height:1.5}.ear-sample-feature{border-bottom:2px solid var(--accent);color:var(--accent)}.ear-sample-line .spoken-word{background:var(--soft);border-radius:4px}.ear-sample-translation{color:var(--muted);margin-top:8px;font-size:13px;line-height:1.6}.ear-sample-speeds{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.ear-sample-speeds button{align-items:center;gap:6px;min-height:44px;padding:8px 14px;font-size:12px;display:inline-flex}.ear-sample-speeds button.is-active{background:var(--soft);border-color:var(--accent)}.ear-sample-source{color:var(--muted);margin-top:12px;font-size:12px}.ear-sample-source a{color:var(--accent);text-underline-offset:3px;align-items:center;gap:4px;text-decoration:underline;display:inline-flex}@media (max-width:900px){.session-bar{margin:8px auto -8px}}@media (max-width:600px){.session-card-head{padding:16px 16px 14px}.session-level{padding:10px 16px}.session-level-note{flex-basis:100%}.session-actions{width:100%}.session-actions .primary-action{flex:1;justify-content:center}.session-steps{padding:4px}.session-step{grid-template-columns:26px minmax(0,1fr) auto;padding:10px 8px}.session-step-open{padding:8px 6px}.session-card-note{padding:10px 12px 12px}.session-bar{margin:8px auto -4px;position:static}.ear-feature-link{grid-template-columns:minmax(0,1fr) 16px;row-gap:6px}.ear-feature-bar{grid-column:1/-1}.ear-feature-bar:empty{display:none}.ear-feature-figures{white-space:normal}.ear-sample-line{font-size:19px}}.content.fame-page{--fame-gold:light-dark(#ddbe85,#ddbe85);--fame-ink:light-dark(#f5eddf,#f5eddf);--fame-muted:light-dark(#b9b9b5,#b9b9b5);--fame-edge:light-dark(#514b40,#514b40);max-width:none;color:var(--fame-ink);background:light-dark(#111923,#0c131b);padding:32px clamp(20px,5vw,72px) 64px}.fame-heading{text-align:center;padding:40px 0 32px;position:relative}.fame-heading>a{text-align:left;color:var(--fame-muted);font-size:var(--fs-small);min-height:44px;margin-bottom:36px;display:block}.fame-page .section-kicker{color:var(--fame-gold)}.fame-heading h1{font-family:var(--font-serif);letter-spacing:-.04em;color:var(--fame-ink);margin:12px 0;font-size:clamp(38px,5.5vw,76px);font-weight:400;line-height:1.12}.fame-heading p{color:var(--fame-muted);font-size:var(--fs-body)}.fame-heading .new-badge{color:var(--fame-gold);border-color:var(--fame-edge);font-size:12px}.fame-stage{border-top:1px solid var(--fame-edge);border-bottom:1px solid var(--fame-edge);padding:24px 0 0;position:relative}.fame-edition{font-size:var(--fs-caption);letter-spacing:.1em;color:var(--fame-muted);justify-content:space-between;gap:16px;display:flex}.fame-monument{isolation:isolate;place-items:center;height:350px;display:grid;position:relative}.fame-monument>.rank-mark{z-index:2;width:270px;height:270px}.fame-numeral{font-family:var(--font-serif);color:light-dark(#ddbe8512,#ddbe8512);letter-spacing:-.08em;font-size:340px;line-height:1;top:0;left:50%;transform:translate(-50%)}.fame-numeral,.fame-orbit{z-index:-1;position:absolute}.fame-orbit{border:1px solid light-dark(#ddbe8540,#ddbe8540);border-radius:50%;width:310px;height:310px;top:5px;transform:rotate(-25deg)scaleX(1.4)}.fame-orbit:after{content:"";border:1px solid light-dark(#ddbe8520,#ddbe8520);border-radius:50%;position:absolute;inset:20px}.fame-plinth{border:1px solid var(--fame-edge);background:light-dark(#1d252c,#1d252c);border-radius:50%;width:230px;height:30px;position:absolute;bottom:4px;box-shadow:0 9px light-dark(#080e16,#080e16)}.fame-winner{text-align:center;padding:22px 0 32px}.fame-winner h2{font-family:var(--font-serif);letter-spacing:-.025em;color:var(--fame-ink);margin:10px 0;font-size:clamp(32px,4vw,52px);font-weight:400}.fame-winner p{color:var(--fame-muted);font-size:var(--fs-small)}.fame-season-picker{border-top:1px solid var(--fame-edge);justify-content:center;display:flex}.fame-season-picker button{width:190px;color:var(--fame-muted);font-size:var(--fs-small);background:0 0;border:0;border-top:2px solid #0000;border-radius:0;justify-content:center;align-items:center;gap:12px;padding:14px;display:flex}.fame-season-picker button[aria-pressed=true]{border-top-color:var(--fame-gold);color:var(--fame-gold);background:light-dark(#ddbe850c,#ddbe850c)}.fame-season-picker .rank-mark{width:54px;height:54px}.fame-personal{grid-template-columns:1.2fr 1fr;align-items:center;gap:64px;padding:64px 0;display:grid}.fame-personal h2{font-family:var(--font-serif);letter-spacing:-.035em;color:var(--fame-ink);margin:16px 0;font-size:clamp(32px,4vw,48px);font-weight:400;line-height:1.15}.fame-personal p{color:var(--fame-muted);max-width:42ch}.fame-personal-record{border:1px solid var(--fame-edge);background:light-dark(#18222c,#18222c);padding:28px 32px;position:relative}.fame-record-number{font-family:var(--font-serif);color:var(--fame-gold);font-size:72px;line-height:1}.fame-personal-record h3{font-size:var(--fs-body);color:var(--fame-ink);margin:10px 0;font-weight:500}.fame-personal-record p{font-size:var(--fs-small)}.fame-personal-record :is(button,a){background:var(--fame-gold);border-color:var(--fame-gold);color:light-dark(#15202b,#15202b);min-height:44px;margin:24px 0 16px}.fame-personal-record small{font-size:var(--fs-caption);color:var(--fame-muted);display:block}.fame-values{border-top:1px solid var(--fame-edge);grid-template-columns:repeat(3,1fr);gap:32px;padding-top:32px;display:grid}.fame-values article>span{font-family:var(--font-serif);color:var(--fame-gold);font-size:32px}.fame-values h3{font-size:var(--fs-h3);color:var(--fame-ink);margin:12px 0}.fame-values p{font-size:var(--fs-small);color:var(--fame-muted);max-width:30ch}.fame-page :focus-visible{outline:2px solid var(--fame-gold);outline-offset:4px}.fame-dialog{border:1px solid var(--fame-edge);width:calc(100vw - 32px);max-width:440px;color:var(--fame-ink);text-align:center;background:light-dark(#111923,#111923);border-radius:8px;padding:32px}.fame-dialog::backdrop{background:light-dark(#050b12cc,#050b12cc)}.fame-dialog>.text-button{min-height:44px;color:var(--fame-muted);margin-left:auto;display:block}.fame-dialog>.rank-mark{width:130px;height:130px;margin:12px auto;display:block}.fame-dialog>.section-kicker{display:block}.fame-dialog h2{font-family:var(--font-serif);color:var(--fame-ink);margin:16px 0;font-size:28px}.fame-dialog p{color:var(--fame-muted);font-size:var(--fs-small)}.fame-dialog>.primary-action{background:var(--fame-gold);border-color:var(--fame-gold);color:light-dark(#15202b,#15202b);min-height:44px;margin-top:24px}@media (max-width:600px){.content.fame-page{padding:20px 20px 40px}.fame-heading{padding:0 0 28px}.fame-heading>a{margin-bottom:20px}.fame-monument{height:285px}.fame-monument>.rank-mark{width:220px;height:220px}.fame-numeral{font-size:270px}.fame-orbit{width:235px;height:235px;top:12px;transform:rotate(-25deg)scaleX(1.2)}.fame-edition{letter-spacing:0;font-size:12px}.fame-personal{grid-template-columns:1fr;gap:24px;padding:40px 0}.fame-season-picker button{flex-direction:column;flex:1;gap:4px;padding:12px 6px}.fame-values{grid-template-columns:1fr;gap:28px}.fame-values article{grid-template-columns:40px 1fr;gap:0 16px;display:grid}.fame-values article>span{grid-row:1/3}.fame-values h3{margin:0 0 8px}.fame-values p{grid-column:2}}.content.league-page{color:light-dark(#eaf0f5,#eaf0f5);--app:light-dark(#101b23,#0b131b);--panel:light-dark(#16232e,#111e28);--edge:light-dark(#2d3c48,#2b3945);--edge-strong:light-dark(#52616d,#52616d);--muted:light-dark(#aab9c6,#aab9c6);--accent:light-dark(#dfc08a,#dfc08a);--accent-hover:light-dark(#f2d7a6,#f2d7a6);--accent-ink:light-dark(#1b2027,#1b2027);--soft:light-dark(#26333d,#26333d);background:light-dark(#101b23,#0b131b);max-width:none;margin:0;padding:40px clamp(20px,4vw,64px) 64px}.league-page:after,.league-page:before{display:none}.league-page .league-heading{grid-template-columns:1fr auto;column-gap:32px;max-width:none;margin:0 0 36px;padding:0;display:grid}.league-page .league-heading .eyebrow{grid-column:1/-1}.league-page .league-heading h1{letter-spacing:-.035em;font-size:44px}.league-page .league-heading>p:not(.page-meta){grid-column:1;max-width:58ch}.league-page .league-heading .page-meta{text-align:right;border-left:1px solid var(--edge);grid-area:2/2/4;align-self:center;gap:8px;padding-left:28px;display:grid}.league-page .league-climb{border:0;grid-template-columns:1fr 1.15fr;margin:0;position:relative}.league-page .league-position{border:0;gap:16px;padding:30px 32px 32px 0}.league-page .league-position-main{gap:24px}.league-page .league-position-main>.rank-mark{width:148px;height:148px}.league-page .league-position-main strong{font-family:var(--font-ui);letter-spacing:-.05em;margin-top:10px;font-size:48px;font-weight:600}.league-page .league-rank-name{font-size:26px}.league-page .league-movement{margin-left:172px;font-size:12px}.league-page .league-route{border-left:1px solid var(--edge);align-self:center;padding:24px 0 24px 40px}.league-page .league-route-heading{display:block}.league-page .league-route-heading h2{margin:8px 0 14px;font-size:26px}.league-page .league-route-heading>b{font-size:14px}.league-page .league-progress{background:var(--edge);height:4px;margin-top:20px}.league-rank-gallery{border-top:1px solid var(--edge);border-bottom:1px solid var(--edge);grid-column:1/-1;padding:24px 0 32px}.league-page .rank-journey{flex-wrap:nowrap;gap:12px;margin:0;padding:8px 0}.league-page .rank-journey li{flex:1;gap:16px;min-width:0;font-size:12px}.league-page .rank-journey .rank-mark{width:clamp(64px,7vw,106px);height:clamp(64px,7vw,106px)}.league-page .rank-journey li:after,.league-page .rank-journey:before{display:none}.league-page .league-next{background:var(--panel);border:1px solid var(--edge);border-left:3px solid var(--accent);border-radius:4px;align-items:center;margin:28px 0 8px;padding:24px 28px}.league-page .league-next:before{display:none}.league-page .league-next h2{font-size:28px}.league-page .league-next .primary-action{border-radius:4px;flex:none;min-height:48px;padding:0 24px}.league-page .league-list-section{margin:0;padding:32px 0 20px}.league-page .league-section-heading{align-items:center}.league-page .league-section-heading h2{font-size:23px;font-family:var(--font-serif);font-weight:400}.league-page .league-competitors{margin-top:24px}.league-page .league-competitors li{grid-template-columns:90px minmax(0,1fr) auto auto;min-height:64px;padding:0 20px;font-size:14px}.league-page .competitor-position{font-size:16px}.league-page .competitor-name{align-items:center;gap:14px;display:flex}.league-page .competitor-name:before{content:"";border:1px solid var(--edge-strong);background:var(--panel);border-radius:50%;width:24px;height:24px}.league-page .league-competitors .competitor-current{box-shadow:inset 3px 0 0 var(--accent);background:light-dark(#293744,#293744);margin:0}.league-page .competitor-current .competitor-name:before{border-color:var(--accent);background:var(--soft)}.league-page .league-lower{background:0 0;border:0;gap:48px;margin:0}.league-page .league-lower .league-list-section{background:0 0;padding:28px 0}.league-page .league-lower .league-competitors li{grid-template-columns:54px minmax(0,1fr) auto auto;padding:0;font-size:13px}.league-page .league-lower .competitor-name:before{display:none}.league-page .league-hall-link{border-top:1px solid var(--edge);margin:20px 0 0;padding:24px 0 0}@media (max-width:900px){.league-page .league-heading{display:block}.league-page .league-heading .page-meta{text-align:left;border:0;flex-wrap:wrap;margin-top:20px;padding:0;display:flex}.league-page .league-climb{grid-template-columns:1fr}.league-page .league-position{padding:0 0 24px;display:block}.league-page .league-position-main{margin-top:16px}.league-page .league-movement{margin-top:12px}.league-page .league-route{border-left:0;border-top:1px solid var(--edge);padding:24px 0}.league-page .rank-journey{flex-wrap:wrap;justify-content:center;gap:24px 8px}.league-page .rank-journey li{flex:0 0 calc(25% - 8px)}.league-page .rank-journey .rank-mark{width:80px;height:80px}}@media (max-width:600px){.content.league-page{padding:24px 20px 40px}.league-page .league-heading h1{font-size:36px}.league-page .league-position-main{gap:16px}.league-page .league-position-main>.rank-mark{width:116px;height:116px}.league-page .league-position-main strong{font-size:40px}.league-page .league-movement{margin-left:132px}.league-page .league-next{align-items:stretch;padding:22px 20px}.league-page .league-next h2{font-size:25px}.league-page .league-section-heading{align-items:start}.league-page .league-competitors li{grid-template-columns:66px minmax(0,1fr) auto;gap:8px;padding:0 10px;font-size:12px}.league-page .competitor-position{font-size:13px}.league-page .competitor-name{gap:8px}.league-page .competitor-name:before{flex:none;width:16px;height:16px}.league-page .rank-journey .rank-mark{width:66px;height:66px}.league-page .league-lower{display:block}.league-page .league-lower .league-competitors li{grid-template-columns:54px minmax(0,1fr) auto}.league-page .league-route-heading h2{font-size:24px}}.rank-mark{--rank-metal:light-dark(#bc8d63,#bc8d63);--rank-highlight:light-dark(#ffe2bb,#ffe2bb);--rank-shadow:light-dark(#543b2c,#543b2c);--rank-gem:light-dark(#ddad7c,#ddad7c);width:100px;height:100px;color:var(--rank-metal);isolation:isolate;background:0 0;border:0;border-radius:0;flex:none;padding:0;display:inline-block;position:relative}.rank-mark-explorer{--rank-metal:light-dark(#96b5cc,#96b5cc);--rank-highlight:light-dark(#e8f7ff,#e8f7ff);--rank-shadow:light-dark(#354e68,#354e68);--rank-gem:light-dark(#72c1f2,#72c1f2)}.rank-mark-speaker{--rank-metal:light-dark(#d9ad51,#d9ad51);--rank-highlight:light-dark(#fff1b2,#fff1b2);--rank-shadow:light-dark(#715021,#715021);--rank-gem:light-dark(#ffc956,#ffc956)}.rank-mark-fluent{--rank-metal:light-dark(#68bba8,#68bba8);--rank-highlight:light-dark(#c3fff2,#c3fff2);--rank-shadow:light-dark(#235e57,#235e57);--rank-gem:light-dark(#63efd5,#63efd5)}.rank-mark-elite{--rank-metal:light-dark(#89a9e5,#89a9e5);--rank-highlight:light-dark(#e0ecff,#e0ecff);--rank-shadow:light-dark(#344974,#344974);--rank-gem:light-dark(#91c5ff,#91c5ff)}.rank-mark-master{--rank-metal:light-dark(#b38add,#b38add);--rank-highlight:light-dark(#f0d9ff,#f0d9ff);--rank-shadow:light-dark(#55336e,#55336e);--rank-gem:light-dark(#d39aff,#d39aff)}.rank-mark-legend{--rank-metal:light-dark(#e3b86a,#e3b86a);--rank-highlight:light-dark(#fff3b7,#fff3b7);--rank-shadow:light-dark(#78522a,#78522a);--rank-gem:light-dark(#ff886b,#ff886b)}.rank-mark svg{filter:drop-shadow(0 7px 5px light-dark(#0006,#0006));width:100%;height:100%;display:block;overflow:visible}.rank-crown,.rank-frame{fill:var(--rank-metal);stroke:var(--rank-highlight);stroke-width:1.3px;stroke-linejoin:round}.rank-bevel{fill:var(--rank-shadow);stroke:var(--rank-highlight);stroke-width:.65px}.rank-face{fill:light-dark(#17212c,#17212c);stroke:var(--rank-metal);stroke-width:1.5px}.rank-crystal{fill:var(--rank-gem);stroke:var(--rank-highlight);stroke-width:.8px}.rank-facet{fill:var(--rank-shadow);opacity:.55}.rank-shine{fill:var(--rank-highlight);opacity:.85}.rank-wings{fill:var(--rank-shadow);stroke:var(--rank-metal);stroke-width:2px;stroke-linejoin:round}.rank-wing-tips{fill:var(--rank-metal);stroke:var(--rank-highlight);stroke-width:.8px}.rank-sovereign,.rank-star{fill:var(--rank-highlight);stroke:var(--rank-metal);stroke-width:1.1px}.rank-mark em{border:1px solid var(--rank-metal);color:var(--rank-highlight);letter-spacing:.12em;background:light-dark(#17212c,#17212c);border-radius:2px;padding:2px 9px;font-size:12px;bottom:0;left:50%;right:auto;transform:translate(-50%)}.rank-mark-compact{width:80px;height:80px;padding:0}.rank-journey{align-items:end;gap:8px;margin-top:26px;padding:20px 0 8px}.rank-journey:before{background:light-dark(#ae91644d,#ae91644d);inset:auto 5% 38px}.rank-journey li{color:var(--muted);flex:1;gap:14px;font-size:12px;line-height:1.4}.rank-journey li:after{content:"";background:var(--app);border:1px solid var(--edge-strong);width:9px;height:9px;position:absolute;bottom:33px;transform:rotate(45deg)}.rank-journey .journey-current .rank-mark,.rank-journey .rank-mark{background:0 0;border:0}.rank-journey .journey-current:after{background:var(--rank-highlight,var(--accent));border-color:var(--accent)}.rank-journey .journey-current svg{filter:drop-shadow(0 0 12px light-dark(#e7b47266,#e7b47266))}.rank-journey .journey-current>span:last-child{color:light-dark(#ffe2bb,#ffe2bb)}.hall-champion>.rank-mark{width:160px;height:160px;box-shadow:none;background:0 0;border:0;padding:0}@media (max-width:1150px){.rank-journey{flex-wrap:wrap;justify-content:center;gap:24px 8px}.rank-journey li{flex:0 0 calc(25% - 8px)}.rank-journey li:after,.rank-journey:before{display:none}}@media (max-width:600px){.rank-journey{gap:24px 4px}.rank-journey li{flex-basis:calc(25% - 4px);font-size:12px}.rank-mark-compact{width:70px;height:70px}.rank-journey li{gap:8px}.hall-champion>.rank-mark{width:100px;height:100px}}.content.profile-page{--app:light-dark(#101b23,#0b131b);--panel:light-dark(#16232e,#111e28);--surface-subtle:light-dark(#1c2a36,#162330);--ink:light-dark(#eaf0f5,#eaf0f5);--muted:light-dark(#aab9c6,#aab9c6);--faint:light-dark(#8e9dab,#8e9dab);--edge:light-dark(#2d3c48,#2b3945);--edge-strong:light-dark(#52616d,#52616d);--soft:light-dark(#26333d,#26333d);--accent:light-dark(#9edcb0,#9edcb0);--accent-hover:light-dark(#b8e8c5,#b8e8c5);--accent-ink:light-dark(#08120c,#08120c);--focus:light-dark(#b8e8c5,#b8e8c5);--profile-gold:light-dark(#dfc08a,#dfc08a);background:var(--app);max-width:none;color:var(--ink);margin:0;padding:40px clamp(20px,4vw,64px) 64px}.profile-page>*{max-width:1000px;margin-left:auto;margin-right:auto}.profile-page :is(h1,h2,h3){color:var(--ink)}.profile-page .new-badge{color:var(--accent);border-color:var(--accent)}.profile-page .page-heading p{color:var(--muted)}.profile-page .empty-state,.profile-page .loading{margin-top:28px}.profile-identity{border-top:1px solid var(--edge);border-bottom:1px solid var(--edge);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:20px 24px;padding:28px 0;display:grid}.profile-avatar{border:1px solid var(--edge-strong);background:var(--soft);width:64px;height:64px;color:var(--ink);font-family:var(--font-serif);border-radius:50%;align-self:start;place-items:center;font-size:28px;line-height:1;display:grid}.profile-identity-copy{min-width:0}.profile-identity-copy h2{font-family:var(--font-serif);letter-spacing:-.03em;overflow-wrap:anywhere;font-size:clamp(28px,3.4vw,40px);font-weight:400;line-height:1.1}.profile-identity-copy p{font-size:var(--fs-small);color:var(--muted);margin-top:6px}.profile-identity-copy .profile-week-line{font-size:var(--fs-body);color:var(--ink);margin-top:10px}.profile-identity-copy .secondary-action{min-height:var(--control-sm);font-size:var(--fs-small);margin-top:14px}.profile-identity-rank{font-size:var(--fs-caption);color:var(--muted);justify-items:center;gap:6px;display:grid}.profile-identity-rank .rank-mark{width:132px;height:132px}.profile-account,.profile-achievements,.profile-highlight,.profile-rhythm,.profile-standing{border-bottom:1px solid var(--edge);padding:28px 0}.profile-account{scroll-margin-top:calc(var(--topbar) + 16px);border-bottom:0}.profile-section-heading{justify-content:space-between;align-items:end;gap:16px;display:flex}.profile-section-heading h2{font-family:var(--font-serif);margin-top:5px;font-size:24px;font-weight:400;line-height:1.2}.profile-section-heading>b,.profile-section-heading>span{font-size:var(--fs-small);color:var(--muted);font-variant-numeric:tabular-nums;flex:none}.profile-section-heading>b{color:var(--ink);font-weight:600}.profile-progress{background:var(--edge);border-radius:var(--pill);height:6px;margin-top:20px;overflow:hidden}.profile-progress i{background:var(--accent);border-radius:inherit;height:100%;transition:width .25s;display:block}.profile-progress-line{font-size:var(--fs-small);color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;margin-top:8px;display:flex}.profile-note{font-size:var(--fs-caption);color:var(--faint);margin-top:12px;line-height:1.6}.profile-standing-links{flex-wrap:wrap;gap:4px 20px;margin-top:12px;display:flex}.profile-standing-links a{min-height:40px;font-size:var(--fs-small);color:var(--accent);align-items:center;gap:6px;font-weight:600;display:inline-flex}.profile-standing-links a:hover{text-underline-offset:3px;text-decoration:underline}.profile-highlight-body{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:24px;margin-top:12px;display:grid}.profile-highlight-number{font-family:var(--font-serif);letter-spacing:-.04em;color:var(--profile-gold);font-variant-numeric:tabular-nums;font-size:clamp(64px,9vw,96px);line-height:1}.profile-highlight h2{font-family:var(--font-serif);font-size:24px;font-weight:400;line-height:1.2}.profile-highlight p{font-size:var(--fs-small);color:var(--muted);margin-top:6px}.profile-highlight .secondary-action{margin-top:14px}.profile-rhythm-body{grid-template-columns:minmax(0,1.3fr) minmax(260px,1fr);align-items:start;gap:32px;margin-top:20px;display:grid}.profile-calendar{grid-template-columns:repeat(12,minmax(14px,34px));gap:4px;padding-bottom:4px;display:grid;overflow-x:auto}.profile-calendar-week{grid-template-rows:repeat(7,1fr);gap:4px;display:grid}.profile-calendar-day{aspect-ratio:1;background:var(--surface-subtle);border:1px solid #0000;border-radius:4px;display:block}.profile-calendar-day.level-1{background:light-dark(#27503d,#27503d)}.profile-calendar-day.level-2{background:light-dark(#34715a,#34715a)}.profile-calendar-day.level-3{background:light-dark(#4d9a76,#4d9a76)}.profile-calendar-day.level-4{background:var(--accent)}.profile-calendar-day.is-today{border-color:var(--edge-strong)}.profile-calendar-day.is-future{border-color:var(--edge);background:0 0}.profile-figures{margin:0;display:grid}.profile-figures>div{border-bottom:1px solid var(--edge);justify-content:space-between;align-items:baseline;gap:12px;min-height:48px;padding:10px 0;display:flex}.profile-figures>div:last-child{border-bottom:0}.profile-figures dt{font-size:var(--fs-small);color:var(--muted)}.profile-figures dd{font-family:var(--font-serif);color:var(--ink);font-variant-numeric:tabular-nums;text-align:right;margin:0;font-size:22px;line-height:1.1}.profile-earned{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:0 32px;margin:16px 0 0;padding:0;list-style:none;display:grid}.profile-earned li{border-bottom:1px solid var(--edge);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:2px 12px;padding:12px 0;display:grid}.profile-earned-mark{border:1px solid var(--profile-gold);width:28px;height:28px;color:var(--profile-gold);border-radius:50%;grid-row:1/3;place-items:center;display:grid}.profile-earned b{font-size:var(--fs-body);font-weight:600}.profile-earned li>span:last-child{font-size:var(--fs-caption);color:var(--muted)}.profile-goals{margin-top:24px}.profile-goals ul{margin:10px 0 0;padding:0;list-style:none}.profile-goals li{border-bottom:1px solid var(--edge);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 16px;padding:14px 0;display:grid}.profile-goals li:last-child{border-bottom:0}.profile-goal-copy{gap:2px;display:grid}.profile-goal-copy b{font-size:var(--fs-body);font-weight:600}.profile-goal-copy span{font-size:var(--fs-caption);color:var(--muted)}.profile-goal-progress{font-size:var(--fs-small);color:var(--muted);font-variant-numeric:tabular-nums}.profile-goal-bar{grid-column:1/-1;height:4px;margin-top:0}.profile-rows{margin:16px 0 0;display:grid}.profile-rows>div{border-bottom:1px solid var(--edge);grid-template-columns:110px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:48px;padding:6px 0;display:grid}.profile-rows dt{font-size:var(--fs-caption);letter-spacing:.3px;color:var(--muted)}.profile-rows dd{font-size:var(--fs-body);color:var(--ink);overflow-wrap:anywhere;font-variant-numeric:tabular-nums;margin:0}.profile-rows .text-button{font-size:var(--fs-small);color:var(--accent);border-radius:8px;padding:6px 10px;font-weight:600}.profile-rows .text-button:hover{background:var(--soft)}.profile-links{gap:2px;margin:8px -8px 0;display:grid}.profile-links a{min-height:44px;font-size:var(--fs-small);color:var(--ink);border-radius:9px;justify-content:space-between;align-items:center;gap:10px;padding:0 8px;display:flex}.profile-links a svg{color:var(--muted)}.profile-links a:hover{background:var(--soft)}.profile-links a:hover svg{color:var(--accent)}.profile-account-foot{margin-top:12px}.profile-account-foot .text-button{color:var(--accent);font-size:var(--fs-small);padding:6px 0}@media (max-width:900px){.profile-rhythm-body{grid-template-columns:1fr;gap:20px}.profile-identity-rank .rank-mark{width:104px;height:104px}}@media (max-width:700px){.content.profile-page{margin-left:calc(-1 * var(--gutter));margin-right:calc(-1 * var(--gutter));padding:24px 20px 40px}.profile-identity{grid-template-columns:auto minmax(0,1fr);gap:16px}.profile-identity-rank{grid-column:1/-1;align-items:center;gap:14px;display:flex}.profile-section-heading{flex-direction:column;align-items:start;gap:6px}.profile-highlight-body{gap:12px}.profile-earned,.profile-highlight-body{grid-template-columns:1fr}}@media (max-width:600px){.profile-avatar{width:52px;height:52px;font-size:24px}.profile-rows>div{grid-template-columns:minmax(0,1fr) auto;row-gap:2px;padding:10px 0}.profile-rows dt{grid-column:1/-1}.profile-calendar{grid-template-columns:repeat(12,minmax(20px,1fr))}.profile-highlight-number{font-size:56px}}.rank-strip{--app:light-dark(#101b23,#0b131b);--panel:light-dark(#16232e,#111e28);--ink:light-dark(#eaf0f5,#eaf0f5);--muted:light-dark(#aab9c6,#aab9c6);--edge:light-dark(#2d3c48,#2b3945);--edge-strong:light-dark(#52616d,#52616d);--accent:light-dark(#9edcb0,#9edcb0);--focus:light-dark(#b8e8c5,#b8e8c5);border:1px solid var(--edge);border-radius:var(--radius-lg);background:var(--app);min-height:132px;color:var(--ink);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px 24px;margin-bottom:16px;padding:20px 26px;display:grid}.rank-strip>.rank-mark{width:92px;height:92px}.rank-strip-body{min-width:0}.rank-strip-rank{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.rank-strip-rank b{font-family:var(--font-serif);font-size:22px;font-weight:400;line-height:1.2}.rank-strip-rank span{font-size:var(--fs-small);color:var(--muted);font-variant-numeric:tabular-nums}.rank-strip .profile-progress{height:5px;margin-top:10px}.rank-strip-next{font-size:var(--fs-small);color:var(--accent);font-variant-numeric:tabular-nums;margin-top:8px;font-weight:600}.rank-strip-call{font-size:var(--fs-small);color:var(--muted);margin-top:4px}.rank-strip-link{min-height:40px;font-size:var(--fs-small);color:var(--accent);white-space:nowrap;align-items:center;gap:6px;font-weight:600;display:inline-flex}.rank-strip-link:hover{text-underline-offset:3px;text-decoration:underline}@media (max-width:700px){.rank-strip{grid-template-columns:auto minmax(0,1fr);gap:12px 16px;padding:16px 18px}.rank-strip>.rank-mark{align-self:start;width:64px;height:64px}.rank-strip-rank b{font-size:20px}.rank-strip-link{grid-column:1/-1;min-height:44px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}