/*! 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-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}.isolate{isolation:isolate}.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}.grow{flex-grow:1}.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}.capitalize{text-transform:capitalize}.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)}.ring,.shadow{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)}.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,)}.\[b\:QhLhE\\Y9\`VOiOa\`�\?clgm\\UHXPKYWg\?fi\]{b:QhLhEY9`VOiOa`�?clgmUHXPKYWg?fi}.\[bge\:TQK_iQKRjSU\]{bge:TQK iQKRjSU}}:root{--app:light-dark(#f6f7f4,#0f1512);--panel:light-dark(#fff,#161d19);--surface-subtle:light-dark(#eef2ec,#1c241f);--soft:light-dark(#e9f0ea,#22302a);--edge:light-dark(#e1e7df,#2a352f);--edge-strong:light-dark(#c5d1c2,#3c4a43);--ink:light-dark(#14211b,#e8eee9);--body:light-dark(#33443b,#c9d3cc);--muted:light-dark(#5f7068,#9aa89f);--faint:light-dark(#7f8e86,#6f7d75);--accent:light-dark(#1f5c3f,#7dbb95);--accent-fill:light-dark(#1f5c3f,#2f7b54);--accent-hover:light-dark(#174a32,#3a8b61);--accent-ink:light-dark(#fff,#fff);--accent-soft:light-dark(#ddebe1,#1e3a2c);--accent-gradient-from:light-dark(#1f5c3f,#2a6e4a);--accent-gradient-to:light-dark(#2a6e4a,#2f7b54);--accent-gradient:linear-gradient(135deg,var(--accent-gradient-from) 0%,var(--accent-gradient-to) 100%);--focus:light-dark(#1f5c3f,#7dbb95);--voice:light-dark(#0e7c86,#5cc8d2);--voice-bright:light-dark(#22b8cf,#22b8cf);--streak:light-dark(#9a6212,#e4b15a);--trade-customer-service:light-dark(#6b4fa8,#b59be8);--trade-dentistry:light-dark(#2b6f9a,#6fb6e0);--trade-hospitality:light-dark(#8a5e16,#e0b36a);--trade-logistics:light-dark(#2f7a45,#7fcf96);--trade-nursing:light-dark(#a0406e,#e38bb4);--trade-software:light-dark(#1f6f6f,#6fd0d0);--trade-tourism:light-dark(#a04e22,#eba27a);--streak-bright:light-dark(#f0a22e,#f0a22e);--success:light-dark(#1e7f5c,#7fd3a8);--success-bright:light-dark(#4cc38a,#4cc38a);--success-soft:light-dark(#dcf2e8,#1b3328);--danger:light-dark(#a33b2c,#e28b7d);--danger-bright:light-dark(#e28b7d,#e28b7d);--danger-soft:light-dark(#f6e3df,#2c211f);--warning:light-dark(#8a5a1f,#e0b56b);--warning-soft:light-dark(#f8ecd6,#2b2519);--info:light-dark(#3f5f86,#9db6d8);--info-soft:light-dark(#e7edf5,#202a34);--rank-echo:light-dark(#6b7c72,#9aa89f);--rank-voice:light-dark(#4e7d62,#7dbb95);--rank-flow:light-dark(#2f6a8a,#7fb6d6);--rank-fluent:light-dark(#6a4fa0,#b39ddb);--rank-pro:light-dark(#a0621a,#e4b15a);--rank-master:light-dark(#8a2e3c,#e08a94);--rank-legend:light-dark(#1f1f1f,#f2e6c8);--r-sm:10px;--r-md:16px;--r-lg:22px;--radius-sm:var(--r-sm);--radius:var(--r-lg);--radius-lg:var(--r-lg);--pill:999px;--shadow-raise:0 10px 24px light-dark(#14211b1f,#0006);--shadow-float:0 14px 30px light-dark(#14211b2b,#00000080);--t-fast:.12s;--t-base:.2s;--t-slow:.25s;--control:40px;--control-sm:32px;--control-touch:44px;--sidebar:232px;--topbar:56px;--content-max:1160px;--gutter:40px;--font-ui:var(--font-sans-loaded,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif);--font-display:var(--font-ui);--fs-display:32px;--fs-h1:26px;--fs-h2:18px;--fs-h3:15px;--fs-body:15px;--fs-small:13px;--fs-caption:12px;--fs-label:12px;--fs-figure-lg:44px;--fs-figure-md:24px;--fs-figure-sm:16px;--lh-tight:1.35;--lh-body:1.6;--lh-loose:1.7}:root[data-palette=violet]{--app:light-dark(#f5f3ff,#13102b);--panel:light-dark(#fff,#1c1840);--surface-subtle:light-dark(#f2effd,#241f4e);--soft:light-dark(#ece9ff,#2a2458);--edge:light-dark(#e6e2f7,#332c63);--edge-strong:light-dark(#cfc8ed,#4a4185);--ink:light-dark(#241d4d,#edeaff);--body:light-dark(#4a4470,#cfc9ee);--muted:light-dark(#65617f,#a49dcb);--faint:light-dark(#8b86a6,#7d77a6);--accent:light-dark(#5b4bd6,#b3a6ff);--accent-fill:light-dark(#6c5ce7,#6c5ce7);--accent-hover:light-dark(#5b4bd6,#7e6ff0);--accent-soft:light-dark(#ece9ff,#2b2560);--accent-gradient-from:light-dark(#5b4bd6,#4a3cc4);--accent-gradient-to:light-dark(#6c5ce7,#6c5ce7);--focus:light-dark(#6c5ce7,#b3a6ff);--voice:light-dark(#2064a8,#7fb6e6);--voice-bright:light-dark(#4da3f0,#4da3f0);--streak:light-dark(#a4530a,#f0b76a);--streak-bright:light-dark(#f59e0b,#f59e0b);--success-soft:light-dark(#dcf2e8,#1c3a2e);--danger-soft:light-dark(#fbe7ec,#33202a);--warning-soft:light-dark(#fff3e2,#2e2617);--info-soft:light-dark(#e8eefa,#202844);--chart-2:light-dark(#9a93c4,#8f88b8)}:root[data-palette=blue]{--app:light-dark(#f1f6ff,#0b1626);--panel:light-dark(#fff,#12203a);--surface-subtle:light-dark(#eaf1fc,#182b4a);--soft:light-dark(#dfebfb,#1e3455);--edge:light-dark(#d7e4f5,#26405f);--edge-strong:light-dark(#b6cce8,#3a5c84);--ink:light-dark(#12243d,#e6eefa);--body:light-dark(#33496b,#c5d5ea);--muted:light-dark(#4f6484,#9bb0cc);--faint:light-dark(#74879f,#74889f);--accent:light-dark(#0f5fa8,#8fc2ff);--accent-fill:light-dark(#1976d2,#1976d2);--accent-hover:light-dark(#1565c0,#2f86e0);--accent-soft:light-dark(#dfebfb,#1b3252);--accent-gradient-from:light-dark(#1565c0,#12538f);--accent-gradient-to:light-dark(#1976d2,#1976d2);--focus:light-dark(#1976d2,#8fc2ff);--voice:light-dark(#0e7c86,#5cc8d2);--voice-bright:light-dark(#22b8cf,#22b8cf);--streak:light-dark(#9a6212,#e4b15a);--streak-bright:light-dark(#f0a22e,#f0a22e);--success-soft:light-dark(#dcf2e8,#14352a);--danger-soft:light-dark(#fbe5e0,#331f1b);--warning-soft:light-dark(#fbf0da,#2c2418);--info-soft:light-dark(#e4edfb,#1b2c44);--chart-2:light-dark(#8aa3c4,#7e93b0)}:root[data-palette=pink]{--app:light-dark(#fff4f8,#1e0e17);--panel:light-dark(#fff,#2a1522);--surface-subtle:light-dark(#fdecf3,#351c2b);--soft:light-dark(#fce1ec,#3f2233);--edge:light-dark(#f6d8e4,#4b2a3c);--edge-strong:light-dark(#e8b6cb,#6b3e55);--ink:light-dark(#3b1526,#fbe9f1);--body:light-dark(#6b3a4e,#eac9d8);--muted:light-dark(#7e4a61,#c79cb0);--faint:light-dark(#a8808f,#9c7387);--accent:light-dark(#ad1457,#ff9ec4);--accent-fill:light-dark(#d81b60,#d81b60);--accent-hover:light-dark(#c2185b,#e8407c);--accent-soft:light-dark(#fce1ec,#3a1f2e);--accent-gradient-from:light-dark(#c2185b,#9e1047);--accent-gradient-to:light-dark(#d81b60,#d81b60);--focus:light-dark(#d81b60,#ff9ec4);--voice:light-dark(#0e7c86,#5cc8d2);--voice-bright:light-dark(#22b8cf,#22b8cf);--streak:light-dark(#9a6212,#e4b15a);--streak-bright:light-dark(#f0a22e,#f0a22e);--success-soft:light-dark(#dcf2e8,#16341f);--danger-soft:light-dark(#fbe3e3,#3a1d22);--warning-soft:light-dark(#fbefd9,#33251a);--info-soft:light-dark(#e9edf8,#24243f);--chart-2:light-dark(#c48aa3,#b07e93)}html{scroll-behavior:smooth}body,html{overscroll-behavior-y:none}body{background:var(--app);background-image:linear-gradient(180deg,var(--soft) 0,var(--surface-subtle) 34%,var(--app) 70%);color:var(--body);font-family:var(--font-ui);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-attachment:fixed;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}.figure{font-family:var(--font-ui);font-variant-numeric:tabular-nums;letter-spacing:-.01em;color:var(--ink);font-weight:600;line-height:1.1}.figure-lg{font-size:var(--fs-figure-lg)}.figure-md{font-size:var(--fs-figure-md)}.figure small,.figure-sm{font-size:var(--fs-figure-sm)}.figure small{color:var(--muted);letter-spacing:0;margin-left:2px;font-weight:500}.figure-lg small{font-size:var(--fs-small)}.skeleton{border-radius:var(--r-sm);background:linear-gradient(90deg,var(--surface-subtle) 0,var(--soft) 50%,var(--surface-subtle) 100%);background-size:200% 100%;animation:skeleton-sweep 1.4s ease-in-out infinite;display:block}@keyframes skeleton-sweep{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{background:var(--surface-subtle);animation:none}}.row-list{border-top:1px solid var(--edge);margin:0;padding:0;list-style:none}.row{border-bottom:1px solid var(--edge)}.row-link{min-height:56px;color:inherit;border-radius:var(--r-sm);transition:background-color var(--t-fast) ease;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:4px 14px;padding:10px 4px;text-decoration:none;display:grid}a.row-link:hover{background:var(--surface-subtle)}a.row-link:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.row-mark{border-radius:var(--r-md);background:var(--soft);width:36px;height:36px;color:var(--accent);place-items:center;display:grid}.row-list.is-plates{border-top:0;gap:10px;display:grid}.row-list.is-plates .row{border-bottom:0;display:flex}.row-list.is-plates .row>*{flex-grow:1}.row-list.is-plates .row-link{background:var(--panel);border-radius:var(--r-md);box-shadow:var(--shadow-raise);padding:12px}.row-list.is-plates .row-mark{width:44px;height:44px}.row-list.is-plates .row-title{font-weight:700}.row-list.is-plates a.row-link:hover{background:var(--surface-subtle)}.row-text{gap:2px;min-width:0;display:grid}.row-title{font-size:var(--fs-h3);color:var(--ink);font-weight:600}.row-line{font-size:var(--fs-small);text-overflow:ellipsis;overflow:hidden}.row-line,.row-trailing{color:var(--muted);white-space:nowrap}.row-trailing{font-variant-numeric:tabular-nums;align-items:center;gap:8px;display:inline-flex}@media (max-width:600px){.row-link{min-height:60px;padding:10px 0}.row-line{white-space:normal}}button.row-link{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0}button.row-link:hover{background:var(--surface-subtle)}button.row-link:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.row-trailing .language-mark{font-size:var(--fs-small);color:var(--accent);letter-spacing:.04em;font-weight:600}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}h1,h2,h3,h4{color:var(--ink)}small{font-size:var(--fs-caption)}h2{font-size:var(--fs-h2);line-height:var(--lh-tight)}h2,h3{font-weight:600}h3{font-size:var(--fs-h3);line-height:1.4}.display{font-family:var(--font-display);font-size:var(--fs-display);color:var(--ink);font-weight:500;line-height:1.25}.display,h2,h3,h4{letter-spacing:-.01em}h2,h3,h4{line-height:var(--lh-tight)}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:var(--edge-strong)}.app{min-height:100vh;display:flex}.sidebar{width:var(--sidebar);background:var(--surface-subtle);border-right:1px solid var(--edge);overscroll-behavior:contain;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-display);letter-spacing:-.3px;color:var(--ink);align-items:center;gap:10px;padding:4px 8px 14px;font-size:22px;font-weight:500;display:flex}.brand-mark{width:30px;height:30px;color:var(--accent-ink);background:var(--accent-fill);border-radius:9px;flex:none;place-items:center;display:grid}.brand-dot{color:var(--accent)}.nav-label{font-size:var(--fs-body);letter-spacing:normal;color:var(--muted);margin:14px 14px 6px;font-weight:700}.sidebar nav{gap:2px;margin-bottom:16px;display:grid}.sidebar-group{gap:4px;margin-bottom:10px;display:grid}.sidebar nav a{min-height:var(--control-touch);font-size:var(--fs-body);color:var(--body);border-radius:var(--pill);transition:background-color var(--t-fast) ease,color var(--t-fast) ease;align-items:center;gap:12px;padding:8px 14px;font-weight:600;line-height:1.3;display:flex}.sidebar nav a svg{opacity:.85;width:20px;height:20px}@media (hover:hover){.sidebar nav a:hover{background:var(--surface-subtle);color:var(--ink)}}.sidebar nav a.nav-active{background:var(--accent-soft);color:var(--accent);font-weight:700}.sidebar nav a svg{color:var(--faint);flex:none}.sidebar nav a.nav-active svg{color:var(--accent)}.sidebar nav a.is-operations{border-top:1px solid var(--edge);border-radius:var(--r-md);color:var(--muted);margin-top:14px;padding-top:14px;font-weight:600}.sidebar nav a.nav-active svg{opacity:1}.review-nav-count{min-width:20px;height:20px;font-size:var(--fs-label);border-radius:var(--pill);font-variant-numeric:tabular-nums;place-items:center;padding:0 6px;font-weight:600;display:inline-grid}.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));flex-direction:column;min-width:0;min-height:100vh;display:flex}main>.site-footer{margin-top:auto}.topbar{height:var(--topbar);border-bottom:1px solid var(--edge);padding:0 max(var(--gutter),calc((100% - var(--content-max)) / 2 + 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);font-size:var(--fs-body);flex:none;align-items:center;gap:8px;font-weight:600;display:flex}.topbar>div:first-child>span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.breadcrumb{color:var(--muted);font-weight:400}.crumb-divider{color:var(--edge-strong);padding:0 2px}.topbar-actions{flex:0 auto;align-items:center;gap:6px;min-width:0;display:flex}.account-user{min-height:var(--control-sm);border-radius:8px;gap:8px;max-width:220px;padding:0 10px;font-weight:500}.account-user>span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}@media (hover:hover){.account-user:hover{background:var(--surface-subtle)}}.content{width:100%;min-width:0;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-caption);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);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-display);font-size:var(--fs-h1);line-height:var(--lh-tight);letter-spacing:-.015em;font-weight:800}.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{color:var(--muted)}.new-badge,.section-kicker{font-size:var(--fs-caption);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.new-badge{vertical-align:2px;color:var(--accent);border:1px solid var(--edge-strong);background:0 0;border-radius:4px;margin-left:8px;padding:2px 6px;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-touch);background:var(--accent-gradient);color:var(--accent-ink);border-radius:var(--pill);box-shadow:var(--shadow-raise);font-size:var(--fs-body);letter-spacing:.005em;cursor:pointer;border:0;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-weight:700;text-decoration:none;transition:background-color .15s,box-shadow .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);color:var(--accent-ink);box-shadow:var(--shadow-float)}.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:2px solid var(--edge);background:var(--panel);color:var(--accent);border-radius:var(--pill);font-size:var(--fs-body);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:600;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);border-color:var(--edge-strong);color:var(--accent);font-weight:600}.filter-chip small,.level-chip small,.tag-chip small{font-size:var(--fs-caption);color:var(--muted);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);box-shadow:0 0 0 3px var(--edge);outline:0}.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)}:root{--bar-control:38px}.language-switch,.rank-badge,.topbar-actions .auth-link{height:var(--bar-control);border-radius:var(--pill);box-sizing:border-box}.more-button,.topbar-actions .auth-link{border:2px solid var(--edge)}.more-button{width:var(--bar-control);height:var(--bar-control);border-radius:var(--pill);background:var(--panel);color:var(--muted);place-items:center;display:none}.more-button:hover{color:var(--ink);background:var(--surface-subtle)}@media (max-width:900px){.more-button{flex:none;width:44px;height:44px;display:grid}.topbar-actions .rank-badge{height:44px}.topbar-actions>.pill-group,.topbar-actions>.switch{display:none}}.topbar-actions .rank-badge{border-color:#0000}.topbar-actions .auth-link{min-height:0;color:var(--accent);background:var(--panel);align-items:center;padding:0 16px;font-weight:700;display:inline-flex}.topbar-actions{gap:10px}.sidebar-foot{border-top:1px solid var(--edge);gap:4px;margin-top:auto;padding-top:12px;display:grid}.sidebar-foot a,.sidebar-signout{min-height:var(--control-touch);border-radius:var(--pill);font-size:var(--fs-body);color:var(--muted);text-align:left;background:0 0;border:0;align-items:center;gap:12px;width:100%;padding:8px 14px;font-weight:600;line-height:1.3;display:flex}.sidebar-foot a svg,.sidebar-signout svg{width:20px;height:20px;color:var(--faint);flex:none}.sidebar-foot a:hover,.sidebar-signout:hover{background:var(--surface-subtle);color:var(--ink)}.sidebar-foot a.nav-active{background:var(--accent-soft);color:var(--accent);font-weight:700}.sidebar-foot a.nav-active svg{color:var(--accent)}.rank-badge{background:var(--accent-soft);flex:none;align-items:center;gap:8px;padding:0 4px;text-decoration:none;display:inline-flex}.rank-badge.is-link:hover{background:var(--soft)}.rank-badge .rank-mark{flex:none;width:30px;height:30px}.rank-badge-name{color:var(--accent);font-size:var(--fs-caption);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;font-weight:700}.rank-badge.is-static{padding:0 14px 0 4px;display:none}@media (max-width:900px){.rank-badge.is-link{display:none}.rank-badge.is-static{display:inline-flex}}.rank-badge-profile{background:var(--panel);width:30px;height:30px;color:var(--accent);box-shadow:var(--shadow-raise);border-radius:50%;flex:none;place-items:center;margin-left:2px;display:grid}@media (max-width:400px){.rank-badge.is-static{padding:0 10px 0 3px}.rank-badge-name{font-size:var(--fs-caption)}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.stack{gap:14px}.stack,.stack-sm{align-content:start;display:grid}.stack-sm{gap:8px}.cluster{flex-wrap:wrap;gap:8px}.cluster,.split{align-items:center;display:flex}.split{justify-content:space-between;gap:12px}.pill-group{height:var(--bar-control);border:2px solid var(--edge);border-radius:var(--pill);background:var(--surface-subtle);box-sizing:border-box;align-items:center;gap:2px;padding:2px;display:inline-flex}.pill-group>button{border-radius:var(--pill);min-width:38px;height:100%;min-height:0;color:var(--muted);font-size:var(--fs-small);background:0 0;border:0;padding:0 12px;font-weight:700}.pill-group>button[aria-checked=true],.pill-group>button[aria-pressed=true]{background:var(--panel);color:var(--accent);box-shadow:var(--shadow-raise)}.pill-group>button:hover:not([aria-pressed=true]):not([aria-checked=true]){color:var(--ink)}.switch{align-items:center;display:inline-flex;position:relative}.switch>input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.switch-track{width:62px;height:var(--bar-control);border:2px solid var(--edge);border-radius:var(--pill);background:var(--surface-subtle);box-sizing:border-box;transition:background-color var(--t-base) ease,border-color var(--t-base) ease;display:inline-block;position:relative}.switch-knob{background:var(--panel);width:28px;height:28px;color:var(--muted);transition:transform var(--t-base) ease;border-radius:50%;place-items:center;display:grid;position:absolute;top:3px;left:3px;box-shadow:0 2px 6px light-dark(#14211b2e,#0000006b)}.switch>input:checked+.switch-track{background:var(--accent-fill);border-color:var(--accent-fill)}.switch>input:checked+.switch-track .switch-knob{color:var(--accent);transform:translate(24px)}.switch>input:focus-visible+.switch-track{outline:2px solid var(--focus);outline-offset:2px}@media (prefers-reduced-motion:reduce){.switch-knob{transition:none}}.meter-bar{background:var(--accent-soft);height:8px;overflow:hidden}.meter-bar,.meter-bar>i{border-radius:var(--pill)}.meter-bar>i{height:100%;width:var(--fill,0);background:var(--accent-fill);display:block}dialog.sheet:modal{margin:auto auto 0}.sheet{border-radius:var(--r-lg) var(--r-lg) 0 0;background:var(--panel);width:100%;max-width:100%;color:var(--body);box-shadow:var(--shadow-float);border:0;padding:0}.sheet::backdrop{background:light-dark(#14211b59,#0009)}.sheet-body{padding:16px 18px max(16px,env(safe-area-inset-bottom));gap:4px;display:grid}.sheet-head{min-height:var(--control-touch);justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px;display:flex}.sheet-head h2{font-size:var(--fs-h2);color:var(--ink);font-weight:700}.sheet-head .icon-button{border:2px solid var(--edge);border-radius:var(--pill);width:44px;height:44px;color:var(--muted)}.sheet-head .icon-button svg{transform:rotate(45deg)}.sheet-row{min-height:var(--control-touch);font-size:var(--fs-body);color:var(--ink);grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:12px;padding:4px 0;font-weight:600;display:grid}.sheet-row>svg{color:var(--faint)}.sheet-row>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sheet-links{border-top:1px solid var(--edge);gap:2px;margin-top:6px;padding-top:8px;display:grid}.sheet-links a,.sheet-links button{width:100%;min-height:var(--control-touch);color:var(--ink);font-size:var(--fs-body);text-align:left;background:0 0;border:0;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:12px;padding:4px 0;font-weight:600;display:grid}.sheet-links a:hover,.sheet-links button:hover{color:var(--accent)}.sheet-links svg{color:var(--faint)}.sheet-links a:hover svg,.sheet-links button:hover svg{color:var(--accent)}@media (min-width:900px){dialog.sheet:modal{margin:auto}.sheet{border-radius:var(--r-lg);width:min(100%,460px)}}body:has(dialog[open]),html:has(dialog[open]){overscroll-behavior:none;touch-action:none;overflow:hidden}.sheet{overscroll-behavior:contain;touch-action:pan-y;max-height:calc(100dvh - 16px);overflow-y:auto}.more-sheet .sheet-body{padding:16px 16px max(16px,env(safe-area-inset-bottom));gap:8px}.more-sheet .sheet-row{grid-template-columns:20px minmax(0,1fr) auto;min-height:56px}.more-sheet .sheet-row>span{white-space:normal;overflow:visible}.more-sheet .sheet-links svg,.more-sheet .sheet-row>svg{width:20px;height:20px}.more-sheet .pill-group{height:52px;box-shadow:none;width:104px}.more-sheet .pill-group>button{flex:1;min-width:44px;min-height:44px}.more-sheet .pill-group>button[aria-checked=true]{box-shadow:none}.more-sheet .switch{min-width:64px;min-height:44px}.more-sheet .switch-track{width:104px;height:52px}.more-sheet .switch-knob{width:40px;height:40px;top:4px;left:4px}.more-sheet .switch>input:checked+.switch-track .switch-knob{transform:translate(52px)}.more-sheet .sheet-links a,.more-sheet .sheet-links button{grid-template-columns:20px minmax(0,1fr);min-height:48px}@media (max-width:600px){.topbar>div.topbar-title{display:none}.topbar{justify-content:flex-end;padding-right:16px}.topbar-actions{gap:8px}.topbar-actions .auth-link{white-space:nowrap}}.plate{background:var(--panel);border-radius:var(--r-lg);box-shadow:var(--shadow-raise);padding:16px}.plate-tight{padding:6px 16px}.plate-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.plate-head strong{font-size:var(--fs-h3);color:var(--ink);font-weight:700}.tile-row{background:var(--panel);border-radius:var(--r-md);box-shadow:var(--shadow-raise);color:inherit;align-items:center;gap:12px;padding:12px;text-decoration:none;display:flex}.tile-row:hover{background:var(--surface-subtle)}.tile-row .row-mark{border-radius:var(--r-md);flex:none;width:44px;height:44px}.tile-row .row-text{flex-grow:1;min-width:0}.tile-row .row-title{font-size:var(--fs-h3);color:var(--ink);font-weight:700}.tile-row .row-line{font-size:var(--fs-small);color:var(--muted)}.tile-row svg.row-chevron{color:var(--faint);flex:none}.row-mark.mark-library{color:light-dark(#2b6cb0,#8fc2ff);background:light-dark(#e8f3ff,#16283c)}.row-mark.mark-dictation{color:light-dark(#c2255c,#ff9ec4);background:light-dark(#ffeef5,#351826)}.row-mark.mark-professional{color:light-dark(#1e7f5c,#7fd3a8);background:light-dark(#eaf6ee,#16301f)}.row-mark.mark-videos{color:light-dark(#a4530a,#f0b76a);background:light-dark(#fff1e3,#33251a)}.row-mark.mark-ielts{color:light-dark(#5b4bd6,#b3a6ff);background:light-dark(#efebff,#221d46)}.row-mark.mark-ear{color:light-dark(#0e7c86,#5cc8d2);background:light-dark(#e6f6f8,#123037)}.warm-chip{border-radius:var(--pill);background:var(--warning-soft);color:var(--streak);font-size:var(--fs-h3);align-items:baseline;gap:6px;padding:8px 14px;font-weight:700;display:inline-flex}.warm-chip small{font-size:var(--fs-caption);opacity:.85;font-weight:400}.pinned-bar{z-index:5;margin:16px calc(var(--gutter) * -1) 0;padding:14px var(--gutter) max(14px,env(safe-area-inset-bottom));background:var(--panel);border-radius:var(--r-lg) var(--r-lg) 0 0;gap:12px;display:flex;position:sticky;bottom:0;box-shadow:0 -8px 24px light-dark(#14211b1f,#0006)}.pinned-bar>:last-child{flex-grow:1}.player-card,.recordings-card,.settings-card,.transcript-card{background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius);box-shadow:var(--shadow-raise)}.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(--muted)}.error-banner,.pending{border:1px solid var(--edge-strong);background:var(--danger-soft);color:var(--danger);border-radius:var(--radius-sm);font-size:var(--fs-small);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,footer{font-size:var(--fs-caption);color:var(--muted)}footer{border-top:1px solid var(--edge);justify-content:space-between;align-items:center;gap:15px;padding-top:16px;display:flex}.reading-note{font-size:var(--fs-small)}: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){border-color:var(--edge-strong);background-color:var(--panel)}}.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]{box-shadow:0 0 0 3px var(--edge);border-color:light-dark(#7fa070,#506f41)}.select-trigger:disabled,select:disabled{opacity:.45;cursor:not-allowed;background-color:var(--surface-subtle)}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:var(--accent);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{font-size:var(--fs-caption);color:var(--muted);gap:6px;display:grid}.listen-speed{color:var(--muted);align-items:center;gap:6px;margin-left:auto;font-size:12px;display:inline-flex}.privacy-field{color:var(--accent);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{min-height:36px;color:var(--accent);background-color:#0000;background-position:right 8px center;background-size:13px;border-color:#0000;padding:0 28px 0 10px;font-size:12px}@media (hover:hover){.select-quiet .select-trigger:hover:not(:disabled),select.select-quiet:hover:not(:disabled){border-color:var(--edge);background-color:var(--surface-subtle)}}@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-radius:var(--r-lg) var(--r-lg) 0 0;border-bottom: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;background:var(--body);color:var(--panel);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:var(--edge-strong)}.toast-error{background:var(--danger)}.toast-error>svg{color:var(--edge)}.toast-message{flex:1;min-width:0}.toast button{min-height:32px;color:var(--panel);white-space:nowrap;background:light-dark(#ffffff14,#1c252014);border:1px solid light-dark(#ffffff2e,#1c25202e);border-radius:8px;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:600px){.back-to-top{right:14px}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}.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{font-size:var(--fs-caption);letter-spacing:1.3px;color:light-dark(#8b9984,#5d6a56);gap:6px}.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{color:var(--edge);height:34px;font-size:54px;line-height:36px}.quote-mark,.sentence-stage h3{font-family:var(--font-display)}.sentence-stage h3{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{font-size:var(--fs-caption);color:light-dark(#87967b,#616f55);text-underline-offset:3px;background:0 0;border:0;margin-top:12px;padding:5px;text-decoration:underline}.play-progress{color:light-dark(#a0a995,#515947);font-size:var(--fs-caption);font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:space-between;gap:7px;margin:0 27px;display:flex}.play-progress-track{background:var(--soft);border-radius:3px;width:100%;height:3px;overflow:hidden}.play-progress-track i{background:var(--faint);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-fill);color:var(--accent-ink);border-radius:var(--r-md);border:0;gap:10px;min-height:45px;padding:12px 20px;font-size:12px}.play-button:hover:not(:disabled){background:var(--body)}.record-area{background:var(--surface-subtle);border-top:1px solid var(--soft);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{font-size:var(--fs-caption);color:light-dark(#9ba390,#565d4c);margin-top:4px;line-height:1.6;display:block}.record-dot{background:var(--edge-strong);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:var(--edge);align-items:center;gap:7px;min-height:42px;padding:10px 12px;font-size:12px;display:flex}.record-button.is-recording{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-bright)}.mic-meter{background:var(--edge);order:3;width:100%;height:4px}.shadow-note{font-size:var(--fs-caption);color:light-dark(#8a7844,#93814d);background:var(--surface-subtle);border:1px solid var(--edge);border-radius:9px;flex-basis:100%;order:6;padding:10px 12px;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:var(--soft);border-color:var(--edge)}.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{font-size:var(--fs-caption);color:light-dark(#99a58c,#535e47);font-variant-numeric:tabular-nums;margin-top:9px;display:block}.sentence-done{color:light-dark(#6c9157,#5e8249)}.transcript-tip{font-size:var(--fs-caption);color:light-dark(#98a38b,#555f49);align-items:flex-start;gap:9px;margin-top:auto;padding:22px 9px 17px;line-height:1.8;display:flex}.transcript-tip svg{flex:none;margin-top:2px}.next-button{border-color:var(--soft);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 var(--soft);border-radius:5px;padding:6px 9px}.empty-takes{align-items:center;gap:17px;padding:24px 0 5px;display:flex}.empty-icon{border:1px dashed var(--edge);width:48px;height:48px;color:var(--edge-strong);border-radius:50%;place-items:center;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{background:var(--soft);color:light-dark(#71905d,#61804d);border-radius:10px;place-items:center;width:39px;height:39px;display:grid}.take-select label{font-size:var(--fs-caption);color:light-dark(#96a08a,#58614d);flex-direction:column;gap:5px;display:flex}.take-select select{width:100%}.saved-indicator{font-size:var(--fs-caption);color:light-dark(#809a6d,#597247);align-items:center;gap:4px;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{background:var(--soft);color:light-dark(#547b43,#759d64)}.guide{background:var(--panel);border-radius:var(--r-lg);box-shadow:var(--shadow-raise);grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px;padding:16px;display:grid}.guide>div{padding-left:32px;position:relative}.step-no{font-family:var(--font-display);color:var(--muted);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{--content-max:1240px;--gutter:48px}.content{padding-top:40px}.sentence-stage{min-height:270px}.sentence-stage h3{font-size:34px}}@media (max-width:1150px){:root{--gutter:28px}.sidebar{padding:16px 10px}.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:var(--fs-caption)}}@media (max-width:900px){:root{--sidebar:0px;--gutter:24px;--topbar:56px;--fs-h1:24px;--fs-display:28px;--fs-h3:16px;--fs-body:16px;--fs-figure-lg:40px}.sidebar{z-index:31;background:0 0;border:0;align-items:center;width:56px;height:56px;padding:10px;position:fixed;inset:0 auto auto 0;overflow:visible}.brand{gap:0;padding:0;font-size:0}.brand-dot,.nav-label,.sidebar nav,.sidebar-foot{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:24px;--fs-label:12px;--control:44px;--control-sm:44px}main :is(.text-button,.icon-button,.site-footer-column a,.session-step-open,.empty-action,.practice-steps button,.video-tabs button,.dictation-choice .filter-chip,.settings-index 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{background:var(--edge-strong);border-color:var(--edge-strong);cursor:not-allowed}.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(--muted);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 var(--edge)}.filter-row{flex-wrap:wrap;gap:6px;display:flex}.filter-chip span{font-variant-numeric:tabular-nums;color:var(--muted);font-size:var(--fs-caption)}.filter-chip.selected{background:var(--soft);border-color:var(--edge-strong);color:var(--accent);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-display);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);font-size:var(--fs-caption);flex-wrap:wrap;align-items:center;gap:11px;margin-top:12px;display:flex}.imported-pill{color:light-dark(#6f8064,#77886c);align-items:center;gap:5px;display:inline-flex}.lesson-card-progress{font-size:var(--fs-caption);color:light-dark(#95a08d,#576150);margin-top:13px}.lesson-card-progress .progress-track{margin-bottom:7px}.state-pill{font-size:var(--fs-caption);white-space:nowrap;border-radius:5px;flex:none;padding:5px 8px}.state-new{background:var(--surface-subtle);color:light-dark(#7f8a78,#6d7867)}.state-inProgress{background:var(--soft);color:light-dark(#5c7f4d,#729663)}.state-completed{background:var(--soft);color:var(--accent)}.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{font-size:var(--fs-caption);color:light-dark(#95a08d,#576150);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:var(--surface-subtle)}.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{font-size:var(--fs-caption);color:light-dark(#9aa48f,#545d4a);margin-top:7px}.side-block.danger{border-color:var(--edge)}.side-block.danger button{color:var(--danger);border-color:var(--edge);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:var(--surface-subtle)}.confirm-row{gap:8px}.confirm-row,.tag-row{flex-wrap:wrap;display:flex}.tag-row{gap:7px}.tag-pill{font-size:var(--fs-caption);background:var(--soft);color:light-dark(#71806a,#778670);border-radius:5px;padding:6px 9px}.relink-panel{border:1px solid var(--edge);background:var(--surface-subtle);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:15px;margin-bottom:20px;padding:20px;display:flex}.relink-icon{background:var(--warning-soft);color:light-dark(#8a7844,#93814d);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:var(--danger)}.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{border-color:var(--edge-strong);color:var(--accent);font-weight:600}.step-rail li.done{color:light-dark(#6f8b60,#678358)}.step-number{background:var(--soft);width:22px;height:22px;font-size:var(--fs-caption);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;display:grid}.step-rail li.current .step-number{background:var(--accent-fill);color:var(--accent-ink)}.import-card{border:1px solid var(--edge);border-radius:var(--radius);gap:20px;padding:26px}.file-drop,.import-card{background:var(--panel);display:grid}.file-drop{border:1px dashed var(--edge);border-radius:var(--radius);text-align:center;justify-items:center;gap:8px;width:100%;padding:38px 22px}.file-drop.is-over{background:var(--surface-subtle);border-color:light-dark(#9fb78e,#415631)}.file-drop strong{font-size:13px;font-weight:600}.file-drop small{font-size:var(--fs-caption);color:var(--muted)}.file-drop-icon{background:var(--soft);color:light-dark(#6f8b60,#678358);border-radius:50%;place-items:center;width:46px;height:46px;display:grid}.import-note{font-size:var(--fs-caption);color:var(--muted);line-height:1.8}.media-summary{border:1px solid var(--edge);background:var(--surface-subtle);border-radius:12px;align-items:center;gap:13px;padding:15px 17px;display:flex}.media-icon{background:var(--soft);color:light-dark(#71905d,#61804d);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{font-size:var(--fs-caption);color:var(--muted);margin-top:5px;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:var(--surface-subtle);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{font-size:var(--fs-caption);color:var(--muted);gap:6px;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{font-size:var(--fs-caption);color:var(--muted);flex-wrap:wrap;gap:14px;display:flex}.issue-list{border:1px solid var(--edge);background:var(--surface-subtle);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{font-size:var(--fs-caption);color:light-dark(#7d7561,#8f8772);flex-wrap:wrap;align-items:baseline;gap:9px;line-height:1.7;display:flex}.issue-line{font-variant-numeric:tabular-nums;color:light-dark(#9a9280,#6d6655)}.issue-badge{font-size:var(--fs-caption);letter-spacing:.6px;background:var(--warning-soft);color:light-dark(#87795a,#8e8060);border-radius:4px;padding:3px 7px}.issue-rejected .issue-badge{background:var(--danger-soft);color:var(--danger)}.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{border-color:var(--edge-strong);background:var(--surface-subtle)}.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{font-size:var(--fs-caption);color:var(--muted)}.bound-value{font-variant-numeric:tabular-nums;color:var(--muted);font-size:12px;font-weight:600}.bound-buttons{flex-wrap:wrap;gap:5px;display:flex}.bound-buttons button{font-size:var(--fs-caption);font-variant-numeric:tabular-nums;border-radius:7px;min-height:34px;padding:7px 9px}.playhead-button{color:light-dark(#5f7f52,#739466)}.edit-field{font-size:var(--fs-caption);color:var(--muted);gap:7px;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:var(--edge-strong)}.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}.dirty-note,.stale-note{font-size:var(--fs-caption)}.stale-note{color:light-dark(#8a7844,#93814d);background:var(--surface-subtle);border:1px solid var(--edge);border-radius:9px;margin-top:12px;padding:10px 12px;line-height:1.7}.guided-intro .section-kicker{color:var(--muted)}.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:var(--fs-h1)}.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%}.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{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}.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{font-size:var(--fs-caption);color:light-dark(#6b7a63,#7f8e76);letter-spacing:.4px;min-height:40px;padding:9px 12px}.follow-button{background:var(--soft);border-color:var(--edge);color:var(--muted);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{font-size:var(--fs-caption);color:var(--muted);line-height:1.5}.mode-chip.selected{background:var(--soft);border-color:var(--edge-strong)}.mode-chip.selected strong{color:var(--accent)}.mode-chip.selected small{color:light-dark(#6b8559,#6f895d)}.setting-row{flex-wrap:wrap;align-items:end;gap:18px;display:flex}.setting{font-size:var(--fs-caption);color:var(--muted);gap:6px;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{font-size:var(--fs-caption);letter-spacing:.4px;color:light-dark(#6c8a5a,#688656);background:var(--soft);white-space:nowrap;border-radius:5px;padding:6px 8px}.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:var(--edge-strong)}.question-form-grid{grid-template-columns:1fr 1fr 82px;gap:10px;display:grid}.question-rights-note{border:1px solid var(--edge);background:var(--surface-subtle);color:light-dark(#857e6a,#837c68);font-size:var(--fs-caption);border-radius:10px;padding:13px 14px;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{border-radius:var(--r-md);background:var(--accent-fill);min-height:45px;color:var(--accent-ink);border:0;padding:12px 16px;font-size:12px;font-weight:600}.question-submit:hover:not(:disabled){background:var(--body)}.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-display);color:var(--muted);font-size:22px;font-weight:400}.question-empty p{max-width:320px;font-size:12px;line-height:1.7}.question-empty-icon{background:var(--soft);color:light-dark(#71905d,#61804d);border-radius:50%;place-items:center;width:52px;height:52px;font-size:22px;display:grid}.question-spinner{border:3px solid var(--soft);border-top-color:var(--faint);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 var(--soft);justify-content:space-between;align-items:flex-start;gap:15px;padding-bottom:18px;display:flex}.question-result-head h2{font-family:var(--font-display);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);font-size:var(--fs-caption);border-bottom:1px solid var(--soft);flex-wrap:wrap;gap:14px;padding:14px 0;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:var(--surface-subtle);border-radius:12px;padding:17px 18px}.question-card-top{align-items:center;gap:10px;margin-bottom:11px;display:flex}.question-number{font-size:var(--fs-caption);color:light-dark(#6f8b60,#678358);font-variant-numeric:tabular-nums}.question-type{font-size:var(--fs-caption);letter-spacing:.5px;color:light-dark(#9aa48f,#545d4a);text-transform:uppercase}.question-card h3{font-family:var(--font-display);color:var(--body);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);border:1px solid var(--edge);width:19px;height:19px;font-size:var(--fs-caption);color:light-dark(#78916b,#627a55);border-radius:50%;flex:none;place-items:center;display:grid}.question-card details{border-top:1px solid var(--soft);margin-top:14px;padding-top:11px}.question-card summary{font-size:var(--fs-caption);color:light-dark(#78916b,#627a55);cursor:pointer}.question-answer{background:var(--surface-subtle);color:var(--muted);border-radius:8px;margin-top:9px;padding:11px 12px;font-size:12px;line-height:1.7}.question-answer strong{color:var(--muted);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);font-size:var(--fs-caption);border-radius:9px;padding:10px 13px}.catalog-stats b{color:var(--muted);font-weight:600}.lesson-catalog{flex-direction:column;min-height:0;display:flex}.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{background:var(--soft);color:var(--accent);border-color:var(--edge)}.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}.lesson-catalog,.lesson-detail{background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius)}.lesson-list{gap:5px;margin-top:18px;display:grid}.lesson-detail{min-height:650px;padding:25px}.lesson-detail-head{border-bottom:1px solid var(--soft);justify-content:space-between;align-items:flex-start;gap:15px;padding-bottom:18px;display:flex}.lesson-detail-head h2{font-family:var(--font-display);margin-top:8px;font-size:27px;font-weight:400;line-height:1.3}.prompt-block{padding:24px 0 20px}.prompt-label{font-size:var(--fs-caption);letter-spacing:1.4px;color:light-dark(#91a087,#56644d);margin-bottom:10px;font-weight:600}.prompt-block h3{font-family:var(--font-display);color:var(--body);font-size:24px;font-weight:400;line-height:1.45}.prompt-block p{color:var(--muted);margin-top:7px;font-size:12px}.answer-block{border:1px solid var(--edge);background:var(--surface-subtle);border-radius:12px;padding:19px 20px}.answer-en{color:var(--accent);font-size:16px;line-height:1.75}.answer-vi{color:var(--muted);margin-top:8px;font-size:12px;line-height:1.7}.follow-up-block,.tts-block{border-top:1px solid var(--soft);margin-top:17px;padding-top:14px}.follow-up-block summary,.tts-block summary{font-size:var(--fs-caption);color:light-dark(#78916b,#627a55);cursor:pointer}.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:var(--surface-subtle);border-radius:8px;margin-top:10px;padding:12px;font:11px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace}.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{width:19px;height:19px;font-size:var(--fs-caption);letter-spacing:.5px;color:var(--muted);place-items:center;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-display);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);box-shadow:0 0 0 3px var(--edge);outline:0}.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){.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}}.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);min-height:44px;color:var(--accent);border-radius:12px;padding:11px 18px;font-size:13px;font-weight:600}.reveal-button:hover{background:var(--soft)}.row-hidden{letter-spacing:3px;color:var(--edge-strong)}.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);min-height:40px;color:var(--muted);font-variant-numeric:tabular-nums;border-radius:999px;padding:9px 14px;font-size:12px}.phrase-chip.selected{background:var(--accent);border-color:var(--accent);color:var(--panel)}.phrase-chip:disabled{opacity:.45}.phrase-note{text-align:center;width:100%;font-size:var(--fs-caption);color:var(--muted);line-height:1.6}.ab-banner{background:var(--surface-subtle);color:var(--muted);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:var(--ink)}@supports (color:color-mix(in lab,red,red)){.shortcut-dialog::backdrop{background:color-mix(in srgb,var(--ink) 30%,transparent)}}.shortcut-dialog h2{font-family:var(--font-display);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{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-caption);background:var(--surface-subtle);border:solid var(--edge);border-width:1px 1px 2px;border-radius:6px;padding:5px 8px}.dialog-note{font-size:var(--fs-caption);color:var(--muted);margin:18px 0 16px;line-height:1.8}.shortcut-dialog>button{width:100%;min-height:44px;padding:11px;font-size:12px}.lookup-button{z-index:60;min-height:36px;color:var(--panel);letter-spacing:.2px;white-space:nowrap;-webkit-user-select:none;user-select:none;border:0;border-radius:999px;align-items:center;gap:6px;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,.lookup-button:hover{background:var(--ink)}.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:var(--ink)}@supports (color:color-mix(in lab,red,red)){.lookup-dialog::backdrop{background:color-mix(in srgb,var(--ink) 30%,transparent)}}.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-display);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:var(--fs-caption)}.lookup-section{margin-top:20px}.lookup-section h3{font-size:var(--fs-caption);letter-spacing:1.6px;color:light-dark(#919b88,#5d6654);text-transform:uppercase;margin-bottom:8px;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{font-size:var(--fs-caption);color:light-dark(#87967b,#616f55);white-space:nowrap;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-fill);border:1px solid var(--accent-fill);border-radius:var(--r-md);width:100%;min-height:46px;color:var(--accent-ink);text-align:center;margin-top:2px;padding:11px 16px;font-size:14px;font-weight:600;line-height:1.3;display:block}.lookup-save:hover{background:var(--body);border-color:var(--body)}.lookup-save:disabled{opacity:.65;cursor:default}.lookup-save-error{color:var(--danger);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{font-size:var(--fs-caption);padding:9px}.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{font-size:var(--fs-caption);color:var(--muted);flex-basis:100%;order:2;align-items:center;gap:9px;display:flex}.mic-select .select,.mic-select select{flex:1;min-width:0}.mic-missing{color:var(--danger);flex-basis:100%;order:2;align-items:center;gap:9px;font-size:12px;display:flex}.mic-hint{font-size:var(--fs-caption);color:var(--muted);flex-basis:100%;order:5;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{background:var(--soft);border-color:var(--edge-strong);color:var(--accent);font-weight:600}.signal-note{font-size:var(--fs-caption);border-radius:10px;align-items:flex-start;gap:9px;margin-top:12px;padding:11px 13px;line-height:1.8;display:flex}.signal-note svg{flex:none;margin-top:2px}.signal-warning{color:var(--danger)}.signal-info,.signal-warning{background:var(--surface-subtle);border:1px solid var(--edge)}.signal-info{color:light-dark(#8a7844,#93814d)}.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{background:var(--soft);border-color:var(--edge-strong);color:var(--accent);font-weight:600}.capture-conditions{font-size:var(--fs-caption);color:light-dark(#a0a993,#515945);margin-top:12px;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-display);color:var(--ink);font-variant-numeric:tabular-nums;font-size:25px;font-weight:400;display:block}.admin-figures span,.summary-figures span{font-size:var(--fs-caption);color:var(--muted);margin-top:5px;line-height:1.5;display:block}.rating-breakdown{font-size:var(--fs-caption);color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;display:flex}.rating-tally{background:var(--surface-subtle);color:var(--muted);border-radius:5px;padding:5px 9px}.rating-tally.confident{background:var(--soft);color:var(--accent)}.rating-tally.again{background:var(--danger-soft);color:var(--danger)}.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{font-size:var(--fs-caption);color:light-dark(#a0a993,#515945);margin-top:14px;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{font-size:var(--fs-small);color:var(--ink);gap:8px;margin-top:20px;font-weight:600;display:grid}.confirm-dialog-field input{border:1px solid var(--edge-strong);border-radius:var(--r-md);background:var(--panel);width:100%;min-height:48px;color:var(--ink);font:inherit;padding:10px 14px;font-size:16px;font-weight:400}.confirm-dialog-field input:focus-visible{border-color:var(--accent);outline:2px solid var(--focus);outline-offset:2px}.theme-choice-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.league-board .theme-choice-row>div,.theme-choice-row label{flex:240px;gap:4px;display:grid}.league-board .theme-choice-row>a{flex:none}.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;min-height:44px;color:var(--accent);align-items:center;padding:0 4px;font-size:13px;font-weight:600;display:flex}.privacy-advanced[open]>summary{margin-bottom:12px}.settings-danger{border-color:var(--edge);background:var(--panel)}.settings-page .privacy-inline-actions label{color:var(--muted);gap:6px;font-size:12px;display:grid}.settings-page .button.danger{background:var(--danger);border-color:var(--danger);color:var(--panel)}.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{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-caption);background:var(--surface-subtle);border-radius:4px;padding:2px 5px}.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{font-size:var(--fs-caption);color:var(--muted)}.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{background:var(--soft);color:var(--accent);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-display);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{font-size:var(--fs-caption);color:var(--muted)}.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:1px solid var(--edge);background:var(--surface-subtle);border-radius:var(--radius);align-items:flex-start;gap:15px;margin-bottom:20px;padding:20px 22px;display:flex}.draft-icon{background:var(--warning-soft);color:light-dark(#8a7844,#93814d);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:var(--panel);border:1px solid var(--edge);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{font-size:var(--fs-caption);color:light-dark(#9a9280,#6d6655);margin-top:5px;display:block}.draft-actions{flex-wrap:wrap;gap:7px;display:flex}.draft-actions button{font-size:var(--fs-caption);align-items:center;gap:6px;min-height:40px;padding:9px 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}}.review-figures{grid-template-columns:1fr;gap:4px;display:grid}.review-figures b{font-family:var(--font-display);color:var(--ink);font-variant-numeric:tabular-nums;font-size:26px;font-weight:400;display:block}.review-figures span{font-size:var(--fs-caption);color:var(--muted);margin-top:5px;display:block}.review-note{color:var(--muted);margin-top:16px;font-size:12px;line-height:1.8}.review-card{background:var(--panel);border-radius:var(--r-lg);box-shadow:var(--shadow-float);border:0;margin-top:8px;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-section-title{font-size:var(--fs-h3);letter-spacing:-.1px;margin:0 0 10px;font-weight:600}.settings-group .review-reminder{border-radius:var(--radius);margin:0 0 14px}.settings-group .review-reminder-heading>div>p{margin:0}.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-display);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 var(--edge);padding-left:11px}.note-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px}.note-meta,.note-missing{font-size:var(--fs-caption);margin-top:13px;display:flex}.note-missing{color:light-dark(#8a7844,#93814d);background:var(--surface-subtle);border:1px solid var(--edge);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:600px){.review-figures span{font-size:12px}}@media (max-width:900px){.review-figures{grid-template-columns:1fr 1fr}}@media (max-width:600px){.review-card{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{padding:48px var(--gutter);max-width:none}.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)}.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:var(--muted);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:var(--muted);margin-left:12px;font-size:14px;font-weight:400}.catalog-page .prompt-label,.catalog-page .section-kicker{color:var(--muted);letter-spacing:1.2px;font-size:12px}.catalog-page .lesson-list{grid-auto-rows:max-content;align-content:start}.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:var(--body);font-size:clamp(28px,2.5vw,36px);line-height:1.4}.catalog-page .prompt-block p{color:var(--muted);font-size:17px;line-height:1.65}.reading-practice{background:var(--surface-subtle);border:1px solid var(--edge);border-radius:var(--radius-lg);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:var(--muted);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-display);color:var(--body);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:var(--muted);max-width:26ch;font-size:14px;line-height:1.6}.learn-primary,.reading-controls .learn-primary{background:var(--accent-fill);border:1px solid var(--accent-fill);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){border-color:var(--accent-hover)}.reading-translation{border-top:1px solid var(--edge);color:var(--accent);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:var(--muted);margin-top:14px;font-size:13px;line-height:1.6}.reading-track{gap:6px;height:8px;display:flex}.reading-track i{border-radius:var(--pill);background:var(--edge);height:100%;transition:background-color var(--t-base) ease;flex:1}.reading-track i.is-done{background:var(--accent-fill)}.reading-hint{border-radius:var(--r-md);background:var(--accent-soft);color:var(--body);font-size:var(--fs-small);text-align:left;align-items:flex-start;gap:8px;margin-top:14px;padding:10px 12px;line-height:1.5;display:flex}.reading-hint svg{color:var(--accent);flex:none;margin-top:1px}.reading-stage{min-height:200px;padding:24px 0}.reading-position{color:var(--muted);margin-bottom:12px;font-size:14px;display:block}.reading-stage>p:last-child{color:var(--muted);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:var(--muted);background:0 0;border:0;margin-top:16px;padding:6px 0;font-size:14px;text-decoration:underline}.catalog-page .follow-up-block summary,.catalog-page .tts-block summary{color:var(--accent);min-height:44px;padding:12px 0;font-size:16px}.catalog-page .follow-up-block ol{color:var(--body);font-size:18px;line-height:1.7}.catalog-page .tts-block pre{color:var(--accent);font-size:15px}.auth-form label,.auth-intro,.auth-switch{color:var(--muted);font-size:16px;line-height:1.6}.auth-form input{min-height:50px;font-size:17px}@media (max-width:1100px){.catalog-page .lesson-detail,.reading-practice{padding:22px}}@media (max-width:900px){.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}}@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}}.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(--muted);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 var(--edge)}.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(--muted);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(--muted);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-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}.group-chip:focus-visible,.level-chip: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 (max-width:600px){.topic-search{max-width:none}.topic-grid{grid-template-columns:1fr}.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}.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{font-size:var(--fs-caption);color:var(--muted);background:var(--soft);border-radius:5px;align-items:center;gap:5px;padding:3px 7px;display:inline-flex}.offline-pill.is-missing{color:light-dark(#8a7844,#93814d);background:var(--surface-subtle)}.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-display);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{border:1px solid var(--edge-strong);background:var(--surface-subtle);color:light-dark(#7b6b3c,#a29262);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;min-height:32px;padding:6px 11px;font-size:12px;display:inline-flex}.outbox-badge:hover{background:var(--warning-soft)}.outbox-label{min-width:0;color:var(--body);overflow-wrap:anywhere;flex:180px;font-size:13px;font-weight:600}@media (max-width:600px){.outbox-badge{font-size:var(--fs-caption);padding:6px 9px}}.keep-lesson{border:1px solid var(--edge);border-radius:var(--radius);background:var(--surface-subtle);flex-wrap:wrap;align-items:center;gap:14px;margin-top:20px;padding:16px 18px;display:flex}.keep-lesson.is-kept{border-color:var(--edge-strong);background:var(--surface-subtle)}.keep-lesson>div{flex:260px;min-width:0}.keep-lesson strong{color:var(--body);font-size:15px;font-weight:600;display:block}.keep-lesson p{color:var(--muted);margin-top:5px;font-size:13px;line-height:1.65}.keep-lesson-error{color:var(--danger)}.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;width:100%;min-height:48px;color:var(--body);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 14px;padding:13px 16px;font-size:14px;display:flex}.kept-lesson-list button.selected{border-color:var(--accent);background:var(--surface-subtle);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:var(--surface-subtle);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px 14px;display:flex}.download-list a{min-width:0;color:var(--body);overflow-wrap:anywhere;flex:180px;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:var(--accent);font-size:13px}.waveform-labels span{font-variant-numeric:tabular-nums}.waveform-track{border:1px solid var(--soft);background:var(--surface-subtle);border-radius:12px;height:72px;padding:6px}.waveform-signal{min-width:2px;height:100%}.waveform-canvas{width:100%;height:100%;display:block}.waveform-canvas,.waveform-signal.is-attempt .waveform-canvas{fill:var(--faint)}.waveform-flat{border-top:2px solid var(--edge-strong);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]{width:min(320px,60vw);accent-color:var(--accent)}.waveform-offset output{font-variant-numeric:tabular-nums;color:var(--accent);min-width:72px;font-size:13px}.waveform-note{color:var(--muted);max-width:74ch;font-size:12px;line-height:1.7}.waveform-error{color:var(--danger);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:1px solid var(--edge-strong);background:var(--surface-subtle);border-radius:var(--radius);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{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);min-width:0;color:var(--muted);font-variant-numeric:tabular-nums;flex:1 1 0;gap:4px;padding:14px 16px;font-size:12px;display:grid}.then-and-now-take strong{color:var(--accent);font-size:15px}.then-and-now-take.is-now{border-color:var(--edge-strong);background:var(--soft)}.then-and-now-actions{flex-wrap:wrap;align-items:center;gap:12px 18px;display:flex}.then-and-now-play{background:var(--accent);border-color:var(--accent);min-height:48px;color:var(--panel);border-radius:12px;align-items:center;gap:10px;padding:12px 18px;font-size:15px;font-weight:600;display:inline-flex}.then-and-now-play:hover:not(:disabled){background:var(--body)}.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}: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-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{min-width:180px;color:var(--muted);flex:1;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{background:var(--accent);border-color:var(--accent);color:light-dark(#fff,#1c2520);font-weight:600}.recordings-card .take-actions .take-replay:hover:not(:disabled){background:var(--body)}.recordings-card .take-actions .compare-button{background:var(--surface-subtle);color:var(--accent)}.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{background:var(--surface-subtle);border:1px solid var(--soft);border-radius:var(--radius);gap:10px;margin:0;padding:18px 20px}.recordings-card .rating-row>span{color:var(--accent);margin-right:auto;font-size:15px;font-weight:600}.recordings-card .rating-chip{background:var(--panel);min-height:44px;color:var(--muted);border-radius:10px;padding:10px 16px;font-size:15px}.recordings-card .rating-chip.selected{background:var(--accent);color:light-dark(#fff,#1c2520);border-color:var(--accent)}.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:var(--muted);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:var(--muted);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{background:var(--surface-subtle);border:1px solid var(--edge);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:8px 14px;margin:18px 0;padding:10px 16px;display:flex}.account-action-done{min-height:36px;font-size:var(--fs-small);color:var(--accent);white-space:nowrap;align-items:center;gap:6px;font-weight:600;display:inline-flex}.account-action-note{flex:220px;min-width:0}.account-callout button,.account-learning-actions button{min-height:44px;font-size:var(--fs-body);border-radius:10px;padding:10px 16px}.account-learning-actions button{color:var(--accent);background:var(--panel)}.account-learning-actions>p{font-size:var(--fs-small);color:var(--muted);line-height:1.6}.account-learning-actions .account-error{flex:1 0 100%}.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-display);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:var(--fs-caption)}.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;border:1px solid #0000;border-left:2px solid var(--edge);color:var(--ink);resize:none;field-sizing:content;background:0 0;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{border:1px solid var(--edge-strong);background:var(--surface-subtle);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:var(--danger)}.account-alert{background:var(--warning-soft);color:var(--warning);padding:14px 24px;font-size:15px}.account-alert button{margin-left:12px;padding:8px}.account-user{min-width:0;max-width:180px;color:var(--ink);align-items:center;gap:6px;font-size:14px;display:inline-flex}.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:150px}.topbar-actions{gap:10px}.topbar-actions .text-button{white-space:nowrap}}.legal-page{font-size:17px;line-height:1.75}.legal-head{border-bottom:1px solid var(--edge);max-width:72ch;padding-bottom:20px}.legal-head h1{margin-block:6px 10px}.legal-contact{font-size:var(--fs-body);color:var(--muted);margin:0}.legal-layout{grid-template-columns:220px minmax(0,72ch);align-items:start;gap:48px;margin-top:28px;display:grid}.legal-toc{top:calc(var(--topbar) + 24px);font-size:var(--fs-small);line-height:1.5;position:sticky}.legal-toc-title{font-size:var(--fs-caption);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-weight:600;display:block}.legal-toc ol{counter-reset:toc;border-left:1px solid var(--edge);margin:0;padding:0;list-style:none}.legal-toc li{counter-increment:toc}.legal-toc a{min-height:36px;color:var(--muted);border-left:2px solid #0000;align-items:center;gap:8px;margin-left:-1px;padding:4px 12px;text-decoration:none;display:flex}.legal-toc a:before{content:counter(toc);font-variant-numeric:tabular-nums;color:var(--accent)}.legal-toc a:hover{color:var(--ink);border-left-color:var(--accent)}.legal-body>:first-child{margin-top:0}.legal-summary{border:1px solid var(--edge);border-radius:var(--radius);background:var(--surface-subtle);margin-bottom:24px;padding:18px 22px}.legal-page .legal-summary h2{font-size:var(--fs-h3);margin:0 0 8px}.legal-summary ul{margin:0;padding-left:20px;list-style:outside}.legal-summary li::marker{color:var(--accent)}.legal-summary li+li{margin-top:6px}.legal-section{scroll-margin-top:calc(var(--topbar) + 16px);padding-top:8px}.legal-page .legal-part h3{font-size:var(--fs-body);margin:20px 0 4px;font-weight:600}.legal-part p{margin-top:0}@media (max-width:1100px){.legal-layout{grid-template-columns:minmax(0,1fr);gap:20px}.legal-toc{position:static}}.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-body a,.legal-contact a,.private-upload a{text-underline-offset:4px;text-decoration:underline}.privacy-panel{border:1px solid var(--edge);background:var(--panel);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{width:100%;max-width:100%;color:var(--body);border:1px solid var(--edge-strong);font:inherit;background:light-dark(#fff,#1c2520);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{min-height:44px;color:var(--body);align-items:flex-start;gap:12px;margin-block:18px;font-size:17px;line-height:1.6;display:flex}.auth-form .consent-check input[type=checkbox],.consent-check input[type=checkbox]{width:22px;height:22px;min-height:22px;accent-color:var(--accent);flex:0 0 22px;margin-top:3px}.consent-check a{color:var(--accent);text-underline-offset:3px;font-weight:600;text-decoration:underline}.consent-check a:hover{text-decoration-thickness:2px}.consent-check a:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:3px}.privacy-notice{background:var(--surface-subtle);color:var(--body);border-left:4px solid light-dark(#60804e,#729360);border-radius:8px;padding:18px}.private-file{border-top:1px solid var(--edge);overflow-wrap:anywhere;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:16px}.legal-summary{padding:16px}}.admin-console .button,.legal-page .button,.privacy-center .button,.privacy-panel .button,.private-upload .button{border:1px solid var(--edge-strong);background:var(--surface-subtle);min-height:48px;color:var(--body);font:inherit;cursor:pointer;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{background:var(--accent);border-color:var(--accent);color:light-dark(#fff,#1c2520)}.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:var(--danger);margin-left:3px;font-weight:600}.auth-form .registration-hint{color:var(--muted);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:var(--body);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:var(--surface-subtle);border-color:light-dark(#60804e,#729360)}.auth-form .registration-roles input{width:18px;height:18px;min-height:18px;accent-color:var(--accent);flex:0 0 18px;padding:0}.registration-roles small{color:var(--muted);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:2px solid var(--accent);outline-offset:3px}@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:var(--body);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{min-width:54px;min-height:44px;color:var(--accent);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:var(--surface-subtle)}.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:var(--muted);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-card a:focus-visible,.auth-password-input button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@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}}@media (min-width:901px){.sidebar{overscroll-behavior:contain;overflow-y:auto}.sidebar>*{flex-shrink:0}}.privacy-hero p{max-width:64ch;color:var(--muted);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{border:1px solid var(--edge);background:var(--surface-subtle);color:var(--body);border-radius:999px;align-items:center;gap:8px;padding:7px 13px;font-size:13px;display:inline-flex}.privacy-promises li:before{content:"";background:var(--faint);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:var(--panel);min-width:0;margin:0;padding:24px 26px}.privacy-card h2,.privacy-card>legend{color:var(--body);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:var(--body);font-size:16px;font-weight:600}.privacy-card a{text-underline-offset:3px;text-decoration:underline}.privacy-card-lead{max-width:68ch;color:var(--muted);margin-top:6px;font-size:14px;line-height:1.7}.privacy-hint{color:var(--muted);margin-top:10px;font-size:13px;line-height:1.65}.privacy-card label:not(.consent-check){color:var(--body);gap:8px;margin-top:16px;font-size:14px;font-weight:600;display:grid}.privacy-card input:not([type=checkbox]){border:1px solid var(--edge);background:var(--panel);width:100%;max-width:440px;min-height:46px;color:var(--body);font:inherit;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{background:var(--danger);border-color:var(--danger);color:var(--panel)}.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:var(--body);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{border-color:var(--edge);background:linear-gradient(135deg,var(--surface-subtle),var(--surface-subtle));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:var(--body);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:var(--muted);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{border:1px dashed var(--edge);color:var(--muted);border-radius:12px;align-items:center;gap:10px;margin-top:16px;padding:16px;font-size:14px;display:flex}.privacy-danger{border-color:var(--edge);background:var(--panel)}.privacy-danger h2{color:var(--danger)}.privacy-message{border:1px solid var(--edge);background:var(--surface-subtle);color:var(--accent);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}@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;border:1px solid var(--edge);background:var(--surface-subtle);color:light-dark(#6a4630,#dbb098);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{border-color:var(--edge);background:var(--surface-subtle)}.pending-save-notice.is-saved strong{color:var(--accent)}.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:var(--muted);font-size:14px}@media (max-width:600px){.pending-save-notice{bottom:16px;right:16px}.text-button{align-items:center;display:inline-flex}.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,var(--accent) var(--listen-progress,0),var(--edge) 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,var(--accent) var(--listen-progress,0),var(--edge) 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}}.lesson-audio-label,.topic-audio-note{color:light-dark(#8a5a2b,#c28e5f);align-items:center;gap:6px;font-size:12px;font-weight:400;display:flex}.reading-practice.with-listening{background:var(--surface-subtle);padding:0;overflow:clip}.with-listening .reading-body{padding:25px 26px}.with-listening .reading-caption{font-size:var(--fs-caption);letter-spacing:1.1px;margin-top:8px;margin-bottom:12px}.with-listening .reading-caption span:last-child{font-size:12px}.lesson-listen{background:var(--panel);border-bottom:1px solid var(--edge);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:var(--fs-caption)}.listen-description{color:var(--muted);margin-top:10px;font-size:13px;line-height:1.65}.listen-transport{align-items:center;gap:16px;margin-top:23px;display:flex}.listen-play{background:var(--accent);border:1px solid var(--accent);width:54px;height:54px;color:var(--panel);border-radius:50%;flex:none;place-items:center;display:grid;box-shadow:0 4px 10px #376b4e15}.listen-play:hover:not(:disabled){background:var(--body)}.listen-timeline{flex:1;min-width:0}.listen-time{font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;gap:8px;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;width:100%;height:5px;accent-color:var(--accent);border-radius:5px;margin:18px 0 12px;display:block}.listen-timeline input::-webkit-slider-thumb{appearance:none;background:var(--accent);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:var(--accent);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{min-height:40px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;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]{background:var(--soft);border-color:var(--edge);color:var(--accent)}.listen-options button:hover:not(:disabled){background:var(--surface-subtle)}.listen-error{color:var(--danger);margin-top:12px;font-size:13px;line-height:1.6}.listen-error button{min-height:36px;color:var(--danger);padding:5px 8px}.with-listening .reading-note{color:var(--muted);font-size:12px}.catalog-page .account-learning-actions{margin-top:22px}@media (max-width:1150px){.listen-language{font-size:var(--fs-caption)}}@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{font-size:var(--fs-caption);flex-wrap:wrap}.listen-options{gap:2px}.listen-options button:not(.select-trigger),.listen-options label{font-size:var(--fs-caption);min-height:44px;padding:7px 6px}}.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:var(--muted);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:var(--fs-caption)}}:root{--scroll-thumb:var(--edge-strong);--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-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-due-label{font-size:var(--fs-caption);color:var(--accent)}.review-due-label.overdue{color:var(--warning)}.review-agenda-note{font-size:var(--fs-small);color:var(--muted);line-height:1.6;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:var(--muted);margin-top:8px;font-size:13px;line-height:1.7}.review-reminder-heading>span{font-size:var(--fs-caption);background:var(--surface-subtle);white-space:nowrap;border-radius:7px;padding:6px 9px}.review-reminder-controls{flex-wrap:wrap;align-items:end;gap:12px;margin-top:20px;display:flex}.review-reminder-controls label{color:var(--muted);gap:8px;font-size:12px;display:grid}.review-reminder-controls input{border:1px solid var(--edge);background:var(--panel);max-width:100%;min-height:44px;color:var(--ink);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{background:var(--edge);text-align:center;min-width:23px;color:var(--accent);font-size:var(--fs-caption);border-radius:8px;margin-left:auto;padding:3px 6px}.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-agenda-heading{align-items:start}.review-agenda-heading h2{font-size:18px}.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{min-height:44px;color:var(--accent);text-underline-offset:4px;align-items:center;font-size:14px;text-decoration:underline;display:inline-flex}.confirm-dialog{border:1px solid var(--edge);border-radius:var(--r-lg);background:var(--panel);width:calc(100vw - 32px);max-width:440px;max-height:calc(100dvh - 32px);color:var(--ink);box-shadow:var(--shadow-float);padding:0}.confirm-dialog::backdrop{background:var(--ink)}@supports (color:color-mix(in lab,red,red)){.confirm-dialog::backdrop{background:color-mix(in srgb,var(--ink) 35%,transparent)}}.confirm-dialog form{padding:24px}.confirm-dialog h2{font-size:var(--fs-h2);font-weight:700;line-height:var(--lh-tight);color:var(--ink)}.confirm-dialog.is-danger h2{color:var(--danger)}.confirm-dialog-lead{color:var(--muted);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:var(--body);gap:8px;margin-top:20px;font-size:14px;font-weight:600;display:grid}.confirm-dialog-password input{border:1px solid var(--edge);background:var(--panel);width:100%;min-height:46px;color:var(--body);font:inherit;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:var(--muted);margin-top:8px;font-size:13px;line-height:1.6}.confirm-dialog .error-banner{margin-top:14px}.confirm-dialog-actions{flex-wrap:wrap;gap:12px;margin-top:24px;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:var(--surface-subtle);flex-wrap:wrap;align-items:center;gap:16px;padding:16px 18px;display:flex}.permission-row.is-on{border-color:var(--edge-strong);background:var(--surface-subtle)}.permission-copy{flex:260px;min-width:0}.permission-copy strong{color:var(--body);font-size:15px;font-weight:600;display:block}.permission-copy p{color:var(--muted);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:var(--edge-strong);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:var(--accent);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:var(--muted);margin-bottom:8px;padding:0;font-size:12px}.review-mode-choice label{border:1px solid var(--edge);background:var(--panel);min-height:44px;color:var(--body);cursor:pointer;border-radius:10px;align-items:center;gap:9px;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:var(--surface-subtle)}.review-mode-choice label:has(input:disabled){opacity:.55;cursor:not-allowed}.review-mode-choice input{width:18px;height:18px;min-height:18px;accent-color:var(--accent);flex:none;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:1px solid var(--edge-strong);border-radius:var(--radius);background:var(--warning-soft);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{border:1px solid var(--edge);background:var(--panel);border-radius:12px;padding:12px 14px}.admin-attention li.admin-act{border-color:var(--edge-strong);background:var(--surface-subtle)}.admin-attention strong{color:var(--body);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:var(--danger)}.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);background:var(--panel);overflow-wrap:anywhere;border-radius:6px;padding:2px 6px;font-size:12px}.admin-tally{gap:6px;margin:16px 0 0;display:grid}.admin-tally>div{background:var(--surface-subtle);border-radius:10px;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 12px;display:flex}.admin-tally dt{color:var(--muted);font-size:13px}.admin-tally dd{color:var(--body);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:var(--surface-subtle);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:var(--body);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{min-width:0;color:var(--body);flex:220px;gap:8px;font-size:13px;font-weight:600;display:grid}.admin-search input{border:1px solid var(--edge);background:var(--panel);width:100%;min-height:48px;color:var(--body);font:inherit;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:var(--surface-subtle);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:var(--panel)}.admin-issued{border:1px solid var(--edge);border-radius:var(--radius);background:var(--surface-subtle);justify-items:start;gap:10px;margin-top:18px;padding:18px;display:grid}.admin-issued strong{color:var(--body);font-size:14px;font-weight:600}.admin-issued code{letter-spacing:.5px;font-size:15px}.admin-issued p{color:var(--muted);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{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-radius:var(--r-lg) var(--r-lg) 0 0;padding:4px 6px max(4px,env(safe-area-inset-bottom));border:0;grid-template-columns:repeat(4,1fr);gap:0;margin:0;display:grid;position:fixed;bottom:0;right:0;box-shadow:0 -8px 24px light-dark(#14211b1f,#0006)}.tabbar a{border-radius:var(--r-md);min-height:52px;font-size:var(--fs-caption);color:var(--muted);text-align:center;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:4px 2px;font-weight:500;line-height:1.3;display:flex;position:relative}.tabbar .tab-current{color:var(--accent);background:var(--accent-soft);font-weight:700}.language-toggle,.theme-toggle{display:none}.tabbar .tab-icon{place-items:center;display:grid;position:relative}main{padding-bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom))}}@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,var(--panel));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:var(--edge-strong)}.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}}.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:var(--muted);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);background:var(--surface-subtle);width:100%;color:var(--ink);font:inherit;resize:vertical;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:var(--muted);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:var(--muted);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:var(--muted);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:var(--muted);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-fill);color:var(--accent-ink);border-color:var(--accent-fill)}.import-listen{min-width:0;color:var(--muted);gap:10px;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 var(--gutter)}.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:var(--accent);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)}}@media (max-width:600px){.listen-dock{left:0}.catalog-page{padding-top:16px}.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}.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}.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:var(--fs-caption)}.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{font-size:var(--fs-caption);margin-bottom:6px}.lesson-listen{padding:14px 12px}.listen-transport{margin-top:12px}.listen-description{margin-top:8px;font-size:12px}.listen-language{display:none}}.saved-library .library-toolbar{margin-top:8px}.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-row{background:0 0;border:0;gap:8px;padding:0}.speak-recorder.is-row.is-recording{background:0 0}.speak-recorder-line{font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums}.speak-recorder.is-recording{border-color:var(--edge-strong);background:var(--panel)}.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-recorder.is-row .speak-recorder-actions{gap:10px}.speak-recorder.is-row .speak-recorder-actions button{min-height:48px;font-size:var(--fs-body);border:1px solid var(--edge-strong);background:var(--panel);color:var(--accent);border-radius:10px;margin:0;padding:0 18px;font-weight:600}.speak-recorder.is-row .speak-recorder-actions button[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:var(--soft)}.speak-recorder.is-row .speak-record.is-recording{color:var(--danger);background:var(--surface-subtle);border-color:light-dark(#c98b83,#7c4a44)}@media (max-width:600px){.speak-recorder.is-row .speak-recorder-actions{gap:8px}.speak-recorder.is-row .speak-recorder-actions button{font-size:var(--fs-small);padding:0 13px}}.speak-record.is-recording{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-bright)}.speak-play{background:var(--soft);color:var(--accent);border-color:var(--edge)}.speak-recorder .reading-note{margin:0}.speak-recorder-error{color:var(--danger)}.mic-memory-hint{border:1px solid var(--edge);border-radius:var(--radius-sm);background:var(--surface-subtle);color:var(--muted);text-align:left;align-items:flex-start;gap:10px;margin-top:4px;padding:10px 12px;display:flex}.mic-memory-hint>svg{color:var(--accent);flex:none;margin-top:2px}.mic-memory-hint p{font-size:var(--fs-small);flex:1;margin:0;line-height:1.6}.mic-memory-hint strong{color:var(--ink);font-weight:600}.mic-memory-hint .text-button{min-height:44px;font-size:var(--fs-small);flex:none;margin:-10px -4px -10px 0;padding:0 8px}.record-area .mic-memory-hint{flex-basis:100%}@media (max-width:600px){.speak-recorder-actions button{flex:auto;justify-content:center}}.reading-check{gap:10px;margin-top:12px;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{background:var(--surface-subtle);border:1px solid var(--edge-strong);color:var(--ink);border-radius:11px;margin:0;padding:12px 14px;font-size:13px;line-height:1.7}.reading-check-result{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);gap:12px;padding:16px 18px;display:grid}.reading-check-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.reading-check-score{font-size:var(--fs-body);color:var(--ink);margin:0;font-weight:700}.reading-check-again{min-height:44px;font-size:var(--fs-small);color:var(--accent);align-items:center;gap:6px;padding:0 4px;font-weight:600;display:inline-flex}.reading-check-meter{border-radius:var(--pill);background:var(--soft);height:6px;overflow:hidden}.reading-check-meter i{border-radius:inherit;background:var(--accent);height:100%;display:block}.reading-check-caveat{font-size:var(--fs-caption);color:var(--muted);margin:-4px 0 0;line-height:1.5}.reading-check-line{color:var(--ink);flex-wrap:wrap;align-items:flex-start;gap:10px 6px;margin:4px 0 0;font-size:18px;line-height:1.4;display:flex}.read-word{border-radius:6px;align-items:baseline;padding:2px 4px;display:inline-flex}.read-word.is-different{background:var(--warning-soft);color:light-dark(#6f5020,#d8b77f);justify-items:start;gap:1px;display:inline-grid}.read-word.is-different .read-word-text{text-underline-offset:4px;-webkit-text-decoration:underline light-dark(#c69a4f,#9d7c47);text-decoration:underline light-dark(#c69a4f,#9d7c47);text-decoration-thickness:2px}.read-word.is-different small{font-size:var(--fs-caption);color:var(--muted);font-style:italic;line-height:1.3}.read-word.is-missing{color:var(--danger);background:var(--danger-soft);text-decoration:line-through;text-decoration-thickness:2px}.read-word.is-extra{border:1px dashed var(--edge-strong);color:var(--muted);font-size:15px}.reading-check-key{font-size:var(--fs-caption);color:var(--muted);flex-wrap:wrap;gap:6px 16px;margin:0;padding:0;list-style:none;display:flex}.reading-check-key li{align-items:center;gap:6px;display:inline-flex}.reading-check-key li:before{content:"";border-radius:3px;width:10px;height:10px}.reading-check-key .is-different:before{background:var(--warning-soft);box-shadow:inset 0 -2px light-dark(#c69a4f,#9d7c47)}.reading-check-key .is-missing:before{background:var(--danger-soft);box-shadow:inset 0 0 0 1px var(--danger)}.reading-check-key .is-extra:before{border:1px dashed var(--edge-strong)}.reading-check-evidence{border-top:1px solid var(--edge);font-size:var(--fs-small);color:var(--muted);padding-top:4px}.reading-check-evidence summary{cursor:pointer;min-height:44px;color:var(--ink);align-items:center;gap:8px;font-weight:600;list-style:none;display:flex}.reading-check-evidence summary::-webkit-details-marker{display:none}.reading-check-evidence summary:after{content:"";border-bottom:2px solid;border-right:2px solid;width:7px;height:7px;margin-left:2px;transition:transform .15s;transform:rotate(45deg)translateY(-2px)}.reading-check-evidence[open] summary:after{transform:rotate(-135deg)translateY(-1px)}@media (prefers-reduced-motion:reduce){.reading-check-evidence summary:after{transition:none}}.reading-check-evidence-body{border-radius:var(--radius-sm);background:var(--surface-subtle);gap:6px;margin:4px 0 8px;padding:12px 14px;display:grid}.reading-check-evidence-body p{margin:0;line-height:1.7}.reading-check-evidence-body p[lang]{font-size:var(--fs-body);color:var(--ink)}@media (max-width:600px){.reading-check-actions button{justify-content:center;width:100%}.reading-check-line{font-size:16px}.reading-check-result{padding:14px}}.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-small);color:var(--muted);margin:56px auto 0;padding:32px 0 24px;line-height:1.6;display:block}.site-footer p{margin:0}.site-footer ul{margin:0;padding:0;list-style:none}.site-footer-top{grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,1fr)) max-content;gap:32px 40px;display:grid}.site-footer-about{align-content:start;gap:10px;max-width:34ch;display:grid}.site-footer .brand{min-height:var(--control-touch);justify-self:start;gap:10px;padding:0;font-size:19px}.site-footer .brand-dot{display:inline}.site-footer .brand-mark{border-radius:8px;width:26px;height:26px}.site-footer-promise{font-size:var(--fs-caption);flex-wrap:wrap;gap:2px 12px;display:flex}.site-footer-promise li{align-items:center;gap:6px;display:inline-flex}.site-footer-promise li:before{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px}.site-footer-column h2{font-family:inherit;font-size:var(--fs-caption);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin:0 0 8px;font-weight:600}.site-footer-column a{min-height:32px;color:var(--muted);align-items:center;text-decoration:none;display:inline-flex}.site-footer-column a:hover{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.site-footer-bottom{border-top:1px solid var(--edge);font-size:var(--fs-caption);padding-top:16px;margin-top:28px!important}@media (max-width:900px){.site-footer-top{grid-template-columns:repeat(2,minmax(0,1fr)) max-content}.site-footer-about{grid-column:1/-1;max-width:none}}@media (max-width:600px){.site-footer{margin-top:40px;padding:24px 0 20px}.site-footer-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px}.site-footer-column:last-child{grid-column:1/-1}.site-footer-column a{min-height:44px}}.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-fill);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{background:var(--panel);border:1px solid var(--edge-strong);border-radius:var(--radius-sm);min-height:44px;color:var(--ink);margin-bottom:16px;padding:10px 16px;font-size:14px}.reading-reveal[aria-pressed=true]{background:var(--soft);border-color:var(--edge-strong);color:var(--accent)}.completion-next{justify-content:center;width:100%;margin-bottom:16px}.reading-reset{text-align:left;min-height:44px}.catalog-page .follow-up-block>summary{cursor:pointer;min-height:48px;color:var(--accent);padding:14px 0;font-size:15px;line-height:1.5}.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 .lesson-detail{grid-row:2}.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}.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 .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 .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}.catalog-page .lesson-detail-head h2{font-size:14px;line-height:1.4;display:block}}textarea:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--edge);outline:0}@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){.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){.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}.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:var(--accent);--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(--muted);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-display);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-display);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;width:max-content;max-width:280px;color:var(--body);background:var(--panel);border:1px solid var(--edge);white-space:normal;border-radius:8px;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-fill);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:var(--edge);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,var(--soft),var(--edge),var(--soft));background-size: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(--muted);font-variant-numeric:tabular-nums;font-weight:400;font-size:var(--fs-caption)}.admin-chips button.is-selected{background:var(--soft);border-color:var(--edge-strong);color:var(--accent);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);box-shadow:0 0 0 3px var(--edge);outline:0}.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:var(--soft)}.admin-chart-cursor{stroke:var(--edge-strong);stroke-dasharray:3 3}.admin-chart-label{font-size:var(--fs-caption);fill:var(--faint)}.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:var(--soft);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);border-color:var(--edge-strong);color:var(--accent);font-weight:600}.admin-range label{font-size:var(--fs-caption);color:var(--muted);gap:4px;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-display);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{font-size:var(--fs-caption);color:var(--muted);grid-template-columns:repeat(53,12px);gap:3px;min-width:max-content;margin-bottom:4px;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{background:var(--soft);cursor:pointer;border:1px solid #0000;border-radius:3px;width:12px;height:12px;padding:0;display:block}.admin-calendar-day.level-1{background:var(--edge)}.admin-calendar-day.level-2{background:var(--edge-strong)}.admin-calendar-day.level-3{background:var(--faint)}.admin-calendar-day.level-4{background:var(--accent)}.admin-calendar-day.is-visited{background:var(--panel);border-color:var(--edge-strong)}.admin-calendar-day.is-today{outline:1px solid var(--accent);outline-offset:1px}.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{font-size:var(--fs-caption);color:var(--muted);align-items:center;gap:5px;margin-top:10px;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 var(--edge);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:var(--fs-caption);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);font-size:var(--fs-caption);vertical-align:middle}.admin-callout{border:1px solid var(--edge-strong);border-radius:var(--radius-sm);background:var(--warning-soft);font-size:var(--fs-small);color:var(--warning);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);min-height:44px;color:var(--body);border-radius:9px;align-items:center;gap:8px;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{font-size:var(--fs-caption);letter-spacing:1.8px;color:light-dark(#8a987e,#5f6c53);font-weight:600}.review-answer h3,.review-cue{font-family:var(--font-display);letter-spacing:-.6px;max-width:30ch;font-size:32px;font-weight:400;line-height:1.3}.review-cue{color:var(--body)}.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{border:1px solid var(--edge-strong);background:var(--surface-subtle);width:76px;height:76px;color:var(--accent);border-radius:50%;place-items:center;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{font-family:inherit;font-size:var(--fs-caption);opacity:.6;border:1px solid;border-radius:4px;margin-left:4px;padding:1px 5px}.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:var(--body);font-weight:600}.review-progress-tally{font-variant-numeric:tabular-nums;gap:8px;display:flex}.review-progress-tally i{background:var(--soft);border-radius:999px;padding:2px 8px;font-style:normal}.review-progress-tally i.is-again{background:var(--warning-soft);color:light-dark(#8a5a1f,#c38f57)}.review-progress-tally i.is-okay{background:var(--info-soft);color:var(--info)}.review-progress-tally i.is-confident{background:var(--edge);color:var(--accent)}.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);min-height:56px;color:var(--body);border-radius:10px;justify-items:center;gap:2px;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{border-color:var(--edge-strong);background:var(--warning-soft)}.review-grade-okay:not(:disabled):hover{border-color:var(--edge-strong);background:var(--info-soft)}.review-grade-confident:not(:disabled):hover{background:var(--surface-subtle);border-color:light-dark(#7fa070,#506f41)}@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}}.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{margin-top:6px;font-size:16px}.ipa-toggle{font-size:var(--fs-caption);border:1px solid var(--edge);background:var(--panel);color:var(--muted);border-radius:999px;min-height:26px;margin-left:12px;padding:2px 8px}.ipa-toggle[aria-pressed=true]{background:var(--edge);border-color:var(--edge-strong);color:var(--accent)}.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);background:var(--surface-subtle);text-align:left;border-radius:12px;justify-items:start;gap:2px;min-height:44px;padding:8px 14px;display:grid}.vocabulary-chips button strong{color:var(--body);font-size:15px;font-weight:600}.vocabulary-chips button .ipa{font-size:13px}@media (hover:hover){.vocabulary-chips button:hover{border-color:var(--edge-strong);background:var(--surface-subtle)}}.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{background:var(--accent-soft);color:light-dark(#1f3a2a,#e6f6ea);box-shadow:0 0 0 3px var(--accent-soft);border-radius:4px}.word-spans>span{-webkit-box-decoration-break:clone;box-decoration-break:clone}.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:var(--fs-caption);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,.rank-mark-master{color:var(--warning)}.rank-mark-legend{color:var(--info);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}@media (max-width:700px){.hall-achievements,.hall-columns{grid-template-columns:1fr;gap:0}.hall-achievements{gap:20px}}@media (max-width:600px){.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-display);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-display);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}}.catalog-page .group-chips+.empty-state,.catalog-page .topic-toolbar+.empty-state,.video-filters+.empty-state,.video-filters+.loading{margin-top:24px}.video-head{margin-bottom:20px}.video-head h1{letter-spacing:-.6px;font-size:28px;line-height:1.25}.video-facts{font-size:var(--fs-small);color:var(--muted);flex-wrap:wrap;gap:2px 0;margin-top:8px;display:flex}.video-facts span+span:before{content:"·";margin:0 8px}.video-layout{grid-template:"stage side""main side"1fr/minmax(0,1.6fr) minmax(320px,1fr);align-items:start;gap:16px 24px;display:grid}.video-sticky{grid-area:stage;min-width:0;scroll-margin-top:16px}.video-main{grid-area:main;align-content:start;gap:16px;min-width:0;display:grid}.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:var(--accent-ink);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{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.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-play{flex:none;width:48px;height:48px}.video-timeline{flex:160px;align-items:center;gap:10px;min-width:0;margin:0;display:flex}.video-timeline input{flex:1;min-width:0}.video-clock{font-size:var(--fs-caption);font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap;flex:none}.video-clock i{opacity:.6;font-style:normal}.video-more{display:none}.video-options{align-items:center;gap:6px;display:flex}.video-option{border:1px solid var(--edge);border-radius:var(--pill);background:var(--panel);min-height:40px;color:var(--ink);font-size:var(--fs-small);align-items:center;gap:6px;padding:0 12px;display:inline-flex}.video-option[aria-pressed=true]{border-color:var(--edge-strong);background:var(--accent-soft);color:var(--accent)}.video-mode{border-radius:var(--pill);background:var(--soft);grid-template-columns:1fr 1fr;gap:4px;margin-top:12px;padding:4px;display:grid}.video-mode button{border-radius:var(--pill);min-height:40px;color:var(--muted);font-size:var(--fs-small);background:0 0;border:0;justify-content:center;align-items:center;gap:8px;font-weight:600;display:inline-flex}.video-mode button[aria-pressed=true]{background:var(--panel);color:var(--accent);box-shadow:0 1px 3px light-dark(#2936201f,#00000059)}.video-about{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel)}.video-about>summary{min-height:48px;font-size:var(--fs-small);color:var(--ink);cursor:pointer;align-items:center;padding:0 18px;font-weight:600;display:flex}.video-about-panel{padding:0 18px 18px}.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-tags{flex-wrap:wrap;gap:6px;margin:12px 0 0;padding:0;list-style:none;display:flex}.video-tags .filter-chip{border:1px solid var(--edge);background:var(--panel);text-decoration:none}.video-title-en{color:var(--muted);font-size:14px;line-height:1.5}.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:0}.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.selected:hover,.video-sentences .sentence-row:hover{background:var(--soft)}.video-sentences .row-copy,.video-sentences .row-number{pointer-events:none;position:relative}.sentence-save{color:light-dark(#a5ae9a,#5b6553);background:0 0;border:0;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;padding:0;display:grid;position:relative}.sentence-save[aria-pressed=true]{color:var(--danger)}.sentence-save[aria-pressed=true] svg{fill:currentColor}@media (hover:hover){.sentence-save:hover{background:var(--edge);color:var(--ink)}.sentence-save[aria-pressed=true]:hover{color:var(--danger)}}.video-sentences .sentence-save{margin:-10px -8px -10px 0}.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{background:var(--edge);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}}.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-sentences .sentence-row.practising{border-color:var(--edge-strong);background:var(--accent-soft)}.video-sentences .row-said{color:var(--accent);align-items:center;display:inline-flex}.video-practice{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);padding:20px 22px}.video-practice .line-card{gap:12px}.video-practice .reading-stage{min-height:0;padding:0}.video-practice .line-card-head{margin-bottom:8px}.video-practice .reading-stage .answer-en{font-family:var(--font-display);color:var(--ink);overflow-wrap:anywhere;margin:0;font-size:clamp(22px,2vw,28px);font-weight:700;line-height:1.4}.video-practice .reading-hint{margin-top:8px}.video-practice-meaning{color:var(--muted);font-size:14px;line-height:1.6}.video-practice-said{font-size:var(--fs-caption);color:var(--accent);align-items:center;gap:4px;font-weight:600;display:inline-flex}.video-practice-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;min-height:44px;margin-top:12px;display:flex}.video-practice-pass{font-size:var(--fs-small);color:var(--accent);align-items:center;gap:6px;font-weight:600;display:inline-flex}.video-practice-retry{font-size:var(--fs-small);color:var(--muted);flex:240px;line-height:1.6}.video-practice-skip{min-height:44px;font-size:var(--fs-small);margin-left:auto}.video-finish{justify-items:start;gap:12px;display:grid}.video-finish h2{font-family:var(--font-display);font-size:24px;font-weight:400}.video-finish-score{font-size:var(--fs-body);color:var(--muted)}.video-finish-actions{flex-wrap:wrap;gap:10px;display:flex}.video-finish-actions a{align-items:center;gap:8px;text-decoration:none;display:inline-flex}@media (max-width:900px){.video-layout{grid-template-rows:none;grid-template-columns:1fr;grid-template-areas:"stage""side""main";gap:14px}.video-layout[data-mode=shadow]{grid-template-areas:"stage""main""side"}.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}.video-more{display:grid}.video-options{flex-wrap:wrap;flex-basis:100%;display:none}.video-options.is-open{display:flex}.video-mode button,.video-option{min-height:44px}}@media (max-width:600px){.video-room{padding-top:20px}.video-head{margin-bottom:16px}.video-head h1{font-size:22px}.video-transport{gap:6px;margin-top:8px}.video-play{width:44px;height:44px}.video-clock{display:none}.video-timeline{flex:1 1 0}.video-mode{margin-top:8px}.video-practice{padding:16px}.video-facade-play{width:56px;height:56px}.video-sentences .sentence-row{padding:12px 10px}.video-about>summary{padding:0 16px}.video-about-panel{padding:0 16px 16px}}.trade-art{--art-light:light-dark(#f4f6f3,#33403a);--art-dark:light-dark(#2f2e41,#d3d6de);border-radius:var(--radius);background:var(--trade);place-items:center;display:grid;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.trade-art{background:color-mix(in srgb,var(--trade) 14%,var(--panel))}}.trade-art{color:var(--trade)}.trade-art svg{width:100%;height:100%;padding:8%}.trade-art-small svg{padding:10%}.trade-art-tile{aspect-ratio:16/10;width:100%}.trade-art-small{flex:none;width:56px;height:56px}.professional-continue,.professional-next{border:1px solid var(--edge-strong);border-radius:var(--radius);background:linear-gradient(135deg,var(--soft),var(--panel));color:inherit;align-items:center;gap:16px;margin:4px 0 24px;padding:16px 20px;text-decoration:none;display:flex}@media (hover:hover){:is(.professional-continue,.professional-next):hover{box-shadow:0 4px 14px light-dark(#2936200f,#00000040)}}.professional-continue-text{flex:1;gap:3px;min-width:0;display:grid}.professional-continue-text strong{font-size:var(--fs-h2);font-weight:600}.professional-continue-text small{font-size:var(--fs-small);color:var(--muted)}.professional-go{min-height:var(--control);border-radius:var(--pill);background:var(--accent-fill);color:var(--accent-ink);white-space:nowrap;flex:none;align-items:center;gap:6px;padding:0 18px;font-weight:600;text-decoration:none;display:inline-flex}.professional-next.is-finished{flex-wrap:wrap;justify-content:space-between}.professional-trades{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.professional-trade{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);height:100%;color:inherit;gap:6px;padding:12px 12px 16px;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:grid}@media (hover:hover){.professional-trade:hover{border-color:var(--edge-strong);box-shadow:0 4px 14px light-dark(#2936200f,#00000040)}}.professional-trade strong{font-size:var(--fs-h2);margin-top:6px;font-weight:600}.professional-trade small{font-size:var(--fs-small);color:var(--muted)}.professional-bar{background:var(--surface-subtle);border-radius:99px;height:6px;margin-top:4px;display:block;overflow:hidden}.professional-bar i{background:var(--accent);height:100%;display:block}.professional-track-head{align-items:flex-start;gap:18px;display:flex}.professional-track-head .page-heading{margin-bottom:18px}.professional-track-tally{font-size:var(--fs-small);color:var(--accent);font-weight:600}.professional-filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.professional-search{min-height:var(--control);border:1px solid var(--edge);border-radius:var(--pill);background:var(--panel);color:var(--ink);font:inherit;flex:200px;padding:0 14px}.professional-path{gap:10px;margin:0;padding:0;list-style:none;display:grid}.professional-stop{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);overflow:hidden}.professional-stop-head{width:100%;min-height:56px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:10px 16px;display:flex}.professional-stop-head:disabled{cursor:default;opacity:1}.professional-stop-head strong{flex:1;min-width:0;font-weight:600}.professional-stop-head small{font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.professional-stop-number{background:var(--surface-subtle);width:30px;height:30px;font-size:var(--fs-small);border-radius:50%;flex:none;place-items:center;font-weight:600;display:grid}.professional-stop-number.is-done{background:var(--accent-fill);color:var(--accent-ink)}.professional-steps{border-top:1px solid var(--edge);margin:0;padding:0 0 8px;list-style:none}.professional-step{min-height:48px;color:inherit;align-items:center;gap:12px;padding:6px 16px 6px 22px;text-decoration:none;display:flex;position:relative}.professional-step:before{content:"";border-left:2px solid var(--edge);position:absolute;top:0;bottom:0;left:36px}.professional-steps li:first-child .professional-step:before{top:50%}.professional-steps li:last-child .professional-step:before{bottom:50%}@media (hover:hover){.professional-step:hover{background:var(--surface-subtle)}}.professional-step.is-next{background:var(--soft);font-weight:600}.professional-dot{z-index:1;border:2px solid var(--accent);background:var(--panel);width:18px;height:18px;color:var(--accent-ink);border-radius:50%;flex:none;place-items:center;margin-left:6px;display:grid;position:relative}.professional-dot[data-status=completed],.professional-dot[data-status=practised]{background:var(--accent-fill);border-color:var(--accent-fill)}.professional-dot[data-status=new]{border-color:var(--edge-strong)}.professional-step-title{flex:1;min-width:0}@media (max-width:1023px){.professional-trades{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:599px){.professional-trades{grid-template-columns:1fr}.professional-continue,.professional-next{flex-wrap:wrap}.professional-go{justify-content:center;width:100%;min-height:44px}.professional-track-head{gap:12px}.professional-search{min-height:44px}.professional-stop-head{min-height:52px}}.professional-guest-note{margin-top:22px}.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:"";border-bottom:1.5px solid;border-right:1.5px solid;flex:none;width:7px;height:7px;margin:0 6px 3px 0;transition:transform .15s;transform:rotate(45deg)}.scenario-fold[open] summary:after{margin:3px 6px 0 0;transform:rotate(-135deg)}.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:var(--edge-strong)}.scenario-turn-note{color:var(--streak);font-size:12px;font-style:italic;line-height:1.6}.scenario-room.is-chat{max-width:800px}.chat-head{gap:10px;margin-bottom:8px;display:grid}.chat-head-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.chat-head-title{min-width:0}.chat-head-title h1{font-size:var(--fs-h1);margin:0;line-height:1.25}.chat-head-title p{font-size:var(--fs-small);color:var(--muted);margin:4px 0 0}.chat-mode{border:1px solid var(--edge);border-radius:var(--pill);background:var(--panel);flex:none;padding:3px;display:inline-flex}.chat-mode button{border-radius:var(--pill);min-height:36px;color:var(--muted);font:inherit;font-size:var(--fs-small);cursor:pointer;background:0 0;border:0;padding:0 14px;font-weight:600}.chat-mode button[aria-checked=true]{background:var(--accent-fill);color:var(--accent-ink)}.chat-mode button:disabled{cursor:default;opacity:.6}.chat-start{border:1px dashed var(--edge-strong);border-radius:var(--radius);background:var(--panel);gap:14px;margin:18px 0;padding:18px 20px;display:grid}.chat-start p{margin:0;line-height:1.7}.chat-start-actions{flex-wrap:wrap;gap:10px;display:flex}.chat-start-actions .secondary-action{align-items:center;gap:8px;display:inline-flex}.chat{flex-direction:column;gap:12px;margin:18px 0;padding:0;list-style:none;display:flex}.chat-bubble{border:1px solid var(--edge);background:var(--panel);border-radius:18px;gap:4px;max-width:82%;padding:10px 14px;display:grid}.chat-bubble.is-theirs{border-bottom-left-radius:6px;align-self:flex-start}.chat-bubble.is-yours{background:var(--soft);border-color:var(--edge-strong);border-bottom-right-radius:6px;align-self:flex-end}.chat-bubble.is-playing{border-color:var(--accent)}.chat-who{font-size:var(--fs-caption);color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chat-speaking{color:var(--accent)}.chat-score{border-radius:var(--pill);background:var(--surface-subtle);color:var(--body);align-items:center;gap:3px;padding:1px 8px;font-weight:600;display:inline-flex}.chat-score.is-pass{background:var(--accent-fill);color:var(--accent-ink)}.chat-text{margin:0;font-size:17px;line-height:1.55}.chat-meaning{font-size:var(--fs-small);color:var(--muted);margin:0;line-height:1.6}.chat-tools{gap:4px;margin-top:2px;display:flex}.chat-resume{margin:0 0 16px}.chat-resume .learn-primary{align-items:center;gap:8px;display:inline-flex}.chat-turn{border:2px solid var(--accent);border-radius:var(--radius);background:var(--panel);gap:8px;width:100%;padding:14px 16px;display:grid}.chat-turn-line{font-family:var(--font-display);overflow-wrap:anywhere;margin:0;font-size:clamp(20px,2vw,26px);line-height:1.45}.chat-compared{font-size:var(--fs-caption);color:var(--muted);margin:0}.chat-turn-tools{flex-wrap:wrap;gap:8px;display:flex}.chat-turn-tools button{min-height:var(--control-sm);border:1px solid var(--edge);border-radius:var(--pill);background:var(--panel);color:var(--body);font:inherit;font-size:var(--fs-small);align-items:center;gap:6px;padding:0 12px;display:inline-flex}.chat-turn-tools button[aria-pressed=true]{background:var(--soft);border-color:var(--edge-strong)}.chat-about,.chat-objectives{margin:8px 0}.chat-about summary,.chat-objectives summary{cursor:pointer;align-items:center;min-height:44px;font-weight:600;display:flex}.scenario-room.is-chat .lesson-dock .chat-turn{box-shadow:0 -6px 18px light-dark(#2936200f,#00000040)}@media (max-width:599px){.chat-bubble{max-width:94%}.chat-mode{width:100%}.chat-mode button{flex:1;min-height:44px}.chat-turn-tools button{min-height:44px}.chat-text{font-size:16px}}.scenario-next{text-align:center;justify-content:center;align-items:center;text-decoration:none;display:flex}.scenario-back{font-size:13px}@media (max-width:900px){.professional-figures{grid-template-columns:repeat(2,1fr)}.scenario-setting-en,.video-keys{display:none}}@media (max-width:600px){:is(.professional-hub,.professional-track,.scenario-room){padding-top:24px}:is(.professional-hub,.professional-track,.scenario-room) .page-heading{margin-bottom:24px}.professional-hub .professional-guest-note{margin-top:24px}.professional-track .professional-categories{gap:16px;margin-top:24px}.professional-figures,.professional-track-card{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-back{padding:0 16px 16px}}.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-band{margin:0 0 24px}.dictation-band .section-kicker{margin-bottom:8px;display:block}.dictation-band-picker{flex-wrap:wrap;gap:8px;display:flex}.dictation-band-picker .filter-chip{min-height:var(--control);padding:0 14px}.dictation-band-picker .filter-chip[aria-checked=true]{background:var(--soft);border-color:var(--edge-strong);color:var(--accent);font-weight:600}.dictation-band-picker .filter-chip[aria-checked=true] small{color:inherit}.dictation-band>.reading-note{margin-top:8px}.dictation-section-empty{margin:0}.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(--muted);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:var(--surface-subtle)}.dictation-exercise-id{font-size:var(--fs-label);letter-spacing:.04em;color:var(--muted);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(--muted);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(--muted);align-items:center;gap:6px;margin-top:2px;font-weight:500;display:inline-flex}.is-completed .dictation-exercise-state{color:var(--body)}.is-started .dictation-exercise-state{color:var(--info)}.dictation-guest-note{margin-top:22px}.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:var(--edge-strong);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{background:var(--edge);border-color:var(--edge-strong);color:var(--body)}.is-tried .dictation-segment-number{background:var(--edge);border-color:var(--edge-strong);color:var(--warning)}.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-display);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(--muted);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{font-size:var(--fs-caption);letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.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;border-color:var(--edge-strong)!important;color:var(--accent)!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);min-width:20px;height:20px;font-size:var(--fs-caption);font-variant-numeric:tabular-nums;color:var(--muted);border-radius:999px;place-items:center;padding:0 6px;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-display);resize:vertical;border-radius:12px;padding:14px 16px;font-size:22px;line-height:1.5;display:block}.dictation-answer:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--edge);outline:0}.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-display);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);border-color:var(--edge-strong);color:var(--accent)}.dictation-stage-actions{margin-top:18px}.dictation-stage-actions kbd{font-size:var(--fs-caption);opacity:.85;border:1px solid light-dark(#fff6,#1c252066);border-radius:5px;margin-left:6px;padding:1px 6px;font-family:ui-monospace,Menlo,monospace}.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-display);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{text-decoration:line-through;-webkit-text-decoration-color:var(--danger);text-decoration-color:var(--danger);color:var(--muted)}.dict-word b{font-weight:400}.dict-word ins{text-decoration:none}.dict-word.is-correct{color:var(--body)}.dict-word.is-spelling{background:var(--soft);box-shadow:inset 0 -2px light-dark(#e5c56a,#a68a3a)}.dict-word.is-wrong{background:var(--danger-soft)}.dict-word.is-missing{background:var(--info-soft);border:1px dashed var(--info)}.dict-word.is-extra{background:var(--soft)}.dict-word-tag{font-family:var(--font-ui);font-size:var(--fs-caption);letter-spacing:.5px;text-transform:uppercase;color:var(--muted);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-display);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:var(--accent-soft);border-radius:4px}.dictation-translation{color:var(--muted);font-size:14px;line-height:1.6}.dictation-note{color:var(--streak);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:var(--warning)}.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-result-figures{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){:is(.dictation-hub,.dictation-room,.dictation-review){padding-top:24px}:is(.dictation-hub,.dictation-room,.dictation-review) .page-heading{margin-bottom:24px}.dictation-hub .page-meta.dictation-track-meta{margin:-14px 0 24px}.dictation-hub .dictation-next-up{margin-bottom:24px;padding:16px}.dictation-hub .dictation-focus{padding:16px}.dictation-hub .dictation-section:not(:first-of-type){margin-top:24px}.dictation-hub .dictation-section-more{margin-top:16px}:is(.dictation-hub,.dictation-review) .dictation-exercises{gap:16px}:is(.dictation-hub,.dictation-room) .dictation-guest-note{margin-top:24px}.dictation-room .dictation-settings{margin-top:16px}.dictation-review .settings-card{margin-top:24px;padding:16px}.dictation-exercise-card a{padding: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}}.dictation-exercise-test{color:var(--accent);font-weight:600}.ielts-tests-section{margin:0 0 32px}.ielts-tests-section .card-heading{flex-wrap:wrap;align-items:baseline;margin-bottom:6px}.ielts-tests-section .card-heading h2{font-size:var(--fs-h2);flex:auto;align-items:center;gap:8px;margin:0;font-weight:600;display:inline-flex}.ielts-tests-section>.reading-note{margin:0 0 12px}.ielts-test-cards{grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:12px;display:grid}.ielts-test-cards .ielts-test{margin:0}.ielts-test .card-heading{flex-wrap:wrap;align-items:baseline;gap:6px 12px}.ielts-test .card-heading h2{font-size:var(--fs-h3);flex:auto;margin:0;font-weight:600}.ielts-test-state{font-size:var(--fs-small);color:var(--muted);font-variant-numeric:tabular-nums}.ielts-parts{border-top:1px solid var(--edge);margin:12px 0 0;padding:0;list-style:none}.ielts-parts li{border-bottom:1px solid var(--edge);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:4px 12px;min-height:48px;padding:8px 0;display:grid}.ielts-part-name{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.ielts-part-title{text-overflow:ellipsis;overflow:hidden}.ielts-part-state,.ielts-part-title{font-size:var(--fs-small);color:var(--muted);white-space:nowrap}.ielts-part-state{font-variant-numeric:tabular-nums}.ielts-parts .text-button{white-space:nowrap;min-height:36px}.ielts-test-actions{flex-wrap:wrap;gap:8px 12px;margin-top:14px;display:flex}.ielts-tests .page-heading h1{flex-wrap:wrap;align-items:center;gap:10px;display:inline-flex}.ielts-tests .ielts-not-official{margin:-8px 0 20px}.ielts-tests .ielts-test{margin-bottom:16px}@media (max-width:600px){.ielts-tests{padding-top:24px}.ielts-tests .page-heading{margin-bottom:20px}.ielts-tests .ielts-not-official{margin:0 0 16px}.ielts-test{padding:16px}.ielts-parts li{grid-template-columns:auto minmax(0,1fr);padding:10px 0}.ielts-part-title{white-space:normal;grid-column:2}.ielts-part-state{grid-area:2/1/auto/2;font-size:12px}.ielts-parts .text-button{grid-area:2/2;justify-self:end;min-height:44px}.ielts-test-actions .primary-action,.ielts-test-actions .secondary-action{justify-content:center;width:100%}.ielts-tests-section .card-heading .text-button{min-height:44px}}.ielts-room-heading{margin-bottom:16px}.ielts-room-heading h1{font-size:var(--fs-h2)}.ielts-intro>p:first-child{font-size:var(--fs-body);margin:0 0 4px;line-height:1.7}.ielts-intro .ielts-parts li{grid-template-columns:auto minmax(0,1fr)}.ielts-intro .ielts-part-title{white-space:normal}.ielts-intro .xp-rule-line{margin-top:14px}.ielts-top.is-running{top:var(--topbar);z-index:20;border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);margin:0 0 20px;position:sticky;box-shadow:0 6px 18px #1f2a2214}.ielts-bar{flex-wrap:wrap;align-items:center;gap:8px 16px;padding:10px 16px;display:flex}.ielts-bar-part{white-space:nowrap;font-weight:600}.ielts-bar-phase{font-size:var(--fs-small);color:var(--muted);flex:auto;align-items:baseline;gap:8px;display:inline-flex}.ielts-bar-clock{font-size:var(--fs-h3);color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.ielts-audio{box-sizing:border-box;width:100%;padding:10px 16px 0;display:block}.ielts-audio[hidden]{display:none}.ielts-layout{grid-template-columns:minmax(0,1fr) 232px;align-items:start;gap:24px;display:grid}.ielts-paper{gap:28px;min-width:0;display:grid}.ielts-part>h2{font-size:var(--fs-h2);flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin:0 0 4px;font-weight:600;display:flex}.ielts-part>h2 small{font-weight:500}.ielts-part>h2 small,.ielts-situation{font-size:var(--fs-small);color:var(--muted)}.ielts-situation{margin:0 0 16px}.ielts-part.is-current .ielts-situation{color:var(--ink)}.ielts-group{margin-top:16px}.ielts-group-head{margin-bottom:12px}.ielts-group-head .section-kicker{margin-bottom:4px;display:block}.ielts-instruction{margin:0;font-weight:600}.ielts-instruction-vi{font-size:var(--fs-small);color:var(--muted);margin:2px 0 0}.ielts-choice,.ielts-matches,.ielts-options,.ielts-sentences,.ielts-sheet,.ielts-table{background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius)}.ielts-sheet{gap:8px;padding:16px 20px;display:grid}.ielts-sheet-title{letter-spacing:.04em;text-transform:uppercase;font-weight:700;font-size:var(--fs-small);margin:0 0 4px}.ielts-line{line-height:2;font-size:var(--fs-body)}.ielts-gap{vertical-align:baseline;border:0;border-bottom:2px solid var(--edge-strong);background:var(--app);min-height:36px;color:var(--ink);font:inherit;border-radius:4px 4px 0 0;max-width:100%;margin:0 4px;padding:4px 8px;font-weight:600;line-height:1.4;display:inline-block}.ielts-gap:focus-visible{outline:2px solid var(--focus);outline-offset:1px;border-bottom-color:var(--accent)}.ielts-gap:disabled{color:var(--muted)}.ielts-table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--fs-body);padding:8px 12px 12px}.ielts-table caption{text-align:left;caption-side:top;padding:8px 8px 4px}.ielts-table td,.ielts-table th{text-align:left;vertical-align:top;border-top:1px solid var(--edge);padding:10px 8px;line-height:1.8}.ielts-table thead th{font-size:var(--fs-small);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-top:0}.ielts-table tbody th{white-space:nowrap;font-weight:600}.ielts-sentences{gap:6px;margin:0;padding:12px 20px 12px 40px;line-height:2;display:grid}.ielts-sentences li::marker{font-weight:700}.ielts-choice{gap:4px;min-width:0;margin:0 0 12px;padding:12px 18px 14px;display:grid}.ielts-choice legend{float:left;width:100%;margin:0 0 8px;padding:0;font-weight:500;line-height:1.6}.ielts-choice legend b{margin-right:6px}.ielts-option{cursor:pointer;border-radius:8px;align-items:center;gap:12px;min-height:40px;padding:4px 6px;display:flex}.ielts-option:hover{background:var(--surface-subtle)}.ielts-option input{width:18px;height:18px;accent-color:var(--accent);flex:none;margin:0}.ielts-option b{margin-right:4px}.ielts-options{gap:4px;margin:0 0 12px;padding:12px 20px;line-height:1.7;list-style:none;display:grid}.ielts-match b,.ielts-options b{min-width:1.4em;font-weight:700;display:inline-block}.ielts-matches{margin:0;padding:6px 18px;list-style:none}.ielts-match{border-top:1px solid var(--edge);grid-template-columns:minmax(0,1fr) 112px;align-items:center;gap:12px;min-height:52px;padding:6px 0;display:grid}.ielts-match:first-child{border-top:0}.ielts-answer-sheet{top:calc(var(--topbar) + 80px);border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);padding:14px 16px;position:sticky}.ielts-answered{font-size:var(--fs-small);color:var(--muted);font-variant-numeric:tabular-nums;margin:0 0 10px}.ielts-cells{grid-template-columns:repeat(5,1fr);gap:6px;margin:0;padding:0;list-style:none;display:grid}.ielts-cells button{border:1px solid var(--edge);background:var(--app);width:100%;min-height:36px;color:var(--muted);font-size:var(--fs-small);font-variant-numeric:tabular-nums;cursor:pointer;border-radius:8px;padding:0}.ielts-cells button.is-answered{background:var(--soft);border-color:var(--edge-strong);color:var(--accent);font-weight:600}.ielts-cells button[aria-current=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);color:var(--ink);font-weight:700}@media (max-width:900px){.ielts-layout{grid-template-columns:minmax(0,1fr)}.ielts-answer-sheet{top:auto;bottom:var(--tabbar-height,0);margin-inline:calc(-1 * var(--gutter));padding:10px var(--gutter) max(10px,env(safe-area-inset-bottom,0px));border-radius:var(--r-lg) var(--r-lg) 0 0;border-inline:0;border-bottom:0;order:2;position:sticky;box-shadow:0 -6px 18px light-dark(#1f2a2214,#00000059)}.ielts-paper{order:1}.ielts-answered{margin-bottom:6px}.ielts-cells{margin-inline:calc(-1 * var(--gutter));padding:2px var(--gutter) 4px;scroll-padding-inline:var(--gutter);scrollbar-width:none;overscroll-behavior-x:contain;gap:6px;display:flex;overflow-x:auto}.ielts-cells::-webkit-scrollbar{display:none}.ielts-cells li{flex:none}.ielts-cells button{width:44px;min-height:44px}}@media (max-width:600px){.ielts-room{padding-top:20px}.ielts-room-heading{margin-bottom:12px}.ielts-top.is-running{margin-bottom:16px}.ielts-bar{gap:8px 12px;padding:10px 12px}.ielts-audio{padding:8px 12px 0}.ielts-bar .primary-action,.ielts-bar .secondary-action{flex:auto;min-height:44px}.ielts-paper{gap:24px}.ielts-sheet{padding:14px 16px}.ielts-line{font-size:16px;line-height:2.2}.ielts-gap{width:min(100%,12em);min-height:44px;font-size:16px}.ielts-gap[size="12"]{width:7em}.ielts-table{padding:8px;display:block;overflow-x:auto}.ielts-table td,.ielts-table th{padding:8px 6px;font-size:14px}.ielts-sentences{padding:12px 16px 12px 36px;font-size:16px}.ielts-choice{padding:12px 14px}.ielts-option{min-height:44px}.ielts-match{grid-template-columns:minmax(0,1fr) 96px}.ielts-intro{padding:16px}.ielts-intro .ielts-test-actions .primary-action,.ielts-intro .ielts-test-actions .secondary-action{justify-content:center;width:100%}}.ielts-summary{gap:6px;display:grid}.ielts-summary-raw{font-variant-numeric:tabular-nums;color:var(--muted);margin:0;font-size:40px;line-height:1.1}.ielts-summary-raw b{color:var(--ink);font-size:52px;font-weight:600}.ielts-summary-band{font-size:var(--fs-h3);flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin:0;font-weight:600;display:flex}.ielts-summary-band small{font-size:var(--fs-small);color:var(--muted);font-weight:400}.ielts-summary .page-meta{margin:4px 0 0}.ielts-summary .xp-rule-line{margin-top:10px}.ielts-review-part{margin-top:28px}.ielts-review-part>h2{font-size:var(--fs-h2);flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin:0 0 10px;font-weight:600;display:flex}.ielts-review-part>h2 small{font-size:var(--fs-small);color:var(--muted);font-weight:500}.ielts-review-rows{border-top:1px solid var(--edge);margin:0;padding:0;list-style:none}.ielts-review-row{border-bottom:1px solid var(--edge)}.ielts-review-row summary{cursor:pointer;grid-template-columns:32px 20px minmax(0,1fr) auto;align-items:center;gap:6px 12px;min-height:52px;padding:10px 4px;list-style:none;display:grid}.ielts-review-row summary::-webkit-details-marker{display:none}.ielts-review-row summary:hover{background:var(--surface-subtle)}.ielts-review-number{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:600}.ielts-review-mark{text-align:center;font-weight:700}.ielts-review-mark.is-correct{color:var(--accent)}.ielts-review-mark.is-wrong{color:var(--danger)}.ielts-review-mark.is-blank{color:var(--faint)}.ielts-review-answers{flex-wrap:wrap;gap:2px 16px;min-width:0;display:flex}.ielts-review-answers small{color:var(--muted);margin-right:4px;font-weight:400}.ielts-review-printed{font-weight:600}.ielts-review-typed{color:var(--danger)}.ielts-review-reason{font-size:var(--fs-small);color:var(--muted);white-space:nowrap}.ielts-review-body{gap:8px;padding:4px 4px 16px 44px;display:grid}.ielts-segment-text{font-size:var(--fs-body);margin:0;line-height:1.8}.ielts-segment-text.is-whole{background:var(--soft);border-radius:6px;padding:4px 8px}.ielts-segment-translation{font-size:var(--fs-small);color:var(--muted);margin:0}.ielts-review-hint{margin:0}.ielts-review-actions{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:4px;display:flex}.ielts-review-next{align-items:center;margin-top:28px}@media (max-width:600px){.ielts-review{padding-top:20px}.ielts-summary{padding:16px}.ielts-summary-raw{font-size:32px}.ielts-summary-raw b{font-size:44px}.ielts-review-row summary{grid-template-columns:28px 18px minmax(0,1fr);padding:10px 0}.ielts-review-reason{white-space:normal;grid-column:3;font-size:12px}.ielts-review-body{padding:4px 0 16px}.ielts-review-actions .secondary-action,.ielts-review-actions .text-button{min-height:44px}.ielts-review-next .primary-action,.ielts-review-next .secondary-action{justify-content:center;width:100%}}.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);border-color:var(--edge-strong);color:var(--accent);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{font-size:var(--fs-caption);color:var(--muted);white-space:normal}.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-radius:var(--r-lg);background:var(--panel);box-shadow:var(--shadow-raise);border:0;margin:0 0 24px;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-display);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(--muted);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-fill);border-color:var(--accent-fill);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:var(--edge)}}.session-card-note{font-size:var(--fs-caption);color:var(--muted);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:1px solid var(--edge-strong);border-radius:var(--radius);background:var(--soft);font-size:var(--fs-small);top:calc(var(--topbar) + 8px);z-index:20;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:var(--soft);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(--muted)}.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-display);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-display);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-page{padding-top:24px}.ear-page .page-heading{margin-bottom:24px}.ear-page .settings-card{padding:16px}.ear-page .ear-all{margin-top:24px}.ear-page>.reading-note{margin-top:16px}.ear-page .page-heading .eyebrow a,.ear-sample-source a{align-items:center;min-height:44px;margin:-12px 0;display:inline-flex}.ear-feature-link{grid-template-columns:minmax(0,1fr) 16px;grid-template-areas:"name arrow""bar arrow""figures arrow";row-gap:0}.ear-feature-name{grid-area:name}.ear-feature-bar{grid-area:bar;margin-top:6px}.ear-feature-bar:empty{display:none}.ear-feature-figures{white-space:normal;grid-area:figures;margin-top:6px}.ear-feature-link>svg{grid-area:arrow}.ear-sample-line{font-size:19px}}.content.fame-page{--fame-gold:light-dark(#8a6a2b,#ddbe85);--fame-ink:light-dark(#1f2d26,#f5eddf);--fame-muted:light-dark(#5b695c,#b9b9b5);--fame-edge:light-dark(#d9d0bd,#514b40);--fame-panel:light-dark(#faf7f0,#18222c);--fame-on-gold:light-dark(#fff,#15202b);max-width:none;color:var(--fame-ink);background:light-dark(#f4efe4,#0c131b);padding:32px clamp(20px,5vw,72px) 64px}.fame-heading{text-align:center;padding:40px 0 32px;position:relative}.fame-page .section-kicker{color:var(--fame-gold)}.fame-heading h1{font-family:var(--font-display);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-display);color:light-dark(#8a6a2b14,#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(#8a6a2b40,#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(#8a6a2b20,#ddbe8520);border-radius:50%;position:absolute;inset:20px}.fame-plinth{border:1px solid var(--fame-edge);background:light-dark(#e9e2d2,#1d252c);border-radius:50%;width:230px;height:30px;position:absolute;bottom:4px;box-shadow:0 9px light-dark(#d2c8b2,#080e16)}.fame-winner{text-align:center;padding:22px 0 32px}.fame-winner h2{font-family:var(--font-display);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(#8a6a2b0c,#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-display);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:var(--fame-panel);padding:28px 32px;position:relative}.fame-record-number{font-family:var(--font-display);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);min-height:44px;color:var(--fame-on-gold);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-display);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(#f4efe4,#111923);border-radius:8px;padding:32px}.fame-dialog::backdrop{background:light-dark(#1f2d2699,#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-display);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);min-height:44px;color:var(--fame-on-gold);margin-top:24px}@media (max-width:600px){.content.fame-page{padding:20px var(--gutter) 40px}.fame-heading{padding:0 0 28px}.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}}:root{--league-gold:light-dark(#8a6a2b,#dfc08a);--league-gold-soft:var(--warning-soft)}.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 6px 5px light-dark(#00000026,#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}.hall-champion>.rank-mark{width:160px;height:160px;box-shadow:none;background:0 0;border:0;padding:0}@media (max-width:600px){.rank-mark-compact{width:70px;height:70px}.hall-champion>.rank-mark{width:100px;height:100px}}.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}.rank-strip{border-radius:var(--radius-lg);background:var(--panel);min-height:132px;color:var(--ink);box-shadow:var(--shadow-raise);border:0;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-display);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-today{font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums;margin-top:4px}.rank-strip-failed{min-height:0;padding:12px 16px;display:block}.rank-strip .new-badge{color:var(--accent);border-color:var(--accent);vertical-align:middle;margin-left:6px}.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}}.fame-seasons{margin:0;padding:0;list-style:none}.fame-season{border-bottom:1px solid var(--fame-edge);grid-template-columns:160px minmax(0,1fr);align-items:center;gap:24px;padding:28px 0;display:grid}.fame-monument-small{height:160px}.fame-monument-small>.rank-mark{width:140px;height:140px}.fame-season-copy h2{font-family:var(--font-display);color:var(--fame-ink);margin:8px 0;font-size:clamp(28px,3vw,40px);font-weight:400}.fame-top{gap:4px;margin:8px 0 0;padding:0;list-style:none;display:grid}.fame-top li{font-size:var(--fs-small);color:var(--fame-muted);grid-template-columns:40px minmax(0,1fr) auto;gap:12px;display:grid}.fame-top b{color:var(--fame-ink);font-weight:500}.fame-your-result{font-size:var(--fs-small);color:var(--fame-muted);margin-top:12px}.fame-your-result .text-button{min-height:44px;color:var(--fame-gold);margin-left:8px}.fame-archive-empty{text-align:center;color:var(--fame-muted);padding:40px 0}@media (max-width:600px){.fame-season{grid-template-columns:1fr;gap:12px}.fame-monument-small{height:120px}.fame-monument-small>.rank-mark{width:100px;height:100px}}:is(.profile-page,.league-page) :is(section,header,li)>div,:is(.profile-page,.league-page) :is(section,header,nav,article,dl,ul,ol){min-width:0}:is(.profile-page,.league-page) :is(h1,h2,h3,p,dd,dt,a,button){overflow-wrap:anywhere}:is(.profile-page,.league-page) dialog{overscroll-behavior:contain;max-height:calc(100dvh - 32px);overflow-y:auto}.xp-rule-line{font-size:var(--fs-small);color:var(--muted);margin:12px 0 0;line-height:1.6}.xp-rule-line a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.reading-start .xp-rule-line{flex-basis:100%;max-width:none;margin:0}:is(.today-page,.catalog-page,.practice-page,.saved-library,.settings-page) :is(section,article,header,li)>div{min-width:0}:is(.today-page,.catalog-page,.practice-page,.saved-library,.settings-page) :is(h1,h2,h3,p,dd){overflow-wrap:anywhere}.practice-page .practice-grid>*{min-width:0}.catalog-page .topic-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,252px),1fr))}.settings-page .theme-choice-row>div{min-width:0;max-width:100%}.settings-page .usage-figures{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:900px){.settings-page .usage-figures{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){:is(.today-page,.catalog-page,.practice-page,.settings-page){padding-top:24px}.today-page .session-card,:is(.today-page,.catalog-page,.practice-page,.settings-page) .page-heading{margin-bottom:24px}.today-page .rank-strip{gap:12px;padding:16px}.today-page .rank-strip>.rank-mark{width:52px;height:52px}.today-page .rank-strip-link{min-height:44px;padding:0}.today-page .guide{gap:24px;padding:24px 0}.catalog-page .topic-grid-heading{margin-top:24px}.catalog-page .lesson-detail,.catalog-page .lesson-listen{padding:16px}.catalog-page .reading-body{padding:16px 0}.practice-page :is(.player-top,.sentence-stage,.transport,.record-area,.recordings-card,.transcript-card){padding-inline:16px}.practice-page .sentence-stage{padding-block:24px}.practice-page .sentence-stage h3{font-size:clamp(24px,7vw,30px)}.practice-page .lesson-meta{gap:8px 12px}.practice-page .lesson-meta :is(span,.text-button){white-space:normal;overflow-wrap:anywhere}.practice-page .stage-actions{gap:4px 8px;margin-top:16px}.with-listening .reading-caption{margin-top:0;font-size:12px}.with-listening .reading-body{padding:16px}.saved-library .lesson-card{min-width:0}.settings-page .settings-group{margin-top:24px}.settings-page :is(.settings-card,.privacy-card,.settings-account-row){padding:16px}.settings-page .settings-account-row{flex-wrap:wrap}.settings-page .theme-choice-row{gap:12px}.settings-page .theme-choice-row>div{flex-basis:100%}.settings-page :is(.settings-hint,.usage-figures span){font-size:12px}.settings-page .settings-actions{gap:12px;margin-top:16px}.settings-page .settings-actions>button{white-space:normal;max-width:100%}}.content.fame-page{min-width:0;margin-inline:0}.fame-page :is(section,header,article,li)>div{min-width:0}.fame-page :is(h1,h2,h3,p,b,small,.section-kicker){overflow-wrap:anywhere}.fame-page .fame-personal{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:32px}.fame-page .fame-values{grid-template-columns:repeat(3,minmax(0,1fr))}.fame-page .fame-edition{flex-wrap:wrap;gap:8px 16px}.fame-page .fame-top li{grid-template-columns:36px minmax(0,1fr) minmax(0,auto);align-items:baseline;padding-block:8px}.fame-page .fame-top li>span:last-child{text-align:right;overflow-wrap:anywhere}.fame-page .fame-your-result .text-button{white-space:normal;align-items:center;max-width:100%;margin:8px 0 0;display:flex}.fame-page .fame-dialog{overscroll-behavior:contain;max-width:min(440px,100% - 32px);max-height:calc(100dvh - 32px);overflow-y:auto}.fame-page .fame-dialog .primary-action,.fame-page .fame-personal-record :is(button,a){white-space:normal;overflow-wrap:anywhere;max-width:100%}@media (max-width:900px){.content.fame-page{padding:24px var(--gutter) 32px}.fame-page .fame-heading{padding:0 0 24px}.fame-page .fame-personal{grid-template-columns:minmax(0,1fr);gap:24px;padding:24px 0}.fame-page .fame-personal-record{padding:24px}.fame-page .fame-values{gap:24px;padding-top:24px}}@media (max-width:600px){.fame-page .fame-heading h1{font-size:clamp(32px,9vw,44px)}.fame-page .fame-stage{padding-top:24px}.fame-page .fame-archive-empty{text-align:left;padding:24px 0}.fame-page .fame-season{grid-template-columns:minmax(0,1fr);gap:16px;padding:24px 0}.fame-page .fame-monument-small{height:120px}.fame-page .fame-monument-small>.rank-mark{width:112px;height:112px}.fame-page .fame-season-copy h2{margin:12px 0;font-size:28px;line-height:1.2}.fame-page .fame-top li{grid-template-columns:28px minmax(0,1fr) minmax(0,.65fr);gap:8px}.fame-page .fame-personal h2{margin:12px 0;font-size:32px}.fame-page .fame-personal-record{padding:16px}.fame-page .fame-record-number{overflow-wrap:anywhere;font-size:clamp(48px,16vw,64px)}.fame-page .fame-personal-record :is(button,a){width:100%;margin-block:16px}.fame-page .fame-values{grid-template-columns:minmax(0,1fr)}.fame-page .fame-values article{grid-template-columns:36px minmax(0,1fr);gap:0 12px}.fame-page .fame-dialog{padding:16px}.fame-page .fame-dialog>.primary-action{width:100%;margin-top:16px}}.rhythm{gap:14px;margin:0 0 16px;display:grid}.rhythm[aria-busy=true]{gap:14px;min-height:96px}.rhythm-skeleton{height:56px}.rhythm-guest{border:1px solid var(--edge);border-radius:var(--r-md);background:var(--surface-subtle);color:var(--body);font-size:var(--fs-small);flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0 0 24px;padding:8px 16px;display:flex}.rhythm-guest a{min-height:44px;color:var(--accent);align-items:center;font-weight:600;display:inline-flex}.streak{align-content:start;gap:12px;display:grid}.streak-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.streak-head strong{font-size:var(--fs-h3);color:var(--ink);font-weight:700}.streak-count{border-radius:var(--pill);background:var(--warning-soft);color:var(--streak);font-size:var(--fs-h3);font-variant-numeric:tabular-nums;align-items:center;gap:6px;padding:5px 11px;font-weight:700;display:inline-flex}.streak-count svg{fill:var(--streak-bright);stroke:none}.figure-streak{color:var(--streak)}.figure-success{color:var(--success)}.streak-week{justify-content:space-between;gap:4px;margin:0;padding:0;list-style:none;display:flex}.streak-week li{justify-items:center;gap:6px;display:grid}.streak-week small{font-size:var(--fs-caption);color:var(--muted);font-weight:700}.streak-week li.is-today small{color:var(--accent)}.streak-cell{background:var(--surface-subtle);width:34px;height:34px;color:var(--edge-strong);border:2px solid #0000;border-radius:50%;place-items:center;display:grid}.streak-cell.is-learning{background:var(--warning-soft);color:var(--streak-bright)}.streak-cell.is-today{border-color:var(--accent)}.streak-cell svg{fill:currentColor;stroke:none}.streak-line{font-size:var(--fs-small);color:var(--muted)}.streak-line.is-milestone{color:var(--streak);font-weight:600}.rhythm-today{align-items:center;gap:16px;min-width:0;display:flex}.rhythm-today-line{font-size:var(--fs-h3);align-items:center;gap:8px;font-weight:700;display:flex}.meter{flex:none;position:relative}.meter,.meter-ring{width:56px;height:56px}.meter-ring{transform:rotate(-90deg)}.meter-track{fill:none;stroke:var(--accent-soft);stroke-width:5px}.meter-fill{fill:none;stroke:var(--accent);stroke-width:5px;stroke-linecap:round;transition:stroke-dashoffset var(--t-slow) ease}.meter.is-met .meter-fill{stroke:var(--success)}.meter-figure{font-size:var(--fs-figure-sm);font-variant-numeric:tabular-nums;color:var(--ink);place-items:center;font-weight:600;display:grid;position:absolute;inset:0}.meter.is-met .meter-figure{color:var(--success)}@media (prefers-reduced-motion:reduce){.meter-fill{transition:none}}.rhythm-today-text{gap:8px;min-width:0;display:grid}.rhythm-today-line{font-size:var(--fs-body);color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.rhythm.is-met .rhythm-today-line{color:var(--success)}.goal-chips{flex-wrap:nowrap;gap:6px;display:flex}.goal-chips .filter-chip{justify-content:center;min-width:44px;font-weight:700}.rhythm-offline{font-size:var(--fs-caption);color:var(--muted);grid-column:1/-1}.rhythm-goal-card .goal-chips{flex:none}.home-continue{border-radius:var(--r-lg);background:var(--accent-gradient);box-shadow:var(--shadow-float);border:0;gap:8px;margin:0 0 24px;padding:22px 24px;display:grid}.home-continue,.home-continue .eyebrow,.home-continue h2{color:var(--accent-ink)}.home-continue h2{font-family:var(--font-display);font-size:var(--fs-h1);font-weight:800;line-height:1.25}.home-continue-line{font-size:var(--fs-small);color:var(--accent-ink);font-variant-numeric:tabular-nums}.home-continue-track{border-radius:var(--pill);background:light-dark(#ffffff47,#ffffff2e);height:8px;margin-top:4px;overflow:hidden}.home-continue-track i{border-radius:var(--pill);background:var(--streak-bright);height:100%;display:block}.home-continue .primary-action{background:var(--panel);color:var(--accent);box-shadow:none;justify-self:start;margin-top:4px}.home-continue .primary-action:hover:not(:disabled){background:var(--panel);color:var(--accent-hover);box-shadow:var(--shadow-raise)}.home-pending-line{width:min(100%,320px);height:28px}.home-pending-button{border-radius:8px;width:140px;height:44px}.home-section{margin:0 0 24px}.home-section-title{font-size:var(--fs-h2);margin:0 0 8px}.home-all-rooms{min-height:44px;color:var(--accent);font-weight:600;font-size:var(--fs-small);align-items:center;display:inline-flex}.session-card.is-compact{margin-bottom:24px}.session-fold summary{cursor:pointer;min-height:44px;color:var(--accent);font-size:var(--fs-small);align-items:center;padding:0 24px;font-weight:500;display:flex}@media (max-width:700px){.rhythm{grid-template-columns:1fr}.home-continue,.rhythm{padding:16px 18px}.session-fold summary{padding:0 18px}}.reading-result{text-align:center;justify-items:stretch;gap:14px;padding:4px 0 8px;display:grid}.reading-result-badge{background:var(--accent-soft);border:4px solid var(--accent-fill);width:84px;height:84px;color:var(--accent);border-radius:50%;justify-self:center;place-items:center;display:grid}.reading-result-title{font-family:var(--font-display);font-size:var(--fs-h1);font-weight:800;line-height:var(--lh-tight);color:var(--ink)}.reading-result-said{font-size:var(--fs-body);color:var(--muted)}.reading-result-figures{text-align:left;gap:12px;display:grid}.reading-result-figures-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.reading-result-figures-head span{font-size:var(--fs-small);color:var(--muted)}.reading-result-track{border-radius:var(--pill);background:var(--accent-soft);flex-basis:100%;height:10px;overflow:hidden}.reading-result-track i{border-radius:var(--pill);background:var(--accent-fill);height:100%;display:block}.reading-result-clean{font-size:var(--fs-small);color:var(--success)}.reading-result-slipped{text-align:left;gap:8px;display:grid}.reading-result-slipped p{font-size:var(--fs-small);color:var(--muted);font-weight:700}.reading-result-slipped>div{flex-wrap:wrap;gap:8px;display:flex}.reading-result-word{border:1px solid var(--edge);border-radius:var(--pill);background:var(--panel);color:var(--ink);align-items:center;gap:4px;padding:4px 10px;font-weight:600;display:inline-flex}.reading-result-word small{font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums}.reading-result-list{background:var(--panel);border-radius:var(--r-lg);box-shadow:var(--shadow-raise);text-align:left;border-top:0;gap:0;margin:0;padding:6px 16px;list-style:none;display:grid}.reading-result-row{border-bottom:1px solid var(--edge);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:8px 12px;padding:12px 0;display:grid}.reading-result-row:last-child{border-bottom:0}.reading-result-index{font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums}.reading-result-sentence{min-width:0;font-size:var(--fs-body);color:var(--ink);gap:2px;display:grid}.reading-result-sentence .ipa{font-size:var(--fs-caption)}.reading-result-play{border:1px solid var(--edge-strong);background:var(--panel);min-height:44px;color:var(--accent);font-size:var(--fs-small);font-variant-numeric:tabular-nums;border-radius:10px;align-items:center;gap:8px;padding:0 14px;font-weight:600;display:inline-flex}.reading-result-play[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:var(--soft)}.reading-result-none,.reading-result-note{font-size:var(--fs-caption);color:var(--muted)}.reading-result-actions{flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:4px;display:flex}@media (max-width:600px){.reading-result-row{grid-template-columns:auto minmax(0,1fr);gap:6px 10px}.reading-result-play,.reading-result-row .text-button{grid-column:2;justify-self:start}}.library-heading .eyebrow{flex-wrap:wrap;align-items:center;gap:4px 12px;display:flex}.library-pick{min-height:var(--control-touch);border:2px solid var(--edge);border-radius:var(--pill);background:var(--panel);color:var(--accent);align-items:center;gap:6px;padding:0 14px;font-weight:700;display:inline-flex}.library-pick:hover{background:var(--surface-subtle)}.library-browse{color:var(--accent);margin-top:8px;padding:6px 0;font-weight:600}.library-filters{flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:12px;display:flex}.library-filters .topic-search{flex:220px}.library-levels{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.library-lesson-level{min-height:20px;font-size:var(--fs-caption);color:var(--accent);background:var(--soft);border-radius:5px;align-items:center;margin-right:6px;padding:0 6px;font-weight:600;display:inline-flex}.library-more{margin-top:16px}.library-keep-row{border-top:1px solid var(--edge);flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:24px;padding-top:16px;display:flex}.library-from-device{max-width:var(--content-max);font-size:var(--fs-small);color:var(--muted);margin:0 auto;padding:8px 16px}.library-skeleton-line{width:min(60%,280px);height:14px}.library-skeleton-title{width:min(90%,520px);height:30px;margin-top:10px}.library-skeleton-body{border-radius:var(--r-lg);height:220px;margin-top:20px;display:block}.library-bar{align-items:center;gap:12px;margin:0 0 12px;display:flex}.library-bar-text{flex-grow:1;gap:2px;min-width:0;display:grid}.library-bar-text span{font-size:var(--fs-small);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.library-bar-text strong{font-size:var(--fs-h3);color:var(--ink);font-weight:700}.is-speaking .reading-body{gap:14px;display:grid}.is-speaking .practice-steps,.is-speaking .reading-caption{display:none}.is-speaking .reading-practice{box-shadow:none;background:0 0;border:0;padding:0;overflow:visible}.is-speaking .reading-stage{background:var(--panel);border-radius:var(--r-lg);box-shadow:var(--shadow-raise);text-align:left;padding:22px 20px}.is-speaking .reading-position{font-size:var(--fs-caption);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;display:block}.is-speaking .reading-stage .answer-en{font-family:var(--font-display);font-size:var(--fs-display);color:var(--ink);margin-top:8px;font-weight:800;line-height:1.32}.is-speaking .reading-stage .chunk-ipa{color:var(--muted);margin-top:8px}.is-speaking .reading-note,.is-speaking .reading-reset,.is-speaking .reading-translation{display:none}.is-speaking .speak-recorder.is-row .speak-recorder-actions .speak-record{border-radius:var(--r-md);background:var(--accent-gradient);min-height:56px;color:var(--accent-ink);box-shadow:var(--shadow-raise);border:0;flex-grow:1;font-weight:700}.is-speaking .speak-recorder.is-row .speak-recorder-actions .speak-record svg{color:var(--accent-ink)}.is-speaking .speak-recorder.is-row .speak-recorder-actions .speak-record.is-recording{background:var(--danger-soft);color:var(--danger);box-shadow:none}.is-speaking .speak-recorder.is-row .speak-recorder-actions .speak-record.is-recording svg{color:var(--danger)}.is-speaking .speak-recorder.is-row>.speak-recorder-actions{min-height:56px}.is-speaking .reading-controls button{border-radius:var(--pill);min-height:54px}.palette-choice{margin-bottom:16px;padding:22px 24px}.palette-choice-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;display:flex}.palette-choice-row strong{font-size:var(--fs-h3);color:var(--ink);font-weight:600;display:block}.palette-choice-row span{font-size:var(--fs-small);color:var(--muted);margin-top:2px;display:block}.palette-swatches{gap:8px;display:flex}.palette-swatch{min-height:var(--control-touch);border:2px solid var(--edge);border-radius:var(--pill);background:var(--panel);color:var(--ink);font-size:var(--fs-small);align-items:center;gap:8px;padding:0 16px 0 12px;font-weight:600;display:inline-flex}.palette-swatch span{border-radius:50%;flex:none;width:20px;height:20px}.palette-swatch.is-green span{background:linear-gradient(135deg,light-dark(#1f5c3f,#2a6e4a),light-dark(#2a6e4a,#2f7b54))}.palette-swatch.is-violet span{background:linear-gradient(135deg,light-dark(#5b4bd6,#4a3cc4),light-dark(#6c5ce7,#6c5ce7))}.palette-swatch.is-blue span{background:linear-gradient(135deg,light-dark(#1565c0,#12538f),light-dark(#1976d2,#1976d2))}.palette-swatch.is-pink span{background:linear-gradient(135deg,light-dark(#c2185b,#9e1047),light-dark(#d81b60,#d81b60))}.palette-swatch.is-chosen{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.palette-swatch:hover:not(.is-chosen){background:var(--surface-subtle)}.palette-swatch:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.palette-swatches{flex-wrap:wrap}@media (max-width:600px){.palette-choice{padding:16px}.palette-swatches{grid-template-columns:1fr 1fr;width:100%;display:grid}.palette-swatch{justify-content:center}}@media (min-width:900px){.rhythm{grid-template-columns:1fr 1fr;align-items:start}.rhythm>.plate{height:100%}.today-page .row-list.is-plates{grid-template-columns:1fr 1fr;gap:12px;max-width:none;display:grid}.today-page section[aria-labelledby=home-review-title] .row-list.is-plates{grid-template-columns:1fr}.row-list.is-plates .row-line{white-space:normal}.streak-week{max-width:460px}}.today-page{--shadow-raise:0 2px 8px light-dark(#14211b08,#00000026);--shadow-float:0 6px 20px light-dark(#14211b14,#00000040)}.home-layout{grid-template-columns:minmax(0,1fr);gap:32px;margin-bottom:32px;display:grid}.home-learning,.home-progress{min-width:0}.home-learning{flex-direction:column;gap:24px;display:flex}.home-learning>.home-section-title,.home-learning>:is(.home-continue,.session-card,.guide,.home-section){margin:0}.today-page :is(.rank-strip,.session-card,.plate,.row-list.is-plates .row-link){border:1px solid var(--edge);box-shadow:var(--shadow-raise)}.home-continue h2{line-height:var(--lh-tight)}.home-continue{gap:12px;padding:24px}.home-continue .primary-action{min-height:48px;margin-top:8px}.home-learning .session-card-head{flex-direction:column;align-items:flex-start;gap:16px;padding:24px}.home-learning .session-card-title{flex:none;max-width:none}.home-learning .session-card h2{font-size:var(--fs-h2);font-weight:700;line-height:var(--lh-tight)}.home-learning .session-actions{flex-wrap:wrap}.home-learning .session-fold summary{min-height:56px;padding:0 24px 12px}.today-page .guide{box-shadow:none;background:0 0;border:0;border-radius:0;gap:16px;padding:0;list-style:none}.today-page .guide li{min-width:0;padding-left:28px;position:relative}.today-page .guide strong{font-size:var(--fs-small);color:var(--ink);margin-bottom:4px;font-weight:700;display:block}.today-page .guide p{font-size:var(--fs-small)}.home-section-title{margin-bottom:12px;font-weight:700}.home-progress>.home-section-title{margin-bottom:16px}.home-progress .rank-strip{grid-template-columns:52px minmax(0,1fr);gap:12px;min-height:0;padding:20px}.home-progress .rank-strip>.rank-mark{width:52px;height:64px}.home-progress .rank-strip-rank{flex-wrap:wrap;gap:4px 8px}.home-progress .rank-strip-rank b{font-size:var(--fs-h2)}.home-progress .rank-strip-link{grid-column:2;justify-self:start;min-height:44px;padding:0}.home-progress .rhythm{grid-template-columns:minmax(0,1fr);gap:16px;margin:0;padding:0}.home-progress .rhythm-today,.home-progress .rhythm-today-line{flex-wrap:wrap}.home-progress .rhythm-guest{margin:0;padding:12px 16px}.home-learning .today-next-review{border-top:1px solid var(--edge);margin:0;padding:16px 0}.home-section-head{flex-wrap:wrap;margin-bottom:12px}.home-section-head .home-section-title{margin:0}.home-all-rooms{gap:8px}.today-page .home-explore .row-list.is-plates{gap:16px}.today-page .home-explore .row-link{border-radius:var(--r-md);padding:16px}@media (min-width:1151px){.home-layout{grid-template-rows:auto auto auto auto;grid-template-columns:minmax(0,1.6fr) minmax(320px,1fr);align-items:stretch;gap:24px 32px}.home-learning,.home-progress{grid-template-rows:subgrid;grid-row:1/5;gap:24px;display:grid}.home-learning{grid-column:1}.home-progress{grid-column:2}.home-layout .home-section-title{margin:0}.home-learning>.home-section{grid-row:4}.home-learning>.home-section>.home-section-title{margin-bottom:12px}.home-progress .rank-strip{align-content:start;margin:0}.home-progress .rank-strip>.rank-mark{align-self:start}.home-progress .rhythm{grid-template-rows:auto auto;align-items:stretch}.home-learning>.session-card{align-self:stretch}.home-learning>.home-continue{align-content:start}.home-learning>.guide{align-self:start}}@media (max-width:600px){.home-layout{gap:24px;margin-bottom:24px}.home-continue,.home-learning .session-card-head,.home-progress .rank-strip{padding:16px}.home-learning .session-fold summary{padding:0 16px 12px}.today-page .guide{grid-template-columns:1fr;gap:16px;padding:0}.home-learning .session-actions{width:100%}.home-learning .session-actions>a{white-space:normal;text-align:center;flex:1}.home-continue .primary-action{justify-self:stretch}}.page-layout{--shadow-raise:0 2px 8px light-dark(#14211b08,#00000026);--shadow-float:0 6px 20px light-dark(#14211b14,#00000040);grid-template-columns:minmax(0,1fr);gap:32px;margin-bottom:32px;display:grid}.page-layout :is(.plate,.row-list.is-plates .row-link,.empty-state){border:1px solid var(--edge);box-shadow:var(--shadow-raise)}.page-main,.page-side{flex-direction:column;gap:24px;min-width:0;display:flex}.page-section{gap:12px;min-width:0;display:grid}.page-section-title{font-size:var(--fs-h2);font-weight:700;line-height:var(--lh-tight)}.page-section-head{flex-wrap:wrap;gap:4px 12px}.page-note,.page-section-head>span{font-size:var(--fs-small);color:var(--muted)}.page-note{line-height:1.6}.page-side .row-list.is-plates .row-link{border-radius:var(--r-md);padding:16px}@media (min-width:1151px){.page-layout{grid-template-columns:minmax(0,1.6fr) minmax(320px,1fr);align-items:start}}@media (max-width:600px){.page-layout{gap:24px;margin-bottom:24px}}.league-standing{gap:20px;padding:24px;display:grid}.league-standing-head{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:20px;display:grid}.league-standing-head>.rank-mark{width:112px;height:112px}.league-standing-rank{gap:4px;display:grid}.league-standing-name{font-size:var(--fs-h2);color:var(--ink);font-weight:700;line-height:var(--lh-tight)}.league-standing-place{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.league-standing-place strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:40px;font-weight:800;line-height:1.1}.league-standing-place span{font-size:var(--fs-small);color:var(--accent);font-weight:600}.league-standing-next{border-top:1px solid var(--edge);gap:8px;padding-top:20px;display:grid}.league-standing-next .split{font-size:var(--fs-body);color:var(--ink);flex-wrap:wrap;gap:4px 12px;font-weight:600}.league-standing-next .split b{color:var(--accent)}.league-standing-next .split b,.league-standing-next p{font-size:var(--fs-small);font-variant-numeric:tabular-nums}.league-standing-next p{color:var(--muted)}.league-next{justify-items:start;gap:8px;padding:24px;display:grid}.league-next h2{font-size:var(--fs-h2);font-weight:700;line-height:var(--lh-tight)}.league-next p{font-size:var(--fs-small);color:var(--muted);line-height:1.6}.league-next .primary-action{min-height:48px;margin-top:8px}.league-rows{margin:0;padding:0;list-style:none;overflow:hidden}.league-row{border-bottom:1px solid var(--edge);font-variant-numeric:tabular-nums;grid-template-columns:44px 36px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:60px;padding:8px 16px;display:grid}.league-row:last-child{border-bottom:0}.league-row>.rank-mark{width:36px;height:36px}.league-row>.rank-mark svg{filter:none}.league-row-position{font-size:var(--fs-small);color:var(--muted);font-weight:700}.league-row-who{gap:2px;min-width:0;display:grid}.league-row-name{font-size:var(--fs-body);color:var(--ink);overflow-wrap:anywhere;font-weight:600}.league-row-rank{font-size:var(--fs-caption);color:var(--muted)}.league-row-score{font-size:var(--fs-small);color:var(--ink);text-align:right;white-space:nowrap;font-weight:600}.league-row.is-you{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.league-row.is-you :is(.league-row-position,.league-row-name,.league-row-score){color:var(--accent)}.league-ladder{margin:0;padding:0;list-style:none;overflow:hidden}.league-ladder li{border-bottom:1px solid var(--edge);grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:56px;padding:6px 16px;display:grid}.league-ladder li:last-child{border-bottom:0}.league-ladder .rank-mark{width:44px;height:44px}.league-ladder .rank-mark svg{filter:none}.league-ladder-name{font-size:var(--fs-body);color:var(--ink);font-weight:600}.league-ladder-name small{font-size:var(--fs-small);color:var(--muted);font-weight:500;display:block}.league-ladder-stars{margin:10px 2px 0}.league-ladder .is-ahead .league-ladder-name{color:var(--muted);font-weight:500}.league-ladder .is-ahead .rank-mark{opacity:.55}.league-ladder .is-current{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.league-ladder .is-current .league-ladder-name,.league-ladder-here{color:var(--accent);font-weight:700}.league-ladder-here{border-radius:var(--pill);background:var(--panel);font-size:var(--fs-caption);white-space:nowrap;padding:2px 10px}.league-ladder-past{color:var(--success);display:inline-flex}.league-rules{gap:8px;padding:20px 16px 8px;display:grid}.league-rules-lead{font-size:var(--fs-small);color:var(--muted);line-height:1.6}.league-rules ol{margin:0;padding:0;list-style:none}.league-rules li{border-bottom:1px solid var(--edge);font-size:var(--fs-small);grid-template-columns:minmax(96px,auto) minmax(0,1fr);gap:2px 16px;padding:10px 0;display:grid}.league-rules li:last-child{border-bottom:0}.rule-amount{color:var(--accent);white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:700}.rule-amount small{font-size:var(--fs-caption);color:var(--muted);font-weight:400;display:block}.rule-name{color:var(--ink);font-weight:600}.rule-limit{font-size:var(--fs-caption);color:var(--muted);grid-column:2}@media (max-width:600px){.league-next,.league-standing{padding:16px}.league-standing,.league-standing-head{gap:16px}.league-standing-head>.rank-mark{width:80px;height:80px}.league-standing-place strong{font-size:32px}.league-standing-next{padding-top:16px}.league-next .primary-action{justify-self:stretch}.league-ladder li,.league-row{padding-inline:12px}.league-row{grid-template-columns:36px 32px minmax(0,1fr) auto;gap:8px}.league-row>.rank-mark{width:32px;height:32px}.league-rules{padding:16px 12px 4px}.league-rules li{grid-template-columns:minmax(0,1fr)}.rule-limit{grid-column:1}}.profile-page{--profile-gold:var(--league-gold)}.profile-guest{flex-wrap:wrap;gap:12px;padding:24px;display:flex}.profile-identity{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px 20px;padding:24px;display:grid}.profile-avatar{background:var(--accent-soft);width:64px;height:64px;color:var(--accent);border-radius:50%;place-items:center;font-size:28px;font-weight:800;display:grid}.profile-identity-copy{gap:4px;min-width:0;display:grid}.profile-identity-copy h2{font-size:var(--fs-h1);font-weight:800;line-height:var(--lh-tight);overflow-wrap:anywhere}.profile-identity-copy p{font-size:var(--fs-small);color:var(--muted)}.profile-identity-copy .profile-week-line{color:var(--accent);font-weight:600}.profile-standing{gap:16px;padding:24px;display:grid}.profile-standing-head{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px;display:grid}.profile-standing-head>.rank-mark{width:80px;height:80px}.profile-standing-name{font-size:var(--fs-h2);color:var(--ink);font-weight:700;line-height:var(--lh-tight)}.profile-standing-today{font-size:var(--fs-small);color:var(--muted);font-variant-numeric:tabular-nums;margin-top:4px}.profile-meters{border-top:1px solid var(--edge);gap:16px;margin:0;padding-top:16px;display:grid}.profile-meters>div{gap:8px;display:grid}.profile-meters dt{font-size:var(--fs-small);color:var(--ink);font-weight:600}.profile-meters dd{gap:6px;margin:0;display:grid}.profile-meters dd span{font-size:var(--fs-small);color:var(--muted);font-variant-numeric:tabular-nums}.profile-standing-links{flex-wrap:wrap;gap:4px 24px;display:flex}.profile-standing-links a{min-height:44px;font-size:var(--fs-small);color:var(--accent);align-items:center;gap:6px;font-weight:600;display:inline-flex}.profile-highlight{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:24px;padding:24px;display:grid}.profile-highlight-number{letter-spacing:-.03em;color:var(--profile-gold);font-variant-numeric:tabular-nums;font-size:72px;font-weight:800;line-height:1}.profile-highlight h3{font-size:var(--fs-h2);font-weight:700;line-height:var(--lh-tight)}.profile-highlight p{font-size:var(--fs-small);color:var(--muted);margin:4px 0 12px}.profile-rhythm{grid-template-columns:minmax(0,1.2fr) minmax(220px,1fr);align-items:start;gap:16px 32px;padding:24px;display:grid}.profile-rhythm>.page-note{grid-column:1/-1}.profile-calendar{grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;width:100%;max-width:420px;display:grid}.profile-calendar-week{grid-template-rows:repeat(7,1fr);gap:4px;min-width:0;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:var(--accent-soft)}.profile-calendar-day.level-2{background:var(--accent-fill)}@supports (color:color-mix(in lab,red,red)){.profile-calendar-day.level-2{background:color-mix(in srgb,var(--accent-fill) 45%,transparent)}}.profile-calendar-day.level-3{background:var(--accent-fill)}@supports (color:color-mix(in lab,red,red)){.profile-calendar-day.level-3{background:color-mix(in srgb,var(--accent-fill) 72%,transparent)}}.profile-calendar-day.level-4{background:var(--accent-fill)}.profile-calendar-day.is-today{border-color:var(--accent)}.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);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:12px;min-height:44px;padding:8px 0;display:grid}.profile-figures>div:last-child{border-bottom:0}.profile-figures dt{font-size:var(--fs-small);color:var(--muted)}.profile-figures dd{font-size:var(--fs-h2);color:var(--ink);font-variant-numeric:tabular-nums;text-align:right;margin:0;font-weight:700}.profile-achievements{gap:20px;padding:8px 24px 20px;display:grid}.profile-earned{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:0 32px;margin: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,.profile-goal-copy b{font-size:var(--fs-body);color:var(--ink);font-weight:600}.profile-earned li>span:last-child,.profile-goal-copy span{font-size:var(--fs-caption);color:var(--muted)}.profile-goals h3{font-size:var(--fs-small);color:var(--muted);font-weight:700}.profile-goals ul{margin: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;padding-bottom:0}.profile-goal-copy{gap:2px;display:grid}.profile-goal-progress{font-size:var(--fs-small);color:var(--accent);font-variant-numeric:tabular-nums;font-weight:600}.profile-goal-bar{grid-column:1/-1;height:6px}.profile-list{padding:4px 16px}.profile-list .row-list{border-top:0}.profile-list .row:last-child{border-bottom:0}.profile-account{scroll-margin-top:calc(var(--topbar) + 16px)}.profile-account-plate{gap:8px;padding:8px 16px 12px;display:grid}.profile-rows{margin:0;display:grid}.profile-rows>div{border-bottom:1px solid var(--edge);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 12px;min-height:56px;padding:8px 0;display:grid}.profile-rows dt{font-size:var(--fs-caption);color:var(--muted);grid-column:1}.profile-rows dd{font-size:var(--fs-body);color:var(--ink);overflow-wrap:anywhere;grid-column:1;margin:0}.profile-rows .text-button{min-height:44px;color:var(--accent);grid-area:1/2/3;padding:0 12px;font-weight:600}.profile-links{display:grid}.profile-links a{min-height:44px;font-size:var(--fs-small);color:var(--ink);justify-content:space-between;align-items:center;gap:12px;font-weight:600;display:flex}.profile-links a svg{color:var(--muted)}.profile-links a:hover{color:var(--accent)}.profile-logout{min-height:44px;color:var(--danger);justify-self:start;padding:0;font-weight:600}@media (max-width:600px){.profile-guest,.profile-highlight,.profile-identity,.profile-rhythm,.profile-standing{padding:16px}.profile-guest>a{flex:1}.profile-identity{grid-template-columns:auto minmax(0,1fr);gap:12px 16px}.profile-identity>.secondary-action{grid-column:1/-1;justify-self:stretch}.profile-avatar{width:52px;height:52px;font-size:22px}.profile-standing-head>.rank-mark{width:64px;height:64px}.profile-highlight{gap:16px}.profile-highlight-number{font-size:56px}.profile-rhythm{grid-template-columns:minmax(0,1fr)}.profile-achievements{padding:4px 16px 16px}.profile-account-plate,.profile-list{padding-inline:12px}}.saved-tabs{border:1px solid var(--edge);background:var(--surface-subtle);grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;max-width:560px;margin:0 0 24px;padding:4px;display:grid}.saved-tab,.saved-tabs{border-radius:var(--pill)}.saved-tab{min-height:44px;color:var(--muted);text-align:center;place-items:center;padding:4px 12px;display:grid}.saved-tab strong{font-size:var(--fs-small);font-weight:700;line-height:var(--lh-tight)}.saved-tab small{display:none}.saved-tab:hover:not(.is-current){color:var(--ink)}.saved-tab.is-current{background:var(--panel);color:var(--accent);box-shadow:var(--shadow-raise)}.saved-tab:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.saved-page .page-main{gap:16px}.saved-account .account-section-heading,.saved-page .page-section-head{min-height:44px}.saved-page :is(.saved-library,.saved-notebook,.saved-kept){gap:16px;min-width:0;display:grid}.saved-page .library-toolbar{margin:0}.saved-page .library-toolbar .search-field{flex:100%}.saved-page .library-toolbar>.primary-action{margin-left:auto}.saved-page .lesson-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr))}.saved-page .note-list{margin:0}.kept-list{margin:0;padding:0 16px;list-style:none}.kept-list li{border-bottom:1px solid var(--edge);align-items:center;gap:12px;min-height:64px;padding:10px 0;display:flex}.kept-list li:last-child{border-bottom:0}.kept-list li a{flex:1;gap:2px;min-width:0;display:grid}.kept-list li a strong{font-size:var(--fs-body);color:var(--ink);overflow-wrap:anywhere;font-weight:600}.kept-list li a small{font-size:var(--fs-caption);color:var(--muted)}.kept-list li button{border-radius:var(--pill);min-height:44px;color:var(--muted);font-size:var(--fs-small);background:0 0;border:0;align-items:center;gap:6px;padding:0 12px;font-weight:600;display:inline-flex}.kept-list li button:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}.saved-account>*{margin:0}.saved-account .account-saved-section{gap:12px;margin:0;display:grid}.saved-account .account-section-heading{margin:0}.saved-account .account-section-heading h2{font-size:var(--fs-h2);font-weight:700;line-height:var(--lh-tight)}.saved-account .account-empty{border:1px solid var(--edge);border-radius:var(--r-lg);background:var(--panel);box-shadow:var(--shadow-raise);padding:16px}.saved-account .account-saved-card{margin:0}.saved-account .account-callout{border:1px solid var(--edge);border-radius:var(--r-lg);background:var(--panel);box-shadow:var(--shadow-raise);justify-items:start;gap:8px;margin:0;padding:24px;display:grid}.saved-account .account-callout h2{font-size:var(--fs-h2);font-weight:700;line-height:var(--lh-tight)}.saved-account .account-callout p{font-size:var(--fs-small);color:var(--muted);line-height:1.6}.saved-account .account-callout .secondary-action{margin-top:8px}.saved-account .account-callout :is(.secondary-action,.text-button){min-height:44px}@media (max-width:600px){.saved-tabs{max-width:none}.saved-tab{padding-inline:6px}.saved-account .account-callout{padding:16px}.saved-account .account-section-tools:not(:has(.search-field)){width:auto}.saved-account .account-callout .secondary-action{justify-self:stretch}.kept-list{padding-inline:12px}}.review-status{gap:20px;padding:24px;display:grid}.review-status-head{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px;display:grid}.review-due{border-radius:var(--r-md);background:var(--accent-soft);min-width:72px;height:72px;color:var(--accent);font-variant-numeric:tabular-nums;place-items:center;padding:0 12px;font-size:36px;font-weight:800;line-height:1;display:grid}.review-due-label{font-size:var(--fs-h2);color:var(--ink);font-weight:700;line-height:var(--lh-tight)}.review-tracked{font-size:var(--fs-small);color:var(--muted);font-variant-numeric:tabular-nums;margin-top:4px}.review-start{border-top:1px solid var(--edge);flex-wrap:wrap;align-items:flex-end;gap:16px 24px;padding-top:20px;display:flex}.review-setting{gap:8px;min-width:0;display:grid}.review-setting>span{font-size:var(--fs-small);color:var(--ink);font-weight:600}.review-start>.primary-action{min-height:48px;margin-left:auto;padding-inline:24px}.review-done{gap:16px;padding:24px;display:grid}.review-done h3{font-size:var(--fs-h2);font-weight:700;line-height:var(--lh-tight)}.review-done .review-figures{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}.review-done .review-figures>div{border-radius:var(--r-md);background:var(--surface-subtle);gap:4px;padding:12px;display:grid}.review-done .review-figures b{font-family:var(--font-ui);font-size:var(--fs-h1);color:var(--ink);font-weight:800}.review-done .review-figures span{font-size:var(--fs-caption);color:var(--muted);margin:0}.review-done .review-actions{flex-wrap:wrap;justify-content:flex-start;gap:12px;display:flex}.review-done .review-actions :is(a,button){min-height:48px;font-size:var(--fs-body);padding:0 20px}.review-ladder{font-size:var(--fs-small);color:var(--body);padding:16px;line-height:1.7}.review-keys-list{margin:0;padding:4px 16px;display:grid}.review-keys-list>div{border-bottom:1px solid var(--edge);grid-template-columns:96px minmax(0,1fr);align-items:center;gap:12px;min-height:48px;padding:6px 0;display:grid}.review-keys-list>div:last-child{border-bottom:0}.review-keys-list dt{gap:4px;display:flex}.review-keys-list dd{font-size:var(--fs-small);color:var(--body);margin:0}.review-keys-list kbd{background:var(--surface-subtle);min-width:28px;height:28px;color:var(--ink);font-family:var(--font-ui);font-size:var(--fs-caption);border:solid var(--edge-strong);border-width:1px 1px 2px;border-radius:8px;place-items:center;padding:0 8px;font-weight:700;display:inline-grid}@media (max-width:900px){.review-keys{display:none}}@media (max-width:600px){.review-done,.review-status{padding:16px}.review-due{min-width:60px;height:60px;font-size:30px}.review-start{gap:16px;display:grid}.review-start>.primary-action{width:100%;margin-left:0}.review-done .review-figures{gap:8px}.review-done .review-figures>div{padding:10px 8px}.review-done .review-actions :is(a,button){flex:1}}.practice-sets-page h1 .new-badge{vertical-align:middle;margin-left:8px}.practice-sets-empty{justify-items:start;gap:16px;padding:24px;display:grid}.practice-sets-empty p{font-size:var(--fs-body);color:var(--body);line-height:1.6}.practice-set-list{gap:16px;margin:0;padding:0;list-style:none;display:grid}.practice-set{gap:12px;padding:20px 24px;display:grid}.practice-set.is-active{box-shadow:inset 3px 0 0 var(--accent),var(--shadow-raise)}.practice-set-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.practice-set-head h3{font-size:var(--fs-h2);font-weight:700;line-height:var(--lh-tight);color:var(--ink);overflow-wrap:anywhere}.practice-set-head p{font-size:var(--fs-small);color:var(--muted);margin-top:4px}.practice-set-following{border-radius:var(--pill);background:var(--accent-soft);color:var(--accent);font-size:var(--fs-caption);flex:none;padding:2px 10px;font-weight:700}.practice-set-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.practice-set-foot>span{font-size:var(--fs-small);color:var(--muted);font-variant-numeric:tabular-nums}.practice-set-actions{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.practice-set-actions .text-button{min-height:44px;color:var(--accent);padding:0 10px;font-weight:600}.practice-set-actions .practice-set-delete{color:var(--muted)}.practice-set-actions .practice-set-delete:hover{color:var(--danger)}.practice-set-actions :is(.primary-action,.secondary-action){min-height:44px}.practice-random{gap:12px;padding:16px;display:grid}.practice-random .pill-group{height:auto;min-height:var(--bar-control);border-radius:var(--r-md);flex-wrap:wrap}.practice-random .pill-group>button{min-height:36px}.practice-random>.secondary-action{justify-self:start}.set-filter{gap:20px;padding:24px;display:grid}.set-field{border:0;gap:8px;min-width:0;margin:0;padding:0;display:grid}.set-field>legend,.set-field>span{font-size:var(--fs-small);color:var(--ink);padding:0;font-weight:700}.set-field input[type=text]{border:1px solid var(--edge-strong);border-radius:var(--r-md);background:var(--panel);width:100%;min-height:48px;color:var(--ink);font:inherit;font-size:var(--fs-body);padding:10px 14px}.set-field input[type=text]:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-color:var(--accent)}.set-field .filter-chip{min-height:40px}.set-topics{margin-top:4px}.set-topics summary{min-height:44px;color:var(--accent);font-size:var(--fs-small);cursor:pointer;align-items:center;font-weight:600;display:flex}.set-topics .topic-search{max-width:none;min-height:44px;margin:4px 0 12px}.set-topic-chips{overscroll-behavior:contain;max-height:280px;padding:2px;overflow-y:auto}.set-check{min-height:44px;font-size:var(--fs-small);color:var(--body);align-items:center;gap:10px;display:flex}.set-check input{width:20px;height:20px;accent-color:var(--accent-fill);flex:none}.set-editor-actions{flex-wrap:wrap;gap:12px;display:flex}.set-editor-actions>*{min-height:48px}.set-lessons{margin:0;padding:4px 16px;list-style:none}.set-lessons[aria-busy=true]{opacity:.6}.set-found li,.set-lessons li{border-bottom:1px solid var(--edge);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:56px;padding:8px 0;display:grid}.set-found li:last-child,.set-lessons li:last-child{border-bottom:0}.set-found li>div,.set-lessons li>div{gap:2px;min-width:0;display:grid}.set-found strong,.set-lessons strong{font-size:var(--fs-small);color:var(--ink);overflow-wrap:anywhere;font-weight:600}.set-found li span:not(.library-lesson-level),.set-lessons li span:not(.library-lesson-level){font-size:var(--fs-caption);color:var(--muted);overflow-wrap:anywhere}.set-found .library-lesson-level,.set-lessons .library-lesson-level{margin:0}.set-lessons .icon-button{width:44px;height:44px;color:var(--muted)}.set-lessons .icon-button:hover{color:var(--danger)}.set-lessons .set-lessons-empty{font-size:var(--fs-small);color:var(--muted);display:block}.set-show-all{min-height:44px;color:var(--accent);justify-self:start;font-weight:600}.set-add{gap:8px;padding:16px;display:grid}.set-add .topic-search{max-width:none;min-height:44px}.set-found{margin:0;padding:0;list-style:none}.set-found .text-button{min-height:44px;color:var(--accent);padding:0 12px;font-weight:700}.practice-set-editor .page-side{gap:12px}.practice-set-heading-actions{margin-top:12px}.practice-set-heading-actions>*{min-height:44px}.practice-set-read{color:var(--success);font-size:var(--fs-small);align-items:center;gap:4px;font-weight:600;display:inline-flex}.library-heading-links{flex-wrap:wrap;align-items:center;gap:0 20px;display:flex}.library-heading-links .library-browse{align-items:center;gap:8px;min-height:44px;display:inline-flex}@media (max-width:600px){.practice-set,.practice-sets-empty,.set-filter{padding:16px}.practice-set-foot{justify-content:stretch;display:grid}.practice-set-actions{grid-template-columns:auto auto 1fr;gap:8px;display:grid}.practice-set-actions :is(.primary-action,.secondary-action){grid-column:1/-1;width:100%}.set-lessons{padding-inline:12px}.set-lessons li.is-folded{display:none}.set-lessons.is-open li.is-folded{display:grid}.set-editor-actions>*{flex:1}:is(.practice-random,.set-filter) .pill-group{flex-wrap:wrap;height:auto;min-height:52px}:is(.practice-random,.set-filter) .pill-group>button{flex:auto;min-height:44px}.set-field .filter-chip{min-height:44px}.practice-random>.secondary-action{justify-self:stretch}.practice-sets-page .page-note a{align-items:center;min-height:44px;display:inline-flex}}@media (min-width:601px){.set-show-all{display:none}}.library-room:not(.is-speaking) .reading-practice{background:0 0;border:0;border-radius:0;gap:16px;padding:0;display:grid;overflow:visible}.library-room:not(.is-speaking) :is(.lesson-listen,.reading-body){background:var(--panel);border:1px solid var(--edge);border-radius:var(--r-lg);box-shadow:var(--shadow-raise);padding:20px 24px}.library-room:not(.is-speaking) .reading-body{padding:24px}.library-room:not(.is-speaking) .reading-caption{font-size:var(--fs-caption);letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px;font-weight:700}.library-room:not(.is-speaking) .reading-caption span:last-child{text-transform:none;letter-spacing:0}.library-room:not(.is-speaking) .reading-practice .answer-en{font-family:var(--font-ui);color:var(--ink);font-size:20px;font-weight:500;line-height:1.7}.library-room:not(.is-speaking) .answer-ipa{text-align:left;max-width:none;margin:12px 0 0}.library-bar .library-pick{white-space:nowrap;flex:none}.library-room:not(.is-speaking) .reading-start .learn-primary{border-radius:var(--pill);background:var(--accent-gradient);min-height:48px;color:var(--accent-ink);font-size:var(--fs-body);box-shadow:var(--shadow-raise);border:0;align-items:center;gap:8px;padding:0 24px;font-weight:700;display:inline-flex}.library-room:not(.is-speaking) .reading-translation{color:var(--body);font-size:var(--fs-body);margin-top:16px}.library-room:not(.is-speaking) .reading-translation summary{color:var(--accent);font-weight:600}@media (max-width:600px){.library-room:not(.is-speaking) :is(.lesson-listen,.reading-body){padding:16px}.library-room:not(.is-speaking) .reading-practice .answer-en{font-size:18px}.library-room:not(.is-speaking) .reading-start .learn-primary{justify-content:center;width:100%}}.reading-reveal{gap:8px;display:inline-flex}.back-link,.reading-reveal{justify-content:center;align-items:center}.back-link{border:2px solid var(--edge);border-radius:var(--pill);background:var(--panel);min-height:44px;color:var(--muted);font-size:var(--fs-small);white-space:nowrap;place-self:start;gap:8px;margin:0 0 12px;padding:0 16px 0 12px;font-weight:600;text-decoration:none;display:inline-flex}.back-link:hover{background:var(--surface-subtle);color:var(--ink)}.back-link:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.back-link.is-icon{width:44px;height:44px;color:var(--accent);flex:none;margin:0;padding:0}.library-bar .back-link.is-icon{box-shadow:var(--shadow-raise)}.fame-heading>.back-link{border-color:var(--fame-edge);width:fit-content;color:var(--fame-muted);background:0 0;margin:0 0 24px;display:flex}.scenario-back{padding:0 26px 22px}.learn-primary,.reading-controls .learn-primary{border-radius:var(--pill);background:var(--accent-gradient);min-height:48px;color:var(--accent-ink);font-size:var(--fs-body);box-shadow:var(--shadow-raise);border:0;justify-content:center;gap:8px;padding:0 24px;font-weight:700}.learn-primary:hover:not(:disabled),.reading-controls .learn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-float)}:is(.library-pick,.reading-reveal,.lesson-navigation button,.reading-controls button:not(.learn-primary)){border:2px solid var(--edge);border-radius:var(--pill);background:var(--panel);min-height:44px;color:var(--accent);font-size:var(--fs-small);justify-content:center;align-items:center;gap:8px;margin:0;padding:0 18px;font-weight:600;display:inline-flex}:is(.library-pick,.reading-reveal,.lesson-navigation button,.reading-controls button:not(.learn-primary)):hover:not(:disabled){background:var(--surface-subtle)}:is(.lesson-navigation button,.reading-controls button:not(.learn-primary)):disabled{color:var(--faint);border-color:var(--edge);background:var(--panel);opacity:.7}.speak-recorder.is-row .speak-recorder-actions button{border:2px solid var(--edge);border-radius:var(--pill)}.is-speaking .speak-recorder.is-row .speak-recorder-actions .speak-record,.is-speaking .speak-recorder.is-row>.mic-meter{border-radius:var(--pill)}.reading-controls{gap:12px}.room-grid{grid-template-columns:minmax(0,1fr);gap:16px;margin:0 0 32px;padding:0;list-style:none;display:grid}.room-card{border:1px solid var(--edge);border-radius:var(--r-lg);background:var(--panel);height:100%;box-shadow:var(--shadow-raise);color:inherit;transition:box-shadow var(--t-base) ease,border-color var(--t-base) ease;grid-template-rows:auto auto 1fr auto auto;gap:8px;padding:24px;text-decoration:none;display:grid}.room-card:hover{border-color:var(--edge-strong);box-shadow:var(--shadow-float)}.room-card:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.room-card .row-mark{width:48px;height:48px;margin-bottom:8px}.room-card h2{font-size:var(--fs-h2);font-weight:700;line-height:var(--lh-tight);color:var(--ink)}.room-card>p{font-size:var(--fs-small);color:var(--muted);line-height:1.6}.room-card .room-card-status{border-radius:var(--r-md);background:var(--surface-subtle);color:var(--ink);overflow-wrap:anywhere;align-self:end;padding:8px 12px;font-weight:600}.room-card-go{min-height:44px;font-size:var(--fs-small);color:var(--accent);align-items:center;gap:6px;margin-top:4px;font-weight:700;display:inline-flex}.room-card:hover .room-card-go svg{transform:translate(2px)}@media (min-width:700px){.room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1100px){.room-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:600px){.room-card{gap:6px;padding:16px}.room-card .row-mark{width:44px;height:44px;margin-bottom:4px}.room-grid{gap:12px;margin-bottom:24px}}.library-room:not(.is-speaking) .library-heading{max-width:760px;margin-inline:0}.lesson-column{gap:16px;max-width:760px;display:grid}.lesson-topline{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-bottom:16px;display:flex}.lesson-topline-source{min-width:0;font-size:var(--fs-small);color:var(--muted);overflow-wrap:anywhere;font-weight:600}.lesson-menu-button{min-height:44px;font-size:var(--fs-small);padding:0 14px 0 18px}.library-room .practice-steps{display:none}.library-room:not(.is-speaking) .lesson-listen{padding:16px 20px}.library-room:not(.is-speaking) .lesson-listen .listen-transport{margin:0}.library-room:not(.is-speaking) .reading-start .learn-primary{justify-content:center;width:100%;min-height:52px}.library-room:not(.is-speaking) .reading-start{border-top:0;margin-top:20px;padding-top:0}.reading-extras summary{font-size:var(--fs-small)}.reading-extras .answer-ipa{color:var(--muted);margin:8px 0 12px}.reading-extras .reading-note{margin-top:8px}.library-room .lesson-column .vocabulary-block{box-shadow:none;background:0 0;border:0;margin:0;padding:0}.library-room .lesson-column .vocabulary-block .prompt-label{margin-bottom:8px}.library-room .lesson-column .vocabulary-note{display:none}.lesson-menu .sheet-body{gap:8px}.lesson-menu .sheet-row{grid-template-columns:20px minmax(0,1fr) auto;min-height:56px}.lesson-menu .sheet-row .pill-group{flex-wrap:wrap;height:auto;min-height:44px}.lesson-menu .sheet-row .pill-group>button{min-width:44px;min-height:40px}.lesson-menu .sheet-links button{min-height:48px}.lesson-menu-invite{border:2px dashed var(--edge-strong);border-radius:var(--r-md);background:var(--surface-subtle);width:100%;color:var(--accent);text-align:left;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:12px;padding:14px 16px;display:grid}.lesson-menu-invite strong{font-size:var(--fs-body);color:var(--ink);display:block}.lesson-menu-invite small{font-size:var(--fs-small);color:var(--muted);margin-top:2px;line-height:1.5;display:block}.lesson-menu-toggle{min-width:96px;min-height:44px}.lesson-menu-toggle[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.lesson-menu-playback{border-top:1px solid var(--edge);padding-top:4px}.lesson-menu-keep{border-top:1px solid var(--edge);gap:8px;padding-top:12px;display:grid}@media (max-width:600px){.lesson-topline{align-items:stretch}.lesson-menu-button{flex:100%;justify-content:center}}.lesson-menu-link{text-align:left;gap:2px;display:grid}.lesson-menu-link small{font-size:var(--fs-small);color:var(--muted);font-weight:400}.lesson-menu .sheet-links button:has(.lesson-menu-link){align-items:start;height:auto;padding-block:10px}.room-cell{position:relative}.room-cell:has(.room-card-extra) .room-card{padding-bottom:24px}.room-card-extra{border:2px solid var(--edge);border-radius:var(--pill);background:var(--panel);min-height:44px;color:var(--accent);font-size:var(--fs-small);align-items:center;gap:6px;padding:0 14px;font-weight:700;display:inline-flex;position:absolute;bottom:24px;right:24px}.room-card-extra:hover{background:var(--surface-subtle)}.room-card-extra:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@media (max-width:600px){.room-card-extra{bottom:16px;right:16px}}.room-tabs{border:1px solid var(--edge);border-radius:var(--pill);background:var(--surface-subtle);grid-auto-flow:column;gap:4px;margin:0 0 16px;padding:4px;display:inline-grid}.room-tabs button{border-radius:var(--pill);min-height:44px;color:var(--muted);font-size:var(--fs-small);background:0 0;border:0;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:700;display:inline-flex}.room-tabs button[aria-current=page]{background:var(--panel);color:var(--accent);box-shadow:var(--shadow-raise);cursor:default}.room-tabs button:not([aria-current]):hover{color:var(--ink)}.room-tabs-count{border-radius:var(--pill);background:var(--accent-soft);min-width:22px;height:22px;color:var(--accent);font-size:var(--fs-caption);place-items:center;padding:0 6px;display:grid}@media (max-width:600px){.room-tabs{grid-template-columns:1fr 1fr;width:100%;display:grid}}.sidebar nav a.nav-label-link{border-radius:var(--r-sm);min-height:36px;color:var(--muted);margin:14px 0 2px;padding:4px 14px;font-weight:700}.sidebar nav a.nav-label-link:hover{color:var(--ink);background:0 0}.sidebar nav a.nav-label-link[aria-current=page]{color:var(--accent)}.sidebar-rooms{gap:2px}.room-switcher-button{border:2px solid var(--edge);border-radius:var(--pill);background:var(--panel);min-height:44px;color:var(--ink);font-size:var(--fs-body);align-items:center;gap:10px;padding:0 14px 0 6px;font-weight:700;display:inline-flex}.room-switcher-button:hover{background:var(--surface-subtle)}.room-switcher-button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.room-switcher-button .row-mark{border-radius:50%;width:32px;height:32px}.room-switcher-button>svg{color:var(--muted)}.room-switcher-name{white-space:nowrap}.room-switcher-strip{display:none}.room-switcher-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.room-switcher-item{border-radius:var(--r-md);min-height:60px;color:inherit;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 10px;text-decoration:none;display:grid}.room-switcher-item:hover{background:var(--surface-subtle)}.room-switcher-item[aria-current=page]{background:var(--accent-soft)}.room-switcher-item[aria-current=page]>svg{color:var(--accent)}.room-switcher-item>svg{color:var(--muted)}.room-switcher-item .row-mark{width:40px;height:40px}.room-switcher-text{gap:2px;min-width:0;display:grid}.room-switcher-text strong{font-size:var(--fs-body);color:var(--ink);font-weight:700}.room-switcher-text small{font-size:var(--fs-small);color:var(--muted);line-height:1.5}@media (max-width:900px){.topbar-title .room-switcher{display:none}.room-switcher-strip{width:100%;max-width:var(--content-max);padding:12px var(--gutter) 0;box-sizing:border-box;align-self:stretch;margin:0 auto;display:block}.room-switcher-strip .room-switcher-button{justify-content:flex-start;width:100%}.room-switcher-strip .room-switcher-name{text-align:left;flex:1}}.lesson-dock{margin-top:28px}.lesson-nav{justify-content:space-between;gap:12px;display:flex}.lesson-nav .secondary-action{min-height:44px}.lesson-line-controls{justify-content:space-between;gap:12px;display:flex}.lesson-line-controls .learn-primary{flex:1;max-width:320px;margin-left:auto}.line-card{gap:14px;display:grid}.line-card-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.line-card-head .reading-position{margin:0}.line-card-head .sentence-save{margin:-10px -10px -10px 0}.line-speaker{color:var(--ink);font-weight:600}.line-speaker.is-you{color:var(--accent)}.dictation-room .dictation-heading,.dictation-room .dictation-practice{max-width:760px}@media (min-width:901px){.dictation-room .lesson-dock{max-width:760px}}.dictation-heading .dictation-context{color:var(--ink);margin-top:8px}.dictation-speak{border-top:1px solid var(--edge);gap:10px;margin-top:18px;padding-top:16px;display:grid}.dictation-speak h2{align-items:center;gap:8px;margin:0;display:flex}.scenario-room .lesson-finish,.scenario-room .page-heading{max-width:760px}@media (min-width:901px){.scenario-room .lesson-dock{max-width:760px}}.lesson-about{margin-top:12px}.lesson-about>summary{box-sizing:border-box;cursor:pointer;min-height:44px;padding:11px 0;font-weight:600;display:list-item}.lesson-frame .scenario-back{margin-top:16px;padding:0}.lesson-finish{border:1px solid var(--edge);border-radius:var(--r-lg);background:var(--panel);justify-items:start;gap:10px;padding:24px;display:grid}.lesson-finish h2{font-family:var(--font-display);margin:0;font-size:26px;font-weight:400;line-height:1.3}.lesson-finish p{color:var(--muted);margin:0}.lesson-finish-mark{background:var(--soft);width:40px;height:40px;color:var(--accent);border-radius:50%;place-items:center;display:grid}.lesson-finish-actions{flex-wrap:wrap;margin-top:6px}.lesson-finish .xp-rule-line{margin:2px 0 0}.scenario-menu-turns{gap:2px;margin:0;padding:0;list-style:none;display:grid}.scenario-menu-turn{border-radius:var(--r-md);text-align:left;width:100%;min-height:44px;color:var(--ink);background:0 0;border:0;align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.scenario-menu-turn[aria-current=step]{background:var(--soft)}.scenario-menu-turn-number{font-variant-numeric:tabular-nums;min-width:22px;color:var(--muted);flex:none}.scenario-menu-turn-body{gap:2px;min-width:0;display:grid}.scenario-menu-turn-body span{text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-small);color:var(--muted);overflow:hidden}.scenario-menu-turn.is-you b{color:var(--accent)}.lesson-menu-about summary{box-sizing:border-box;cursor:pointer;min-height:44px;padding:11px 0;font-weight:600;display:list-item}.lesson-menu .dictation-settings{margin-top:8px}.lesson-menu .dictation-segment-list{margin:0 0 8px}@media (max-width:900px){:root{--lesson-dock-height:76px}.lesson-dock{z-index:29;box-sizing:border-box;min-height:var(--lesson-dock-height);left:0;right:0;bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom));background:var(--surface-subtle);border-top:1px solid var(--edge);flex-direction:column;justify-content:center;margin:0;padding:10px 16px;display:flex;position:fixed;box-shadow:0 -4px 16px light-dark(#2436250a,#00000052)}.lesson-frame:has(.lesson-dock){padding-bottom:calc(var(--lesson-dock-height) + 8px)}body:has(.lesson-dock) .back-to-top,body:has(.lesson-dock) .toast-stack{--dock-height:var(--lesson-dock-height)}.lesson-frame:has(input:focus,textarea:focus) .lesson-dock{display:none}.lesson-line-controls button,.lesson-nav .secondary-action{flex:1}}.account-gate{justify-items:start;gap:12px;max-width:560px;padding:28px;display:grid}.account-gate :is(h1,h2){font-size:var(--fs-h2);margin:0}.account-gate p{color:var(--muted);margin:0}.account-gate-gives{gap:8px;margin:4px 0;padding:0;list-style:none;display:grid}.account-gate-gives li{color:var(--ink);align-items:center;gap:10px;display:flex}.account-gate-gives svg{color:var(--accent);flex:none}.account-gate-actions{flex-wrap:wrap;gap:10px;margin-top:4px;display:flex}.account-gate.is-compact{max-width:none;padding:20px}@media (max-width:600px){.account-gate{padding:20px}.account-gate-actions>*{flex:100%;justify-content:center}}.lesson-bar{display:none}@media (max-width:900px){html[data-lesson]{--tabbar-height:0px}html[data-lesson] :is(.topbar,.room-switcher-strip,.tabbar,.sidebar){display:none}html[data-lesson] .lesson-bar{min-height:56px;padding:6px var(--gutter);border-bottom:1px solid var(--edge);background:var(--app);justify-content:space-between;align-items:center;gap:12px;display:flex}.lesson-bar .lesson-bar-close{min-height:44px;padding:0 18px}.lesson-bar-room{font-size:var(--fs-body);color:var(--ink);font-weight:600}}.video-grid{grid-template-columns:repeat(auto-fill,minmax(236px,1fr));gap:20px 16px;margin:12px 0 0;padding:0;list-style:none;display:grid}.video-card,.video-continue-card{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);height:100%;color:inherit;grid-template-rows:auto 1fr;text-decoration:none;transition:border-color .15s;display:grid;overflow:hidden}@media (hover:hover){.video-card:hover,.video-continue-card:hover{border-color:var(--edge-strong)}}@media (prefers-reduced-motion:reduce){.video-card,.video-continue-card{transition:none}}.video-card-body{align-content:start;gap:8px;padding:12px 14px 14px;display:grid}.video-card-name{-webkit-line-clamp:2;min-height:2.8em;color:var(--ink);-webkit-box-orient:vertical;font-size:15px;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.video-card-meta{font-size:var(--fs-caption);color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.video-thumb{aspect-ratio:16/9;background:var(--soft);display:block;position:relative;overflow:hidden}.video-thumb img{object-fit:cover;width:100%;height:100%;display:block}.video-duration{font-size:var(--fs-caption);font-variant-numeric:tabular-nums;background:light-dark(#1c2520e6,#0b0f0de6);border-radius:6px;padding:2px 7px;bottom:10px;right:8px}.video-done,.video-duration{color:var(--accent-ink);position:absolute}.video-done{background:var(--accent-fill);font-size:var(--fs-caption);border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-weight:600;display:inline-flex;top:8px;left:8px}.video-progress{background:light-dark(#1c252040,#0b0f0d80);height:4px;position:absolute;bottom:0;left:0;right:0}.video-progress i{width:var(--video-progress);background:var(--accent);height:100%;display:block}.video-continue{margin:0 0 28px}.video-continue h2{font-size:var(--fs-small);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;font-weight:600}.video-continue-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.video-filters{gap:12px;margin-bottom:8px;display:grid}.video-filter-bar{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.video-filter-bar .topic-search{min-height:var(--control)}.video-filter-selects{flex-wrap:wrap;gap:12px;display:flex}.video-filter-select{font-size:var(--fs-small);color:var(--muted);align-items:center;gap:8px;display:flex}.video-filter-select .select-trigger{min-width:180px}.video-filter-toggle{display:none}.video-clear{min-height:var(--control);font-size:var(--fs-small)}@media (max-width:1024px){.video-continue-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.video-catalogue .level-chips{width:calc(100% + 2 * var(--gutter));margin:0 calc(-1 * var(--gutter));padding:2px var(--gutter);scrollbar-width:none;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)}.video-catalogue .level-chips .level-chip{flex:none}.video-filter-bar{gap:8px}.video-filter-bar .topic-search{flex:1 1 0;max-width:none}.video-filter-toggle{display:inline-flex}.video-filter-selects{flex-direction:column;gap:8px;width:100%;display:none}.video-filter-selects.is-open{display:flex}.video-filter-select{gap:4px;display:grid}.video-filter-select .select-trigger{width:100%}.video-grid{grid-template-columns:1fr;gap:10px}.video-card,.video-continue-card{grid-template-rows:none;grid-template-columns:120px minmax(0,1fr);align-items:stretch}.video-card .video-thumb,.video-continue-card .video-thumb{aspect-ratio:auto;min-height:72px}.video-card-body{gap:6px;padding:10px 12px}.video-card-name{min-height:0;font-size:14px}.video-continue-list{grid-template-columns:1fr;gap:10px}.video-duration{bottom:6px;right:6px}.video-done{padding:2px 6px;top:6px;left:6px}}.fame-page header .pill-group,.league-page .page-heading .pill-group{margin-top:14px}.profile-languages{border-top:1px solid var(--edge);gap:8px;margin:14px 0 0;padding:12px 0 0;list-style:none;display:grid}.profile-languages li{font-size:var(--fs-small);color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.profile-languages b{color:var(--ink);font-weight:600}@media (max-width:600px){.admin-shell .pill-group button,.fame-page .pill-group button,.league-page .pill-group button{min-height:44px}}.admin-list-pair li{grid-template-columns:minmax(0,1fr) auto}.analytics-consent{left:50%;bottom:calc(var(--tabbar-height,0px) + var(--dock-height,0px) + 16px + env(safe-area-inset-bottom,0px));z-index:58;border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);width:min(560px,100% - 32px);box-shadow:var(--shadow-raise);font-size:var(--fs-small);gap:12px;padding:16px;line-height:1.5;display:grid;position:fixed;transform:translate(-50%)}.analytics-consent p{margin:0}.analytics-consent a{color:var(--accent)}.analytics-consent-actions{flex-wrap:wrap;gap:8px;display:flex}.analytics-consent-actions button{min-height:44px}.support-page{max-width:880px}.support-head{border-bottom:1px solid var(--edge);max-width:64ch;padding-bottom:20px}.support-head h1{margin-block:6px 10px;font-size:clamp(32px,4vw,48px);line-height:1.2}.support-head p{color:var(--muted);font-size:var(--fs-body);margin:0;line-height:1.6}.support-ways{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:24px;display:grid}.support-way{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);align-content:start;justify-items:start;gap:12px;padding:20px;display:grid}.support-way h2{font-size:var(--fs-h3);margin:0}.support-way p{color:var(--muted);font-size:var(--fs-small);margin:0;line-height:1.6}.support-way .learn-primary{text-decoration:none}.support-qr{border-radius:var(--radius-sm);width:min(320px,100%);height:auto}.support-notes{color:var(--muted);font-size:var(--fs-small);margin:24px 0 0;padding-left:20px;line-height:1.7}.support-actions{flex-wrap:wrap;gap:8px;display:flex}@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}