:root{--ink:#16151e;--paper:#f6f5f3;--surface:#fff;--desk:#e9e4dc;--canvas:#fbfaf7;--accent:#5850ea;--accent-press:#4840d7;--accent-soft:#ecebfe;--tongue:#fc4878;--tongue-groove:#c42b55;--tongue-soft:#fdecf0;--lip:#ff5080;--lip-dark:#e23b6e;--cavity:#600024;--teeth:#fff;--teeth-line:#dcd9e2;--muted:#6e6b7b;--line:#e7e5ea;--success:#2bb673;--success-soft:#e6f7ef;--error:#e5484d;--error-soft:#fdecec;--streak-bg:#fff1d6;--streak-fg:#8f5f00;--success-groove:#177a45;--error-groove:#c4342f;--plum-groove:#7a3fae;--line-strong:#cfc9bd;--on-accent-veil:#ffffff38;--on-accent-soft:#ffffffd9;--avatar-1:#5850ea;--avatar-2:#2bb673;--avatar-3:#8e4ec6;--avatar-4:#0e86a8;--avatar-5:#d97706;--avatar-6:#c42b55;--m-gram:#e5484d;--m-gram-s:#fde9e9;--m-vocab:#d97706;--m-vocab-s:#fdf0dc;--m-spell:#8e4ec6;--m-spell-s:#f2eafb;--m-punct:#0e86a8;--m-punct-s:#e2f3f8;--m-style:#6e6b7b;--m-style-s:#eeedf1;--m-good:#2bb673;--m-good-s:#e3f6ed;--r-sm:12px;--r-md:18px;--r-lg:26px;--r-pill:999px;--bar-h:64px;--shadow-sm:0 2px 8px #16151f0f;--shadow-md:0 12px 40px #16151f1a;--shadow-pop:0 16px 44px #16151f2e;--shadow-glow:0 6px 18px #5850ea52;--ease:cubic-bezier(.22, .61, .36, 1);--swipe-flip:.45s;--swipe-star-pop:.28s;--sw-action-h:56px;--sw-shell-top:calc(60px + env(safe-area-inset-top));--sw-shell-tabbar:70px;--heat-1:var(--accent-soft);--heat-2:color-mix(in srgb, var(--accent) 30%, var(--surface));--heat-3:color-mix(in srgb, var(--accent) 55%, var(--surface));--heat-4:color-mix(in srgb, var(--accent) 80%, var(--surface));--heat-5:var(--accent-press);--ac-list-max:360px;--font-display:"Unbounded", system-ui, sans-serif;--font-body:"Manrope", system-ui, sans-serif;--font-mono:ui-monospace, "SFMono-Regular", Consolas, monospace}.error{color:var(--error);margin-bottom:12px;font-size:13.5px}.icon-spin{animation:.8s linear infinite icon-spin}@keyframes icon-spin{to{transform:rotate(360deg)}}.form-input,.form-select,.form-textarea{width:100%;font-family:var(--font-body);color:var(--ink);border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--surface);padding:10px 12px;font-size:14px}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent);outline:none}.form-input-conflict{border-color:var(--error);background:var(--error-soft)}.form-input-static{color:var(--muted);background:var(--paper);border-style:dashed;margin:0;line-height:normal}.video-link-field{align-items:center;display:flex;position:relative}.video-link-field>svg{width:15px;height:15px;color:var(--muted);pointer-events:none;position:absolute;left:12px}.video-link-field .form-input{padding-left:36px}.segmented-tabs{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-pill);padding:4px;display:inline-flex}.segmented-tabs button{font-family:var(--font-body);color:var(--muted);border-radius:var(--r-pill);cursor:pointer;min-height:42px;transition:background .2s var(--ease), color .2s var(--ease), box-shadow .2s var(--ease);background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:700;display:inline-flex}.segmented-tabs button svg{width:17px;height:17px}.segmented-tabs button:hover:not([aria-selected=true]):not(.on){color:var(--ink)}.segmented-tabs button[aria-selected=true],.segmented-tabs button.on{background:var(--accent);color:#fff;box-shadow:var(--shadow-glow)}.segmented-tabs--quiet button[aria-selected=true],.segmented-tabs--quiet button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.segmented-tabs,.subtabs{--seg-spring:cubic-bezier(.34, 1.32, .52, 1)}.segmented-tabs.has-thumb,.subtabs.has-thumb{position:relative}.segmented-tabs.has-thumb:before,.subtabs.has-thumb:before{content:"";width:var(--seg-w);height:var(--seg-h);transform:translate(var(--seg-x), var(--seg-y));border-radius:var(--r-pill);background:var(--accent);box-shadow:var(--shadow-glow);pointer-events:none;position:absolute;top:0;left:0}.segmented-tabs--quiet.has-thumb:before{background:var(--surface);box-shadow:var(--shadow-sm)}.subtabs.has-thumb:before{box-shadow:none}.segmented-tabs.seg-ready:before,.subtabs.seg-ready:before{transition:transform .45s var(--seg-spring), width .45s var(--seg-spring), height .3s var(--ease)}.segmented-tabs.has-thumb button,.subtabs.has-thumb .subtab{z-index:1;position:relative}.segmented-tabs.has-thumb button[aria-selected=true],.segmented-tabs.has-thumb button.on,.subtabs.has-thumb .subtab.on{box-shadow:none;background:0 0}.subtabs.has-thumb .subtab.on{color:#fff}.segmented-tabs.has-thumb button,.subtabs.has-thumb .subtab{transition:color .3s var(--ease)}@media (prefers-reduced-motion:reduce){.segmented-tabs.seg-ready:before,.subtabs.seg-ready:before{transition:none}}.section-tabs{justify-content:flex-start;align-items:center;margin-bottom:24px;display:flex}.segmented-tabs .seg-count{border-radius:var(--r-pill);background:var(--tongue);color:#fff;place-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:800;display:grid}.subtabs-bar{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding-bottom:20px;display:flex}.subtabs{flex-wrap:wrap;gap:8px;display:flex}.subtab{font-family:var(--font-body);color:var(--muted);border-radius:var(--r-pill);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;min-height:44px;padding:12px 20px;font-size:15.5px;font-weight:600;transition:all .16s;display:inline-flex}.subtab:hover:not(.on){background:var(--accent-soft);color:var(--accent-press)}.subtab.on{background:var(--accent);color:#fff}.subtab-n{border-radius:var(--r-pill);background:var(--tongue);color:#fff;place-items:center;min-width:20px;height:20px;padding:0 6px;font-size:12px;font-weight:700;display:inline-grid}.subtab.on .subtab-n{background:var(--on-accent-veil)}.subtab-c{font-variant-numeric:tabular-nums;opacity:.7}@media (width<=760px){.subtabs-bar{align-items:stretch}}.pane-head{margin-bottom:22px}.pane-head h1{font-family:var(--font-display);letter-spacing:-.5px;margin:0;font-size:34px;font-weight:800}.pane-head-sub{color:var(--muted);margin-top:4px;font-size:14.5px}.admin-page .subtabs-bar{gap:12px;margin-bottom:16px;padding-bottom:12px}.admin-page .subtabs{gap:4px}.admin-page .subtab{gap:7px;min-height:36px;padding:7px 14px;font-size:13.5px;font-weight:700}.admin-page .subtab.on{background:var(--accent-soft);color:var(--accent)}.admin-page .subtab:hover:not(.on){background:var(--paper);color:var(--ink)}.admin-page .subtab.on .subtab-n{background:var(--tongue)}.admin-page .subtabs-bar .pane-head-action{min-height:36px;padding:8px 16px;font-size:13.5px}.admin-page .subtabs-bar .ui-fd-btn{min-height:36px;padding-top:7px;padding-bottom:7px;font-size:13.5px}.pane-head--split{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.pane-head-action{font-family:var(--font-body);color:#fff;background:var(--accent);border-radius:var(--r-pill);cursor:pointer;box-shadow:var(--shadow-glow);border:0;flex-shrink:0;padding:12px 22px;font-size:14.5px;font-weight:700;transition:all .16s}.pane-head-action:hover{background:var(--accent-press);transform:translateY(-1px)}.pane-head-action:active{transform:translateY(0)}*,:before,:after{box-sizing:border-box}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font:16px/1.55 var(--font-body);color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scrollbar-gutter:stable}body{background:var(--paper);min-height:100svh;color:var(--ink);margin:0}#root{min-height:100svh}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-weight:700;line-height:1.05}p{margin:0}button,input,textarea,select{font-family:inherit}a{color:var(--accent)}code{font-family:var(--font-mono)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (pointer:coarse){input:not([type=checkbox],[type=radio],[type=range],[type=color],[type=file]),textarea,select{font-size:max(16px,1em)!important}}.page-loader{min-height:100svh;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:14px;font-size:14.5px;font-weight:600;display:flex}.auth-page{justify-content:center;align-items:center;min-height:100svh;padding:32px 20px;display:flex;position:relative;overflow-x:hidden}.auth-blob{filter:blur(70px);pointer-events:none;z-index:0;border-radius:50%;position:fixed}.auth-blob-a{background:radial-gradient(circle,#5850ea29,#0000 70%);width:420px;height:420px;top:-140px;left:-120px}.auth-card{z-index:1;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);width:100%;max-width:428px;box-shadow:var(--shadow-md);padding:40px 36px 32px;position:relative}.auth-brand{text-align:center;flex-direction:column;align-items:center;margin-bottom:26px;display:flex}.auth-brand-name{font-family:var(--font-display);letter-spacing:.01em;margin-top:10px;font-size:15px;font-weight:700}.auth-heading{text-align:center;margin-bottom:24px}.auth-heading h1{margin-bottom:6px;font-size:25px;font-weight:700}.auth-heading p{color:var(--muted);font-size:14.5px}.auth-heading p+p{margin-top:8px}.auth-email{color:var(--ink);overflow-wrap:anywhere;font-weight:600}.auth-switcher{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-pill);grid-template-columns:1fr 1fr;margin-bottom:28px;padding:4px;display:grid;position:relative}.auth-switcher button{z-index:1;cursor:pointer;font-family:var(--font-body);color:var(--muted);border-radius:var(--r-pill);transition:color .2s var(--ease);background:0 0;border:none;min-height:40px;padding:10px 0;font-size:14px;font-weight:700;position:relative}.auth-switcher button[aria-selected=true]{color:#fff}.auth-switcher-thumb{background:var(--accent);border-radius:var(--r-pill);width:calc(50% - 4px);transition:transform .28s var(--ease);position:absolute;top:4px;bottom:4px;left:4px;box-shadow:0 4px 14px #5850ea59}.auth-card[data-mode=register] .auth-switcher-thumb{transform:translate(100%)}.auth-stack{display:grid}.auth-stack>.auth-panel{transition:opacity .22s var(--ease), transform .22s var(--ease);grid-area:1/1}.auth-card[data-mode=login] .auth-panel-register,.auth-card[data-mode=register] .auth-panel-login{opacity:0;pointer-events:none;transform:translateY(4px)}.auth-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.auth-field{margin-bottom:16px}.auth-field label{color:var(--ink);margin-bottom:7px;font-size:13.5px;font-weight:700;display:block}.auth-field-control{position:relative}.auth-field input{border:1.5px solid var(--line);border-radius:var(--r-sm);width:100%;font-family:var(--font-body);color:var(--ink);background:var(--surface);transition:border-color .15s var(--ease);padding:13px 15px;font-size:16px}.auth-field input[type]:has(+.auth-pw-toggle){padding-right:40px}.auth-field input::placeholder{color:var(--muted)}.auth-field input:focus{border-color:var(--accent);outline:none}.auth-field.invalid input{border-color:var(--error)}.auth-field-hint{color:var(--muted);margin-top:6px;font-size:13.5px;font-weight:600}.auth-field-error{color:var(--error);margin-top:6px;font-size:13.5px;font-weight:600}.auth-pw-toggle{cursor:pointer;border-radius:var(--r-sm);width:32px;height:32px;color:var(--muted);background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.auth-pw-toggle:hover{background:var(--paper);color:var(--ink)}.auth-pw-toggle svg{width:19px;height:19px}.auth-link{color:var(--accent);cursor:pointer;font-size:13.5px;font-weight:700;font-family:var(--font-body);background:0 0;border:none;text-decoration:none}.auth-link:hover{text-decoration:underline}.auth-forgot-row{text-align:right;margin:-8px 0 16px}.auth-submit{width:100%;font-size:15.5px}.auth-spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:15px;height:15px;animation:.7s linear infinite auth-spin}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-form-error{color:var(--error);background:var(--error-soft);border-radius:var(--r-sm);margin-bottom:16px;padding:10px 13px;font-size:13.5px;font-weight:600}.auth-switch-line{text-align:center;color:var(--muted);margin-top:22px;font-size:13.5px}@media (prefers-reduced-motion:reduce){.auth-switcher-thumb,.auth-panel{transition:none}}@media (width<=480px){.auth-card{padding:32px 22px 26px}.auth-row{grid-template-columns:1fr}}.app-install{border-radius:var(--r-sm);background:var(--accent-soft);align-items:flex-start;margin-bottom:6px;display:flex}.app-install-open{font-family:var(--font-body);color:var(--accent);text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:9px;padding:10px 0 10px 13px;font-size:13.5px;font-weight:700;display:flex}.app-install-x{width:32px;height:32px;color:var(--accent);opacity:.6;cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;margin:4px 4px 0 0;font-size:13px}.app-install-x:hover{opacity:1}.app-install-open svg{flex:none;width:18px;height:18px}.pwa-steps{color:var(--ink);flex-direction:column;gap:14px;margin:0;padding:4px 4px 8px 22px;font-size:15px;line-height:1.45;display:flex}.pwa-share{vertical-align:-3px;width:18px;height:18px;color:var(--accent);margin:0 4px}.pwa-update{top:calc(12px + env(safe-area-inset-top));z-index:300;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);width:max-content;max-width:calc(100vw - 32px);color:var(--ink);box-shadow:var(--shadow-pop);align-items:center;gap:12px;padding:10px 10px 10px 12px;animation:.28s cubic-bezier(.2,.8,.2,1) pwa-update-in;display:flex;position:fixed;left:50%;transform:translate(-50%)}@keyframes pwa-update-in{0%{opacity:0;transform:translate(-50%,-8px)}}@media (prefers-reduced-motion:reduce){.pwa-update{animation:none}}@media (width<=820px){.pwa-update{top:calc(68px + env(safe-area-inset-top))}}.pwa-update-icon{background:var(--accent-soft);width:38px;height:38px;color:var(--accent);border-radius:50%;flex:none;place-items:center;display:grid}.pwa-update-icon svg{width:24px;height:24px}.pwa-update-text{min-width:0;color:var(--muted);flex-direction:column;gap:1px;font-size:13px;line-height:1.35;display:flex}.pwa-update-text b{color:var(--ink);font-size:14.5px;font-weight:700}@media (width<=520px){.pwa-update{gap:10px;width:auto;max-width:none;animation-name:pwa-update-in-mobile;left:16px;right:16px;transform:none}.pwa-update-icon{width:32px;height:32px}.pwa-update-icon svg{width:22px;height:22px}.pwa-update-text{flex:1}.pwa-update-text b{white-space:nowrap;font-size:14px}.pwa-update-text span{display:none}.pwa-update-btn{padding:0 14px}.pwa-update-x{width:28px}}@media (width<=380px){.pwa-update{gap:8px;padding:8px 6px 8px 8px}.pwa-update-btn{padding:0 12px}.pwa-update-text b{white-space:normal;font-size:13.5px}}@keyframes pwa-update-in-mobile{0%{opacity:0;transform:translateY(-8px)}}.pwa-update-btn{border-radius:var(--r-pill);background:var(--accent);color:#fff;min-height:38px;font-family:var(--font-body);cursor:pointer;border:0;flex:none;padding:0 16px;font-size:14px;font-weight:700}.pwa-update-btn:hover{background:var(--accent-press)}.pwa-update-x{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;display:grid}.pwa-update-x:hover{background:var(--paper);color:var(--ink)}.pwa-update-x svg{width:16px;height:16px}.app-shell{background:var(--paper);min-height:100svh;display:flex}.app-sidebar{border-right:1px solid var(--line);background:var(--paper);flex-direction:column;flex:none;gap:4px;width:210px;height:100svh;padding:20px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.app-sidebar-logo{font-family:var(--font-display);color:var(--ink);align-items:center;gap:9px;margin:2px 6px 18px;font-size:14.5px;font-weight:700;display:flex}.app-sidebar-nav,.app-nav-group{flex-direction:column;gap:4px;display:flex}.app-nav-label{letter-spacing:.12em;text-transform:uppercase;color:#a6a4b0;padding:12px 13px 4px;font-size:11px;font-weight:800}.app-nav-sep{background:var(--line);height:1px;margin:10px 13px}.app-nav-item{border-radius:var(--r-sm);font-family:var(--font-body);color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:11px;padding:11px 13px;font-size:14.5px;font-weight:600;transition:background .15s,color .15s;display:flex}.app-nav-item:hover:not(:disabled){background:var(--paper);color:var(--ink)}.app-nav-item.active{background:var(--accent-soft);color:var(--accent)}.app-nav-item:disabled{cursor:default;opacity:.55}.app-nav-icon{flex:none;display:flex}.app-nav-soon{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:10.5px;font-style:italic;font-weight:700}.app-nav-badge{background:var(--tongue);color:#fff;border-radius:var(--r-pill);flex:none;margin-left:auto;padding:1px 7px;font-size:11px;font-weight:800}.app-sidebar-spacer{flex:1}.app-sidebar-user{border-radius:var(--r-sm);border:1px solid var(--line);align-items:center;gap:10px;margin-bottom:8px;padding:8px;display:flex}button.app-sidebar-user{background:var(--surface);width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;transition:box-shadow .14s var(--ease), transform .14s var(--ease)}button.app-sidebar-user:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.app-user-meta{flex-direction:column;min-width:0;display:flex}.app-user-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:700;overflow:hidden}.app-user-subtitle{color:var(--muted);font-size:11.5px}.app-signout{border-radius:var(--r-sm);font-family:var(--font-body);color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:9px;padding:10px 13px;font-size:13.5px;font-weight:600;transition:background .15s,color .15s;display:flex}.app-signout:hover{background:var(--error-soft);color:var(--error)}.app-main-col{flex-direction:column;flex:1;min-width:0;display:flex}:is(.app-main-col:has(.msgr-page),.app-main-col:has(.app-fill)){height:100dvh}@media (width>=821px){.app-main-col:has(.app-fill-desktop){height:100svh}}.app-topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20;background:#f6f5f3e6;justify-content:space-between;align-items:center;height:60px;padding:0 16px;display:none;position:sticky;top:0}.app-topbar-logo{font-family:var(--font-display);color:var(--ink);align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.app-topbar-drawer{justify-content:flex-start;gap:6px}.app-topbar-title{min-width:0;font-family:var(--font-display);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;font-size:19px;font-weight:700;overflow:hidden}.app-topbar-action{flex:none;align-items:center;gap:4px;margin-right:-8px;display:flex}.app-topbar-action:empty{display:none}.app-topbar-custom>.app-topbar-action{margin-right:0}.app-topbar-btn{width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;display:grid}.app-topbar-btn[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}.app-topbar-btn:disabled{color:var(--line-strong);cursor:default}.app-topbar-btn svg{width:21px;height:21px}.app-topbar-signout{border-radius:var(--r-sm);width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.app-topbar-signout:hover{background:var(--error-soft);color:var(--error)}.app-topbar-custom{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);z-index:20;background:#f6f5f3db;align-items:center;gap:14px;height:70px;padding:0 28px;display:flex;position:sticky;top:0}.app-topbar-signout-mobile-only{flex:none;display:none}@media (width<=820px){.app-topbar,.app-topbar-custom{height:calc(60px + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(16px, env(safe-area-inset-right)) 0 max(16px, env(safe-area-inset-left))}.app-topbar-signout-mobile-only{display:flex}}.app-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.app-banner-slot{box-sizing:border-box;flex:none;width:100%;max-width:1088px;margin:0 auto;padding:20px 24px 16px}.app-banner-slot:empty{display:none}.app-banner-slot>*+*{margin-top:12px}.app-banner-slot .lls-banner{margin-bottom:0}@media (width<=820px){.app-banner-slot{padding:14px 16px 12px}}.app-tabbar{display:none}@media (width<=820px){.app-sidebar{display:none}.app-topbar{display:flex}.app-tabbar{background:var(--surface);border-top:1px solid var(--line);padding:8px 8px calc(8px + env(safe-area-inset-bottom));z-index:20;justify-content:space-around;display:flex;position:sticky;bottom:0}.app-tab{color:var(--muted);border-radius:var(--r-pill);cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:3px;min-height:44px;padding:6px 14px;font-size:11px;font-weight:600;display:flex}.app-tab.on{color:var(--accent);background:var(--accent-soft)}.app-tab:disabled{cursor:default}}.app-topbar-burger,.app-drawer-scrim{display:none}@media (width<=820px){.app-shell[data-mobile-drawer]{--sw-shell-tabbar:0px}.app-topbar-burger{border-radius:var(--r-sm);width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;margin-left:-10px;display:flex;position:relative}.app-burger-badge{box-sizing:border-box;border-radius:var(--r-pill);background:var(--tongue);color:#fff;text-align:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:800;line-height:16px;position:absolute;top:6px;right:4px}.app-drawer-scrim{z-index:55;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:app-fade-in .2s var(--ease);background:#16151f6b;display:block;position:fixed;inset:0}.app-shell[data-mobile-drawer] .app-sidebar{z-index:60;width:min(290px,84vw);height:100dvh;padding-top:calc(20px + env(safe-area-inset-top));padding-bottom:calc(16px + env(safe-area-inset-bottom));box-sizing:border-box;background:var(--surface);visibility:hidden;transition:transform .24s var(--ease), visibility 0s linear .24s;border-right:none;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.app-shell[data-drawer-open] .app-sidebar{visibility:visible;box-shadow:var(--shadow-pop);transition:transform .24s var(--ease);transform:none}.app-shell[data-mobile-drawer] .app-nav-item{min-height:48px;font-size:15.5px}}@media (width<=480px){.app-phone-hidden{display:none!important}}@keyframes app-fade-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.app-drawer-scrim{animation:none}.app-shell[data-mobile-drawer] .app-sidebar{transition:none}}@media (width<=820px){.app-shell[data-shell=student][data-mobile-drawer] .pane-head h1{display:none}.app-shell[data-shell=student][data-mobile-drawer] .pane-head-sub{margin-top:0}.app-shell[data-shell=student][data-mobile-drawer] .pane-head--split>div:first-child{display:none}.app-shell:has(.app-topbar-title) .ui-ph-top h1{display:none}.app-shell:has(.app-topbar-title) .ui-ph-top:not(:has(.ui-ph-actions,.ui-ph-tabs)){display:none}}.confirm-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:240;background:#16151f6b;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.confirm-modal{background:var(--surface);border-radius:var(--r-lg);width:100%;max-width:380px;box-shadow:var(--shadow-md);padding:22px}.confirm-message{color:var(--ink);margin-bottom:18px;font-size:15px;line-height:1.5}.confirm-actions{justify-content:flex-end;gap:10px;display:flex}.confirm-actions button{border-radius:var(--r-pill);min-height:44px;font-family:var(--font-body);cursor:pointer;padding:10px 18px;font-size:13.5px;font-weight:700}.confirm-cancel{background:var(--paper);color:var(--ink);border:1.5px solid var(--line)}.confirm-cancel:hover{border-color:var(--ink)}.confirm-ok{background:var(--error);color:#fff;border:none}.confirm-ok:hover{opacity:.9}.bd--streak{--gc:var(--m-vocab);--gc-dark:#a85a00}.bd--known{--gc:var(--accent);--gc-dark:var(--accent-press)}.bd--answers{--gc:var(--tongue);--gc-dark:var(--tongue-groove)}.bd--minutes{--gc:var(--m-punct);--gc-dark:#0a6580}.bd--homework{--gc:var(--success);--gc-dark:var(--success-groove)}.bd--first{--gc:var(--m-spell);--gc-dark:var(--plum-groove)}.bd--swipe{--gc:#087f52;--gc-dark:#066a44}.bd--cards{--gc:#1d6fd1;--gc-dark:#1859aa}.bd--mixed{--gc:#be185d;--gc-dark:#9d174d}.bd--taboo{--gc:#3f3d56;--gc-dark:#322f45}.ach,.ach-cele,.ach-tiers{--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--bd:var(--tongue);--bd-hi:var(--tongue);--bd-lo:var(--tongue-groove);--bd-text:var(--tongue-groove)}.bd{width:var(--bd-size,96px);aspect-ratio:112/124;--g-rim-a:color-mix(in srgb, var(--gc,var(--tongue)) 62%, #fff);--g-rim-b:var(--gc-dark,var(--tongue-groove));--g-face-a:color-mix(in srgb, var(--gc,var(--tongue)) 70%, #fff);--g-face-b:var(--gc,var(--tongue));--pip:var(--gc,var(--tongue));flex:none;display:inline-block;position:relative}.bd-s-rim-a{stop-color:var(--g-rim-a)}.bd-s-rim-b{stop-color:var(--g-rim-b)}.bd-s-face-a{stop-color:var(--g-face-a)}.bd-s-face-b{stop-color:var(--g-face-b)}.bd-shape{width:100%;height:100%;display:block;overflow:visible}.bd-halo{fill:none;stroke:var(--g-rim-b);stroke-width:1.2px;opacity:.35}.bd-inner{fill:none;stroke:#fff;stroke-width:.9px;opacity:.4}.bd-bevel{fill:none;stroke:#fff;stroke-width:1.4px;stroke-linecap:round;opacity:.45}.bd-rivets circle{fill:#fff;opacity:.75}.bd-pip{fill:var(--line-strong)}.bd-pip--on{fill:var(--pip)}.bd-glyph{aspect-ratio:1;color:#fff;width:38%;display:grid;position:absolute;top:43%;left:50%;transform:translate(-50%,-50%)}.bd-glyph svg{width:100%;height:100%;filter:drop-shadow(0 1.5px 0 color-mix(in srgb, var(--gc-dark,var(--tongue-groove)) 80%, transparent))}.bd-star{width:22%;height:22%;fill:var(--streak-bg);stroke:var(--gc-dark,var(--tongue-groove));stroke-width:1.6px;filter:drop-shadow(0 1px 1px #16151f33);position:absolute;top:-8%;left:50%;transform:translate(-50%)}.bd-glint{fill:#fff;opacity:0;transform:skew(-18deg)}.bd--earned .bd-glint{animation:bd-glint 1.1s var(--ease-out-expo) calc(var(--bd-delay,0s) + .35s) both}.ach-card:hover .bd--earned .bd-glint{animation:bd-glint .9s var(--ease-out-expo) both}@keyframes bd-glint{0%{opacity:0;transform:translate(0)skew(-18deg)}15%{opacity:.55}to{opacity:0;transform:translate(190px)skew(-18deg)}}.bd--earned .bd-shape{filter:drop-shadow(0 4px 6px color-mix(in srgb, var(--gc-dark,var(--tongue-groove)) 26%, transparent))}.ach .bd--earned,.ach .bd--next{animation:bd-in .7s var(--ease-out-expo) var(--bd-delay,0s) both}@keyframes bd-in{0%{opacity:0;transform:translateY(8px)scale(.86)}}.bd--next{--g-rim-a:color-mix(in srgb, var(--gc,var(--accent)) 70%, #fff);--g-rim-b:var(--gc-dark,var(--accent-press));--g-face-a:#fff;--g-face-b:color-mix(in srgb, var(--gc,var(--accent)) 14%, #fff);--pip:var(--gc,var(--accent))}.bd--next .bd-inner,.bd--next .bd-bevel{stroke:var(--gc,var(--accent));opacity:.3}.bd--next .bd-glyph{color:var(--gc-dark,var(--accent))}.bd--next .bd-glyph svg{filter:none}.bd-water{transition:transform 1.2s var(--ease-out-expo);animation:bd-rise 1.3s var(--ease-out-expo) calc(var(--bd-delay,0s) + .1s) both}@keyframes bd-rise{0%{transform:translateY(100px)}}.bd-wave{fill:var(--gc,var(--accent));fill-opacity:.22;animation:5s linear infinite bd-wave}@keyframes bd-wave{to{transform:translate(50px)}}.bd--locked{--g-rim-a:#fff;--g-rim-b:var(--line-strong);--g-face-a:var(--paper);--g-face-b:var(--line);--pip:var(--line-strong)}.bd--locked .bd-inner,.bd--locked .bd-bevel{stroke:var(--line-strong);opacity:.5}.bd--locked .bd-glyph{color:var(--line-strong);opacity:.8}.bd--locked .bd-glyph svg{filter:none}.bd-lock{background:var(--surface);border:1px solid var(--line);width:24%;height:24%;color:var(--muted);border-radius:50%;padding:3px;position:absolute;bottom:14%;right:6%}.bd-new{background:var(--tongue);border:2.5px solid var(--surface);border-radius:50%;width:14px;height:14px;position:absolute;top:2%;right:4%}.bd-new:after{content:"";border:2px solid var(--tongue);animation:bd-ping 2.2s var(--ease-out-expo) infinite;border-radius:50%;position:absolute;inset:-5px}@keyframes bd-ping{0%{opacity:.8;transform:scale(.5)}to{opacity:0;transform:scale(1.6)}}.ach{flex-direction:column;gap:28px;max-width:1080px;display:flex}.ach-top{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:16px;display:grid}.ach-hero{border-radius:var(--r-md);border:1px solid color-mix(in srgb, var(--gc,var(--line)) 22%, var(--line));background:linear-gradient(135deg, color-mix(in srgb, var(--gc,#fff) 11%, var(--surface)), var(--surface) 70%);align-items:center;gap:24px;padding:24px 28px;display:flex}.ach-hero-body{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.ach-hero h2{font-family:var(--font-display);letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:22px;font-weight:700;line-height:1.15}.ach-hero-cond{color:var(--muted);margin:0;font-size:14.5px}.ach-hero-left{color:var(--gc-dark,var(--muted));margin:0;font-size:13.5px;font-weight:800}.ach-hero .ach-bar{margin-top:6px}.ach-reward-chip{border-radius:var(--r-sm);background:var(--paper);color:var(--muted);align-items:flex-start;gap:8px;margin:8px 0 0;padding:9px 12px;font-size:13px;line-height:1.35;display:flex}.ach-reward-chip b{color:var(--ink)}.ach-reward-chip svg{width:16px;height:16px;color:var(--bd-text);flex:none;margin-top:1px}.ach-bar{align-items:center;gap:10px;display:flex}.ach-bar-track{background:var(--line);border-radius:99px;flex:1;height:10px;position:relative;overflow:hidden}.ach-bar--sm .ach-bar-track{height:8px}.ach-bar-fill{width:var(--w);background:var(--gc,var(--accent));animation:ach-fill 1s var(--ease-out-expo) .15s both;border-radius:99px;position:absolute;inset:0 auto 0 0;overflow:hidden}@keyframes ach-fill{0%{width:0}}.ach-bar-num{text-align:right;font-variant-numeric:tabular-nums;min-width:3.4em;color:var(--muted);flex:none;font-size:12.5px;font-weight:800}.ach-records{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.ach-stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);border-color:color-mix(in srgb, var(--gc,var(--line)) 20%, var(--line));background:color-mix(in srgb, var(--gc,#fff) 7%, var(--surface));flex-direction:column;justify-content:center;padding:14px 16px;display:flex}.ach-stat-value{font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--gc-dark,var(--ink));font-size:24px;font-weight:700;line-height:1.1}.ach-stat-value span{font-family:var(--font-body);letter-spacing:0;color:var(--muted);font-size:13px;font-weight:700}.ach-stat-label{margin-top:4px;font-size:13px;font-weight:800}.ach-stat-note{color:var(--muted);font-size:12px}.ach-sec{flex-direction:column;gap:12px;display:flex}.ach-sec-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.ach-sec h2{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:19px;font-weight:700}.ach-sec-count{color:var(--muted);font-size:13px;font-weight:700}.ach-total{background:var(--line);border-radius:99px;height:8px;overflow:hidden}.ach-total span{background:var(--accent);height:100%;animation:ach-fill .7s var(--ease) both;border-radius:99px;display:block}.ach-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:8px 0 0;padding:0;list-style:none;display:grid}.ach-grid>li{display:flex}.ach-card{text-align:left;font:inherit;color:inherit;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;transition:transform .16s var(--ease), border-color .16s var(--ease), box-shadow .16s var(--ease);flex:1;align-items:center;gap:18px;padding:18px 20px;display:flex}.ach-card:hover{border-color:color-mix(in srgb, var(--gc,var(--line-strong)) 45%, var(--line));box-shadow:var(--shadow-sm);transform:translateY(-2px)}.ach-card:active{transform:translateY(1px)}.ach-card:focus-visible,.ach-rw-go:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ach-card-body{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.ach-card-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.ach-card-title{font-family:var(--font-display);letter-spacing:-.02em;font-size:16px;font-weight:700}.ach-card-level{color:var(--gc-dark,var(--muted));flex:none;font-size:12px;font-weight:800}.ach-card-cond{color:var(--muted);font-size:13.5px;line-height:1.35}.ach-card-done{color:var(--success-groove);align-items:center;gap:6px;font-weight:700;display:flex}.ach-card-done svg{width:16px;height:16px}.ach-card-reward{color:var(--muted);align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:flex}.-card-reward svg{width:14px;height:14px;color:var(--tongue-groove);flex:none}.ach-firsts{flex:none;grid-template-columns:repeat(2,1fr);justify-items:center;gap:8px 10px;width:92px;margin:0;padding:0;list-style:none;display:grid}.ach-tiers-blurb{color:var(--muted);margin:0 0 14px;font-size:14px}.ach-tiers ol{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.ach-tier{border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);align-items:center;gap:14px;padding:12px 14px;display:flex}.ach-tier.is-earned{background:var(--surface)}.ach-tier.is-locked{background:var(--paper)}.ach-tier-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.ach-tier-title{font-size:15px;font-weight:800}.ach-tier-cond{color:var(--muted);font-size:13px}.ach-tier-status{color:var(--muted);flex:none;font-size:12.5px;font-weight:800}.ach-tier-status svg{width:18px;height:18px}.ach-done{color:var(--success-groove);align-items:center;gap:4px;display:inline-flex}.ach-done svg{width:16px;height:16px}.ach-rewards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.ach-rw{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;border-radius:var(--r-md);border:1px solid var(--line);background:var(--paper);align-items:center;gap:14px;padding:14px 16px;display:flex}.ach-rw.is-open{background:var(--surface)}.ach-rw-mark{background:var(--line);width:40px;height:40px;color:var(--muted);border-radius:12px;flex:none;place-items:center;display:grid}.ach-rw-mark svg{width:22px;height:22px}.ach-rw-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.ach-rw-name{font-size:15px;font-weight:800}.ach-rw-kind,.ach-rw-cond{color:var(--muted);font-size:12.5px}.ach-rw.is-open .ach-rw-cond{color:var(--success-groove);font-weight:700}.ach-rw-go{border:1px solid var(--line);background:var(--surface);min-height:36px;font:inherit;color:var(--accent);cursor:pointer;border-radius:99px;flex:none;padding:0 14px;font-size:13px;font-weight:800}.ach-rw-go:hover{border-color:var(--accent)}.ach-state{color:var(--muted);flex-direction:column;align-items:flex-start;gap:12px;display:flex}.ach-skel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);min-height:112px}.ach-top>.ach-skel{min-height:190px}@media (width<=900px){.ach{gap:24px}.ach-top,.ach-grid,.ach-rewards{grid-template-columns:minmax(0,1fr)}.ach-top{gap:12px}.ach-top>.ach-skel{min-height:150px}.ach-hero{grid-template-columns:60px minmax(0,1fr);align-items:center;gap:6px 14px;padding:16px;display:grid}.ach-hero>.bd{grid-row:1/span 2;width:60px}.ach-hero-body{display:contents}.ach-hero h2{grid-column:2;align-self:end;font-size:19px}.ach-hero-cond{grid-column:2;align-self:start;font-size:13.5px}.ach-hero-body>:not(h2):not(.ach-hero-cond){grid-column:1/-1}.ach-hero .ach-bar{margin-top:8px}.ach-reward-chip{margin-top:4px}.ach-hero--done,.ach-hero--done .ach-hero-body{display:flex}.ach-records{gap:10px}.ach-stat{padding:10px 12px}.ach-stat-value{font-size:20px}.ach-stat-label{margin-top:2px;font-size:12.5px}.ach-stat-note{font-size:11.5px}.ach-rewards{gap:8px}.ach-rw{gap:12px;padding:10px 12px}.ach-rw-mark{border-radius:10px;width:32px;height:32px}.ach-rw-mark svg{width:18px;height:18px}.ach-rw-body{flex-flow:wrap;align-items:baseline;gap:2px 6px}.ach-rw-kind:before{content:"· "}.ach-rw-cond,.ach-rw-body>.ach-bar{flex-basis:100%}.ach-rw-body>.ach-bar{margin-top:4px}.ach-card{gap:14px;padding:16px}}@media (prefers-reduced-motion:reduce){.ach-bar-fill,.ach-total span{animation:none}.ach-card{transition:none}}.ach-cele{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:6px 0 4px;display:flex}.ach-cele-mascot{animation:ach-cele-hop .5s var(--ease) both, mascot-mini-blink 5.2s ease-in-out .5s infinite}.ach-cele-medals{flex-wrap:wrap;justify-content:center;gap:12px 16px;margin:0;padding:0;list-style:none;display:flex}.ach-cele-medals li{text-align:center;max-width:96px;color:var(--muted);animation:ach-cele-pop .9s var(--ease-out-expo) .2s both;flex-direction:column;align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex;position:relative}.ach-cele-medals li:before,.ach-cele-medals li:after{content:"";aspect-ratio:1;border:2px solid var(--tongue);opacity:0;width:70%;animation:ach-cele-ring 1.1s var(--ease-out-expo) .35s both;border-radius:50%;margin:-35% 0 0 -35%;position:absolute;top:38%;left:50%}.ach-cele-medals li:after{border-color:var(--accent);animation-delay:.5s}@keyframes ach-cele-ring{0%{opacity:.7;transform:scale(.6)}to{opacity:0;transform:scale(2.4)}}.ach-cele-reward{color:var(--accent-press);margin:0;font-size:14px;font-weight:700}.ach-cele-record{color:var(--tongue-groove);margin:0;font-size:15px;font-weight:700}@keyframes ach-cele-hop{0%{opacity:0;transform:translateY(8px)scale(.9)}60%{opacity:1;transform:translateY(-4px)scale(1.04)}to{transform:none}}@keyframes ach-cele-pop{0%{opacity:0;transform:scale(.3)rotate(-14deg)}55%{opacity:1;transform:scale(1.12)rotate(3deg)}to{transform:none}}.ach-cele .bd--earned .bd-glint{animation-delay:.8s}@media (prefers-reduced-motion:reduce){.ach-cele-medals li,.ach-cele-medals li:before,.ach-cele-medals li:after,.ach-cele .bd--earned .bd-glint{animation:none}}.ach-strip{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.ach-strip h3{font-family:var(--font-display);letter-spacing:-.02em;flex-basis:100%;margin:0;font-size:15px;font-weight:600}.ach-strip-facts{color:var(--muted);flex:220px;margin:0;font-size:13.5px}.ach-strip-medals{align-items:center;gap:6px;margin:0;padding:0;list-style:none;display:flex}.ach-strip-more{color:var(--muted);font-size:12.5px;font-weight:700}.ach-strip-empty{color:var(--muted);margin:0;font-size:13px}.ach-dash{flex-direction:column;gap:14px;display:flex}.ach-dash-goal{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:14px;padding:0;display:flex}.ach-dash-goal-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.ach-dash-goal-body b{color:var(--ink);font-size:15px;font-weight:700}.ach-dash-goal:hover b{color:var(--accent)}.ach-dash-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:800}.ach-dash-left{color:var(--muted);font-size:13px}.ach-dash-bar{background:var(--line);border-radius:var(--r-pill);height:6px;margin-top:4px;display:block;overflow:hidden}.ach-dash-bar>i{width:var(--w);background:var(--accent);border-radius:var(--r-pill);height:100%;display:block}.ach-dash-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding-top:14px;display:flex}.ach-dash-count{color:var(--muted);flex:none;font-size:12.5px;font-weight:700}.ach-dash-muted{color:var(--muted);margin:0;font-size:13.5px}.ach-hero,.ach-stat,.ach-sec-head,.ach-total,.ach-grid>li,.ach-rw,.ach-tier{animation:ach-rise .7s var(--ease-out-expo) calc(var(--i,0) * 70ms) both}.ach-hero{animation-delay:0s}.ach-records .ach-stat:first-child{--i:1}.ach-records .ach-stat:nth-child(2){--i:2}.ach-records .ach-stat:nth-child(3){--i:3}.ach-records .ach-stat:nth-child(4){--i:4}.ach-grid>li{animation-delay:calc(.24s + var(--i,0) * 80ms)}.ach-rw{animation-delay:calc(.12s + var(--i,0) * 70ms)}.ach-tier{animation-delay:calc(80ms + var(--i,0) * 80ms)}@keyframes ach-rise{0%{opacity:0;transform:translateY(14px)}}.ach-bar-fill:after{content:"";border-radius:inherit;animation:ach-sheen 1s var(--ease-out-expo) .9s both;background:linear-gradient(100deg,#0000 30%,#ffffff8c 50%,#0000 70%);position:absolute;inset:0;transform:translate(-100%)}@keyframes ach-sheen{to{transform:translate(100%)}}.ach-card .bd{transition:transform .35s var(--ease-out-expo)}.ach-card:hover .bd{transform:translateY(-3px)rotate(-2deg)scale(1.04)}@media (prefers-reduced-motion:reduce){.ach-hero,.ach-stat,.ach-sec-head,.ach-total,.ach-grid>li,.ach-rw,.ach-tier,.ach .bd--earned,.ach .bd--next,.bd--earned .bd-glint,.bd-water,.bd-wave,.bd-new:after,.ach-bar-fill:after{animation:none}.ach-card:hover .bd{transform:none}}.ach-stat{border-color:color-mix(in srgb, var(--gc,var(--line)) 22%, var(--line));background:linear-gradient(160deg, color-mix(in srgb, var(--gc,#fff) 10%, var(--surface)), var(--surface) 75%)}.ach-stat-value{color:var(--gc-dark,var(--ink))}.ach-card{background:linear-gradient(160deg, color-mix(in srgb, var(--gc,#fff) 6%, var(--surface)), var(--surface) 60%)}.ach-card-reward svg,.ach-reward-chip svg{color:var(--gc-dark,var(--tongue-groove))}.ach-tier.is-earned,.ach-rw.is-open{background:color-mix(in srgb, var(--gc,#fff) 8%, var(--surface));border-color:color-mix(in srgb, var(--gc,var(--line)) 28%, var(--line))}.ach-rw.is-open .ach-rw-mark{background:var(--gc,var(--accent));color:#fff}.ach-total span{background:linear-gradient(90deg, var(--m-vocab), var(--tongue), var(--accent))}.ach-more{border:1px solid var(--line);background:var(--surface);min-height:40px;font:inherit;color:var(--accent);cursor:pointer;transition:border-color .15s var(--ease), background .15s var(--ease);border-radius:99px;align-self:center;padding:0 18px;font-size:13.5px;font-weight:800}.ach-more:hover{border-color:var(--accent);background:var(--accent-soft)}.ach-more:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ach-rewards>li{display:flex}.ach-rw{transition:transform .16s var(--ease), border-color .16s var(--ease), box-shadow .16s var(--ease)}.ach-rw:hover{border-color:color-mix(in srgb, var(--gc,var(--line-strong)) 45%, var(--line));box-shadow:var(--shadow-sm);transform:translateY(-2px)}.ach-rw:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ach-rw .ach-rw-go{min-height:0;color:var(--muted);background:0 0;border:0;padding:0;display:grid}.ach-rw .ach-rw-go svg{width:18px;height:18px}.ach-reward-dialog{flex-direction:column;gap:12px;display:flex}.ach-reward-kind{color:var(--muted);margin:0;font-size:13px}.ach-reward-state{margin:0;font-size:14px;font-weight:700}.ach-reward-state--open{color:var(--success-groove);align-items:center;gap:6px;display:flex}.ach-reward-state svg{width:17px;height:17px}.ach-reward-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.cz-bg-shell-plain{background:#f6f5f3}.cz-bg-shell-mist{background:linear-gradient(#f4f6fb,#eef1f8)}.cz-bg-shell-dawn{background:radial-gradient(120% 120% at 80% 0,#fbe9e4,#faf4f2 70%)}.cz-bg-shell-mint{background:radial-gradient(120% 120% at 15% 100%,#e3f3ea,#f1f8f4 70%)}.cz-bg-shell-sand{background:radial-gradient(120% 120% at 85% 100%,#f3e9d8,#faf6f0 70%)}.cz-bg-shell-breeze{background:linear-gradient(135deg,#eaf5f7,#f2f8f9 65%)}.cz-bg-shell-aurora{background-color:#f5f4fb;background-image:radial-gradient(70% 70% at 12% 8%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 70%), radial-gradient(70% 70% at 92% 92%, #ff508038, transparent 70%)}.cz-bg-shell-grid{background-color:#f6f5f3;background-image:linear-gradient(#16151f33 1.5px,#0000 1.5px),linear-gradient(90deg,#16151f33 1.5px,#0000 1.5px);background-repeat:repeat;background-size:12px 12px}.cz-bg-shell-dots{background-color:#f7f6f3;background-image:radial-gradient(#16151f52 2px,#0000 2.1px);background-repeat:repeat;background-size:10px 10px}.cz-bg-shell-cross{background-color:#f6f5f3;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='M7,3 V11 M3,7 H11' stroke='%2316151e' stroke-opacity='.26' stroke-width='1.6' stroke-linecap='round' fill='none'/%3E%3C/svg%3E");background-repeat:repeat;background-size:14px 14px}.cz-cb{border-radius:var(--r-md);border:1px solid var(--line);background-position:50%;background-repeat:no-repeat;position:relative}.cz-cb.cz-cb-cbcolor-indigo{--cb-tint:#5850ea;--cb-tint-soft:#ecebfe}.cz-cb.cz-cb-cbcolor-ocean{--cb-tint:#0e7490;--cb-tint-soft:#dff1f6}.cz-cb.cz-cb-cbcolor-emerald{--cb-tint:#087f52;--cb-tint-soft:#e3f5ec}.cz-cb.cz-cb-cbcolor-plum{--cb-tint:#8e4ec6;--cb-tint-soft:#f2eafb}.cz-cb.cz-cb-cbcolor-sunset{--cb-tint:#c2560c;--cb-tint-soft:#fdecdd}.cz-cb.cz-cb-cbcolor-raspberry{--cb-tint:#c42b55;--cb-tint-soft:#fce8ee}.cz-cb.cz-cb-cbcolor-graphite{--cb-tint:#3f3d56;--cb-tint-soft:#ececef}.cz-cb.cz-cb-cbcolor-teal{--cb-tint:#0f766e;--cb-tint-soft:#dcf3f0}.cz-cb.cz-cb-cbcolor-sky{--cb-tint:#1d6fd1;--cb-tint-soft:#e0edfb}.cz-cb.cz-cb-back-dot{background-color:var(--cb-tint-soft,var(--accent-soft));background-image:radial-gradient(circle at 22px 22px, color-mix(in srgb, var(--cb-tint,#5850ea) 14%, transparent) 2px, transparent 2.6px);background-repeat:repeat;background-size:22px 22px}.cz-cb.cz-cb-back-iris{background-color:var(--cb-tint-soft,var(--accent-soft));background-image:repeating-radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--cb-tint,#5850ea) 22%, transparent) 0 1.5px, transparent 1.5px 5px);background-repeat:repeat;background-size:24px 24px}.cz-cb.cz-cb-back-lash{background-color:var(--cb-tint-soft,var(--accent-soft));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Cpath d='M-4.5 4.5 L4.5 -4.5 M0 18 L18 0 M13.5 22.5 L22.5 13.5' stroke='%2316151e' stroke-opacity='.16' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:repeat;background-size:18px 18px}.cz-cb.cz-cb-back-weave{background-color:var(--cb-tint-soft,var(--accent-soft));background-image:repeating-linear-gradient(45deg, color-mix(in srgb, var(--cb-tint,#5850ea) 22%, transparent) 0 2px, transparent 2px 14px), repeating-linear-gradient(-45deg, color-mix(in srgb, var(--cb-tint,#5850ea) 22%, transparent) 0 2px, transparent 2px 14px)}.cz-cb.cz-cb-back-spark{background-color:var(--cb-tint-soft,var(--accent-soft));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cpath d='M14 3 L16.2 11.8 L25 14 L16.2 16.2 L14 25 L11.8 16.2 L3 14 L11.8 11.8 Z' fill='%2316151e' opacity='.22'/%3E%3C/svg%3E");background-repeat:repeat;background-size:28px 28px}.cz-cb.cz-cb-back-check{background-color:var(--cb-tint-soft,var(--accent-soft));background-image:linear-gradient(color-mix(in srgb, var(--cb-tint,#5850ea) 20%, transparent) 1.5px, transparent 1.5px), linear-gradient(90deg, color-mix(in srgb, var(--cb-tint,#5850ea) 20%, transparent) 1.5px, transparent 1.5px);background-repeat:repeat;background-size:16px 16px}.cz-cb.cz-cb-back-wave{background-color:var(--cb-tint-soft,var(--accent-soft));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='16' viewBox='0 0 24 16'%3E%3Cpath d='M-6,8 Q0,2 6,8 T18,8 T30,8' stroke='%2316151e' stroke-opacity='.18' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-repeat:repeat;background-size:24px 16px}.cz-cb.cz-cb-back-stripe{background-color:var(--cb-tint-soft,var(--accent-soft));background-image:repeating-linear-gradient(90deg, color-mix(in srgb, var(--cb-tint,#5850ea) 16%, transparent) 0 6px, transparent 6px 20px)}.cz-cb.cz-cb-badge-flag:before,.cz-cb.cz-cb-badge-star:before,.cz-cb.cz-cb-badge-heart:before,.cz-cb.cz-cb-badge-book:before,.cz-cb.cz-cb-badge-crab:before,.cz-cb.cz-cb-badge-sun:before,.cz-cb.cz-cb-badge-smile:before,.cz-cb.cz-cb-badge-medal:before{content:"";aspect-ratio:1;background-color:var(--surface);width:34%;box-shadow:var(--shadow-sm);border-radius:50%;margin:auto;position:absolute;inset:0}.cz-cb.cz-cb-badge-eye:before{content:"";aspect-ratio:1;width:40%;filter:drop-shadow(var(--shadow-sm));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M8,50 Q50,14 92,50 Q50,86 8,50 Z' fill='%23fff'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;margin:auto;position:absolute;inset:0}.cz-cb.cz-cb-badge-eye:after,.cz-cb.cz-cb-badge-flag:after,.cz-cb.cz-cb-badge-star:after,.cz-cb.cz-cb-badge-heart:after,.cz-cb.cz-cb-badge-book:after,.cz-cb.cz-cb-badge-crab:after,.cz-cb.cz-cb-badge-sun:after,.cz-cb.cz-cb-badge-smile:after,.cz-cb.cz-cb-badge-medal:after{content:"";aspect-ratio:1;transform-origin:50%;background-position:50%;background-repeat:no-repeat;width:34%;margin:auto;position:absolute;inset:0}.cz-cb.cz-cb-badge-eye:after{filter:drop-shadow(var(--shadow-sm));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3CclipPath id='e'%3E%3Cpath d='M8,50 Q50,14 92,50 Q50,86 8,50 Z'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg clip-path='url(%23e)'%3E%3Crect width='100' height='100' fill='%23fff'/%3E%3Ccircle cx='50' cy='50' r='26' fill='%235850ea'/%3E%3Ccircle cx='50' cy='50' r='12' fill='%2316151e'/%3E%3Ccircle cx='44' cy='44' r='4' fill='%23fff'/%3E%3C/g%3E%3Cpath d='M8,50 Q50,14 92,50 Q50,86 8,50 Z' fill='none' stroke='%2316151e' stroke-width='4'/%3E%3C/svg%3E");background-size:100% 100%;animation:5.2s ease-in-out infinite cb-badge-blink}.cz-cb.cz-cb-badge-flag:after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3CclipPath id='r'%3E%3Ccircle cx='50' cy='50' r='42'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg clip-path='url(%23r)'%3E%3Crect x='8' y='8' width='84' height='84' fill='%23012169'/%3E%3Cpath d='M8 8 L92 92 M92 8 L8 92' stroke='%23ffffff' stroke-width='16'/%3E%3Cpath d='M8 8 L92 92 M92 8 L8 92' stroke='%23C8102E' stroke-width='7'/%3E%3Cpath d='M50 8 V92 M8 50 H92' stroke='%23ffffff' stroke-width='29'/%3E%3Cpath d='M50 8 V92 M8 50 H92' stroke='%23C8102E' stroke-width='17'/%3E%3C/g%3E%3C/svg%3E");background-size:68% 68%}.cz-cb.cz-cb-badge-sun:after{filter:drop-shadow(var(--shadow-sm));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3CclipPath id='sn'%3E%3Ccircle cx='50' cy='50' r='42'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg clip-path='url(%23sn)'%3E%3Crect width='100' height='100' fill='%23fff'/%3E%3Cpath d='M70 50 L83 50 M64 64 L73 73 M50 70 L50 83 M36 64 L27 73 M30 50 L17 50 M36 36 L27 27 M50 30 L50 17 M64 36 L73 27' stroke='%2316151e' stroke-width='4' stroke-linecap='round'/%3E%3Ccircle cx='50' cy='50' r='20' fill='%23ffcf5c' stroke='%2316151e' stroke-width='4'/%3E%3C/g%3E%3C/svg%3E");background-size:68% 68%;animation:6s linear infinite cb-badge-spin}.cz-cb.cz-cb-badge-smile:after{filter:drop-shadow(var(--shadow-sm));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3CclipPath id='sm'%3E%3Ccircle cx='50' cy='50' r='42'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg clip-path='url(%23sm)'%3E%3Crect width='100' height='100' fill='%23fff'/%3E%3Cpath fill='%23ff5080' stroke='%2316151e' stroke-width='4' stroke-linejoin='round' d='M20 50 C28 38 40 38 50 44 C60 38 72 38 80 50 C68 60 60 64 50 64 C40 64 32 60 20 50 Z'%3E%3Canimate attributeName='d' values='M20 50 C28 38 40 38 50 44 C60 38 72 38 80 50 C68 60 60 64 50 64 C40 64 32 60 20 50 Z;M42 50 C44 40 48 40 50 44 C52 40 56 40 58 50 C56 58 52 62 50 62 C48 62 44 58 42 50 Z;M20 50 C28 38 40 38 50 44 C60 38 72 38 80 50 C68 60 60 64 50 64 C40 64 32 60 20 50 Z' dur='2.6s' repeatCount='indefinite'/%3E%3C/path%3E%3Cpath fill='none' stroke='%2316151e' stroke-width='3' stroke-linecap='round' d='M22 51 Q50 53 78 51'%3E%3Canimate attributeName='d' values='M22 51 Q50 53 78 51;M46 51 Q50 51.5 54 51;M22 51 Q50 53 78 51' dur='2.6s' repeatCount='indefinite'/%3E%3C/path%3E%3C/g%3E%3C/svg%3E");background-size:68% 68%}.cz-cb.cz-cb-badge-star:after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cdefs%3E%3Cpath id='s' d='M0,-11 L2.2,-2.2 L11,0 L2.2,2.2 L0,11 L-2.2,2.2 L-11,0 L-2.2,-2.2 Z' fill='%23d9a441'/%3E%3C/defs%3E%3Cuse href='%23s' transform='translate(20,26)'%3E%3Canimate attributeName='opacity' values='0.55;1;0.55' dur='2.2s' begin='0s' repeatCount='indefinite'/%3E%3C/use%3E%3Cuse href='%23s' transform='translate(9,11) scale(0.5)'%3E%3Canimate attributeName='opacity' values='1;0.4;1' dur='1.8s' begin='0.4s' repeatCount='indefinite'/%3E%3C/use%3E%3Cuse href='%23s' transform='translate(31,11) scale(0.45)'%3E%3Canimate attributeName='opacity' values='0.4;1;0.4' dur='2.6s' begin='0.9s' repeatCount='indefinite'/%3E%3C/use%3E%3C/svg%3E");background-size:76% 76%}.cz-cb.cz-cb-badge-heart:after{filter:drop-shadow(var(--shadow-sm));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3CclipPath id='h'%3E%3Ccircle cx='50' cy='50' r='42'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg clip-path='url(%23h)'%3E%3Crect width='100' height='100' fill='%23fff'/%3E%3Cpath d='M50 82 C24 62,20 44,20 34 C20 20,32 14,44 18 C48 20,50 24,50 28 C50 24,52 20,56 18 C68 14,80 20,80 34 C80 44,76 62,50 82 Z' fill='%23ff5080' stroke='%2316151e' stroke-width='4' stroke-linejoin='round'/%3E%3C/g%3E%3C/svg%3E");background-size:68% 68%;animation:1.8s ease-in-out infinite cb-badge-heartbeat}.cz-cb.cz-cb-badge-book:after{filter:drop-shadow(var(--shadow-sm));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3CclipPath id='k'%3E%3Ccircle cx='50' cy='50' r='42'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg clip-path='url(%23k)'%3E%3Crect width='100' height='100' fill='%23fff'/%3E%3Cpath d='M50 30 C44 25,32 23,24 25 V66 C32 64,44 66,50 70 C56 66,68 64,76 66 V25 C68 23,56 25,50 30 Z' fill='%235850ea' stroke='%2316151e' stroke-width='4' stroke-linejoin='round'/%3E%3Cpath d='M50 30 V70' stroke='%2316151e' stroke-width='3'/%3E%3C/g%3E%3C/svg%3E");background-size:68% 68%;animation:4s ease-in-out infinite cb-badge-flip}.cz-cb.cz-cb-badge-crab:after{filter:drop-shadow(var(--shadow-sm));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3CclipPath id='cr'%3E%3Ccircle cx='50' cy='50' r='42'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg clip-path='url(%23cr)'%3E%3Crect width='100' height='100' fill='%23fff'/%3E%3Cpath d='M34 62 L26 72 M40 66 L34 78 M60 66 L66 78 M66 62 L74 72' stroke='%2316151e' stroke-width='3' stroke-linecap='round'/%3E%3Cellipse cx='24' cy='50' rx='9' ry='7' fill='%23ff6b4a' stroke='%2316151e' stroke-width='3'/%3E%3Cellipse cx='76' cy='50' rx='9' ry='7' fill='%23ff6b4a' stroke='%2316151e' stroke-width='3'/%3E%3Cellipse cx='50' cy='52' rx='22' ry='15' fill='%23ff6b4a' stroke='%2316151e' stroke-width='4'/%3E%3Cpath d='M42 38 L40 28 M58 38 L60 28' stroke='%2316151e' stroke-width='3' stroke-linecap='round'/%3E%3Ccircle cx='40' cy='26' r='4' fill='%23fff' stroke='%2316151e' stroke-width='2'/%3E%3Ccircle cx='60' cy='26' r='4' fill='%23fff' stroke='%2316151e' stroke-width='2'/%3E%3Ccircle cx='40' cy='26' r='1.6' fill='%2316151e'/%3E%3Ccircle cx='60' cy='26' r='1.6' fill='%2316151e'/%3E%3C/g%3E%3C/svg%3E");background-size:68% 68%;animation:2.4s ease-in-out infinite cb-badge-scuttle}@keyframes cb-badge-blink{0%,90%,to{transform:scaleY(1)}93%{transform:scaleY(.05)}96%{transform:scaleY(1)}}@keyframes cb-badge-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes cb-badge-heartbeat{0%,24%,to{transform:scale(1)}10%{transform:scale(1.22)}17%{transform:scale(1.04)}}@keyframes cb-badge-flip{0%,to{transform:perspective(160px)rotateY(0)}50%{transform:perspective(160px)rotateY(45deg)}}@keyframes cb-badge-scuttle{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@media (prefers-reduced-motion:reduce){.cz-cb.cz-cb-badge-eye:after,.cz-cb.cz-cb-badge-heart:after,.cz-cb.cz-cb-badge-book:after,.cz-cb.cz-cb-badge-crab:after,.cz-cb.cz-cb-badge-sun:after{animation:none}}.cz-badge{background-color:var(--surface);background-position:50%;background-repeat:no-repeat}.cz-badge.cz-badge-badge-eye{background-color:#0000;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3CclipPath id='e'%3E%3Cpath d='M8,50 Q50,14 92,50 Q50,86 8,50 Z'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg clip-path='url(%23e)'%3E%3Crect width='100' height='100' fill='%23fff'/%3E%3Ccircle cx='50' cy='50' r='26' fill='%235850ea'/%3E%3Ccircle cx='50' cy='50' r='12' fill='%2316151e'/%3E%3Ccircle cx='44' cy='44' r='4' fill='%23fff'/%3E%3C/g%3E%3Cpath d='M8,50 Q50,14 92,50 Q50,86 8,50 Z' fill='none' stroke='%2316151e' stroke-width='4'/%3E%3C/svg%3E");background-size:72%}.cz-badge.cz-badge-badge-flag{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3CclipPath id='r'%3E%3Ccircle cx='50' cy='50' r='42'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg clip-path='url(%23r)'%3E%3Crect x='8' y='8' width='84' height='84' fill='%23012169'/%3E%3Cpath d='M8 8 L92 92 M92 8 L8 92' stroke='%23ffffff' stroke-width='16'/%3E%3Cpath d='M8 8 L92 92 M92 8 L8 92' stroke='%23C8102E' stroke-width='7'/%3E%3Cpath d='M50 8 V92 M8 50 H92' stroke='%23ffffff' stroke-width='29'/%3E%3Cpath d='M50 8 V92 M8 50 H92' stroke='%23C8102E' stroke-width='17'/%3E%3C/g%3E%3C/svg%3E");background-size:58%}.cz-badge.cz-badge-badge-sun{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3CclipPath id='sn'%3E%3Ccircle cx='50' cy='50' r='42'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg clip-path='url(%23sn)'%3E%3Crect width='100' height='100' fill='%23fff'/%3E%3Cpath d='M70 50 L83 50 M64 64 L73 73 M50 70 L50 83 M36 64 L27 73 M30 50 L17 50 M36 36 L27 27 M50 30 L50 17 M64 36 L73 27' stroke='%2316151e' stroke-width='4' stroke-linecap='round'/%3E%3Ccircle cx='50' cy='50' r='20' fill='%23ffcf5c' stroke='%2316151e' stroke-width='4'/%3E%3C/g%3E%3C/svg%3E");background-size:62%}.cz-badge.cz-badge-badge-star{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cdefs%3E%3Cpath id='s' d='M0,-11 L2.2,-2.2 L11,0 L2.2,2.2 L0,11 L-2.2,2.2 L-11,0 L-2.2,-2.2 Z' fill='%23d9a441'/%3E%3C/defs%3E%3Cuse href='%23s' transform='translate(20,26)'%3E%3Canimate attributeName='opacity' values='0.55;1;0.55' dur='2.2s' begin='0s' repeatCount='indefinite'/%3E%3C/use%3E%3Cuse href='%23s' transform='translate(9,11) scale(0.5)'%3E%3Canimate attributeName='opacity' values='1;0.4;1' dur='1.8s' begin='0.4s' repeatCount='indefinite'/%3E%3C/use%3E%3Cuse href='%23s' transform='translate(31,11) scale(0.45)'%3E%3Canimate attributeName='opacity' values='0.4;1;0.4' dur='2.6s' begin='0.9s' repeatCount='indefinite'/%3E%3C/use%3E%3C/svg%3E");background-size:72%}.cz-badge.cz-badge-badge-heart{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3CclipPath id='h'%3E%3Ccircle cx='50' cy='50' r='42'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg clip-path='url(%23h)'%3E%3Crect width='100' height='100' fill='%23fff'/%3E%3Cpath d='M50 82 C24 62,20 44,20 34 C20 20,32 14,44 18 C48 20,50 24,50 28 C50 24,52 20,56 18 C68 14,80 20,80 34 C80 44,76 62,50 82 Z' fill='%23ff5080' stroke='%2316151e' stroke-width='4' stroke-linejoin='round'/%3E%3C/g%3E%3C/svg%3E");background-size:62%}.cz-badge.cz-badge-badge-book{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3CclipPath id='k'%3E%3Ccircle cx='50' cy='50' r='42'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg clip-path='url(%23k)'%3E%3Crect width='100' height='100' fill='%23fff'/%3E%3Cpath d='M50 30 C44 25,32 23,24 25 V66 C32 64,44 66,50 70 C56 66,68 64,76 66 V25 C68 23,56 25,50 30 Z' fill='%235850ea' stroke='%2316151e' stroke-width='4' stroke-linejoin='round'/%3E%3Cpath d='M50 30 V70' stroke='%2316151e' stroke-width='3'/%3E%3C/g%3E%3C/svg%3E");background-size:62%}.cz-badge.cz-badge-badge-crab{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3CclipPath id='cr'%3E%3Ccircle cx='50' cy='50' r='42'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg clip-path='url(%23cr)'%3E%3Crect width='100' height='100' fill='%23fff'/%3E%3Cpath d='M34 62 L26 72 M40 66 L34 78 M60 66 L66 78 M66 62 L74 72' stroke='%2316151e' stroke-width='3' stroke-linecap='round'/%3E%3Cellipse cx='24' cy='50' rx='9' ry='7' fill='%23ff6b4a' stroke='%2316151e' stroke-width='3'/%3E%3Cellipse cx='76' cy='50' rx='9' ry='7' fill='%23ff6b4a' stroke='%2316151e' stroke-width='3'/%3E%3Cellipse cx='50' cy='52' rx='22' ry='15' fill='%23ff6b4a' stroke='%2316151e' stroke-width='4'/%3E%3Cpath d='M42 38 L40 28 M58 38 L60 28' stroke='%2316151e' stroke-width='3' stroke-linecap='round'/%3E%3Ccircle cx='40' cy='26' r='4' fill='%23fff' stroke='%2316151e' stroke-width='2'/%3E%3Ccircle cx='60' cy='26' r='4' fill='%23fff' stroke='%2316151e' stroke-width='2'/%3E%3Ccircle cx='40' cy='26' r='1.6' fill='%2316151e'/%3E%3Ccircle cx='60' cy='26' r='1.6' fill='%2316151e'/%3E%3C/g%3E%3C/svg%3E");background-size:62%}.cz-badge.cz-badge-badge-medal{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3CclipPath id='md'%3E%3Ccircle cx='50' cy='50' r='42'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg clip-path='url(%23md)'%3E%3Crect width='100' height='100' fill='%23fff'/%3E%3Ccircle cx='50' cy='50' r='28' fill='%23fc4878' stroke='%2316151e' stroke-width='4'/%3E%3Ccircle cx='50' cy='50' r='16' fill='none' stroke='%23fff' stroke-width='4'/%3E%3C/g%3E%3C/svg%3E");background-size:62%}.cz-badge.cz-badge-badge-smile{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3CclipPath id='sm2'%3E%3Ccircle cx='50' cy='50' r='42'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg clip-path='url(%23sm2)'%3E%3Crect width='100' height='100' fill='%23fff'/%3E%3Cpath fill='%23ff5080' stroke='%2316151e' stroke-width='4' stroke-linejoin='round' d='M20 50 C28 38 40 38 50 44 C60 38 72 38 80 50 C68 60 60 64 50 64 C40 64 32 60 20 50 Z'%3E%3Canimate attributeName='d' values='M20 50 C28 38 40 38 50 44 C60 38 72 38 80 50 C68 60 60 64 50 64 C40 64 32 60 20 50 Z;M42 50 C44 40 48 40 50 44 C52 40 56 40 58 50 C56 58 52 62 50 62 C48 62 44 58 42 50 Z;M20 50 C28 38 40 38 50 44 C60 38 72 38 80 50 C68 60 60 64 50 64 C40 64 32 60 20 50 Z' dur='2.6s' repeatCount='indefinite'/%3E%3C/path%3E%3Cpath fill='none' stroke='%2316151e' stroke-width='3' stroke-linecap='round' d='M22 51 Q50 53 78 51'%3E%3Canimate attributeName='d' values='M22 51 Q50 53 78 51;M46 51 Q50 51.5 54 51;M22 51 Q50 53 78 51' dur='2.6s' repeatCount='indefinite'/%3E%3C/path%3E%3C/g%3E%3C/svg%3E");background-size:62%}.cz-page{width:100%}.cz-head{margin-bottom:20px}.cz-head-bar{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:16px;display:flex}.cz-head-actions{gap:8px;margin-top:12px;display:flex;position:relative}.cz-head-actions .btn{flex:1}.cz-layout{grid-template-columns:minmax(300px,38%) 1fr;align-items:start;gap:24px;display:grid}.cz-preview{position:sticky;top:20px}.cz-preview-frame{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:20px}.cz-preview-stage{border-radius:var(--r-md);background:linear-gradient(#faf9f8,#f2f1ef);place-items:center;min-height:288px;padding:16px;display:grid;overflow:hidden}.cz-preview-caption{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.cz-panel{flex-direction:column;gap:10px;max-height:calc(100vh - 256px);padding-right:4px;display:flex;overflow-y:auto}.cz-cat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 18px 18px}.cz-cat-head{text-align:left;background:0 0;border:0;align-items:center;gap:10px;width:100%;padding:0;display:flex}.cz-cat-head h3{font-family:var(--font-display);margin:0;font-size:15px;font-weight:500}.cz-cat-head .cz-cat-val{color:var(--muted);margin-left:auto;font-size:12.5px}.cz-cat-body{margin-top:14px}.cz-sub-label{color:var(--muted);margin:16px 0 8px;font-size:12.5px}.cz-grid{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:10px;display:grid}.cz-swatch{aspect-ratio:1;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);cursor:pointer;transition:transform .14s var(--ease), box-shadow .14s var(--ease), border-color .14s var(--ease);place-items:center;padding:0;display:grid;position:relative;overflow:hidden}.cz-swatch:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.cz-swatch[aria-checked=true]{border:2px solid var(--accent);box-shadow:var(--shadow-sm)}.cz-swatch>svg,.cz-swatch>span,.cz-swatch>.cz-fill{width:100%;height:100%;display:block}.cz-swatch .cz-tick{background:var(--accent);border-radius:50%;place-items:center;width:16px;height:16px;display:none;position:absolute;top:3px;right:3px}.cz-swatch[aria-checked=true] .cz-tick{display:grid}.cz-swatch .cz-tick svg{width:10px;height:10px}.cz-swatch .cz-dash{background:var(--muted);border-radius:2px;width:22px;height:2px}.cz-dot-row{flex-wrap:wrap;gap:8px;display:flex}.cz-dot{border:1px solid var(--line);cursor:pointer;width:34px;height:34px;transition:transform .14s var(--ease), box-shadow .14s var(--ease);border-radius:50%;padding:0;position:relative;overflow:hidden}.cz-dot>svg{width:100%;height:100%;display:block}.cz-dot:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.cz-dot[aria-checked=true]{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--accent)}.cz-dot .cz-tick{place-items:center;display:none;position:absolute;inset:0}.cz-dot[aria-checked=true] .cz-tick{display:grid}.cz-dot .cz-tick svg{width:13px;height:13px}.cz-mode{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-pill);gap:4px;margin-bottom:12px;padding:4px;display:flex}.cz-mode button{border-radius:var(--r-pill);color:var(--muted);cursor:pointer;min-height:40px;transition:background .2s var(--ease), color .2s var(--ease), box-shadow .2s var(--ease);background:0 0;border:0;flex:1;padding:9px 14px;font-size:13.5px;font-weight:700}.cz-mode button:hover[aria-checked=false]{color:var(--ink)}.cz-mode button[aria-checked=true]{background:var(--accent);color:#fff;box-shadow:var(--shadow-glow)}.cz-mini{border:1px solid var(--line);border-radius:var(--r-md);grid-template-rows:32px 1fr;grid-template-columns:60px 1fr;width:100%;max-width:320px;height:240px;display:grid;overflow:hidden}.cz-mini-top{background:var(--surface);border-bottom:1px solid var(--line);grid-column:1/-1;align-items:center;gap:6px;padding:0 10px;display:flex}.cz-mini-top .cz-mini-b{background:var(--line);border-radius:4px;width:44px;height:8px}.cz-mini-side{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:5px;padding:8px 6px;display:flex}.cz-mini-side i{background:var(--line);border-radius:5px;height:9px;display:block}.cz-mini-side i.on{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}.cz-mini-body{background-color:var(--paper);flex-direction:column;gap:9px;padding:12px;display:flex;overflow:hidden}[data-shell=student][data-bg=shell-mist] .cz-mini-body{background-color:#f4f6fb;background-image:linear-gradient(#f4f6fb,#eef1f8)}[data-shell=student][data-bg=shell-dawn] .cz-mini-body{background-color:#faf4f2;background-image:radial-gradient(120% 90% at 85% 0,#fbe9e4 0%,#0000 60%)}[data-shell=student][data-bg=shell-mint] .cz-mini-body{background-color:#f1f8f4;background-image:radial-gradient(110% 90% at 10% 100%,#e3f3ea 0%,#0000 62%)}[data-shell=student][data-bg=shell-grid] .cz-mini-body{background-color:#f6f5f3;background-image:linear-gradient(#16151f14 1px,#0000 1px),linear-gradient(90deg,#16151f14 1px,#0000 1px);background-repeat:repeat;background-size:16px 16px}[data-shell=student][data-bg=shell-dots] .cz-mini-body{background-color:#f7f6f3;background-image:radial-gradient(#16151f29 1.5px,#0000 1.6px);background-repeat:repeat;background-size:13px 13px}[data-shell=student][data-bg=shell-aurora] .cz-mini-body{background-color:#f5f4fb;background-image:radial-gradient(60% 55% at 8% 6%, color-mix(in srgb, var(--accent) 16%, transparent) 0%, transparent 70%), radial-gradient(60% 55% at 95% 92%, #ff508024 0%, transparent 70%)}.cz-mini-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:10px;padding:9px}.cz-mini-card .t{background:#e9e7ec;border-radius:4px;width:62%;height:8px;margin-bottom:6px}.cz-mini-card .l{background:#f0eef2;border-radius:3px;height:6px;margin-bottom:4px}.cz-mini-card .l.short{width:48%}.cz-mini-row{align-items:center;gap:7px;margin-top:2px;display:flex}.cz-mini-btn{background:var(--accent);color:#fff;border-radius:var(--r-pill);border:0;padding:5px 11px;font-size:9.5px;font-weight:700}.cz-mini-chip{background:var(--accent-soft);color:var(--accent-press);border-radius:var(--r-pill);padding:4px 8px;font-size:9px;font-weight:700}.cz-mini-ring{background:conic-gradient(var(--accent) 0 68%, var(--line) 68% 100%);border-radius:50%;place-items:center;width:26px;height:26px;margin-left:auto;display:grid}.cz-mini-ring:after{content:"";background:var(--surface);border-radius:50%;width:18px;height:18px}.cz-fan{width:220px;height:200px;position:relative}.cz-fan .cz-fan-card{width:110px;height:155px;box-shadow:var(--shadow-md);position:absolute;top:20px;left:55px}.cz-fan .cz-fan-card:first-child{transform:rotate(-13deg)translate(-32px,6px)}.cz-fan .cz-fan-card:nth-child(3){transform:rotate(13deg)translate(32px,6px)}.cz-mascot-scene{border-radius:var(--r-lg);border:1px solid var(--line);background:radial-gradient(80% 80% at 50% 30%,#fff,#f1f0ee);place-items:center;width:236px;height:236px;display:grid;position:relative;overflow:hidden}.cz-mascot-eye{z-index:1;position:relative}.cz-mascot-lid{transform-origin:100px 100px;animation:4.2s infinite cz-blink}@keyframes cz-blink{0%,92%,to{opacity:0}95%,97%{opacity:1}}@media (prefers-reduced-motion:reduce){.cz-mascot-lid{animation:none}}.cz-mascot-ov{pointer-events:none;line-height:0;position:absolute}.cz-mascot-ov svg{max-width:100%;height:auto}.cz-mascot-ov--top,.cz-mascot-ov--band{max-width:33%;bottom:76%;left:50%;transform:translate(-50%)}.cz-mascot-ov--behind{z-index:0;max-width:41%;bottom:78%;left:50%;transform:translate(-50%)}.cz-mascot-ov--bottom{bottom:20px;left:50%;transform:translate(-50%)}.cz-mascot-bg{z-index:0;pointer-events:none;line-height:0;position:absolute;inset:0}.cz-mascot-bg svg{width:100%;height:100%;display:block}.cz-mascot-iris-alt{animation:8.4s infinite cz-iris-swap}@keyframes cz-iris-swap{0%,47%{opacity:0}48%,97%{opacity:1}98%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.cz-mascot-iris-alt{opacity:0;animation:none}}.cz-scene-thumb{background:var(--paper);padding:0;display:block;overflow:hidden}.cz-scene-thumb svg{width:100%;height:100%;display:block}.cz-acc-thumb{background:var(--paper);place-items:center;padding:16%;display:grid}.cz-acc-thumb svg{width:100%;height:100%;display:block}.cz-pop{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);width:250px;box-shadow:var(--shadow-pop);z-index:40;padding:14px;position:absolute;top:calc(100% + 10px);right:0}.cz-pop p{margin:0 0 12px;font-size:13.5px;line-height:1.45}.cz-pop-row{justify-content:flex-end;gap:8px;display:flex}.gp-topbar-me{border-radius:var(--r-pill);cursor:pointer;background:0 0;border:0;padding:2px;display:inline-flex}.gp-topbar-me:hover{background:var(--accent-soft)}.cz-skeleton{border-radius:var(--r-md);background:linear-gradient(90deg,#eeecf0,#f7f6f8,#eeecf0) 0 0/200% 100%;height:288px;animation:1.2s linear infinite cz-shim}@keyframes cz-shim{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.cz-skeleton{animation:none}}@media (width<=900px){.cz-layout{grid-template-columns:minmax(0,1fr);gap:14px}.cz-preview{z-index:5;background:var(--paper);padding-bottom:8px;position:sticky;top:8px}.cz-preview-frame{padding:10px}.cz-preview-stage{height:150px;min-height:0;padding:8px}.cz-preview-stage>*{zoom:.62}.cz-preview-stage>.cz-mini{zoom:.5}.cz-preview-caption{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;margin-top:8px;overflow-x:auto}.cz-preview-caption::-webkit-scrollbar{display:none}.cz-preview-caption>*{flex:none}.cz-panel{max-height:none;padding-right:0;overflow-y:visible}.cz-head-bar .segmented-tabs{width:100%;display:flex}.cz-head{margin-bottom:0}.cz-head-bar{left:12px;right:12px;bottom:calc(24px + env(safe-area-inset-bottom));z-index:15;position:fixed}.cz-head-bar:before{content:"";height:calc(110px + env(safe-area-inset-bottom));background:linear-gradient(to top, color-mix(in srgb, var(--paper) 92%, transparent) 35%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:none;z-index:-1;position:fixed;bottom:0;left:0;right:0;-webkit-mask-image:linear-gradient(#0000,#000 55%);mask-image:linear-gradient(#0000,#000 55%)}.cz-head-bar .segmented-tabs{background:var(--surface);border:1px solid var(--line);box-shadow:0 2px 10px #16151f1a}.cz-head-bar .segmented-tabs button{flex:auto;min-width:0;min-height:40px;padding:8px 10px;font-size:13px}.cz-page{padding-bottom:calc(80px + env(safe-area-inset-bottom))}.cz-head-actions{margin-top:10px}.cz-head-actions .btn{min-height:38px;padding:8px 16px;font-size:13.5px}}@media (width>=600px) and (width<=900px){.cz-head-bar{pointer-events:none;justify-content:center}.cz-head-bar .segmented-tabs{pointer-events:auto;width:auto;display:inline-flex}.cz-head-bar .segmented-tabs button{flex:none;min-height:42px;padding:10px 20px;font-size:14px}}@media (width>=901px){.cz-head{margin-bottom:0}.cz-head-bar{left:210px;right:0;bottom:calc(24px + env(safe-area-inset-bottom));z-index:15;pointer-events:none;justify-content:center;position:fixed}.cz-head-bar:before{content:"";height:calc(110px + env(safe-area-inset-bottom));background:linear-gradient(to top, color-mix(in srgb, var(--paper) 92%, transparent) 35%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:-1;position:fixed;bottom:0;left:210px;right:0;-webkit-mask-image:linear-gradient(#0000,#000 55%);mask-image:linear-gradient(#0000,#000 55%)}.cz-head-bar .segmented-tabs{pointer-events:auto;background:var(--surface);border:1px solid var(--line);box-shadow:0 2px 10px #16151f1a}.cz-panel{max-height:calc(100vh - 186px);padding-bottom:calc(100px + env(safe-area-inset-bottom))}}.cz-cb.cz-cb-badge-medal:after{filter:drop-shadow(var(--shadow-sm));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3CclipPath id='md'%3E%3Ccircle cx='50' cy='50' r='42'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg clip-path='url(%23md)'%3E%3Crect width='100' height='100' fill='%23fff'/%3E%3Ccircle cx='50' cy='50' r='28' fill='%23fc4878' stroke='%2316151e' stroke-width='4'/%3E%3Ccircle cx='50' cy='50' r='16' fill='none' stroke='%23fff' stroke-width='4'/%3E%3C/g%3E%3C/svg%3E");background-size:68% 68%}.cz-bg-shell-rings{background-color:#f6f5f3;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Ccircle cx='6' cy='6' r='3.5' stroke='%2316151e' stroke-opacity='.32' stroke-width='1.4' fill='none'/%3E%3C/svg%3E");background-size:12px 12px}[data-shell=student][data-bg=shell-rings] .cz-mini-body{background-color:#f6f5f3;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='4.5' stroke='%2316151e' stroke-opacity='.16' stroke-width='1.4' fill='none'/%3E%3C/svg%3E");background-size:16px 16px}.cz-swatch.is-locked,.cz-dot.is-locked{cursor:help;position:relative}.cz-swatch.is-locked>:first-child,.cz-dot.is-locked>:first-child{opacity:.4;filter:grayscale(.5)}.cz-dot.is-locked{opacity:.55}.is-locked>.cz-lock{background:var(--surface);width:20px;height:20px;color:var(--ink);box-shadow:var(--shadow-sm);border-radius:50%;place-items:center;display:grid;position:absolute;top:4px;right:4px}.is-locked>.cz-lock svg{width:12px;height:12px}.cz-dot.is-locked>.cz-lock{width:18px;height:18px;top:50%;left:50%;right:auto;transform:translate(-50%,-50%)}.cz-swatch.is-locked>.cz-lock-bar,.is-locked>.cz-lock-bar{border-radius:var(--r-pill);background:linear-gradient(to right, var(--tongue) var(--cz-lock-p), var(--line) var(--cz-lock-p));width:auto;height:4px;margin:0;position:absolute;bottom:6px;left:8px;right:8px}.cz-dot.is-locked>.cz-lock-bar{display:none}.cz-bg-shell-lilac{background:radial-gradient(120% 120% at 12% 0,#e9e1f7,#f6f3fb 70%)}[data-shell=student][data-bg=shell-lilac] .cz-mini-body{background-color:#f6f3fb;background-image:radial-gradient(120% 90% at 12% 0,#e9e1f7 0%,#0000 62%)}.cz-bg-shell-sky{background:radial-gradient(120% 120% at 90% 0,#dcebf9,#f2f7fc 70%)}[data-shell=student][data-bg=shell-sky] .cz-mini-body{background-color:#f2f7fc;background-image:radial-gradient(120% 90% at 90% 0,#dcebf9 0%,#0000 62%)}.cz-swatch.is-peek,.cz-dot.is-peek{outline:2px dashed var(--accent);outline-offset:2px}.cz-peek{border-radius:var(--r-sm);background:var(--accent-soft);animation:cz-peek-in .4s var(--ease) both;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin-top:10px;padding:10px 12px;display:flex}.cz-peek-text{flex-direction:column;gap:2px;min-width:0;font-size:13px;line-height:1.35;display:flex}.cz-peek-text span{color:var(--muted)}.cz-peek-actions{gap:4px;display:flex}@keyframes cz-peek-in{0%{opacity:0;transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){.cz-peek{animation:none}}.cz-reward-preview .cz-preview-stage{border-radius:var(--r-md);background:var(--paper);place-items:center;min-height:280px;padding:20px;display:grid}.cz-swatch.is-flash,.cz-dot.is-flash{animation:cz-flash 1.8s var(--ease) both}@keyframes cz-flash{0%,60%{box-shadow:0 0 0 4px var(--accent-soft), 0 0 0 6px var(--accent)}to{box-shadow:none}}@media (prefers-reduced-motion:reduce){.cz-swatch.is-flash,.cz-dot.is-flash{animation:none}}.cz-cb.cz-cb-badge-moon:before{content:"";aspect-ratio:1;background-color:var(--surface);width:34%;box-shadow:var(--shadow-sm);border-radius:50%;margin:auto;position:absolute;inset:0}.cz-cb.cz-cb-badge-moon:after{content:"";aspect-ratio:1;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M62 14a38 38 0 1 0 24 62A32 32 0 0 1 62 14z' fill='%238e4ec6'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:62% 62%;width:34%;margin:auto;position:absolute;inset:0}.cz-badge.cz-badge-badge-moon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='46' fill='%23fff'/%3E%3Cg transform='translate(50 50) scale(.62) translate(-50 -50)'%3E%3Cpath d='M62 14a38 38 0 1 0 24 62A32 32 0 0 1 62 14z' fill='%238e4ec6'/%3E%3C/g%3E%3C/svg%3E");background-size:62%}.cz-cb.cz-cb-badge-bolt:before{content:"";aspect-ratio:1;background-color:var(--surface);width:34%;box-shadow:var(--shadow-sm);border-radius:50%;margin:auto;position:absolute;inset:0}.cz-cb.cz-cb-badge-bolt:after{content:"";aspect-ratio:1;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M56 8 22 56h24l-6 36 38-52H54z' fill='%23d9a441' stroke='%2316151e' stroke-width='3' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:62% 62%;width:34%;margin:auto;position:absolute;inset:0}.cz-badge.cz-badge-badge-bolt{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='46' fill='%23fff'/%3E%3Cg transform='translate(50 50) scale(.62) translate(-50 -50)'%3E%3Cpath d='M56 8 22 56h24l-6 36 38-52H54z' fill='%23d9a441' stroke='%2316151e' stroke-width='3' stroke-linejoin='round'/%3E%3C/g%3E%3C/svg%3E");background-size:62%}.cz-cb.cz-cb-badge-leaf:before{content:"";aspect-ratio:1;background-color:var(--surface);width:34%;box-shadow:var(--shadow-sm);border-radius:50%;margin:auto;position:absolute;inset:0}.cz-cb.cz-cb-badge-leaf:after{content:"";aspect-ratio:1;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M20 80C18 40 44 16 84 14c2 40-20 66-58 68' fill='%232bb673' stroke='%2316151e' stroke-width='3' stroke-linejoin='round'/%3E%3Cpath d='M22 80C38 58 54 44 72 30' fill='none' stroke='%2316151e' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:62% 62%;width:34%;margin:auto;position:absolute;inset:0}.cz-badge.cz-badge-badge-leaf{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='46' fill='%23fff'/%3E%3Cg transform='translate(50 50) scale(.62) translate(-50 -50)'%3E%3Cpath d='M20 80C18 40 44 16 84 14c2 40-20 66-58 68' fill='%232bb673' stroke='%2316151e' stroke-width='3' stroke-linejoin='round'/%3E%3Cpath d='M22 80C38 58 54 44 72 30' fill='none' stroke='%2316151e' stroke-width='3' stroke-linecap='round'/%3E%3C/g%3E%3C/svg%3E");background-size:62%}.cz-cb.cz-cb-badge-diamond:before{content:"";aspect-ratio:1;background-color:var(--surface);width:34%;box-shadow:var(--shadow-sm);border-radius:50%;margin:auto;position:absolute;inset:0}.cz-cb.cz-cb-badge-diamond:after{content:"";aspect-ratio:1;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M50 10 86 40 50 90 14 40z' fill='%235850ea' stroke='%2316151e' stroke-width='3' stroke-linejoin='round'/%3E%3Cpath d='M14 40h72M36 40l14-30 14 30-14 50z' fill='none' stroke='%23fff' stroke-width='3' stroke-linejoin='round' opacity='.7'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:62% 62%;width:34%;margin:auto;position:absolute;inset:0}.cz-badge.cz-badge-badge-diamond{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='46' fill='%23fff'/%3E%3Cg transform='translate(50 50) scale(.62) translate(-50 -50)'%3E%3Cpath d='M50 10 86 40 50 90 14 40z' fill='%235850ea' stroke='%2316151e' stroke-width='3' stroke-linejoin='round'/%3E%3Cpath d='M14 40h72M36 40l14-30 14 30-14 50z' fill='none' stroke='%23fff' stroke-width='3' stroke-linejoin='round' opacity='.7'/%3E%3C/g%3E%3C/svg%3E");background-size:62%}.cz-cb.cz-cb-badge-flame:before{content:"";aspect-ratio:1;background-color:var(--surface);width:34%;box-shadow:var(--shadow-sm);border-radius:50%;margin:auto;position:absolute;inset:0}.cz-cb.cz-cb-badge-flame:after{content:"";aspect-ratio:1;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M52 8C58 30 80 40 80 62a30 30 0 0 1-60 0c0-14 8-22 14-30 2 10 8 14 12 14-4-14 0-28 6-38z' fill='%23fc4878' stroke='%2316151e' stroke-width='3' stroke-linejoin='round'/%3E%3Cpath d='M50 90c-10 0-16-7-16-15 0-9 8-14 12-22 2 6 6 8 8 8 4 4 12 8 12 14 0 8-6 15-16 15z' fill='%23fff1d6'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:62% 62%;width:34%;margin:auto;position:absolute;inset:0}.cz-badge.cz-badge-badge-flame{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='46' fill='%23fff'/%3E%3Cg transform='translate(50 50) scale(.62) translate(-50 -50)'%3E%3Cpath d='M52 8C58 30 80 40 80 62a30 30 0 0 1-60 0c0-14 8-22 14-30 2 10 8 14 12 14-4-14 0-28 6-38z' fill='%23fc4878' stroke='%2316151e' stroke-width='3' stroke-linejoin='round'/%3E%3Cpath d='M50 90c-10 0-16-7-16-15 0-9 8-14 12-22 2 6 6 8 8 8 4 4 12 8 12 14 0 8-6 15-16 15z' fill='%23fff1d6'/%3E%3C/g%3E%3C/svg%3E");background-size:62%}.cz-cb.cz-cb-back-diamond{background-color:var(--cb-tint-soft,var(--accent-soft));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='28' viewBox='0 0 20 28'%3E%3Cpath d='M10 2 18 14 10 26 2 14z' fill='none' stroke='%2316151e' stroke-opacity='.2' stroke-width='1.6'/%3E%3C/svg%3E");background-repeat:repeat;background-size:20px 28px}.cz-cb.cz-cb-back-scale{background-color:var(--cb-tint-soft,var(--accent-soft));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='14' viewBox='0 0 24 14'%3E%3Cpath d='M0 14a12 12 0 0 1 24 0M-12 7a12 12 0 0 1 24 0M12 7a12 12 0 0 1 24 0' fill='none' stroke='%2316151e' stroke-opacity='.18' stroke-width='1.6'/%3E%3C/svg%3E");background-repeat:repeat;background-size:24px 14px}.cz-cb.cz-cb-back-plus{background-color:var(--cb-tint-soft,var(--accent-soft));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22'%3E%3Cpath d='M11 6v10M6 11h10' stroke='%2316151e' stroke-opacity='.2' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:repeat;background-size:22px 22px}.cz-cb.cz-cb-cbcolor-rose{--cb-tint:#be185d;--cb-tint-soft:#fce7f3}.cz-cb.cz-cb-cbcolor-navy{--cb-tint:#1e3a8a;--cb-tint-soft:#e3e9f8}.cz-cb.cz-cb-cbcolor-gold{--cb-tint:#a16207;--cb-tint-soft:#fef3c7}.cz-cb.cz-cb-cbcolor-cocoa{--cb-tint:#7c4a2d;--cb-tint-soft:#f5ebe4}.cz-bg-shell-peach,[data-shell=student][data-bg=shell-peach] .cz-mini-body{background-color:#fcf5f0;background-image:radial-gradient(120% 90% at 85% 0,#fde3d3 0%,#0000 62%)}.cz-bg-shell-sage,[data-shell=student][data-bg=shell-sage] .cz-mini-body{background-color:#f3f6f1;background-image:radial-gradient(120% 90% at 10% 100%,#dfe9d9 0%,#0000 62%)}.cz-bg-shell-diag,[data-shell=student][data-bg=shell-diag] .cz-mini-body{background-color:#f6f5f3;background-image:repeating-linear-gradient(135deg,#16151f09 0 2px,#0000 2px 14px)}.cz-bg-shell-twilight,[data-shell=student][data-bg=shell-twilight] .cz-mini-body{background-color:#f3f2f8;background-image:linear-gradient(160deg,#e6e2f3 0%,#0000 60%),radial-gradient(90% 70% at 95% 100%,#dfe6f4 0%,#0000 65%)}.cz-bg-shell-honey,[data-shell=student][data-bg=shell-honey] .cz-mini-body{background-color:#fbf6ea;background-image:radial-gradient(110% 90% at 12% 0,#f6e4b8 0%,#0000 60%)}[data-shell=student][data-accent=accent-ocean]{--accent:#0e7490;--accent-press:#0b5f77;--accent-soft:#dff1f6}[data-shell=student][data-accent=accent-emerald]{--accent:#087f52;--accent-press:#066a44;--accent-soft:#e3f5ec}[data-shell=student][data-accent=accent-plum]{--accent:#8e4ec6;--accent-press:#7a3fae;--accent-soft:#f2eafb}[data-shell=student][data-accent=accent-sunset]{--accent:#c2560c;--accent-press:#a5490a;--accent-soft:#fdecdd}[data-shell=student][data-accent=accent-raspberry]{--accent:#c42b55;--accent-press:#a82248;--accent-soft:#fce8ee}[data-shell=student][data-accent=accent-graphite]{--accent:#3f3d56;--accent-press:#322f45;--accent-soft:#ececef}[data-shell=student][data-accent=accent-teal]{--accent:#0f766e;--accent-press:#0c5f58;--accent-soft:#dcf3f0}[data-shell=student][data-accent=accent-sky]{--accent:#1d6fd1;--accent-press:#1859aa;--accent-soft:#e0edfb}[data-shell=student]{--shadow-glow:0 6px 18px color-mix(in srgb, var(--accent) 32%, transparent)}[data-shell=student][data-bg=shell-mist] .app-main{background-color:#f4f6fb;background-image:linear-gradient(#f4f6fb,#eef1f8)}[data-shell=student][data-bg=shell-dawn] .app-main{background-color:#faf4f2;background-image:radial-gradient(120% 90% at 85% 0,#fbe9e4 0%,#0000 60%)}[data-shell=student][data-bg=shell-mint] .app-main{background-color:#f1f8f4;background-image:radial-gradient(110% 90% at 10% 100%,#e3f3ea 0%,#0000 62%)}[data-shell=student][data-bg=shell-sand] .app-main{background-color:#faf6f0;background-image:radial-gradient(120% 90% at 90% 100%,#f3e9d8 0%,#0000 60%)}[data-shell=student][data-bg=shell-breeze] .app-main{background-color:#f2f8f9;background-image:linear-gradient(135deg,#eaf5f7,#f2f8f9 65%)}[data-shell=student][data-bg=shell-aurora] .app-main{background-color:#f5f4fb;background-image:radial-gradient(60% 55% at 8% 6%, color-mix(in srgb, var(--accent) 12%, transparent) 0%, transparent 70%), radial-gradient(60% 55% at 95% 92%, #ff50801a 0%, transparent 70%)}[data-shell=student][data-bg=shell-grid] .app-main{background-color:#f6f5f3;background-image:linear-gradient(#16151f0a 1px,#0000 1px),linear-gradient(90deg,#16151f0a 1px,#0000 1px);background-size:32px 32px}[data-shell=student][data-bg=shell-dots] .app-main{background-color:#f7f6f3;background-image:radial-gradient(#16151f0d 1.6px,#0000 1.7px);background-size:24px 24px}[data-shell=student][data-bg=shell-rings] .app-main{background-color:#f6f5f3;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='7' stroke='%2316151e' stroke-opacity='.07' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-size:32px 32px}[data-shell=student][data-bg=shell-lilac] .app-main{background-color:#f6f3fb;background-image:radial-gradient(120% 90% at 12% 0,#e9e1f7 0%,#0000 62%)}[data-shell=student][data-bg=shell-sky] .app-main{background-color:#f2f7fc;background-image:radial-gradient(120% 90% at 90% 0,#dcebf9 0%,#0000 62%)}[data-shell=student][data-bg=shell-cross] .app-main{background-color:#f6f5f3;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M16,8 V24 M8,16 H24' stroke='%2316151e' stroke-opacity='.07' stroke-width='2' stroke-linecap='round' fill='none'/%3E%3C/svg%3E");background-repeat:repeat;background-size:32px 32px}[data-shell=student][data-accent=accent-rose]{--accent:#be185d;--accent-press:#9d174d;--accent-soft:#fce7f3}[data-shell=student][data-accent=accent-navy]{--accent:#1e3a8a;--accent-press:#172e6e;--accent-soft:#e3e9f8}[data-shell=student][data-accent=accent-gold]{--accent:#a16207;--accent-press:#854d0e;--accent-soft:#fef3c7}[data-shell=student][data-accent=accent-cocoa]{--accent:#7c4a2d;--accent-press:#653b23;--accent-soft:#f5ebe4}[data-shell=student][data-bg=shell-peach] .app-main{background-color:#fcf5f0;background-image:radial-gradient(120% 90% at 85% 0,#fde3d3 0%,#0000 62%)}[data-shell=student][data-bg=shell-sage] .app-main{background-color:#f3f6f1;background-image:radial-gradient(120% 90% at 10% 100%,#dfe9d9 0%,#0000 62%)}[data-shell=student][data-bg=shell-diag] .app-main{background-color:#f6f5f3;background-image:repeating-linear-gradient(135deg,#16151f09 0 2px,#0000 2px 14px)}[data-shell=student][data-bg=shell-twilight] .app-main{background-color:#f3f2f8;background-image:linear-gradient(160deg,#e6e2f3 0%,#0000 60%),radial-gradient(90% 70% at 95% 100%,#dfe6f4 0%,#0000 65%)}[data-shell=student][data-bg=shell-honey] .app-main{background-color:#fbf6ea;background-image:radial-gradient(110% 90% at 12% 0,#f6e4b8 0%,#0000 60%)}.ui-search{align-items:center;width:100%;display:flex;position:relative}.ui-search>svg{width:18px;height:18px;color:var(--muted);pointer-events:none;position:absolute;left:16px}.ui-search input{border:1.5px solid var(--line);border-radius:var(--r-pill);background:var(--surface);width:100%;min-height:44px;font-family:var(--font-body);color:var(--ink);appearance:none;padding:12px 18px 12px 44px;font-size:14px}.ui-search input::placeholder{color:var(--muted)}.ui-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.ui-search input::-webkit-search-cancel-button{appearance:none}.ui-search--sm>svg{width:16px;height:16px;left:14px}.ui-search--sm input{min-height:40px;padding:10px 16px 10px 40px}.vocab-add-popover{transform-origin:bottom;z-index:200;opacity:1;transition:opacity .16s var(--ease), transform .16s var(--ease);position:fixed;transform:translate(-50%,calc(-100% - 10px))scale(1)}@starting-style{.vocab-add-popover{opacity:0;transform:translate(-50%,calc(-100% - 4px))scale(.92)}}.vocab-add-popover.closing{opacity:0;transition-duration:.12s;transform:translate(-50%,calc(-100% - 4px))scale(.92)}.vocab-add-popover-btn{font-family:var(--font-body);background:var(--ink);color:#fff;border-radius:var(--r-pill);cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-pop);border:none;min-height:38px;padding:9px 14px;font-size:12.5px;font-weight:700}.vocab-add-popover-btn:active:not(:disabled){transform:translateY(1px)scale(.99)}.vocab-add-popover-btn:disabled{cursor:default;opacity:.85}@keyframes vocab-add-popover-confirm{0%{transform:scale(1)}45%{transform:scale(1.08)}to{transform:scale(1)}}.vocab-add-popover-btn.saved{color:var(--success);animation:vocab-add-popover-confirm .26s var(--ease)}.wave-player{background:var(--paper);border-radius:var(--r-pill);box-sizing:border-box;align-items:center;gap:10px;width:100%;max-width:300px;padding:4px 12px 4px 4px;display:flex}.wave-player-play{background:var(--accent);color:#fff;cursor:pointer;width:34px;height:34px;box-shadow:var(--shadow-glow);border:0;border-radius:50%;flex:none;place-items:center;display:grid}.wave-player-play:hover{background:var(--accent-press)}.wave-player-play:disabled{background:var(--line);box-shadow:none;cursor:default}.wave-player-play svg{width:13px;height:13px}.wave-player-wave{flex:1;justify-content:space-between;align-items:center;min-width:48px;height:20px;display:flex;overflow:hidden}.wave-player-wave i{background:var(--line);border-radius:2px;flex:none;width:3px}.wave-player-wave i.played{background:var(--accent)}.wave-player-dur{font-family:var(--font-mono);color:var(--muted);flex:none;font-size:12px}@media (pointer:coarse){.wave-player-play{width:44px;height:44px}}.msgr-page{flex:1;grid-template-rows:100%;gap:16px;height:100%;min-height:480px;padding:20px;display:grid}.msgr-page-student{grid-template-columns:minmax(0,1fr)}.msgr-page-student.msgr-has-rail{grid-template-columns:minmax(0,1fr) 292px}.msgr-page-teacher{grid-template-columns:minmax(0,1fr)}.msgr-page-teacher.msgr-has-rail{grid-template-columns:minmax(0,1fr) 292px}.msgr-conversation{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);height:100%;min-height:0;display:flex;overflow:hidden}.msgr-has-rail .msgr-hw{display:none}.msgr-icon-btn{cursor:pointer;width:38px;height:38px;color:var(--muted);background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.msgr-icon-btn:hover{background:var(--paper);color:var(--ink)}.msgr-icon-btn svg{width:19px;height:19px}.msgr-back,.msgr-page-teacher .msgr-chat-top{display:none}.msgr-roster{border-right:1px solid var(--line);background:var(--surface);flex-direction:column;flex:none;width:300px;min-height:0;display:flex}.msgr-roster-top{border-bottom:1px solid var(--line);padding:16px 14px 12px}.msgr-roster-top h3{margin-bottom:12px;font-size:16px;font-weight:700}.msgr-roster-top .ui-search{margin-bottom:10px}.msgr-filters{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.msgr-chip{font-family:var(--font-body);border-radius:var(--r-pill);border:1.5px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;padding:6px 11px;font-size:12px;font-weight:700;transition:all .15s}.msgr-chip:hover{border-color:var(--ink);color:var(--ink)}.msgr-chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.msgr-roster-list{flex-direction:column;flex:1;gap:2px;min-height:0;margin:8px 0;padding:0 8px;display:flex;overflow-y:auto}.msgr-roster-empty{color:var(--muted);text-align:center;padding:24px 12px;font-size:13px}.msgr-rost{border-radius:var(--r-sm);cursor:pointer;text-align:left;background:0 0;border:none;align-items:flex-start;gap:10px;width:100%;padding:10px;transition:background .15s;display:flex}.msgr-rost:hover{background:var(--paper)}.msgr-rost[aria-current=true]{background:var(--accent-soft)}.msgr-rost-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.msgr-rost-top{align-items:baseline;gap:8px;display:flex}.msgr-rost-name{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:700;overflow:hidden}.msgr-rost-time{color:var(--muted);flex:none;margin-left:auto;font-size:11px}.msgr-rost-prev{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.msgr-rost-prev>span:first-child{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.msgr-unread{color:#fff;background:var(--tongue);border-radius:var(--r-pill);flex:none;margin-left:auto;padding:1px 7px;font-size:11px;font-weight:800}.msgr-roster-foot{border-top:1px solid var(--line);color:var(--muted);flex:none;margin-top:auto;padding:10px 14px;font-size:11.5px}.msgr-chat{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper);flex-direction:column;flex:1;min-width:0;height:100%;min-height:0;display:flex;overflow:hidden}.msgr-conversation .msgr-chat{border:none;border-radius:0}.msgr-chat-top{background:var(--surface);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:11px;padding:13px 18px;display:flex}.msgr-who{min-width:0}.msgr-who-name{font-size:14.5px;font-weight:700}.msgr-who-sub{color:var(--muted);font-size:12px}.msgr-hw{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);box-shadow:var(--shadow-sm);flex:none;align-items:center;gap:10px;margin:12px 18px 0;padding:7px 8px 7px 14px;font-size:12.5px;display:flex}.msgr-hw-dots{flex:none;gap:4px;display:flex}.msgr-hw-dots i{background:var(--line);border-radius:50%;width:7px;height:7px;display:block}.msgr-hw-dots i.on{background:var(--accent)}.msgr-hw-txt{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.msgr-hw-txt b{color:var(--ink);font-weight:700}.msgr-hw-act{color:var(--accent);background:var(--accent-soft);border-radius:var(--r-pill);cursor:pointer;border:none;flex:none;margin-left:auto;padding:6px 13px;font-size:12px;font-weight:700;transition:background .15s}.msgr-hw-act:hover{background:#e1dffd}.msgr-thread{flex-direction:column;flex:1;gap:10px;min-height:0;padding:16px 18px 6px;display:flex;overflow-y:auto}.msgr-empty-hint{color:var(--muted);margin:auto;font-size:13.5px}.msgr-day{color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);align-self:center;margin:6px 0;padding:4px 13px;font-size:11px;font-weight:700}.msgr-row{align-items:flex-end;gap:9px;max-width:76%;display:flex}.msgr-row.out{flex-direction:row-reverse;align-self:flex-end}.msgr-row.in{align-self:flex-start}.msgr-bubble{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);border-bottom-left-radius:6px;min-width:0;padding:11px 15px;font-size:16px}.msgr-row.out .msgr-bubble{background:var(--accent);border-color:var(--accent);color:#fff;border-bottom-left-radius:var(--r-md);border-bottom-right-radius:6px;box-shadow:0 6px 18px #5850ea2e}.msgr-text{white-space:pre-wrap;word-break:break-word}.msgr-link{color:inherit;word-break:break-all;text-decoration:underline}.msgr-stamp{color:var(--muted);justify-content:flex-end;align-items:center;gap:6px;margin-top:4px;font-size:10.5px;display:flex}.msgr-row.out .msgr-stamp{color:#ffffffb8}.msgr-edited{opacity:.8;font-style:italic}.msgr-msg-actions{opacity:0;flex:none;align-self:center;align-items:center;gap:2px;transition:opacity .15s;display:flex}.msgr-row:hover .msgr-msg-actions,.msgr-row:focus-within .msgr-msg-actions{opacity:1}@media (hover:none){.msgr-msg-actions{opacity:1}}.msgr-msg-actions .msgr-icon-btn{width:28px;height:28px}.msgr-msg-actions .msgr-icon-btn svg{width:15px;height:15px}.msgr-edit{align-items:flex-end;gap:6px;display:flex}.msgr-edit-input{border-radius:var(--r-sm,6px);min-width:0;font-family:var(--font-body);color:inherit;resize:none;background:#ffffff26;border:none;outline:none;flex:1;padding:4px 8px;font-size:16px;line-height:1.35;display:block}.msgr-row.in .msgr-edit-input{background:var(--paper)}.msgr-edit-actions{flex:none;gap:2px;display:flex}.msgr-edit-actions .msgr-icon-btn{width:28px;height:28px;color:inherit}.msgr-edit-actions .msgr-icon-btn svg{width:15px;height:15px}.msgr-audiofile{flex-direction:column;gap:8px;display:flex}.msgr-file{align-items:center;gap:11px;min-width:220px;display:flex}.msgr-file-ic{border-radius:var(--r-sm);background:var(--accent-soft);width:34px;height:34px;color:var(--accent);flex:none;justify-content:center;align-items:center;font-size:10.5px;font-weight:800;display:flex}.msgr-row.out .msgr-file-ic{color:#fff;background:#ffffff2e}.msgr-file-meta{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;gap:2px;padding:0;display:flex}.msgr-file-name{word-break:break-word;font-size:13.5px;font-weight:700}.msgr-file-size{opacity:.75;font-size:11.5px}.msgr-file-dl{color:inherit;flex:none;width:32px;height:32px;margin-left:auto}.msgr-file-dl svg{width:17px;height:17px}.msgr-shot,.msgr-album-cell{font:inherit;cursor:zoom-in;background:0 0;padding:0}.msgr-shot{border-radius:var(--r-sm);border:1px solid var(--line);width:220px;display:block;overflow:hidden}.msgr-shot img{object-fit:cover;width:100%;max-height:220px;display:block}.msgr-shot-loading{background:var(--paper);height:120px}.msgr-album{border-radius:var(--r-sm);border:1px solid var(--line);grid-template-columns:repeat(6,1fr);gap:2px;width:260px;display:grid;overflow:hidden}.msgr-album-cell{aspect-ratio:1;border:0;height:auto;display:block}.msgr-album-cell img{object-fit:cover;width:100%;height:100%;display:block}.msgr-voice{align-items:center;gap:11px;min-width:210px;display:flex}.msgr-play{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.msgr-row.out .msgr-play{color:var(--accent);background:#fff}.msgr-play svg{width:14px;height:14px}.msgr-wave-track{background:#5850ea2e;border-radius:2px;flex:1;height:4px;overflow:hidden}.msgr-row.out .msgr-wave-track{background:#ffffff4d}.msgr-wave-fill{background:var(--accent);height:100%;display:block}.msgr-row.out .msgr-wave-fill{background:#fff}.msgr-voice-len{opacity:.8;flex:none;font-size:11.5px;font-weight:700}.msgr-composer-wrap{border-top:1px solid var(--line);background:var(--surface);flex:none;position:relative}.msgr-composer-error,.msgr-page-error{margin:8px 18px 0;font-size:12.5px}.msgr-composer{align-items:flex-end;gap:9px;padding:12px 16px;display:flex;position:relative}.msgr-attach-wrap{flex:none;position:relative}.msgr-attach-menu{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--shadow-pop);z-index:41;min-width:190px;padding:4px;position:absolute;bottom:50px;left:0}.msgr-attach-menu button{text-align:left;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:9px 11px;font-size:13.5px;font-weight:600;display:flex}.msgr-attach-menu button:hover{background:var(--accent-soft)}.msgr-attach-menu button:focus-visible{box-shadow:0 0 0 3px var(--accent-soft);outline:none}.msgr-attach-menu svg{width:17px;height:17px;color:var(--muted);flex:none}.msgr-field{background:var(--paper);border-radius:var(--r-md);border:1.5px solid #0000;flex:1;align-items:center;min-width:0;padding:11px 13px;display:flex}.msgr-field:focus-within{border-color:var(--accent);background:var(--surface)}.msgr-field input,.msgr-field textarea{width:100%;font-family:var(--font-body);color:var(--ink);background:0 0;border:none;outline:none;font-size:16px}.msgr-field textarea{resize:none;padding:0;line-height:1.35;display:block}.msgr-field-expand{display:none}.msgr-send{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;width:42px;height:42px;transition:background .15s;display:flex;box-shadow:0 6px 18px #5850ea47}.msgr-send:hover:not(:disabled){background:var(--accent-press)}.msgr-send:disabled{opacity:.5}.msgr-send svg{width:18px;height:18px}.msgr-recording{align-items:center;gap:10px;display:flex}.msgr-rec-dot{background:var(--error);border-radius:50%;flex:none;width:9px;height:9px;animation:1.1s infinite msgr-pulse}@keyframes msgr-pulse{0%,to{opacity:1}50%{opacity:.35}}.msgr-rec-time{font-family:var(--font-mono);font-size:13.5px;font-weight:700}.msgr-rec-hint{color:var(--muted);flex:1;font-size:13px}.msgr-empty-detail{color:var(--muted);text-align:center;flex:1;justify-content:center;align-items:center;padding:20px;display:flex}.msgr-rail{flex-direction:column;gap:12px;min-height:0;display:flex;overflow-y:auto}.msgr-rail-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);flex:none;padding:14px}.msgr-rail-card h4{letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-size:11px;font-weight:800}.msgr-rail-empty{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.msgr-rail-profile{flex-direction:column;align-items:center;gap:10px;padding:4px 0 2px;display:flex}.msgr-rail-chips{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.msgr-rail-chip{border-radius:var(--r-pill);background:var(--paper);color:var(--muted);padding:4px 10px;font-size:11.5px;font-weight:700}.msgr-rail-chip.lvl{background:var(--success-soft);color:var(--success-groove)}.msgr-rail-chip.streak{background:var(--streak-bg);color:var(--streak-fg)}.msgr-rail-row{border-top:1px solid var(--line);align-items:center;gap:10px;padding:8px 0;display:flex}.msgr-rail-row-btn{text-align:left;border:none;border-top:1px solid var(--line);width:100%;font-family:var(--font-body);cursor:pointer;border-radius:var(--r-sm);background:0 0;transition:background .15s}.msgr-rail-row-btn:hover{background:var(--accent-soft)}.msgr-rail-row-btn:first-child{border-top:none}.msgr-rail-row:first-of-type{border-top:none;padding-top:0}.msgr-rail-ic{border-radius:var(--r-sm);background:var(--accent-soft);width:30px;height:30px;color:var(--accent);flex:none;place-items:center;display:grid}.msgr-rail-ic svg{width:15px;height:15px}.msgr-rail-ic.coral{background:var(--tongue-soft);color:var(--tongue-groove)}.msgr-rail-t{flex-direction:column;flex:1;min-width:0;display:flex}.msgr-rail-t b{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.msgr-rail-t span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;font-weight:600;overflow:hidden}.msgr-rail-t-wrap b{white-space:normal;text-overflow:clip;line-height:1.3;overflow:visible}.msgr-rail-tail{font-family:var(--font-body);color:var(--accent);background:var(--accent-soft);border-radius:var(--r-pill);cursor:pointer;border:none;flex:none;padding:5px 12px;font-size:12px;font-weight:800;transition:background .15s}.msgr-rail-tail:hover{background:var(--accent);color:#fff}.msgr-rail-bar{background:var(--line);border-radius:var(--r-pill);height:6px;margin:2px 0 8px 40px;display:block;overflow:hidden}.msgr-rail-bar>i{background:var(--accent);border-radius:var(--r-pill);transform-origin:0;width:100%;height:100%;transition:transform .5s var(--ease);display:block}.msgr-rail-actions{flex-direction:column;gap:6px;display:flex}.msgr-rail-actions button{text-align:left;width:100%;font-family:var(--font-body);color:var(--ink);background:var(--paper);border-radius:var(--r-sm);cursor:pointer;border:none;align-items:center;gap:9px;padding:9px 11px;font-size:13px;font-weight:700;transition:background .15s,color .15s;display:flex}.msgr-rail-actions button:hover{background:var(--accent-soft);color:var(--accent)}.msgr-rail-actions button svg:first-child{width:15px;height:15px;color:var(--accent);flex:none}.msgr-hw-modal-date{color:var(--muted);margin:-4px 0 0;font-size:12.5px}.msgr-hw-modal-list{flex-direction:column;gap:2px;margin:14px 0 0;padding:0;list-style:none;display:flex}.msgr-hw-modal-list li{color:var(--ink);align-items:center;gap:12px;padding:7px 0;font-size:14px;font-weight:500;display:flex}.msgr-hw-modal-list li.done{color:var(--muted);text-decoration:line-through;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line)}.msgr-hw-modal-box{border:1.5px solid var(--line);color:#fff;border-radius:7px;flex:none;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.msgr-hw-modal-list li.done .msgr-hw-modal-box{background:var(--accent);border-color:var(--accent)}.msgr-hw-modal-box svg{width:13px;height:13px}.msgr-hw-modal-tag{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--paper);border-radius:var(--r-pill);flex:none;margin-left:auto;padding:3px 8px;font-size:10.5px;font-weight:700}.msgr-hw-modal-progress{color:var(--muted);margin:12px 0 0;font-size:12.5px;font-weight:700}.msgr-rail-actions button svg:last-child{opacity:.6;flex:none;width:15px;height:15px;margin-left:auto}@media (width<=1100px){.msgr-rail{display:none}.msgr-has-rail .msgr-hw{display:flex}.msgr-page-teacher.msgr-has-rail,.msgr-page-student.msgr-has-rail{grid-template-columns:minmax(0,1fr)}}@media (width<=900px),(pointer:coarse) and (width<=1140px){.msgr-page-teacher,.msgr-page-teacher.msgr-has-rail{grid-template-columns:1fr}.msgr-page-teacher .msgr-roster,.msgr-page-teacher .msgr-chat{display:none}.msgr-page-teacher.msgr-mobile-roster .msgr-roster,.msgr-page-teacher.msgr-mobile-chat .msgr-chat,.msgr-back{display:flex}}.msgr-notice{flex-direction:column;gap:8px;padding:4px 2px;display:flex}.msgr-notice-ic{border-radius:var(--r-sm);background:var(--accent-soft);width:34px;height:34px;color:var(--accent);place-items:center;display:inline-grid}.msgr-row.out .msgr-notice-ic{color:#fff;background:#ffffff2e}.msgr-notice-ic svg{width:15px;height:15px}.msgr-notice-link{font-family:var(--font-body);color:var(--accent);cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0;font-size:13px;font-weight:700;text-decoration:none;display:inline-block}.msgr-row.out .msgr-notice-link{color:#fff}.msgr-notice-result{color:var(--streak-fg)}.msgr-row.out .msgr-notice-result{color:var(--streak-bg)}.msgr-notice-link:hover{text-decoration:underline}@media (width<=720px),(pointer:coarse) and (width<=1140px){:is(.msgr-page-student,.msgr-page-teacher),:is(.msgr-page-student,.msgr-page-teacher).msgr-has-rail{gap:0;min-height:0;padding:0}:is(.msgr-page-student,.msgr-page-teacher).is-keyboard{padding-bottom:var(--msgr-keyboard,0px)}:is(.msgr-page-student,.msgr-page-teacher) .msgr-chat{border:none;border-radius:0}:is(.msgr-page-student,.msgr-page-teacher) .msgr-chat-top{gap:10px;padding:8px 16px}:is(.msgr-page-student,.msgr-page-teacher) .msgr-chat-top .ui-avatar{width:36px;height:36px;font-size:14px}:is(.msgr-page-student,.msgr-page-teacher) .msgr-chat-top .ui-avatar-art,:is(.msgr-page-student,.msgr-page-teacher) .msgr-chat-top .ui-avatar-art svg{display:block;width:100%!important;height:100%!important}:is(.msgr-page-student,.msgr-page-teacher) .msgr-hw{border-radius:var(--r-md);margin:8px 12px 0;padding:8px 8px 8px 12px}:is(.msgr-page-student,.msgr-page-teacher) .msgr-hw-txt{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.35;display:-webkit-box}:is(.msgr-page-student,.msgr-page-teacher) .msgr-composer{padding:8px 10px max(8px, env(safe-area-inset-bottom));gap:6px}:is(.msgr-page-student,.msgr-page-teacher).is-keyboard .msgr-composer{padding-bottom:8px}.msgr-thread{gap:6px;padding:12px 12px 6px}.msgr-day{margin:4px 0}.msgr-row-av{display:none}.msgr-row{max-width:85%}.msgr-bubble{padding:8px 12px 6px;font-size:15px;line-height:1.4}.msgr-stamp{margin-top:2px}:is(.msgr-bubble:has(>.msgr-shot),.msgr-bubble:has(>.msgr-album)){padding:4px 4px 6px}:is(.msgr-bubble:has(>.msgr-shot) .msgr-stamp,.msgr-bubble:has(>.msgr-album) .msgr-stamp){padding-right:8px}.msgr-shot,.msgr-album{border:none;width:min(260px,100%)}.msgr-shot img{max-height:260px}.msgr-voice,.msgr-file{min-width:0}}@media (hover:none){.msgr-msg-actions{display:none}.msgr-row.is-active{flex-wrap:wrap}.msgr-row.is-active .msgr-msg-actions{opacity:1;flex-basis:100%;order:3;justify-content:flex-end;gap:6px;display:flex}.msgr-row.in.is-active .msgr-msg-actions{justify-content:flex-start}.msgr-row.is-active .msgr-msg-actions .msgr-icon-btn{background:var(--surface);border:1px solid var(--line);border-radius:50%;width:36px;height:36px}.msgr-row.is-active .msgr-bubble{box-shadow:0 0 0 2px var(--accent-soft)}}@media (width<=720px),(pointer:coarse) and (width<=1140px){.msgr-bubble{border:none;border-radius:18px 18px 18px 5px;box-shadow:0 1px 2px #16151f1f}.msgr-row.out .msgr-bubble{border-bottom-right-radius:5px;border-bottom-left-radius:18px;box-shadow:0 1px 2px #16151f29}.msgr-bubble:has(>.msgr-text){padding:7px 12px;position:relative}.msgr-bubble>.msgr-text:after{content:"";width:40px;display:inline-block}.msgr-row.out .msgr-bubble>.msgr-text:after{width:58px}.msgr-bubble:has(.msgr-edited)>.msgr-text:after{width:100px}.msgr-row.out .msgr-bubble:has(.msgr-edited)>.msgr-text:after{width:118px}.msgr-bubble:has(>.msgr-text)>.msgr-stamp{margin:0;position:absolute;bottom:5px;right:10px}.msgr-stamp{gap:4px;font-size:11px}.msgr-day{background:color-mix(in srgb, var(--ink) 28%, transparent);color:#fff;border:none;padding:3px 10px;font-size:12px}:is(.msgr-page-student,.msgr-page-teacher) .msgr-hw{border-radius:var(--r-pill);border:none;box-shadow:0 1px 2px #16151f1f}:is(.msgr-page-student,.msgr-page-teacher) .msgr-hw-txt{-webkit-line-clamp:1;white-space:nowrap;display:block}.msgr-field{border-radius:var(--r-pill);padding:9px 14px}.msgr-notice{grid-template-columns:30px minmax(0,1fr);align-items:start;gap:4px 10px;padding:2px 0;display:grid}.msgr-notice-ic{grid-row:span 2;width:30px;height:30px}.msgr-notice-ic svg{width:16px;height:16px}.msgr-notice .msgr-text{margin:0;padding-top:4px}.msgr-notice-link{grid-column:2;justify-self:start}}.msgr-float-top,.msgr-float-bottom{flex:none}@media (width<=720px),(pointer:coarse) and (width<=1140px){:is(.msgr-page-student,.msgr-page-teacher) .msgr-chat{position:relative}:is(.msgr-page-student,.msgr-page-teacher) .msgr-float-top,:is(.msgr-page-student,.msgr-page-teacher) .msgr-float-bottom{z-index:3;pointer-events:none;flex-direction:column;gap:6px;padding:8px 10px;display:flex;position:absolute;left:0;right:0}:is(.msgr-page-student,.msgr-page-teacher) .msgr-float-top{top:0}:is(.msgr-page-student,.msgr-page-teacher) .msgr-float-bottom{padding-bottom:max(8px, env(safe-area-inset-bottom));bottom:0}:is(.msgr-page-student,.msgr-page-teacher).is-keyboard .msgr-float-bottom{padding-bottom:8px}:is(.msgr-page-student,.msgr-page-teacher) .msgr-float-top>*,:is(.msgr-page-student,.msgr-page-teacher) .msgr-float-bottom>*{pointer-events:auto}:is(.msgr-page-student,.msgr-page-teacher) .msgr-thread{padding-top:calc(var(--msgr-top-h,0px) + 6px);padding-bottom:calc(var(--msgr-bottom-h,0px) + 6px);scroll-padding-top:var(--msgr-top-h,0px)}:is(.msgr-page-student,.msgr-page-teacher) .msgr-chat-top,:is(.msgr-page-student,.msgr-page-teacher) .msgr-hw,:is(.msgr-page-student,.msgr-page-teacher) .msgr-composer .msgr-field,:is(.msgr-page-student,.msgr-page-teacher) .msgr-composer .msgr-icon-btn,:is(.msgr-page-student,.msgr-page-teacher) .msgr-composer.msgr-recording{background:var(--surface);border:1px solid var(--line);box-shadow:0 2px 10px #16151f1a}:is(.msgr-page-student,.msgr-page-teacher) .msgr-chat-top{border-radius:var(--r-pill);align-self:stretch;padding:5px 16px 5px 5px}:is(.msgr-page-student,.msgr-page-teacher) .msgr-hw{border-radius:var(--r-pill);margin:0;padding:5px 5px 5px 14px}:is(.msgr-page-student,.msgr-page-teacher) .msgr-composer-wrap{background:0 0;border:none}:is(.msgr-page-student,.msgr-page-teacher) .msgr-composer{align-items:center;gap:8px;padding:0}:is(.msgr-page-student,.msgr-page-teacher) .msgr-composer .msgr-icon-btn{width:46px;height:46px;color:var(--ink)}:is(.msgr-page-student,.msgr-page-teacher) .msgr-composer .msgr-field{min-height:46px;padding:11px 16px;position:relative}:is(.msgr-page-student,.msgr-page-teacher){--msgr-avail:calc(100dvh - var(--msgr-keyboard,0px) - 150px)}:is(.msgr-page-student,.msgr-page-teacher) .msgr-composer .msgr-field textarea{max-height:32dvh}:is(.msgr-page-student,.msgr-page-teacher) .msgr-composer .msgr-field.is-expanded textarea{max-height:max(120px, calc(var(--msgr-avail) * .5 - 40px))}:is(.msgr-page-student,.msgr-page-teacher) .msgr-composer .msgr-field:is(.is-multiline,.is-wide){border-radius:23px}:is(.msgr-page-student,.msgr-page-teacher) .msgr-composer:has(>.msgr-field.is-wide){flex-wrap:wrap}:is(.msgr-page-student,.msgr-page-teacher) .msgr-composer>.msgr-field.is-wide{flex-basis:100%;order:-1}:is(.msgr-page-student,.msgr-page-teacher) .msgr-composer:has(>.msgr-field.is-wide)>.msgr-send{margin-left:auto}:is(.msgr-page-student,.msgr-page-teacher) .msgr-composer .msgr-field.is-wide{padding-right:38px}:is(.msgr-page-student,.msgr-page-teacher) .msgr-field-expand{width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:8px;right:6px}:is(.msgr-page-student,.msgr-page-teacher) .msgr-field-expand svg{width:16px;height:16px}:is(.msgr-page-student,.msgr-page-teacher) .msgr-composer .msgr-field:focus-within{background:var(--surface);border-color:var(--accent)}:is(.msgr-page-student,.msgr-page-teacher) .msgr-send{width:46px;height:46px;box-shadow:0 2px 10px #16151f24}:is(.msgr-page-student,.msgr-page-teacher) .msgr-composer.msgr-recording{border-radius:var(--r-pill);min-height:46px;padding:0 0 0 16px}:is(.msgr-page-student,.msgr-page-teacher) .msgr-composer.msgr-recording .msgr-icon-btn{box-shadow:none;background:0 0;border:none}:is(.msgr-page-student,.msgr-page-teacher) .msgr-attach-menu{bottom:56px}:is(.msgr-page-student,.msgr-page-teacher) .msgr-composer-error,:is(.msgr-page-student,.msgr-page-teacher) .msgr-page-error{margin:0 4px 4px}:is(.msgr-page-student,.msgr-page-teacher).is-keyboard .msgr-composer{padding-bottom:0}:is(.msgr-page-student,.msgr-page-teacher).msgr-has-rail{grid-template-columns:minmax(0,1fr)}:is(.msgr-page-student,.msgr-page-teacher) .msgr-rail{display:none}:is(.msgr-page-student,.msgr-page-teacher).msgr-has-rail .msgr-hw{display:flex}.msgr-row{max-width:min(85%,600px)}}@media (width<=900px),(pointer:coarse) and (width<=1140px){.msgr-page-teacher .msgr-chat-top{display:flex}.msgr-page-teacher .msgr-back{width:36px;height:36px;color:var(--ink);margin:0 -4px 0 0}}@media (width<=720px),(pointer:coarse) and (width<=1140px){.msgr-page-teacher .msgr-conversation{border:none;border-radius:0}.msgr-page-teacher .msgr-roster{border-right:none;width:100%}.msgr-page-teacher.msgr-mobile-roster .msgr-conversation,.msgr-page-teacher .msgr-roster{background:0 0}.msgr-page-teacher .msgr-roster-top{border-bottom:none;padding:16px 16px 12px}.msgr-page-teacher .msgr-roster-top h3,.msgr-page-teacher .msgr-roster-foot{display:none}.msgr-page-teacher .msgr-roster-list{background:var(--surface);border-radius:var(--r-md);box-shadow:0 0 0 1px var(--line);flex:0 auto;gap:0;margin:0 16px 16px;padding:0}.msgr-page-teacher .msgr-rost{border-radius:0;align-items:center;gap:12px;min-height:64px;padding:10px 14px;position:relative}.msgr-page-teacher .msgr-rost+.msgr-rost:before{content:"";border-top:1px solid var(--line);position:absolute;top:0;left:62px;right:0}.msgr-page-teacher .msgr-rost:hover,.msgr-page-teacher .msgr-rost[aria-current=true]{background:0 0}.msgr-page-teacher .msgr-rost:active{background:var(--paper)}.msgr-page-teacher .msgr-rost-name{font-size:15px;font-weight:600}.msgr-page-teacher .msgr-rost-time{font-size:12px}.msgr-page-teacher .msgr-rost-prev{font-size:13px}.msgr-page-teacher .msgr-roster-empty{padding:20px 14px}}.msgr-hwlabel{color:var(--accent);flex-wrap:wrap;align-items:center;gap:6px 8px;margin-bottom:8px;font-size:12.5px;font-weight:700;display:flex}.msgr-hwlabel-badge{box-sizing:border-box;border-radius:var(--r-pill);background:var(--accent-soft);height:24px;color:var(--accent);flex:none;align-items:center;gap:5px;padding:0 9px 0 7px;font-size:12px;display:inline-flex}.msgr-hwlabel-badge svg{flex:none;width:14px;height:14px}.msgr-hwlabel-t{overflow-wrap:anywhere;min-width:0}.msgr-hwlabel-link{font-family:var(--font-body);color:inherit;cursor:pointer;background:0 0;border:0;margin-left:auto;padding:0;font-size:12px;font-weight:700}.msgr-hwlabel-link:hover{text-decoration:underline}.msgr-row.out .msgr-hwlabel{color:#fff}.msgr-row.out .msgr-hwlabel-badge{color:var(--accent);background:#fff}.msgr-hwbtn{box-sizing:border-box;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);height:38px;color:var(--muted);font-family:var(--font-body);cursor:pointer;flex:none;align-items:center;gap:5px;padding:0 12px 0 10px;font-size:13px;font-weight:700;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.msgr-hwbtn svg{width:17px;height:17px}.msgr-hwbtn:hover{color:var(--accent);border-color:var(--accent)}.msgr-hwbtn.on{background:var(--accent);border-color:var(--accent);color:#fff}.msgr-hwbar{align-items:center;gap:8px;min-width:0;margin:10px 16px 0;display:flex}.msgr-hwbar-title{color:var(--accent);white-space:nowrap;flex:none;align-items:center;gap:6px;font-size:13px;font-weight:700;display:inline-flex}.msgr-hwbar-title svg{flex:none;width:16px;height:16px}.msgr-hwbar-pick{border-radius:var(--r-pill);background:var(--accent-soft);min-width:0;height:28px;color:var(--accent);font-family:var(--font-body);cursor:pointer;border:0;align-items:center;gap:4px;padding:0 8px 0 12px;font-size:12.5px;font-weight:700;display:inline-flex}.msgr-hwbar-pick span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.msgr-hwbar-pick svg{flex:none;width:14px;height:14px;transform:rotate(-90deg)}.msgr-hwbar-close{flex:none;width:28px;height:28px;margin-left:auto}.msgr-hwbar-close svg{width:16px;height:16px}.msgr-hwpick{z-index:40;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-pop);flex-direction:column;display:flex;position:absolute;bottom:calc(100% + 8px);left:16px;right:16px;overflow:hidden}.msgr-hwpick-head{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:6px 6px 6px 14px;display:flex}.msgr-hwpick-title{color:var(--ink);font-size:13px;font-weight:700}.msgr-hwpick-all{color:var(--accent);font-family:var(--font-body);cursor:pointer;background:0 0;border:0;margin-left:auto;padding:4px 6px;font-size:12.5px;font-weight:700}.msgr-hwpick-close{width:28px;height:28px}.msgr-hwpick-close svg{width:16px;height:16px}.msgr-hwpick-body{background:var(--paper);flex-direction:column;gap:8px;max-height:min(340px,45vh);padding:8px;display:flex;overflow-y:auto}.msgr-hwpick-lesson{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);overflow:hidden}.msgr-hwpick-lesson-head{border-bottom:1px solid var(--line);align-items:baseline;gap:8px;padding:10px 12px 8px;display:flex}.msgr-hwpick-lesson-head b{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink);font-size:13.5px;font-weight:700;overflow:hidden}.msgr-hwpick-lesson-head span{color:var(--muted);flex:none;margin-left:auto;font-size:12px;font-weight:600}.msgr-hwpick-item{box-sizing:border-box;width:100%;min-height:44px;color:var(--ink);font-family:var(--font-body);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:8px 12px;font-size:14px;font-weight:600;line-height:1.3;display:flex}.msgr-hwpick-item+.msgr-hwpick-item{border-top:1px solid var(--line)}.msgr-hwpick-item>span{flex:1;min-width:0}button.msgr-hwpick-item:hover{background:var(--paper)}.msgr-hwpick-item.on{background:var(--accent-soft);color:var(--accent)}.msgr-hwpick-radio{box-sizing:border-box;border:2px solid var(--line-strong);background:var(--surface);border-radius:50%;flex:none;width:18px;height:18px}.msgr-hwpick-item.on .msgr-hwpick-radio{border:5px solid var(--accent)}.msgr-hwpick-item.is-worksheet{color:var(--muted);cursor:default;font-weight:600}.msgr-hwpick-solve{border-radius:var(--r-pill);background:var(--accent-soft);height:28px;color:var(--accent);font-family:var(--font-body);cursor:pointer;border:0;flex:none;padding:0 12px;font-size:12.5px;font-weight:700}.msgr-hwpick-item.is-other{border:1px dashed var(--line-strong);border-radius:var(--r-md);background:var(--surface)}.msgr-hwpick-item.is-other.on{border-style:solid;border-color:var(--accent);background:var(--accent-soft)}.msgr-hwpick-item.is-other small{color:var(--muted);margin-top:1px;font-size:12px;font-weight:500;display:block}.msgr-hwpick-empty{color:var(--muted);margin:0;padding:4px 4px 0;font-size:13px}.msgr-hwtask{border-radius:var(--r-md);background:var(--surface);max-height:max(90px, calc(var(--msgr-avail) * .5 - 120px));margin:0 0 6px;padding:10px 12px;overflow-y:auto;box-shadow:0 2px 10px #16151f1a}.msgr-hwtask-head{color:var(--muted);margin:0 0 6px;font-size:12.5px}.msgr-hwtask-head b{color:var(--ink);font-weight:700}.msgr-hwtask-items,.msgr-hwtask-links{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.msgr-hwtask-items li{color:var(--ink);align-items:flex-start;gap:8px;font-size:14px;line-height:1.35;display:flex}.msgr-hwtask-items li>i,.msgr-hwtask-items li>svg{flex:none;width:14px;height:14px;margin-top:2px}.msgr-hwtask-items li>i{box-sizing:border-box;border:2px solid var(--line-strong);border-radius:50%}.msgr-hwtask-items li.is-done{color:var(--muted);text-decoration:line-through}.msgr-hwtask-items li.is-done>svg{color:var(--success-groove)}.msgr-hwtask-items li.is-current{color:var(--accent);font-weight:700}.msgr-hwtask-items li.is-current>i{border:4px solid var(--accent)}.msgr-hwtask-links{border-top:1px solid var(--line);margin-top:10px;padding-top:8px}.msgr-hwtask-links a{color:var(--accent);align-items:center;gap:6px;min-width:0;font-size:13px;font-weight:600;text-decoration:none;display:flex}.msgr-hwtask-links a span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.msgr-hwtask-links svg{flex:none;width:14px;height:14px}.msgr-hwtag-sent{min-height:28px;color:var(--success-groove);align-items:center;gap:6px;margin:10px 16px 0;font-size:13px;font-weight:700;display:flex}.msgr-hwtag-sent svg{flex:none;width:16px;height:16px}.msgr-hwtag-sent span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.msgr-hwfilter{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);align-self:flex-start;gap:2px;width:fit-content;margin:10px 18px 0;padding:3px;display:flex}.msgr-hwfilter-seg{box-sizing:border-box;height:28px;color:var(--muted);border-radius:var(--r-pill);font-family:var(--font-body);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0 12px;font-size:12.5px;font-weight:700;transition:background .15s,color .15s;display:inline-flex}.msgr-hwfilter-seg svg{width:14px;height:14px}.msgr-hwfilter-seg:hover{color:var(--ink)}.msgr-hwfilter-seg.on{color:var(--accent);background:var(--accent-soft);cursor:default}.app-topbar-action:has(>.msgr-hwswitch:only-child){display:none}.msgr-hwswitch{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);flex:none;gap:2px;padding:3px;display:none}.msgr-hwswitch-seg{box-sizing:border-box;border-radius:var(--r-pill);min-width:38px;height:34px;color:var(--muted);font-family:var(--font-body);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:4px;padding:0 10px;font-size:12.5px;font-weight:700;display:inline-flex;position:relative}.msgr-hwswitch-seg svg{flex:none;width:17px;height:17px}.msgr-hwswitch-seg.on{background:var(--accent-soft);color:var(--accent);cursor:default}.msgr-chat-top .msgr-hwfilter{align-self:center;margin:0 0 0 auto}.msgr-composer>.msgr-attach-wrap,.msgr-composer>.msgr-hwbtn{margin-bottom:4px}.msgr-composer>.msgr-send{margin-bottom:2px}.msgr-row.is-focused .msgr-bubble{box-shadow:0 0 0 3px var(--accent-soft);transition:box-shadow .3s}@media (width<=720px),(pointer:coarse) and (width<=1140px){:is(.msgr-page-student,.msgr-page-teacher) .msgr-composer>:is(.msgr-attach-wrap,.msgr-hwbtn,.msgr-send){margin-bottom:0}.msgr-page-teacher .msgr-float-top>.msgr-hwfilter{display:none}:is(.msgr-page-student,.msgr-page-teacher) .msgr-chat-top:has(>.msgr-hwfilter){padding-right:5px}:is(.msgr-page-student,.msgr-page-teacher) .msgr-chat-top>.msgr-hwfilter{align-self:stretch}:is(.msgr-page-student,.msgr-page-teacher) .msgr-chat-top>.msgr-hwfilter .msgr-hwfilter-seg{height:auto}:is(.msgr-page-student,.msgr-page-teacher) .msgr-hwpick{border:0;bottom:calc(100% + 6px);left:0;right:0}:is(.msgr-page-student,.msgr-page-teacher) .msgr-hwbar,:is(.msgr-page-student,.msgr-page-teacher) .msgr-hwtag-sent{box-sizing:border-box;border-radius:var(--r-pill);background:var(--surface);min-height:40px;margin:0 0 6px;padding:6px 6px 6px 12px;box-shadow:0 2px 10px #16151f1a}:is(.msgr-page-student,.msgr-page-teacher) .msgr-hwbtn{height:44px;padding:0 12px;box-shadow:0 2px 10px #16151f1a}}@media (width<=720px){:is(.msgr-page-student,.msgr-page-teacher) .msgr-hwfilter{display:none}:is(.msgr-hwswitch,.app-topbar-action:has(>.msgr-hwswitch:only-child)){display:flex}.app-topbar-custom:has(.msgr-hwswitch) :is(.gp-streak-pill,.gp-topbar-me){display:none}}.ui-live-dot{--live-dot:var(--success);--live-ring:6px;background:var(--live-dot);width:8px;height:8px;box-shadow:0 0 0 0 color-mix(in srgb, var(--live-dot) 60%, transparent);border-radius:50%;flex:none;animation:2s infinite ui-live-ping}.ui-live-dot--light{outline:1.5px solid #fff}@keyframes ui-live-ping{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--live-dot) 60%, transparent)}70%{box-shadow:0 0 0 var(--live-ring) transparent}to{box-shadow:0 0 #0000}}@media (prefers-reduced-motion:reduce){.ui-live-dot{animation:none}}.ll-root{z-index:60;background:var(--desk);position:fixed;inset:0;overflow:hidden}.ll-denied{text-align:center;place-content:center;justify-items:center;gap:8px;height:100%;padding:20px;display:grid}.ll-denied h1{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:22px;font-weight:700}.ll-denied p{color:var(--muted);margin:0 0 10px}.ll-link{color:var(--accent);font-weight:700}.ll-board{background:radial-gradient(circle at 1px 1px, #16151f14 1px, transparent 0) 0 0 / 28px 28px, radial-gradient(1200px 700px at 70% -10%, #5850ea0d, transparent), var(--canvas);position:absolute;inset:0;overflow:hidden}.ll-board>.ll-board-placeholder{color:var(--muted);font-weight:700;font-family:var(--font-display);place-content:center;font-size:15px;display:grid;position:absolute;inset:0}.ll-snapshot-loading{background:var(--canvas);position:absolute;inset:0}.ll-tabs{align-items:center;gap:6px;display:flex}.ll-tab{border-radius:var(--r-pill);min-height:40px;color:var(--ink);background:var(--surface);border:1.5px solid var(--line);white-space:nowrap;transition:.15s var(--ease);padding:8px 16px;font-size:13px;font-weight:700}.ll-tab:hover{border-color:var(--ink)}.ll-tab.is-active{background:var(--accent-soft);color:var(--accent);border-color:#0000}.ll-copy-btn{z-index:20;position:absolute;top:76px;right:24px}.lls-banner{border-radius:var(--r-pill);background:var(--accent-soft);min-height:56px;color:var(--ink);box-sizing:border-box;align-items:center;gap:14px;margin-bottom:20px;padding:6px 6px 6px 20px;display:flex}.lls-banner-text{flex-wrap:wrap;flex:1;align-items:baseline;gap:2px 10px;min-width:0;display:flex}.lls-banner-title{font-family:var(--font-display);margin:0;font-size:15px;font-weight:600}.lls-banner-sub{color:var(--muted);margin:0;font-size:14px}.lls-banner-btn{background:var(--accent);color:#fff;border-radius:var(--r-pill);min-height:44px;box-shadow:var(--shadow-glow);white-space:nowrap;flex:none;align-items:center;padding:0 22px;font-size:15px;font-weight:700;text-decoration:none;transition:background .15s;display:inline-flex}.lls-banner-btn:hover{background:var(--accent-press)}.lls-banner-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lls-banner-who,.lls-banner-btn-short{display:none}@media (width<=480px),(pointer:coarse) and (orientation:portrait) and (width<=1140px){.app-shell:not([data-shell=student]) .app-banner-slot{padding:8px 12px 0}.app-shell:not([data-shell=student]) .lls-banner{gap:10px;min-height:52px;padding:4px 4px 4px 16px}.app-shell:not([data-shell=student]) .lls-banner-title{font-family:var(--font-body);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:15px;font-weight:700;overflow:hidden}.app-shell:not([data-shell=student]) .lls-banner-sub,.app-shell:not([data-shell=student]) .lls-banner-btn-long{display:none}.app-shell:not([data-shell=student]) .lls-banner-who,.app-shell:not([data-shell=student]) .lls-banner-btn-short{display:inline}.app-shell:not([data-shell=student]) .lls-banner-btn{padding:0 18px}}@media (width<=480px){.lls-banner{padding-left:16px}.lls-banner-btn{padding:0 18px}.lls-banner-btn-long{display:none}.lls-banner-btn-short{display:inline}}.llb-root{position:absolute;inset:0}.llb-viewer .excalidraw .App-toolbar,.llb-viewer .excalidraw .App-menu,.llb-viewer .excalidraw .excalidraw__toolbar{display:none!important}.llb-root .excalidraw .App-toolbar-container{margin-top:72px}.llb-root .excalidraw .default-sidebar-trigger,.ll-root .excalidraw .default-sidebar-trigger,.llb-root .excalidraw .help-icon,.llb-root .excalidraw .scroll-back-to-content{display:none!important}.llb-locked-pick{z-index:5;pointer-events:none;border:1.5px dashed var(--accent);background:color-mix(in srgb, var(--accent) 6%, transparent);border-radius:4px;position:absolute}.llb-wordpill{z-index:31;border-radius:var(--r-pill);background:var(--accent);color:#fff;white-space:nowrap;align-items:center;gap:8px;max-width:90vw;min-height:44px;padding:10px 16px;font-size:13px;font-weight:700;display:inline-flex;position:absolute;bottom:88px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 6px 18px #5850ea52}.llb-wordpill span{opacity:.75;text-overflow:ellipsis;font-weight:600;overflow:hidden}.llb-manual{z-index:30;border-radius:var(--r-pill);-webkit-backdrop-filter:blur(20px)saturate(1.3);box-shadow:var(--shadow-md);transition:opacity .2s var(--ease), transform .25s var(--ease), bottom .25s var(--ease);background:#ffffffb8;border:1px solid #ffffffb3;align-items:center;gap:6px;padding:5px 5px 5px 16px;display:flex;position:absolute;bottom:30px;left:50%;transform:translate(-50%)}.llb-dock-revealed .llb-manual{opacity:0;pointer-events:none;transform:translate(-50%,10px)}.llb-dock-revealed .llb-wordpill{bottom:170px}@media (prefers-reduced-motion:reduce){.llb-manual{transition:none}}.llb-manual input{width:210px;min-height:40px;color:var(--ink);background:0 0;border:none;font-size:13.5px;font-weight:600}.llb-manual input::placeholder{color:var(--muted);font-weight:500}.llb-manual input:focus{outline:none}.llb-manual button{border-radius:var(--r-pill);background:var(--accent);color:#fff;width:40px;height:40px;transition:.15s var(--ease);flex:none;place-content:center;font-size:17px;font-weight:700;display:grid}.llb-manual button:hover{background:var(--accent-press)}.llb-manual button:disabled{opacity:.45}.llsum{background:radial-gradient(circle at 1px 1px, #16151f0f 1px, transparent 0) 0 0 / 28px 28px, var(--canvas);place-items:start center;padding:48px 20px;display:grid;position:absolute;inset:0;overflow-y:auto}.llsum--embedded{padding-top:80px}.llsum-card{background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-lg);width:min(640px,100%);box-shadow:var(--shadow-md);padding:32px 34px}.llsum-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--success);background:var(--success-soft);border-radius:var(--r-pill);padding:5px 12px;font-size:11px;font-weight:800;display:inline-block}.llsum-card h1{font-family:var(--font-display);letter-spacing:-.02em;margin:14px 0 0;font-size:24px;font-weight:700}.llsum-sub{color:var(--muted);margin:8px 0 22px;font-size:13.5px}.llsum-loading,.llsum-empty{text-align:center;border:1.5px dashed var(--line);border-radius:var(--r-md);color:var(--muted);padding:36px 20px;font-size:13.5px;font-weight:600}.llsum-error{color:var(--error);margin:0 0 12px;font-size:13px;font-weight:600}.llsum-list{flex-direction:column;gap:8px;margin:0 0 24px;padding:0;list-style:none;display:flex}.llsum-row{text-align:left;border-radius:var(--r-sm);border:1.5px solid var(--line);background:var(--paper);width:100%;transition:.15s var(--ease);align-items:center;gap:12px;padding:11px 14px;display:flex}.llsum-row:hover{border-color:color-mix(in srgb, var(--error) 55%, var(--line))}.llsum-row.is-busy{opacity:.55}.llsum-box{background:var(--accent);color:#fff;width:24px;height:24px;transition:.15s var(--ease);border-radius:50%;flex:none;place-content:center;display:grid}.llsum-term{min-width:0;color:var(--ink);flex-wrap:wrap;flex:1;align-items:baseline;gap:10px;font-size:14.5px;font-weight:700;display:flex}.llsum-term i{color:var(--muted);font-size:13px;font-style:normal;font-weight:500}.llsum-badge{letter-spacing:.07em;text-transform:uppercase;border-radius:var(--r-pill);background:var(--paper);color:var(--muted);border:1px solid var(--line);flex:none;padding:4px 9px;font-size:10.5px;font-weight:800}.llsum-badge--accent{background:var(--accent-soft);color:var(--accent);border-color:#0000}.llsum-done{border-radius:var(--r-pill);background:var(--accent);color:#fff;width:100%;min-height:48px;transition:.15s var(--ease);font-size:14px;font-weight:700}.llsum-done:hover{background:var(--accent-press)}.ll-videoonly-empty{inset:var(--bar-h) 16px 16px;text-align:center;color:var(--muted);place-content:center;justify-items:center;gap:14px;font-size:15px;display:grid;position:absolute}.ll-videoonly-empty p{max-width:280px;margin:0}.ui-whole-rows{scroll-snap-type:y mandatory}.ui-whole-rows>*{scroll-snap-align:start}.ui-whole-rows>:last-child{scroll-snap-align:end}.ui-sl{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);flex-direction:column;min-width:0;max-height:calc(100vh - 40px);display:flex;position:sticky;top:20px;overflow:hidden}.ui-sl-top{border-bottom:1px solid var(--line)}.ui-sl-head{padding:14px 14px 12px}.ui-sl-filters{flex-wrap:wrap;gap:5px;padding:0 14px 12px;display:flex}.ui-sl-filters:first-child,.ui-sl-cap:first-child{padding-top:14px}.ui-sl-filters button{border:1px solid var(--line);background:var(--surface);color:var(--muted);font-family:var(--font-body);border-radius:var(--r-pill);cursor:pointer;min-height:34px;padding:6px 11px;font-size:12px;font-weight:700}.ui-sl-filters button:hover{color:var(--ink)}.ui-sl-filters button.on{background:var(--accent-soft);color:var(--accent);border-color:#0000}.ui-sl-cap{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:0 16px 9px;font-size:11px;font-weight:800}.ui-sl-pinned{border-left:3px solid #0000;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface);padding:12px 15px}.ui-sl-scroll{min-height:0;overflow-y:auto}.ui-sl-scroll:not(:first-child){border-top:1px solid var(--line)}.ui-sl-pinned+.ui-sl-scroll{border-top:0}.ui-sl-foot{background:var(--surface);flex:none;margin-top:auto;padding:12px}.ui-sl-item{border-bottom:1px solid var(--line);background:0 0;border-left:3px solid #0000;align-items:center;transition:background .12s;display:flex}.ui-sl-item:last-child{border-bottom:0}.ui-whole-rows>.ui-sl-item:last-child{border-bottom:1px solid #0000}.ui-sl-item:hover{background:var(--paper)}.ui-sl-item.on{background:var(--accent-soft);border-left-color:var(--accent)}.ui-sl-hit{cursor:pointer;text-align:left;min-width:0;min-height:56px;font-family:var(--font-body);background:0 0;border:0;flex:1;align-items:center;gap:12px;padding:13px 15px;display:flex}.ui-sl-hit:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.ui-sl-lead{flex:none;place-items:center;display:grid}.ui-sl-ico{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);border-radius:11px;place-items:center;display:grid}.ui-sl-item.on .ui-sl-ico{background:var(--surface)}.ui-sl-ico svg{width:18px;height:18px}.ui-sl-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ui-sl-title{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14.5px;font-weight:700;overflow:hidden}.ui-sl-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;font-size:11.5px;font-weight:600;display:flex;overflow:hidden}.ui-sl-tail{flex:none;align-items:center;gap:6px;margin-left:auto;display:flex}.ui-sl-action{flex:none;padding-right:8px}.ui-sl-badge{border-radius:var(--r-pill);background:var(--tongue);color:#fff;place-items:center;min-width:20px;height:20px;padding:0 6px;font-size:10.5px;font-weight:800;display:grid}.ui-sl-count{border-radius:var(--r-pill);background:var(--paper);color:var(--muted);padding:3px 9px;font-size:11px;font-weight:800}.ui-sl-item.on .ui-sl-count{background:var(--surface)}.ui-sl-ok{color:var(--success);place-items:center;display:grid}.ui-sl-ok svg{width:16px;height:16px}.ui-sl-debt{color:var(--error);font-size:10px;font-weight:800}.ui-sl-lvl{border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent);padding:1px 6px;font-size:10px;font-weight:800}.ui-sl-empty{text-align:center;color:var(--muted);margin:0;padding:36px 20px;font-size:13.5px}@media (width<=820px){.ui-sl{max-height:none;position:static}.ui-sl-scroll{display:flex;overflow-x:auto}.ui-sl-item{border-bottom:0;border-left:0;border-right:1px solid var(--line);border-top:3px solid #0000;flex:none;min-width:232px}.ui-sl-item.on{border-top-color:var(--accent)}}@media (width<=480px),(pointer:coarse) and (orientation:portrait) and (width<=1140px){.ui-sl.ui-sl--stack{height:auto!important}.ui-sl--stack .ui-sl-scroll{scroll-snap-type:none;display:block;overflow:visible;height:auto!important;max-height:none!important}.ui-sl--stack .ui-sl-item{border-top:0;border-right:0;border-bottom:1px solid var(--line);border-left:3px solid #0000;min-width:0}.ui-sl--stack .ui-sl-item:last-child{border-bottom:0}.ui-sl--stack .ui-sl-item.on{background:0 0;border-left-color:#0000}}.ssb-tabs{z-index:20;flex-wrap:wrap;justify-content:center;gap:6px;width:max-content;max-width:calc(100% - 32px);display:flex;position:absolute;left:50%;transform:translate(-50%)}.ssb-tabs--room{top:calc(var(--bar-h) + 12px)}.ssb-tabs--pane{top:10px}.ssb-tab{border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line);max-width:200px;height:36px;box-shadow:var(--shadow-md);color:var(--ink);white-space:nowrap;transition:border-color .15s var(--ease);flex:none;align-items:center;gap:8px;padding:0 14px 0 6px;font-size:13px;font-weight:700;display:inline-flex}.ssb-tab:hover{border-color:var(--ink)}.ssb-tab.is-active{background:var(--accent-soft);color:var(--accent);border-color:#0000}.ssb-num{border-radius:var(--r-pill);background:color-mix(in srgb, var(--ink) 7%, transparent);font-variant-numeric:tabular-nums;place-content:center;min-width:24px;height:24px;padding:0 6px;font-size:12px;display:inline-grid}.ssb-tab.is-active .ssb-num{background:var(--accent);color:#fff}.ssb-title{text-overflow:ellipsis;overflow:hidden}.lsa-page{flex-direction:column;flex:1;width:100%;min-height:0;padding:0 24px 26px;display:flex}.lsa-page-head{text-align:center;flex:none;align-self:flex-start;width:288px;margin-bottom:24px}.lsa-page-head h1{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);text-align:center;margin:0;font-size:26px;font-weight:700;line-height:1.05}.lsa-page-head p{color:var(--muted);margin:8px 0 0;font-size:14.5px;font-weight:600}.lsa{flex:1;grid-template-columns:288px 1fr;gap:22px;min-height:480px;display:grid}.lsa-error,.lsa-note{color:var(--muted);padding:4px 2px;font-size:13.5px;font-weight:600}.lsa-pane{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.lsa-pane-bar{min-height:var(--bar-h);background:var(--surface);border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;gap:16px;padding:8px 20px;display:flex}.lsa-pane-heading{flex-direction:column;gap:2px;min-width:0;display:flex}.lsa-pane-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);font-size:15.5px;font-weight:600}.lsa-pane-meta{color:var(--muted);font-size:12.5px;font-weight:600}.lsa-btn{border-radius:var(--r-pill);min-height:44px;font-family:var(--font-body);cursor:pointer;white-space:nowrap;transition:background .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease);border:none;justify-content:center;align-items:center;gap:9px;padding:0 20px;font-size:13.5px;font-weight:700;display:inline-flex}.lsa-btn:disabled{opacity:.55;cursor:default}.lsa-btn--primary{background:var(--accent);color:#fff;box-shadow:var(--shadow-glow)}.lsa-btn--primary:hover:not(:disabled){background:var(--accent-press)}.lsa-btn--ghost{background:var(--surface);border:1px solid var(--line);color:var(--ink)}.lsa-btn--ghost:hover:not(:disabled){border-color:var(--ink)}.lsa-btn--danger{color:var(--error)}.lsa-btn--danger:hover:not(:disabled){background:var(--error-soft);border-color:var(--error)}.lsa-btn--wide{border-radius:var(--r-md);width:100%;min-height:50px;font-size:14.5px;font-weight:800}.lsa-board{background:#fff;flex:1;min-height:0;position:relative}.lsa-pane-actions{flex:none;align-items:center;gap:8px;display:flex}.lsa-btn--icon{width:44px;min-width:44px;padding:0}.lsa-menu{flex:none;position:relative}.lsa-menu-drop{z-index:60;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);min-width:176px;box-shadow:var(--shadow-pop);padding:4px;position:absolute;top:calc(100% + 6px);right:0}.lsa-menu-drop button{width:100%;font-family:var(--font-body);color:var(--ink);cursor:pointer;text-align:left;transition:background .12s var(--ease);background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:9px 11px;font-size:13.5px;font-weight:600;display:flex}.lsa-menu-drop button:hover{background:var(--accent-soft)}.lsa-menu-drop button.danger{color:var(--error)}.lsa-menu-drop button.danger:hover{background:var(--error-soft)}.lsa-menu-drop button:focus-visible{box-shadow:0 0 0 3px var(--accent-soft);outline:none}.lsa-board .excalidraw{position:absolute;inset:0}.lsa-board .excalidraw .layer-ui__wrapper__top-right,.lsa-board .excalidraw .layer-ui__wrapper__footer-right,.lsa-board .excalidraw .dropdown-menu-button,.lsa-board .excalidraw .help-icon{display:none!important}.lsa-board .excalidraw .default-sidebar-trigger svg,.lsa-board .excalidraw .default-sidebar-trigger .sidebar-trigger__label{display:none}.lsa-board .excalidraw .default-sidebar-trigger{width:auto;min-width:0;font-family:var(--font-body);color:var(--muted);padding:0 14px;font-size:13px;font-weight:700}.lsa-board .excalidraw .default-sidebar-trigger:after{content:"Панель";font-family:var(--font-body);color:var(--muted);font-size:13px;font-weight:700}.lsa-board .excalidraw .default-sidebar-trigger:hover{color:var(--ink)}.lsa-readonly{z-index:10;pointer-events:none;-webkit-backdrop-filter:blur(20px);border:1px solid var(--line);border-radius:var(--r-pill);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:#ffffffc7;align-items:center;padding:6px 13px;font-size:11px;font-weight:800;display:inline-flex;position:absolute;top:14px;left:16px}.lsa-board-empty,.lsa-board-loading{text-align:center;color:var(--muted);place-content:center;padding:20px;font-size:14px;font-weight:700;display:grid;position:absolute;inset:0}.lsa-scrim{z-index:30;background:#16151f5c;position:absolute;inset:0}.lsa-drawer{z-index:31;background:var(--surface);width:min(366px,100%);height:100%;box-shadow:var(--shadow-pop);flex-direction:column;display:flex;position:absolute;top:0;right:0}.lsa-drawer-close{border-radius:var(--r-sm);width:38px;height:38px;color:var(--muted);cursor:pointer;z-index:2;background:0 0;border:none;place-items:center;display:grid;position:absolute;top:16px;right:16px}.lsa-drawer-close:hover{background:var(--paper);color:var(--ink)}.lsa-drawer-head{border-bottom:1px solid var(--line);padding:24px 26px 16px}.lsa-badge-done{background:var(--success-soft);color:var(--success);letter-spacing:.1em;text-transform:uppercase;border-radius:var(--r-pill);margin-bottom:14px;padding:6px 12px;font-size:11px;font-weight:800;display:inline-block}.lsa-drawer-head h3{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);margin:0;font-size:18px;font-weight:700}.lsa-drawer-sub{color:var(--muted);margin:6px 0 0;font-size:13.5px;font-weight:600}.lsa-drawer .segmented-tabs{width:100%;margin-top:16px;padding:3px}.lsa-drawer .segmented-tabs button{min-height:34px;padding:7px 14px;font-size:13px}.lsa-drawer-body{flex:1;min-height:0;padding:18px 26px;overflow-y:auto}.lsa-drawer-error{color:var(--error);margin:0 0 10px;font-size:13px;font-weight:600}.lsa-drawer-loading{color:var(--muted);margin:0;font-size:13px;font-weight:600}.lsa-empty-block{border:1.5px dashed var(--line);border-radius:var(--r-md);text-align:center;color:var(--muted);padding:42px 20px;font-size:13.5px;font-weight:600}.lsa-chat{flex-direction:column;gap:10px;display:flex}.lsa-vocab-note{color:var(--muted);margin:2px 2px 16px;font-size:13px;line-height:1.5}.lsa-word-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.lsa-word{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;width:100%;transition:box-shadow .15s var(--ease), opacity .15s var(--ease);align-items:center;gap:12px;padding:13px 14px;display:flex}.lsa-word:hover:not(:disabled){box-shadow:var(--shadow-sm)}.lsa-word:disabled{opacity:.55;cursor:default}.lsa-word-box{border:2px solid var(--line);background:var(--accent);border-color:var(--accent);color:#fff;border-radius:8px;flex:none;place-items:center;width:24px;height:24px;display:grid}.lsa-word-term{min-width:0;color:var(--ink);flex-direction:column;flex:1;gap:2px;font-size:14.5px;font-weight:800;display:flex}.lsa-word-term i{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-style:normal;font-weight:500;overflow:hidden}.lsa-word-badge{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-pill);flex:none;padding:3px 8px;font-size:10px;font-weight:800}.lsa-word-badge--accent{color:var(--accent);background:var(--accent-soft);border-color:#0000}.lsa-word-read-only{border-bottom:1px solid var(--line);align-items:center;padding:10px 0;font-size:14px;display:flex}.lsa-word-read-only:last-child{border-bottom:none}.lsa-word-read-only .lsa-word-term{align-items:baseline;gap:8px;display:flex}.lsa-word-read-only .lsa-word-term strong{color:var(--ink);font-weight:700}.lsa-word-read-only .lsa-word-term i{color:var(--muted);font-size:13px;font-style:normal}.lsa-drawer-foot{border-top:1px solid var(--line);flex:none;padding:16px 26px}@media (width<=900px){.lsa{grid-template-columns:210px 1fr}}@media (width<=820px){.lsa-page{padding:0 16px 18px}.lsa-page-head{text-align:left;width:auto}.lsa-page-head h1{font-size:24px}.lsa{grid-template-rows:auto 1fr;grid-template-columns:1fr;gap:14px;min-height:420px}.lsa-board{min-height:320px}.lsa-pane-bar{padding:8px 12px}.lsa-btn{padding:0 14px;font-size:12.5px}}.ui-ph{flex-direction:column;flex:none;gap:12px;margin-bottom:18px;display:flex}.ui-ph-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;display:flex}.ui-ph-top h1{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:26px;font-weight:700;line-height:1.15}.ui-ph-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ui-ph-top>.ui-ph-tabs{margin-left:auto}.ui-ph-top>.ui-ph-aside+.ui-ph-tabs{margin-left:0}.ui-ph-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;display:flex}.ui-ph-tabs{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-pill);flex-wrap:wrap;gap:4px;width:fit-content;max-width:100%;padding:4px;display:flex}.ui-ph-tab{border-radius:var(--r-pill);min-height:36px;font-family:var(--font-body);color:var(--muted);cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease);background:0 0;border:none;justify-content:center;align-items:center;gap:7px;padding:7px 16px;font-size:13.5px;font-weight:700;display:inline-flex}.ui-ph-tab svg{width:15px;height:15px}.ui-ph-tab:hover:not(.on){color:var(--ink)}.ui-ph-tab.on{background:var(--accent);color:#fff}.ui-ph-tab:focus-visible{box-shadow:0 0 0 3px var(--accent-soft);outline:none}.ui-ph-tabs.has-thumb{--seg-spring:cubic-bezier(.34, 1.32, .52, 1);position:relative}.ui-ph-tabs.has-thumb:before{content:"";width:var(--seg-w);height:var(--seg-h);transform:translate(var(--seg-x), var(--seg-y));border-radius:var(--r-pill);background:var(--accent);box-shadow:var(--shadow-glow);pointer-events:none;position:absolute;top:0;left:0}.ui-ph-tabs.seg-ready:before{transition:transform .45s var(--seg-spring), width .45s var(--seg-spring), height .3s var(--ease)}.ui-ph-tabs.has-thumb .ui-ph-tab{z-index:1;transition:color .3s var(--ease);position:relative}.ui-ph-tabs.has-thumb .ui-ph-tab.on{background:0 0}@media (prefers-reduced-motion:reduce){.ui-ph-tabs.seg-ready:before{transition:none}}.ui-ph-count{font-variant-numeric:tabular-nums;opacity:.7}.ui-ph-badge{font-variant-numeric:tabular-nums;border-radius:var(--r-pill);background:var(--tongue);color:#fff;place-items:center;min-width:20px;height:20px;padding:0 6px;font-size:12px;font-weight:700;line-height:1;display:inline-grid}.ui-ph-tab.on .ui-ph-badge{background:var(--on-accent-veil)}.ui-ph-aside{align-items:center;gap:10px;margin-left:auto;display:flex}.ui-ph-aside .ui-search{width:260px}@media (width<=560px){.ui-ph-aside,.ui-ph-aside .ui-search{width:100%}}@media (width<=480px),(pointer:coarse) and (orientation:portrait) and (width<=1140px){.ui-ph-tabs{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;width:100%;display:grid}.ui-ph-top>.ui-ph-tabs{flex-basis:100%;margin-left:0}.ui-ph-tab{justify-content:center;min-height:40px}}@media (pointer:coarse) and (orientation:portrait) and (width>=821px) and (width<=1140px){.ui-ph-top>.ui-ph-tabs{flex-basis:auto;width:fit-content;margin-left:auto}.ui-ph-top>.ui-ph-aside+.ui-ph-tabs{margin-left:0}}.mascot-root{justify-content:center;align-items:center;width:100%;display:flex;position:relative}.mascot-stage{z-index:1;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;width:100%;transition:transform .12s;position:relative}.mascot-stage svg{filter:drop-shadow(0 12px 26px #5850ea2e);width:100%;height:auto;display:block}.mascot-stage.pressed{transform:scale(.96)}.mascot-stage:focus-visible{outline:3px solid var(--accent);outline-offset:8px;border-radius:12px}.mascot-accessory{pointer-events:none;z-index:2;line-height:0;position:absolute;left:50%;transform:translate(-50%)}.mascot-accessory svg{max-width:100%;height:auto;display:block}.mascot-accessory--top,.mascot-accessory--band{max-width:42%;bottom:84%}.mascot-accessory--behind{z-index:0;max-width:52%;bottom:86%}.mascot-accessory--bottom{max-width:46%;bottom:4%}.mascot-scene{z-index:0;pointer-events:none;line-height:0;position:absolute;inset:0}.mascot-scene svg{width:100%;height:100%;display:block}.btn{font-family:var(--font-body);cursor:pointer;border-radius:var(--r-pill);transition:transform .15s var(--ease), background .15s, box-shadow .15s, border-color .15s, opacity .15s;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:13px 24px;font-size:15px;font-weight:700;display:inline-flex}.btn:active{transform:translateY(1px)scale(.99)}.btn:disabled{opacity:.6;cursor:default;transform:none}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 6px 18px #5a4ff352}.btn-primary:hover:not(:disabled){background:var(--accent-press)}.btn-secondary{background:var(--surface);color:var(--ink);border:1.5px solid var(--line)}.btn-secondary:hover:not(:disabled){border-color:var(--ink)}.btn-ghost{color:var(--accent);box-shadow:none;background:0 0;padding:13px 16px}.btn-ghost:hover:not(:disabled){background:var(--accent-soft)}.btn-onink{background:var(--accent-soft);color:var(--accent);box-shadow:none}.btn-onink:hover:not(:disabled){background:#dedcfc}.btn-sm{min-height:38px;padding:9px 16px;font-size:13.5px}.btn-block{width:100%}.dashboard-tab{flex-direction:column;gap:20px;width:100%;max-width:1300px;margin:0 auto;padding:24px 30px 96px;display:flex}.app-banner-slot:not(:empty)+.dashboard-tab{padding-top:0}.dash-companion{background:radial-gradient(620px 320px at 12% 34%, var(--accent-soft), transparent 60%), var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-md);border-radius:var(--r-lg);padding:26px 30px 22px;overflow:hidden}.dash-companion__top{grid-template-columns:186px minmax(0,1fr);align-items:center;gap:30px;display:grid}.dash-eye-slot{justify-content:center;align-items:center;width:186px;display:flex;position:relative}.dash-eye-slot:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(circle,#5850ea24 0%,#0000 60%);position:absolute;inset:-10px}.dash-hello{font-family:var(--font-display);margin-bottom:4px;font-size:clamp(22px,2.4vw,28px);font-weight:700}.dash-hello span{color:var(--accent)}.dash-hello-sub{color:var(--muted);margin-bottom:18px;font-size:14px;font-weight:500}.dash-idiom{border-left:3px solid var(--accent-soft);padding-left:16px;transition:border-color .3s}.dash-idiom.speaking{border-color:var(--accent)}.dash-idiom-label{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:800}.dash-idiom-phrase{font-family:var(--font-display);margin:4px 0 2px;font-size:clamp(20px,2.2vw,26px);font-weight:600;transition:color .2s}.dash-idiom.speaking .dash-idiom-phrase{color:var(--accent)}.dash-idiom-ru{color:var(--muted);margin-top:5px;font-size:14px}.dash-idiom-actions{flex-wrap:wrap;gap:9px;margin-top:16px;display:flex}.dash-companion__stats{border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:20px;margin-top:24px;padding-top:19px;display:grid}.dash-stat b{font-family:var(--font-display);font-size:21px;font-weight:600;line-height:1.2;display:block}.dash-stat span{color:var(--muted);font-size:12px;font-weight:600}.dash-stat small{color:var(--muted);font-size:14px;font-weight:600}.dash-stat i{color:var(--success);margin-left:5px;font-size:12px;font-style:normal;font-weight:700}.dash-cols{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}.dash-col{flex-direction:column;gap:18px;min-width:0;display:flex}.dash-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:21px 22px}.dash-card-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px;display:flex}.dash-card-title{font-family:var(--font-display);font-size:15.5px;font-weight:600}.dash-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:800}.dash-sec-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.dash-sec-head h2{font-family:var(--font-display);font-size:17px}.dash-link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:13.5px;font-weight:700;text-decoration:none}.dash-link:hover{text-decoration:underline}.dash-muted-text{color:var(--muted);font-size:14px;line-height:1.5}.dash-lesson{box-shadow:var(--shadow-md);background:linear-gradient(180deg, var(--accent-soft), transparent 60%), var(--surface);padding:0;overflow:hidden}.dash-lesson-flag{color:var(--accent);align-items:center;gap:9px;padding:12px 22px 10px;font-size:13px;font-weight:700;display:flex}.dash-lesson-flag-label{letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:800}.dash-lesson-flag.urgent{background:var(--streak-bg);color:var(--streak-fg)}.dash-live-dot{background:currentColor;border-radius:50%;width:8px;height:8px;animation:2s infinite dash-pulse}@keyframes dash-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.82)}}.dash-lesson-body{padding:20px 22px 22px}.dash-lesson-flag+.dash-lesson-body{padding-top:2px}.dash-lesson-flag.urgent+.dash-lesson-body{padding-top:14px}.dash-lesson-topic{font-family:var(--font-display);margin:8px 0 14px;font-size:23px;line-height:1.2}.dash-lesson-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 18px;display:flex}.dash-lesson-when{align-items:center;gap:12px;display:inline-flex}.dash-lesson-when-ic{border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--line);width:38px;height:38px;color:var(--accent);flex:none;justify-content:center;align-items:center;display:flex}.dash-lesson-when-ic svg{width:18px;height:18px}.dash-lesson-when-text{flex-direction:column;gap:2px;min-width:0;display:flex}.dash-lesson-when-text em{color:var(--ink);font-size:15px;font-style:normal;font-weight:700}.dash-lesson-when-text i{color:var(--muted);font-size:13px;font-style:normal;font-weight:600}.dash-lesson-teacher{color:var(--muted);align-items:center;gap:8px;font-size:13px;font-weight:600;display:inline-flex}.dash-empty-card{flex-direction:column;gap:6px;display:flex}.dash-empty-card p{color:var(--muted);font-size:14px;line-height:1.5}.dash-hw-checklist{flex-direction:column;gap:2px;margin:0 0 16px;padding:0;list-style:none;display:flex}.dash-hw-checklist-item{width:100%;min-height:36px;color:var(--ink);text-align:left;cursor:pointer;border-radius:var(--r-sm);background:0 0;border:none;align-items:center;gap:9px;padding:3px 2px;font-family:inherit;font-size:14.5px;display:flex}.dash-hw-checklist-item:hover{background:var(--paper)}.dash-hw-checklist-item.done{color:var(--muted);text-decoration:line-through}.dash-hw-checklist-box{border:1.5px solid var(--line);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.dash-hw-checklist-item.done .dash-hw-checklist-box{background:var(--success);border-color:var(--success)}.dash-hw-checklist-box svg{width:12px;height:12px}.dash-chip{border-radius:var(--r-pill);background:var(--paper);color:var(--muted);padding:4px 10px;font-size:11.5px;font-weight:700}.dash-chip-warn{background:var(--streak-bg);color:var(--streak-fg)}.dash-practice{scroll-snap-type:x proximity;scrollbar-width:thin;overscroll-behavior-x:contain;gap:14px;padding:6px 0 16px;display:flex;overflow:auto hidden}.dash-pcard{scroll-snap-align:start;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;transition:transform .18s var(--ease), box-shadow .18s, border-color .18s;text-align:left;font-family:var(--font-body);color:var(--ink);flex-direction:column;flex:0 0 calc(33.3333% - 9.33333px);gap:6px;padding:18px;display:flex}.dash-pcard--redo{border-color:var(--tongue-soft);background:linear-gradient(var(--tongue-soft), var(--surface) 70%)}.dash-pcard--redo:hover{border-color:var(--tongue)}.dash-pcard--redo .dash-pcard-ic{background:var(--tongue-soft);color:var(--tongue-groove)}.dash-pcard--redo .dash-pcard-foot{color:var(--tongue-groove)}.dash-pcard:hover{box-shadow:var(--shadow-md);border-color:#0000;transform:translateY(-3px)}.dash-pcard-ic{border-radius:var(--r-sm);background:var(--accent-soft);width:34px;height:34px;color:var(--accent);justify-content:center;align-items:center;margin-bottom:4px;display:flex}.dash-pcard b{font-size:14.5px}.dash-pcard>span{color:var(--muted);font-size:12.5px}.dash-pcard-foot{color:var(--muted);justify-content:space-between;align-items:center;margin-top:auto;padding-top:12px;font-size:11.5px;font-weight:700;display:flex}.dash-bar{background:var(--line);border-radius:var(--r-pill);height:7px;margin-top:8px;overflow:hidden}.dash-bar>i{background:var(--accent);border-radius:var(--r-pill);width:100%;height:100%;transform:scaleX(var(--progress));transform-origin:0;transition:transform .5s var(--ease);display:block}.dash-week{grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:16px;display:grid}.dash-day{text-align:center;border-radius:var(--r-sm);border:1px solid var(--line);padding:9px 0 7px}.dash-day-d{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:10.5px;font-weight:800}.dash-day-n{margin-top:1px;font-size:15px;font-weight:700}.dash-day-mark{background:var(--line);border-radius:50%;width:6px;height:6px;margin:5px auto 0}.dash-day.has .dash-day-mark{background:var(--accent)}.dash-day.today{border-color:var(--ink);background:var(--ink);color:#fff}.dash-day.today .dash-day-d{color:#fff9}.dash-day.today.has .dash-day-mark{background:var(--tongue)}.dash-slot{border-top:1px dashed var(--line);align-items:center;gap:10px;padding:9px 0;font-size:13px;display:flex}.dash-slot b{min-width:78px;font-weight:700}.dash-slot span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dash-slot--past{opacity:.5}.dash-wordcard-word{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:-4px 0 8px;display:flex}.dash-wordcard-word b{font-family:var(--font-display);letter-spacing:-.02em;font-size:24px;font-weight:700}.dash-say{background:var(--accent);color:#fff;cursor:pointer;width:34px;height:34px;transition:transform .15s var(--ease);border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13.5px;display:flex;box-shadow:0 6px 14px #5850ea4d}.dash-say:hover{transform:scale(1.08)}.dash-say:active{transform:scale(.94)}.dash-say:disabled{opacity:.6;cursor:default;transform:none}.dash-say svg{width:16px;height:16px}.dash-wordcard-ipa{font-family:var(--font-mono);color:var(--accent);font-size:14px;font-weight:600}.dash-wordcard-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;display:flex}.dash-wordcard-ru{color:var(--ink);min-width:0;margin:0;font-size:14.5px;font-weight:600}.dash-revise{flex-wrap:wrap;gap:7px;margin-bottom:16px;display:flex;position:relative}.dash-word-chip{border-radius:var(--r-pill);border:1.5px solid var(--line);background:var(--surface);text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding:6px 12px;font-size:13px;font-weight:600;overflow:hidden}@media (width<=1180px){.dash-cols{grid-template-columns:1fr}}@media (width<=820px){.dashboard-tab{padding:18px 18px 110px}.dash-companion{padding:22px 20px 18px}.dash-companion__top{grid-template-columns:150px minmax(0,1fr);gap:22px}.dash-eye-slot{width:150px}.dash-pcard{flex-basis:210px}}@media (width<=480px){.dash-companion__top{text-align:center;grid-template-columns:1fr;gap:18px}.dash-eye-slot{margin:0 auto}.dash-idiom{border-left:none;border-top:3px solid var(--accent-soft);text-align:center;padding:14px 0 0}.dash-idiom.speaking{border-color:var(--accent)}.dash-idiom-actions{justify-content:center}.dashboard-tab{gap:14px;padding:10px 16px 40px}.dash-card.dash-lesson{padding:0}.dash-lesson-flag{white-space:nowrap;gap:7px;padding:12px 16px 6px;font-size:12.5px}.dash-lesson-flag-label{letter-spacing:.08em;flex:none;font-size:10.5px}.dash-lesson-flag>span:last-child{text-overflow:ellipsis;min-width:0;overflow:hidden}.dash-lesson-body{padding:14px 16px 16px}.dash-lesson-flag+.dash-lesson-body{padding-top:2px}.dash-lesson-topic{margin:4px 0 12px;font-size:19px}.dash-lesson-row{flex-wrap:nowrap;gap:12px}.dash-lesson-when{gap:10px;min-width:0}.dash-lesson-when-ic{width:32px;height:32px}.dash-lesson-when-ic svg{width:16px;height:16px}.dash-lesson-when-text em{font-size:14px}.dash-lesson-teacher-name,.dash-lesson-flag-verb{display:none}.dash-companion{padding:18px 16px 16px}.dash-companion__top{gap:10px}.dash-eye-slot{width:96px}.dash-hello-sub{font-size:13px}.dash-idiom{padding-top:12px}.dash-card{padding:16px}.dash-pcard{scroll-snap-align:start}.dash-practice{scroll-snap-type:x mandatory}}.rr-body{max-width:760px;margin:0 auto;padding:0 4px 80px}.rr-lede{color:var(--muted);margin:0 0 22px;font-size:14.5px;line-height:1.55}.rr-group{scroll-margin-top:16px}.rr-group+.rr-group{margin-top:22px}.rr-group-cap{font-family:var(--font-display);margin:0 2px 11px;font-size:15px;font-weight:700}.rr-start{border-radius:var(--r-pill);background:var(--accent);color:#fff;width:100%;font-family:var(--font-body);cursor:pointer;box-shadow:var(--shadow-glow);border:0;margin-top:20px;padding:15px 22px;font-size:15px;font-weight:700;display:block}.rr-start:hover{background:var(--accent-press)}.trp{background:var(--paper);border-radius:var(--r-lg);place-items:center;width:100%;height:224px;padding:20px;display:grid}.trp-fan{width:230px;height:150px;position:relative}.trp-card{border:1px solid var(--line);background:var(--surface);width:96px;height:132px;box-shadow:var(--shadow-sm);border-radius:14px;position:absolute}.trp-card-back{background:radial-gradient(circle at 30% 30%, #fff 0 1px, transparent 1px) 0 0 / 12px 12px, var(--accent-soft)}.trp-card-face{flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:10px;display:flex}.trp-word{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);font-size:17px;font-weight:700}.trp-ipa{font-family:var(--font-mono);color:var(--muted);font-size:12px}.trp-swipe{width:230px;height:150px;position:relative}.trp-stamp{border-radius:var(--r-pill);background:var(--success-soft);color:var(--success-groove);padding:2px 8px;font-size:11px;font-weight:800;position:absolute;top:10px;left:10px}.trp-taboo-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);width:210px;box-shadow:var(--shadow-sm);text-align:center;padding:18px}.trp-taboo-card .trp-word{font-size:22px}.trp-tr{color:var(--muted);margin:2px 0 14px;font-size:13px}.trp-ban{flex-wrap:wrap;justify-content:center;gap:7px;display:flex}.trp-ban span{border-radius:var(--r-pill);background:var(--error-soft);color:var(--error);padding:5px 11px;font-size:12.5px;font-weight:700}.trp-mix-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);width:260px;box-shadow:var(--shadow-sm);padding:18px}.trp-cap{text-align:center;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:800}.trp-mix-words{justify-content:center;gap:10px;margin:12px 0;display:flex}.trp-mix-words b{border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent-press);font-family:var(--font-display);letter-spacing:-.02em;padding:8px 15px;font-size:16px;font-weight:700}.trp-mic{border:3px solid var(--accent-soft);width:56px;height:56px;color:var(--accent);border-radius:50%;place-items:center;margin:6px auto 0;display:grid}.trp-mic svg{width:22px;height:22px}.trp[data-animated]{overflow:hidden}.trp[data-animated] .trp-still{place-items:center;display:grid}.trp[data-animated] .trp-loop{display:none}@media (prefers-reduced-motion:no-preference){.trp[data-animated] .trp-still{display:none}.trp[data-animated] .trp-loop{display:block}}@media (width<=480px){.trp[data-animated]{height:196px;padding:13px}}.trpl-stage{--trpl-loop:5s;width:280px;height:170px;position:relative}:where(.trpl-stage *),.trpl-stage :after{animation-duration:var(--trpl-loop);animation-timing-function:var(--ease);animation-iteration-count:infinite;animation-fill-mode:both}.trpl-card{border:1px solid var(--line);background:var(--surface);width:80px;height:110px;box-shadow:var(--shadow-sm);border-radius:14px;position:absolute;top:0;left:0}.trpl-flipper{box-shadow:none;perspective:600px;background:0 0;border:0}.trpl-flip{border-radius:inherit;transform-style:preserve-3d;position:absolute;inset:0}.trpl-side{border-radius:inherit;border:1px solid var(--line);box-shadow:var(--shadow-sm);backface-visibility:hidden;position:absolute;inset:0}.trpl-face{background:var(--surface);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:8px;display:flex;transform:rotateY(180deg)}.trpl-face .trp-word{font-size:16px}.trpl-face .trp-ipa{font-size:11px}.trpl-slot{border-radius:var(--r-sm);background:color-mix(in srgb, var(--ink) 2.5%, var(--paper));border:1px solid var(--line);position:absolute;box-shadow:inset 0 2px 8px #16151f12,inset 0 1px 1px #16151f0d}.trpl-mic{background:var(--accent);width:40px;height:40px;color:var(--surface);box-shadow:var(--shadow-glow);border-radius:50%;place-items:center;animation-name:trpl-mic;display:grid;position:absolute}.trpl-mic svg{width:18px;height:18px;position:relative}.trpl-halo{background:var(--accent);border-radius:50%;animation-name:trpl-halo;position:absolute;inset:0}@keyframes trpl-mic{0%,30%{opacity:0;transform:scale(.6)}36%,68%{opacity:1;transform:scale(1)}74%,to{opacity:0;transform:scale(.8)}}@keyframes trpl-halo{0%,38%{opacity:0;transform:scale(1)}38.1%{opacity:.45;transform:scale(1)}52%{opacity:0;transform:scale(1.9)}52.1%{opacity:.45;transform:scale(1)}66%,to{opacity:0;transform:scale(1.9)}}.trpl-bubble{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);color:var(--ink);transform-origin:0;flex-wrap:wrap;align-content:flex-start;gap:3px 5px;padding:10px 12px;font-size:13.5px;font-weight:600;line-height:1.35;animation-name:trpl-bubble;display:flex;position:absolute}.trpl-bubble:before{content:"";background:var(--surface);border-left:1px solid var(--line);border-bottom:1px solid var(--line);width:10px;height:10px;position:absolute;top:22px;left:-6px;transform:rotate(45deg)}.trpl-w{animation-name:trpl-word;position:relative}.trpl-w-hit{background:var(--accent-soft);color:var(--accent);border-radius:6px;margin:0 -2px;padding:0 4px}.trpl-rec{align-items:center;gap:8px;display:flex;position:absolute}.trpl-rec-mic{background:var(--accent);width:30px;height:30px;color:var(--surface);border-radius:50%;place-items:center;animation-name:trpl-rec;display:grid}.trpl-rec-mic svg{width:15px;height:15px}.trpl-wave{align-items:center;gap:3px;height:24px;animation-name:trpl-rec;display:flex}.trpl-wave i{background:var(--accent);width:3px;height:22px;transform:scaleY(calc(var(--h) * .5));animation:trpl-bar .8s var(--ease) infinite alternate;border-radius:2px;display:block}.trpl-rec-ok{background:var(--success-soft);width:26px;height:26px;color:var(--success-groove);border-radius:50%;place-items:center;animation-name:trpl-ok;display:grid;position:absolute;top:2px;left:38px}.trpl-rec-ok svg{width:15px;height:15px}@keyframes trpl-bubble{0%,18%{opacity:0;transform:scale(.92)}22%,88%{opacity:1;transform:scale(1)}94%,to{opacity:0;transform:scale(1)}}@keyframes trpl-word{0%,24%{opacity:0;transform:translateY(3px)}28%,88%{opacity:1;transform:translateY(0)}94%,to{opacity:0}}@keyframes trpl-rec{0%,28%{opacity:0}32%,72%{opacity:1}76%,to{opacity:0}}@keyframes trpl-bar{0%{transform:scaleY(calc(var(--h) * .35))}to{transform:scaleY(var(--h))}}@keyframes trpl-ok{0%,73%{opacity:0;transform:scale(.6)}78%,88%{opacity:1;transform:scale(1)}94%,to{opacity:0;transform:scale(1)}}.trpl-fc{--trpl-loop:5.6s}.trpl-fc-card{width:112px;height:158px;transform:translateY(6px)}.trpl-fc-card .trp-word{font-size:18px}.trpl-fc-card .trpl-flip{animation-name:trpl-fc-flip}.trpl-fc-say{width:152px;top:26px;left:128px}.trpl-fc-say-rec{top:118px;left:134px}@keyframes trpl-fc-flip{0%,4%{transform:rotateY(0)}14%,90%{transform:rotateY(180deg)}98%,to{transform:rotateY(360deg)}}.trpl-sw{--trpl-loop:6s}.trpl-sw-table,.trpl-sw-quiz,.trpl-sw-pairs{position:absolute;inset:0}.trpl-sw .trpl-card{width:84px;height:116px}.trpl-sw-table{animation-name:trpl-sw-table}.trpl-sw-slot-l,.trpl-sw-slot-r{width:70px;height:92px;top:18px}.trpl-sw-slot-l{left:0}.trpl-sw-slot-r{left:210px}.trpl-sw .trpl-sw-pile-l,.trpl-sw .trpl-sw-pile-r{border-radius:10px;width:60px;height:82px}.trpl-sw-pile-l{transform:translate(5px,23px)rotate(-8deg)}.trpl-sw-pile-r{transform:translate(215px,23px)rotate(8deg)}.trpl-sw-label{text-align:center;width:70px;font-size:11px;font-weight:800;position:absolute;top:118px}.trpl-sw-label-l{color:var(--streak-fg);left:0}.trpl-sw-label-r{color:var(--success-groove);left:210px}.trpl-sw-a{animation-name:trpl-sw-a;transform:translate(98px,8px)}.trpl-sw-a .trpl-flip{animation-name:trpl-sw-a-flip}.trpl-sw-b{animation-name:trpl-sw-b;transform:translate(98px,8px)}.trpl-sw-b .trpl-flip{animation-name:trpl-sw-b-flip}.trpl-stamp{background:var(--surface);letter-spacing:.08em;text-transform:uppercase;border:2px solid;border-radius:8px;padding:2px 6px;font-size:9px;font-weight:800;position:absolute;top:10px}.trpl-stamp-know{color:var(--success-groove);animation-name:trpl-stamp-know;left:8px;transform:rotate(-12deg)}.trpl-stamp-learn{color:var(--streak-fg);animation-name:trpl-stamp-learn;right:8px;transform:rotate(12deg)}@keyframes trpl-stamp-know{0%,14%{opacity:0}19%,28%{opacity:1}32%,to{opacity:0}}@keyframes trpl-stamp-learn{0%,44%{opacity:0}47%,54%{opacity:1}58%,to{opacity:0}}@keyframes trpl-sw-a{0%,14%{opacity:1;transform:translate(98px,8px)}20%{opacity:1;transform:translate(126px,4px)rotate(7deg)}30%,31%{opacity:1;transform:translate(203px,6px)scale(.714)rotate(8deg)}32%,65.9%{opacity:0;transform:translate(203px,6px)scale(.714)rotate(8deg)}66%,to{opacity:1;transform:translate(98px,8px)}}@keyframes trpl-sw-a-flip{0%,4%{transform:rotateY(0)}14%,20%{transform:rotateY(180deg)}30%,to{transform:rotateY(360deg)}}@keyframes trpl-sw-b{0%,44%{opacity:1;transform:translate(98px,8px)}48%{opacity:1;transform:translate(70px,4px)rotate(-7deg)}56%,57%{opacity:1;transform:translate(-7px,6px)scale(.714)rotate(-8deg)}58%,65.9%{opacity:0;transform:translate(-7px,6px)scale(.714)rotate(-8deg)}66%,to{opacity:1;transform:translate(98px,8px)}}@keyframes trpl-sw-b-flip{0%,34%{transform:rotateY(0)}42%,48%{transform:rotateY(180deg)}56%,to{transform:rotateY(360deg)}}@keyframes trpl-sw-table{0%,58%{opacity:1}63%,92%{opacity:0}98%,to{opacity:1}}.trpl-sw-quiz{grid-template-columns:repeat(2,126px);place-content:center;gap:8px;animation-name:trpl-sw-quiz;display:grid}.trpl-sw-q{text-align:center;font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);grid-column:1/-1;margin-bottom:6px;font-size:20px;font-weight:600}.trpl-tile{border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--surface);height:36px;color:var(--ink);place-items:center;padding:0 6px;font-size:12.5px;font-weight:600;display:grid}.trpl-sw-quiz .trpl-tile-ok{animation-name:trpl-quiz-ok}@keyframes trpl-sw-quiz{0%,60%{opacity:0;transform:translateY(8px)}65%,76%{opacity:1;transform:translateY(0)}79%,to{opacity:0;transform:translateY(0)}}@keyframes trpl-quiz-ok{0%,69%{border-color:var(--line);background:var(--surface);color:var(--ink)}71%,to{border-color:var(--success);background:var(--success-soft);color:var(--success-groove)}}.trpl-sw-pairs{grid-template-columns:repeat(3,88px);grid-auto-rows:44px;place-content:center;gap:8px;animation-name:trpl-sw-pairs;display:grid}.trpl-sw-pairs .trpl-tile{height:auto;padding:0 3px;font-size:11.5px}.trpl-sw-pairs .trpl-tile:nth-child(odd){font-weight:700}.trpl-pair{animation-name:trpl-pair}@keyframes trpl-sw-pairs{0%,78%{opacity:0}81%,90%{opacity:1}93%,to{opacity:0}}@keyframes trpl-pair{0%,82%{opacity:1;border-color:var(--line);background:var(--surface);color:var(--ink);transform:scale(1)}83.5%{opacity:1;border-color:var(--accent);background:var(--accent-soft);color:var(--accent-press);transform:scale(1)}85.5%,87%{opacity:1;border-color:var(--success);background:var(--success-soft);color:var(--success-groove);transform:scale(1)}89.5%,to{opacity:0;border-color:var(--success);background:var(--success-soft);color:var(--success-groove);transform:scale(.92)}}.trpl-tb{--trpl-loop:5.6s}.trpl-tb-card{background:var(--surface);border:1px solid var(--line);width:116px;height:162px;box-shadow:var(--shadow-sm);text-align:center;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;padding:10px 7px;display:flex;position:absolute;top:4px;left:0}.trpl-tb-word{font-family:var(--font-display);color:var(--ink);font-size:17px;font-weight:700}.trpl-tb-cap{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:12px;font-size:9.5px;font-weight:800}.trpl-tb-ban{flex-wrap:wrap;justify-content:center;gap:4px;margin-top:6px;display:flex}.trpl-tb-ban span{border-radius:var(--r-pill);background:var(--error-soft);color:var(--error);white-space:nowrap;justify-content:center;align-items:center;gap:2px;padding:3px 5px;font-size:10px;font-weight:700;display:inline-flex}.trpl-tb-ban svg{flex:none;width:9px;height:9px}.trpl-tb-say{width:148px;top:22px;left:130px}.trpl-tb-say-rec{top:118px;left:136px}.trpl-mx{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm)}.trpl-mx .trp-cap{position:absolute;top:16px;left:0;right:0}.trpl-mx-row{justify-content:center;gap:8px;display:flex;position:absolute;top:48px;left:0;right:0}.trpl-mx-row b{border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent-press);font-family:var(--font-display);letter-spacing:-.02em;padding:6px 12px;font-size:15px;font-weight:700;animation-name:trpl-mx-drop}.trpl-mx-line{background:var(--line);border-radius:1px;height:2px;position:absolute;top:90px;left:30px;right:30px}.trpl-mx-line:after{content:"";border-radius:inherit;background:var(--success);transform-origin:0;animation-name:trpl-mx-fill;position:absolute;inset:0}.trpl-mx-mic,.trpl-mx-ok{width:44px;height:44px;top:110px;left:118px}.trpl-mx-ok{background:var(--success-soft);color:var(--success-groove);border-radius:50%;place-items:center;animation-name:trpl-mx-ok;display:grid;position:absolute}.trpl-mx-ok svg{width:22px;height:22px}@keyframes trpl-mx-drop{0%,4%{opacity:0;transform:translateY(-34px)rotate(-8deg)}14%,84%{opacity:1;transform:translateY(0)rotate(0)}90%{opacity:0;transform:translateY(4px)}to{opacity:0;transform:translateY(-34px)rotate(-8deg)}}@keyframes trpl-mx-fill{0%,68%{opacity:1;transform:scaleX(0)}76%,86%{opacity:1;transform:scaleX(1)}92%{opacity:0;transform:scaleX(1)}92.1%,to{opacity:0;transform:scaleX(0)}}@keyframes trpl-mx-ok{0%,72%{opacity:0;transform:scale(.5)}77%{opacity:1;transform:scale(1.1)}80%,88%{opacity:1;transform:scale(1)}94%,to{opacity:0;transform:scale(1)}}.gc-page .fc-slot.fc-open{--gc-h:min(calc(100dvh - 32px), 560px, calc((100vw - 32px) * 292 / 208));width:calc(var(--gc-h) * 208 / 292);height:var(--gc-h);top:50%;left:50%;transform-origin:50%;--fc-sc:1;--fc-hy:0px;--fc-hr:0deg;opacity:1;z-index:200;margin:0;transition:none;position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.gc-page .fc-slot.fc-open .fc-pop{transition:none;transform:none}.gc-page .fc-slot.fc-open .fc-inner{transition:none}.gc-page .fc-slot.fc-open .fc-face{border-radius:var(--r-md)}.gc-page .fc-slot.fc-open .fc-back{gap:0;padding:0;display:block;position:absolute;inset:0;overflow:hidden}.gc-page .fc-stage.busy .fc-veil{z-index:150;position:fixed;inset:0}.gc-open{text-align:center;-webkit-user-select:text;user-select:text;cursor:default;flex-direction:column;gap:12px;height:100%;padding:22px 18px 18px;display:flex}.gc-close{min-width:44px;min-height:44px;color:var(--muted);border-radius:var(--r-sm);cursor:pointer;z-index:2;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:8px;right:8px}.gc-close:hover{background:var(--paper);color:var(--ink)}.gc-head{flex-direction:column;flex:none;gap:2px;padding:0 30px;display:flex}.gc-word{font-family:var(--font-display);letter-spacing:-.02em;overflow-wrap:anywhere;font-size:clamp(20px,6.5vw,30px);font-weight:700;line-height:1.05}.gc-translation{color:var(--muted);font-size:14px}.gc-body{flex-direction:column;flex:1;justify-content:safe center;gap:10px;min-height:0;display:flex;overflow-y:auto}.gc-task{flex-direction:column;align-items:center;gap:12px;display:flex}.gc-task-text{color:var(--muted);max-width:26ch;font-size:14px}.gc-taboo{border:1.5px solid var(--error-soft);background:var(--error-soft);border-radius:var(--r-sm);padding:12px 12px 14px}.gc-taboo-label{letter-spacing:.12em;text-transform:uppercase;color:var(--error);margin-bottom:8px;font-size:11px;font-weight:800}.gc-taboo-list{flex-wrap:wrap;justify-content:center;gap:6px;margin:0;padding:0;list-style:none;display:flex}.gc-taboo-list li{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);color:var(--ink);padding:4px 11px;font-size:13.5px;font-weight:600}.gc-frames-btn{margin-top:10px}.gc-frames{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-sm);text-align:left;margin-top:10px;padding:10px 12px 12px}.gc-frames-label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-size:11px;font-weight:800}.gc-frames-list{color:var(--ink);gap:4px;margin:0;padding:0;font-size:13.5px;list-style:none;display:grid}.gc-live{flex-direction:column;gap:4px;display:flex}.gc-live-warning{color:var(--error);font-size:12.5px;font-weight:700}.gc-review{flex-direction:column;gap:12px;display:flex}.gc-verdict{text-align:left;border-radius:var(--r-sm);align-items:center;gap:8px;padding:10px 12px;font-size:14px;font-weight:700;display:flex}.gc-verdict.ok{background:var(--success-soft);color:var(--success)}.gc-verdict.fail{background:var(--error-soft);color:var(--error)}.gc-verdict-icon{background:var(--surface);border-radius:50%;flex:none;place-items:center;width:24px;height:24px;display:grid}.gc-verdict-icon svg{width:15px;height:15px}.gc-transcript-box{border:1px solid var(--line);border-radius:var(--r-sm);text-align:left;padding:10px 12px}.gc-transcript-label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;font-size:11px;font-weight:800}.gc-transcript{color:var(--ink);overflow-wrap:anywhere;font-size:14px;font-style:italic}.gc-playback{width:100%;height:38px}.gc-hint{color:var(--muted);font-size:11.5px}.gc-dock{flex-direction:column;flex:none;justify-content:center;align-items:center;gap:8px;min-height:92px;display:flex}.gc-dock-block{flex-direction:column;align-items:center;gap:8px;width:100%;display:flex}.gc-dock-warning{color:var(--error);font-size:13px;font-weight:600}.gc-dock-hint{color:var(--muted);font-size:13px}.gc-dock-hint b{color:var(--ink);font-variant-numeric:tabular-nums}.gc-countdown{flex-direction:column;align-items:center;gap:6px;display:flex}.gc-ring-wrap{place-items:center;width:48px;height:48px;display:grid;position:relative}.gc-ring{width:48px;height:48px;position:absolute;inset:0;transform:rotate(-90deg)}.gc-ring-track{fill:none;stroke:var(--line);stroke-width:3px}.gc-ring-fill{fill:none;stroke:var(--accent);stroke-width:3px;stroke-linecap:round;transition:stroke-dashoffset 1s linear}.gc-ring-icon{color:var(--accent);place-items:center;display:grid}.gc-ring-icon svg{width:18px;height:18px}.gc-listening{align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.gc-mic-live{background:var(--error);color:#fff;width:30px;height:30px;animation:gc-mic-pulse 1.4s var(--ease) infinite;border-radius:50%;place-items:center;display:grid}.gc-mic-live svg{width:15px;height:15px}@keyframes gc-mic-pulse{0%,to{box-shadow:0 0 #e5484d66}55%{box-shadow:0 0 0 9px #e5484d00}}.gc-spinner{color:var(--accent);place-items:center;animation:1s linear infinite gc-spin;display:grid}.gc-spinner svg{width:18px;height:18px}@keyframes gc-spin{to{transform:rotate(360deg)}}.gc-actions{gap:8px;width:100%;display:flex}.gc-btn{border-radius:var(--r-pill);min-height:44px;font-family:var(--font-body);border:1.5px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;flex:1;justify-content:center;align-items:center;gap:6px;padding:11px 14px;font-size:14px;font-weight:700;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.gc-btn svg{width:16px;height:16px}.gc-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.gc-btn-primary:hover{background:var(--accent-press);border-color:var(--accent-press)}.gc-btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.gc-btn-stop{background:var(--error);border-color:var(--error);color:#fff;flex:none;min-width:140px}.gc-btn-stop:hover{background:var(--tongue-groove);border-color:var(--tongue-groove)}@media (width<=480px){.gc-open{gap:10px;padding:18px 14px 14px}.gc-dock{min-height:84px}.gc-taboo-list li{font-size:13px}}.gc-retake-note{border-radius:var(--r-sm);background:var(--tongue-soft);color:var(--tongue-groove);text-align:left;margin-bottom:12px;padding:10px 12px;font-size:13px;line-height:1.45}.gc-retake-note p{margin:0}.gc-retake-marks{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.gc-retake-mark{border-radius:var(--r-pill);background:var(--surface);padding:2px 8px;font-size:10.5px;font-weight:700}.gc-retake-mark.grammar{color:var(--m-gram)}.gc-retake-mark.vocab{color:var(--m-vocab)}.gc-retake-mark.good{color:var(--m-good)}.fc-ipa{font-family:var(--font-mono);color:var(--accent);font-size:12px}.fc-say{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);cursor:pointer;border:none;border-radius:50%;flex:none;place-items:center;transition:background .18s,color .18s,transform .12s;display:grid;position:relative}.fc-say:before{content:"";position:absolute;inset:-5px}.fc-say:hover{background:var(--accent);color:#fff}.fc-say:active{transform:scale(.93)}.fc-say:disabled{opacity:.6;cursor:default}.fc-say svg{width:16px;height:16px}.fc-back-row{justify-content:center;align-items:center;gap:8px;margin-top:4px;display:flex}.sw-modes-note{color:var(--muted);margin-top:18px;font-size:13.5px;font-weight:700}.sw-modes{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:12px;display:grid}.sw-mode{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);font-family:var(--font-body);color:var(--ink);cursor:pointer;transition:box-shadow .18s var(--ease), transform .18s var(--ease), border-color .18s var(--ease);flex-direction:column;gap:6px;padding:18px;display:flex}.sw-mode:hover:not(:disabled){box-shadow:var(--shadow-md);border-color:var(--accent);transform:translateY(-3px)}.sw-mode:focus-visible{box-shadow:0 0 0 3px var(--accent-soft);border-color:var(--accent);outline:none}.sw-mode--off{background:var(--paper);cursor:default}.sw-mode--off .sw-mode-name,.sw-mode--off .sw-mode-desc{color:var(--muted)}.sw-mode-top{justify-content:space-between;align-items:center;gap:8px;min-height:30px;display:flex}.sw-mode-name{font-family:var(--font-display);letter-spacing:-.02em;font-size:18px;font-weight:700}.sw-mode-desc{color:var(--muted);font-size:13.5px;line-height:1.4}.sw-mode-meta{color:var(--muted);margin-top:2px;font-size:12.5px;font-weight:700}.sw-mode:not(:disabled) .sw-mode-meta{color:var(--accent)}.sw-mode-play{background:var(--accent);color:#fff;opacity:0;width:30px;height:30px;transition:opacity .15s var(--ease);border-radius:50%;place-items:center;display:grid}.sw-mode-play svg{width:14px;height:14px}.sw-mode:hover .sw-mode-play,.sw-mode:focus-visible .sw-mode-play{opacity:1}.sw-chip{border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line);color:var(--muted);padding:4px 10px;font-size:11.5px;font-weight:700}.sw-modes-empty{background:var(--paper);border-radius:var(--r-md);color:var(--ink);flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;padding:18px;font-size:14px;display:flex}.sw-modes-empty p{flex:240px;margin:0}.sw-modes-empty-ico{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:10px;place-items:center;display:grid}.sw-modes-empty-ico svg{width:16px;height:16px}.sw-link{min-height:44px;font-family:var(--font-body);color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:14px;font-weight:700}.sw-link:hover{color:var(--accent-press);text-decoration:underline}.sw-note{color:var(--muted);font-size:14px;font-weight:600}@media (prefers-reduced-motion:reduce){.sw-mode{transition:none}}@media (width<=480px){.sw-modes{grid-template-columns:1fr;gap:10px}.sw-mode{padding:16px}}.link-button{cursor:pointer;font-family:var(--font-body);color:var(--muted);background:0 0;border:none;align-items:center;gap:4px;padding:6px 4px;font-size:13.5px;font-weight:700;display:inline-flex}.link-button:hover{color:var(--ink)}.game-page.fc-page{width:100%;max-width:1120px}.fc-root{flex-direction:column;gap:4px;display:flex}@property --fc-rot{syntax:"<angle>";inherits:false;initial-value:0deg}@property --fc-ty{syntax:"<length>";inherits:false;initial-value:0}@property --fc-hy{syntax:"<length>";inherits:true;initial-value:0}@property --fc-hr{syntax:"<angle>";inherits:true;initial-value:0deg}@property --fc-sc{syntax:"<number>";inherits:true;initial-value:1}@property --fc-tx{syntax:"<length>";inherits:false;initial-value:0}.card-fan-root{--fc-cw:208px;--fc-ch:292px;--fc-pivot:2200px;--fc-lift:0px;--fc-pop:1.25}.fc-stage{height:560px;margin-top:4px;position:relative}.fc-field{order:3;justify-content:center;align-items:center;gap:28px;margin:10px 0 0;display:flex}.fc-draw-pile,.fc-discard-pile{flex-direction:column;align-items:center;gap:8px;display:flex}.fc-pile-stack{width:74px;height:104px;position:relative}.fc-pile-card{border-radius:var(--r-sm);border:1px solid var(--accent-soft);background:radial-gradient(circle at 14px 14px, color-mix(in srgb, var(--cb-tint,#5850ea) 14%, transparent) 2px, transparent 2.6px) 0 0/14px 14px, var(--cb-tint-soft,var(--accent-soft));box-shadow:var(--shadow-sm);position:absolute;inset:0}.fc-pile-card-under{background:var(--surface)}.fc-pile-card-3{transform:translate(6px,6px)}.fc-pile-card-2{transform:translate(4px,4px)}.fc-pile-card-1{transform:translate(2px,2px)}.fc-pile-card-top{place-items:center;display:grid}.fc-pile-badge{border-radius:var(--r-pill);background:var(--ink);color:#fff;min-width:40px;height:26px;font-family:var(--font-body);box-shadow:var(--shadow-sm);animation:fc-pile-badge-pop .3s var(--ease) both;place-items:center;padding:0 8px;font-size:12.5px;font-weight:800;display:grid;position:absolute;bottom:-10px;right:-10px}.fc-pile-label{font-family:var(--font-display);color:var(--muted);text-align:center;max-width:100px;font-size:11.5px;font-weight:700}.fc-discard-placeholder{border-radius:var(--r-sm);border:1.5px dashed var(--line);width:74px;height:104px}.fc-discard-card{transform:rotate(var(--fc-discard-rot,0deg));place-items:center;display:grid}.fc-discard-top{animation:fc-pile-card-land .3s var(--ease) both}@keyframes fc-pile-badge-pop{0%{opacity:0;transform:scale(.7)}60%{opacity:1;transform:scale(1.12)}to{transform:scale(1)}}@keyframes fc-pile-card-land{0%{transform:rotate(var(--fc-discard-rot,0deg)) scale(.65) translateY(-6px);opacity:0}to{transform:rotate(var(--fc-discard-rot,0deg)) scale(1) translateY(0);opacity:1}}.fc-fan{position:absolute;inset:0}.fc-slot{width:var(--fc-cw);height:var(--fc-ch);margin-left:calc(var(--fc-cw) / -2);z-index:var(--fc-z,10);--fc-rot:var(--fc-rot0);--fc-ty:0px;--fc-tx:0px;--fc-hy:0px;--fc-hr:0deg;--fc-sc:1;transform-origin:50% var(--fc-pivot);transform:rotate(var(--fc-rot)) translate(var(--fc-tx), var(--fc-ty));transition:transform .5s var(--ease), opacity .38s var(--ease), z-index 0s .5s;opacity:0;position:absolute;top:210px;left:50%}.fc-pop{width:100%;height:100%;transform:translateY(var(--fc-hy)) rotate(var(--fc-hr)) scale(var(--fc-sc));transform-origin:50%;transition:transform .26s var(--ease);will-change:transform}.fc-fan:not(.ready) .fc-slot{--fc-rot:0deg;--fc-ty:70px;--fc-sc:.88}.fc-fan.ready .fc-slot{opacity:1}.fc-fan.ready:not(.dealt) .fc-slot{transition-delay:calc(var(--fc-i) * var(--fc-deal-stagger,46ms))}.fc-fan.ready:not(.dealt) .fc-pop{transition-duration:.5s;transition-delay:calc(var(--fc-i) * var(--fc-deal-stagger,46ms))}@media (hover:hover){.fc-slot:hover{--fc-hy:-16px;--fc-hr:calc(var(--fc-rot0) * -.35);--fc-sc:1.05}}.fc-slot:has(.fc-card:focus-visible){z-index:60}@media (hover:none) and (pointer:coarse){.fc-slot:active:not(.fc-open){z-index:60}.fc-slot:active:not(.fc-open) .fc-pop{--fc-hy:-8px;--fc-sc:1.04;transition-duration:.12s}}.fc-fan.busy .fc-slot:not(.fc-open){opacity:.3;--fc-ty:24px;--fc-rot:calc(var(--fc-rot0) + var(--fc-push,0deg));pointer-events:none}.fc-slot.fc-open{--fc-rot:0deg;--fc-ty:var(--fc-lift);--fc-hy:0px;--fc-hr:0deg;--fc-sc:var(--fc-pop);z-index:90;transition:transform .5s var(--ease), opacity .38s var(--ease), z-index 0s;opacity:1}.fc-slot.fc-open .fc-pop{transition-duration:.5s}.fc-card{perspective:1200px;cursor:pointer;-webkit-tap-highlight-color:transparent;width:100%;height:100%;font:inherit;color:inherit;background:0 0;border:none;padding:0;display:block}.fc-card:focus-visible{outline:none}.fc-card:focus-visible .fc-inner{box-shadow:0 0 0 3px var(--accent)}.fc-veil{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;pointer-events:none;z-index:50;transition:opacity .5s var(--ease);background:#f6f5f39e;position:absolute;inset:0 -14px -14px}:root[data-theme=dark] .fc-veil{background:#16151e9e}.fc-stage.busy .fc-veil{opacity:1;pointer-events:auto}.fc-inner{width:100%;height:100%;transform-style:preserve-3d;border-radius:var(--r-md);transition:box-shadow .35s var(--ease);box-shadow:var(--shadow-sm);position:relative}.fc-slot:hover .fc-inner,.fc-slot:focus-within .fc-inner{box-shadow:var(--shadow-md)}.fc-slot.fc-open .fc-inner{transform:rotateY(180deg);box-shadow:0 34px 70px #16151f38}.fc-face{border-radius:var(--r-md);backface-visibility:hidden;background:var(--surface);border:1px solid var(--line);position:absolute;inset:0;overflow:hidden}.fc-face.card-face-front{transition:visibility 0s linear .33s}.fc-slot.fc-open .fc-face.card-face-front{visibility:hidden}@media (prefers-reduced-motion:reduce){.fc-face.card-face-front{transition:none}}.fc-back{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:18px 16px;display:flex;position:relative;overflow-y:auto;transform:rotateY(180deg)}@keyframes fc-exhale{0%{--fc-sc:1}45%{--fc-sc:1.06}to{--fc-sc:1}}.fc-fan.done .fc-pop{animation:fc-exhale .7s var(--ease) both;animation-delay:calc(var(--fc-i) * 58ms)}.fc-subhead{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.fc-subhead p{color:var(--muted);max-width:40ch;font-size:14.5px}.fc-tally{text-align:right;white-space:nowrap;flex:none}.fc-tally b{font-family:var(--font-display);font-size:28px;font-weight:700;line-height:1;display:block}.fc-tally span{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:700}.fc-gauge{width:100%;max-width:560px;height:44px;margin:10px auto 0;display:block;overflow:visible}.fc-gauge path{fill:none;stroke-linecap:round}.fc-gauge .fc-gauge-track{stroke:var(--line);stroke-width:6px}.fc-gauge .fc-gauge-fill{stroke:var(--tongue);stroke-width:6px;transition:stroke-dashoffset .55s var(--ease)}.fc-continue{background:var(--ink);color:#fff;border-radius:var(--r-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;width:100%;max-width:620px;margin:8px auto 24px;padding:22px 24px;display:flex}.fc-continue-lbl{opacity:.7;margin-bottom:4px;font-size:12.5px;font-weight:600}.fc-continue h4{font-family:var(--font-display);font-size:18px;font-weight:600}.fc-continue-actions{flex-wrap:wrap;gap:10px;display:flex}.fc-btn{font-family:var(--font-body);cursor:pointer;border-radius:var(--r-pill);border:none;padding:12px 22px;font-size:14.5px;font-weight:700;transition:background .15s,transform .12s}.fc-btn:active{transform:translateY(1px)}.fc-btn-primary{background:var(--accent);color:#fff}.fc-btn-primary:hover{background:var(--accent-press)}.fc-btn-ghost{color:#fff;background:#ffffff1f}.fc-btn-ghost:hover{background:#ffffff38}@media (width<=980px),(height<=900px){.card-fan-root{--fc-cw:176px;--fc-ch:248px;--fc-pivot:550px;--fc-lift:0px;--fc-pop:1.3}.fc-stage{height:480px}.fc-slot{top:186px}}@media (width<=680px),(height<=760px){.card-fan-root{--fc-cw:134px;--fc-ch:188px;--fc-pivot:300px;--fc-lift:0px;--fc-pop:1.6}.fc-stage{height:380px}.fc-slot{top:148px}.fc-gauge{height:36px}}@media (width<=480px),(pointer:coarse) and (orientation:portrait) and (width<=1100px){.game-page.fc-page{flex:1;gap:10px;max-width:100%;min-height:0;padding-bottom:12px}.card-fan-root{--fc-cw:154px;--fc-ch:216px;--fc-pivot:1600px;--fc-edge:-8px;--fc-tray-h:288px}.fc-root{flex:1}.fc-stage{height:var(--fc-tray-h);margin-top:0;width:calc(100% + 32px);max-width:calc(100% + 32px);margin-inline:-16px;overflow:hidden}.fc-subhead p{display:none}.fc-subhead{justify-content:flex-end}.fc-tally b{font-size:22px}.fc-gauge{display:none}.fc-field{flex:1;order:0;justify-content:space-between;min-height:128px;margin:0;padding:0 4px;position:relative}.fc-slot{top:calc(var(--fc-tray-h) - var(--fc-ch) * .88);--fc-rot:var(--fc-rot0)}.fc-fan.busy .fc-slot:not(.fc-open){--fc-rot:var(--fc-rot0)}.fc-fan:not(.ready) .fc-slot{--fc-tx:-90px;--fc-ty:-60px}.fc-slot:active:not(.fc-open) .fc-pop{--fc-hy:-20px}.fc-fan .fc-inner{box-shadow:-1px 0 2px #16151f38, -6px 0 14px #16151f33, var(--shadow-md)}}.card-face-front{align-items:flex-end;padding:14px;display:flex}.card-face-tag{letter-spacing:.09em;text-transform:uppercase;color:var(--accent);background:var(--surface);border-radius:var(--r-pill);box-shadow:var(--shadow-sm);padding:4px 9px;font-size:10.5px;font-weight:700;display:inline-flex;position:relative}.exercise-card{background:radial-gradient(360px 200px at 100% -10%, var(--accent-soft), transparent 65%), var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-md);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;width:100%;max-width:440px;height:420px;margin:0 auto;padding:32px;display:flex;position:relative;overflow-y:auto}.exercise-close-button{cursor:pointer;border-radius:var(--r-sm);min-width:44px;min-height:44px;color:var(--muted);background:0 0;border:none;justify-content:center;align-items:center;padding:.4rem;display:flex;position:absolute;top:14px;right:14px}.exercise-close-button:hover{background:var(--paper);color:var(--ink)}.exercise-badge{border:3px solid var(--accent-soft);width:56px;height:56px;color:var(--accent);border-radius:50%;place-items:center;display:grid}.exercise-badge svg{width:22px;height:22px}.exercise-word{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:1.9rem;font-weight:700}.exercise-count-chip{border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent-press);letter-spacing:.12em;text-transform:uppercase;padding:4px 12px;font-size:11px;font-weight:800;display:inline-flex}.exercise-translation{color:var(--muted);margin:0}.exercise-card>.btn{margin-top:6px}.exercise-label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:800}.exercise-words-block{flex-direction:column;align-items:center;gap:8px;margin-top:8px;display:flex}.exercise-word-row{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.exercise-stage{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:12px;width:100%;min-height:0;display:flex;overflow-y:auto}.exercise-word-chip{border-radius:var(--r-sm);background:var(--accent-soft);flex-direction:column;justify-content:center;align-items:center;gap:3px;min-width:96px;padding:12px 20px;display:flex}.exercise-word-chip b{font-family:var(--font-display);letter-spacing:-.02em;color:var(--accent-press);white-space:nowrap;font-size:19px;font-weight:700}.exercise-word-chip span{color:var(--muted);white-space:nowrap;font-size:13px}.exercise-word-chip.ok{background:var(--success-soft)}.exercise-word-chip.ok b,.exercise-word-chip.ok span{color:var(--success-groove)}.exercise-word-chip.fail{background:var(--error-soft)}.exercise-word-chip.fail b,.exercise-word-chip.fail span{color:var(--error-groove)}.exercise-timer{font-size:1.05rem;font-weight:600}.exercise-countdown{flex-direction:column;align-items:center;gap:6px;display:flex}.exercise-ring-wrap{place-items:center;width:48px;height:48px;display:grid;position:relative}.exercise-ring{width:48px;height:48px;position:absolute;inset:0;transform:rotate(-90deg)}.exercise-ring-track{fill:none;stroke:var(--line);stroke-width:3px}.exercise-ring-fill{fill:none;stroke:var(--accent);stroke-width:3px;stroke-linecap:round;transition:stroke-dashoffset 1s linear}.exercise-ring-icon{color:var(--accent);place-items:center;display:grid}.exercise-ring-icon svg{width:18px;height:18px}.exercise-listening{align-items:center;gap:8px;font-size:1.05rem;font-weight:700;display:flex}.exercise-mic-live{background:var(--error);color:#fff;width:30px;height:30px;animation:exercise-mic-pulse 1.4s var(--ease) infinite;border-radius:50%;place-items:center;display:grid}.exercise-mic-live svg{width:15px;height:15px}@keyframes exercise-mic-pulse{0%,to{box-shadow:0 0 #e5484d66}55%{box-shadow:0 0 0 9px #e5484d00}}.exercise-spinner{color:var(--accent);place-items:center;animation:1s linear infinite exercise-spin;display:grid}.exercise-spinner svg{width:18px;height:18px}@keyframes exercise-spin{to{transform:rotate(360deg)}}.exercise-transcript{min-height:1.5em;color:var(--muted);overflow-wrap:anywhere;font-style:italic}.exercise-transcript-box{border:1px solid var(--line);border-radius:var(--r-sm);text-align:left;width:100%;padding:10px 12px}.exercise-result-details{flex-direction:column;align-items:center;gap:8px;width:100%;display:flex}.exercise-result-details .exercise-transcript{font-size:13px}.exercise-warning{color:var(--error);font-size:.95rem;font-weight:600}.hint-button{border:1.5px dashed var(--line);color:var(--muted);border-radius:var(--r-pill);cursor:pointer;background:0 0;align-self:center;min-height:44px;padding:.5rem 1rem;font-size:.9rem;font-weight:600}.hint-button:hover{border-color:var(--accent);color:var(--accent)}.exercise-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;width:100%;display:flex}.exercise-stop-btn.btn-primary{background:var(--error);box-shadow:none}.exercise-stop-btn.btn-primary:hover:not(:disabled){background:var(--error-groove)}@media (width<=480px){.card-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:.6rem}.exercise-card{border-radius:20px 20px 0 0;width:100%;max-width:none;padding:1.5rem 1.25rem 2rem}}.fc-fan .card-face-tag{white-space:nowrap;max-width:calc(100% - 20px);overflow:hidden}.fc-fan .card-face-tag[data-overflow]{visibility:hidden}@media (width>=481px) and (pointer:coarse) and (orientation:portrait) and (width<=1100px){.card-fan-root{--fc-cw:200px;--fc-ch:280px;--fc-pivot:1600px;--fc-tray-h:370px;--fc-edge:12px}.fc-stage{width:100%;max-width:100%;margin-inline:0}.fc-pile-stack,.fc-discard-placeholder{width:104px;height:146px}.fc-gauge{height:56px;margin:28px auto 0;display:block}.fc-field{align-items:flex-end;padding-bottom:28px}}@media (width>=821px) and (pointer:coarse) and (orientation:portrait) and (width<=1100px){.card-fan-root{--fc-cw:240px;--fc-ch:336px;--fc-pivot:1600px;--fc-tray-h:440px}.fc-pile-stack,.fc-discard-placeholder{width:124px;height:174px}}.fc-fan .fc-slot:not(:last-child):not(.fc-open):not(:hover) .fc-face.card-face-front:before,.fc-fan .fc-slot:not(:last-child):not(.fc-open):not(:hover) .fc-face.card-face-front:after{visibility:hidden}.fc-fan .fc-slot:not(.fc-open) .fc-inner{box-shadow:-1px 0 2px #16151f38, -6px 0 14px #16151f33, var(--shadow-md)}.tr-item.on .tr-item-icon,[data-shell=student][data-bg=shell-aurora] .tr-item.on{background:var(--surface)}@media (width<=720px){.tr-pane{grid-template-columns:1fr;gap:18px;padding:10px 16px 40px}.tr-canvas{padding:20px 18px}}.tr-streak{border-radius:var(--r-pill);background:var(--streak-bg);color:var(--streak-fg);flex:none;align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:800;display:inline-flex}.tr-how{margin:0;padding:0;list-style:none}.tr-how li{color:var(--muted);align-items:flex-start;gap:12px;margin-top:18px;font-size:14.5px;line-height:1.5;display:flex}.tr-how-n{background:var(--accent-soft);width:24px;height:24px;color:var(--accent);border-radius:50%;flex:none;place-items:center;margin-top:1px;font-size:12px;font-weight:800;display:grid}.tr-cta-row{flex-wrap:wrap;align-items:center;gap:12px;margin-top:22px;display:flex}.tr-canvas .ui-search{margin:16px 0 2px}.tr-theme-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin-top:18px;display:grid}.tr-theme-card{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;transition:box-shadow .18s var(--ease), transform .18s var(--ease), border-color .18s var(--ease);padding:18px;position:relative}.tr-theme-card:hover{box-shadow:var(--shadow-md);border-color:var(--accent);transform:translateY(-3px)}.tr-theme-card--retake{border-color:var(--tongue-soft);background:var(--tongue-soft)}.tr-theme-card--retake:hover{border-color:var(--tongue)}.tr-theme-card--retake .tr-theme-ico{background:var(--surface)}.tr-theme-top{justify-content:space-between;align-items:center;display:flex}.tr-theme-ico{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:10px;place-items:center;display:grid}.tr-theme-ico svg{width:16px;height:16px}.tr-theme-play{background:var(--accent);color:#fff;opacity:0;width:30px;height:30px;transition:opacity .15s var(--ease);border-radius:50%;place-items:center;display:grid}.tr-theme-play svg{width:14px;height:14px}.tr-theme-card:hover .tr-theme-play{opacity:1}.tr-theme-name{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);margin-top:14px;font-size:18px;font-weight:700;display:block}.tr-theme-meta{align-items:center;gap:8px;margin-top:8px;display:flex}.tr-theme-progress{color:var(--muted);align-items:center;gap:8px;margin-top:8px;font-size:12.5px;font-weight:700;display:flex}.tr-theme-closed{color:var(--success-groove);align-items:center;gap:4px;display:inline-flex}.tr-theme-closed svg{width:13px;height:13px}.tr-theme-debt{color:var(--tongue-groove);align-items:center;gap:4px;display:inline-flex}.tr-theme-debt svg{width:13px;height:13px}@media (width<=480px){.tr-canvas .trp{height:200px;padding:12px;overflow:hidden}}.tr-voice-note{border-radius:var(--r-sm);background:var(--streak-bg);color:var(--streak-fg);order:3;margin:16px 0 0;padding:10px 14px;font-size:13.5px;font-weight:600;line-height:1.4}.tr-info{display:none}@media (width<=720px){.tr-pane--student{gap:14px}.tr-pane--student .tr-canvas{scroll-margin-top:calc(var(--sw-shell-top,60px) + 12px);order:-1;padding:16px 16px 18px}.tr-pane--student .tr-canvas-top>div{min-width:0}.tr-pane--student .tr-canvas-top h2{font-size:21px}.tr-pane--student[data-phase=intro] .tr-canvas-top h2{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tr-pane--student[data-phase=intro] .tr-lede,.tr-pane--student[data-phase=intro] .tr-streak,.tr-pane--student:not([data-how-open]) .tr-how{display:none}.tr-pane--student .tr-canvas-top{flex-wrap:nowrap;align-items:center}.tr-pane--student .tr-info{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease);border:none;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.tr-pane--student .tr-info[aria-expanded=true]{background:var(--accent);color:#fff}.tr-pane--student .tr-info svg{width:20px;height:20px}.tr-pane--student[data-phase=intro] .tr-canvas{flex-direction:column;display:flex}.tr-pane--student[data-how-open] .trp{display:none}.tr-pane--student .tr-how{border-radius:var(--r-lg);background:var(--paper);flex-direction:column;order:2;justify-content:safe center;height:224px;margin-top:12px;padding:10px 14px;display:flex;overflow-y:auto}.tr-pane--student .tr-how li{margin-top:8px;font-size:13px;line-height:1.38}.tr-pane--student .tr-how li:first-child{margin-top:0}.tr-pane--student .trp{order:2}.tr-pane--student .tr-cta-row{order:3}}@media (width<=480px){.tr-pane--student .tr-how{height:200px}.tr-pane--student .trp{margin-top:12px}.tr-pane--student .tr-cta-row{margin-top:14px}.tr-pane--student .tr-cta-row .tr-cta{flex:1}.tr-pane--student[data-phase=themes] .tr-list{display:none}.tr-pane--student .tr-item{min-height:58px;padding:11px 13px}.tr-pane--student .tr-item.on{padding:10px 12px}}.wl-list{flex-direction:column;gap:10px;display:flex}.wl-row{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);text-align:left;width:100%;font-family:var(--font-body);color:var(--ink);align-items:center;gap:16px;padding:14px 18px;transition:box-shadow .16s,border-color .16s,transform .16s;display:flex;position:relative}.wl-row--hit{cursor:pointer}.wl-row--hit:hover,.wl-row--hit:focus-visible{border-color:var(--line-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.wl-row--hit:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.wl-ico{background:var(--accent-soft);width:38px;height:38px;color:var(--accent);border-radius:11px;flex:none;place-items:center;display:grid}.wl-ico svg{width:18px;height:18px}.wl-id{flex-direction:column;flex:none;min-width:128px;display:flex}.wl-id-name{white-space:nowrap;text-overflow:ellipsis;font-size:14.5px;font-weight:700;overflow:hidden}.wl-id-date{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:1px;font-size:12.5px}.wl-body{flex-direction:column;flex:auto;min-width:0;display:flex}.wl-title{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex;overflow:hidden}.wl-dot-new{background:var(--tongue);border-radius:50%;flex:none;width:7px;height:7px}.wl-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin-top:5px;font-size:12.5px;display:flex}.wl-sep{background:var(--muted);opacity:.55;border-radius:999px;flex:none;width:3px;height:3px}.wl-meta-break{flex-basis:100%}.wl-meta .warn{color:var(--streak-fg);font-weight:700}.wl-meta .attn{color:var(--tongue-groove);font-weight:700}.wl-meta .ok{color:var(--success-groove);font-weight:600}.wl-tag{color:var(--muted);background:var(--paper);border-radius:6px;padding:2px 8px;font-size:11.5px;font-weight:600}.wl-lvl{white-space:nowrap;border-radius:7px;flex:none;padding:2px 9px;font-size:12px;font-weight:700}.wl-lvl--a{background:var(--success-soft);color:var(--success-groove)}.wl-lvl--b{background:var(--accent-soft);color:var(--accent-press)}.wl-lvl--c{background:var(--m-spell-s);color:var(--plum-groove)}.wl-lvl--none{background:var(--paper);color:var(--muted)}.wl-metric{flex:none;justify-content:flex-end;align-items:baseline;gap:5px;min-width:60px;display:flex}.wl-num{font-family:var(--font-display);color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:16px;font-weight:800}.wl-num span{color:var(--muted)}.wl-num--attn,.wl-num--attn span{color:var(--tongue-groove)}.wl-sub{color:var(--muted);white-space:nowrap;font-size:11.5px;font-weight:600}.wl-badge{border-radius:var(--r-pill);white-space:nowrap;text-align:center;flex:none;min-width:142px;padding:5px 11px;font-size:12px;font-weight:700}.wl-badge--amber{background:var(--streak-bg);color:var(--streak-fg)}.wl-badge--green{background:var(--success-soft);color:var(--success-groove)}.wl-badge--red{background:var(--error-soft);color:var(--error-groove)}.wl-badge--quiet{background:var(--paper);color:var(--muted)}.wl-end{flex:none;align-items:center;gap:10px;display:flex}.wl-btn{font-family:var(--font-body);border-radius:var(--r-pill);cursor:pointer;white-space:nowrap;border:1px solid #0000;align-items:center;min-height:38px;padding:0 18px;font-size:13.5px;font-weight:700;transition:all .14s;display:inline-flex}.wl-btn--primary{background:var(--accent);color:#fff;box-shadow:var(--shadow-glow)}.wl-btn--primary:hover{background:var(--accent-press)}.wl-btn--quiet{background:var(--surface);color:var(--ink);border-color:var(--line);box-shadow:none}.wl-btn--quiet:hover{border-color:var(--line-strong)}.wl-btn:disabled{cursor:default;opacity:.6}.wl-iconbtn{width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;flex:0 0 34px;place-items:center;transition:all .14s;display:inline-grid}.wl-iconbtn:hover{background:var(--error-soft);color:var(--error-groove)}.wl-chev{color:var(--muted);flex:none;place-items:center;display:grid}.wl-group{align-items:center;gap:10px;margin:0 2px 11px;display:flex}.wl-group+.wl-list{margin-bottom:22px}.wl-group-ico{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);border-radius:9px;flex:none;place-items:center;display:grid}.wl-group-ico svg{width:16px;height:16px}.wl-group-name{font-family:var(--font-display);font-size:14px;font-weight:700}.wl-group-n{color:var(--muted);font-size:12.5px;font-weight:600}.wl-empty{text-align:center;color:var(--muted);padding:72px 20px}.wl-empty h3{font-family:var(--font-display);color:var(--ink);margin:0 0 6px;font-size:19px;font-weight:800}.wl-empty p{margin:0;font-size:14px}@media (width<=720px){.wl-row{flex-wrap:wrap;gap:10px 12px;padding:12px 14px}.wl-id{order:1}.wl-body{flex:calc(100% - 50px);order:2}.wl-id~.wl-body{flex-basis:100%}.wl-lead{align-self:flex-start}.wl-title{white-space:normal;align-items:flex-start;line-height:1.3}.wl-dot-new{margin-top:6px}.wl-meta{gap:4px 8px;margin-top:3px}.wl-badge{order:3;min-width:0;padding:4px 10px}.wl-metric{order:4;min-width:0}.wl-metric:not(:has(~.wl-end)){margin-left:auto}.wl-end{order:5;gap:8px;margin-left:auto}.wl-row:has(>.wl-end>.wl-chev:only-child){padding-right:40px}.wl-end:has(>.wl-chev:only-child){position:absolute;top:50%;right:12px;transform:translateY(-50%)}.wl-row:has(>.wl-lead .wl-ico):not(:has(>.wl-id))>.wl-badge{margin-left:50px}.wl-row:has(>.wl-lead .wl-ico):not(:has(>.wl-id)):not(:has(>.wl-badge))>.wl-body+.wl-metric:has(~.wl-end){margin-left:50px}.wl-btn{min-height:36px;padding:0 16px}.wl-row:has(>.wl-lead .wl-ico):not(:has(>.wl-id)){row-gap:8px}.wl-row:has(>.wl-lead .wl-ico):not(:has(>.wl-id)) .wl-meta{margin-top:8px}}@media (prefers-reduced-motion:reduce){.wl-row{transition:none}}.avp{font-family:var(--font-body);overflow-wrap:anywhere;border-radius:17px;align-items:center;gap:7px;min-width:0;max-width:100%;padding:7px 14px;font-size:14.5px;font-weight:700;display:inline-flex}.avp svg{flex:none;width:13px;height:13px}.avp-ok{background:var(--success-soft);color:var(--success-groove)}.avp-no{background:var(--error-soft);color:var(--error-groove)}.avp-missing{background:var(--paper);color:var(--muted);border:1px solid var(--line);font-weight:600}.avp-wrap{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;max-width:100%;display:inline-flex}.avp-expected{overflow-wrap:anywhere;color:var(--muted);font-size:12.5px}.avp-accepted{color:var(--success-groove);font-size:11.5px;font-weight:700}.rbl{align-items:center;gap:11px;display:flex}.rbl-badge{background:var(--accent-soft);width:32px;height:32px;color:var(--accent);border-radius:10px;flex:none;place-items:center;display:grid}.rbl-badge svg{width:16px;height:16px}.rbl-sub{font-family:var(--font-display);color:var(--ink);white-space:nowrap;flex:none;font-size:15px;font-weight:800}.rbl-type{min-width:0;font-family:var(--font-body);color:var(--muted);text-align:right;flex-wrap:wrap;flex:0 auto;justify-content:flex-end;align-items:center;gap:6px;margin-left:auto;font-size:13px;font-weight:500;display:flex}.rbl:not(:has(.rbl-sub)) .rbl-type{font-family:var(--font-display);color:var(--ink);text-align:left;margin-left:0;font-size:15px;font-weight:700}.rbl-type-tag{color:var(--muted);font-weight:500}.rbl-status{color:var(--muted);flex:none;align-items:center;display:inline-flex}.rbl-status svg{width:14px;height:14px}.rbl-desc{color:var(--ink);white-space:pre-line;margin:0;font-size:14.5px;font-weight:600;line-height:1.55}.cr-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);flex-direction:column;gap:20px;margin-bottom:16px;padding:18px 20px;display:flex}.cr-rows{flex-direction:column;margin-top:10px;display:flex}.cr-row{border-top:1px solid var(--line);align-items:center;gap:12px;padding:7px 0;display:flex}.cr-rows .cr-row:first-child{border-top:none}.cr-row-num{font-variant-numeric:tabular-nums;width:20px;color:var(--muted);flex:none;font-size:12.5px;font-weight:800}.rhero{background:var(--ink);color:#fff;border-radius:var(--r-lg);margin-bottom:18px;padding:18px 26px 22px}.rhero-top{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.rhero-back{border-radius:var(--r-pill);color:#fff;font-family:var(--font-body);cursor:pointer;transition:background .15s var(--ease);background:#ffffff1a;border:none;flex:none;align-items:center;gap:3px;margin:0;padding:7px 14px 7px 10px;font-size:13px;font-weight:700;display:inline-flex}.rhero-back:hover{background:#ffffff2e}.rhero-back svg{width:15px;height:15px}.rhero-title{min-width:0;font-family:var(--font-display);letter-spacing:-.02em;flex:1;margin:0;font-size:21px;font-weight:700}.rhero-status{border-radius:var(--r-pill);background:#ffffff1a;flex:none;align-items:center;gap:6px;padding:7px 14px;font-size:12.5px;font-weight:700;display:inline-flex}.rhero-status svg{width:14px;height:14px}.rhero-gauge{align-items:center;gap:12px;margin-top:18px;display:flex}.rhero-track{border-radius:var(--r-pill);background:#ffffff24;flex:1;height:8px;overflow:hidden}.rhero-track i{background:var(--success);border-radius:var(--r-pill);transform-origin:0;width:100%;height:100%;transition:transform .3s var(--ease);display:block}.rhero-count{font-family:var(--font-display);color:var(--success);white-space:nowrap;flex:none;font-size:12.5px;font-weight:700}.rhero-status-mini{display:none}.rhero-foot{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.rhero-foot:empty{display:none}.rhero-note{color:#ffffff9e;margin:10px 0 0;font-size:12.5px;line-height:1.5}@media (width<=720px){.rhero{border-radius:var(--r-md);margin-bottom:14px;padding:12px 16px 14px 12px}.rhero-top{flex-wrap:nowrap;gap:10px}.rhero-back{border-radius:50%;justify-content:center;width:36px;height:36px;padding:0}.rhero-back svg{width:18px;height:18px}.rhero-back-label,.rhero-status{display:none}.rhero-title{font-family:var(--font-body);letter-spacing:0;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:16.5px;font-weight:800;line-height:1.25;display:-webkit-box;overflow:hidden}.rhero-gauge,.rhero-foot{margin-left:46px}.rhero-foot{margin-top:8px}.rhero-note{min-width:0;margin:0}.rhero-gauge{gap:10px;margin-top:12px}.rhero-status-mini{color:#fff9;flex:none;align-items:center;gap:4px;margin:0 0 0 auto;font-size:12.5px;font-weight:600;display:flex}.rhero-status-mini svg{width:13px;height:13px}}.media-item-embed{aspect-ratio:16/9;border-radius:var(--r-sm);border:1px solid var(--line);width:100%;max-width:480px;position:relative;overflow:hidden}.media-item-embed iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.media-item-video{border-radius:var(--r-sm);border:1px solid var(--line);width:100%;max-width:480px;display:block}.media-item-audio{width:100%;max-width:420px;display:block}.media-item-image{border-radius:var(--r-sm);border:1px solid var(--line);width:100%;max-width:480px;height:auto;display:block}.media-item-file{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);color:var(--ink);align-items:baseline;gap:8px;padding:9px 14px;font-size:13.5px;font-weight:700;text-decoration:none;display:inline-flex}.media-item-file:hover{border-color:var(--accent);color:var(--accent)}.media-item-file-size{color:var(--muted);font-size:11.5px;font-weight:600}.media-item-loading{color:var(--muted);font-size:12.5px}.wsol{box-sizing:border-box;flex-direction:column;width:100%;max-width:920px;margin:0 auto;padding:12px 20px 72px;display:flex}.wsol-preview{padding-top:6px}.wsol-hero{background:var(--ink);color:#fff;border-radius:var(--r-lg);margin-bottom:18px;padding:18px 26px 22px}.wsol-hero-back{border-radius:var(--r-pill);color:#fff;font-family:var(--font-body);cursor:pointer;transition:background .15s var(--ease);background:#ffffff1a;border:none;flex:none;align-items:center;gap:3px;margin:0;padding:7px 14px 7px 10px;font-size:13px;font-weight:700;display:inline-flex}.wsol-hero-back:hover{background:#ffffff2e}.wsol-hero-back svg{width:15px;height:15px}.wsol-hero-top{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.wsol-hero-eye{background:#ffffff17;border-radius:50%;flex:none;place-items:center;width:38px;height:38px;display:grid}.wsol-hero-eye svg{width:22px;height:22px}.wsol-hero-head{flex:1;min-width:0}.wsol-hero-title{font-family:var(--font-display);letter-spacing:-.02em;color:#fff;margin:0;font-size:21px;font-weight:700}.wsol-hero-meta{color:#fff9;flex-wrap:wrap;margin:4px 0 0;font-size:13px;font-weight:600;display:flex}.wsol-hero-meta span+span:before{content:"·";margin:0 7px}.wsol-hero-actions{flex:none;align-items:center;gap:6px;display:flex}.wsol-hero-iconbtn{color:#fff;cursor:pointer;width:38px;height:38px;transition:background .15s var(--ease);background:#ffffff1a;border:none;border-radius:50%;place-items:center;padding:0;display:grid}.wsol-hero-iconbtn:hover{background:#ffffff2e}.wsol-hero-iconbtn svg{width:20px;height:20px}.wsol-hero-attempt-pill{border-radius:var(--r-pill);background:#ffffff1a;flex:none;padding:7px 14px;font-size:12.5px;font-weight:700}.wsol-hero-gauge{align-items:center;gap:12px;margin-top:18px;display:flex}.wsol-hero-track{border-radius:var(--r-pill);background:#ffffff24;flex:1;height:8px;overflow:hidden}.wsol-hero-track i{background:var(--tongue);border-radius:var(--r-pill);transform-origin:0;width:100%;height:100%;transition:transform .3s var(--ease);display:block}.wsol-hero-attempt-mini{display:none}.wsol-hero-count{font-family:var(--font-display);color:var(--tongue);white-space:nowrap;flex:none;font-size:12.5px;font-weight:700}.wsol-sheet{flex-direction:column;gap:14px;display:flex}.wsol-sub{color:var(--muted);font-size:13px;font-weight:600}.wsol-loading,.wsol-empty{color:var(--muted);padding:16px 0;font-size:14px}.wsol-overdue,.wsol-confirm-warn{color:var(--tongue-groove);font-size:13.5px;font-weight:600}.wsol-confirm-warn{margin:0 0 18px}.wsol-block{flex-direction:column;gap:10px;display:flex}.wsol-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);transition:box-shadow .15s var(--ease), transform .15s var(--ease);padding:19px 22px}.wsol-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}.wsol-card-reading{box-shadow:var(--shadow-sm);border-color:color-mix(in srgb, var(--accent) 22%, var(--line))}.wsol-card-reading:hover{box-shadow:var(--shadow-sm);transform:none}.wsol-card-reading .wsol-badge{background:var(--accent);color:#fff}.wsol-exercise-label{align-items:center;gap:11px;display:flex}.wsol-badge{background:var(--accent-soft);width:32px;height:32px;color:var(--accent);border-radius:10px;flex:none;place-items:center;display:grid}.wsol-badge svg{width:16px;height:16px}.wsol-exercise-label b{font-family:var(--font-display);color:var(--ink);font-size:15px;font-weight:700}.wsol-ex-num{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);flex:none;margin-left:auto;font-size:11px;font-weight:800}.wsol-desc{color:var(--ink);white-space:pre-line;margin:10px 0 0;font-size:15px;font-weight:600;line-height:1.55}.wsol-instr{color:var(--ink);white-space:pre-line;font-size:16px;font-weight:600;line-height:1.6}.wsol-reading{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink);padding:16px 20px 18px}.wsol-reading-body{white-space:pre-wrap;font-size:16px;line-height:1.75}.wsol-reading-body p+p{margin-top:14px}.wsol-tr-mark{color:var(--accent-press);border-bottom:2px solid var(--accent);background:0 0;padding-bottom:1px;font-weight:700}.wsol-image img{border-radius:var(--r-md);max-width:100%}.wsol-image-placeholder{background:var(--paper);border-radius:var(--r-md);text-align:center;color:var(--muted);padding:32px}.wsol-image-caption{color:var(--muted);white-space:pre-line;font-size:13px}.wsol-media{flex-direction:column;gap:10px;display:flex}.wsol-media-text{font-family:var(--font-body);color:var(--ink);white-space:pre-wrap;font-size:16px;line-height:1.7}.wsol-text{flex-direction:column;gap:6px;display:flex}.wsol-gapline{color:var(--ink);font-size:16px;line-height:2}.wsol-gap-unit{align-items:baseline;gap:4px;display:inline-flex}.wsol-gapinput{border-radius:var(--r-pill);background:var(--accent-soft);width:140px;color:var(--accent);font-family:var(--font-body);text-align:center;transition:box-shadow .15s var(--ease);border:none;padding:6px 16px;font-size:15px;font-weight:700;display:inline-block}.wsol-gapinput::placeholder{color:var(--accent);opacity:.55;font-weight:500}.wsol-gapinput:focus{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);outline:none}.wsol-gap-infin{color:var(--muted);font-size:13px}.wsol-choice-group{flex-direction:column;gap:12px;margin-top:12px;display:flex}.wsol-choice-sentence{color:var(--ink);font-size:16px;line-height:2}.wsol-choice-blank{vertical-align:baseline;border-bottom:2px dashed var(--line);text-align:center;min-width:96px;transition:all .2s var(--ease);justify-content:center;align-items:center;display:inline-flex}.wsol-choice-blank.filled{color:var(--accent);border-bottom-color:var(--accent);font-weight:700}.wsol-choice-options{flex-wrap:wrap;gap:9px;display:flex}.wsol-choice-opt{border:1.5px solid var(--line);border-radius:var(--r-pill);background:var(--surface);cursor:pointer;min-height:44px;font-family:var(--font-body);color:var(--ink);transition:border-color .12s var(--ease), background .12s var(--ease), color .12s var(--ease), transform .12s var(--ease);padding:11px 20px;font-size:14.5px;font-weight:700}.wsol-choice-opt:hover{border-color:var(--accent)}.wsol-choice-opt:active{transform:translateY(1px)scale(.99)}.wsol-choice-opt.sel{border-color:var(--accent);background:var(--accent);color:#fff}.wsol-pick-group{flex-direction:column;gap:10px;margin-top:12px;display:flex}.wsol-pick-question{color:var(--ink);font-size:16px;line-height:1.6}.wsol-pick-options{flex-direction:column;gap:8px;display:flex}.wsol-pick-opt{border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--surface);cursor:pointer;width:100%;min-height:48px;font-family:var(--font-body);color:var(--ink);text-align:left;transition:border-color .15s var(--ease), background .15s var(--ease);align-items:center;gap:12px;padding:10px 14px;font-size:15px;line-height:1.45;display:flex}.wsol-pick-opt:hover:not(:disabled){border-color:var(--accent)}.wsol-pick-opt:active:not(:disabled){transform:translateY(1px)scale(.995)}.wsol-pick-opt:disabled{cursor:default}.wsol-pick-letter{border:1.5px solid var(--line);width:28px;height:28px;color:var(--muted);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid}.wsol-pick-group-multi .wsol-pick-letter{border-radius:var(--r-sm)}.wsol-pick-hint{color:var(--muted);font-size:13px}.wsol-pick-text{overflow-wrap:anywhere;min-width:0}.wsol-pick-opt.sel{border-color:var(--accent);background:var(--accent-soft)}.wsol-pick-opt.sel .wsol-pick-letter{border-color:var(--accent);background:var(--accent);color:#fff}.wsol-tf-row{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:10px 0;display:flex}.wsol-tf-row:last-child{border-bottom:none}.wsol-tf-text{min-width:180px;color:var(--ink);flex:1;font-size:16px;line-height:1.6}.wsol-tf-options{flex:none;gap:8px;margin-left:auto;display:flex}.wsol-tf-btn{border:1.5px solid var(--line);border-radius:var(--r-pill);background:var(--surface);cursor:pointer;min-height:40px;font-family:var(--font-body);color:var(--muted);transition:border-color .12s var(--ease), background .12s var(--ease), color .12s var(--ease);padding:8px 16px;font-size:14.5px;font-weight:700}.wsol-tf-btn:hover{color:var(--ink)}.wsol-tf-btn.sel{border-color:var(--accent);background:var(--accent);color:#fff}.wsol-matchgrid{grid-template-columns:1fr 1fr;align-items:center;gap:9px 16px;display:grid}.wsol-matchgrid>div b{font-weight:700}.wsol-match-right{color:var(--muted)}.wsol-matchgrid>.wsol-hint-text{grid-column:1/-1}.wsol-vcard{border:1.5px dashed var(--line-strong);border-radius:var(--r-md);background:var(--surface);min-height:64px;font-family:var(--font-body);text-align:left;color:var(--ink);cursor:pointer;transition:border-color .15s var(--ease), background .15s var(--ease);flex-direction:column;align-items:flex-start;gap:4px;padding:12px 14px;font-size:15px;display:flex}.wsol-vcard:hover:not(.open){border-color:var(--accent)}.wsol-vcard:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.wsol-vcard b{font-weight:700}.wsol-vcard-back{color:var(--muted);font-size:13px}.wsol-vcard.open{border-style:solid;border-color:var(--accent-soft);background:var(--accent-soft);cursor:default}.wsol-vcard.open .wsol-vcard-back{color:var(--ink);font-size:15px}.wsol-match{flex-direction:column;gap:12px;display:flex}.wsol-match-head{grid-template-columns:1fr 1fr;column-gap:24px;display:grid}.wsol-match-head-label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:800}.wsol-match-body{grid-template-columns:1fr 1fr;column-gap:24px;display:grid;position:relative}.wsol-match-lines{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.wsol-match-line{fill:none;stroke:var(--success);stroke-width:2.5px;stroke-linecap:round;opacity:.85}.wsol-match-dot{fill:var(--success)}.wsol-match-col{flex-direction:column;gap:9px;display:flex}.wsol-match-item{text-align:left;width:100%;color:var(--ink);font-size:15px;font-weight:700;font-family:var(--font-body);border-radius:var(--r-sm);border:1.5px solid var(--line);background:var(--surface);cursor:pointer;transition:border-color .15s var(--ease), background-color .15s var(--ease), box-shadow .15s var(--ease), transform .1s var(--ease);flex-direction:column;align-items:flex-start;gap:4px;padding:13px 14px;display:flex}.wsol-match-item:hover:not(:disabled){border-color:var(--accent)}.wsol-match-item:active:not(:disabled){transform:translateY(1px)}.wsol-match-item.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-soft)}.wsol-match-item.ready{border-style:dashed;border-color:var(--accent);background:var(--accent-soft)}.wsol-match-item.paired{background:var(--success-soft);border-color:var(--success);cursor:default}.wsol-match-item-text{overflow-wrap:anywhere}.wsol-match-pair-tag{overflow-wrap:anywhere;border-radius:var(--r-pill);background:var(--paper);max-width:100%;color:var(--muted);padding:2px 8px;font-size:12px;font-weight:600}.wsol-order-row{flex-direction:column;gap:10px;display:flex}.wsol-order-label{color:var(--ink);font-size:16px;line-height:1.6}.wsol-order-built{border:1.5px dashed var(--line);border-radius:var(--r-md);background:var(--paper);flex-wrap:wrap;align-items:center;gap:8px;min-height:48px;padding:9px 10px;display:flex}.wsol-order-placeholder{color:var(--muted);font-size:13px}.wsol-order-pool{flex-wrap:wrap;gap:8px;display:flex}.wsol-wordchip{background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-pill);font-family:var(--font-body);cursor:pointer;min-height:40px;color:var(--ink);transition:border-color .15s var(--ease), background .15s var(--ease), transform .15s var(--ease);align-items:center;padding:9px 16px;font-size:14.5px;font-weight:700;line-height:1.2;display:inline-flex}.wsol-wordchip:hover{border-color:var(--accent)}.wsol-wordchip:active{transform:translateY(1px)}.wsol-wordchip--slot,.wsol-wordchip--slot:hover{border-style:dashed;border-color:var(--line);color:#0000;cursor:default;-webkit-user-select:none;user-select:none;background:0 0}.wsol-wordchip.chosen{background:var(--accent);border-color:var(--accent);color:#fff;cursor:grab}.wsol-wordchip.chosen:hover{border-color:var(--accent-press);background:var(--accent-press)}.wsol-wordchip.chosen:active{cursor:grabbing}.wsol-wordchip.chosen{touch-action:none;-webkit-user-select:none;user-select:none}.wsol-wordchip.chosen.dragging{z-index:2;background:var(--accent-press);box-shadow:var(--shadow-md);cursor:grabbing;position:relative}.wsol-openbox-wrap{position:relative}.wsol-openbox{width:100%;font-family:var(--font-body);border-radius:var(--r-sm);border:1.5px solid var(--line);resize:vertical;background:var(--surface);color:var(--ink);transition:border-color .2s var(--ease);padding:14px 16px 30px;font-size:15px;line-height:1.6}.wsol-openbox:focus{border-color:var(--accent);outline:none}.wsol-openbox::placeholder{color:var(--muted)}.wsol-wordcount{border-radius:var(--r-pill);background:var(--paper);color:var(--muted);font-variant-numeric:tabular-nums;pointer-events:none;padding:2px 8px;font-size:12px;font-weight:700;position:absolute;bottom:10px;right:12px}.wsol-wordcount.low{color:var(--streak-fg);background:var(--streak-bg)}.wsol-audio-label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);align-items:center;gap:6px;font-size:11px;font-weight:800;display:inline-flex}.wsol-translate-head{font-family:var(--font-display);color:var(--ink);margin:14px 0 2px;font-size:15px;font-weight:700}.wsol-translate-grid{border:1.5px solid var(--line);border-radius:var(--r-sm);flex-direction:column;margin-top:12px;display:flex;overflow:hidden}.wsol-translate-card{border-bottom:1px solid var(--line);align-items:center;display:flex}.wsol-translate-card:last-child{border-bottom:none}.wsol-translate-en{overflow-wrap:anywhere;background:var(--paper);min-width:140px;color:var(--ink);flex-shrink:0;padding:12px 16px;font-size:15px;font-weight:700}.wsol-translate-input{background:var(--surface);min-width:0;font-family:var(--font-body);color:var(--ink);border:none;flex:1 1 0;padding:12px 16px;font-size:15px}.wsol-translate-input::placeholder{color:var(--muted);font-style:italic}.wsol-translate-input:focus{background:var(--accent-soft);outline:none}.wsol-speaking{flex-direction:column;gap:10px;display:flex}.wsol-rec-row{justify-content:flex-end;display:flex}.wsol-rec{background:var(--surface);min-height:40px;color:var(--accent);border:1.5px solid var(--line);border-radius:var(--r-pill);font-family:var(--font-body);cursor:pointer;transition:background .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease), transform .15s var(--ease);align-items:center;gap:8px;padding:8px 16px;font-size:13.5px;font-weight:700;display:inline-flex}.wsol-rec:hover{border-color:var(--accent);background:var(--accent-soft)}.wsol-rec:active{transform:translateY(1px)}.wsol-rec-countdown{font-variant-numeric:tabular-nums}.wsol-rec i{background:currentColor;border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.wsol-rec.on{background:var(--error);color:#fff;border-color:var(--error)}.wsol-rec.on i{animation:1s ease-in-out infinite wsol-blink}@keyframes wsol-blink{0%,to{opacity:1}50%{opacity:.3}}.wsol-hint{margin-top:2px}.wsol-hint-toggle{color:var(--accent);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:700}.wsol-hint-text{color:var(--muted);margin-top:4px;font-size:13px}.wsol-footbar{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-pill);justify-content:space-between;align-items:center;gap:10px;margin-top:10px;padding:11px;display:flex}.wsol-footbar .btn-secondary{box-shadow:var(--shadow-sm)}@media (width<=720px){.wsol{padding:10px 16px 56px}.wsol-hero{border-radius:var(--r-md);padding:12px 16px 14px 12px}.wsol-hero-top{gap:10px}.wsol-hero-back{border-radius:50%;justify-content:center;width:36px;height:36px;padding:0}.wsol-hero-back svg{width:18px;height:18px}.wsol-hero-back-label,.wsol-hero-attempt-pill{display:none}.wsol-hero-eye{width:36px;height:36px}.wsol-hero-title{font-family:var(--font-body);letter-spacing:0;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:16.5px;font-weight:800;line-height:1.25;display:-webkit-box;overflow:hidden}.wsol-hero-meta{font-size:12.5px}.wsol-hero-iconbtn{width:36px;height:36px}.wsol-hero-gauge{gap:10px;margin-top:12px;padding-left:46px}.wsol-hero-attempt-mini{text-align:right;color:#fff9;margin:8px 0 0 46px;font-size:12.5px;font-weight:600;display:block}.wsol-card{padding:16px}.wsol-matchgrid{grid-template-columns:1fr}.wsol-choice-options{flex-direction:column}.wsol-choice-opt{text-align:left;width:100%}.wsol-translate-en{flex:0 0 38%;min-width:0}.wsol-wordchip{min-height:36px;padding:7px 13px;font-size:14px}.wsol-order-built,.wsol-order-pool{gap:6px}.wsol-order-built{min-height:50px;padding:6px 8px}.wsol-footbar{background:0 0;border:none;border-radius:0;flex-direction:column;padding:0}.wsol-footbar .btn{width:100%}}@media (width<=480px){.wsol-card{padding:14px}.wsol-block{gap:8px}.wsol-exercise-label{gap:9px}.wsol-badge{width:28px;height:28px}.wsol-exercise-label b,.wsol-translate-head{font-size:14px}.wsol-instr,.wsol-reading-body,.wsol-media-text,.wsol-tf-text,.wsol-order-label{font-size:14.5px;line-height:1.5}.wsol-reading-body{line-height:1.6}.wsol-gapline,.wsol-choice-sentence{font-size:14.5px;line-height:1.85}.wsol-choice-group{gap:8px}.wsol-choice-options{gap:6px}.wsol-choice-opt{min-height:40px;padding:8px 16px;font-size:14px}.wsol-tf-row{gap:8px 12px;padding:8px 0}.wsol-tf-btn{min-height:36px;padding:6px 14px;font-size:14px}.wsol-match-item,.wsol-translate-en{padding:10px 12px;font-size:14px}}.homework-tab{box-sizing:border-box;flex-direction:column;gap:20px;width:100%;max-width:992px;margin:0 auto;padding:24px 24px 60px;display:flex}.homework-tab .pane-head{margin-bottom:0}.hw-subtabs{flex:none}.homework-tab:has(.wsol){max-width:none;padding-top:12px}.homework-empty{color:var(--muted);font-size:14.5px}.homework-list{flex-direction:column;gap:12px;width:100%;margin:0;padding:0;list-style:none;display:flex}.homework-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);transition:box-shadow .2s var(--ease);grid-template-columns:1fr 1fr;align-items:stretch;gap:20px;padding:20px 22px;display:grid}.homework-item:hover{box-shadow:var(--shadow-sm)}.homework-item-left{flex-direction:column;min-width:0;display:flex}.homework-item-right{border-left:1px solid var(--line);flex-direction:column;min-width:0;padding-left:20px;display:flex}.homework-item-header{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.homework-date{color:var(--accent);font-size:12px;font-weight:700}.homework-topic{font-family:var(--font-display);letter-spacing:-.01em;font-size:18px;font-weight:600}.homework-text{color:var(--ink);white-space:pre-wrap;font-size:13.5px;line-height:1.5}.homework-text-empty{color:var(--muted);margin-top:12px;font-size:14.5px;font-style:italic;line-height:1.55}.homework-checklist{flex-direction:column;gap:2px;margin:14px 0 0;padding:0;list-style:none;display:flex}.homework-checklist-item{width:100%;color:var(--ink);text-align:left;cursor:pointer;border-radius:var(--r-sm);transition:background .2s var(--ease), color .2s var(--ease);background:0 0;border:none;align-items:center;gap:12px;padding:9px 4px;font-family:inherit;font-size:14px;font-weight:500;display:flex}.homework-checklist-item:hover{background:var(--paper)}.homework-checklist-item.done{color:var(--muted);text-decoration:line-through;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line)}.homework-checklist-box{border:1.5px solid var(--line);color:#fff;width:22px;height:22px;transition:background .2s var(--ease), border-color .2s var(--ease);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.homework-checklist-item.done .homework-checklist-box{background:var(--accent);border-color:var(--accent)}.homework-checklist-box svg{opacity:0;width:13px;height:13px;transition:opacity .2s var(--ease)}.homework-checklist-item.done .homework-checklist-box svg{opacity:1}.homework-progress{color:var(--muted);margin-top:auto;padding-top:12px;font-size:12.5px;font-weight:700}.hw-materials{flex-direction:column;gap:12px;display:flex}.hw-materials-section{flex-direction:column;gap:6px;display:flex}.hw-materials-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:700}.hw-materials-links,.hw-materials-files{flex-direction:column;gap:6px;display:flex}.hw-materials-empty{color:var(--muted);font-size:13px;font-style:italic}.hw-material-link{color:var(--accent);word-break:break-all;align-items:center;gap:8px;padding:6px 0;font-size:14px;font-weight:500;text-decoration:none;transition:color .15s;display:flex}.hw-material-link:hover{color:var(--accent-press)}.hw-material-num{color:var(--muted);margin-right:2px;font-weight:800}.hw-material-link-icon{opacity:.7;flex:none;width:16px;height:16px}.hw-material-image{border-radius:var(--r-sm);border:1px solid var(--line);cursor:zoom-in;background:0 0;max-width:320px;padding:0;display:block;overflow:hidden}.hw-material-image img{width:100%;height:auto;display:block}.hw-material-video{border-radius:var(--r-sm);border:1px solid var(--line);max-width:400px;max-height:240px;display:block}.hw-material-file{color:var(--accent);cursor:pointer;text-align:left;word-break:break-all;background:0 0;border:none;align-items:center;gap:8px;padding:6px 0;font-size:14px;font-weight:600;transition:color .15s;display:flex}.hw-material-file:hover{color:var(--accent-press)}.hw-material-file-icon{opacity:.5;flex:none;width:16px;height:16px}.ws-section{flex-direction:column;gap:12px;display:flex}.ws-no-attempts{color:var(--muted);white-space:nowrap;font-size:12.5px}@media (width<=720px){.hw-subtabs{width:100%}}@media (width<=820px){.homework-tab{gap:12px;padding:10px 16px 40px}.homework-tab:has(.wsol){padding:0}.homework-item{grid-template-columns:1fr}.homework-item-right{border-left:none;border-top:1px solid var(--line);padding-top:16px;padding-left:0}.hw-material-image,.hw-material-video{max-width:100%}}@media (width<=480px){.ws-section .wl-end>.wl-btn{display:none}}.ui-fd{position:relative}.ui-fd-btn{font-family:var(--font-body);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;gap:9px;min-width:148px;padding:9px 12px 9px 14px;font-size:14px;font-weight:600;transition:all .14s;display:inline-flex}.ui-fd-btn:hover{border-color:var(--line-strong)}.ui-fd-btn span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ui-fd-btn svg{color:var(--muted);flex:none;transition:transform .14s}.ui-fd-btn[aria-expanded=true] svg{transform:rotate(180deg)}.ui-fd-menu{z-index:20;background:var(--surface);border:1px solid var(--line);min-width:220px;box-shadow:var(--shadow-md);border-radius:14px;padding:6px;position:absolute;top:calc(100% + 6px);right:0}.ui-fd-item{text-align:left;width:100%;font-family:var(--font-body);color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:10px;padding:9px 10px;font-size:14px;display:flex}.ui-fd-item:hover{background:var(--paper)}.ui-fd-item.sel{background:var(--accent-soft);color:var(--accent-press);font-weight:600}.ui-fd-n{color:var(--muted);margin-left:auto;font-size:12.5px;font-weight:600}.ui-fd-overlay{z-index:15;position:fixed;inset:0}.ui-fd--wide .ui-fd-btn{border-radius:var(--r-md);width:100%;min-width:0;min-height:52px;padding:7px 16px 7px 8px}.ui-fd--wide .ui-fd-btn[aria-expanded=true]{border-color:var(--accent)}.ui-fd--wide .ui-fd-btn>span{align-items:center;gap:10px;min-width:0;display:inline-flex}.ui-fd--wide .ui-fd-btn svg{width:18px;height:18px;color:var(--accent)}.ui-fd--wide .ui-fd-btn .wl-group-ico svg{width:16px;height:16px;transform:none}.ui-fd--wide .ui-fd-menu{min-width:0;left:0;right:0}.ui-fd-ico{color:var(--accent);place-items:center;display:grid}.ui-fd-ico svg{width:17px;height:17px}.ui-fd-item:disabled{color:var(--muted);cursor:default}.ui-fd-item:disabled .ui-fd-ico{color:var(--muted)}.ui-fd--up .ui-fd-menu{top:auto;bottom:calc(100% + 6px)}.ui-fd--up .ui-fd-btn>svg{transform:rotate(180deg)}.ui-fd--up .ui-fd-btn[aria-expanded=true]>svg{transform:none}.ui-dock{left:16px;right:16px;bottom:max(10px, env(safe-area-inset-bottom));z-index:5;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);position:fixed;box-shadow:0 2px 10px #16151f1a}@media (width>=821px){.ui-dock{left:226px}}.ui-dock-spacer{height:calc(64px + env(safe-area-inset-bottom));flex:none}.ui-dock-btn{border-radius:inherit;width:100%;min-height:52px;font-family:var(--font-body);color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:7px 16px 7px 8px;display:flex}.ui-dock-chev{color:var(--accent);margin-left:auto}.ui-dock-ico{background:var(--accent-soft);border-radius:9px;flex:none;place-items:center;width:30px;height:30px;display:grid}.ui-sheet-action .ui-dock-ico svg{width:16px;height:16px;color:var(--accent)}.ui-dock-n{color:var(--muted);margin-left:auto;font-size:13px}.ui-sheet-action.ui-dock-sel{color:var(--accent-press)}.ui-sheet-action.ui-dock-sel>svg{color:var(--accent)}.ui-sheet-action:disabled{color:var(--muted);cursor:default}.ui-sheet-action:disabled .ui-dock-ico{background:var(--paper)}.ui-sheet-action:disabled .ui-dock-ico svg{color:var(--muted)}.sel-toolbar{z-index:200;background:var(--ink);color:#fff;border-radius:var(--r-pill);box-shadow:var(--shadow-pop);gap:2px;padding:5px;display:flex;position:fixed;transform:translate(-50%,calc(-100% - 10px))}.sel-toolbar-btn{font-family:var(--font-body);color:#fff;border-radius:var(--r-pill);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:6px;padding:7px 11px;font-size:12.5px;font-weight:700;display:flex}.sel-toolbar-btn:hover{background:#ffffff29}.sel-toolbar-sw{border-radius:50%;width:9px;height:9px;display:inline-block}.sel-toolbar-btn-gram .sel-toolbar-sw{background:var(--m-gram)}.sel-toolbar-btn-vocab .sel-toolbar-sw{background:var(--m-vocab)}.sel-toolbar-btn-spell .sel-toolbar-sw{background:var(--m-spell)}.sel-toolbar-btn-punct .sel-toolbar-sw{background:var(--m-punct)}.sel-toolbar-btn-style .sel-toolbar-sw{background:var(--m-style)}.sel-toolbar-btn-good .sel-toolbar-sw{background:var(--m-good)}.sel-toolbar-key{opacity:.55;font-size:10px;font-weight:800}.sel-toolbar-warning{white-space:nowrap;padding:8px 14px;font-size:12.5px;font-weight:600}.sel-toolbar--ph{left:12px;right:12px;bottom:calc(16px + env(safe-area-inset-bottom));border-radius:var(--r-md);flex-wrap:wrap;justify-content:center;gap:4px;padding:8px;transform:none}.sel-toolbar--ph .sel-toolbar-btn{padding:9px 12px;font-size:13.5px}.sel-toolbar--ph .sel-toolbar-key{display:none}.sel-toolbar--ph .sel-toolbar-close{color:#fff9;padding:9px 10px}.sel-toolbar--ph .sel-toolbar-close svg{width:15px;height:15px}.essay-annotator{position:relative}.essay-text{color:var(--ink);cursor:text;white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px;line-height:1.95}.essay-text mark.mk{cursor:pointer;color:inherit;background:0 0;border-bottom:2.5px solid;border-radius:3px;padding:1px 0 2px;transition:background .15s}.essay-text mark.mk-gram{border-color:var(--m-gram)}.essay-text mark.mk-gram:hover,.essay-text mark.mk-gram.mk-sel{background:var(--m-gram-s)}.essay-text mark.mk-vocab{border-color:var(--m-vocab)}.essay-text mark.mk-vocab:hover,.essay-text mark.mk-vocab.mk-sel{background:var(--m-vocab-s)}.essay-text mark.mk-spell{border-color:var(--m-spell)}.essay-text mark.mk-spell:hover,.essay-text mark.mk-spell.mk-sel{background:var(--m-spell-s)}.essay-text mark.mk-punct{border-color:var(--m-punct)}.essay-text mark.mk-punct:hover,.essay-text mark.mk-punct.mk-sel{background:var(--m-punct-s)}.essay-text mark.mk-style{border-color:var(--m-style)}.essay-text mark.mk-style:hover,.essay-text mark.mk-style.mk-sel{background:var(--m-style-s)}.essay-text mark.mk-good{border-color:var(--m-good)}.essay-text mark.mk-good:hover,.essay-text mark.mk-good.mk-sel{background:var(--m-good-s)}.essay-text mark.mk .mk-fix{color:var(--m-good);white-space:nowrap;margin-left:5px;margin-right:5px;font-size:12.5px;font-weight:700}.essay-hint{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;align-items:center;gap:14px;margin-top:14px;padding-top:12px;font-size:12.5px;display:flex}.essay-hint kbd{font-family:var(--font-mono);background:var(--paper);border:1px solid var(--line);color:var(--ink);border-bottom-width:2px;border-radius:6px;padding:1px 6px;font-size:11.5px;font-weight:700}.essay-hint-esc{color:var(--accent);font-weight:700}.essay-hint-ph{margin-bottom:0}@media (width<=480px),(pointer:coarse) and (orientation:portrait) and (width<=1140px){.essay-text{font-size:15px;line-height:1.6}.essay-hint{margin-top:10px;padding-top:10px}}.essay-text.is-tap{cursor:default;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.essay-text .ew{cursor:pointer}.essay-text .ew-sel{background:var(--accent-soft)}.epk{left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:200;background:var(--ink);color:#fff;box-shadow:var(--shadow-pop);animation:epk-in .16s var(--ease);border-radius:20px;padding:10px;position:fixed}@keyframes epk-in{0%{opacity:0;transform:translateY(10px)}}.epk-quote{color:#fff9;text-overflow:ellipsis;white-space:nowrap;margin:2px 6px 9px;font-size:13px;font-weight:600;overflow:hidden}.epk-quote.is-warn{white-space:normal;color:#ffb3a8}.epk-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.epk-btn{color:#fff;min-height:44px;font-family:var(--font-body);white-space:nowrap;cursor:pointer;background:#ffffff14;border:0;border-radius:12px;justify-content:center;align-items:center;gap:7px;padding:0 6px;font-size:13.5px;font-weight:700;display:flex}.epk-btn:active{background:#ffffff29}.epk-btn:disabled{opacity:.35}.epk-dot{border-radius:50%;flex:none;width:8px;height:8px}.epk-gram .epk-dot{background:var(--m-gram)}.epk-vocab .epk-dot{background:var(--m-vocab)}.epk-spell .epk-dot{background:var(--m-spell)}.epk-punct .epk-dot{background:var(--m-punct)}.epk-style .epk-dot{background:var(--m-style)}.epk-cancel{color:#ffffff8c;background:0 0;font-weight:600}@media (prefers-reduced-motion:reduce){.epk{animation:none}}.wfb{box-sizing:border-box;flex-direction:column;width:100%;max-width:860px;margin:0 auto;padding:22px 24px 56px;display:flex}.wfb-loading{color:var(--muted)}.wfb-list{flex-direction:column;gap:14px;display:flex}.wfb-block{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);flex-direction:column;gap:12px;padding:19px 22px;display:flex}.wfb-prompt{color:var(--ink);white-space:pre-line;font-size:16px;font-weight:600}.wfb-empty{color:var(--muted);font-style:italic}.wfb-hint-tag{color:var(--streak-fg);background:var(--streak-bg);border-radius:var(--r-pill);margin-left:8px;padding:2px 8px;font-size:11.5px;font-weight:700}.wfb-comments{flex-direction:column;gap:6px;display:flex}.wfb-comment{border-radius:var(--r-sm);background:var(--paper);border-left:3px solid var(--line);margin:0;padding:8px 10px;font-size:13px}.wfb-comment-gram{border-left-color:var(--m-gram)}.wfb-comment-vocab{border-left-color:var(--m-vocab)}.wfb-comment-spell{border-left-color:var(--m-spell)}.wfb-comment-punct{border-left-color:var(--m-punct)}.wfb-comment-style{border-left-color:var(--m-style)}.wfb-comment-good{border-left-color:var(--m-good)}.wfb-teacher-comment{border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent-press);margin:0;padding:8px 10px;font-size:13px}.wfb-rubric{background:var(--paper);border-radius:var(--r-md);flex-direction:column;gap:9px;padding:15px 18px;display:flex}.wfb-rubric-title{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 3px;font-size:11px;font-weight:800}.wfb-rubric-row{align-items:center;gap:14px;font-size:14px;font-weight:600;display:flex}.wfb-rubric-row>span:first-child{flex:1}.wfb-dots{align-items:center;gap:5px;display:flex}.wfb-dot{border-radius:var(--r-pill);background:var(--line-strong);width:9px;height:9px}.wfb-dot.on{background:var(--accent)}.wfb-dots-val{text-align:right;width:42px;color:var(--muted);font-size:13px;font-weight:700}.wfb-rubric-total{border-top:1px dashed var(--line-strong);color:var(--muted);justify-content:space-between;align-items:baseline;margin-top:3px;padding-top:12px;font-size:13px;font-weight:700;display:flex}.wfb-rubric-total b{font-family:var(--font-display);color:var(--ink);font-size:22px;font-weight:700}@media (width<=720px){.wfb{padding:20px 16px 40px}}.sr{box-sizing:border-box;width:100%;max-width:992px;margin:0 auto;padding:24px 24px 60px}.sr-subtabs{flex:none}.sr>.wfb{padding:0 0 56px}.sr-stage{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px 28px}.sr-cap{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:22px 2px 12px;font-size:11px;font-weight:800}.sr-stage>.sr-cap:first-child{margin-top:0}.sr-crumbs{align-items:center;gap:12px;margin-bottom:20px;display:flex}.sr-head-text{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.sr-head-ico{color:var(--accent);display:inline-grid}.sr-head-ico svg{width:14px;height:14px}.sr-head-title{white-space:nowrap;text-overflow:ellipsis;font-family:var(--font-display);color:var(--ink);margin:0;font-size:22px;font-weight:700;line-height:1.2;overflow:hidden}.sr-head-sub{min-width:0;color:var(--muted);white-space:nowrap;align-items:center;gap:6px;margin:0;font-size:13px;display:flex}.sr-head-trainer{flex:none;font-weight:700}.sr-head-task{text-overflow:ellipsis;min-width:0;overflow:hidden}@media (width<=480px){.sr-head-title{font-size:19px}}.sr-back{border:1px solid var(--line);background:var(--surface);width:34px;height:34px;color:var(--ink);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.sr-back:hover{border-color:var(--ink)}.sr-back svg{width:16px;height:16px}.sr-alist{flex-direction:column;gap:12px;display:flex}.sr-answer{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px 20px;padding:16px 18px;display:grid;position:relative}.sr-answer--fb{grid-template-columns:minmax(0,350px) minmax(0,1fr)}.sr-answer-main{min-width:0}.sr-answer-word{font-size:15px;font-weight:700}.sr-answer-task{color:var(--muted);margin-top:2px;font-size:12px}.sr-answer-side{flex-direction:column;align-items:flex-end;gap:12px;display:flex}.sr-answer--fb .sr-answer-side{align-items:stretch;padding-top:2px}.sr-fb{flex-direction:column;gap:8px;display:flex}.sr-answer--fb .sr-fb{border-left:1px solid var(--line);padding-left:18px}.sr-verdict{border-radius:var(--r-pill);flex:none;align-self:flex-end;align-items:center;gap:5px;padding:5px 10px;font-size:12px;font-weight:800;display:inline-flex}.sr-verdict svg{width:14px;height:14px}.sr-verdict.accepted{background:var(--success-soft);color:var(--success-groove)}.sr-verdict.redo{background:var(--tongue-soft);color:var(--tongue-groove)}.sr-player-spacing{margin-top:12px}@media (width<=480px){.wave-player.sr-player-spacing{gap:8px;max-width:none;padding:3px 12px 3px 3px}.sr-player-spacing .wave-player-play{width:36px;height:36px;position:relative}.sr-player-spacing .wave-player-play:after{content:"";position:absolute;inset:-4px}.sr-player-spacing .wave-player-wave{height:18px}}.sr-player-error{color:var(--error);margin-top:12px;font-size:12px;font-weight:600}.sr-note{color:var(--ink);font-size:13px;line-height:1.45}.sr-note-tag{text-transform:uppercase;letter-spacing:.04em;margin-right:6px;font-size:10.5px;font-weight:800}.sr-note-tag.grammar,.sr-note-tag.vocab{color:var(--m-vocab)}.sr-note-tag.own{color:var(--accent)}.sr-comment{border-radius:var(--r-sm);background:var(--paper);color:var(--ink);padding:10px 12px;font-size:13.5px;line-height:1.5}.sr-group-foot{border-top:1px solid var(--line);justify-content:flex-end;margin-top:16px;padding-top:16px;display:flex}.sr-redo-btn{background:var(--accent);border-radius:var(--r-pill);font-family:var(--font-body);color:#fff;cursor:pointer;min-height:40px;box-shadow:var(--shadow-glow);border:0;align-items:center;padding:9px 18px;font-size:13px;font-weight:700;display:inline-flex}.sr-redo-btn:hover{background:var(--accent-press)}.sr-redo-btn:disabled{background:var(--line);color:var(--muted);box-shadow:none;cursor:default}.sr-pending-note{color:var(--muted);text-align:center;margin-top:16px;font-size:12.5px}@media (width<=820px){.sr{padding:10px 16px 40px}.sr>.pane-head{margin-bottom:12px}}@media (width<=720px){.sr-stage{padding:20px 16px}.sr-subtabs{width:100%}}@media (width<=480px){.sr-stage{background:0 0;border:none;border-radius:0;padding:0}.sr-answer{padding:14px}}@media (width<=620px){.sr-answer,.sr-answer--fb{grid-template-columns:1fr}.sr-answer-side,.sr-answer--fb .sr-answer-side{align-items:stretch}.sr-answer--fb .sr-answer-side{border-left:0;border-top:1px solid var(--line);padding-top:14px;padding-left:0}.sr-verdict{align-self:flex-start}}@media (pointer:coarse){.sr-back{width:44px;height:44px}.sr-redo-btn{min-height:44px}}.sr-trainer-dd{margin-bottom:14px}.sr-trainer-dd+.wl-list{margin-bottom:22px}.sr-stats{grid-template-columns:repeat(3,minmax(0,120px));margin-top:10px;display:grid}.sr-stats--side{border-top:0;grid-template-columns:repeat(3,92px);margin:0;padding:0}.sr-stats--meta{display:none}@media (width<=720px){.sr-stats--meta{display:grid}.wl-metric:has(>.sr-stats--side){display:none}}.sr-stat{color:var(--muted);white-space:nowrap;text-align:center;flex-direction:column;align-items:center;gap:1px;padding:0 4px;font-size:11px;font-weight:600;display:flex}.sr-stat+.sr-stat{border-left:1px solid var(--line)}.sr-stat b{font-family:var(--font-display);font-size:16px;font-weight:800;line-height:1.2}.sr-stat--ok b{color:var(--success-groove)}.sr-stat--wait b{color:var(--streak-fg)}.sr-stat--redo b,.sr-stat--redo{color:var(--tongue-groove)}.sr-stat--zero{opacity:.55}.sr-stat--zero b{color:var(--muted)}@media (width<=720px){.sr-head-sub .sr-head-ico,.sr-head-sub .sr-head-trainer,.sr-head-sub .sr-head-dot{display:none}}.vocab-addbar{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);flex-wrap:wrap;gap:12px;padding:14px;display:flex}.vocab-addbar input,.vocab-addbar textarea{border:1.5px solid var(--line);border-radius:var(--r-sm);min-width:0;font-family:var(--font-body);background:var(--surface);color:var(--ink);flex:220px;min-height:44px;padding:11px 14px;font-size:15px}.vocab-addbar input[type=date]{flex:0 170px}.vocab-addbar input:focus,.vocab-addbar textarea:focus{border-color:var(--accent);outline:none}.vocab-addbar input::placeholder,.vocab-addbar textarea::placeholder{color:var(--muted)}.vocab-addbar textarea{resize:vertical;flex:100%;min-height:44px}.vocab-addbar>button{flex:none}.vocab-addbar .error{flex-basis:100%;margin-bottom:0}@media (width<=720px){.vocab-addbar input:not(textarea):not([type=date]){flex-basis:100%}}.vocab-addbar.vocab-addbar-bare{background:var(--paper);border:none;padding:12px}.vocab-addbar.vocab-addbar-bare input,.vocab-addbar.vocab-addbar-bare textarea{background:var(--surface)}.vocab-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.vocab-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);transition:box-shadow .18s var(--ease), transform .18s var(--ease);padding:16px 18px}.vocab-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}.vocab-card-top{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:4px 12px;display:grid}.vocab-card-head{flex-wrap:wrap;align-items:baseline;gap:2px 12px;min-width:0;display:flex}.vocab-card-word{color:var(--ink);font-size:18px;font-weight:800}.vocab-card-ipa{font-family:var(--font-mono);color:var(--muted);font-size:13px}.vocab-card-tr{color:var(--ink);grid-column:1/-1;font-size:15px}.vocab-card-example{color:var(--muted);margin-top:4px;font-size:13.5px;font-style:italic}.vocab-card-foot{border-top:1px solid var(--line);align-items:center;gap:14px;margin-top:12px;padding-top:12px;display:flex}.vocab-card-actions{gap:2px;margin-left:auto;display:flex}.vocab-chip{border-radius:var(--r-pill);background:var(--paper);color:var(--muted);white-space:nowrap;cursor:default;align-items:center;padding:5px 11px;font-size:12px;font-weight:700;line-height:1.2;display:inline-flex}.vocab-chip-teacher{background:var(--accent-soft);color:var(--accent-press)}.vocab-status{color:var(--muted);white-space:nowrap;align-items:center;gap:6px;font-size:12px;font-weight:700;display:inline-flex}.vocab-status-dot{border-radius:50%;flex:none;width:9px;height:9px}.vocab-status-known{color:var(--success-groove)}.vocab-status-known .vocab-status-dot{background:var(--success)}.vocab-status-learning{color:var(--streak-fg)}.vocab-status-learning .vocab-status-dot{background:var(--streak-fg)}.vocab-status-new .vocab-status-dot{background:var(--line);box-shadow:inset 0 0 0 1.5px var(--line-strong)}.vocab-star{background:var(--streak-bg);width:28px;height:28px;color:var(--streak-fg);border-radius:50%;flex:none;grid-area:1/2;place-items:center;margin-top:-2px;display:inline-grid}.vocab-star svg{fill:currentColor;width:15px;height:15px}.vocab-star-toggle{cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease);border:none;padding:0;position:relative}.vocab-star-toggle:after{content:"";position:absolute;inset:-8px}.vocab-star-toggle[aria-pressed=false]{color:var(--line-strong);background:0 0}.vocab-star-toggle[aria-pressed=false] svg{fill:none}.vocab-star-toggle:hover,.vocab-star-toggle:focus-visible{background:var(--streak-bg);color:var(--streak-fg)}.vocab-star-toggle:focus-visible{box-shadow:0 0 0 3px var(--accent-soft);outline:none}.vocab-date{color:var(--muted);white-space:nowrap;align-items:center;gap:5px;font-size:12px;display:inline-flex}.vocab-date svg{opacity:.7;width:12px;height:12px}.vocab-editor{flex-direction:column;gap:12px;display:flex}.vocab-editor-field{flex-direction:column;gap:6px;display:flex}.vocab-editor-label{color:var(--muted);font-size:12px;font-weight:700}.vocab-editor-term{font-size:16px;font-weight:700}.vocab-editor-example{resize:vertical;min-height:64px;line-height:1.45}.vocab-editor-error{margin:0}.vocab-editor-foot{border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:8px;margin-top:2px;padding-top:12px;display:flex}.vocab-editor-foot button{border-radius:var(--r-pill);min-height:40px;font-family:var(--font-body);cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease);padding:0 18px;font-size:14px;font-weight:700}.vocab-editor-cancel{color:var(--muted);background:0 0;border:none}.vocab-editor-cancel:hover:not(:disabled){background:var(--paper);color:var(--ink)}.vocab-editor-save{background:var(--accent);color:#fff;border:none}.vocab-editor-save:hover:not(:disabled){background:var(--accent-press)}.vocab-editor-foot button:disabled{opacity:.5;cursor:default}.vocab-editor-foot button:focus-visible{box-shadow:0 0 0 3px var(--accent-soft);outline:none}.vocab-icon-btn{border-radius:var(--r-sm);width:36px;height:36px;min-height:36px;color:var(--muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s;display:inline-flex}.vocab-icon-btn svg{width:18px;height:18px}.vocab-icon-btn:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.vocab-icon-btn:disabled{opacity:.45;cursor:default}.vocab-icon-btn-danger:hover:not(:disabled){background:var(--error-soft);color:var(--error)}.vocab-add-dock{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);flex-direction:column;justify-content:center;gap:12px;min-height:72px;padding:14px 20px;display:flex}.vocab-add-dock>.word-addline{align-self:flex-start;width:auto}.vocab-empty{color:var(--muted);text-align:center;border:1px dashed var(--line);border-radius:var(--r-md);padding:36px 20px;font-size:14px}.tm-head-sub{color:var(--muted);flex-wrap:wrap;align-items:center;gap:7px;margin-top:4px;font-size:13px;display:flex}.tm-level-fact{border-radius:var(--r-pill);text-transform:uppercase;padding:2px 8px;font-size:10.5px;font-weight:800}.tm-level-fact-A1,.tm-level-fact-A2{background:var(--success-soft);color:var(--success-groove)}.tm-level-fact-B1,.tm-level-fact-B2{background:var(--m-punct-s);color:var(--m-punct)}.tm-level-fact-C1,.tm-level-fact-C2{background:var(--m-spell-s);color:var(--plum-groove)}.tm-level-fact-none{background:var(--tongue-soft);color:var(--tongue-groove)}.tm-head-title{align-items:flex-start;gap:12px;display:flex}.tm-theme-icon-picker{flex:none;position:relative}.tm-theme-icon-trigger{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);cursor:pointer;transition:background .15s var(--ease);border:none;border-radius:11px;place-items:center;display:grid}.tm-theme-icon-trigger:hover,.tm-theme-icon-trigger[aria-expanded=true]{background:var(--accent);color:#fff}.tm-theme-icon-trigger svg{width:18px;height:18px}.tm-theme-icon-drop{z-index:41;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);min-width:230px;box-shadow:var(--shadow-pop);grid-template-columns:repeat(6,1fr);gap:4px;padding:8px;display:grid;position:absolute;top:calc(100% + 6px);left:0}.tm-theme-icon-drop button{width:32px;height:32px;color:var(--ink);cursor:pointer;transition:background .12s var(--ease), color .12s var(--ease);background:0 0;border:1.5px solid #0000;border-radius:9px;place-items:center;display:grid}.tm-theme-icon-drop button:hover{background:var(--accent-soft)}.tm-theme-icon-drop button.on{background:var(--accent);border-color:var(--accent);color:#fff}.tm-theme-icon-drop button svg{width:17px;height:17px}.tm-head-actions{flex-wrap:wrap;flex:none;align-items:center;gap:10px;display:flex}.tm-ai-menu{flex:none;margin-left:auto;position:relative}.tm-sheet-footer .tm-ai-menu-drop{top:auto;bottom:calc(100% + 6px)}.tm-ai-trigger{border-radius:var(--r-sm);background:var(--accent-soft);width:32px;height:32px;color:var(--accent);cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease);border:none;flex:none;place-items:center;display:grid;position:relative}.tm-ai-trigger:hover,.tm-ai-trigger[aria-expanded=true]{background:var(--accent);color:#fff}.tm-ai-trigger svg{flex:none;width:16px;height:16px}.tm-ai-trigger-badge{border-radius:var(--r-pill);background:var(--tongue);color:#fff;border:2px solid var(--surface);place-items:center;min-width:17px;height:17px;padding:0 4px;font-size:10px;font-weight:800;display:grid;position:absolute;top:-5px;right:-5px}.tm-ai-menu-drop{z-index:41;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);min-width:230px;box-shadow:var(--shadow-pop);padding:4px;position:absolute;top:calc(100% + 6px);right:0}.tm-ai-menu-drop button{width:100%;font-family:var(--font-body);color:var(--ink);cursor:pointer;text-align:left;transition:background .12s var(--ease);background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:10px 11px;font-size:13.5px;font-weight:600;display:flex}.tm-ai-menu-drop button:hover:not(:disabled){background:var(--accent-soft)}.tm-ai-menu-drop button:disabled{opacity:.55;cursor:default}.tm-ai-menu-drop button svg{width:14px;height:14px;color:var(--accent);flex:none}.tm-ai-menu-count{border-radius:var(--r-pill);background:var(--tongue-soft);min-width:20px;height:20px;color:var(--tongue-groove);flex:none;place-items:center;margin-left:auto;padding:0 6px;font-size:11px;font-weight:800;display:grid}.tm-theme-menu{position:relative}.tm-theme-menu-trigger{border:1.5px solid var(--line);border-radius:var(--r-pill);background:var(--surface);width:40px;height:40px;color:var(--muted);cursor:pointer;transition:background .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease);place-items:center;display:grid}.tm-theme-menu-trigger:hover,.tm-theme-menu-trigger[aria-expanded=true]{background:var(--paper);color:var(--ink)}.tm-theme-menu-trigger svg{width:16px;height:16px}.tm-theme-menu-drop hr{border:0;border-top:1px solid var(--line);margin:4px 0}.tm-theme-menu-drop button.danger,.tm-theme-menu-drop button.danger svg{color:var(--error-groove)}.tm-theme-menu-drop button.danger:hover{background:var(--error-soft)}.word-addline{cursor:pointer;width:100%;font-family:var(--font-body);color:var(--accent);text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:0;font-size:14px;font-weight:800;display:flex}.word-addline-icon{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);transition:background .15s var(--ease), color .15s var(--ease);border-radius:10px;flex:none;place-items:center;display:grid}.word-addline-icon svg{width:14px;height:14px}.word-addline:hover .word-addline-icon{background:var(--accent);color:#fff}.word-add-form button,.taboo-add-form button{cursor:pointer;border-radius:var(--r-pill);background:var(--accent);color:#fff;font-family:var(--font-body);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:4px;min-height:40px;padding:10px 16px;font-size:13.5px;font-weight:700;display:flex}.word-add-form button:hover,.taboo-add-form button:hover{background:var(--accent-press)}.word-add-form button.word-add-close,.taboo-add-form button.word-add-close{border:1.5px solid var(--line);background:var(--surface);width:40px;color:var(--muted);flex:none;justify-content:center;padding:0;font-size:14px}.word-add-form button.word-add-close svg{width:16px;height:16px}.word-add-form button.word-add-close:hover,.taboo-add-form button.word-add-close:hover{background:var(--paper);color:var(--ink)}.vocabulary-tab{flex-direction:column;flex:1;gap:16px;width:100%;max-width:none;min-height:0;margin:0 auto;padding:24px 24px 20px;display:flex}.vocabulary-tab>*{flex:none}@media (width>=961px){.vocabulary-tab .vocab-inline-search{display:none}}.vocabulary-tab>.vocab-scroll{overscroll-behavior:contain;flex-direction:column;flex:1;gap:12px;min-height:0;margin:-6px -8px;padding:6px 8px;display:flex;overflow-y:auto}.vocabulary-tab .vocab-list{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.vocabulary-header h1{font-family:var(--font-display);letter-spacing:-.02em;font-size:30px;font-weight:700}.vocabulary-subtitle{color:var(--muted);margin-top:8px;font-size:15px}.vocabulary-add-form{flex-direction:column;display:flex}.vocabulary-spell-warning{border-radius:var(--r-sm);background:var(--streak-bg);color:var(--ink);margin-top:12px;padding:12px 14px;font-size:14px}.vocabulary-spell-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.vocabulary-spell-actions button{cursor:pointer;border-radius:var(--r-pill);border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font-family:var(--font-body);padding:8px 14px;font-size:13px;font-weight:600}.vocabulary-spell-actions button:hover{border-color:var(--accent);color:var(--accent)}.vocabulary-spell-cancel{color:var(--muted)!important}.vocabulary-change-banner{border-radius:var(--r-sm);background:var(--accent-soft);width:100%;margin-top:12px;padding:12px 14px}.vocabulary-change-banner p{color:var(--ink);font-size:13.5px}.my-dock-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.my-dock-row>.word-addline{width:auto}.vocab-swipe-shortcut{border-radius:var(--r-sm);background:var(--accent-soft);width:40px;height:40px;color:var(--accent);cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease);border:none;flex:none;place-items:center;padding:0;display:grid}.vocab-swipe-shortcut svg{width:20px;height:20px}.vocab-swipe-shortcut:hover{background:var(--accent);color:#fff}.vocab-swipe-shortcut:focus-visible{box-shadow:0 0 0 3px var(--accent-soft), 0 0 0 5px var(--accent);outline:none}.vocab-inline-search{align-items:center;gap:10px;display:flex}.vocab-inline-search>:first-child{flex:1;min-width:0}.vocab-inline-search>.vocab-swipe-shortcut{border-radius:var(--r-md);width:52px;height:52px}.vocab-inline-search>.vocab-swipe-shortcut svg{width:24px;height:24px}@media (width<=960px){.my-dock-swipe{display:none}}.my-add-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto;grid-template-areas:"term trans trans trans""example example add close";align-items:center;gap:10px;display:grid}.my-add-row .my-add-term{grid-area:term}.my-add-row .my-add-trans{grid-area:trans}.my-add-row .my-add-example{grid-area:example}.my-add-row button[type=submit]{grid-area:add}.my-add-row .word-add-close{grid-area:close}.my-add-row input{min-width:0}.my-add-row button:disabled{opacity:.5;cursor:default}.vocab-add-dock .my-add-error,.vocab-add-dock .vocabulary-spell-warning{margin:0}@media (width<=720px){.vocabulary-tab{padding:16px 16px max(8px, env(safe-area-inset-bottom));gap:12px}.vocabulary-tab .vocab-list{grid-template-columns:minmax(0,1fr)}.vocabulary-tab .vocab-card-foot{flex-wrap:wrap;row-gap:6px}.vocabulary-header h1{font-size:26px}.my-add-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"term term""trans trans""example example""add close"}}@media (width<=720px),(pointer:coarse) and (width<=960px){.vocabulary-tab{padding:0 16px;position:relative}.vocabulary-tab>.vocab-inline-search,.vocabulary-tab>.vocab-add-dock{z-index:3;position:absolute;left:16px;right:16px}.vocabulary-tab>.vocab-inline-search{top:10px}.vocabulary-tab>.vocab-add-dock{bottom:max(10px, env(safe-area-inset-bottom));min-height:0;padding:12px 16px;box-shadow:0 2px 10px #16151f1a}.vocabulary-tab>.vocab-add-dock>.my-dock-row{justify-content:flex-end}.vocabulary-tab>.vocab-add-dock .word-addline{flex-direction:row-reverse}.vocabulary-tab.is-keyboard>.vocab-add-dock{bottom:calc(var(--vocab-keyboard,0px) + 8px)}.vocabulary-tab>.vocab-inline-search .ui-search input{border-width:1px;box-shadow:0 2px 10px #16151f1a}.vocabulary-tab>.vocab-inline-search>.vocab-swipe-shortcut{border:1px solid var(--line);background:var(--surface);box-shadow:0 2px 10px #16151f1a}.vocabulary-tab>.vocab-scroll{padding:calc(var(--vocab-top-h,0px) + 20px) 16px calc(var(--vocab-bottom-h,0px) + 20px);scroll-padding-top:calc(var(--vocab-top-h,0px) + 10px);margin:0 -16px}.vocabulary-tab.is-keyboard>.vocab-scroll{padding-bottom:calc(var(--vocab-bottom-h,0px) + var(--vocab-keyboard,0px) + 20px)}}@media (pointer:coarse) and (width>=721px){.my-dock-row,.my-dock-row>.word-addline{flex-direction:row-reverse}}@media (pointer:coarse) and (width>=721px) and (width<=960px){.vocabulary-tab>.vocab-add-dock>.my-dock-row{flex-direction:row;justify-content:flex-end}.vocabulary-tab>.vocab-add-dock .word-addline{flex-direction:row}}.cal-sub{flex-direction:column;gap:16px;display:flex}.cal-sub-lead{color:var(--muted);margin:0;font-size:14.5px;line-height:1.5}.cal-sub-loading{min-height:120px;color:var(--muted);flex-direction:row;justify-content:center;align-items:center;gap:10px;font-size:14.5px}.cal-sub .cal-sub-ways{grid-template-columns:repeat(3,1fr);width:100%;display:grid}.cal-sub .cal-sub-ways button{white-space:nowrap;justify-content:center;min-width:0;padding-left:8px;padding-right:8px;font-size:13.5px}.cal-sub-way{flex-direction:column;gap:12px;display:flex}.cal-sub-cta{align-self:stretch;text-decoration:none}.cal-sub-note,.cal-sub-text{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.cal-sub-text{color:var(--ink);font-size:14px}.cal-sub-steps{counter-reset:cal-sub-step;color:var(--ink);flex-direction:column;gap:8px;margin:0;padding:0;font-size:14px;line-height:1.45;list-style:none;display:flex}.cal-sub-steps li{counter-increment:cal-sub-step;gap:10px;display:flex}.cal-sub-steps li:before{content:counter(cal-sub-step);border-radius:var(--r-pill);background:var(--accent-soft);width:22px;height:22px;color:var(--accent-press);flex:none;place-items:center;font-size:12px;font-weight:800;display:grid}.cal-sub-steps a{color:var(--accent);text-underline-offset:3px}.cal-sub-steps a:hover{color:var(--accent-press)}.cal-sub-link{align-items:stretch;gap:8px;display:flex}.cal-sub-url{min-width:0;color:var(--muted);text-overflow:ellipsis;flex:1;font-size:13px}.cal-sub-footer{border-top:1px solid var(--line);align-items:center;gap:10px;padding-top:12px;display:flex}.cal-sub-rotate{min-height:44px;color:var(--muted);font-family:var(--font-body);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:600}.cal-sub-rotate:hover{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.cal-sub-rotate:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cal-sub-notice{border-radius:var(--r-sm);background:var(--accent-soft);color:var(--ink);margin:0;padding:12px 14px;font-size:13.5px;line-height:1.5}.cal-sub-confirm{border-top:1px solid var(--line);flex-direction:column;gap:12px;padding-top:14px;display:flex}.cal-sub-confirm p{color:var(--ink);margin:0;font-size:14px;line-height:1.5}.cal-sub-confirm-actions{justify-content:flex-end;gap:8px;display:flex}.csync-trigger{border:1.5px solid var(--line);border-radius:var(--r-pill);background:var(--surface);min-height:44px;color:var(--ink);font-family:var(--font-body);cursor:pointer;white-space:nowrap;align-items:center;gap:8px;padding:0 18px;font-size:13.5px;font-weight:700;transition:border-color .15s;display:inline-flex}.csync-trigger:hover{border-color:var(--line-strong)}.csync-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.csync-trigger svg{width:16px;height:16px}.csync-topbar{position:relative}.csync-topbar .csync-dot{position:absolute;top:8px;right:8px}.csync-dot{border-radius:var(--r-pill);background:var(--success);flex:none;width:8px;height:8px}.csync-dot.warn{background:var(--error)}.csync{flex-direction:column;gap:16px;display:flex}.csync-loading{min-height:120px;color:var(--muted);flex-direction:row;justify-content:center;align-items:center;gap:10px;font-size:14.5px}.csync-lead{color:var(--muted);margin:0;font-size:14.5px;line-height:1.5}.csync-providers{flex-wrap:wrap;gap:8px;display:flex}.csync-provider{font-family:var(--font-body);background:var(--surface);cursor:pointer;border-radius:var(--r-pill);border:1.5px solid var(--line);min-height:44px;color:var(--muted);align-items:center;gap:6px;padding:0 18px;font-size:14px;font-weight:700;display:inline-flex}.csync-provider.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-press)}.csync-provider small{font-size:12px;font-weight:600}.csync .modal-field{margin:0}.csync-status{border:1px solid var(--line);border-radius:var(--r-sm);align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.csync-status .csync-dot{margin-top:6px}.csync-status-title{color:var(--ink);overflow-wrap:anywhere;font-size:14.5px;font-weight:700}.csync-status-sub{color:var(--muted);margin-top:2px;font-size:13px;line-height:1.45}.csync-note{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.csync-notice{border-radius:var(--r-sm);background:var(--accent-soft);color:var(--ink);margin:0;padding:12px 14px;font-size:13.5px;line-height:1.5}.csync-error{border-radius:var(--r-sm);background:var(--error-soft);color:var(--error-groove);margin:0;padding:10px 14px;font-size:13.5px;line-height:1.45}.csync-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.csync .csync-off{color:var(--muted);margin-right:auto;padding-left:0}.csync .csync-off:hover:not(:disabled){color:var(--error-groove);background:0 0}.csync-confirm{border-top:1px solid var(--line);flex-direction:column;gap:12px;padding-top:14px;display:flex}.csync-confirm p{margin:0;font-size:14px;line-height:1.5}.csync-confirm-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.csync .csync-danger{color:var(--error-groove)}.csync .csync-danger:hover:not(:disabled){border-color:var(--error);background:var(--error-soft)}.csync-badge{border-radius:var(--r-pill);background:var(--tongue);color:#fff;text-align:center;flex:none;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:800;line-height:18px}.csync-topbar .csync-badge{position:absolute;top:4px;right:2px}.csync-inbox{border-top:1px solid var(--line);flex-direction:column;gap:10px;padding-top:14px;display:flex}.csync-inbox-title{font-family:var(--font-body);color:var(--ink);align-items:center;gap:8px;margin:0;font-size:14.5px;font-weight:700;display:flex}.csync-count{border-radius:var(--r-pill);background:var(--tongue-soft);min-width:20px;height:20px;color:var(--tongue-groove);text-align:center;padding:0 6px;font-size:12px;font-weight:800;line-height:20px}.csync-inbox-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.csync-item{border:1px solid var(--line);border-radius:var(--r-sm);flex-direction:column;gap:8px;padding:12px 14px 6px;display:flex}.csync-item-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 12px;display:flex}.csync-item-title{color:var(--ink);overflow-wrap:anywhere;font-size:14.5px;font-weight:700}.csync-item-when{color:var(--muted);font-size:13px}.csync-item-why{color:var(--muted);margin:0;font-size:13px;line-height:1.45}.csync-item-pick{flex-wrap:wrap;gap:8px;display:flex}.csync-item-pick select{flex:200px;min-width:0;min-height:44px}.csync-item-actions{justify-content:flex-start;display:flex}.csync .csync-item-dismiss{color:var(--muted);padding-left:0}.csync .csync-item-dismiss:hover:not(:disabled){color:var(--ink);background:0 0}.csync-badge .visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.csync-provider:hover:not(.on):not(:disabled){border-color:var(--line-strong);color:var(--ink)}.csync-provider:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.csync-hint{color:var(--muted);margin:6px 0 0;font-size:12.5px;line-height:1.5}.csync-hint a{color:var(--accent);text-underline-offset:3px}.csync-triggers{align-items:center;gap:8px;display:inline-flex}.csync>.csync-inbox:first-child{border-top:0;padding-top:0}.csync-inline{max-width:560px}.tg-status{border-radius:var(--r-pill);white-space:nowrap;margin-left:auto;padding:4px 10px;font-size:12px;font-weight:700}.tg-status--on{background:var(--success-soft);color:var(--success-groove)}.tg-status--warn{background:var(--streak-bg);color:var(--streak-fg)}.tg-body{flex-direction:column;gap:14px;display:flex}.tg-loading{color:var(--muted);flex-direction:row;align-items:center;gap:10px;font-size:14.5px}.tg-lead{color:var(--muted);margin:0;font-size:14.5px;line-height:1.5}.tg-cta{align-self:flex-start;align-items:center;gap:8px;text-decoration:none;display:inline-flex}.tg-cta svg{width:17px;height:17px}.tg-groups{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.tg-group{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:10px 0;display:flex}.tg-group-label{font-size:14.5px;font-weight:700}.tg-group-hint{color:var(--muted);margin-top:2px;font-size:13px}.tg-off{min-height:44px;color:var(--muted);font-family:var(--font-body);cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0 4px;font-size:13.5px;font-weight:700}.tg-off:hover:not(:disabled){color:var(--error-groove)}.tg-off:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.tg-error{color:var(--error-groove);margin:12px 0 0;font-size:13.5px;font-weight:600}.tg-mark{color:var(--muted);align-items:center;gap:4px;display:inline-flex}.tg-mark svg{width:13px;height:13px;color:var(--accent)}.tg-mark--off svg{color:var(--muted)}.tg-promo{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);animation:tg-promo-in .5s var(--ease) both;align-items:center;gap:14px;padding:12px 12px 12px 16px;display:flex}.tg-promo-icon{border-radius:var(--r-sm);background:var(--accent-soft);width:40px;height:40px;color:var(--accent);flex:none;place-items:center;display:grid}.tg-promo-icon svg{width:20px;height:20px}.tg-promo-text{flex-direction:column;flex:1;gap:2px;min-width:0;margin:0;font-size:13.5px;line-height:1.35;display:flex}.tg-promo-text span{color:var(--muted)}.tg-promo-cta{white-space:nowrap;color:#fff;flex:none;text-decoration:none}.tg-promo-close{width:36px;height:36px;color:var(--muted);cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease);background:0 0;border:0;border-radius:50%;flex:none;place-items:center;display:grid}.tg-promo-close:hover{background:var(--paper);color:var(--ink)}.tg-promo-close:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tg-promo-close svg{width:18px;height:18px}@keyframes tg-promo-in{0%{opacity:0;transform:translateY(-6px)}}@media (width<=640px){.tg-promo{flex-wrap:wrap;padding:12px}.tg-promo-text{flex-basis:calc(100% - 100px)}.tg-promo-cta{margin-left:54px}}@media (prefers-reduced-motion:reduce){.tg-promo{animation:none}}.tg-mark--link{color:var(--accent);cursor:pointer;font-weight:700;text-decoration:none}.tg-mark--link:hover{text-underline-offset:2px;text-decoration:underline}.tg-mark--link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.ph-section{flex-direction:column;gap:6px;display:flex}.ph-caption{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);justify-content:space-between;align-items:baseline;gap:12px;padding:0 4px;font-size:12px;font-weight:700;display:flex}.ph-group{border-radius:var(--r-md);background:var(--surface);box-shadow:0 0 0 1px var(--line);overflow:hidden}.ph-row{box-sizing:border-box;width:100%;min-height:52px;font-family:var(--font-body);color:var(--ink);text-align:left;background:0 0;border:0;align-items:center;gap:12px;padding:10px 14px;font-size:15px;display:flex;position:relative}button.ph-row{cursor:pointer}button.ph-row:active{background:var(--paper)}.ph-row+.ph-row:before{content:"";border-top:1px solid var(--line);position:absolute;top:0;left:14px;right:0}.ph-row-lead{flex:none;display:flex}.ph-row-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ph-row-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;line-height:1.3;overflow:hidden}.ph-row-sub{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.3;overflow:hidden}.ph-row-end{color:var(--muted);flex:none;align-items:center;gap:6px;font-size:14px;font-weight:700;display:flex}.ph-row-chev{width:18px;height:18px;color:var(--line-strong);flex:none;margin-right:-4px}.ph-back{min-height:44px;font-family:var(--font-body);color:var(--accent);cursor:pointer;background:0 0;border:0;align-self:flex-start;align-items:center;gap:2px;margin-top:-12px;margin-left:-6px;padding:0 8px 0 0;font-size:15px;font-weight:700;display:inline-flex}.ph-back-ico{width:20px;height:20px}.pl{flex-direction:column;gap:20px;display:flex}.pl-cal{border-radius:var(--r-md);background:var(--surface);box-shadow:0 0 0 1px var(--line);padding:6px 8px 8px}.pl-cal-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.pl-month{min-height:44px;font-family:var(--font-body);color:var(--ink);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0 6px;font-size:16px;font-weight:800;display:inline-flex}.pl-month-chev{width:16px;height:16px;color:var(--accent);transition:transform .15s;transform:rotate(90deg)}.pl-month-chev.open{transform:rotate(-90deg)}.pl-nav{align-items:center;display:flex}.pl-nav button{min-width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.pl-nav button svg{width:18px;height:18px}.pl-nav .pl-today{font-family:var(--font-body);color:var(--accent);padding:0 8px;font-size:14px;font-weight:700}.pl-wdays,.pl-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.pl-wdays span{text-transform:uppercase;text-align:center;color:var(--muted);padding:2px 0 4px;font-size:11px;font-weight:700}.pl-day{border-radius:var(--r-sm);min-height:44px;font-family:var(--font-body);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:3px;padding:5px 0 4px;display:flex}.pl-day-n{color:var(--ink);font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.pl-day.mut .pl-day-n{color:var(--line-strong)}.pl-day.today .pl-day-n{color:var(--accent)}.pl-day.sel{background:var(--accent)}.pl-day.sel .pl-day-n{color:#fff}.pl-dot{background:var(--accent);border-radius:50%;width:5px;height:5px}.pl-dot.red{background:var(--error)}.pl-dot.none{background:0 0}.pl-day.sel .pl-dot:not(.none){background:#fff}.pl-when{flex-direction:column;width:48px;display:flex}.pl-time{color:var(--accent);font-variant-numeric:tabular-nums;font-size:14px;font-weight:800}.pl-date{color:var(--muted);font-size:12px}.pl-unpaid{background:var(--error);border-radius:50%;width:8px;height:8px}.pl-live{border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent);padding:3px 9px;font-size:12px}.pl-cap-link{min-height:32px;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;margin:-8px 0;padding:0;display:inline-flex}.pl-cap-n{font-weight:600}.pl-cap-link svg{width:14px;height:14px}.pl-full-title{font-family:var(--font-display);margin:0;font-size:20px;font-weight:700}.wps{flex-direction:column;gap:12px;display:flex}.wps .wsol{margin-top:-12px;padding:0 0 56px}.wps-loading{color:var(--muted)}.wps-submit{z-index:2;padding:10px 0 max(10px, env(safe-area-inset-bottom));background:linear-gradient(to bottom, transparent, var(--paper) 30%);position:sticky;bottom:0}.wps-submit .btn{width:100%;min-height:48px}.wps-level{border-bottom:1px solid var(--line);flex-direction:column;gap:8px;padding:4px 4px 14px;display:flex}.wps-level-label{color:var(--muted);font-size:13px;font-weight:700}.wps-level-row{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.wps-level-btn{border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);min-height:44px;font-family:var(--font-body);color:var(--ink);cursor:pointer;padding:0;font-size:14px;font-weight:700}.wps-level-btn.is-active{border-color:var(--ink);background:var(--ink);color:#fff}.wps-rename{flex-direction:column;gap:12px;display:flex}.wps-rename-input{box-sizing:border-box;min-height:48px;font-size:16px}.wps-rename .btn{min-height:48px}.calendar-manager{flex-direction:column;display:flex}.calendar-manager .btn,.calendar-manager .btn-ghost,.calendar-manager .btn-debt{font-family:var(--font-body);border-radius:var(--r-pill);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:6px;min-height:38px;padding:9px 16px;font-size:13.5px;font-weight:700;display:inline-flex}.calendar-manager .btn{background:var(--accent);color:#fff}.calendar-manager .btn:hover:not(:disabled){background:var(--accent-press)}.calendar-manager .btn-ghost{background:var(--surface);border:1.5px solid var(--line);color:var(--muted)}.calendar-manager .btn-ghost:hover:not(:disabled){border-color:var(--ink);color:var(--ink)}.calendar-manager .btn-debt{background:var(--error-soft);border:1.5px solid var(--error-soft);color:var(--error)}.calendar-manager .btn-debt:hover:not(:disabled){border-color:var(--error)}.calendar-manager .btn-debt.active{background:var(--error);border-color:var(--error);color:#fff}.calendar-manager .btn:disabled,.calendar-manager .btn-ghost:disabled,.calendar-manager .btn-debt:disabled{opacity:.5;cursor:default}.push{margin-left:auto}.mutedtext{color:var(--muted);font-size:13px}.split{grid-template-columns:320px minmax(0,1fr);align-items:stretch;gap:18px;min-height:686px;display:grid}@media (width<=900px){.split{grid-template-columns:1fr;min-height:0}}.pane{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);flex-direction:column;min-width:0;padding:20px;display:flex}.cal-nav{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.cal-month{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:16px;font-weight:700}.cal-nav-btn{border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);width:34px;height:34px;color:var(--muted);cursor:pointer;justify-content:center;align-items:center;display:flex}.cal-nav-btn:hover{color:var(--accent);border-color:var(--accent)}.cal-nav-btn svg{width:15px;height:15px}.cal-today-row{justify-content:flex-end;margin:-4px 0 6px;display:flex}.wdays{grid-template-columns:repeat(7,1fr);margin-bottom:2px;display:grid}.wdays span{text-align:center;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding-bottom:4px;font-size:11px;font-weight:800}.minical{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.minical-day{text-align:center;font-variant-numeric:tabular-nums;border-radius:var(--r-sm);cursor:pointer;font-family:var(--font-body);color:var(--ink);background:0 0;border:none;padding:8px 0 11px;font-size:13px;position:relative}.minical-day:hover{background:var(--paper)}.minical-day.mut{color:var(--muted);opacity:.45}.minical-day.today{color:var(--accent);font-weight:700}.minical-day.sel{background:var(--accent);color:#fff;font-weight:700}.minical-day.dot:after{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px;position:absolute;bottom:3px;left:50%;transform:translate(-50%)}.minical-day.dot.red:after{background:var(--error)}.minical-day.sel.dot:after{background:#fff}.cal-foot{justify-content:center;margin-top:6px;display:flex}.calendar-manager .link-button{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:4px;font-size:12.5px;font-weight:700}.calendar-manager .link-button:hover{text-decoration:underline}.daysec{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.daysec-head{font-family:var(--font-display);letter-spacing:-.01em;margin:0 0 8px;font-size:15px;font-weight:700}.empty{color:var(--muted);margin:0 0 4px;padding:4px 0;font-size:13px}.listitem{border-radius:var(--r-sm);cursor:pointer;width:100%;min-height:52px;font-family:var(--font-body);color:var(--ink);text-align:left;background:0 0;border:1px solid #0000;align-items:flex-start;gap:10px;margin-bottom:3px;padding:9px 12px;font-size:13px;display:flex}.listitem:hover{background:var(--paper)}.listitem.on{background:var(--accent-soft);border-color:var(--accent)}.listitem .t{font-variant-numeric:tabular-nums;color:var(--accent);flex:none;font-size:12.5px;font-weight:800}.listitem .when{flex-direction:column;flex:none;gap:2px;width:52px;display:flex}.listitem .when .datemark{width:auto}.listitem .body{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.listitem .n{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:700;overflow:hidden}.listitem .th{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.listitem .dotmark{background:var(--error);border-radius:50%;flex:none;width:6px;height:6px;margin-top:6px}.datemark{font-variant-numeric:tabular-nums;color:var(--muted);flex:none;width:48px;font-size:12px;font-weight:700}.divider{color:var(--ink);align-items:center;gap:10px;margin:18px 0 8px;font-size:13.5px;font-weight:700;display:flex}.divider:after{content:"";background:var(--line);flex:1;height:1px}.detail-head{border-bottom:1px solid var(--line);align-items:center;gap:12px;margin-bottom:14px;padding-bottom:16px;display:flex}.detail-title{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:20px;font-weight:700;line-height:1.2}.detail-head-name{min-width:0}.detail-head-name .detail-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.detail-head-name .mutedtext{margin-top:2px;display:block}.detail-head button{flex:none}.chip{font-family:var(--font-body);border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);color:var(--muted);white-space:nowrap;padding:5px 11px;font-size:11.5px;font-weight:700}button.chip{cursor:pointer;font-family:inherit}.chip.ok{background:var(--success-soft);color:var(--success);border-color:#0000}.chip.no{background:var(--error-soft);color:var(--error);border-color:#0000}.chip.wait{background:var(--streak-bg);color:var(--streak-fg);border-color:#0000}.subtabs-bar.detail-subtabs{border-bottom:0;margin-bottom:14px;padding-bottom:0}.detail-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=560px){.detail-grid{grid-template-columns:1fr}}.block{background:var(--paper);border-radius:var(--r-md);min-width:0;padding:14px 16px 16px}.block-head{align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.block-title{font-family:var(--font-body);color:var(--ink);margin:0;font-size:14px;font-weight:700}.block-meta{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:12px;font-weight:600}.block-sub{color:var(--muted);margin:0 0 6px;font-size:12.5px;font-weight:700}.hw-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.hw-split-col{min-width:0}.hw-split-col:first-child{padding-right:20px}.hw-split-col+.hw-split-col{border-left:1px solid var(--line);padding-left:20px}@media (width<=720px){.hw-split{grid-template-columns:minmax(0,1fr)}.hw-split-col:first-child{padding-right:0}.hw-split-col+.hw-split-col{border-left:0;border-top:1px solid var(--line);margin-top:14px;padding:14px 0 0}}.room-block{border:1px solid var(--accent);background:linear-gradient(180deg, var(--accent-soft), var(--surface) 120%)}.room-block .room-start{background:var(--accent);transition:transform .15s var(--ease), box-shadow .15s var(--ease), background-color .15s var(--ease);box-shadow:0 6px 18px #5850ea52}.room-block .room-start:hover:not(:disabled){background:var(--accent-press);transform:translateY(-1px);box-shadow:0 10px 26px #5850ea66}.room-block .room-start:active:not(:disabled){transform:translateY(0);box-shadow:0 4px 12px #5850ea4d}.room-block .room-start svg{flex:none}.room-block .room-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.room-block .room-start{grid-column:1/-1;justify-self:end}@media (width<=560px){.room-block .room-grid{grid-template-columns:1fr}}.block p{margin:0;font-size:13.5px}.full{grid-column:1/-1}.topic-editable{overflow-wrap:anywhere;text-align:left;border-radius:var(--r-sm);width:100%;color:var(--ink);font-size:13.5px;font-family:var(--font-body);cursor:pointer;background:0 0;border:none;margin:-3px -4px;padding:3px 4px;display:block}.topic-editable:hover{background:var(--paper)}.addline{color:var(--accent);border-radius:var(--r-pill);cursor:pointer;min-height:34px;font-size:13px;font-weight:700;font-family:var(--font-body);background:0 0;border:none;align-items:center;gap:6px;margin:2px 0 0 -8px;padding:0 10px 0 8px;transition:background .12s;display:inline-flex}.addline:hover:not(:disabled){background:var(--accent-soft)}.addline:disabled{opacity:.6;cursor:default}.addline b{font-weight:800}.addline-chevron:hover,.addline-chevron:focus-visible{color:var(--ink)}.addline-chevron svg{color:var(--muted);transition:color .15s var(--ease), transform .15s var(--ease)}.addline-chevron:hover svg,.addline-chevron:focus-visible svg{color:var(--accent);transform:translateY(1px)}.linkline{align-items:center;min-height:37px;display:flex}.linkline .form-input{height:37px}.next-lesson-link{text-align:left;width:100%;color:var(--ink);font-size:13.5px;font-weight:600;font-family:var(--font-body);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:0;display:flex}.next-lesson-link svg{width:15px;height:15px;color:var(--muted);flex:none;transition:transform .12s,color .12s}.next-lesson-link:hover svg{color:var(--accent);transform:translate(2px)}.next-lesson-link:hover{color:var(--accent)}.empty-detail{min-height:230px;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:20px;display:flex}.empty-detail .big{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);font-size:19px;font-weight:700}.empty-detail p{max-width:44ch;margin:0;font-size:13.5px}.att{animation:lesson-card-in .26s var(--ease) both;flex-direction:column;gap:12px;display:flex}.att-empty{color:var(--muted);margin:4px 0 0;font-size:13.5px}.att-count{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:8px;font-size:12.5px;font-weight:700}.att-grid{grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.att-tile{background:var(--surface);border-radius:var(--r-sm);min-width:0;transition:box-shadow .15s var(--ease), transform .15s var(--ease);flex-direction:column;display:flex;overflow:hidden}.att-tile:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}.att-preview{aspect-ratio:4/3;background:var(--paper);color:var(--muted);border-bottom:1px solid var(--line);place-items:center;text-decoration:none;display:grid;position:relative}.att-preview--image img,.att-preview--video video{object-fit:cover;width:100%;height:100%;display:block}.att-preview--video video{background:var(--ink);object-fit:contain}.att-preview-ico{width:26px;height:26px}.att-ext{border-radius:var(--r-sm);background:var(--surface);border:1.5px solid var(--line);color:var(--ink);letter-spacing:.06em;padding:6px 12px;font-size:15px;font-weight:800}a.att-preview--file:hover .att-ext{border-color:var(--accent);color:var(--accent)}.att-preview--link{background:var(--accent-soft);color:var(--accent);align-content:center;gap:8px;padding:12px}.att-preview-host{max-width:100%;color:var(--accent-press);text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:700;overflow:hidden}.att-preview--audio{align-content:center;gap:10px;padding:10px}.att-preview--audio .att-wave{background:var(--surface);width:100%}.att-caption{flex-direction:column;gap:2px;min-width:0;padding:9px 12px 11px;display:flex}.att-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;text-decoration:none;overflow:hidden}a.att-name:hover{color:var(--accent)}.att-meta{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;font-weight:600;overflow:hidden}.hw-list{flex-direction:column;gap:5px;margin-bottom:6px;display:flex}.hw-item{min-height:38px;color:var(--ink);background:var(--surface);border-radius:var(--r-sm);align-items:center;gap:8px;padding:6px 8px 6px 12px;font-size:13px;display:flex}.hw-item .dot-bullet{background:var(--accent);border-radius:50%;flex:none;width:5px;height:5px}.material-open{cursor:pointer;font-family:inherit;font-size:inherit;color:var(--ink);text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;min-width:0;padding:0;text-decoration:none;overflow:hidden}.material-open:hover{color:var(--accent);text-decoration:underline}.material-size{color:var(--muted);flex:none;margin-left:auto;font-size:11.5px;font-weight:600}.hw-remove{color:var(--muted);border-radius:var(--r-pill);cursor:pointer;background:0 0;border:none;flex:none;place-items:center;width:28px;height:28px;margin-left:auto;font-size:16px;font-weight:700;line-height:1;display:inline-grid}.hw-remove:hover{background:var(--error-soft);color:var(--error)}.material-size+.hw-remove{margin-left:4px}.hw-remove:hover{color:var(--error)}.hw-add-row{gap:6px;display:flex}.hw-add-row .form-input,.hw-add-row .form-select{flex:1}.hw-add-btn{border-radius:var(--r-sm);background:var(--accent-soft);width:34px;height:34px;color:var(--accent-press);cursor:pointer;border:none;flex:none;justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex}.hw-add-btn:hover{background:var(--accent);color:#fff}.checkline{align-items:center;gap:4px;margin-top:4px;display:flex}.checkline.done .checkline-toggle{color:var(--muted);text-decoration:line-through}.checkline-toggle{overflow-wrap:anywhere;cursor:pointer;min-height:34px;color:var(--ink);font-size:13.5px;line-height:1.45;font-family:var(--font-body);text-align:left;background:0 0;border:none;flex:1;align-items:flex-start;gap:10px;min-width:0;padding:4px 2px;display:flex}.box{border:1.5px solid var(--line);background:var(--surface);color:#fff;border-radius:50%;flex:none;place-items:center;width:18px;height:18px;margin-top:1px;display:inline-grid}.box.on{background:var(--success);border-color:var(--success)}.checkline-remove{color:var(--muted);cursor:pointer;opacity:0;background:0 0;border:none;flex:none;place-items:center;padding:2px 6px;font-size:15px;line-height:1;transition:opacity .15s;display:inline-grid}.checkline:hover .checkline-remove{opacity:1}.checkline-remove:hover{color:var(--error)}.history-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.history-row{border-radius:var(--r-sm);cursor:pointer;text-align:left;width:100%;min-height:44px;font-family:var(--font-body);background:0 0;border:1px solid #0000;align-items:center;gap:12px;padding:8px 12px;display:flex}.history-row .datemark{white-space:nowrap;width:64px}.history-row:hover{background:var(--paper)}.history-row.on{background:var(--accent-soft);border-color:var(--accent)}.history-row .th{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13.5px;font-weight:600;overflow:hidden}.debt-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;padding-bottom:16px;display:flex}.debt-total{font-family:var(--font-display);color:var(--error);margin-top:8px;font-size:26px;font-weight:700;line-height:1.1}.debt-group{border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:8px;overflow:hidden}.debt-group.open{border-color:var(--error)}.debt-row{background:var(--surface);cursor:pointer;text-align:left;width:100%;min-height:56px;font-family:var(--font-body);border:none;align-items:center;gap:12px;padding:10px 14px;display:flex}.debt-row-text{flex-direction:column;gap:2px;min-width:0;display:flex}.debt-row .name{color:var(--ink);font-size:14px;font-weight:700}.debt-row .meta{color:var(--muted);font-size:12px}.overdue{color:var(--tongue-groove);font-weight:700}.debt-row .sum{font-family:var(--font-display);color:var(--error);flex:none;margin-left:auto;font-weight:700}.caret{color:var(--muted);flex:none;transition:transform .15s;display:flex}.caret svg{width:14px;height:14px}.caret.open{transform:rotate(90deg)}.debt-body{border-top:1px solid var(--line);background:var(--paper);padding:8px 12px 10px}.debt-lesson{border-bottom:1px dashed var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:7px 0;display:flex}.debt-lesson:last-of-type{border-bottom:0}.debt-lesson .d{font-variant-numeric:tabular-nums;color:var(--muted);flex:none;width:100px;font-size:12px;font-weight:700}.debt-lesson .th{color:var(--muted);flex:1;min-width:100px;font-size:13px}.debt-lesson .s{font-size:13px;font-weight:700}.debt-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.lesson-form{flex-direction:column;gap:12px;display:flex}.form-block .block-head{align-items:center;min-height:24px;margin-bottom:12px}.form-block .block-head .ui-toggle{margin:-10px -8px -10px auto}.form-hint{color:var(--muted);margin:8px 0 0;font-size:12.5px;font-weight:600}.form-hint-error{color:var(--error);margin:6px 0 0;font-size:12.5px;font-weight:600}.form-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (width<=560px){.form-grid{grid-template-columns:1fr}}.field-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:6px;font-size:12px;font-weight:700;display:block}.field-label .opt{text-transform:none;letter-spacing:0;color:var(--muted);opacity:.75;font-weight:600}.checkbox-field{white-space:nowrap;cursor:pointer;align-items:center;gap:7px;padding-bottom:8px;display:flex}.checkbox-field input{width:15px;height:15px}.checkbox-field span{color:var(--muted);font-size:12px;font-weight:600}.form-actions{border-top:1px solid var(--line);gap:8px;margin-top:6px;padding-top:16px;display:flex}@media (width<=640px){.detail-head{flex-wrap:wrap;gap:8px}.detail-head-name{flex:calc(100% - 64px)}.detail-head .push{display:none}.calendar-manager .form-actions .btn,.calendar-manager .form-actions .btn-ghost{flex:1;justify-content:center}}.ui-live-dot.livedotmark{margin-top:5px}.calendar-manager .btn-live{background:var(--accent-soft);color:var(--accent-press)}@keyframes lesson-card-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.detail-head{animation:lesson-card-in .22s var(--ease) both}.detail-grid,.history-list{animation:lesson-card-in .26s var(--ease) both;animation-delay:40ms}.detail-grid>.block:has(.combo-panel){z-index:5;position:relative}@media (prefers-reduced-motion:reduce){.detail-head,.detail-grid,.history-list,.att{animation:none}.att-tile,.room-block .room-start{transition:none}}.form-block .form-input-static{background:0 0}.up{flex-direction:column;gap:18px;display:flex}.up-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;padding-bottom:14px;display:flex}.up-head-text{flex-direction:column;gap:4px;min-width:0;display:flex}.up-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.up-day{flex-direction:column;gap:8px;display:flex}.up-day-label{font-family:var(--font-body);color:var(--muted);margin:0;font-size:13px;font-weight:700}.up-count{color:var(--ink);margin-left:4px;font-weight:700}.up-list{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}.up-row{border:none;border-top:1px solid var(--line);background:var(--surface);width:100%;min-height:56px;font-family:var(--font-body);text-align:left;cursor:pointer;transition:background .12s var(--ease);align-items:center;gap:12px;padding:10px 14px;display:flex}.up-list .up-row:first-child{border-top:none}.up-row:hover{background:var(--paper)}.up-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.up-time{width:44px;color:var(--accent);font-variant-numeric:tabular-nums;flex:none;font-size:14px;font-weight:800}.up-time-none{color:var(--muted)}.up-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.up-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.up-topic{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.up-badge{border-radius:var(--r-pill);flex:none;padding:3px 9px;font-size:11.5px;font-weight:700}.up-badge-unpaid{background:var(--error-soft);color:var(--error-groove)}.up-badge-live{background:var(--success-soft);color:var(--success-groove)}.up-caret{color:var(--muted);flex:none;display:grid}.up-caret svg{width:16px;height:16px}.calendar-manager .detail-back{border-radius:var(--r-pill);color:var(--muted);font-family:var(--font-body);cursor:pointer;transition:background .12s var(--ease), color .12s var(--ease);background:0 0;border:none;align-self:flex-start;align-items:center;gap:4px;margin:-4px 0 10px -6px;padding:6px 10px 6px 6px;font-size:13.5px;font-weight:700;display:inline-flex}.calendar-manager .detail-back:hover{background:var(--paper);color:var(--ink)}.calendar-manager .detail-back:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cm-phone{scroll-margin-top:calc(72px + env(safe-area-inset-top));flex-direction:column;gap:14px;display:flex}.cm-phone>.ph-back{margin-bottom:-10px}.ld-ph-head{align-items:center;gap:12px;display:flex}.ld-ph-id{flex:1;min-width:0}.ld-ph-name{font-family:var(--font-display);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:20px;font-weight:700;line-height:1.2;overflow:hidden}.ld-ph-when{color:var(--muted);font-size:13px}.ld-ph-more{width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;margin-right:-8px;display:grid}.ld-ph-more svg{width:21px;height:21px}.ld-ph-start{width:100%;min-height:48px}.cm-phone .detail-subtabs{margin:0}.cm-phone .detail-subtabs .subtabs{flex:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;display:grid}.cm-phone .detail-subtabs .subtab{white-space:nowrap;justify-content:center;align-items:center;gap:5px;padding:10px 6px;font-size:15px;display:inline-flex}.cm-phone .detail-grid{flex-direction:column;gap:12px;display:flex}.cm-phone .block{border-radius:var(--r-md);background:var(--surface);box-shadow:0 0 0 1px var(--line);border:0;padding:14px}.cm-phone .block-title,.cm-phone .block-head h3{font-size:15px}.cm-phone .block-sub{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:12px 0 6px;font-size:12px}.cm-phone .history-list{border-radius:var(--r-md);background:var(--surface);box-shadow:0 0 0 1px var(--line);gap:0;padding:0;overflow:hidden}.cm-phone .history-row{border:0;border-radius:0;min-height:52px;padding:0 14px}.cm-phone .history-list>li+li .history-row{border-top:1px solid var(--line)}.cm-phone .history-row.on{background:var(--accent-soft)}.lf-ph{min-height:calc(100dvh - 60px - env(safe-area-inset-top) - 40px);flex-direction:column;gap:14px;display:flex}.lf-ph-bar{flex-direction:column;gap:4px;display:flex}.lf-ph-title{font-family:var(--font-display);margin:0;font-size:20px;font-weight:700;line-height:1.2}.lf-ph-group{border-radius:var(--r-md);background:var(--surface);box-shadow:0 0 0 1px var(--line);flex-direction:column;display:flex}.lf-ph-field{border-bottom:1px solid var(--line);flex-direction:column;gap:6px;padding:10px 14px 12px;display:flex}.lf-ph-group>:last-child{border-bottom:0}.lf-ph-label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:700}.lf-ph-labelrow{justify-content:space-between;align-items:center;gap:12px;height:16px;display:flex}.lf-ph-labelrow .ui-toggle-label{color:var(--muted);font-size:13px}.lf-ph-note{min-height:44px;color:var(--muted);align-items:center;font-size:15px;display:flex}.lf-ph .form-input{box-sizing:border-box;width:100%;min-height:44px}.lf-ph-submit{padding:10px 0 max(10px, env(safe-area-inset-bottom));background:linear-gradient(to bottom, transparent, var(--paper) 30%);margin-top:auto;position:sticky;bottom:0}.lf-ph-submit .btn{width:100%;min-height:48px}.cm-phone .debt-head .detail-title{font-size:20px}.cm-phone .debt-group{border-radius:var(--r-md);background:var(--surface);box-shadow:0 0 0 1px var(--line)}@media (pointer:coarse){.cal-nav-btn{width:44px;height:44px}.detail-back{min-height:44px}}.cm-phone .detail-back{min-height:44px;color:var(--accent);align-self:flex-start;margin-left:-6px;font-size:15px;font-weight:700}.cm-phone .debt-total{font-size:26px}.tg-app{background:var(--paper);min-height:100dvh;color:var(--ink);font-family:var(--font-body)}.tg-top{z-index:5;background:color-mix(in srgb, var(--paper) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);align-items:center;height:52px;padding:0 16px;display:flex;position:sticky;top:0}.tg-top-action{align-items:center;margin-left:auto;margin-right:-10px;display:flex}.tg-top-action .app-topbar-btn{width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.tg-top-action .app-topbar-btn:disabled{color:var(--line-strong);cursor:default}.tg-top-action .app-topbar-btn svg{width:21px;height:21px}.tg-brand{font-family:var(--font-display);letter-spacing:-.02em;font-size:15px;font-weight:700}.tg-main{flex-direction:column;gap:12px;max-width:520px;margin:0 auto;padding:14px 16px 32px;display:flex}.tg-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);flex-direction:column;gap:12px;padding:18px 16px;display:flex}.tg-card .modal-field{margin-bottom:0}.tg-title{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:21px;font-weight:700;line-height:1.2}.tg-subtitle{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:17px;font-weight:600}.tg-text{color:var(--muted);margin:0;font-size:14.5px;line-height:1.5}.tg-wide{width:100%}.tg-link{min-height:44px;color:var(--accent);align-self:center;align-items:center;font-size:13.5px;font-weight:700;text-decoration:none;display:inline-flex}.tg-error-text{color:var(--error-groove);margin:0;font-size:13.5px;font-weight:600}.tg-center{min-height:50dvh;color:var(--muted);place-items:center;display:grid}.tg-spin{width:28px;height:28px}.tg-tabs{display:flex}.tg-tabs>button{flex:1}.tg-section{flex-direction:column;min-width:0;display:flex}.tg-speaking{flex-direction:column;gap:10px;margin-top:10px;display:flex}.tg-section .homework-tab{gap:14px;padding:0 0 24px}.tg-section .homework-tab .pane-head--split>div:first-child{display:none}.tg-section .hw-subtabs{flex:1;display:flex}.tg-section .hw-subtabs>button{flex:1}.tg-section .wsol,.tg-section .wfb{padding-left:0;padding-right:0}.profile-page{width:100%;max-width:1160px;margin:0 auto;padding:24px 30px 96px}.profile-tabs{margin-bottom:20px}.profile-tabs .segmented-tabs button{white-space:nowrap}.profile-stack{flex-direction:column;gap:16px;max-width:720px;display:flex}.profile-section{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:20px 22px 22px}.profile-section-head{align-items:center;gap:14px;margin-bottom:18px;display:flex}.profile-section-icon{border-radius:var(--r-sm);background:var(--accent-soft);width:40px;height:40px;color:var(--accent);flex:none;place-items:center;display:grid}.profile-section-icon svg{width:20px;height:20px}.profile-section-head h2{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:17px;font-weight:600;line-height:1.25}.profile-section--rows{padding:4px 0}.profile-row{border:0;border-top:1px solid var(--line);width:100%;min-height:56px;font-family:var(--font-body);text-align:left;color:var(--ink);cursor:pointer;transition:background .15s var(--ease);background:0 0;align-items:center;gap:16px;padding:12px 18px 12px 22px;display:flex}.profile-row:first-child{border-top:0}.profile-row:hover{background:var(--paper)}.profile-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.profile-row-label{color:var(--muted);flex:none;font-size:13.5px;font-weight:600}.profile-row-value{text-align:right;overflow-wrap:anywhere;flex-wrap:wrap;flex:1;justify-content:flex-end;align-items:center;gap:6px 10px;min-width:0;font-size:14.5px;font-weight:700;display:flex}.profile-row-chevron{width:18px;height:18px;color:var(--muted);flex:none}.profile-chip{border-radius:var(--r-pill);background:var(--streak-bg);color:var(--streak-fg);padding:3px 10px;font-size:12px;font-weight:700}.profile-notice{border-radius:var(--r-md);background:var(--success-soft);color:var(--success-groove);margin:0;padding:12px 16px;font-size:13.5px;font-weight:600}.profile-form-error{color:var(--error-groove);margin:0 0 4px;font-size:13.5px;font-weight:600}.profile-signout{border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);min-height:44px;color:var(--muted);font-family:var(--font-body);cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease), border-color .15s var(--ease);align-self:flex-start;align-items:center;gap:9px;padding:0 18px;font-size:14px;font-weight:700;display:inline-flex}.profile-signout svg{width:17px;height:17px}.profile-signout:hover{background:var(--error-soft);border-color:var(--error-soft);color:var(--error-groove)}.profile-signout:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (width<=900px){.profile-page{padding:10px 16px 72px}.profile-tabs{scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:0 -16px 14px;padding:0 16px;overflow-x:auto}.profile-tabs::-webkit-scrollbar{display:none}.profile-tabs .segmented-tabs{flex:none;min-width:100%}.profile-section{padding:16px}.profile-section--rows{padding:4px 0}.profile-row{padding:12px 12px 12px 16px}.profile-signout{justify-content:center;align-self:stretch}}.admin-page .profile-page{max-width:none;padding:0}.profile-form{padding-top:6px}.profile-account-grid{grid-template-columns:minmax(320px,400px) minmax(0,1fr);align-items:start;gap:28px 32px;display:grid}.profile-account-data{position:sticky;top:16px}.profile-connections{max-width:720px;scroll-margin-top:16px}.profile-block-title{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 12px;font-size:19px;font-weight:700}.profile-account-foot{border-top:1px solid var(--line);justify-content:flex-end;margin-top:36px;padding-top:20px;display:flex}@media (width<=1000px){.profile-account-grid{grid-template-columns:minmax(0,1fr)}.profile-account-data{position:static}}.game-page{flex-direction:column;gap:24px;width:100%;max-width:880px;margin:0 auto;padding:24px 24px 48px;display:flex}.game-page-subtitle{color:var(--muted);margin-top:4px;font-size:14.5px}.theme-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.theme-card{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;width:100%;transition:transform .18s var(--ease), box-shadow .18s;flex-direction:column;gap:6px;padding:20px;display:flex}.theme-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-3px)}.theme-card-name{color:var(--ink);font-size:16px;font-weight:700}.theme-card-meta{color:var(--muted);font-size:12.5px}.activity-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.activity-card{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;width:100%;min-height:44px;transition:transform .18s var(--ease), box-shadow .18s;flex-direction:column;gap:8px;padding:20px;display:flex}.activity-card:hover:not(:disabled){box-shadow:var(--shadow-sm);transform:translateY(-3px)}.activity-card:disabled{opacity:.5;cursor:not-allowed}.activity-card-icon{border-radius:var(--r-sm);background:var(--accent-soft);width:38px;height:38px;color:var(--accent);justify-content:center;align-items:center;display:flex}.activity-card-title{color:var(--ink);font-size:15.5px;font-weight:700}.activity-card-desc{color:var(--muted);font-size:13px;line-height:1.4}@media (width<=720px){.game-page{padding:10px 16px 40px}}.gp-topbar-title{font-family:var(--font-display);white-space:nowrap;font-size:19px}.gp-search{width:230px;margin-left:auto}.gp-streak-pill{border-radius:var(--r-pill);white-space:nowrap;background:var(--streak-bg);color:var(--streak-fg);flex:none;padding:7px 13px;font-size:12.5px;font-weight:700}@media (width<=960px){.gp-search{display:none}.gp-topbar-title{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}}.boards-ph{color:color-mix(in srgb, var(--muted) 65%, #fff);flex-direction:column;justify-content:center;align-items:center;gap:7px;display:flex;position:absolute;inset:0}.boards-ph span{font-size:12px;font-weight:600}.boards-preview{display:block;position:absolute;inset:0}.boards-preview svg{width:100%;height:100%;display:block}.boards-panel{flex-direction:column;gap:18px;display:flex}.quick-room{border-radius:var(--r-md);background:linear-gradient(135deg, var(--accent-soft) 0%, color-mix(in srgb, var(--accent-soft) 40%, #fff) 52%, color-mix(in srgb, var(--accent-soft) 55%, #fff) 100%);border:1.5px solid color-mix(in srgb, var(--accent) 62%, #fff);padding:18px 22px}.quick-room-head{align-items:center;gap:10px;margin-bottom:14px;display:flex}.quick-room-ic{background:var(--surface);width:32px;height:32px;color:var(--accent);border-radius:10px;flex:none;place-items:center;display:grid}.quick-room-head h2{font-family:var(--font-body);letter-spacing:-.01em;color:var(--ink);margin:0;font-size:15.5px;font-weight:800}.quick-room-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.quick-room .combo{flex:none;width:200px}.quick-room .video-link-field{flex:1;min-width:220px}.quick-room .combo-trigger--field{min-height:46px;font-size:13.5px}.quick-room-go{height:46px;font-family:var(--font-body);color:#fff;cursor:pointer;background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 82%, #fff), var(--accent));box-shadow:0 12px 26px -10px color-mix(in srgb, var(--accent) 65%, transparent);transition:background .15s var(--ease), transform .15s var(--ease), opacity .15s;white-space:nowrap;border:0;border-radius:12px;justify-content:center;align-items:center;gap:9px;margin-left:auto;padding:0 20px;font-size:14.5px;font-weight:700;display:inline-flex}.quick-room-go:hover:not(:disabled){background:linear-gradient(135deg, color-mix(in srgb, var(--accent-press) 82%, #fff), var(--accent-press))}.quick-room-go:active:not(:disabled){transform:translateY(1px)}.quick-room-go:disabled{opacity:.6;cursor:default}@media (width<=640px){.quick-room{padding:16px}.quick-room .combo{width:100%}.quick-room-go{width:100%;margin-left:0}}.boards-toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.boards-toolbar>.ui-search{flex:1;min-width:200px}.boards-count{color:var(--muted);white-space:nowrap;font-size:13px;font-weight:600}.boards-seg{background:color-mix(in srgb, var(--muted) 11%, #fff);border-radius:10px;gap:2px;padding:3px;display:flex}.boards-seg button{font-family:var(--font-body);color:var(--muted);cursor:pointer;transition:color .15s var(--ease), background .15s var(--ease);background:0 0;border:0;border-radius:8px;padding:7px 12px;font-size:13px;font-weight:600}.boards-seg button:hover{color:var(--ink)}.boards-seg button[aria-pressed=true]{background:var(--surface);color:var(--accent-press);box-shadow:var(--shadow-sm)}.boards-seg button:focus-visible{box-shadow:0 0 0 3px var(--accent-soft);outline:none}.boards-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:0;padding:0;list-style:none;display:grid}@media (width<=1020px){.boards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.boards-grid{grid-template-columns:minmax(0,1fr)}}.boards-grid>li{flex-direction:column;display:flex}.boards-create-tile{border:1.5px dashed var(--line);border-radius:var(--r-md);background:color-mix(in srgb, var(--accent) 3%, var(--surface));text-align:center;min-height:180px;color:var(--accent-press);font-family:var(--font-body);cursor:pointer;transition:border-color .15s var(--ease), background .15s var(--ease);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:11px;padding:26px 16px;display:flex}.boards-create-tile:hover{border-color:var(--accent);background:var(--accent-soft)}.boards-create-tile:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.boards-create-plus{background:var(--accent);color:#fff;width:44px;height:44px;box-shadow:0 8px 18px -6px color-mix(in srgb, var(--accent) 60%, transparent);border-radius:13px;place-items:center;display:grid}.boards-create-tile b{font-size:15px;font-weight:700}.boards-create-tile>span:last-child{color:var(--muted);font-size:12px}.boards-card{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-sm);transition:box-shadow .16s var(--ease), transform .16s var(--ease);flex-direction:column;flex:1;display:flex}.boards-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.boards-cover{aspect-ratio:16/10;background:radial-gradient(color-mix(in srgb, var(--ink) 8%, transparent) 1.3px, transparent 1.3px) 0 0 / 18px 18px, var(--paper);border:0;border-bottom:1px solid var(--line);cursor:pointer;text-align:left;width:100%;padding:0;display:block;position:relative;overflow:hidden}.boards-cover:focus-visible{box-shadow:inset 0 0 0 2px var(--accent);outline:none}.boards-live{z-index:1;color:#fff;border-radius:var(--r-pill);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#16151fd1;align-items:center;gap:5px;padding:4px 9px;font-size:11px;font-weight:600;display:inline-flex;position:absolute;top:10px;left:10px}.ui-live-dot.boards-live-pulse{width:6px;height:6px}.boards-card-body{align-items:flex-start;gap:10px;padding:13px 15px 15px;display:flex}.boards-card-ti{flex:1;min-width:0}.boards-card-ti h3{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;margin:0 0 3px;font-size:15px;font-weight:600;overflow:hidden}.boards-card-ti h3.untitled{color:var(--muted);font-style:italic;font-weight:500}.boards-card-meta{color:var(--muted);font-size:12.5px}.boards-menu{flex:none;position:relative}.boards-kebab{width:30px;height:30px;color:var(--muted);cursor:pointer;opacity:0;transition:opacity .14s var(--ease), background .14s var(--ease), color .14s var(--ease);background:0 0;border:0;border-radius:8px;place-items:center;display:grid}.boards-card:hover .boards-kebab,.boards-card:focus-within .boards-kebab,.boards-kebab[aria-expanded=true]{opacity:1}.boards-kebab:hover{background:var(--paper);color:var(--ink)}.boards-kebab:focus-visible{box-shadow:0 0 0 3px var(--accent-soft);outline:none}.boards-menu-drop{z-index:41;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);min-width:152px;box-shadow:var(--shadow-pop);padding:4px;position:absolute;bottom:calc(100% + 6px);right:0}.boards-menu-drop button{width:100%;font-family:var(--font-body);color:var(--ink);cursor:pointer;text-align:left;transition:background .12s var(--ease);background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:9px 11px;font-size:13.5px;font-weight:600;display:flex}.boards-menu-drop button:hover{background:var(--accent-soft)}.boards-menu-drop button.danger{color:var(--error)}.boards-menu-drop button.danger:hover{background:var(--error-soft)}.boards-menu-drop button:focus-visible{box-shadow:0 0 0 3px var(--accent-soft);outline:none}.boards-none{text-align:center;color:var(--muted);margin:0;font-size:13.5px}.lib-actions{align-items:center;gap:10px;display:flex}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.lib-ph-tabs .subtabs{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;display:grid}.lib-ph-tabs .subtab{white-space:nowrap;justify-content:center;padding:10px 6px;font-size:15px}.lib-ph-lvl{font-family:var(--font-display);letter-spacing:.02em;font-size:13px;font-weight:800}.lib-ph-opt{flex:1;min-width:0}.lib-ph-n{color:var(--muted);font-weight:700}.rss>.wfb{padding:0 0 40px}.sed{flex-direction:column;gap:8px;display:flex}.sed-input{border:1.5px solid var(--line);border-radius:var(--r-sm);width:100%;min-width:0;font-family:var(--font-body);color:var(--ink);background:var(--surface);transition:border-color .15s var(--ease);padding:10px 12px;font-size:14.5px;line-height:1.5}.sed-input:focus{border-color:var(--accent);outline:none}.sed-addrow{border:1px dashed var(--line);border-radius:var(--r-sm);width:100%;color:var(--muted);font-family:var(--font-body);cursor:pointer;transition:border-color .15s var(--ease), color .15s var(--ease);background:0 0;justify-content:center;align-items:center;gap:6px;margin-top:2px;padding:10px;font-size:13px;font-weight:700;display:inline-flex}.sed-addrow:hover{border-color:var(--accent);color:var(--accent)}.sed-rowdel{width:26px;height:26px;color:var(--muted);cursor:pointer;opacity:0;transition:opacity .12s var(--ease), background .12s var(--ease), color .12s var(--ease);background:0 0;border:none;border-radius:7px;flex:none;place-items:center;display:grid}.sed-row:hover .sed-rowdel,.sed-cq:hover .sed-rowdel,.sed-pq-top:hover .sed-rowdel,.sed-pq-opt:hover .sed-rowdel,.sed-tfrow:hover .sed-rowdel,.sed-pairrow:hover .sed-rowdel,.sed-ordrow:hover .sed-rowdel,.sed-vocrow:hover .sed-rowdel{opacity:1}.sed-rowdel:hover{background:var(--paper);color:var(--ink)}.sed-row{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 13px}.sed-row-top{align-items:flex-start;gap:8px;display:flex}.sed-sentence{background:var(--surface)}.sed-sentence-view{flex:1;align-items:flex-start;gap:4px;min-width:0;display:flex}.sed-sentence-words{flex:1;min-width:0;line-height:1.9}.sed-sentence-edit{border-radius:var(--r-sm);width:24px;height:24px;color:var(--muted);cursor:pointer;opacity:0;transition:background .12s var(--ease), color .12s var(--ease), opacity .12s var(--ease);background:0 0;border:none;flex:none;place-items:center;display:grid}.sed-row:hover .sed-sentence-edit,.sed-cq:hover .sed-sentence-edit,.sed-sentence-edit:focus-visible{opacity:1}.sed-sentence-edit:hover{background:var(--paper);color:var(--ink)}.sed-tok{font-family:var(--font-body);color:var(--ink);cursor:pointer;transition:background .12s var(--ease);background:0 0;border:none;border-radius:7px;padding:2px 4px;font-size:14.5px}.sed-tok:hover{background:var(--accent-soft)}.sed-tok-gap{background:var(--accent);color:#fff;font-weight:700}.sed-tok-gap:hover{background:var(--accent-press)}.sed-tok-punct{cursor:default;margin-left:-2px;padding:2px 0}.sed-tok-punct:hover{background:0 0}.sed-variants{border-top:1px dashed var(--line);flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;padding-top:8px;display:flex}.sed-variants-lb{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:800}.sed-achip{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);align-items:center;gap:2px;padding:3px 11px;display:inline-flex}.sed-achip:has(.sed-achip-x){padding-right:6px}.sed-achip input,.sed-cchip input{font-family:var(--font-body);color:var(--ink);field-sizing:content;background:0 0;border:none;outline:none;min-width:1.5ch;max-width:30ch;padding:0;font-size:13.5px;font-weight:600;line-height:1.4}.sed-achip-x,.sed-cchip-x{color:var(--muted);cursor:pointer;opacity:0;transition:opacity .12s var(--ease), color .12s var(--ease);background:0 0;border:none;border-radius:50%;padding:0 2px;font-size:15px;line-height:1}.sed-achip:hover .sed-achip-x,.sed-cchip:hover .sed-cchip-x,.sed-achip-x:focus-visible,.sed-cchip-x:focus-visible{opacity:1}.sed-achip-x:hover,.sed-cchip-x:hover{color:var(--ink)}.sed-addchip{border:1px dashed var(--line);color:var(--muted);cursor:pointer;font-family:var(--font-body);transition:border-color .15s var(--ease), color .15s var(--ease);background:0 0;font-weight:700}.sed-addchip:hover{border-color:var(--accent);color:var(--accent)}.sed-cq{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 11px}.sed-cq-top{align-items:flex-start;gap:8px;margin-bottom:6px;display:flex}.sed-cchips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.sed-cchip{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);align-items:center;gap:4px;padding:3px 5px 3px 7px;display:inline-flex}.sed-cchip-dot{appearance:none;border:1.5px solid var(--line);background:var(--surface);cursor:pointer;width:16px;height:16px;transition:border-color .12s var(--ease), background .12s var(--ease);border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.sed-cchip-dot:hover{border-color:var(--success)}.sed-cchip-ok{border-color:var(--success);background:var(--success-soft)}.sed-cchip-ok input{color:color-mix(in srgb, var(--success) 68%, var(--ink))}.sed-cchip-ok .sed-cchip-dot{border-color:var(--success);background:var(--success)}.sed-cchip-ok .sed-cchip-dot:after{content:"";background:#fff;border-radius:50%;width:6px;height:6px}.sed-cchip-x{color:var(--muted);cursor:pointer;opacity:0;transition:opacity .12s var(--ease);background:0 0;border:none;padding:0 2px;font-size:15px;line-height:1}.sed-cchip:hover .sed-cchip-x{opacity:1}.sed-cchip-x:hover{color:var(--ink)}.sed-addchip{border-radius:50%;width:30px;height:30px;font-size:17px;line-height:1}.sed-pq{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 11px}.sed-pq-top{align-items:center;gap:8px;margin-bottom:8px;display:flex}.sed-pq-num{min-width:18px;color:var(--muted);text-align:center;flex:none;font-size:13px;font-weight:700}.sed-pq-opts{flex-direction:column;gap:6px;padding-left:26px;display:flex}.sed-pq-opt{align-items:center;gap:8px;display:flex}.sed-pq-mark{border:1.5px solid var(--line);background:var(--surface);width:28px;height:28px;color:var(--muted);font-family:var(--font-body);cursor:pointer;transition:border-color .12s var(--ease), background .12s var(--ease), color .12s var(--ease);border-radius:50%;flex:none;place-items:center;padding:0;font-size:13px;font-weight:700;display:grid}.sed-pq-mark-multi{border-radius:var(--r-sm)}.sed-pq-mark:hover:not(:disabled){border-color:var(--success);color:var(--success)}.sed-pq-mark:disabled{cursor:default;opacity:.6}.sed-pq-opt-ok .sed-pq-mark,.sed-pq-opt-ok .sed-pq-mark:hover:not(:disabled){border-color:var(--success);background:var(--success);color:#fff}.sed-pq-opt-ok .sed-input{border-color:var(--success);background:var(--success-soft)}.sed-pq-addopt{border:1px dashed var(--line);border-radius:var(--r-pill);color:var(--muted);font-family:var(--font-body);cursor:pointer;transition:border-color .15s var(--ease), color .15s var(--ease);background:0 0;align-self:flex-start;align-items:center;gap:5px;margin-left:36px;padding:5px 10px;font-size:12.5px;font-weight:700;display:inline-flex}.sed-pq-addopt:hover{border-color:var(--accent);color:var(--accent)}.sed-pq-warn{color:var(--error);margin:0 0 0 36px;font-size:11.5px}.sed-tfrow{align-items:center;gap:10px;display:flex}.sed-tftog{border:1px solid var(--line);border-radius:var(--r-pill);flex:none;display:inline-flex;overflow:hidden}.sed-tftog button{background:var(--surface);color:var(--muted);font-family:var(--font-body);cursor:pointer;transition:background .12s var(--ease), color .12s var(--ease);border:none;padding:9px 15px;font-size:12.5px;font-weight:700}.sed-tftog-t.on{background:var(--success-soft);color:color-mix(in srgb, var(--success) 68%, var(--ink))}.sed-tftog-f.on{background:var(--error-soft);color:var(--error)}.sed-pairrow{align-items:center;gap:8px;display:flex}.sed-pair-lk{width:26px;height:26px;color:var(--accent);flex:none;place-items:center;display:grid}.sed-ordrow{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 13px}.sed-ordrow-top{align-items:center;gap:8px;display:flex}.sed-shuffle{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.sed-wtok{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);color:var(--muted);padding:5px 12px;font-size:13px;font-weight:600}.sed-vocrow{align-items:center;gap:8px;display:flex}.sed-voc-dash{color:var(--muted);flex:none;font-weight:700}.blk{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);transition:box-shadow .15s var(--ease), border-color .15s var(--ease);margin-bottom:14px;padding:16px 18px}.blk:hover{box-shadow:var(--shadow-sm)}.blk-sel{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.blk-dragging{opacity:.45}.blk-reading{border-color:var(--accent);background:linear-gradient(0deg, var(--accent-soft) 0%, var(--surface) 70%);box-shadow:0 0 0 1px var(--accent-soft)}.blk-head{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;margin-bottom:12px;display:flex}.blk-drag-handle{cursor:grab;color:var(--muted);opacity:.55;touch-action:none;flex:none;display:grid}.blk-drag-handle svg{width:12px;height:16px}.blk-drag-handle:active{cursor:grabbing}.blk-type{text-transform:uppercase;letter-spacing:.1em;color:var(--accent);background:var(--accent-soft);border-radius:var(--r-pill);white-space:nowrap;flex:none;align-items:center;gap:6px;padding:4px 10px;font-size:10.5px;font-weight:800;display:inline-flex}.blk-type svg{width:13px;height:13px}.blk-name{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13.5px;font-weight:600;overflow:hidden}.blk-points{color:var(--muted);white-space:nowrap;flex:none;font-size:12px;font-weight:700}.blk-acts{flex:none;display:flex}.blk-acts button{width:26px;height:26px;color:var(--muted);cursor:pointer;opacity:0;transition:opacity .15s var(--ease), background .15s var(--ease), color .15s var(--ease);background:0 0;border:none;border-radius:8px;place-items:center;display:grid}.blk:hover .blk-acts button{opacity:1}.blk-acts button svg{width:14px;height:14px}.blk-acts button:hover:not(:disabled){background:var(--paper);color:var(--ink)}.blk-acts button:disabled{opacity:.35;cursor:default}.blk-body{padding:0}.blk-body textarea{border:1px solid var(--line);border-radius:var(--r-sm);width:100%;font-family:var(--font-body);background:var(--paper);color:var(--ink);box-sizing:border-box;padding:10px 12px;font-size:14.5px;line-height:1.7}.blk-textarea{resize:none;overflow:hidden}.blk-body textarea:focus{border-color:var(--accent);background:var(--surface);outline:none}.blk-body textarea.blk-desc{margin-bottom:10px;padding:8px 12px;font-weight:600;line-height:1.5;display:block}.blk-syntax{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;margin-top:7px;font-size:11.5px;display:flex}.blk-choice-warning{color:var(--error);margin-top:6px;font-size:11.5px}.blk-gapbtn{font-family:var(--font-body);background:var(--ink);color:#fff;border-radius:var(--r-pill);cursor:pointer;border:none;padding:6px 12px;font-size:11.5px;font-weight:700}.blk-gapbtn:hover:not(:disabled){background:var(--accent)}.blk-gapbtn:disabled{opacity:.45;cursor:default}.blk-reading-editor{flex-direction:column;gap:8px;display:flex}.blk-reading-tabs{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-pill);align-self:flex-start;padding:3px;display:inline-flex}.blk-reading-tabs button{color:var(--muted);font-family:var(--font-body);border-radius:var(--r-pill);cursor:pointer;transition:background .12s var(--ease), color .12s var(--ease);background:0 0;border:none;padding:6px 14px;font-size:12px;font-weight:700}.blk-reading-tabs button.is-active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-sm)}.blk-reading-area{resize:none;min-height:140px;overflow:hidden}.blk-media-link{flex-direction:column;gap:6px;max-width:520px;display:flex}.blk-media-link-lb{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-size:11.5px;font-weight:800}.blk-media-link-area{resize:vertical;min-height:60px;overflow-y:auto}.blk-media-link-area::placeholder{color:var(--muted)}.blk-image-attach{border-radius:var(--r-sm);margin-bottom:10px;transition:background .15s,box-shadow .15s}.blk-image-attach-over{background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent)}.blk-image-drop{border:1.5px dashed var(--line);border-radius:var(--r-sm);text-align:center;color:var(--muted);cursor:pointer;margin-bottom:8px;padding:18px 12px;font-size:12.5px}.blk-image-attach-over .blk-image-drop{border-color:var(--accent);color:var(--accent)}.blk-image-preview{border-radius:var(--r-sm);border:1px solid var(--line);cursor:pointer;max-width:320px;margin-bottom:8px;overflow:hidden}.blk-image-preview img{width:100%;height:auto;display:block}.blk-image-acts{align-items:center;gap:8px;display:flex}.blk-image-status{color:var(--muted);margin-bottom:8px;font-size:12px}.blk-image-remove{font-family:var(--font-body);color:var(--error);border:1.5px solid var(--error-soft);border-radius:var(--r-pill);cursor:pointer;background:0 0;padding:6px 12px;font-size:11.5px;font-weight:700}.blk-image-remove:hover:not(:disabled){background:var(--error-soft)}.blk-image-remove:disabled{opacity:.5;cursor:default}.blk-media-attach{margin-bottom:10px}.blk-media-list{flex-direction:column;gap:10px;margin-bottom:10px;display:flex}.blk-media-item{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);flex-direction:column;align-items:flex-start;gap:8px;padding:10px;display:flex}.blk-translate-hint{color:var(--muted);margin:0 0 8px;font-size:12.5px}.blk-translate-picker{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);margin-bottom:10px;padding:10px}.blk-translate-text{font-size:14.5px;line-height:2.15}.blk-translate-word{font:inherit;color:var(--ink);cursor:pointer;transition:background .12s var(--ease), color .12s var(--ease);background:0 0;border:none;border-radius:3px;margin:0;padding:0;line-height:1.25}.blk-translate-word:hover{background:var(--accent-soft);box-shadow:0 0 0 1.5px var(--accent-soft)}.blk-translate-word.on{background:var(--accent);color:#fff;box-shadow:0 0 0 1.5px var(--accent);font-weight:700}.blk-translate-word.on:hover{background:var(--accent-press);box-shadow:0 0 0 1.5px var(--accent-press)}.blk-translate-selected{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.blk-translate-selected-lb{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:7px;font-size:11px;font-weight:800;display:block}.blk-translate-selected-chips{flex-wrap:wrap;gap:6px;display:flex}.blk-translate-chip{font:inherit;color:var(--accent);background:var(--accent-soft);border-radius:var(--r-pill);cursor:pointer;transition:background .1s var(--ease), color .1s var(--ease);border:none;align-items:center;gap:5px;padding:4px 10px;font-size:13px;font-weight:700;display:inline-flex}.blk-translate-chip:hover{background:var(--accent);color:#fff}.block-palette,.bp-group{flex-direction:column;display:flex}.bp-group+.bp-group{margin-top:14px}.bp-group-label{margin:0 4px 8px;display:block}.bp-item{text-align:left;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);cursor:pointer;width:100%;font-family:var(--font-body);transition:transform .12s var(--ease), box-shadow .12s var(--ease), border-color .12s var(--ease);align-items:center;gap:10px;margin-bottom:8px;padding:11px 12px;display:flex}.bp-item:last-child{margin-bottom:0}.bp-item:hover:not(:disabled){box-shadow:var(--shadow-sm);border-color:var(--muted);transform:translateY(-2px)}.bp-item:disabled{opacity:.5;cursor:default}.bp-glyph{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);border-radius:8px;flex:none;place-items:center;display:grid}.bp-glyph svg{width:17px;height:17px}.bp-text{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.bp-text b{min-width:0;color:var(--ink);flex:1;font-size:13.5px;font-weight:700;line-height:1.2}.bp-auto{letter-spacing:.08em;color:var(--success);flex:none;font-size:10.5px;font-weight:800}.worksheet-builder{box-sizing:border-box;flex-direction:column;width:100%;margin-top:-28px;display:flex}.ws-builder-loading{color:var(--muted);text-align:center;padding:64px 24px;font-size:14px}.ws-builder-topbar{z-index:30;min-height:var(--bar-h);background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:14px;padding:10px 22px;display:flex;position:sticky;top:0}.ws-builder-back{border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);color:var(--ink);font-family:var(--font-body);cursor:pointer;transition:border-color .15s var(--ease);align-items:center;gap:6px;padding:9px 15px 9px 11px;font-size:13.5px;font-weight:700;display:inline-flex}.ws-builder-back:hover{border-color:var(--ink)}.ws-builder-back svg{width:16px;height:16px}.ws-builder-seg button{flex:none;min-height:38px;padding:8px 16px;font-size:13.5px}.ws-builder-status{color:var(--muted);white-space:nowrap;cursor:default;align-items:center;gap:7px;font-size:12.5px;font-weight:600;display:inline-flex}.ws-builder-status-dot{background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px}.ws-builder-status.ok{color:var(--success)}.ws-builder-status.ok .ws-builder-status-dot{background:var(--success)}.ws-builder-spacer{flex:1}.ws-builder-grid{box-sizing:border-box;grid-template-columns:236px minmax(0,1fr) 312px;align-items:start;gap:22px;width:100%;max-width:1460px;margin:0 auto;padding:22px;display:grid}.ws-builder-side{top:calc(var(--bar-h) + 18px);position:sticky}.ws-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px}.ws-panel-h{justify-content:space-between;align-items:center;margin:2px 4px 12px;display:flex}.ws-panel-h h3{font-family:var(--font-display);color:var(--ink);margin:0;font-size:16px;font-weight:700}.ws-builder-center{min-width:0}.ws-sheet-head{justify-content:space-between;align-items:center;gap:12px;margin:2px 4px 14px;display:flex}.ws-sheet-head h2{font-family:var(--font-display);color:var(--ink);margin:0;font-size:16px;font-weight:700}.ws-sheet-pts{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-pill);color:var(--muted);white-space:nowrap;flex:none;padding:6px 14px;font-size:13px;font-weight:700}.ws-sheet-pts b{font-family:var(--font-display);color:var(--ink);margin-left:6px}.wtitle{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:14px;padding:20px 22px;position:relative}.wtitle-level{position:absolute;top:14px;right:14px}.wtitle-input{width:100%;font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);background:0 0;border:none;outline:none;padding:0 108px 0 0;font-size:26px;font-weight:700}.wtitle-no-level .wtitle-input{padding-right:0}.wtitle-input::placeholder{color:var(--muted)}.ws-builder-level-select{width:auto;min-width:84px;padding:7px 10px;font-size:13px}.ws-builder-drop{border:1.5px dashed var(--line);border-radius:var(--r-md);text-align:center;color:var(--muted);padding:30px 24px;font-size:13.5px;line-height:1.6}.ws-builder-restored{background:var(--success-soft);color:var(--success);border-radius:var(--r-sm);margin:0 22px;padding:10px 14px;font-size:13.5px;font-weight:600}.worksheet-builder>.error{margin:12px 22px 0}@media (width<=1100px){.ws-builder-grid{grid-template-columns:1fr;padding:16px}.ws-builder-side{position:static}.ws-builder-side-left{order:1}.ws-builder-center{order:2}.ws-builder-side-right{order:3}}.ws-exit-modal{position:relative}.ws-exit-modal .confirm-message{padding-right:28px}.ws-exit-close{border-radius:var(--r-sm);width:30px;height:30px;color:var(--muted);cursor:pointer;transition:background .12s var(--ease), color .12s var(--ease);background:0 0;border:none;place-items:center;display:grid;position:absolute;top:12px;right:12px}.ws-exit-close:hover{background:var(--paper);color:var(--ink)}.ws-exit-actions{flex-direction:column;align-items:stretch;gap:8px}.ws-exit-actions button{justify-content:center;width:100%}.ws-exit-discard{border-radius:var(--r-pill);min-height:44px;font-family:var(--font-body);cursor:pointer;background:var(--error);color:#fff;border:none;padding:10px 16px;font-size:13.5px;font-weight:700}.ws-exit-discard:hover:not(:disabled){filter:brightness(.93)}.ws-exit-save{background:var(--accent);color:#fff;border:none}.ws-exit-save:hover:not(:disabled){background:var(--accent-press)}.ws-exit-discard:disabled,.ws-exit-save:disabled{opacity:.55;cursor:default}.review-queue{box-sizing:border-box;flex-direction:column;gap:0;width:100%;max-width:1080px;margin:0 auto;padding:0 24px 96px;display:flex}@media (width<=820px){.review-queue{padding:0 16px 80px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.rq-ph-chip{border-radius:var(--r-pill);background:var(--accent-soft);min-height:36px;font-family:var(--font-body);color:var(--accent);cursor:pointer;border:0;align-self:flex-start;align-items:center;gap:6px;margin:0 0 12px;padding:0 10px 0 14px;font-size:14px;font-weight:700;display:inline-flex}.rq-ph-chip svg{width:15px;height:15px}.rq-ph-opt{flex:1;min-width:0}.rq-ph-n{color:var(--muted);font-weight:700}.rq-ph-tabs .subtabs{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;display:grid}.rq-ph-tabs .subtab{white-space:nowrap;justify-content:center;padding:10px 6px;font-size:15px}.themes-manager-layout{grid-template-columns:288px 1fr;align-items:start;gap:26px;display:grid}@media (width>=821px){.app-fill-desktop .themes-manager>*{flex:none}.app-fill-desktop .themes-manager>.themes-manager-layout{flex:1;grid-template-rows:minmax(0,1fr);align-items:stretch;min-height:0}.app-fill-desktop .themes-manager-layout>.ui-sl{min-height:0;max-height:none;position:static;height:auto!important}.app-fill-desktop .themes-manager-layout>.word-column{flex-direction:column;min-height:0;display:flex}.app-fill-desktop .word-column>.tm-sheet{flex:1;min-height:0;max-height:none;position:static}}@media (width<=820px){.themes-manager-layout{grid-template-columns:1fr}}.tm-sheet-head h2{font-family:var(--font-display);letter-spacing:-.02em;cursor:text;font-size:22px}.tm-theme-rename-input{width:100%;min-width:220px;font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);background:var(--surface);border:1.5px solid var(--accent);border-radius:var(--r-sm);margin:-3px 0 -3px -9px;padding:2px 8px;font-size:22px;display:block}.tm-theme-rename-input:focus{outline:none}.materials-loading,.materials-empty{color:var(--muted);font-size:13.5px}.materials-placeholder{border:1.5px dashed var(--line);border-radius:var(--r-md);text-align:center;color:var(--muted);padding:32px 20px;font-size:14px}.theme-addline{cursor:pointer;width:100%;font-family:var(--font-body);color:var(--accent);text-align:left;background:0 0;border:none;align-items:center;gap:12px;padding:0;font-size:15px;font-weight:800;display:flex}.theme-addline-icon{background:var(--accent);color:#fff;border-radius:11px;flex:none;place-items:center;width:36px;height:36px;display:grid}.theme-addline-icon svg{width:18px;height:18px}.theme-addline:hover{color:var(--accent-press)}.theme-addline:hover .theme-addline-icon{background:var(--accent-press)}.theme-add-input{width:100%}.theme-list-item-hint{color:var(--muted);flex:none;font-size:.8em;font-weight:400}.tm-sheet{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);flex-direction:column;max-height:calc(100vh - 40px);display:flex;position:sticky;top:20px;overflow:hidden}.tm-sheet-head{flex:none;justify-content:space-between;align-items:flex-start;gap:12px 20px;padding:20px 20px 16px;display:flex}.tm-sheet-head>.tm-head-title{flex:1;min-width:0}.tm-sheet-head>.tm-head-title>div:last-child{min-width:0}.tm-sheet>.error,.tm-sheet>.suggestions-block{margin:0 20px 16px}.tm-sheet-body-wrap{flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.tm-sheet-body{flex-direction:column;flex:0 auto;min-height:0;padding:0 20px 16px;display:flex}.tm-sheet-body>*{flex:none}.tm-sheet-body>.materials-loading,.tm-sheet-body>.materials-empty{padding:4px 0 16px}.tm-sheet-footer{border-top:1px solid var(--line);background:var(--surface);flex:none;align-items:center;gap:10px;min-height:72px;padding:14px 20px;display:flex}.tm-sheet-footer>.word-addline{flex:none;width:auto}.tm-sheet-footer>.word-add-form{flex:1;min-width:0}.tm-sheet-footer>.word-add-form.tm-addrow{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;display:grid}.tm-addrow-actions{gap:10px;display:flex}.word-add-form.tm-addrow input{min-width:0}.tm-addrow-variants{min-width:0;color:var(--accent);flex-wrap:wrap;grid-column:2/-1;align-items:center;gap:6px;display:flex}.tm-addrow-variants>svg{flex:none;width:14px;height:14px}.tm-addrow-variants-hint{color:var(--muted);font-size:13px}.word-add-form .tm-variant{border:1px solid var(--line);background:var(--surface);min-height:38px;color:var(--ink);font:inherit;cursor:pointer;transition:background .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease);border-radius:999px;padding:0 12px;font-size:14px}.word-add-form .tm-variant:hover,.word-add-form .tm-variant.is-active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}@media (width<=560px){.tm-addrow-variants{grid-column:1/-1}.word-add-form.tm-addrow{grid-template-columns:minmax(0,1fr)}.tm-addrow-actions{justify-self:end}}.word-add-form.tm-bulk{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}.tm-bulk-text{resize:vertical;width:100%;min-width:0;min-height:96px;font:inherit;font-size:14px;line-height:1.5}.tm-bulk-foot{justify-content:space-between;align-items:center;gap:12px;display:flex}.tm-bulk-hint{color:var(--muted);font-size:13px}.tm-bulk-skipped{color:var(--tongue-groove);font-weight:600}.tm-level-filter{flex-wrap:wrap;flex:none;justify-content:space-between;align-items:center;gap:12px;padding:0 20px 16px;display:flex}.tm-level-filter-count{background:var(--paper);border-radius:var(--r-pill);color:var(--muted);flex:none;margin-left:auto;padding:6px 14px;font-size:12.5px;font-weight:600}.tm-level-tabs{background:var(--paper);border-radius:var(--r-pill);border:1px solid var(--line);flex-wrap:wrap;gap:4px;width:fit-content;max-width:100%;padding:4px;display:flex}.tm-level-tab{border-radius:var(--r-pill);font-family:var(--font-body);color:var(--muted);cursor:pointer;min-height:34px;transition:background .15s var(--ease), color .15s var(--ease);background:0 0;border:none;align-items:center;padding:8px 16px;font-size:13px;font-weight:700;display:inline-flex}.tm-level-tab:hover:not(.active){background:var(--surface);color:var(--ink)}.tm-level-tab.active{background:var(--accent);color:#fff}.tbl{border:1px solid var(--line);border-radius:var(--r-md);flex-direction:column;display:flex;overflow:hidden}.tm-sheet-body>.tbl,.tm-sheet-body>.tm-level-empty{flex:0 auto;min-height:0}.tbl-head{flex:none}.tbl-body{flex:0 auto;height:406px;min-height:0;overflow-y:auto}.tm-level-empty{justify-content:center;align-items:center;height:447px;display:flex}.tm-detail{border-radius:var(--r-md);border:1px solid var(--line);width:350px;height:100%;box-shadow:var(--shadow-md);transition:transform .2s var(--ease);pointer-events:none;position:absolute;top:0;right:20px;overflow:hidden;transform:translate(calc(100% + 20px))}.tm-detail.is-open{pointer-events:auto;transform:translate(0)}.tm-detail-inner{background:var(--surface);flex-direction:column;width:100%;height:100%;display:flex}.tm-detail-head{border-bottom:1px solid var(--line);flex:none;align-items:flex-start;gap:10px;padding:14px 16px;display:flex}.tm-detail-head h3{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:18px;font-weight:700;line-height:1.15}.tm-detail-head p{color:var(--muted);margin:3px 0 0;font-size:13px}.tm-detail-ai{border-radius:var(--r-sm);background:var(--accent-soft);width:32px;height:32px;color:var(--accent);cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease);border:none;flex:none;place-items:center;display:grid}.tm-detail-ai:hover:not(:disabled){background:var(--accent);color:#fff}.tm-detail-ai:disabled{opacity:.55;cursor:default}.tm-detail-ai svg{width:16px;height:16px}.tm-detail-close{border-radius:var(--r-sm);width:32px;height:32px;color:var(--muted);cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease);background:0 0;border:none;flex:none;place-items:center;margin-left:auto;display:grid}.tm-detail-head>.tm-detail-edit{margin-left:auto}.tm-detail-head>.tm-detail-edit+.tm-detail-close{margin-left:0}.tm-detail-head.tm-word-edit{flex-direction:column;align-items:stretch;gap:8px}.tm-word-edit-actions{justify-content:flex-end;gap:8px;display:flex}.tm-detail-close:hover{background:var(--paper);color:var(--ink)}.tm-detail-close svg{width:16px;height:16px}.tm-detail-body{flex-direction:column;flex:1;gap:10px;min-height:0;padding:14px 16px;display:flex;overflow-y:auto}.tm-detail-body .suggest-button{align-self:flex-start}.tm-detail-footer{border-top:1px solid var(--line);background:var(--surface);flex:none;align-items:center;gap:10px;min-height:72px;padding:14px 16px;display:flex}.tm-detail-footer>.word-addline,.tm-detail-footer>.taboo-add-form{flex:1;min-width:0}.tm-level-empty{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);text-align:center;padding:32px 16px}.tm-level-empty .materials-empty{margin:0}.tbl-head,.tbl-row{grid-template-columns:1fr 1fr 88px 40px;align-items:center;gap:10px;display:grid}.tbl-head{background:var(--paper);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);flex:none;padding:11px 16px;font-size:11px;font-weight:800}.tbl-row-wrap{border-top:1px solid var(--line);background:var(--surface)}.tbl-row{padding:8px 16px}.tbl-main{grid-column:1/3;grid-template-columns:subgrid;text-align:left;cursor:pointer;font-family:var(--font-body);background:0 0;border:none;align-items:center;gap:10px;padding:6px 0;display:grid}.tbl-en{color:var(--ink);align-items:center;gap:8px;font-size:14.5px;font-weight:700;display:inline-flex}.tbl-ru{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);font-size:14px;overflow:hidden}.tbl-taboo-count{color:var(--accent);background:var(--accent-soft);border-radius:var(--r-pill);flex:none;padding:2px 8px;font-size:11px;font-weight:700}.tbl-row-wrap.is-open{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.tbl-level{width:max-content}.tbl-level .combo-trigger{border-radius:var(--r-pill);background:var(--paper);border-color:#0000;min-height:32px;padding:4px 10px;font-size:12.5px;font-weight:700}.tbl-level .combo-value:before{content:"";background:var(--accent);vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.tbl-row-wrap.is-nolevel .tbl-level .combo-trigger{background:var(--tongue-soft);border-color:#0000}.tbl-row-wrap.is-nolevel .tbl-level .combo-value{color:var(--tongue-groove)}.tbl-row-wrap.is-nolevel .tbl-level .combo-value:before{background:var(--tongue)}.rowx{cursor:pointer;width:32px;height:32px;color:var(--muted);opacity:.55;border-radius:var(--r-sm);transition:opacity .15s var(--ease), background .15s var(--ease), color .15s var(--ease);background:0 0;border:none;justify-self:end;place-items:center;display:grid}.rowx svg{width:15px;height:15px}.rowx:hover{opacity:1;background:var(--error-soft);color:var(--error)}.taboo-panel-label{color:var(--muted);margin:0;font-size:.85rem}.taboo-tag-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.taboo-tag{background:var(--error-soft);border:1px solid var(--error-soft);border-radius:var(--r-pill);color:var(--ink);align-items:center;gap:4px;padding:4px 4px 4px 12px;font-size:.85rem;display:flex}.taboo-tag button{cursor:pointer;color:var(--error);background:0 0;border:none;padding:0 6px}.taboo-tag-empty{color:var(--muted);font-size:.85rem}.taboo-add-form{gap:8px;display:flex}.taboo-add-form input{border:1.5px solid var(--line);border-radius:var(--r-sm);min-width:0;font-family:var(--font-body);background:var(--surface);color:var(--ink);flex:1;padding:9px 10px;font-size:13.5px}.taboo-add-form input:focus{border-color:var(--accent);outline:none}.suggestions-block{border-top:1px solid var(--line);padding-top:16px}.suggestions-block h3{color:var(--ink);margin-bottom:10px;font-size:13.5px;font-weight:700}.suggest-button{cursor:pointer;border-radius:var(--r-pill);border:1.5px solid var(--line);background:var(--surface);color:var(--accent);font-family:var(--font-body);align-items:center;gap:6px;min-height:40px;padding:10px 18px;font-size:13.5px;font-weight:700;display:inline-flex}.suggest-button svg{flex:none;width:14px;height:14px}.suggest-button:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent)}.suggest-button:disabled{opacity:.55;cursor:default}.suggestions-list{flex-direction:column;gap:2px;margin:12px 0;padding:0;list-style:none;display:flex}.suggestion-item{cursor:pointer;flex:1;align-items:center;gap:8px;padding:8px 4px;font-size:14px;display:flex}.suggestion-item .tm-level-fact{text-align:center;flex:none;min-width:30px}.ui-stepper-wrap{flex:none;align-items:center;gap:8px;display:inline-flex}.ui-stepper{border:1.5px solid var(--line);border-radius:var(--r-pill);align-items:center;display:inline-flex;overflow:hidden}.ui-stepper button{background:var(--surface);width:40px;height:44px;color:var(--accent);cursor:pointer;transition:background .15s var(--ease);border:none;font-size:20px;line-height:1}.ui-stepper button:hover:not(:disabled){background:var(--accent-soft)}.ui-stepper button:disabled{color:var(--muted);opacity:.5;cursor:not-allowed}.ui-stepper-val{text-align:center;min-width:46px;font-family:var(--font-body);color:var(--ink);font-size:16px;font-weight:800}.ui-stepper-unit{color:var(--muted);font-size:13px;font-weight:700}.tr-pane{grid-template-columns:290px minmax(0,1fr);align-items:start;gap:26px;width:100%;max-width:1080px;margin:0 auto;padding:24px 24px 40px;display:grid}.tr-list{flex-direction:column;gap:8px;display:flex}.tr-item{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;width:100%;min-height:64px;transition:box-shadow .18s var(--ease), transform .18s var(--ease), border-color .18s var(--ease);align-items:center;gap:13px;padding:14px 15px;display:flex}.tr-item:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}.tr-item.on{background:var(--accent-soft);border:2px solid var(--accent);padding:13px 14px}.tr-item-icon{border-radius:var(--r-sm);background:var(--accent-soft);width:40px;height:40px;color:var(--accent);flex:none;place-items:center;display:grid}.tr-item.on .tr-item-icon,[data-shell=student][data-bg=shell-aurora] .tr-item.on{background:var(--surface)}[data-shell=student][data-bg=shell-aurora] .tr-item.on .tr-item-icon{background:var(--accent);color:#fff}.tr-item-icon svg{width:20px;height:20px}.tr-item-text{flex-direction:column;gap:2px;min-width:0;display:flex}.tr-item-title{color:var(--ink);font-size:15px;font-weight:800}.tr-item-desc{color:var(--muted);font-size:12.5px}.tr-canvas{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px 26px}.tr-canvas-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.tr-canvas-top h2{font-family:var(--font-display);letter-spacing:-.02em;font-size:24px}.tr-lede{color:var(--muted);margin-top:6px;font-size:14px}.tr-back{cursor:pointer;font-family:var(--font-body);color:var(--muted);background:0 0;border:none;align-items:center;gap:7px;margin-bottom:14px;padding:0;font-size:13.5px;font-weight:700;display:inline-flex}.tr-back:hover{color:var(--ink)}.tr-back svg{width:16px;height:16px}.tr-cta{border-radius:var(--r-pill);background:var(--accent);color:#fff;min-height:44px;font-family:var(--font-body);cursor:pointer;box-shadow:var(--shadow-glow);transition:background .15s var(--ease), transform .1s var(--ease);border:none;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-size:14px;font-weight:700;display:inline-flex}.tr-cta:hover:not(:disabled){background:var(--accent-press)}.tr-cta:active:not(:disabled){transform:translateY(1px)scale(.99)}.tr-cta:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}@media (width<=720px){.tr-pane{grid-template-columns:1fr;gap:18px;padding:10px 16px 40px}.tr-canvas{padding:20px 18px}}.tsp-sec-head{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:16px 0 8px;font-size:11px;font-weight:800}.tsp-settings{border:1px solid var(--line);border-radius:var(--r-md);margin-top:6px;overflow:hidden}.tsp-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;padding:16px 18px;display:flex}.tsp-row:first-child{border-top:none}.tsp-lab b{color:var(--ink);font-size:14.5px;font-weight:800;display:block}.tsp-lab span{color:var(--muted);font-size:13px}.tsp-savebar{align-items:center;gap:10px;margin-top:16px;display:flex}.tsp-link{color:var(--accent);font-weight:700;font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:none}.tsp-link:hover{text-decoration:underline}.tsp-settings-override{margin-top:14px}.tsp-btn-secondary{border-radius:var(--r-pill);border:1.5px solid var(--line);background:var(--surface);min-height:44px;color:var(--accent);font-family:var(--font-body);cursor:pointer;padding:10px 18px;font-size:14px;font-weight:700}.tsp-btn-secondary:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent)}.tsp-btn-secondary:disabled{opacity:.55;cursor:default}.tsp-note-info{border-radius:var(--r-md);background:var(--accent-soft);color:var(--accent-press);align-items:flex-start;gap:12px;margin-top:14px;padding:14px 18px;font-size:13.5px;line-height:1.5;display:flex}.tsp-note-info svg{flex:none;width:18px;height:18px;margin-top:1px}@media (width<=720px){.tsp-row{flex-direction:column;align-items:flex-start;gap:10px}}.trainers-editor{box-sizing:border-box;width:100%;max-width:1080px;margin:0 auto;padding:0 24px 96px}.trainers-editor .tr-pane{grid-template-columns:288px minmax(0,1fr);max-width:none;margin:0;padding:0}@media (width<=820px){.trainers-editor{padding:0 16px 80px}.trainers-editor .tr-pane{grid-template-columns:1fr}}@media (width>=821px){.admin-page:has(.trainers-editor.app-fill-desktop){padding-bottom:20px}.admin-page:has(.trainers-editor.app-fill-desktop)>.sc{flex:1;min-height:0}.trainers-editor.app-fill-desktop{flex-direction:column;flex:1;min-height:0;padding-bottom:0;display:flex}.trainers-editor.app-fill-desktop>*{flex:none}.trainers-editor.app-fill-desktop>.themes-manager{flex-direction:column;flex:1;min-height:0;display:flex}}.sc{flex-direction:column;gap:20px;width:100%;display:flex}.sc .section-tabs{box-sizing:border-box;width:100%;max-width:1080px;margin:0 auto;padding-inline:24px}.sc>.section-tabs{margin-bottom:18px}.sc-chip{background:var(--paper);color:var(--muted);border-radius:var(--r-pill);align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.sc-chip svg{width:13px;height:13px}.sc-chip-cefr{background:var(--accent-soft);color:var(--accent)}.sc-chip-streak{background:var(--streak-bg);color:var(--streak-fg)}.sc-chip-review{background:var(--tongue-soft);color:var(--tongue-groove)}.sc-chip-debt{background:var(--error-soft);color:var(--error)}.sc-chip-ok{background:var(--success-soft);color:var(--success)}.sc-btn{border-radius:var(--r-pill);min-height:44px;font-family:var(--font-body);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:13px 20px;font-size:14px;font-weight:700;transition:background .15s,border-color .15s,transform 60ms,box-shadow .15s;display:inline-flex}.sc-btn:active{transform:translateY(1px)scale(.99)}.sc-btn-primary{background:var(--accent);color:#fff;box-shadow:var(--shadow-glow)}.sc-btn-primary:hover{background:var(--accent-press)}.sc-btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--line)}.sc-btn-secondary:hover{border-color:var(--ink)}.sc-btn-ghost{color:var(--accent);background:0 0;padding:11px 14px}.sc-btn-ghost:hover{background:var(--accent-soft)}.sc-btn-lg{min-height:52px;padding:15px 24px;font-size:15px}.sc-btn-sm{min-height:36px;padding:8px 14px;font-size:13px}.sc-btn[disabled]{opacity:.5;cursor:default}.sc-sect-cap{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:22px 2px 12px;font-size:11px;font-weight:800}.sc-empty{text-align:center;color:var(--muted);padding:40px 20px;font-size:13.5px}.sc-empty-box{text-align:center;color:var(--muted);padding:50px 20px}.sc-empty-box b{font-family:var(--font-display);color:var(--ink);margin-bottom:6px;font-size:16px;display:block}.sc .sc-review-head{box-sizing:border-box;width:100%;max-width:1080px;margin:0 auto;padding-inline:24px}.sc-review{box-sizing:border-box;grid-template-columns:288px 1fr;align-items:start;gap:20px;width:100%;max-width:1080px;margin:0 auto;padding:0 24px 96px;display:grid}.sc-stage{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px 28px}.sc-crumbs{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:20px;font-size:13px;font-weight:700;display:flex}.sc-bk{border:1px solid var(--line);background:var(--surface);width:34px;height:34px;color:var(--ink);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.sc-bk:hover{border-color:var(--ink)}.sc-bk svg{width:16px;height:16px}.sc-crumb-link{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.sc-crumb-link:hover{color:var(--accent)}.sc-sep{color:var(--line)}.sc-cur{color:var(--ink)}.sc-phead{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:22px;display:flex}.sc-pn{font-family:var(--font-display);flex-wrap:wrap;align-items:center;gap:9px;font-size:23px;font-weight:700;display:flex}.sc-ps{color:var(--muted);margin-top:4px;font-size:13px;font-weight:600}.sc-recent{flex-direction:column;gap:8px;max-height:222px;display:flex;overflow-y:auto}.sc-rec{background:var(--paper);border-radius:var(--r-md);cursor:pointer;text-align:left;width:100%;font-family:var(--font-body);border:1px solid #0000;align-items:center;gap:12px;padding:12px 14px;transition:box-shadow .15s,border-color .15s,background .15s;display:flex}.sc-rec:hover{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow-sm)}.sc-gi{background:var(--accent-soft);width:38px;height:38px;color:var(--accent);border-radius:11px;flex:none;place-items:center;display:grid}.sc-gi svg{width:18px;height:18px}.sc-rc-main{flex:1;min-width:0}.sc-rc-w{color:var(--ink);font-size:14.5px;font-weight:700;display:block}.sc-rc-s{color:var(--muted);margin-top:1px;font-size:11.5px;font-weight:600;display:block}.sc-rc-when{text-align:right;flex:none}.sc-rc-dt{color:var(--ink);font-size:12px;font-weight:700;display:block}.sc-rc-age{color:var(--muted);margin-top:2px;font-size:10.5px;font-weight:700;display:block}.sc-rc-age.old{color:var(--tongue-groove)}.sc-games{grid-template-columns:1fr 1fr;gap:12px;max-height:264px;display:grid;overflow-y:auto}.sc-game{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);text-align:left;width:100%;font-family:var(--font-body);color:var(--ink);align-items:center;gap:13px;padding:16px 18px;display:flex}button.sc-game{cursor:pointer;transition:box-shadow .15s,transform .12s,border-color .15s}button.sc-game:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}.sc-game-ico{background:var(--accent-soft);width:46px;height:46px;color:var(--accent);border-radius:13px;flex:none;place-items:center;display:grid}.sc-game-ico svg{width:20px;height:20px}.sc-game-t{flex:1;min-width:0;font-size:15.5px;font-weight:700}.sc-game-tr{color:var(--muted);flex:none;align-items:center;gap:8px;display:flex}.sc-game-tr svg{width:16px;height:16px}.sc-tlist{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}.sc-trow{border:0;border-bottom:1px solid var(--line);text-align:left;width:100%;font-family:var(--font-body);color:var(--ink);cursor:pointer;background:0 0;align-items:center;gap:13px;padding:11px 16px;transition:background .12s;display:flex}.sc-trow:last-child{border-bottom:0}.sc-trow:hover{background:var(--paper)}.sc-trow.done{opacity:.62}.sc-trow-t{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:15px;font-weight:700;overflow:hidden}.sc-trow-tr{color:var(--muted);flex:none;align-items:center;gap:8px;display:flex}.sc-trow-tr svg{width:16px;height:16px}.sc-pill{border-radius:var(--r-pill);flex:none;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 7px;font-size:12px;font-weight:800;display:inline-flex}.sc-pill-coral{background:var(--tongue);color:#fff}.sc-wl-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.sc-linkbtn{color:var(--accent);font-family:var(--font-body);cursor:pointer;border-radius:var(--r-pill);background:0 0;border:0;align-items:center;gap:6px;min-height:34px;padding:7px 11px;font-size:13px;font-weight:700;display:inline-flex}.sc-linkbtn:hover{background:var(--accent-soft)}.sc-linkbtn svg{width:15px;height:15px}.sc-btable{border:1px solid var(--line);border-radius:var(--r-md);max-height:460px;overflow:hidden auto}.sc-brow{border-bottom:1px solid var(--line);grid-template-columns:22px minmax(0,1fr) 190px 150px;align-items:center;gap:4px 14px;padding:9px 14px;display:grid}.sc-brow:last-child{border-bottom:0}.sc-bidx{font-family:var(--font-mono);color:var(--muted);align-self:start;padding-top:3px;font-size:11px}.sc-bmain{min-width:0}.sc-bw{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;overflow:hidden}.sc-bage{color:var(--muted);font-size:11px;font-weight:700}.sc-bage.old{color:var(--tongue-groove)}.sc-bt{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;line-height:1.35;overflow:hidden}.sc-bt .sc-hit{color:var(--error);border-bottom:2px solid var(--error);background:0 0;font-weight:700}.sc-bchips{flex-wrap:wrap;gap:5px;margin-top:4px;display:flex}.sc-bchip{border-radius:var(--r-pill);background:var(--paper);color:var(--muted);padding:3px 8px;font-size:11px;font-weight:700}.sc-bchip.ok{background:var(--success-soft);color:var(--success-groove)}.sc-bchip.hint{background:var(--streak-bg);color:var(--streak-fg)}.sc-bchip.fail,.sc-bchip.ban{background:var(--error-soft);color:var(--error-groove)}.sc-notebtn{font-family:var(--font-body);color:var(--accent);cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:2px 0;font-size:12px;font-weight:700}.sc-notebtn:hover{text-decoration:underline}.sc-notebtn--end{align-self:flex-end}.sc-mplayer{background:var(--paper);border-radius:var(--r-pill);align-items:center;gap:9px;padding:4px 12px 4px 4px;display:flex}.sc-mplayer.err{color:var(--error);background:0 0;padding:4px 0;font-size:12px;font-weight:600}.sc-mplay{background:var(--accent);color:#fff;cursor:pointer;width:32px;height:32px;box-shadow:var(--shadow-glow);border:0;border-radius:50%;flex:none;place-items:center;display:grid}.sc-mplay:hover{background:var(--accent-press)}.sc-mplay:disabled{background:var(--line);box-shadow:none;cursor:default}.sc-mplay svg{width:13px;height:13px}.sc-mwave{flex:1;align-items:center;gap:3px;min-width:48px;height:20px;display:flex;overflow:hidden}.sc-mwave i{background:var(--line);border-radius:2px;flex:none;width:3px}.sc-mwave i.played{background:var(--accent)}.sc-mdur{font-family:var(--font-mono);color:var(--muted);flex:none;font-size:12px}.sc-seg{border:1px solid var(--line);border-radius:var(--r-pill);display:flex;overflow:hidden}.sc-seg button{border:0;border-right:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;flex:1;place-items:center;padding:10px 0;transition:all .12s;display:grid}.sc-seg button svg{width:19px;height:19px}.sc-seg button:last-child{border-right:0}.sc-seg button:hover{color:var(--ink)}.sc-seg button.on-a{background:var(--success-soft);color:var(--success-groove)}.sc-seg button.on-r{background:var(--tongue-soft);color:var(--tongue-groove)}.sc-noterow{flex-direction:column;grid-column:2/-1;gap:8px;margin-top:2px;display:flex}.sc-note-foot{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.sc-notefield{flex-direction:column;gap:4px;display:flex}.sc-notefield-cap{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:10.5px;font-weight:800}.sc-note{border:1.5px solid var(--line);border-radius:var(--r-sm);resize:vertical;width:100%;font-family:var(--font-body);color:var(--ink);background:var(--surface);outline:none;padding:8px 10px;font-size:13px}.sc-note:focus{border-color:var(--accent)}.sc-markchips{flex-wrap:wrap;gap:8px;display:flex}.sc-mchip{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-pill);font-family:var(--font-body);cursor:pointer;color:var(--muted);min-height:32px;padding:6px 12px;font-size:12px;font-weight:700}.sc-mchip.grammar.on{background:var(--m-gram-s);color:var(--m-gram);border-color:var(--m-gram)}.sc-mchip.vocab.on{background:var(--m-vocab-s);color:var(--m-vocab);border-color:var(--m-vocab)}.sc-mchip.good.on{background:var(--m-good-s);color:var(--m-good);border-color:var(--m-good)}.sc-mchip.own.on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.sc-bfoot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:20px;padding-top:18px;display:flex}.sc-bcount{color:var(--muted);font-size:13px;font-weight:700}.sc-done-note{text-align:center;padding:60px 20px}.sc-done-em{background:var(--success-soft);width:60px;height:60px;color:var(--success);border-radius:50%;place-items:center;margin:0 auto 16px;display:grid}.sc-done-em svg{width:28px;height:28px}.sc-done-note h2{font-family:var(--font-display);margin-bottom:8px;font-size:20px}.sc-done-note p{color:var(--muted);margin:0 0 18px}.sc-students{grid-template-columns:288px minmax(0,1fr);align-items:start;gap:20px;display:grid}.sc-students>.ui-sl{contain:size;align-self:stretch}.sc-detail{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);flex-direction:column;gap:16px;min-width:0;min-height:520px;padding:22px 24px 16px;display:flex}.sc-sd-top{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.sc-sd-id{flex:220px;min-width:0}.sc-sd-name{font-family:var(--font-display);overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:9px;margin:0;font-size:24px;font-weight:700;line-height:1.15;display:flex}.sc-sd-sub{color:var(--muted);overflow-wrap:anywhere;margin-top:4px;font-size:13px;font-weight:600}.sc-cefr-field{flex:none;align-items:center;gap:10px;display:flex}.sc-cefr-field .combo{min-width:132px}.sc-cefr-label{color:var(--muted);font-size:13px;font-weight:700}.sc-todo{flex-wrap:wrap;align-items:center;gap:8px;min-height:34px;display:flex}.sc-todo-item{border-radius:var(--r-pill);min-height:34px;font-family:var(--font-body);cursor:pointer;border:1px solid #0000;align-items:center;gap:6px;padding:6px 10px 6px 14px;font-size:13px;font-weight:700;transition:border-color .12s,background .12s;display:inline-flex}.sc-todo-item svg{width:14px;height:14px}.sc-todo-item.attn{background:var(--tongue-soft);color:var(--tongue-groove)}.sc-todo-item.attn:hover{border-color:var(--tongue)}.sc-todo-item.debt{background:var(--error-soft);color:var(--error-groove)}.sc-todo-item.debt:hover{border-color:var(--error)}.sc-todo-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sc-todo-chat{border-radius:var(--r-pill);min-height:34px;color:var(--accent);font-family:var(--font-body);cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;margin-left:auto;padding:6px 12px;font-size:13px;font-weight:700;transition:background .12s;display:inline-flex}.sc-todo-chat:hover{background:var(--accent-soft)}.sc-todo-chat:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sc-todo-chat svg{width:16px;height:16px}.sc-todo-ok{border-radius:var(--r-pill);background:var(--success-soft);min-height:34px;color:var(--success-groove);align-items:center;gap:7px;padding:6px 14px 6px 12px;font-size:13px;font-weight:700;display:inline-flex}.sc-todo-ok svg{width:16px;height:16px}.sc-sd-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.sc-sd-stat{background:var(--paper);border-radius:var(--r-md);min-width:0;padding:12px 14px}.sc-sd-n{font-family:var(--font-display);font-size:22px;font-weight:700;line-height:1}.sc-sd-n-text{white-space:nowrap;text-overflow:ellipsis;font-size:18px;line-height:22px;overflow:hidden}.sc-sd-l{color:var(--muted);margin-top:6px;font-size:11.5px;font-weight:700}.sc-activity{background:var(--paper);border-radius:var(--r-md);padding:14px 16px 12px}.sc-ach{background:var(--paper);border-radius:var(--r-md);padding:14px 16px}.sc-activity-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.sc-activity-head h3{font-family:var(--font-body);margin:0;font-size:14px;font-weight:700}.sc-chart{align-items:flex-end;gap:8px;height:76px;display:flex}.sc-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;height:100%;display:flex}.sc-cbar{background:var(--accent-soft);border-radius:5px 5px 0 0;width:100%;max-width:26px;min-height:4px}.sc-col.hi .sc-cbar{background:var(--accent)}.sc-col.zero .sc-cbar{background:var(--line);border-radius:var(--r-pill)}.sc-cl{color:var(--muted);font-size:10px;font-weight:600}.sc-sd-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.sc-card{background:var(--paper);border-radius:var(--r-md);flex-direction:column;min-width:0;display:flex}.sc-card-head{border-radius:var(--r-md) var(--r-md) 0 0;width:100%;font-family:var(--font-body);text-align:left;cursor:pointer;color:var(--ink);background:0 0;border:0;align-items:center;gap:8px;padding:12px 12px 10px 16px;display:flex}.sc-card-title{font-size:14px;font-weight:700}.sc-card-meta{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:12px;font-weight:600}.sc-card-go{width:16px;height:16px;color:var(--muted);flex:none;transition:transform .12s,color .12s}.sc-card-head:hover .sc-card-title,.sc-card-head:hover .sc-card-go{color:var(--accent)}.sc-card-head:hover .sc-card-go{transform:translate(2px)}.sc-card-head:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.sc-card-badge{border-radius:var(--r-pill);background:var(--tongue);color:#fff;place-items:center;min-width:18px;height:18px;padding:0 6px;font-size:10.5px;font-weight:800;display:grid}.sc-card-body{flex:1;padding:0 16px 10px}.sc-card-foot{border:0;border-top:1px solid var(--line);border-radius:0 0 var(--r-md) var(--r-md);width:100%;color:var(--accent);font-family:var(--font-body);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:7px;margin-top:auto;padding:11px 16px;font-size:13px;font-weight:700;transition:background .12s;display:flex}.sc-card-foot:hover{background:var(--accent-soft)}.sc-card-foot:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.sc-card-foot svg{width:15px;height:15px}.sc-card .sc-empty{text-align:left;margin:0;padding:6px 0 8px;font-size:13px}.sc-lrow{border-top:1px solid var(--line);align-items:center;gap:10px;min-width:0;padding:8px 0;font-size:13.5px;display:flex}.sc-lrow:first-child{border-top:0;padding-top:2px}.sc-lmain{min-width:0}.sc-lt{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.sc-ls{color:var(--muted);font-size:11.5px;font-weight:600}.sc-rgt{flex:none;align-items:center;gap:8px;margin-left:auto;display:flex}.sc-val{font-family:var(--font-display);text-align:right;min-width:34px;font-size:13px;font-weight:700}.sc-val.err{color:var(--error)}.sc-tb{border-radius:var(--r-pill);background:var(--surface);width:64px;height:6px;overflow:hidden}.sc-tb>i{background:var(--accent);border-radius:var(--r-pill);height:100%;display:block}.sc-say{border:1px solid var(--line);background:var(--surface);cursor:pointer;width:28px;height:28px;color:var(--accent);border-radius:50%;flex:none;place-items:center;display:grid}.sc-say:hover{background:var(--accent-soft)}.sc-say svg{width:13px;height:13px}.sc-sd-foot{flex-wrap:wrap;justify-content:flex-end;gap:4px;margin-top:auto;display:flex}.sc-sd-feed,.sc-sd-del{border-radius:var(--r-pill);min-height:32px;color:var(--muted);font-family:var(--font-body);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;font-weight:700;display:inline-flex}.sc-sd-feed:hover{color:var(--ink);border-color:var(--line-strong);background:var(--paper)}.sc-sd-feed:focus-visible,.sc-sd-del:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sc-sd-del:hover{color:var(--error);border-color:var(--error);background:var(--error-soft)}.sc-notice{color:var(--muted);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:14px;padding:10px 14px;font-size:13.5px}.sc-del-list{color:var(--ink);margin:0 0 14px;padding-left:18px;font-size:13.5px;line-height:1.7}.sc-del-note{color:var(--muted);margin:0 0 18px;font-size:13px}.sc-del-go{border-radius:var(--r-pill);background:var(--error);color:#fff;min-height:44px;font-family:var(--font-body);cursor:pointer;border:none;flex:1;padding:10px 18px;font-size:13.5px;font-weight:700}.sc-del-go:hover:not(:disabled){opacity:.9}.sc-del-go:disabled{opacity:.6;cursor:default}@media (width<=1100px){.sc-sd-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=820px){.sc-review,.sc-students{grid-template-columns:1fr}.sc-review{padding:0 16px 80px}.sc .sc-review-head{padding-inline:16px}.sc-games{grid-template-columns:1fr}.sc-brow{grid-template-columns:22px minmax(0,1fr);row-gap:8px}.sc-mplayer,.sc-seg{grid-column:2/-1}.sc-stage,.sc-detail{padding:22px 18px}.sc-sd-grid{grid-template-columns:1fr}.sc-students>.ui-sl{contain:none}}.annotation-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);flex-direction:column;max-height:calc(100vh - 90px);display:flex;position:sticky;top:16px;overflow:hidden}.ap-top{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex}.ap-top b{font-family:var(--font-display);font-size:14.5px;font-weight:600}.ap-count{background:var(--accent-soft);color:var(--accent);border-radius:var(--r-pill);padding:3px 9px;font-size:11.5px;font-weight:800}.ap-scroll{flex-direction:column;flex:1;gap:12px;padding:14px 16px;display:flex;overflow:auto}.ap-empty{text-align:center;color:var(--muted);padding:26px 10px;font-size:13.5px;line-height:1.6}.ap-empty b{color:var(--ink);font-family:var(--font-display);margin-bottom:6px;font-size:14.5px;font-weight:600;display:block}.ap-note{border:1px solid var(--line);border-left:4px solid var(--line);border-radius:var(--r-sm);background:var(--surface);cursor:pointer;padding:18px 14px}.ap-note-sel{box-shadow:0 0 0 2px var(--accent-soft)}.ap-note-gram{border-left-color:var(--m-gram)}.ap-note-vocab{border-left-color:var(--m-vocab)}.ap-note-spell{border-left-color:var(--m-spell)}.ap-note-punct{border-left-color:var(--m-punct)}.ap-note-style{border-left-color:var(--m-style)}.ap-note-good{border-left-color:var(--m-good)}.ap-note-head{align-items:center;gap:7px;margin-bottom:6px;display:flex}.ap-note-type{text-transform:uppercase;letter-spacing:.05em;font-size:11.5px;font-weight:800}.ap-note-gram .ap-note-type{color:var(--m-gram)}.ap-note-vocab .ap-note-type{color:var(--m-vocab)}.ap-note-spell .ap-note-type{color:var(--m-spell)}.ap-note-punct .ap-note-type{color:var(--m-punct)}.ap-note-style .ap-note-type{color:var(--m-style)}.ap-note-good .ap-note-type{color:var(--m-good)}.ap-note-del{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;place-items:center;margin-left:auto;padding:2px 4px;font-size:14px;line-height:1;display:inline-grid}.ap-note-del:hover{background:var(--m-gram-s);color:var(--m-gram)}.ap-note-quote{color:var(--ink);background:var(--paper);border-radius:8px;margin-bottom:10px;padding:12px 10px;font-size:14.5px;line-height:1.5}.ap-note-fix{border:1px solid var(--line);width:100%;font-family:var(--font-body);background:var(--paper);color:var(--ink);box-sizing:border-box;border-radius:8px;margin-bottom:10px;padding:12px 10px;font-size:14px}.ap-note-comment{border:1px solid var(--line);width:100%;font-family:var(--font-body);resize:vertical;min-height:72px;color:var(--ink);background:var(--paper);box-sizing:border-box;border-radius:8px;padding:12px 10px;font-size:14px;line-height:1.5}.ap-note-fix:focus,.ap-note-comment:focus{border-color:var(--accent);background:var(--surface);outline:none}.ap-errprofile{border-top:1px solid var(--line);flex-wrap:wrap;gap:6px;padding:11px 14px;display:flex}.ap-errprofile-empty{color:var(--muted);font-size:12px}.ap-ecount{border-radius:var(--r-pill);padding:4px 10px;font-size:11.5px;font-weight:800}.ap-ecount-gram{color:var(--m-gram);background:var(--m-gram-s)}.ap-ecount-vocab{color:var(--m-vocab);background:var(--m-vocab-s)}.ap-ecount-spell{color:var(--m-spell);background:var(--m-spell-s)}.ap-ecount-punct{color:var(--m-punct);background:var(--m-punct-s)}.ap-ecount-style{color:var(--m-style);background:var(--m-style-s)}.ap-ecount-good{color:var(--m-good);background:var(--m-good-s)}.ap-rubric{border-top:1px solid var(--line);padding:14px 16px}.ap-rubric h5{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 10px;font-size:12px;font-weight:800}.ap-rubrow{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.ap-rubrow span{font-size:13px;font-weight:600}.rub-scale{gap:3px;display:flex}.rub-scale-btn{border:1.5px solid var(--line);background:var(--surface);width:24px;height:24px;color:var(--muted);cursor:pointer;font-size:11.5px;font-weight:800;font-family:var(--font-body);border-radius:7px}.rub-scale-btn.on{background:var(--accent);border-color:var(--accent);color:#fff}.ap-total{border-top:1px dashed var(--line);justify-content:space-between;align-items:baseline;margin-top:6px;padding-top:11px;display:flex}.ap-total>span:first-child{color:var(--muted);font-size:13px;font-weight:700}.ap-total-n{font-family:var(--font-display);font-size:24px;font-weight:700}.ap-total-n small{color:var(--muted);font-size:13px;font-weight:600}.ap-override-hint{color:var(--muted);margin:0 0 10px;font-size:12px;line-height:1.5}.ap-override-row{align-items:center;gap:8px;display:flex}.ap-override-row input{border:1.5px solid var(--line);border-radius:var(--r-sm);width:64px;font-family:var(--font-body);background:var(--surface);color:var(--ink);box-sizing:border-box;padding:6px 8px;font-size:14px;font-weight:700}.ap-override-row input:focus{border-color:var(--accent);outline:none}.ap-override-row span{color:var(--muted);font-size:13px;font-weight:600}.ap-errorworksheet{border-top:1px solid var(--line);padding:12px 14px 0}.ap-errorworksheet .btn,.ap-bottom .btn{flex:1;width:100%;min-height:38px;padding:10px 12px;font-size:13px}.ap-bottom{gap:8px;padding:12px 14px;display:flex}.ap-inline-notes{flex-direction:column;gap:8px;margin-top:10px;display:flex}.ap-inline-notes .ap-note{padding:10px 12px}.ap-bottom-total{display:none}@media (width<=480px),(pointer:coarse) and (orientation:portrait) and (width<=1140px){.ap-rubrow{margin-bottom:8px}.ap-rubrow span{min-width:0;font-size:14px}.rub-scale{flex:none;gap:4px}.rub-scale-btn{border-radius:var(--r-sm);width:32px;height:32px;font-size:13px}.ap-bottom{background:var(--surface);align-items:center;gap:12px}.ap-bottom-total{font-family:var(--font-display);flex:none;align-items:baseline;gap:2px;font-size:20px;font-weight:700;display:flex}.ap-bottom-total small{color:var(--muted);font-size:12px;font-weight:600}.ap-bottom .btn{min-height:44px}}@media (pointer:coarse){.ap-bottom .btn{min-height:44px}.ap-note-fix,.ap-note-comment,.ap-override-row input{font-size:16px}}.gnd{z-index:300;pointer-events:none;position:fixed;inset:0}.gnd.open{pointer-events:auto}.gnd-scrim{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;transition:opacity .2s var(--ease);background:#16151f6b;position:absolute;inset:0}.gnd.open .gnd-scrim{opacity:1}.gnd-panel{background:var(--surface);visibility:hidden;width:min(340px,88vw);transition:transform .24s var(--ease), visibility 0s linear .24s;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0;transform:translate(100%)}.gnd.open .gnd-panel{visibility:visible;box-shadow:var(--shadow-pop);transition:transform .24s var(--ease);transform:none}.gnd-head{padding:calc(14px + env(safe-area-inset-top)) 8px 6px 20px;align-items:center;gap:8px;display:flex}.gnd-title{font-family:var(--font-display);letter-spacing:-.02em;flex:1;margin:0;font-size:20px;font-weight:700}.gnd-close{width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.gnd-close svg{width:20px;height:20px}.gnd-body{overscroll-behavior:contain;flex-direction:column;flex:1;display:flex;overflow-y:auto}.gnd-notes{padding:8px 20px 16px}.gnd-section{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);align-items:baseline;gap:6px;margin:0 0 10px;font-size:12px;font-weight:800;display:flex}.gnd-section span{font-variant-numeric:tabular-nums;color:var(--accent)}.gnd-group+.gnd-group{margin-top:18px}.gnd-group-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);align-items:baseline;gap:8px;margin:0 0 8px;font-size:17px;font-weight:700;display:flex}.gnd-group-title span{font-family:var(--font-body);letter-spacing:0;color:var(--muted);font-size:12.5px;font-weight:600}.gnd-rows{border-radius:var(--r-sm);box-shadow:0 0 0 1px var(--line);flex-direction:column;display:flex;overflow:hidden}.gnd-rows>.ap-inline-notes{background:var(--paper);padding:6px}.gnd-row{background:var(--surface);width:100%;font-family:var(--font-body);color:var(--ink);text-align:left;cursor:pointer;border:0;align-items:flex-start;gap:10px;padding:8px 10px;font-size:13.5px;display:flex;position:relative}.gnd-row+.gnd-row:before,.ap-inline-notes+.gnd-row:before,.gnd-row+.ap-inline-notes{border-top:1px solid var(--line)}.gnd-row+.gnd-row:before,.ap-inline-notes+.gnd-row:before{content:"";position:absolute;top:0;left:10px;right:0}.gnd-row:active{background:var(--paper)}.gnd-row-type{letter-spacing:.03em;text-transform:uppercase;flex:none;min-width:54px;padding:1px 0;font-size:10.5px;font-weight:800;line-height:1.6}.gnd-row-gram .gnd-row-type{color:var(--m-gram)}.gnd-row-vocab .gnd-row-type{color:var(--m-vocab)}.gnd-row-spell .gnd-row-type{color:var(--m-spell)}.gnd-row-punct .gnd-row-type{color:var(--m-punct)}.gnd-row-style .gnd-row-type{color:var(--m-style)}.gnd-row-good .gnd-row-type{color:var(--m-good)}.gnd-row-text{overflow-wrap:anywhere;flex:1;min-width:0;line-height:1.45}.gnd-row-quote{font-weight:600}.gnd-row-fix{color:var(--m-good);font-weight:700}.gnd-row-todo{color:var(--muted)}.gnd-row-comment{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:12.5px;display:block;overflow:hidden}.gnd .ap-inline-notes{margin-top:0}.gnd .ap-note{padding:10px 12px 12px}.gnd .ap-note-head{margin-bottom:2px}.gnd .ap-note-quote{background:0 0;margin-bottom:8px;padding:0;font-weight:600}.gnd .ap-note-fix{margin-bottom:8px;padding:9px 10px}.gnd .ap-note-comment{height:64px;min-height:0;padding:9px 10px}.gnd-empty{color:var(--muted);margin:4px 0 0;font-size:13.5px;line-height:1.5}.gnd .annotation-panel{box-shadow:none;background:0 0;border:0;border-radius:0;flex-direction:column;flex:1;max-height:none;margin:0;display:flex;position:static;overflow:visible}.gnd .ap-errprofile,.gnd .ap-rubric{border-top:1px solid var(--line);margin:0 20px;padding:14px 0}.gnd .ap-errprofile{display:none}.gnd .ap-bottom{padding:12px 20px calc(12px + env(safe-area-inset-bottom));margin-top:auto;position:sticky;bottom:0;left:auto;right:auto;box-shadow:0 -6px 14px #16151f0d}.gr-notes-btn{position:relative}.gr-notes-n{border-radius:var(--r-pill);background:var(--accent);color:#fff;text-align:center;min-width:17px;height:17px;padding:0 4px;font-size:10.5px;font-weight:800;line-height:17px;position:absolute;top:4px;right:2px}@media (prefers-reduced-motion:reduce){.gnd-scrim,.gnd-panel{transition:none}}.gnd .ap-total{display:none}.gnd .ap-rubrow{gap:10px}.gnd .rub-scale{gap:3px}.gnd .rub-scale-btn{width:30px;height:32px}.photo-annotator{flex-direction:column;display:flex}.photo-annotator-empty{text-align:center;color:var(--muted);padding:40px 20px;font-size:14px}.photo-canvas-wrap{background:var(--paper);cursor:crosshair;padding:20px;position:relative}.photo-canvas-img{border-radius:var(--r-sm);width:100%;height:auto;box-shadow:var(--shadow-sm);display:block}.photo-canvas-placeholder{text-align:center;color:var(--muted);background:var(--surface);border-radius:var(--r-sm);padding:60px 20px;font-size:14px}.photo-pin{color:#fff;width:26px;height:26px;box-shadow:var(--shadow-sm);cursor:pointer;border:none;border-radius:50% 50% 50% 4px;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:flex;position:absolute;transform:translate(-50%,-100%)rotate(-45deg)}.photo-pin span{transform:rotate(45deg)}.photo-pin-sel{outline:3px solid var(--accent);outline-offset:2px}.photo-pin-gram{background:var(--m-gram)}.photo-pin-vocab{background:var(--m-vocab)}.photo-pin-spell{background:var(--m-spell)}.photo-pin-punct{background:var(--m-punct)}.photo-pin-style{background:var(--m-style)}.photo-pin-good{background:var(--m-good)}.photo-picker{z-index:50;background:var(--ink);border-radius:var(--r-pill);box-shadow:var(--shadow-pop);flex-direction:column;gap:2px;padding:5px;display:flex;position:absolute;transform:translate(-50%,-100%)}.photo-hintbar{color:var(--muted);border-top:1px solid var(--line);background:var(--surface);padding:10px 20px;font-size:12.5px}.ws-grading{flex-direction:column;display:flex}.ws-grading-block{flex-direction:column;gap:14px;padding:18px 20px;display:flex}.qa-context{color:var(--ink);margin:0;font-size:14.5px;line-height:1.55}.qa-num{text-align:center;width:32px;color:var(--muted);flex:none;font-size:14.5px;font-weight:700;line-height:1.55}.qa-blank{vertical-align:baseline;border-radius:var(--r-pill);background:var(--accent);width:34px;height:3px;margin:0 3px -1px;display:inline-block}.qa-hint-tag{color:var(--streak-fg);background:var(--streak-bg);border-radius:var(--r-pill);margin-left:8px;padding:2px 8px;font-size:11.5px;font-weight:700}.qa-prompt{white-space:pre-wrap;font-size:15px;line-height:1.7}.qa-media-image img{border-radius:var(--r-md);max-width:100%}.qa-media-placeholder{background:var(--paper);border-radius:var(--r-md);text-align:center;color:var(--muted);padding:32px}.qa-media-list{flex-direction:column;gap:10px;display:flex}.qa-open .qa-prompt{font-weight:700}.qa-row{align-items:flex-start;gap:11px;display:flex}.qa-body{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.qa-ansline{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.qa-acts{align-items:center;gap:8px;margin-left:auto;display:flex}.qa-verdict{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-pill);align-items:center;gap:3px;padding:3px;display:inline-flex}.qa-verdict-btn{border-radius:var(--r-pill);width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:none;place-items:center;display:grid}.qa-verdict-btn svg{width:15px;height:15px}.qa-verdict-btn--ok.is-active{background:var(--success-soft);color:var(--success-groove)}.qa-verdict-btn--no.is-active{background:var(--error-soft);color:var(--error-groove)}.qa-verdict-btn:not(.is-active):hover{color:var(--ink)}.qa-verdict-btn:disabled{cursor:default;opacity:.6}.qa-icon-btn{border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);width:34px;height:34px;color:var(--muted);cursor:pointer;flex:none;place-items:center;display:grid}.qa-icon-btn svg{width:15px;height:15px}.qa-icon-btn:hover{border-color:var(--accent);color:var(--accent)}.qa-icon-btn.has-comment{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.qa-override{align-items:center;gap:8px;display:flex}.qa-override-tag{color:var(--streak-fg);background:var(--streak-bg);border-radius:var(--r-pill);align-items:center;padding:3px 10px;font-size:11px;font-weight:700;display:inline-flex}.qa-comment{border:1px solid var(--line);border-radius:var(--r-sm);width:100%;font-family:var(--font-body);resize:vertical;background:var(--paper);min-height:44px;color:var(--ink);box-sizing:border-box;padding:8px 10px;font-size:13px}.qa-comment:focus{border-color:var(--accent);background:var(--surface);outline:none}.qa-open{flex-direction:column;gap:10px;display:flex}.qa-tr-mark{color:var(--accent-press);border-bottom:2px solid var(--accent);background:0 0;padding-bottom:1px;font-weight:700}.qa-translate-pairs{flex-direction:column;gap:6px;display:flex}.qa-translate-pair{align-items:baseline;gap:8px;font-size:14.5px;display:flex}.qa-translate-word{color:var(--ink);font-weight:700}.qa-translate-word:after{content:"→";color:var(--muted);margin-left:8px;font-weight:400}.qa-translate-value{color:var(--ink)}.qa-tf-table{border-collapse:collapse;width:100%}.qa-tf-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:0 10px 8px;font-size:11px;font-weight:700}.qa-tf-th-num{width:28px}.qa-tf-th-ans,.qa-tf-th-acts{white-space:nowrap;width:1%}.qa-tf-row td{border-top:1px solid var(--line);vertical-align:middle;padding:10px}.qa-tf-num{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.qa-tf-stmt{font-size:14.5px}.qa-tf-stmt-inner{color:var(--ink);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.qa-tf-ans{white-space:nowrap}.qa-tf-acts-inner{justify-content:flex-end;align-items:center;gap:8px;display:flex}.qa-tf-comment-row td{border-top:none;padding:0 10px 12px}.qa-translate-value{overflow-wrap:anywhere;min-width:0}@media (pointer:coarse){.qa-comment{font-size:16px}.qa-verdict-btn,.qa-icon-btn{width:44px;height:44px}.qa-verdict-btn svg,.qa-icon-btn svg{width:18px;height:18px}}@media (width<=480px),(pointer:coarse) and (orientation:portrait) and (width<=1140px){.qa-tf-table thead{display:none}.qa-tf-table,.qa-tf-table tbody{display:block}.qa-tf-row{border-top:1px solid var(--line);grid-template-columns:22px minmax(0,1fr) auto;grid-template-areas:"num stmt stmt"".ans acts";align-items:center;gap:8px;padding:12px 0;display:grid}.qa-tf-row td{border-top:none;padding:0;display:block}.qa-tf-num{grid-area:num;align-self:start;padding-top:2px}.qa-tf-stmt{grid-area:stmt}.qa-tf-ans{white-space:normal;grid-area:ans}.qa-tf-acts{grid-area:acts}.qa-tf-comment-row{display:block}.qa-tf-comment-row td{padding:0 0 12px 30px;display:block}}.qa-material-toggle{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:0;display:flex}.qa-material-toggle>:first-child{flex:1;min-width:0}.qa-material-chev{width:18px;height:18px;color:var(--line-strong);transition:transform .16s var(--ease);flex:none}.qa-material-chev.open{transform:rotate(90deg)}@media (width<=480px),(pointer:coarse) and (orientation:portrait) and (width<=1140px){.ws-grading-block{gap:12px;padding:14px}.ws-grading-block.qa-material.is-collapsed{padding-top:10px;padding-bottom:10px}.qa-row{gap:6px}.qa-num{text-align:left;width:22px;font-size:13.5px;line-height:1.45}.qa-body{gap:6px}.qa-context{font-size:14px;line-height:1.45}.qa-ansline{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:4px 8px;display:grid}.qa-ansline>.avp-wrap{flex-direction:column;grid-area:1/1;align-items:flex-start;gap:3px}.qa-ansline>.qa-acts{grid-area:1/2}.qa-ansline .avp{padding:5px 11px;font-size:14px}.qa-ansline .avp-expected{font-size:12px}.qa-ansline>.qa-hint-tag{grid-area:2/1;justify-self:start;margin-left:0}.qa-acts{flex:none;gap:6px}.qa-verdict{gap:2px;padding:2px}.qa-verdict-btn,.qa-icon-btn{width:34px;height:34px}.qa-verdict-btn svg,.qa-icon-btn svg{width:15px;height:15px}}.grading-screen{box-sizing:border-box;flex-direction:column;align-items:flex-start;gap:10px;width:100%;max-width:1280px;margin:0 auto;padding:4px 20px 40px;display:flex}.grading-screen>.grading-body{align-self:stretch}.grading-topbar{align-self:stretch;align-items:center;gap:12px;display:flex}.grading-path{color:var(--muted);font-size:13.5px;font-weight:600}.grading-body{grid-template-columns:1fr 380px;align-items:start;gap:16px;display:grid}.grading-doc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);position:relative;overflow:hidden}.grading-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:14px;padding:8px 14px;display:flex}.grading-head .btn-ghost{margin-left:-16px}.grading-doc-title{min-width:0;font-family:var(--font-display);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;font-size:18px;font-weight:700;overflow:hidden}.grading-tabs-row{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;display:flex}.grading-who{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:12.5px}.grading-essay-pad{max-height:620px;padding:26px 30px;overflow:auto}.grading-loading{text-align:center;color:var(--muted);align-self:stretch;padding:40px 20px;font-size:14px}@media (width<=1100px){.grading-body{grid-template-columns:1fr}.annotation-panel{max-height:none;position:static}}@media (width<=480px),(pointer:coarse) and (orientation:portrait) and (width<=1140px){.grading-screen{padding:0 0 32px}.grading-head{gap:4px 14px;padding:6px 14px 12px}.grading-doc-title{white-space:normal;flex-basis:100%;font-size:17px;line-height:1.3}}.trv-wait.old{color:var(--tongue);font-weight:700}.trv-done-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.trv-dd .ui-fd-menu{z-index:20}.sc-review .ui-sl-foot{padding-bottom:26px}.trv-grade>.sc-bfoot .sc-btn{min-height:52px}.trv-grade-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.trv-grade-text{min-width:0}.trv-grade-title{font-family:var(--font-display);overflow-wrap:anywhere;margin:0;font-size:20px;font-weight:700;line-height:1.25}.trv-grade-sub{color:var(--muted);align-items:center;gap:6px;margin-top:4px;font-size:13px;font-weight:600;display:flex}.trv-grade-ico{color:var(--accent);place-items:center;display:grid}.trv-grade-ico svg{width:15px;height:15px}.trv-grade-head .sc-linkbtn{flex:none;margin-top:2px}.trv-table .trv-row{border-bottom:1px solid var(--line);grid-template-columns:52px minmax(0,1fr) auto;align-items:start;gap:12px 14px;padding:14px 16px 14px 12px;display:grid;position:relative}.trv-table .trv-row:last-child{border-bottom:0}.ui-whole-rows>.trv-row:last-child{border-bottom:1px solid #0000}.trv-row.is-retake{background:color-mix(in srgb, var(--tongue-soft) 45%, var(--surface));box-shadow:inset 3px 0 0 var(--tongue)}.trv-play-col{flex-direction:column;align-items:center;gap:4px;display:flex}.trv-play{--p:0%;background:conic-gradient(var(--accent) var(--p), var(--accent-soft) 0);cursor:pointer;border:0;border-radius:50%;width:40px;height:40px;padding:3px}.trv-play-core{background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:100%;height:100%;display:grid}.trv-play:hover .trv-play-core{background:var(--accent-press)}.trv-play svg{width:13px;height:13px}.trv-play:disabled{background:var(--paper);cursor:default}.trv-play:disabled .trv-play-core{background:var(--line);color:var(--muted)}.trv-dur{font-family:var(--font-mono);color:var(--muted);white-space:nowrap;font-size:11px}.trv-dur.none{font-family:var(--font-body);font-weight:600}.trv-main{min-width:0;padding-top:1px}.trv-word{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:12px;font-weight:700;display:flex}.trv-word-t{color:var(--ink);font-size:15px;font-weight:800}.trv-said{color:var(--ink);overflow-wrap:anywhere;margin:4px 0 0;font-size:14px;line-height:1.5}.trv-said .sc-hit{color:var(--error-groove);background:var(--error-soft);border-radius:3px;padding:0 2px;font-weight:700}.trv-banned{color:var(--muted);align-items:center;gap:5px;margin-top:6px;font-size:12px;font-weight:600;display:flex}.trv-banned svg{width:13px;height:13px;color:var(--error);flex:none}.trv-main .sc-bchips{margin-top:8px}.trv-actions{align-items:center;gap:8px;display:flex}.trv-note-btn{border:1px solid var(--line);background:var(--surface);width:36px;height:36px;color:var(--muted);cursor:pointer;border-radius:50%;place-items:center;display:grid;position:relative}.trv-note-btn svg{width:16px;height:16px}.trv-note-btn:hover{color:var(--accent);border-color:var(--accent)}.trv-note-btn.open,.trv-note-btn.has{background:var(--accent-soft);color:var(--accent);border-color:#0000}.trv-note-btn.has:after{content:"";background:var(--accent);width:9px;height:9px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;position:absolute;top:1px;right:1px}.trv-seg{width:96px}.trv-seg button{padding:8px 0}.trv-seg button svg{width:17px;height:17px}.trv-note{flex-direction:column;grid-column:2/-1;gap:8px;display:flex}.trv-loading{color:var(--muted)}@media (width>=821px){.admin-page:has(.sc-review.app-fill-desktop){padding-bottom:20px}.admin-page:has(.sc-review.app-fill-desktop)>.sc{flex:1;min-height:0}.sc-review.app-fill-desktop{flex:1;grid-template-rows:minmax(0,1fr);align-items:stretch;min-height:0;padding-bottom:0}.sc-review.app-fill-desktop>.ui-sl{min-height:0;max-height:none;position:static;height:auto!important}.sc-review.app-fill-desktop>.trv-stage{flex-direction:column;min-height:0;display:flex}.trv-stage>*{flex:none}.trv-stage>.trv-grade{flex-direction:column;flex:1;min-height:0;display:flex}.trv-grade>*{flex:none}.trv-grade>.sc-btable{flex:0 auto;min-height:0;max-height:none;margin-bottom:20px}.trv-grade>.sc-bfoot{border-top:0;margin-top:auto;padding-top:0}.trv-stage>.trv-done{flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}}@media (width<=820px){.trv-table .trv-row{grid-template-columns:52px minmax(0,1fr)}.trv-actions{grid-column:2}}@media (width<=480px),(pointer:coarse) and (orientation:portrait) and (width<=1140px){.trv-grade-head{flex-direction:column;gap:8px}.trv-grade-sub{flex-wrap:wrap}.trv-grade-head .sc-linkbtn{align-self:flex-start;margin-top:0}}@media (pointer:coarse){.trv-actions .sc-seg button{min-height:44px}.trv-note-btn{width:44px;height:44px}}.trv-phone-back{display:none}@media (width<=480px),(pointer:coarse) and (orientation:portrait) and (width<=1140px){.trv-phone-list>.trv-stage,.trv-phone-topic>.ui-sl{display:none}.trv-stage{scroll-margin-top:calc(72px + env(safe-area-inset-top))}.trv-phone-back{min-height:44px;color:var(--accent);font-family:var(--font-body);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;margin:-6px 0 6px -6px;padding:0 8px 0 2px;font-size:15px;font-weight:700;display:inline-flex}.trv-phone-back svg{width:20px;height:20px}.trv-table{scroll-snap-type:none!important;height:auto!important;max-height:none!important;overflow:visible!important}}.trv-ph{box-sizing:border-box;flex-direction:column;width:100%;padding:0 16px;display:flex}:is(.sc-review-head:has(+.trv-ph)>.ui-ph,.sc-review-head:has(+.trv-phone-topic)>.ui-ph){margin-bottom:0}@media (width<=480px),(pointer:coarse) and (orientation:portrait) and (width<=1140px){.trv-phone-topic{padding-bottom:16px}.trv-phone-topic>.trv-stage{background:0 0;border:0;border-radius:0;padding:0}.trv-phone-topic .trv-phone-back{margin:-12px 0 0 -6px}.trv-phone-topic .trv-grade-head{flex-direction:row;align-items:flex-start;gap:12px;margin-bottom:14px}.trv-phone-topic .trv-grade-title{font-size:22px}.trv-phone-topic .trv-grade-sub{margin-top:6px;font-size:13px;line-height:1.45;display:block}.trv-phone-topic .trv-grade-ico{vertical-align:-2px;margin-right:5px;display:inline-grid}.trv-phone-topic .trv-grade-head .sc-linkbtn{white-space:nowrap;min-height:44px;margin:-8px -8px 0 0;padding:0 8px}.trv-phone-topic .trv-table{border:0;border-radius:0;flex-direction:column;gap:10px;display:flex}.trv-phone-topic .trv-table .trv-row{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);grid-template-columns:auto minmax(0,1fr);grid-template-areas:"main main""play actions""note note";gap:8px 10px;padding:12px 12px 10px 14px}.trv-phone-topic .trv-table .trv-row:last-child{border-bottom:1px solid var(--line)}.trv-phone-topic .trv-row.is-retake{border-color:color-mix(in srgb, var(--tongue) 40%, var(--line));background:color-mix(in srgb, var(--tongue-soft) 45%, var(--surface));box-shadow:none}.trv-phone-topic .trv-main{grid-area:main;padding-top:0}.trv-phone-topic .trv-word-t{font-size:16px}.trv-phone-topic .trv-said{margin-top:2px;font-size:15px;line-height:1.4}.trv-phone-topic .trv-banned{font-size:13px}.trv-phone-topic .trv-play-col{flex-direction:row;grid-area:play;align-items:center;gap:8px}.trv-phone-topic .trv-play{width:36px;height:36px}.trv-phone-topic .trv-play svg{width:12px;height:12px}.trv-phone-topic .trv-dur{font-size:11.5px}.trv-phone-topic .trv-note-btn{width:36px;height:36px}.trv-phone-topic .trv-actions{gap:6px}.trv-phone-topic .trv-actions .sc-seg button{min-height:36px;padding:0}.trv-phone-topic .trv-actions{grid-area:actions;justify-self:end}.trv-phone-topic .trv-seg{width:88px}.trv-phone-topic .trv-note{border-top:1px solid var(--line);grid-area:note;gap:8px;padding-top:10px}.trv-phone-topic .sc-markchips{gap:6px}.trv-phone-topic .sc-mchip{min-height:30px;padding:0 11px;font-size:12.5px}.trv-phone-topic .sc-notefield-cap{display:none}.trv-phone-topic .sc-note{field-sizing:content;resize:none;min-height:40px;padding:8px 10px;font-size:16px;line-height:1.35}.trv-phone-topic .sc-bfoot{bottom:max(10px, env(safe-area-inset-bottom));z-index:5;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);flex-wrap:nowrap;margin-top:14px;padding:8px 8px 8px 16px;position:sticky;box-shadow:0 2px 10px #16151f1a}.trv-phone-topic .sc-bcount{font-size:12.5px;line-height:1.3}.trv-phone-topic .sc-bfoot .sc-btn{white-space:nowrap;min-height:44px}}.trv-chip{border-radius:var(--r-pill);background:var(--accent-soft);min-height:36px;font-family:var(--font-body);color:var(--accent);cursor:pointer;border:0;align-self:flex-start;align-items:center;gap:6px;margin:0 0 12px;padding:0 10px 0 14px;font-size:14px;font-weight:700;display:inline-flex}.trv-chip svg{width:15px;height:15px}.trv-sheet-opt{flex:1;min-width:0}.trv-sheet-n{color:var(--muted);font-weight:700}.ui-test-tag{vertical-align:2px;border-radius:var(--r-pill);background:var(--paper);color:var(--muted);white-space:nowrap;margin-left:6px;padding:1px 7px;font-size:11px;font-weight:700;line-height:1.5;display:inline-block}.phh{scroll-margin-top:calc(72px + env(safe-area-inset-top));flex-direction:column;gap:20px;display:flex}.phh-search{padding:0 0 8px}.phh-empty{color:var(--muted);margin:12px 4px}.phh-pick-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.phh-pick-level{color:var(--muted);font-weight:700}.phh-time{width:44px;color:var(--ink);font-variant-numeric:tabular-nums;font-size:14px;font-weight:800}.phh-badge{box-sizing:border-box;border-radius:var(--r-pill);background:var(--tongue);color:#fff;text-align:center;min-width:22px;height:22px;padding:0 7px;font-size:12px;font-weight:800;line-height:22px}.phh-debt{color:var(--error);font-weight:800}.phh-ok{width:20px;height:20px;color:var(--success)}.phh-now+.ph-row:before{content:"";border-top:1px solid var(--line);position:absolute;top:0;left:14px;right:0}.phh-now{flex-direction:column;gap:14px;padding:16px;display:flex}.phh-now-info{font-family:var(--font-body);text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;gap:3px;padding:0;display:flex}div.phh-now-info{cursor:default}.phh-now-label{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:6px;margin-bottom:2px;font-size:13px;font-weight:600;display:flex}.phh-now-name{font-family:var(--font-display);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:20px;font-weight:700;line-height:1.2;overflow:hidden}.phh-now-topic{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.phh-now-go{width:100%;min-height:44px}.phs-head{align-items:center;gap:12px;margin-top:-8px;display:flex}.phs-id{flex:1;min-width:0}.phs-name{font-family:var(--font-display);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:20px;font-weight:700;line-height:1.2;overflow:hidden}.phs-sub{color:var(--muted);margin-top:2px;font-size:13px}.phs-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.phs-actions .btn{white-space:nowrap;min-height:44px;padding:0 8px;font-size:14px}.phs-aside{text-transform:none;letter-spacing:0;font-weight:600}.phs-chart{padding:14px 12px 10px}.phs-level-label{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-size:12px;font-weight:700}.phs-levels{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:12px;display:grid}.phs-level{border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--surface);min-height:44px;font-family:var(--font-body);color:var(--muted);cursor:pointer;font-size:14px;font-weight:800}.phs-level.on{border-color:var(--accent);background:var(--accent);color:#fff}.phh-now-label.live{color:var(--ink);font-weight:700}.phh-stat-n{font-family:var(--font-display);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:clamp(15px,4.6vw,18px);font-weight:700;overflow:hidden}.phh-grid{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.phh-cell{flex-direction:column;gap:2px;min-width:0;padding:12px;display:flex}.phh-cell:nth-child(n+4){border-top:1px solid var(--line)}.phh-cell:not(:nth-child(3n+1)){border-left:1px solid var(--line)}.phh-cell-l{color:var(--muted);font-size:12.5px;line-height:1.3}.phh-aside{text-transform:none;letter-spacing:0;font-weight:600}.daily-split{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:22px;display:grid}.daily-col{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);flex-direction:column;min-width:0;display:flex;overflow:hidden}.daily-col-head{border-bottom:1px solid var(--line);padding:16px 20px 14px}.daily-col-title{align-items:baseline;gap:8px;display:flex}.daily-col-title h2{font-family:var(--font-display);letter-spacing:-.01em;font-size:17px;font-weight:700}.daily-col-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.daily-col-hint{color:var(--muted);margin-top:3px;font-size:13px}.daily-col-scroll{min-height:0}.daily-col-msg{text-align:center;color:var(--muted);margin:0;padding:28px 20px;font-size:14px}.daily-list{margin:0;padding:0;list-style:none}.daily-row{border-bottom:1px solid var(--line);transition:background .15s var(--ease);align-items:center;gap:14px;padding:12px 12px 12px 20px;display:flex}.daily-list>.daily-row:last-child{border-bottom:none}.daily-row:hover:not(.daily-row-editing){background:var(--paper)}.daily-row-editing{background:var(--surface);padding:16px 20px;display:block}.daily-row-body{flex:1;min-width:0}.daily-row-term{color:var(--ink);font-size:15.5px;font-weight:800}.daily-row-tr{color:var(--ink);opacity:.8;margin-top:2px;font-size:14px}.daily-row .vocab-card-actions{flex:none}.today-flag{letter-spacing:.08em;text-transform:uppercase;color:var(--tongue-groove);background:var(--tongue-soft);border-radius:var(--r-pill);vertical-align:2px;cursor:default;margin-left:8px;padding:3px 8px;font-size:10px;font-weight:800}.daily-dock{border-top:1px solid var(--line);background:var(--surface);flex-direction:column;flex:none;justify-content:center;min-height:64px;padding:12px 20px;display:flex}.daily-dock>.word-addline{align-self:flex-start;width:auto}.daily-add-form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:10px;display:grid}.daily-add-form input{min-width:0}.daily-add-actions{grid-column:-2/-1;justify-content:flex-end;gap:8px;display:flex}.daily-add-form .daily-add-date{grid-column:1/2}.daily-add-form button:disabled{opacity:.5;cursor:default}.daily-add-error{grid-column:1/-1;margin:0}@media (width<=820px){.daily-split{grid-template-columns:minmax(0,1fr)}}@media (width<=480px){.daily-add-form{grid-template-columns:minmax(0,1fr)}.daily-add-form .daily-add-date,.daily-add-actions{grid-column:1/-1}}.wod-date{border-radius:var(--r-sm);background:var(--accent-soft);width:46px;height:46px;color:var(--accent);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:flex}.wod-date .d{font-variant-numeric:tabular-nums;font-size:17px;font-weight:800}.wod-date .m{text-transform:uppercase;letter-spacing:.06em;margin-top:2px;font-size:10px;font-weight:700}.daily-row.is-today .wod-date{background:var(--accent);color:#fff}.daily-row.is-past .wod-date{background:var(--paper);color:var(--muted)}.daily-row.is-past .daily-row-term{color:var(--muted)}.vocab-split{grid-template-columns:288px 1fr;align-items:start;gap:22px;display:grid}.stu-words-scroll{flex-direction:column;gap:14px;display:flex}@media (width>=821px){.admin-page:has(>.app-fill-desktop){padding-bottom:20px}.vocabulary-manager-tab.app-fill-desktop{flex-direction:column;flex:1;min-height:0;display:flex}.app-fill-desktop>*{flex:none}.app-fill-desktop>.vocab-split{flex:1;grid-template-rows:minmax(0,1fr);align-items:stretch;min-height:0}.app-fill-desktop .vocab-split>.ui-sl{min-height:0;max-height:none;position:static}.app-fill-desktop .stu-vocab-main{min-height:0}.app-fill-desktop .stu-vocab-main>*{flex:none}.app-fill-desktop>.daily-split{flex:1;grid-template-rows:minmax(0,1fr);align-items:stretch;min-height:0}.app-fill-desktop .daily-col{min-height:0}.app-fill-desktop .daily-col-scroll{overscroll-behavior:contain;flex:1;overflow-y:auto}.app-fill-desktop .stu-vocab-main>.stu-words-scroll{overscroll-behavior:contain;flex:1;min-height:0;margin:-6px -8px;padding:6px 8px;overflow-y:auto}}.stu-vocab-main{flex-direction:column;gap:14px;min-width:0;display:flex}.stu-vocab-main .vocab-list{margin-top:4px}.stu-stats{align-items:stretch;margin:0;display:flex}.stu-stat{border-left:1px solid var(--line);flex-direction:column;justify-content:flex-start;align-items:flex-start;min-width:92px;padding:0 20px;display:flex}.stu-stat dd{margin:0}.stu-stat-value{font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--ink);order:-1;font-size:26px;font-weight:700;line-height:1.1}.stu-stat-known .stu-stat-value{color:var(--success-groove)}.stu-stat-learning .stu-stat-value{color:var(--streak-fg)}.stu-stat-label{color:var(--muted);align-items:center;gap:6px;margin-top:4px;font-size:12px;font-weight:700;display:flex}.stu-stat-label:before{content:"";background:var(--line-strong);border-radius:50%;width:8px;height:8px}.stu-stat-known .stu-stat-label:before{background:var(--success)}.stu-stat-learning .stu-stat-label:before{background:var(--streak-fg)}.stu-vocab-main .stu-progress-tabs{margin-bottom:0;padding-bottom:10px}.stu-progress-tabs .subtabs{gap:4px}.stu-progress-tabs .subtab{gap:6px;min-height:34px;padding:6px 14px;font-size:13.5px;font-weight:700}.stu-subtab-count{font-variant-numeric:tabular-nums;opacity:.7}.stu-progress-failed{color:var(--muted);margin:0;font-size:13px}.stu-head-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 0 14px 18px;display:flex}.stu-head{align-items:center;gap:14px;min-width:0;display:flex}.stu-head-text{min-width:0}@media (width<=560px){.stu-head-card{padding-right:18px}.stu-stats{border-top:1px solid var(--line);width:100%;padding-top:12px}.stu-stat{flex:1;min-width:0;padding:0 12px}.stu-stat:first-child{border-left:none;padding-left:0}}.stu-add-row{flex:1;grid-template-columns:1fr 1fr auto auto;grid-template-areas:"term trans trans trans""ctx ctx add close";gap:10px;min-width:0;display:grid}.stu-add-row .stu-add-term{grid-area:term}.stu-add-row .stu-add-trans{grid-area:trans}.stu-add-row .stu-add-ctx{grid-area:ctx}.stu-add-row button[type=submit]{grid-area:add}.stu-add-row .word-add-close{grid-area:close}.stu-add-row input{min-width:0}.stu-add-row button:disabled{opacity:.5;cursor:default}.stu-add-error{grid-column:1/-1;margin:0}@media (width<=720px){.stu-add-row{grid-template-columns:1fr auto;grid-template-areas:"term term""trans trans""ctx ctx""add close"}}.stu-head-name{font-family:var(--font-display);letter-spacing:-.02em;font-size:20px;font-weight:700}.stu-head-meta{color:var(--muted);margin-top:2px;font-size:13px}@media (width<=820px){.vocab-split{grid-template-columns:1fr}}.svp-ph{flex-direction:column;gap:14px;display:flex}.svp-ph-head{align-items:center;gap:12px;margin-top:-6px;display:flex}.svp-ph-id{min-width:0}.svp-ph-name{font-family:var(--font-display);margin:0;font-size:20px;font-weight:700;line-height:1.2}.svp-ph-meta{color:var(--muted);font-size:13px}.svp-ph .stu-stats{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.svp-ph .stu-stat{text-align:center;align-items:center;min-width:0;padding:0 4px}.svp-ph .stu-stat:first-child{border-left:0}.svp-ph .stu-progress-tabs{margin:0;padding-bottom:14px}.svp-ph .stu-progress-tabs .subtabs{flex:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;display:grid}.svp-ph .stu-progress-tabs .subtab{white-space:nowrap;justify-content:center;gap:5px;padding:6px 4px;font-size:13px}.svp-ph-student{min-height:64px}.svp-ph-week{color:var(--success-groove);font-weight:700}.svp-ph-dict{padding-bottom:calc(var(--svp-dock-h,0px) + 16px)}.svp-ph-dock{left:16px;right:16px;bottom:max(10px, env(safe-area-inset-bottom));z-index:20;min-height:0;padding:12px 16px;position:fixed;box-shadow:0 2px 10px #16151f1a}.svp-ph-dock>.word-addline{flex-direction:row-reverse;align-self:flex-end}.svp-ph .vocab-star{flex:none}.admin-page{flex-direction:column;flex:1;width:100%;max-width:1040px;min-height:0;margin:0 auto;padding:28px 24px 48px;display:flex}.admin-page-full{max-width:none;padding:28px 0 0}.admin-page-full:has(.msgr-page){padding-top:0}.admin-page-wide,.admin-page-console{width:100%;max-width:1240px}.admin-page-header{flex:none;margin-bottom:24px}.admin-page-header h1{font-size:26px}.admin-page-subtitle{color:var(--muted);margin-top:4px;font-size:14.5px}@media (width<=820px){.admin-page{padding:20px 16px 40px}.admin-page-full:has(.msgr-page){padding:0}}.app-banner-slot+.admin-page{padding-top:0}.app-main:has(>.admin-page)>.app-banner-slot{padding-top:28px}.btop{height:var(--bar-h);z-index:20;background:var(--surface);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:0 12px;display:flex;position:absolute;top:0;left:0;right:0}.btop-group{align-items:center;gap:10px;min-width:0;display:flex}.btop-center,.btop-title{align-items:center;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.btop-center{gap:16px}.btop-center--stack{flex-direction:column;gap:3px}.btop-title{gap:10px;width:min(40vw,480px)}.btop-title-input{border-radius:var(--r-sm);text-align:center;min-width:0;min-height:40px;font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);transition:background-color .15s var(--ease), border-color .15s var(--ease);background:0 0;border:1.5px solid #0000;flex:1;padding:6px 16px;font-size:15px;font-weight:600}.btop-title-input:hover{background:var(--paper)}.btop-title-input:focus{background:var(--surface);border-color:var(--accent);outline:none}.btop-title-input::placeholder{color:var(--muted);opacity:.6}.btop-btn{border-radius:var(--r-pill);white-space:nowrap;background:var(--surface);min-height:44px;color:var(--ink);border:1.5px solid var(--line);transition:background-color .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease);justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.btop-btn:hover{border-color:var(--ink)}.btop-btn:active{transform:translateY(1px)scale(.99)}.btop-btn:disabled{opacity:.6;cursor:default}.btop-btn[aria-expanded=true]{background:var(--accent-soft);color:var(--accent);border-color:#0000}.btop-btn--primary{background:var(--accent);color:#fff;border-color:#0000;box-shadow:0 6px 18px #5850ea52}.btop-btn--primary:hover{background:var(--accent-press);border-color:#0000}.btop-btn--danger{background:var(--error);color:#fff;border-color:#0000;box-shadow:0 6px 18px #e5484d47}.btop-btn--danger:hover{background:color-mix(in srgb, var(--error) 86%, var(--ink));border-color:#0000}.btop-badge{border-radius:var(--r-pill);background:var(--tongue);color:#fff;place-content:center;min-width:22px;height:22px;padding:0 7px;font-size:12px;font-style:normal;font-weight:800;display:inline-grid;box-shadow:0 2px 8px #fc487866}.btop-who{min-width:120px;color:var(--muted);white-space:nowrap;align-items:center;gap:7px;font-size:12.5px;font-weight:700;display:inline-flex}.btop-who i{background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px;animation:1.6s ease-in-out infinite btop-pulse}.btop-who.is-on{color:var(--success)}.btop-who.is-on i{background:var(--success);animation:none}@keyframes btop-pulse{50%{opacity:.35}}.btop-timer{text-align:center;flex-direction:column;align-items:center;line-height:1.05;display:flex}.btop-timer-value{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:18px;font-weight:600}.btop-timer.is-over .btop-timer-value{color:var(--muted)}.btop-drawstate{border-radius:var(--r-pill);background:var(--paper);height:38px;color:var(--muted);white-space:nowrap;align-items:center;gap:8px;padding:0 15px;font-size:13px;font-weight:700;display:inline-flex}.btop-drawstate.is-on{background:var(--success-soft);color:var(--success)}.btop-stack{text-align:center;flex-direction:column;gap:3px;min-width:0;display:flex}.btop-stack-name{font-family:var(--font-display);letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;max-width:44vw;font-size:14px;font-weight:600;overflow:hidden}.btop-stack-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}@media (width<=900px){.btop-title{width:min(34vw,360px)}}.btop-savestate{color:var(--muted);white-space:nowrap;font-size:12.5px;font-weight:700}.btop-savestate.is-error{color:var(--error)}.ldk{z-index:31;pointer-events:none;transition:transform .32s cubic-bezier(.16, 1, .3, 1), opacity .25s var(--ease);position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.ldk.is-hidden{opacity:0;transition:transform .28s cubic-bezier(.4, 0, .9, .6), opacity .2s var(--ease) 80ms;transform:translate(-50%,calc(100% + 24px))}.ldk.is-hidden .ldk-row{pointer-events:none}.ldk-row{pointer-events:auto;align-items:flex-end;gap:8px;padding:8px 10px 10px;display:flex;position:relative}.ldk-shelf{-webkit-backdrop-filter:blur(20px)saturate(1.4);box-shadow:var(--shadow-md);background:#ffffff9e;border:1px solid #ffffffbf;border-radius:20px;position:absolute;inset:0}.ldk-row.is-hover:before{content:"";height:64px;position:absolute;bottom:100%;left:-60px;right:-60px}.ldk-item{--ldk-size:44px;cursor:pointer;background:0 0;border:none;flex:none;width:44px;height:44px;padding:0;display:block;position:relative}.ldk-item.is-bouncing .ldk-hit{width:var(--ldk-size);height:var(--ldk-size);cursor:pointer;background:0 0;border:none;border-radius:22%;padding:0;position:absolute;bottom:0;left:0}.ldk-close{z-index:2;left:calc(var(--ldk-size) - 14px);bottom:calc(var(--ldk-size) - 14px);color:#fff;cursor:pointer;opacity:0;pointer-events:none;width:20px;height:20px;transition:opacity .14s var(--ease), transform .14s var(--ease), background .14s var(--ease);background:#16151fd1;border:1.5px solid #fff;border-radius:50%;place-content:center;padding:0;display:grid;position:absolute;transform:scale(.6)}.ldk-item:hover .ldk-close,.ldk-close:focus-visible,.ldk-close.is-armed{opacity:1;pointer-events:auto;transform:none}.ldk-close:hover{background:var(--ink)}.ldk-close.is-armed{background:var(--error);transform:scale(1.12)}.ldk-lift{animation:.52s cubic-bezier(.3,0,.3,1) ldk-bounce}@keyframes ldk-bounce{0%{transform:translateY(0)}35%{transform:translateY(-14px)}62%{transform:translateY(0)}80%{transform:translateY(-4px)}to{transform:translateY(0)}}.ldk-lift{position:absolute;inset:0}.ldk-icon{width:var(--ldk-size);height:var(--ldk-size);background:radial-gradient(circle at 1px 1px, #16151f12 1px, transparent 0) 0 0 / 8px 8px, var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:22%;justify-content:center;align-items:center;display:flex;position:absolute;bottom:0;left:0;overflow:hidden;box-shadow:0 2px 6px #16151f1f}.ldk-item.is-active .ldk-icon{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft), 0 2px 6px #16151f1f}.ldk-item--launch .ldk-icon{background:var(--surface)}.ldk-stack{width:64%;height:64%}.ldk-stack-sheet{stroke:color-mix(in srgb, var(--ink) 22%, transparent);stroke-width:1.2px}.ldk-stack-sheet--sun{fill:#fdf3d7}.ldk-stack-sheet--mint{fill:#e4f4ea}.ldk-stack-top{fill:var(--surface);stroke:var(--accent);stroke-width:1.5px}.ldk-stack-lines{stroke:var(--accent);stroke-width:1.4px;stroke-linecap:round;fill:none}.ldk-dot{left:calc(var(--ldk-size) / 2);background:0 0;border-radius:50%;width:4px;height:4px;margin-left:-2px;position:absolute;bottom:-7px}.ldk-item.is-active .ldk-dot{background:var(--ink)}.ldk-item--launch{margin-left:13px}.ldk-item--launch:before{content:"";background:color-mix(in srgb, var(--ink) 16%, transparent);width:1px;height:36px;position:absolute;bottom:4px;left:-11px}.ldk-label{left:calc(var(--ldk-size) / 2);bottom:calc(var(--ldk-size) + 10px);color:#fff;white-space:nowrap;text-overflow:ellipsis;opacity:0;pointer-events:none;max-width:220px;transition:opacity .12s var(--ease);background:#16151fdb;border-radius:8px;padding:5px 10px;font-size:12px;font-weight:600;position:absolute;overflow:hidden;transform:translate(-50%)}.ldk-item:hover .ldk-label,.ldk-item:focus-within .ldk-label,.ldk-item.is-armed .ldk-label{opacity:1}.ldk-item.is-armed .ldk-label{background:var(--error)}.ldk-handle{z-index:31;-webkit-backdrop-filter:blur(20px)saturate(1.4);width:56px;height:24px;box-shadow:var(--shadow-md);color:var(--ink);cursor:pointer;background:#ffffffb8;border:1px solid #ffffffbf;border-radius:12px 12px 8px 8px;place-content:center;padding:0;display:grid;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.ldk-handle svg{transform:rotate(-90deg)}.ldk-handle:before{content:"";position:absolute;inset:-10px -12px -4px}.ldk-collapse{z-index:3;-webkit-backdrop-filter:blur(20px)saturate(1.4);width:44px;height:24px;box-shadow:var(--shadow-md);color:var(--ink);cursor:pointer;pointer-events:auto;background:#ffffffb8;border:1px solid #ffffffbf;border-radius:12px;place-content:center;padding:0;display:grid;position:absolute;top:-30px;left:50%;transform:translate(-50%)}.ldk.is-hidden .ldk-collapse{pointer-events:none}.ldk.has-armed .ldk-collapse{opacity:0;pointer-events:none}.ldk-collapse svg{transform:rotate(90deg)}.ldk-collapse:before{content:"";position:absolute;inset:-10px -12px}.ldk--touch .ldk-close{opacity:1;pointer-events:auto;transform:none}.ldk--touch .ldk-close:before{content:"";position:absolute;inset:-8px}@media (prefers-reduced-motion:reduce){.ldk,.ldk.is-hidden,.ldk-close{transition:none}.ldk-item.is-bouncing .ldk-lift{animation:none}}.lpad{z-index:45;background:color-mix(in srgb, var(--desk) 62%, transparent);-webkit-backdrop-filter:blur(22px)saturate(1.2);animation:lpad-in .2s var(--ease);position:absolute;inset:0;overflow-y:auto}@keyframes lpad-in{0%{opacity:0;transform:scale(1.03)}to{opacity:1;transform:none}}.lpad-inner{width:min(1080px,100% - 48px);margin:0 auto;padding:40px 0 120px}.lpad-search{width:min(360px,100%);margin:0 auto 28px}.lpad-section+.lpad-section{margin-top:32px}.lpad-heading{font-family:var(--font-display);color:var(--ink);margin:0 0 14px;font-size:15px;font-weight:700}.lpad-grid{grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:22px 18px;display:grid}.lpad-tile{cursor:pointer;text-align:center;background:0 0;border:none;flex-direction:column;align-items:stretch;gap:8px;padding:0;display:flex}.lpad-tile:disabled{cursor:default;opacity:.6}.lpad-card{aspect-ratio:16/10;background:radial-gradient(circle at 1px 1px, #16151f14 1px, transparent 0) 0 0 / 14px 14px, var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-md);transition:transform .15s var(--ease), border-color .15s var(--ease);border-radius:14px;position:relative;overflow:hidden}.lpad-tile:not(:disabled):hover .lpad-card{border-color:var(--ink);transform:translateY(-3px)scale(1.03)}.lpad-tile.is-active .lpad-card{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft), var(--shadow-md)}.lpad-card--blank{background:var(--accent-soft);border-style:dashed;border-color:color-mix(in srgb, var(--accent) 45%, transparent);color:var(--accent);place-content:center;display:grid}.lpad-badge{z-index:1;border-radius:var(--r-pill);background:var(--accent);color:#fff;padding:3px 8px;font-size:11px;font-weight:700;position:absolute;top:8px;left:8px}.lpad-title{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.lpad-note{color:var(--muted);margin:14px 0 0;font-size:13px}@media (prefers-reduced-motion:reduce){.lpad{animation:none}.lpad-card{transition:none}}.llp-panel{z-index:40;background:var(--paper);border-left:1px solid var(--line);width:420px;max-width:100vw;box-shadow:var(--shadow-pop);visibility:hidden;transition:transform .28s var(--ease), visibility 0s linear .28s;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0;transform:translate(calc(100% + 24px))}.llp-panel.is-open{visibility:visible;transition:transform .28s var(--ease);transform:translate(0)}.llp-resize{cursor:ew-resize;touch-action:none;z-index:1;width:12px;position:absolute;top:0;bottom:0;left:-4px}.llp-resize:after{content:"";width:2px;transition:background .15s var(--ease);background:0 0;position:absolute;top:0;bottom:0;left:4px}.llp-resize:hover:after,.llp-resize:active:after{background:var(--accent)}.llp-panel:not(.is-open) .llp-resize{pointer-events:none}.llp-tabs{height:var(--bar-h);border-bottom:1px solid var(--line);background:var(--surface);flex:none;align-items:center;gap:8px;padding:0 12px 0 16px;display:flex}.llp-tabs .segmented-tabs{flex:1;min-width:0}.llp-tabs .segmented-tabs button{min-height:32px;padding:6px 10px;font-size:12.5px}.llp-close{border-radius:var(--r-sm);width:32px;height:32px;color:var(--muted);cursor:pointer;transition:.15s var(--ease);background:0 0;border:none;flex:none;place-content:center;margin-left:auto;display:grid}.llp-close:hover{color:var(--ink);background:var(--paper)}.llp-chat{background:var(--paper);flex-direction:column;flex:1;min-height:0;display:flex}.llp-chat>.msgr-thread,.llp-chat>:first-child{flex:1;min-height:0}.llp-chat .msgr-composer,.llp-chat>:last-child{flex:none}.llp-error{margin:0;padding:8px 14px}.llp-works{flex-direction:column;flex:1;gap:10px;min-height:0;padding:16px;display:flex;overflow-y:auto}.llp-note{color:var(--muted);font-size:13px;font-weight:600}.llp-empty{text-align:center;border:1.5px dashed var(--line);border-radius:var(--r-md);color:var(--muted);padding:36px 18px;font-size:13px;font-weight:600}.llp-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.llp-card{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);width:100%;transition:transform .16s var(--ease), box-shadow .16s var(--ease);align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.llp-card:hover:not(:disabled){box-shadow:var(--shadow-md);transform:translateY(-3px)}.llp-card:disabled{opacity:.6;cursor:default}.llp-card-ic{border-radius:var(--r-sm);background:var(--accent-soft);width:38px;height:38px;color:var(--accent);flex:none;place-content:center;display:grid}.llp-card-title{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:15px;font-weight:700;overflow:hidden}.llp-card-status{letter-spacing:.06em;text-transform:uppercase;border-radius:var(--r-pill);background:var(--paper);color:var(--muted);border:1px solid var(--line);flex:none;padding:4px 9px;font-size:10.5px;font-weight:800}.llp-card-status.is-reviewed{background:var(--success-soft);color:var(--success);border-color:#0000}.llp-card-status.is-submitted{background:var(--accent-soft);color:var(--accent);border-color:#0000}.llp-panel .wfb{flex:1;min-height:0;overflow-y:auto}.llp-blank-note{border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent);margin:0 0 12px;padding:8px 12px;font-size:12.5px;font-weight:600}.llp-hw-date{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);font-size:15px;font-weight:700}.llp-hw-topic{color:var(--muted);font-size:12.5px;font-weight:600}.llp-hw-sec{flex-direction:column;gap:8px;display:flex}.llp-hw-sec+.llp-hw-sec{border-top:1px solid var(--line);margin-top:8px;padding-top:16px}.llp-hw-sec h3{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);align-items:center;gap:8px;margin:0;font-size:13px;font-weight:700;display:flex}.llp-hw-count{font-family:var(--font-body);color:var(--muted);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-pill);padding:2px 8px;font-size:11px;font-weight:700}.llp-hw-checklist{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.llp-hw-checklist li{color:var(--ink);align-items:flex-start;gap:9px;font-size:13.5px;font-weight:600;display:flex}.llp-hw-checklist li.is-done{color:var(--muted);text-decoration:line-through}.llp-hw-box{border:1.5px solid var(--line);background:var(--surface);color:#fff;border-radius:50%;flex:none;place-content:center;width:18px;height:18px;margin-top:1px;display:grid}.llp-hw-checklist li.is-done .llp-hw-box{background:var(--success);border-color:#0000}.llp-hw-mats{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.llp-hw-mat{text-align:left;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);transition:border-color .15s var(--ease);align-items:center;gap:8px;padding:9px 12px;font-size:13px;font-weight:600;display:flex}.llp-hw-mat:hover{border-color:var(--ink)}.llp-hw-mat svg{color:var(--muted);flex:none}.llp-group{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);flex:none}.llp-group-head{text-align:left;cursor:pointer;width:100%;font-family:var(--font-body);border-radius:var(--r-md);background:0 0;border:0;align-items:center;gap:10px;padding:12px 14px;display:flex}.llp-group-head:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.llp-group-head>svg{color:var(--muted);transition:transform .15s var(--ease);flex:none}.llp-group.is-open .llp-group-head>svg{transform:rotate(90deg)}.llp-group-title{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.llp-group-title .llp-hw-topic{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.llp-group-head .llp-hw-count{flex:none}.llp-group-body{flex-direction:column;gap:12px;padding:2px 14px 14px;display:flex}.llp-standalone{flex:none;margin-top:6px}.llp-panel--sheet{width:auto;height:min(78dvh, calc(100dvh - var(--bar-h) - 24px));border-left:none;border-top:1px solid var(--line);border-radius:var(--r-lg) var(--r-lg) 0 0;padding-bottom:env(safe-area-inset-bottom);inset:auto 0 0;transform:translateY(calc(100% + 24px))}.llp-panel--sheet.is-open{transform:translateY(0)}.eb-root{text-align:center;background:var(--paper);flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100vh;padding:24px;display:flex}.eb-root h1{font-family:var(--font-display);letter-spacing:-.02em;margin:8px 0 0;font-size:26px;font-weight:700}.eb-root p{max-width:380px;color:var(--muted);margin:0;font-size:15px}.eb-btn{font-family:var(--font-body);color:#fff;background:var(--accent);border-radius:var(--r-pill);cursor:pointer;min-height:44px;box-shadow:var(--shadow-glow);border:0;margin-top:8px;padding:0 24px;font-size:15px;font-weight:700}.eb-btn:hover{background:var(--accent-press)}.eb-btn:active{transform:translateY(1px)scale(.99)}.conn-banner{bottom:calc(16px + env(safe-area-inset-bottom));z-index:300;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);width:max-content;max-width:calc(100vw - 32px);color:var(--ink);box-shadow:var(--shadow-pop);align-items:center;gap:12px;padding:10px 10px 10px 12px;animation:.28s cubic-bezier(.2,.8,.2,1) conn-banner-in;display:flex;position:fixed;left:50%;transform:translate(-50%)}@keyframes conn-banner-in{0%{opacity:0;transform:translate(-50%,8px)}}@media (prefers-reduced-motion:reduce){.conn-banner{animation:none}}.conn-banner-art{border-radius:var(--r-sm);flex:none;width:140px;height:auto}.conn-banner-text{min-width:0;color:var(--muted);flex-direction:column;gap:1px;font-size:13px;line-height:1.35;display:flex}.conn-banner-text b{color:var(--ink);font-size:14.5px;font-weight:700}.conn-banner-btn{border-radius:var(--r-pill);background:var(--accent);color:#fff;min-height:38px;font-family:var(--font-body);cursor:pointer;border:0;flex:none;padding:0 16px;font-size:14px;font-weight:700}.conn-banner-x{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;display:grid}.conn-banner-sub-short{display:none}@media (width<=520px){.conn-banner{gap:12px;width:auto;max-width:none;padding:12px;animation-name:conn-banner-in-mobile;left:12px;right:12px;transform:none}.conn-banner-art{width:84px}.conn-banner-text{flex:1;gap:0;font-size:13.5px;line-height:1.3}.conn-banner-text b{font-size:15.5px;line-height:1.25}.conn-banner-sub{display:none}.conn-banner-sub-short{display:block}.conn-banner-btn{min-height:42px;padding:0 18px;font-size:14.5px}.conn-banner-x{border:1px solid var(--line);background:var(--surface);width:28px;height:28px;box-shadow:var(--shadow-sm);position:absolute;top:-9px;right:-5px}.conn-banner-x svg{width:14px;height:14px}}@keyframes conn-banner-in-mobile{0%{opacity:0;transform:translateY(8px)}}.mv{z-index:400;background:color-mix(in srgb, var(--ink) 97%, transparent);color:#fff;flex-direction:column;animation:.18s ease-out mv-in;display:flex;position:fixed;inset:0}@keyframes mv-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.mv{animation:none}}.mv-bar{padding:max(10px, env(safe-area-inset-top)) 12px 10px 20px;flex:none;align-items:center;gap:8px;display:flex}.mv-title{flex:1;align-items:baseline;gap:12px;min-width:0;display:flex}.mv-name{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700;overflow:hidden}.mv-count{color:#fff9;font-variant-numeric:tabular-nums;flex:none;font-size:13px}.mv-btn,.mv-nav{color:#fff;cursor:pointer;background:#ffffff1a;border:0;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;transition:background .15s;display:grid}.mv-btn:hover,.mv-nav:hover{background:#fff3}.mv-btn:disabled{opacity:.4;cursor:default}.mv-btn svg,.mv-nav svg{width:20px;height:20px}.mv-stage{min-height:0;padding:8px 72px max(24px, env(safe-area-inset-bottom));flex:1;place-items:center;display:grid}.mv-image,.mv-video{object-fit:contain;border-radius:var(--r-sm);max-width:100%;max-height:100%}.mv-image{-webkit-user-select:none;user-select:none}.mv-frame{border-radius:var(--r-sm);background:#fff;border:0;width:min(960px,100%);height:100%}.mv-doc{border-radius:var(--r-sm);background:var(--paper);width:min(1040px,100%);height:100%;position:relative;overflow:hidden}.mv-doc-frame{border:0;width:100%;height:100%;display:block}.mv-doc-toast{z-index:2;border-radius:var(--r-pill);background:var(--ink);color:#fff;white-space:nowrap;margin:0;padding:10px 16px;font-size:13px;font-weight:700;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.mv-search{border-radius:var(--r-pill);background:#ffffff1a;flex:0 380px;align-items:center;gap:4px;min-width:0;height:44px;padding:0 4px 0 14px;display:flex}.mv-search-ico{color:#fff9;flex:none;width:16px;height:16px}.mv-search-input{color:#fff;min-width:0;height:100%;font:inherit;background:0 0;border:0;outline:none;flex:1;padding:0 6px;font-size:14px}.mv-search-input::placeholder{color:#ffffff80}.mv-search-count{color:#fff9;font-variant-numeric:tabular-nums;flex:none;font-size:12px}.mv-search-btn{color:#fff;cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;display:grid}.mv-search-btn:disabled{opacity:.35;cursor:default}.mv-search-btn svg{width:18px;height:18px}.mv-doc-error{background:var(--paper);color:var(--muted);text-align:center;place-items:center;margin:0;padding:16px;display:grid;position:absolute;inset:0}.mv-card{border-radius:var(--r-md);background:var(--surface);width:min(380px,100%);color:var(--ink);text-align:center;flex-direction:column;align-items:center;gap:12px;padding:32px 24px;display:flex}.mv-card-ico{width:40px;height:40px;color:var(--accent)}.mv-ext{border-radius:var(--r-sm);background:var(--accent-soft);min-width:64px;height:64px;color:var(--accent);place-items:center;padding:0 10px;font-size:15px;font-weight:800;display:grid}.mv-card-name{overflow-wrap:anywhere;max-width:100%;margin:0;font-size:15px;font-weight:700}.mv-card-sub{color:var(--muted);margin:0;font-size:13px}.mv-card-btn{border-radius:var(--r-pill);background:var(--accent);color:#fff;min-height:44px;font:inherit;cursor:pointer;border:0;align-items:center;gap:8px;margin-top:4px;padding:0 22px;font-size:15px;font-weight:700;display:inline-flex}.mv-audio{width:100%}.mv-note{color:#ffffffbf;margin:0}.mv-spinner{border:3px solid #ffffff40;border-top-color:#fff;border-radius:50%;width:36px;height:36px;animation:.8s linear infinite mv-spin}@keyframes mv-spin{to{transform:rotate(360deg)}}.mv-nav{position:absolute;top:50%;transform:translateY(-50%)}.mv-nav--prev{left:14px}.mv-nav--next{right:14px}@media (width<=720px){.mv-bar{padding-left:16px}.mv-bar:has(.mv-search) .mv-title{display:none}.mv-search{flex:1}.mv-stage{padding:4px 0 max(16px, env(safe-area-inset-bottom))}.mv-frame,.mv-doc,.mv-card{width:calc(100% - 32px);margin:0 16px}.mv-nav{background:#00000059;width:38px;height:38px}.mv-nav--prev{left:8px}.mv-nav--next{right:8px}}
