:root{--radius-full: 9999px}.webgl-aurora{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none}.login-page-enhanced{display:grid;grid-template-columns:minmax(340px,42%) minmax(500px,58%);min-height:100vh;background:var(--kraft);position:relative;overflow:hidden}.login-hero{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--space-2xl);background:var(--accent-soft);z-index:1}.login-hero .brand-mark{font-family:var(--font-serif);font-size:80px;font-weight:700;color:var(--ink);opacity:.06;position:absolute;top:var(--space-2xl);left:var(--space-2xl);line-height:1;-webkit-user-select:none;user-select:none}.login-hero h1{font-family:var(--font-serif);font-size:56px;font-weight:700;color:var(--ink);text-align:center;line-height:1.3;letter-spacing:-.01em;margin-bottom:var(--space-md);animation:fadeInUp .8s ease-out}.login-hero h1:after{content:"";display:block;width:60px;height:2px;background:linear-gradient(90deg,var(--gold),var(--gold-light));margin:var(--space-md) auto 0;border-radius:2px;animation:expandLine 1s ease-out .3s both}.login-hero p{font-family:var(--font-sans);font-size:18px;color:var(--accent);text-align:center;max-width:400px;line-height:1.8;animation:fadeInUp .8s ease-out .2s both}.login-hero .copyright{position:absolute;bottom:var(--space-lg);font-family:var(--font-label);font-size:13px;color:var(--accent)}.login-card-enhanced{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;padding:clamp(32px,6vw,80px);background:#fffffff5;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-left:1px solid rgba(196,184,168,.3);animation:slideInRight .6s ease-out}.login-card-enhanced .card-header{margin-bottom:var(--space-xl);animation:fadeInUp .6s ease-out .1s both}.login-card-enhanced .card-header h2{font-family:var(--font-serif);font-size:28px;font-weight:600;color:var(--ink);margin-bottom:var(--space-xs)}.login-card-enhanced .card-header p{font-family:var(--font-sans);font-size:15px;color:var(--brown-light)}.form-group-enhanced{margin-bottom:var(--space-md);animation:fadeInUp .5s ease-out calc(.1s * var(--i, 0)) both}.form-group-enhanced label{display:block;font-family:var(--font-label);font-size:13px;font-weight:500;color:var(--brown);margin-bottom:var(--space-xs);letter-spacing:.02em}.form-input-enhanced{width:100%;padding:14px 16px;font-family:var(--font-sans);font-size:16px;color:var(--ink);background:var(--cream);border:1.5px solid var(--outline-variant);border-radius:var(--radius-md);outline:none;transition:all .25s cubic-bezier(.4,0,.2,1)}.form-input-enhanced::placeholder{color:var(--brown-light)}.form-input-enhanced:focus{border-color:var(--gold);background:var(--surface);box-shadow:0 0 0 3px var(--gold-glow)}.btn-primary-enhanced{position:relative;width:100%;padding:14px 24px;font-family:var(--font-sans);font-size:16px;font-weight:600;color:var(--surface);background:var(--gold);border:none;border-radius:var(--radius-md);cursor:pointer;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-primary-enhanced:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:radial-gradient(circle,rgba(255,255,255,.3) 0%,transparent 70%);border-radius:50%;transform:translate(-50%,-50%);transition:width .6s ease,height .6s ease}.btn-primary-enhanced:hover{background:var(--gold);transform:translateY(-1px);box-shadow:0 6px 20px #8b69144d}.btn-primary-enhanced:hover:before{width:300px;height:300px}.btn-primary-enhanced:active{transform:translateY(0);box-shadow:0 2px 8px #8b691433}.btn-primary-enhanced:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.link-enhanced{font-family:var(--font-label);font-size:14px;color:var(--gold);text-decoration:none;transition:color .2s}.link-enhanced:hover{color:var(--ink)}.divider-enhanced{display:flex;align-items:center;gap:var(--space-md);margin:var(--space-lg) 0;font-family:var(--font-label);font-size:13px;color:var(--brown-light)}.divider-enhanced:before,.divider-enhanced:after{content:"";flex:1;height:1px;background:var(--outline-variant)}.error-msg-enhanced{font-family:var(--font-label);font-size:13px;color:var(--brown);background:var(--gold-soft);padding:10px 14px;border-radius:var(--radius-sm);border-left:3px solid var(--gold-light);animation:shake .4s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes expandLine{0%{width:0;opacity:0}to{width:60px;opacity:1}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@media(max-width:768px){.login-page-enhanced{grid-template-columns:1fr}.login-hero{display:none}.login-card-enhanced{border-left:none;min-height:100vh}}.card-hover-lift{transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1)}.card-hover-lift:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.skeleton-enhanced{background:linear-gradient(90deg,var(--surface-dim) 25%,var(--parchment) 50%,var(--surface-dim) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-md)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}:root{background:var(--paper)}.studio-sidebar{background:var(--accent-soft);border-right:1px solid var(--line)}.studio-nav a.active,.studio-nav a:hover{color:var(--accent);background:#fffc}.studio-topbar{background:#f9fcfbf0;border-bottom-color:var(--line)}.primary-button{background:var(--accent);color:var(--surface)}.primary-button:hover{background:var(--accent-strong);box-shadow:0 4px 16px #17675b33}.course-card,.summary-card,.lesson-action-card,.homework-library-card,.vocabulary-row,.lesson-vocabulary-row,.word-chip,.empty-card{background:var(--surface);border-color:var(--line);box-shadow:0 2px 12px #5c40330f}.course-card:hover{border-color:var(--gold-mark)}.studio-search input,.search-field input{background:var(--surface);border-color:var(--line)}.studio-search input:focus,.search-field input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #8b69141f}.query-error-card{background:var(--gold-soft);border-color:var(--line)}.eyebrow,.course-card span,.section-title-row a,.export-download,.text-button{color:var(--gold)}.form-error,.story-audio-error{color:var(--danger)}.save-confirm{color:var(--gold)}.status-pill.status-draft{background:var(--paper);color:var(--muted)}.status-pill.status-published{background:var(--accent-soft);color:var(--accent)}.status-pill.status-archived{background:var(--surface-sunk);color:#546e7a}.dialogue-card,.story-card{background:var(--surface);border-color:var(--line)}.dialogue-speed-toolbar{background:var(--paper);border-color:var(--line)}.speed-button{border-color:var(--line);color:var(--muted)}.speed-button[aria-pressed=true],.speed-button.active{background:var(--gold);color:var(--surface);border-color:var(--gold)}.authoring-settings,.generated-document,.homework-preview,.settings-card,.feedback-card,.feedback-form,.faq-card{background:var(--surface);border-color:var(--line)}.admin-metric-grid .summary-card{background:var(--surface)}.audit-row{border-color:var(--line)}.workspace-card,.note-card,.saved-word-card,.word-image-dialog{background:var(--surface);border-color:var(--line)}.word-image-dialog::backdrop{background:#2c181080}.custom-scrollbar::-webkit-scrollbar-thumb{background-color:var(--line-strong)}*{transition-property:border-color,background-color,box-shadow,color;transition-duration:.15s;transition-timing-function:ease}.login-card-enhanced .card-header h1{font-family:var(--font-serif);font-size:28px;font-weight:600;color:var(--ink);margin:0 0 var(--space-xs)}.page-stack{display:grid;gap:28px}.page-heading h1{margin:4px 0 10px;font-size:clamp(32px,5vw,54px);letter-spacing:-.04em}.page-heading p{color:var(--muted);line-height:1.7}.eyebrow{color:var(--accent);font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.hero-card{display:flex;align-items:end;justify-content:space-between;gap:24px;padding:32px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-soft)}.hero-card h2{margin:8px 0;font-size:25px}.hero-card p{max-width:620px;color:var(--muted);line-height:1.7}.primary-button{display:inline-flex;justify-content:center;padding:13px 18px;border-radius:10px;background:var(--accent-strong);color:var(--surface);text-decoration:none;white-space:nowrap}.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.course-card{display:grid;gap:10px;padding:24px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);text-decoration:none;box-shadow:var(--shadow-soft)}.course-card span{color:var(--accent);font-weight:700}.course-card small{color:var(--muted)}.search-field{max-width:620px;display:grid;gap:9px;font-weight:700}.vocabulary-search-row{display:flex;align-items:end;gap:14px;flex-wrap:wrap}.vocabulary-story-link{width:fit-content;margin-top:8px}.level-field{display:grid;gap:9px;font-weight:700}.level-field select{min-width:150px;border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--surface);color:var(--ink)}.empty-card{display:grid;gap:8px;padding:28px;border:1px dashed var(--line);border-radius:var(--radius-md);background:#fff9}.empty-card span,.vocabulary-row small,.vocabulary-row p{color:var(--muted)}.query-error-card{display:grid;gap:8px;padding:20px;border:1px solid var(--danger-soft);border-radius:var(--radius-md);background:var(--danger-soft)}.query-error-card span{color:var(--muted);line-height:1.6}.query-error-card .text-button{justify-self:start}.vocabulary-results{display:grid;gap:10px}.vocabulary-row{display:grid;grid-template-columns:180px 1fr auto;gap:20px;align-items:center;padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-soft)}.vocabulary-row>div:first-child{display:grid;gap:4px}.vocabulary-row>div:first-child strong{font-size:25px}.vocabulary-row>div:first-child span{color:var(--muted)}.vocabulary-row p{margin:6px 0 0}.vocabulary-actions,.word-media-actions{display:flex;gap:8px}.vocabulary-actions button,.word-media-actions button{min-height:44px;border:1px solid var(--line);border-radius:9px;padding:9px 11px;background:var(--surface);color:var(--accent-strong);cursor:pointer;white-space:nowrap}.word-media-actions button:disabled{opacity:.45;cursor:not-allowed}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loading-page,.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--paper)}.error-page{min-height:100vh;display:grid;place-content:center;gap:12px;padding:24px;background:var(--paper);color:var(--ink)}.error-page p{color:var(--muted)}.error-page button{width:fit-content;padding:11px 16px;border:0;border-radius:10px;background:var(--accent-strong);color:var(--surface);cursor:pointer}.login-card{width:min(100%,460px);padding:40px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-soft)}.login-card h1{margin:6px 0 12px;font-size:34px;letter-spacing:-.04em}.login-intro{color:var(--muted);line-height:1.7}.login-form{display:grid;gap:18px;margin-top:28px}.login-form label{display:grid;gap:8px;font-weight:700}.login-form input{border:1px solid var(--line);border-radius:10px;padding:13px 14px;outline:none}.login-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #006b581f}.auth-secondary-link{display:inline-block;margin-top:18px;color:var(--accent)}.auth-links{display:flex;justify-content:center;gap:18px;flex-wrap:wrap}.form-error{color:var(--danger)}.lesson-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.summary-card{display:grid;gap:8px;padding:22px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-soft)}.summary-card strong{font-size:34px;letter-spacing:-.04em}.summary-card small{color:var(--muted)}.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-title-row h2{margin:0}.section-title-row a{color:var(--accent)}.word-chip-list{display:flex;flex-wrap:wrap;gap:10px}.word-chip{display:inline-flex;align-items:baseline;gap:7px;padding:10px 13px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}.word-chip small{color:var(--muted)}.lesson-vocabulary-list{display:grid;gap:10px;margin-top:18px}.lesson-vocabulary-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.lesson-vocabulary-row>div:first-child{display:grid;gap:3px}.lesson-vocabulary-row strong{font-size:22px}.lesson-vocabulary-row span,.lesson-vocabulary-row small{color:var(--muted)}.word-image-dialog{position:fixed;inset:0;z-index:20;width:min(92vw,760px);max-height:90vh;margin:auto;padding:0;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:0 24px 90px #0003}.word-image-dialog::backdrop{background:#0f241d8c}.word-image-dialog-inner{display:grid;gap:16px;padding:20px}.word-image-dialog-inner h2{margin:0}.word-image-dialog-inner>img{width:100%;max-height:70vh;object-fit:contain;border-radius:12px;background:var(--surface-soft)}.word-image-gallery{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.word-image-gallery button{flex:0 0 64px;padding:2px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);cursor:pointer}.word-image-gallery button.active{border-color:var(--ink);box-shadow:0 0 0 2px color-mix(in srgb,var(--ink) 18%,transparent)}.word-image-gallery img{display:block;width:60px;height:60px;object-fit:cover;border-radius:6px}.image-generation-form{max-width:680px}.image-generation-form label{display:grid;gap:8px;font-weight:700}.image-generation-form textarea{min-height:150px;resize:vertical;border:1px solid var(--line);border-radius:10px;padding:12px;font:inherit;line-height:1.6}.lesson-actions-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.lesson-action-card{--action-color: var(--accent);--action-soft: var(--accent-soft);position:relative;display:grid;gap:8px;align-content:start;min-height:110px;padding:18px 42px 18px 18px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);text-align:left;text-decoration:none;cursor:pointer;transition:transform .18s cubic-bezier(.22,1,.36,1),border-color .18s ease,background .18s ease}.lesson-action-card:hover:not(:disabled){transform:translateY(-3px);border-color:var(--action-color);background:var(--surface)}.lesson-action-card span{color:var(--muted);font-size:13px;line-height:1.5}.lesson-action-card strong{font-size:15px;font-weight:600}.lesson-action-card:disabled{opacity:.62;cursor:not-allowed}.lesson-action-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;color:var(--action-color);background:var(--action-soft)}.lesson-action-arrow{position:absolute;right:14px;bottom:15px;display:grid;place-items:center;color:var(--action-color)!important;transition:transform .18s cubic-bezier(.22,1,.36,1)}.lesson-action-card:hover .lesson-action-arrow{transform:translate(3px)}.lesson-action-card--story{--action-color: var(--gold);--action-soft: var(--surface-sunk)}.lesson-action-card--example{--action-color: #3c668b;--action-soft: #e8f0f7}.lesson-action-card--homework{--action-color: var(--danger);--action-soft: var(--danger-soft)}.lesson-action-card--ppt{--action-color: #675079;--action-soft: #efeaf4}.export-action{display:grid;gap:8px}.export-button{width:100%;border:1px solid var(--line);font:inherit}.export-download{color:var(--accent-strong);font-weight:700}.homework-library-list{display:grid;gap:12px}.homework-library-card{display:grid;grid-template-columns:1fr auto auto;gap:18px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-soft)}.homework-library-card h2,.homework-library-card p{margin:4px 0 0}.homework-library-card p,.homework-library-meta small{color:var(--muted)}.homework-library-meta{display:grid;gap:6px;justify-items:end}.homework-library-actions{display:flex;gap:8px;align-items:center}.homework-library-actions button,.homework-library-actions a{border:1px solid var(--line);border-radius:8px;padding:8px 12px;background:var(--surface);color:var(--ink);text-decoration:none;cursor:pointer}.status-pill{border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.status-draft{background:var(--gold-soft);color:var(--gold)}.status-published{background:var(--accent-soft);color:var(--ink)}.status-archived{background:var(--surface-sunk);color:var(--muted)}.dialogue-card{display:grid;grid-template-columns:minmax(240px,38%) 1fr;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-soft)}.dialogue-card>img{width:100%;height:100%;min-height:260px;object-fit:contain;background:var(--surface-dim)}.dialogue-body{padding:24px}.dialogue-body h2{margin:0;font-size:20px}.dialogue-body .section-title-row>span{color:var(--muted);font-size:13px}.dialogue-line{display:grid;grid-template-columns:58px 1fr;gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}.dialogue-line:last-child{border-bottom:0}.dialogue-speaker{color:var(--accent);font-weight:700}.dialogue-copy p{margin:0 0 8px}.dialogue-pinyin{color:var(--muted);font-size:14px}.dialogue-text,.dialogue-ruby{font-size:22px;line-height:1.8}.dialogue-ruby ruby{margin-right:2px}.dialogue-ruby rt{color:var(--muted);font-size:13px;line-height:1.15}.dialogue-copy audio{width:min(100%,360px);height:32px}.dialogue-speed-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dialogue-speed-toolbar>span{color:var(--muted);font-size:13px;font-weight:700}.speed-button,.dialogue-play-button{min-height:44px;border:1px solid var(--line);border-radius:9px;padding:8px 12px;background:var(--surface);color:var(--accent-strong);cursor:pointer}.speed-button{min-width:44px}.speed-button[aria-pressed=true]{border-color:var(--accent);background:var(--surface-soft);color:var(--accent-strong);font-weight:700}.dialogue-vocab-note{margin:10px 0 0;color:var(--muted);font-size:13px}.dialogue-vocab-highlight{color:var(--gold);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:5px}.saved-word-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.saved-word-card,.settings-card,.feedback-card{display:grid;gap:10px;padding:22px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-soft)}.saved-word-card>div{display:flex;align-items:baseline;gap:10px}.saved-word-card strong{font-size:28px}.saved-word-card span,.saved-word-card p,.saved-word-card small,.feedback-card span{color:var(--muted)}.saved-word-card p{margin:0}.settings-card{max-width:620px}.settings-card label:not(.toggle-row){display:grid;gap:8px;font-weight:700}.settings-card input[type=text],.settings-card input:not([type]){border:1px solid var(--line);border-radius:10px;padding:13px 14px}.toggle-row{display:flex;gap:10px;align-items:center;color:var(--muted)}.settings-submit{border:0;cursor:pointer;width:fit-content}.account-danger-zone{max-width:620px;border-color:var(--danger-soft)}.account-danger-zone h2{margin:0;font-size:20px}.account-danger-zone p{margin:0;color:var(--muted);line-height:1.6}.danger-button{width:fit-content;border:1px solid var(--danger);border-radius:10px;padding:11px 14px;background:var(--danger-soft);color:var(--danger);cursor:pointer}.danger-button:disabled{opacity:.6;cursor:not-allowed}.save-confirm{margin:0;color:var(--accent)}.faq-list{display:grid;gap:10px}.faq-card{padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.faq-card summary{cursor:pointer;font-weight:700}.faq-card p{margin:12px 0 0;color:var(--muted);line-height:1.7}.feedback-card{max-width:620px;background:var(--surface-soft);box-shadow:none}.feedback-form label{display:grid;gap:8px;font-weight:700}.feedback-form textarea{min-height:110px;resize:vertical;border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--surface)}.feedback-form .primary-button{width:fit-content;border:0;cursor:pointer}.workspace-create{display:flex;gap:10px;max-width:620px}.workspace-create input{min-width:0;flex:1;border:1px solid var(--line);border-radius:10px;padding:12px 14px}.workspace-create .primary-button{border:0;cursor:pointer}.workspace-list{display:grid;gap:10px;max-width:760px}.workspace-list h2{margin:0}.workspace-card{display:flex;justify-content:space-between;gap:12px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.workspace-card span{color:var(--muted)}.note-card{padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-muted, var(--surface))}.note-card small{color:var(--muted)}.note-card p{margin:6px 0 0;white-space:pre-wrap}.admin-metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.admin-audit{display:grid;gap:10px;max-width:900px}.admin-audit h2{margin:0 0 4px}.audit-row{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:12px;padding:13px 16px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.audit-row span,.audit-row small{color:var(--muted)}.generation-review-row>div:first-child{display:grid;gap:4px}.authoring-layout{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:20px;align-items:start}.homework-layout{display:grid;grid-template-columns:minmax(340px,420px) minmax(0,1fr);gap:20px;align-items:start}.authoring-settings,.homework-settings,.homework-preview,.generated-document{display:grid;gap:16px;padding:22px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-soft)}.authoring-settings label,.homework-settings>label{display:grid;gap:8px;font-weight:700}.authoring-settings input:not([type=checkbox]),.authoring-settings select,.authoring-settings textarea,.homework-settings input:not([type=checkbox]){box-sizing:border-box;width:100%;min-width:0;border:1px solid var(--line);border-radius:10px;padding:11px 12px;background:var(--surface)}.authoring-settings textarea{min-height:90px;resize:vertical}.authoring-settings fieldset,.homework-settings fieldset{display:grid;gap:10px;border:0;padding:0;margin:0}.authoring-settings legend,.homework-settings legend{font-weight:700;margin-bottom:2px}.ppt-section-source{color:var(--accent);font:600 11px/1.35 var(--font-sans);font-style:normal}.authoring-word-list{display:grid;grid-template-columns:1fr;gap:6px;max-height:260px;overflow:auto}.authoring-word-list label{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:40px;padding:7px 9px;border-radius:8px;white-space:normal;cursor:pointer}.authoring-word-list input[type=checkbox],.task-choice input[type=checkbox]{width:18px!important;height:18px;margin:0;padding:0;accent-color:var(--accent)}.task-choice{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;min-height:44px;padding:10px;border-radius:8px;white-space:normal;cursor:pointer}.authoring-word-list label:hover,.task-choice:hover{background:var(--surface-soft)}.authoring-word-list span{min-width:0;overflow-wrap:anywhere}.authoring-word-list small{color:var(--muted)}.selected-word-summary{padding:10px 12px;border-radius:10px;background:var(--surface-soft);color:var(--muted);font-size:13px;line-height:1.6}.text-button{width:fit-content;padding:0;border:0;background:transparent;color:var(--accent);cursor:pointer}.generated-document{min-height:300px}.generated-document-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.generated-document-header h2{margin:0}.deck-editor-page{--deck-ink: var(--ink);--deck-muted: var(--muted)}.deck-editor-loading{min-height:620px}.deck-loading-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.deck-loading-title,.deck-loading-actions,.deck-loading-rail,.deck-loading-canvas,.deck-loading-panel{border-radius:10px;background:linear-gradient(100deg,var(--surface-sunk) 20%,var(--surface) 38%,var(--surface-sunk) 55%);background-size:220% 100%;animation:deck-loading-shimmer 1.35s ease-in-out infinite}.deck-loading-title{width:min(54%,520px);height:72px}.deck-loading-actions{width:250px;height:56px}.deck-loading-grid{display:grid;grid-template-columns:180px minmax(0,1fr) 260px;gap:14px;min-height:500px}.deck-loading-rail,.deck-loading-canvas,.deck-loading-panel{min-height:500px}.deck-loading-status{margin:0;color:var(--deck-muted);font-size:13px}@keyframes deck-loading-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.deck-editor-heading{display:flex;align-items:end;justify-content:space-between;gap:20px}.deck-editor-heading h1{margin-bottom:6px}.deck-editor-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.deck-history-actions{display:inline-flex;gap:5px}.deck-editor-actions .export-action{display:contents}.deck-export-note{color:var(--deck-muted);font-size:11px}.deck-export-group{display:grid;gap:4px;min-width:190px}.deck-export-group h2{margin:0;color:var(--deck-ink);font-size:12px;font-weight:700}.deck-save-state{margin-left:auto;color:var(--deck-muted);font-size:12px}.deck-conflict-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--gold-mark);border-radius:10px;background:var(--surface);color:var(--muted);font-size:13px}.deck-preflight{display:grid;gap:8px;padding:10px 13px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink-2);font-size:13px}.deck-preflight.has-errors{border-color:var(--danger-soft);background:var(--gold-soft);color:var(--danger)}.deck-preflight summary{cursor:pointer;font-weight:700}.deck-preflight ul{display:grid;gap:4px;margin:0;padding-left:18px}.deck-preflight button{border:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.deck-builder-overview{display:grid;gap:28px;padding:28px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--deck-ink)}.deck-builder-overview-heading{display:flex;align-items:end;justify-content:space-between;gap:24px}.deck-builder-overview-heading>div:first-child{max-width:680px}.deck-builder-overview-heading>div:first-child>span{color:var(--accent);font-size:12px;font-weight:700}.deck-builder-overview-heading h2{margin:5px 0 8px;color:var(--deck-ink);font:650 clamp(24px,3vw,34px)/1.18 var(--font-serif);letter-spacing:-.025em;text-wrap:balance}.deck-builder-overview-heading p,.deck-enrichment-heading p,.deck-enrichment-group p{margin:0;color:var(--ink-2);font-size:14px;line-height:1.65;text-wrap:pretty}.deck-builder-summary{display:grid;justify-items:end;gap:2px;min-width:120px;padding:12px 0 12px 18px;border-left:1px solid var(--line)}.deck-builder-summary strong{color:var(--accent);font:700 30px/1 var(--font-label);letter-spacing:-.04em}.deck-builder-summary span{color:var(--deck-muted);font-size:12px}.deck-teaching-path{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0;padding:0;list-style:none;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}.deck-path-stage{position:relative;display:grid;align-content:start;gap:7px;min-height:150px;padding:18px;background:var(--surface)}.deck-path-stage+.deck-path-stage{border-left:1px solid var(--line)}.deck-path-stage:before{width:30px;height:4px;border-radius:2px;background:var(--accent);content:""}.deck-path-stage--notice:before{background:var(--gold)}.deck-path-stage--practice:before{background:#6e6793}.deck-path-stage--review:before{background:var(--muted)}.deck-path-stage>span{margin-top:2px;color:var(--ink-2);font-size:11px;font-weight:700}.deck-path-stage strong{color:var(--deck-ink);font-size:16px}.deck-path-stage small{color:var(--muted);font-size:12px;line-height:1.55}.deck-enrichment{display:grid;gap:0;border-top:1px solid var(--line)}.deck-enrichment-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;padding:20px 0 16px}.deck-enrichment-heading h2{margin:0 0 5px;color:var(--deck-ink);font-size:18px}.deck-enrichment-heading>span{color:var(--muted);font-size:12px;white-space:nowrap}.deck-enrichment-group{display:grid;grid-template-columns:minmax(150px,.75fr) minmax(0,2fr);gap:24px;padding:18px 0;border-top:1px solid var(--accent-soft)}.deck-enrichment-group h3{margin:0 0 5px;color:var(--accent);font-size:15px}.deck-enrichment-group p{font-size:12px}.deck-enrichment-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.deck-enrichment-option{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"control copy" "control source";align-content:start;column-gap:9px;row-gap:4px;min-height:82px;padding:10px;border:1px solid var(--accent-soft);border-radius:10px;background:var(--surface);cursor:pointer;transition:background-color .16s ease,border-color .16s ease}.deck-enrichment-option:hover{border-color:var(--muted);background:var(--surface)}.deck-enrichment-option.is-enabled{border-color:var(--muted);background:var(--accent-soft)}.deck-enrichment-option input{grid-area:control;width:17px;height:17px;margin:1px 0 0;accent-color:var(--accent)}.deck-enrichment-option>span{display:grid;grid-area:copy;gap:2px;min-width:0}.deck-enrichment-option strong{color:var(--accent);font-size:13px}.deck-enrichment-option small{color:var(--muted);font-size:11px;line-height:1.4}.deck-enrichment-option em{grid-area:source;overflow:hidden;color:var(--accent);font-size:10px;font-style:normal;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.deck-builder-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:2px}.deck-builder-footer>div{display:grid;gap:3px}.deck-builder-footer strong{color:var(--accent);font-size:13px}.deck-builder-footer span{color:var(--muted);font-size:12px;line-height:1.45}.deck-editor-layout{display:grid;grid-template-columns:180px minmax(0,1fr) 260px;gap:14px;min-height:640px}.deck-page-rail,.deck-properties,.deck-canvas-panel{border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 12px 28px #1b443812}.deck-page-rail,.deck-properties{padding:12px}.deck-rail-header,.deck-canvas-toolbar,.deck-properties-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.deck-rail-header{padding:4px 3px 10px;color:var(--deck-ink)}.deck-slide-list{display:grid;gap:8px;max-height:590px;overflow:auto;padding-right:2px}.deck-slide-thumbnail{display:grid;gap:4px;width:100%;padding:10px;border:1px solid var(--surface-sunk);border-radius:11px;background:var(--surface);color:var(--deck-ink);text-align:left;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.deck-slide-thumbnail:hover{transform:translateY(-1px);border-color:var(--muted)}.deck-slide-thumbnail.is-active{border-color:var(--accent);box-shadow:0 0 0 2px #23746124;background:var(--surface)}.deck-slide-thumbnail>span{color:var(--deck-muted);font-size:11px}.deck-slide-thumbnail strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.deck-slide-thumbnail small{color:var(--deck-muted);font-size:10px}.deck-canvas-panel{min-width:0;padding:14px;background:var(--surface)}.deck-canvas-toolbar{min-height:38px;margin-bottom:10px}.deck-canvas-toolbar>div:first-child{display:grid;gap:2px}.deck-canvas-toolbar>div:first-child{min-width:0}.deck-canvas-toolbar strong{color:var(--deck-ink);font-size:14px}.deck-canvas-toolbar span{color:var(--deck-muted);font-size:11px}.deck-slide-hidden-note{color:var(--gold);font-size:10px}.deck-toolbar-actions{display:flex;gap:5px}.deck-canvas{position:relative;display:flex;flex-direction:column;aspect-ratio:16 / 9;min-height:390px;overflow:hidden;padding:clamp(16px,3vw,32px);border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 16px 36px #14352b1c}.deck-canvas.is-hidden{border-style:dashed;opacity:.72}.deck-layout-cover{background:linear-gradient(135deg,var(--accent-soft) 0%,var(--surface) 70%)}.deck-canvas-header,.deck-canvas-footer{display:flex;justify-content:space-between;color:var(--deck-muted);font-size:10px}.deck-canvas-content{display:grid;align-content:center;gap:14px;min-height:0;flex:1;overflow:auto;padding:8px 0}.deck-canvas-block{min-width:0}.deck-preview-heading{margin:0;color:var(--deck-ink);font-family:var(--font-serif);font-size:clamp(24px,3.8vw,44px);line-height:1.12}.deck-preview-text{margin:0;color:var(--ink-2);font-size:clamp(13px,1.4vw,18px);line-height:1.6}.deck-preview-vocab-grid,.deck-preview-image-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.deck-preview-vocab{display:grid;gap:3px;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.deck-preview-vocab strong,.deck-preview-word-ruby,.deck-preview-example-ruby{color:var(--deck-ink);font-size:18px}.deck-preview-word-ruby .pinyin-reading,.deck-preview-example-ruby .pinyin-reading{color:var(--deck-muted);font-size:.58em}.deck-preview-vocab small,.deck-preview-vocab span,.deck-preview-examples small,.deck-preview-examples span{color:var(--deck-muted);font-size:10px}.deck-preview-image-grid figure{display:grid;gap:4px;margin:0;min-width:0;padding:6px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.deck-preview-image-grid img{width:100%;aspect-ratio:1;object-fit:contain;border-radius:6px;background:var(--surface)}.deck-preview-image-grid figcaption{overflow:hidden;color:var(--deck-muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.deck-preview-dialogue,.deck-preview-grammar,.deck-preview-story{padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink-2)}.deck-preview-dialogue{display:grid;gap:7px}.deck-preview-dialogue h3{margin:0 0 2px;color:var(--accent);font-size:16px}.deck-preview-dialogue p{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px;margin:0;font-size:13px;line-height:1.45}.deck-preview-dialogue b{color:var(--accent)}.deck-preview-grammar strong{display:block;margin-bottom:6px;color:var(--accent);font-size:20px}.deck-preview-grammar p,.deck-preview-story p{margin:0;line-height:1.55}.deck-preview-grammar-lead{color:var(--muted);font-size:11px}.deck-preview-examples{display:grid;gap:8px}.deck-preview-examples>div{display:grid;gap:3px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.deck-preview-examples strong{color:var(--deck-ink);font-size:16px}.deck-preview-story h3{margin:0 0 6px;color:var(--deck-ink);font-size:18px}.deck-properties{display:grid;align-content:start;gap:14px}.deck-properties-header{align-items:start;flex-direction:column}.deck-properties-header strong{color:var(--deck-ink)}.deck-properties-header small{color:var(--deck-muted);font-size:11px}.deck-properties label{display:grid;gap:6px;color:var(--ink-2);font-size:12px}.deck-properties input,.deck-properties select{width:100%;min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--deck-ink)}.deck-switch{display:flex!important;grid-template-columns:auto 1fr;align-items:center;gap:7px!important}.deck-switch input{width:auto}.deck-block-editor,.deck-material-library{display:grid;gap:8px;padding-top:10px;border-top:1px solid var(--surface-sunk)}.deck-block-editor-title,.deck-block-row-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.deck-add-block-controls{display:flex;align-items:center;gap:6px}.deck-add-block-controls select{min-width:112px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--deck-ink);padding:6px 7px;font:inherit}.deck-section-picker{display:grid;gap:7px;margin:0;padding:11px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.deck-section-picker legend{padding:0 4px;color:var(--deck-ink);font-size:13px;font-weight:700}.deck-section-picker>small{color:var(--muted);line-height:1.45}.deck-section-picker label{display:inline-flex;align-items:center;gap:7px;color:var(--ink-2);font-size:12px;cursor:pointer}.deck-section-picker label:has(input:disabled){color:var(--muted);cursor:not-allowed}.deck-block-editor>strong,.deck-material-library>strong{color:var(--deck-ink);font-size:12px}.deck-block-row{display:grid;gap:5px;padding:7px;border-radius:7px;background:var(--surface)}.deck-block-row>span{color:var(--ink-2);font-size:11px;font-weight:650}.deck-block-source{display:inline-block;margin-left:5px;color:var(--deck-muted);font-size:9px;font-weight:400}.deck-block-row-actions{display:inline-flex;gap:6px;align-items:center}.deck-block-row textarea{width:100%;resize:vertical;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--deck-ink);font:11px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}.deck-field,.deck-structured-editor{display:grid;gap:6px}.deck-field>span,.deck-field-label{color:var(--ink-2);font-size:11px;font-weight:650}.deck-field input,.deck-field textarea,.deck-inline-record input,.deck-dialogue-line-editor input,.deck-dialogue-line-editor textarea,.deck-example-editor input,.deck-example-editor textarea,.deck-homework-editor input,.deck-homework-editor textarea,.deck-image-editor input{box-sizing:border-box;width:100%;min-width:0;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--deck-ink);font:inherit;padding:7px 8px}.deck-field textarea,.deck-dialogue-line-editor textarea,.deck-example-editor textarea,.deck-homework-editor textarea{resize:vertical;line-height:1.45}.deck-field input:focus,.deck-field textarea:focus,.deck-inline-record input:focus,.deck-dialogue-line-editor input:focus,.deck-dialogue-line-editor textarea:focus,.deck-example-editor input:focus,.deck-example-editor textarea:focus,.deck-homework-editor input:focus,.deck-homework-editor textarea:focus,.deck-image-editor input:focus{outline:2px solid rgb(35 116 97 / 22%);border-color:var(--accent)}.deck-inline-record{display:grid;grid-template-columns:.85fr .95fr 1.2fr;gap:5px}.deck-dialogue-line-editor,.deck-example-editor,.deck-homework-editor,.deck-exercise-editor{display:grid;grid-template-columns:76px minmax(0,1fr) minmax(0,.9fr) auto;align-items:start;gap:5px;padding:6px;border:1px solid var(--surface-sunk);border-radius:7px;background:var(--surface)}.deck-example-editor,.deck-homework-editor{grid-template-columns:minmax(0,1fr) minmax(0,.9fr) auto}.deck-example-editor textarea,.deck-homework-editor textarea,.deck-exercise-editor textarea{grid-column:1 / -1}.deck-image-editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.75fr);gap:5px}.deck-structured-editor>.text-button{margin-top:2px}.deck-block-row>small{overflow:hidden;color:var(--deck-muted);font-size:10px;line-height:1.4;text-overflow:ellipsis}.deck-material-help{margin:0;color:var(--deck-muted);font-size:11px;line-height:1.45}.deck-material-list{display:grid;gap:6px}.deck-material-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 9px;border:1px solid var(--accent-soft);border-radius:8px;background:var(--surface)}.deck-material-item>span{display:grid;gap:2px;min-width:0;color:var(--deck-ink);font-size:11px;font-weight:650}.deck-material-item>span small{color:var(--deck-muted);font-size:10px;font-weight:400}.deck-material-item>div{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.deck-material-item button:disabled{color:var(--muted);cursor:not-allowed}.deck-material-library small{color:var(--deck-muted);font-size:11px;line-height:1.4}.deck-material-library>div{display:flex;flex-wrap:wrap;gap:5px}.deck-material-library button{padding:5px 7px;border:1px solid var(--line);border-radius:6px;background:var(--accent-soft);color:var(--accent);font-size:10px;cursor:pointer}.deck-material-library button:hover:not(:disabled){border-color:var(--muted);background:var(--accent-soft)}.deck-material-library button:disabled{cursor:not-allowed;opacity:.45}.deck-editor-page,.deck-editor-page *{min-width:0}.deck-editor-layout{width:100%;min-width:0}.deck-page-rail,.deck-canvas-panel,.deck-properties{min-width:0}.deck-canvas{width:100%;min-height:0;height:auto}.deck-canvas-panel{overflow:hidden}.deck-properties{max-height:calc(100vh - 250px);overflow:auto}.deck-inspector-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.deck-inspector-tabs button{min-width:0;padding:7px 5px;border:0;border-radius:6px;background:transparent;color:var(--muted);font:inherit;font-size:11px;cursor:pointer}.deck-inspector-tabs button:hover{color:var(--deck-ink);background:var(--accent-soft)}.deck-inspector-tabs button.is-active{background:var(--surface);color:var(--accent);box-shadow:0 1px 3px #164b3a1a;font-weight:700}.deck-inspector-section{display:grid;gap:12px}.deck-inspector-section-heading{display:grid;gap:3px}.deck-inspector-section-heading strong{color:var(--deck-ink);font-size:13px}.deck-inspector-section-heading small,.deck-block-editor-title small{color:var(--deck-muted);font-size:10px;line-height:1.4}.deck-section-picker label{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px}.deck-section-picker label small{color:var(--deck-muted);font-size:10px}.deck-page-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:2px}.deck-preview-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.deck-teaching-meta{display:grid;gap:9px;margin:0;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.deck-teaching-meta legend{padding:0 4px;color:var(--deck-ink);font-size:12px;font-weight:700}.deck-teaching-meta textarea{width:100%;box-sizing:border-box;resize:vertical;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--deck-ink);font:inherit;padding:7px 8px;line-height:1.45}.deck-teaching-meta textarea:focus{outline:2px solid rgb(35 116 97 / 22%);border-color:var(--accent)}.danger-text{color:var(--danger)}.danger-text:disabled{color:var(--muted);cursor:not-allowed}.danger-icon-button{color:var(--danger)}.deck-material-heading{display:grid;gap:3px}.deck-material-heading>strong{color:var(--deck-ink);font-size:12px}.deck-material-heading>small{color:var(--deck-muted);font-size:10px;line-height:1.4}.deck-activity-step-editor{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;align-items:center}.deck-preview-activity,.deck-preview-homework{display:grid;gap:8px;padding:13px 15px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink-2)}.deck-preview-activity h3,.deck-preview-homework h3{margin:0;color:var(--deck-ink);font-size:18px}.deck-preview-activity p,.deck-preview-activity strong{margin:0;line-height:1.5}.deck-preview-activity ol{display:grid;gap:5px;margin:0;padding-left:20px;line-height:1.5}.deck-preview-activity small{color:var(--deck-muted)}.deck-preview-homework>div{padding:8px 10px;border-radius:7px;background:var(--surface)}.deck-preview-story-pinyin{display:block}.deck-present-mode{position:fixed;z-index:90;inset:0;display:grid;place-items:center;padding:5vh 6vw;background:#0f2720f0;outline:none}.deck-present-slide{display:flex;flex-direction:column;justify-content:center;width:min(1120px,92vw);aspect-ratio:16 / 9;overflow:auto;padding:clamp(22px,5vw,70px);border-radius:14px;background:var(--surface);box-shadow:0 24px 80px #0000004d}.deck-present-slide-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px;color:var(--deck-muted);font-size:12px}.deck-present-slide-title strong{color:var(--deck-ink);font-size:16px}.deck-present-slide article{margin-block:7px}.deck-present-slide.is-teacher-preview{gap:6px}.deck-present-teacher-meta{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0 0 10px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink-2);font-size:12px}.deck-present-teacher-meta>span{grid-column:1 / -1;color:var(--accent);font-weight:700}.deck-present-teacher-meta strong{color:var(--muted);font-size:11px}.deck-present-teacher-meta p{margin:0;line-height:1.45}.deck-present-answer-toggle{align-self:flex-start;margin-top:8px}.deck-present-close{position:fixed;top:22px;right:28px;padding:10px 14px;border:1px solid rgb(255 255 255 / 35%);border-radius:999px;background:transparent;color:var(--surface);cursor:pointer}.deck-present-mode-badge{position:fixed;top:24px;left:28px;padding:8px 12px;border:1px solid rgb(255 255 255 / 22%);border-radius:999px;color:#ffffffc7;font-size:12px}.deck-present-nav{position:fixed;top:50%;transform:translateY(-50%);width:42px;height:42px;border:1px solid rgb(255 255 255 / 28%);border-radius:50%;background:#ffffff17;color:var(--surface);font-size:30px;line-height:1;cursor:pointer}.deck-present-nav:hover:not(:disabled){background:#ffffff2e}.deck-present-nav:disabled{opacity:.3;cursor:not-allowed}.deck-present-prev{left:24px}.deck-present-next{right:24px}.deck-present-pager{position:fixed;bottom:18px;display:grid;gap:6px;justify-items:center;color:#ffffffb8;font-size:12px}.deck-present-dots{display:flex;max-width:82vw;overflow-x:auto;gap:4px;padding:2px}.deck-present-dots button{min-width:24px;height:24px;padding:0;border:1px solid rgb(255 255 255 / 25%);border-radius:5px;background:transparent;color:#ffffffb8;font-size:10px;cursor:pointer}.deck-present-dots button.is-active{border-color:var(--gold-mark);background:var(--gold-mark);color:var(--ink)}@media(prefers-reduced-motion:reduce){.deck-loading-title,.deck-loading-actions,.deck-loading-rail,.deck-loading-canvas,.deck-loading-panel{animation:none}}@media(max-width:1120px){.deck-editor-layout,.deck-loading-grid{grid-template-columns:150px minmax(0,1fr)}.deck-loading-panel{grid-column:1 / -1;min-height:220px}.deck-properties{grid-column:1 / -1;display:grid;grid-template-columns:1fr;max-height:none;overflow:visible}.deck-properties-header,.deck-inspector-tabs,.deck-inspector-section{grid-column:1 / -1}.deck-enrichment-options{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.deck-editor-heading,.deck-builder-overview-heading,.deck-enrichment-heading,.deck-builder-footer{align-items:stretch;flex-direction:column}.deck-editor-layout{grid-template-columns:1fr}.deck-loading-grid{grid-template-columns:1fr;min-height:0}.deck-loading-rail{order:2;min-height:180px}.deck-loading-canvas{order:1;min-height:260px}.deck-loading-panel{order:3;min-height:220px;grid-column:auto}.deck-page-rail{order:2}.deck-canvas-panel{order:1}.deck-properties{order:3;grid-template-columns:1fr}.deck-preview-vocab-grid,.deck-preview-image-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.deck-canvas{min-height:0}.deck-present-mode{padding:16px}.deck-present-nav{width:34px;height:34px;font-size:24px}.deck-present-prev{left:6px}.deck-present-next{right:6px}.deck-present-slide{width:90vw;padding:18px}.deck-inline-record,.deck-image-editor,.deck-dialogue-line-editor,.deck-example-editor,.deck-homework-editor,.deck-exercise-editor{grid-template-columns:1fr}.deck-history-actions{align-self:flex-start}.deck-material-item{align-items:flex-start;flex-direction:column}.deck-material-item>div{justify-content:flex-start}.deck-builder-overview{gap:22px;padding:20px}.deck-builder-summary{justify-items:start;padding:12px 0 0;border-top:1px solid var(--line);border-left:0}.deck-teaching-path{grid-template-columns:1fr 1fr}.deck-path-stage:nth-child(3){border-left:0;border-top:1px solid var(--line)}.deck-path-stage:nth-child(4){border-top:1px solid var(--line)}.deck-enrichment-group{grid-template-columns:1fr;gap:12px}.deck-enrichment-options{grid-template-columns:1fr}.deck-enrichment-option{min-height:70px}}.story-card{display:grid;gap:8px;padding:18px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.story-card h2{margin:0}.story-body{font-size:20px;line-height:1.8}.story-body mark,.example-row mark{padding:0 2px;border-radius:3px;background:#b85c3224;color:var(--gold);font-weight:600}.example-row{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:start;padding:16px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.example-number{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:#8b69141f;color:var(--gold);font-family:var(--font-label);font-size:13px;font-weight:700}.example-row>div:first-of-type{display:grid;gap:6px;min-width:0}.story-audio-error{display:inline-flex;align-items:center;gap:10px}.homework-settings input[type=date]{max-width:220px}.homework-preview{position:sticky;top:20px}.homework-preview header{display:flex;align-items:center;justify-content:space-between;gap:12px}.homework-preview h2{margin:0}.homework-preview pre{min-width:0;min-height:340px;margin:0;padding:18px;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;font:inherit;line-height:1.8;background:var(--surface-soft);border-radius:10px}.homework-preview>small{color:var(--muted)}.today-overview-grid{display:grid;grid-template-columns:var(--quick-cols);gap:var(--space-md)}.help-page{width:min(100%,960px);margin:0 auto;padding:22px 0 48px}.help-page-heading{margin:22px 0 24px}.help-page-heading h1{margin:0;color:var(--ink);font:650 30px/1.25 var(--font-serif);letter-spacing:-.02em}.help-page-heading p{margin:7px 0 0;color:var(--muted);font-size:15px}.help-start-path{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 18px;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface);list-style:none}.help-start-path li{display:flex;align-items:center;min-width:0;gap:12px;padding:18px}.help-start-path li+li{border-left:1px solid var(--line)}.help-start-path li>span{display:grid;flex:0 0 30px;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font:700 13px/1 var(--font-label)}.help-start-path li div{display:grid;min-width:0;gap:3px}.help-start-path strong{color:var(--ink);font-size:15px}.help-start-path small{color:var(--muted);font-size:13px;line-height:1.45}.help-mode-note{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;margin-bottom:30px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--accent-soft)}.help-mode-note__icon{display:grid;place-items:center;width:38px;height:38px;border-radius:9px;background:var(--accent-soft);color:var(--accent)}.help-mode-note h2{margin:0;color:var(--ink);font:650 15px/1.4 var(--font-sans)}.help-mode-note p{margin:2px 0 0;color:var(--muted);font-size:13px}.help-mode-note .secondary-button{text-decoration:none;white-space:nowrap}.help-section{margin-top:28px}.help-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:11px}.help-section-heading h2{margin:0;color:var(--ink);font:650 19px/1.35 var(--font-sans)}.help-section-heading span{color:var(--muted);font-size:13px}.help-shortcut-list{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.help-shortcut-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;min-height:72px;padding:12px 16px;color:var(--ink);text-decoration:none;transition:background-color .16s ease-out}.help-shortcut-row+.help-shortcut-row{border-top:1px solid var(--line)}.help-shortcut-row:hover{background:var(--paper)}.guide-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:8px;background:var(--surface-sunk);color:var(--gold)}.help-shortcut-row>span:nth-child(2){display:grid;min-width:0;gap:3px}.help-shortcut-row strong{font-size:15px}.help-shortcut-row small{color:var(--muted);font-size:13px;line-height:1.45}.help-shortcut-row b{display:inline-flex;align-items:center;gap:5px;color:var(--accent);font-size:13px;white-space:nowrap}.help-faq-list{border-top:1px solid var(--line)}.help-faq-list details{border-bottom:1px solid var(--line)}.help-faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 2px;color:var(--ink);font-size:14px;font-weight:650;cursor:pointer;list-style:none}.help-faq-list summary::-webkit-details-marker{display:none}.help-faq-list summary svg{flex:0 0 auto;color:var(--muted);transition:transform .16s ease-out}.help-faq-list details[open] summary svg{transform:rotate(90deg)}.help-faq-list p{max-width:72ch;margin:-2px 0 15px;color:var(--muted);font-size:14px;line-height:1.7}.help-feedback form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px 12px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.help-feedback label{grid-column:1 / -1;color:var(--ink);font-size:13px;font-weight:650}.help-feedback textarea{box-sizing:border-box;width:100%;min-height:86px;padding:11px 12px;resize:vertical;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:14px/1.6 var(--font-sans)}.help-feedback textarea:focus{border-color:var(--accent);outline:3px solid rgba(40,125,111,.14)}.help-feedback .primary-button{min-height:44px}.help-feedback .save-confirm,.help-feedback .form-error{grid-column:1 / -1;margin:0}.secondary-button{width:fit-content;border:1px solid var(--line);border-radius:8px;padding:10px 14px;background:var(--surface);color:var(--ink);cursor:pointer}.secondary-button:disabled{opacity:.6;cursor:not-allowed}.terms-check{display:grid!important;grid-template-columns:auto 1fr;align-items:start;column-gap:8px;font-weight:400!important}.terms-check .form-error{grid-column:1 / -1}.search-progress{margin:calc(-1 * var(--space-sm)) 0 var(--space-md);color:var(--muted);font-size:13px}.image-loading-status{position:absolute;inset:50% auto auto 50%;translate:-50% -50%;margin:0;padding:8px 12px;border-radius:8px;background:#ffffffeb;color:var(--muted)}.workspace-card{color:var(--ink);text-decoration:none}.workspace-item-form{display:grid;grid-template-columns:minmax(180px,220px) minmax(240px,1fr) auto;gap:var(--space-md);align-items:end;padding:var(--space-lg);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.workspace-item-form-intro{display:flex;align-items:center;gap:11px;min-height:44px}.workspace-item-form-intro>span{display:grid;place-items:center;width:38px;height:38px;border-radius:9px;background:var(--accent-soft);color:var(--accent)}.workspace-item-form-intro>div{display:grid;gap:2px}.workspace-item-form-intro small{color:var(--muted)}.workspace-item-form>.form-error{grid-column:1 / -1;margin:0}.workspace-item-form label{display:grid;gap:8px;font-weight:700}.workspace-item-form input,.workspace-item-form select{min-width:0;width:100%;border:1px solid var(--line);border-radius:8px;padding:11px 12px;background:var(--surface);color:var(--ink)}.workspace-items{display:grid;gap:10px}.workspace-item-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.workspace-item-card>div{display:grid;gap:4px;min-width:0}.workspace-item-card strong{overflow-wrap:anywhere}.workspace-item-card small,.workspace-item-card>span{color:var(--muted)}:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid rgba(122,92,16,.35);outline-offset:2px}@media(max-width:760px){.hero-card{align-items:stretch;flex-direction:column;padding:24px}.course-grid,.lesson-summary-grid{grid-template-columns:1fr}.vocabulary-row{grid-template-columns:1fr;gap:12px}.lesson-actions-grid{grid-template-columns:1fr 1fr}.dialogue-card{grid-template-columns:1fr}.dialogue-card>img{max-height:300px}.saved-word-grid{grid-template-columns:1fr}.workspace-create{flex-direction:column}.admin-metric-grid{grid-template-columns:1fr 1fr}.audit-row{grid-template-columns:1fr;gap:4px}.authoring-layout,.homework-layout{grid-template-columns:1fr}.homework-preview{position:static}.homework-library-card{grid-template-columns:1fr}.homework-library-meta{justify-items:start}.help-start-path{grid-template-columns:1fr}.help-start-path li+li{border-top:1px solid var(--line);border-left:0}.workspace-item-form{grid-template-columns:1fr}.workspace-item-card{align-items:flex-start;flex-direction:column}.homework-settings,.homework-preview,.authoring-settings,.generated-document{min-width:0;padding:16px}.homework-preview header,.generated-document-header,.section-title-row{align-items:flex-start;flex-wrap:wrap}.homework-preview pre{min-width:0;padding:14px;overflow-wrap:anywhere;word-break:break-word}.task-choice{align-items:flex-start;white-space:normal}.task-choice span{min-width:0;overflow-wrap:anywhere}.vocabulary-actions{max-width:100%;flex-wrap:wrap}}@media(max-width:767px){.word-media-actions{flex-wrap:wrap}.word-media-actions button{white-space:nowrap}.lesson-vocabulary-row{flex-wrap:wrap;row-gap:10px}.lesson-vocabulary-row>div:last-child{margin-left:auto}}.page-heading>p:last-child{line-height:1.55}.word-image-dialog{background:var(--surface)}.dialogue-image-frame{min-height:0;aspect-ratio:4 / 3;background:transparent}.dialogue-image-frame img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}.dialogue-card-heading h2{margin-top:4px}.dialogue-line{align-items:start}.dialogue-line.is-playing{background:var(--accent-soft)}.example-ruby .pinyin-reading{font-size:13px}.example-row>div{min-width:0}.example-audio-tools{display:flex;align-items:end;justify-content:flex-end;gap:8px;flex-wrap:wrap}.example-audio-tools>label{display:grid;gap:4px;color:var(--muted);font-size:12px}.story-ruby .pinyin-reading{font-size:12px}.plan-picker header{display:flex;align-items:center;justify-content:space-between;gap:16px}.plan-picker h2{margin:0}.plan-picker>label{display:grid;gap:8px;font-weight:650}.plan-picker select{min-height:46px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.homework-document h4{margin:0 0 10px}.homework-document ol{display:grid;gap:12px;margin:0;padding-left:24px;line-height:1.7}.homework-preview .export-action{width:min(220px,100%)}.homework-preview .export-button{min-height:44px;padding:8px 12px;grid-template-columns:auto 1fr;align-items:center}.homework-preview .export-button>span:last-child{display:none}:root{--quick-cols: repeat(4, 1fr);--course-cols: repeat(3, 1fr)}@media(max-width:700px){:root{--quick-cols: repeat(2, 1fr)}}@media(max-width:600px){:root{--course-cols: 1fr}}@media(max-width:1100px){.homework-layout,.authoring-layout{grid-template-columns:1fr}.homework-preview{position:static}}html,body{overflow-x:clip}@media(max-width:1100px){.lesson-actions-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:560px){.lesson-actions-grid{grid-template-columns:repeat(2,1fr)}.lesson-action-card{min-height:88px;padding:14px}}.courses-page{width:100%;max-width:1440px;margin:0 auto;padding:var(--space-2xl) var(--space-lg)}.course-filter-toolbar{display:flex;align-items:center;gap:16px;margin-bottom:var(--space-lg)}.course-level-tabs{display:flex;flex-wrap:wrap;gap:7px}.course-level-tabs button{min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:#ffffffad;color:var(--ink-2);cursor:pointer;font:600 13px/1 var(--font-sans);transition:color .18s ease,background .18s ease,border-color .18s ease}.course-level-tabs button:hover{color:var(--accent);border-color:var(--muted);background:var(--surface)}.course-level-tabs button.active{color:var(--surface);border-color:var(--accent);background:var(--accent)}.course-search-input{flex:1;min-width:220px;min-height:44px;padding:0 15px;border:1px solid var(--line);border-radius:8px;outline:none;background:var(--surface);color:var(--ink);font:14px/1.2 var(--font-sans);transition:border-color .18s ease,box-shadow .18s ease}.course-search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #287d6f21}.course-grid-modern{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px}.course-grid-modern--home{grid-template-columns:repeat(3,minmax(0,1fr))}.course-card-modern{position:relative;display:flex;flex-direction:column;min-width:0;min-height:190px;padding:20px;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);text-decoration:none;transition:transform .18s cubic-bezier(.22,1,.36,1),border-color .18s ease,background .18s ease,box-shadow .18s ease}.course-card-modern:hover{transform:translateY(-3px);border-color:var(--muted);background:var(--surface);box-shadow:0 6px 8px #1f4d4317}.course-card-modern:active{transform:translateY(0)}.course-card-modern:focus-visible{outline:3px solid rgba(40,125,111,.28);outline-offset:3px}.course-card-modern__topline{display:flex;align-items:center;gap:8px;min-height:30px}.course-card-modern__level{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font:700 12px/1 var(--font-label)}.course-card-modern[data-level="2"] .course-card-modern__level{background:#eaf0f8;color:#355f87}.course-card-modern[data-level="3"] .course-card-modern__level{background:var(--surface-sunk);color:var(--gold)}.course-card-modern[data-level="4"] .course-card-modern__level{background:#efeaf5;color:#6a4f7c}.course-card-modern[data-level="5"] .course-card-modern__level{background:var(--danger-soft);color:var(--danger)}.course-card-modern[data-level="6"] .course-card-modern__level{background:var(--surface-sunk);color:var(--ink-2)}.course-card-modern__number{color:var(--ink-2);font:600 12px/1 var(--font-sans)}.course-card-modern__arrow{display:grid;place-items:center;width:30px;height:30px;margin-left:auto;border-radius:50%;color:var(--accent);background:var(--accent-soft);transition:transform .18s cubic-bezier(.22,1,.36,1),background .18s ease}.course-card-modern:hover .course-card-modern__arrow{transform:translate(3px);background:var(--accent-soft)}.course-card-modern__titles{display:grid;gap:5px;margin:16px 0 18px}.course-card-modern__titles h3{margin:0;color:var(--ink);font:650 19px/1.4 var(--font-sans);letter-spacing:0;text-wrap:balance;overflow-wrap:anywhere}.course-card-modern__titles p{min-height:38px;margin:0;color:var(--ink-2);font:14px/1.45 var(--font-sans);text-wrap:pretty;overflow-wrap:anywhere}.course-card-modern__meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}.course-card-modern__meta span{max-width:100%;padding:4px 8px;border-radius:6px;background:var(--surface-sunk);color:var(--muted);font:600 12px/1.2 var(--font-sans);overflow-wrap:anywhere}.course-card-modern--compact{min-height:176px;padding:17px}.course-card-modern--compact .course-card-modern__titles{margin:13px 0 15px}.course-card-modern--compact .course-card-modern__titles h3{font-size:17px}.course-card-modern--compact .course-card-modern__titles p{min-height:36px;font-size:13px}.course-title-cn{margin:0 0 4px;color:var(--ink);font:650 17px/1.45 var(--font-sans);letter-spacing:0}.course-title-en{min-height:38px;margin:0 0 12px;color:var(--muted);font:13px/1.45 var(--font-sans)}@media(max-width:1040px){.course-filter-toolbar{align-items:stretch;flex-direction:column}.course-search-input{flex:none;width:100%}.course-grid-modern--home{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.courses-page{padding:24px 0}.course-level-tabs{flex-wrap:nowrap;margin-inline:-18px;padding-inline:18px;overflow-x:auto;scrollbar-width:none}.course-level-tabs::-webkit-scrollbar{display:none}.course-level-tabs button{flex:0 0 auto}.course-grid-modern,.course-grid-modern--home{grid-template-columns:1fr}.course-card-modern,.course-card-modern--compact{min-height:168px}}.lesson-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:28px}.lesson-heading-row>div{min-width:0}.lesson-title-en{margin:-4px 0 14px!important;color:var(--muted)!important;font-size:16px}.lesson-heading-row>.primary-button{border:0;cursor:pointer}.lesson-save-action{display:flex;justify-content:flex-end}.lesson-save-action .primary-button{display:inline-flex;align-items:center;gap:7px;border:0;cursor:pointer;white-space:nowrap}.lesson-vocabulary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.lesson-vocabulary-tile{display:grid;grid-template-columns:minmax(150px,1fr) auto;align-items:center;gap:14px;min-height:96px;padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.lesson-vocabulary-tile>div:first-child{display:grid;gap:3px}.lesson-vocabulary-tile strong{font-size:23px}.lesson-vocabulary-tile span,.lesson-vocabulary-tile small{color:var(--muted)}.lesson-vocabulary-tile .lesson-word-pos{color:var(--danger);font-weight:700;letter-spacing:.02em}.lesson-actions-compact{grid-template-columns:repeat(4,1fr)}.dialogue-card{grid-template-columns:minmax(340px,44%) minmax(0,56%);align-items:stretch;overflow:hidden;border-radius:8px;transition:border-color .18s ease,box-shadow .18s ease}.dialogue-card.is-playing{border-color:var(--accent);box-shadow:0 0 0 3px #287d6f1a}.dialogue-image-frame{width:100%;min-height:100%;display:grid;place-items:center;overflow:hidden;background:var(--accent-soft)}.dialogue-image-frame img{width:100%;height:100%;object-fit:contain}.dialogue-body{min-width:0;padding:26px}.dialogue-body h2{font-size:20px;letter-spacing:0}.dialogue-line{grid-template-columns:72px minmax(0,1fr);gap:14px}.dialogue-speaker{padding-top:15px;font-size:14px}.dialogue-ruby{display:flex;flex-wrap:wrap;align-items:flex-end;gap:0;margin-top:4px!important;font-size:21px!important;line-height:2.25!important}.dialogue-ruby ruby{display:inline-flex;flex-direction:column-reverse;align-items:center;min-width:1.08em;margin:0}.dialogue-ruby rt{min-height:1.15em;color:var(--muted);font-size:13px!important;line-height:1.1;white-space:nowrap}.dialogue-vocab-highlight{color:var(--gold);font-weight:700;text-decoration:none;background:var(--gold-soft);border-radius:3px}.dialogue-line.is-playing{margin-inline:-10px;padding-inline:10px;border-radius:7px;background:var(--accent-soft)}.line-play-button,.dialogue-play-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:fit-content;min-width:44px;min-height:44px;padding:7px 11px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--accent-strong);cursor:pointer;font-size:13px;font-weight:650}.line-play-button:hover,.dialogue-play-button:hover{border-color:var(--muted);background:var(--surface)}.line-play-button[aria-pressed=true],.dialogue-play-button[aria-pressed=true],.dialogue-play-button.is-stopping{border-color:var(--accent);background:var(--accent-soft)}.dialogue-generator{display:grid;grid-template-columns:minmax(300px,380px) 1fr;align-items:start;gap:20px}.dialogue-generator-settings,.generated-dialogues{display:grid;gap:16px;padding:22px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.dialogue-generator-settings h2,.dialogue-generator-settings p{margin:0}.dialogue-generator-settings>label{display:grid;gap:8px;font-weight:700}.dialogue-generator-settings textarea{min-height:110px;padding:12px;border:1px solid var(--line);border-radius:8px;font:inherit;resize:vertical}.generator-word-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:300px;overflow:auto}.generator-word-grid label{display:grid;grid-template-columns:auto 1fr;column-gap:8px;padding:8px;border-radius:7px}.generator-word-grid label:hover{background:var(--surface-soft)}.generator-word-grid small{grid-column:2;color:var(--muted)}.generator-options{display:flex;align-items:center;gap:18px}.generator-options label:not(.switch-row){display:grid;gap:6px}.generated-dialogues article{display:grid;gap:8px}.generated-dialogue-line{display:grid;grid-template-columns:60px 1fr;column-gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.generated-dialogue-line strong{grid-row:1 / 3;color:var(--accent)}.generated-dialogue-line small{color:var(--muted)}.generated-dialogue-line p{margin:0;font-size:19px}.vocabulary-heading{display:flex;justify-content:space-between;align-items:end;gap:20px}.vocabulary-heading .primary-button{display:inline-flex;align-items:center;gap:8px}.vocabulary-search-panel{display:flex;gap:10px}.vocabulary-search-input{display:flex;align-items:center;gap:10px;flex:1;max-width:720px;padding:0 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted)}.vocabulary-search-input input{width:100%;min-height:48px;border:0;outline:0;font:inherit}.level-select select{height:48px;padding:0 36px 0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.vocabulary-workbench{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:18px;align-items:start}.vocabulary-result-list{display:grid;gap:6px}.result-count{padding:2px 4px 8px;color:var(--muted);font-size:13px}.vocabulary-result-list button{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:66px;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);text-align:left;cursor:pointer}.vocabulary-result-list button.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 3px 0 var(--accent)}.vocabulary-result-list button>span:first-child{display:grid;gap:3px}.vocabulary-result-list button strong{font-size:20px}.vocabulary-result-list button small,.vocabulary-result-list button>span:last-child{color:var(--muted)}.vocabulary-detail{position:sticky;top:88px;display:grid;gap:20px;padding:26px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.vocabulary-detail header{display:flex;justify-content:space-between;align-items:start}.vocabulary-detail h2{margin:4px 0 0;font-size:42px;letter-spacing:0}.vocabulary-detail-pinyin{margin:3px 0 0;color:var(--muted);font-size:17px}.favorite-button{min-height:44px;padding:0 13px;border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer}.favorite-button.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.vocabulary-detail dl{display:grid;gap:0;margin:0}.vocabulary-detail dl>div{display:grid;grid-template-columns:94px 1fr;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}.vocabulary-detail dt{color:var(--muted)}.vocabulary-detail dd{margin:0}.vocabulary-detail dl>div:first-child dd{color:var(--danger);font-weight:700;letter-spacing:.02em}.source-lessons{display:flex;flex-wrap:wrap;gap:6px}.source-lessons a,.source-lessons span{padding:4px 8px;border-radius:6px;background:var(--surface-soft);color:var(--accent-strong);text-decoration:none;font-size:13px}.vocabulary-detail-image{width:100%;max-height:380px;object-fit:contain;background:var(--surface-sunk)}.image-error-state{display:grid;place-items:center;gap:8px;min-height:260px;color:var(--muted)}.authoring-switches{display:grid;gap:8px}.switch-row{display:flex!important;align-items:center;justify-content:space-between;gap:16px;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.switch-row>span{display:grid;gap:2px}.switch-row small{color:var(--muted);font-weight:400}.switch-row input{flex:0 0 auto;width:20px!important;height:20px;margin:0;accent-color:var(--accent)}.preparation-resume{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;margin-top:14px;padding:13px 15px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);text-decoration:none;transition:transform .18s cubic-bezier(.22,1,.36,1),border-color .18s ease,background .18s ease}.preparation-resume:hover{transform:translateY(-2px);border-color:var(--muted);background:var(--surface)}.preparation-resume__icon{display:grid;place-items:center;width:42px;height:42px;border-radius:9px;background:var(--accent-soft);color:var(--accent)}.preparation-resume>span:nth-child(2){display:grid;gap:3px;min-width:0}.preparation-resume small{color:var(--muted)}.preparation-resume strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preparation-resume__action{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-weight:650}.story-ruby{display:flex;flex-wrap:wrap;align-items:flex-end;line-height:2.35}.story-ruby ruby{display:inline-flex;flex-direction:column-reverse;align-items:center;min-width:1.1em}.story-ruby rt{min-height:1.2em;color:var(--muted);font-size:13px;line-height:1}.story-word-highlight{color:var(--gold);font-weight:700;background:var(--gold-soft)}.admin-chart-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:16px}.admin-chart{min-height:320px;padding:22px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.admin-chart header{display:flex;justify-content:space-between;align-items:start;margin-bottom:24px}.admin-chart h2{margin:3px 0 0;font-size:20px}.admin-chart header small{color:var(--muted)}.bar-chart{display:grid;gap:15px}.bar-row{display:grid;grid-template-columns:88px 1fr 34px;align-items:center;gap:10px;font-size:13px}.bar-row>div,.status-chart>div>div{height:10px;overflow:hidden;border-radius:3px;background:var(--surface-sunk)}.bar-row i{display:block;height:100%;background:var(--accent)}.status-chart{display:grid;gap:18px}.status-chart>div{display:grid;grid-template-columns:1fr auto;gap:8px}.status-chart span{display:flex;align-items:center;gap:7px}.status-chart span i{width:9px;height:9px;border-radius:2px}.status-chart>div>div{grid-column:1 / -1}.status-chart>div>div i{display:block;height:100%}.workspace-quick-actions{display:flex;flex-wrap:wrap;gap:8px}.workspace-quick-actions a{padding:7px 10px;border:1px solid var(--line);border-radius:7px;text-decoration:none}@media(max-width:980px){.lesson-vocabulary-grid,.admin-chart-grid,.dialogue-card,.dialogue-generator{grid-template-columns:1fr}.dialogue-image-frame{min-height:0;aspect-ratio:16 / 9}.lesson-actions-compact{grid-template-columns:repeat(2,1fr)}}.aligned-pinyin .pinyin-cell:not(.is-punctuation){margin-right:.08em}.aligned-pinyin .pinyin-cell.is-punctuation{margin-right:0}.grammar-method-card{display:grid;gap:8px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:var(--paper);color:var(--ink-2)}.grammar-method-card ol{display:grid;gap:4px;margin:0;padding-left:22px;color:var(--ink-2);font-size:13px;line-height:1.6}.grammar-word-evidence,.grammar-selection-reason,.grammar-evidence,.grammar-teaching-steps{display:grid;gap:7px}.grammar-word-evidence{padding:11px 13px;border-radius:10px;background:var(--surface);color:var(--ink-2);font-size:13px}.grammar-word-evidence span{display:block}.grammar-selection-reason{padding:11px 13px;border-left:3px solid var(--gold);background:var(--surface);color:var(--muted)}.grammar-selection-reason p{color:var(--muted);font-size:13px}.grammar-evidence>div{display:grid;grid-template-columns:52px minmax(0,1fr);gap:8px;align-items:center;padding:8px 10px;border-radius:9px;background:var(--surface)}.grammar-evidence>div>span{color:var(--muted);font-size:12px}.grammar-evidence-ruby,.grammar-example-ruby{font-size:19px}.grammar-teaching-steps ol{display:grid;gap:5px;margin:0;padding-left:22px;color:var(--ink-2);font-size:13px;line-height:1.6}.grammar-example-link{justify-self:start;margin-top:2px}.grammar-context-chip{display:grid;gap:4px;padding:12px 14px;border-radius:12px;background:var(--accent-soft);color:var(--accent)}.grammar-context-chip span{color:var(--muted);font-size:13px}.generated-dialogue-ruby{display:block;margin:4px 0;font-size:18px}.saved-word-pinyin,.vocabulary-result-ruby,.vocabulary-detail-ruby{font-size:20px}.vocabulary-detail-ruby{font-size:27px}.vocabulary-detail-word{margin:0;font-size:inherit;line-height:1;font-weight:inherit}.selector-word-ruby{font-size:17px}@media(max-width:720px){.vocabulary-workbench{grid-template-columns:1fr}.vocabulary-detail{position:static}.vocabulary-heading,.lesson-heading-row{align-items:stretch;flex-direction:column}.lesson-save-action{justify-content:flex-start}.help-mode-note{grid-template-columns:auto minmax(0,1fr)}.help-mode-note .secondary-button{grid-column:2}.help-shortcut-row{grid-template-columns:auto minmax(0,1fr)}.help-shortcut-row b{grid-column:2}.help-feedback form{grid-template-columns:1fr}.help-feedback label,.help-feedback .save-confirm,.help-feedback .form-error{grid-column:auto}.dialogue-line{grid-template-columns:1fr}.dialogue-speaker{padding-top:0}.preparation-resume{grid-template-columns:42px minmax(0,1fr)}.preparation-resume__action{grid-column:2}}.grammar-library-page{max-width:1440px}.grammar-library-heading{align-items:end}.grammar-library-heading h1{margin-bottom:8px}.grammar-library-heading p{max-width:760px}.grammar-library-count{color:var(--brown);font-size:13px;white-space:nowrap}.grammar-library-search-panel{display:grid;grid-template-columns:minmax(260px,1fr) 150px 190px 150px;gap:10px;padding:12px;border:1px solid color-mix(in srgb,var(--brown) 18%,transparent);background:color-mix(in srgb,var(--paper) 76%,transparent);border-radius:14px}.grammar-library-search{display:flex;align-items:center;gap:9px;min-height:42px;padding:0 12px;border:1px solid color-mix(in srgb,var(--brown) 18%,transparent);border-radius:9px;background:var(--paper);color:var(--brown)}.grammar-library-search input,.grammar-library-search-panel select{min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font:inherit}.grammar-library-search input{flex:1}.grammar-library-search-panel select{min-height:42px;padding:0 10px;border:1px solid color-mix(in srgb,var(--brown) 18%,transparent);border-radius:9px;background:var(--paper)}.grammar-library-filter{min-height:42px;padding:0 12px;border:1px solid color-mix(in srgb,var(--brown) 18%,transparent);border-radius:9px;background:var(--paper);color:var(--brown);cursor:pointer}.grammar-library-filter.is-active{border-color:var(--rust);background:color-mix(in srgb,var(--kraft) 70%,var(--paper));color:var(--ink)}.grammar-library-workbench{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:18px;align-items:start}.grammar-library-list,.grammar-library-detail{border:1px solid color-mix(in srgb,var(--brown) 16%,transparent);border-radius:16px;background:color-mix(in srgb,var(--paper) 88%,transparent);box-shadow:0 12px 35px #4b30190f}.grammar-library-list{padding:8px;max-height:720px;overflow:auto}.grammar-library-list .result-count{padding:9px 10px 8px;color:var(--brown);font-size:12px}.grammar-library-list button{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px;padding:12px 10px;border:0;border-radius:10px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.grammar-library-list button:hover,.grammar-library-list button.active{background:color-mix(in srgb,var(--kraft) 68%,var(--paper))}.grammar-library-list button strong{display:block;font-size:14px;font-weight:650}.grammar-library-list button small{display:block;margin-top:4px;color:var(--brown);font-size:11px}.grammar-library-list .grammar-library-load-more{justify-content:center;margin-top:6px;border:1px dashed color-mix(in srgb,var(--brown) 24%,transparent);color:var(--rust);font-size:12px}.grammar-library-empty-favorites{padding:24px 10px;color:var(--brown);font-size:13px;text-align:center;line-height:1.6}.grammar-library-detail{padding:clamp(20px,3vw,34px);min-width:0}.grammar-library-detail-head{display:flex;align-items:start;justify-content:space-between;gap:20px;padding-bottom:20px;border-bottom:1px solid color-mix(in srgb,var(--brown) 14%,transparent)}.grammar-library-detail-actions{display:flex;flex-wrap:wrap;gap:8px}.grammar-library-detail-actions .is-favorite{border-color:var(--rust);color:var(--rust)}.grammar-library-detail-head h2{margin:4px 0 5px;font-family:var(--font-serif);font-size:clamp(25px,3vw,38px);color:var(--ink)}.grammar-library-meta,.grammar-library-section-title span{color:var(--brown);font-size:13px}.grammar-library-callout{margin:20px 0;padding:15px 17px;border-left:3px solid var(--rust);border-radius:0 10px 10px 0;background:color-mix(in srgb,var(--kraft) 65%,var(--paper))}.grammar-library-callout p{margin:6px 0 0;line-height:1.7}.grammar-library-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.grammar-library-detail h3{margin:0 0 11px;color:var(--ink);font-size:15px}.grammar-library-detail ul{display:grid;gap:8px;margin:0;padding-left:20px;color:var(--brown);line-height:1.65}.grammar-library-patterns{display:grid;gap:7px;margin-bottom:12px}.grammar-library-patterns code{display:block;padding:9px 11px;border-radius:7px;background:color-mix(in srgb,var(--ink) 6%,var(--paper));color:var(--ink);font-family:var(--font-mono, ui-monospace);font-size:13px}.grammar-library-boundaries{margin-top:22px;padding:15px;border-radius:10px;background:color-mix(in srgb,var(--ink) 4%,var(--paper))}.grammar-library-boundaries dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin:0}.grammar-library-boundaries dl div{display:grid;gap:3px}.grammar-library-boundaries dt{color:var(--brown);font-size:11px}.grammar-library-boundaries dd{margin:0;color:var(--ink);font-size:13px;line-height:1.55}.grammar-library-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-top:24px}.grammar-library-examples{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.grammar-library-example{padding:14px;border:1px solid color-mix(in srgb,var(--brown) 14%,transparent);border-radius:10px;background:var(--paper)}.grammar-library-example p{margin:12px 0 0;color:var(--brown);font-size:12px;line-height:1.5}.grammar-library-example-hanzi{margin:0!important;color:var(--ink)!important;font-size:19px!important;line-height:1.65!important;letter-spacing:.02em}.grammar-library-example-hanzi mark{padding:0 .16em;border-radius:4px;background:color-mix(in srgb,var(--gold) 32%,transparent);color:inherit}.grammar-library-ruby{font-size:19px}.grammar-library-errors{display:grid;gap:10px}.grammar-library-errors>div{padding:12px;border-radius:9px;background:color-mix(in srgb,var(--kraft) 55%,var(--paper));color:var(--brown);line-height:1.6}.grammar-library-errors s{color:var(--danger)}.grammar-library-errors p{margin:5px 0 0;font-size:12px}.grammar-error-label,.grammar-correct-label{display:inline-block;width:42px;margin-right:5px;color:var(--brown);font-size:11px}.grammar-library-practice{display:grid;gap:14px}.grammar-exercise-card{padding:16px;border:1px solid color-mix(in srgb,var(--brown) 14%,transparent);border-radius:11px;background:var(--paper)}.grammar-exercise-kicker{margin-bottom:7px;color:var(--rust);font-size:11px;letter-spacing:.04em}.grammar-exercise-card h3{margin-bottom:13px;font-family:var(--font-serif);font-size:18px}.grammar-exercise-options{display:grid;gap:7px}.grammar-exercise-options button{padding:10px 12px;border:1px solid color-mix(in srgb,var(--brown) 18%,transparent);border-radius:8px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.grammar-exercise-options button:hover,.grammar-exercise-options button.is-selected{border-color:var(--rust);background:color-mix(in srgb,var(--kraft) 70%,var(--paper))}.grammar-exercise-options button[data-correct=true].is-selected{border-color:var(--accent)}.grammar-exercise-card details{margin-top:12px;color:var(--brown);font-size:13px}.grammar-exercise-card details p{margin:7px 0 0;line-height:1.6}@media(max-width:900px){.grammar-library-workbench{grid-template-columns:1fr}.grammar-library-list{max-height:330px}}@media(max-width:650px){.grammar-library-search-panel,.grammar-library-detail-grid,.grammar-library-examples,.grammar-library-boundaries dl{grid-template-columns:1fr}.grammar-library-detail-head{flex-direction:column}}.grammar-library-detail{padding:30px 32px;border-radius:12px;background:var(--paper);box-shadow:none}.grammar-library-detail-head{align-items:flex-start;padding-bottom:22px}.grammar-library-title-block{min-width:0}.grammar-library-eyebrow,.grammar-library-section-kicker{margin:0;color:var(--rust);font-size:12px;font-weight:700;letter-spacing:.04em}.grammar-library-detail-head h2{margin:7px 0 10px;font-family:var(--font-serif);font-size:32px;line-height:1.2;letter-spacing:-.02em}.grammar-library-meta{display:flex;flex-wrap:wrap;gap:6px;color:var(--brown);font-size:12px}.grammar-library-meta span{padding:4px 8px;border:1px solid color-mix(in srgb,var(--brown) 18%,transparent);border-radius:999px;background:var(--paper)}.grammar-library-detail-actions{flex-shrink:0}.grammar-library-callout{margin:24px 0;padding:17px 19px;border:1px solid color-mix(in srgb,var(--rust) 24%,transparent);border-radius:10px;background:color-mix(in srgb,var(--kraft) 56%,var(--paper))}.grammar-library-callout p{margin:8px 0 0;color:var(--ink);font-size:17px;line-height:1.75}.grammar-library-detail-grid{gap:14px}.grammar-library-panel{min-width:0;padding:19px 20px;border:1px solid color-mix(in srgb,var(--brown) 14%,transparent);border-radius:10px;background:color-mix(in srgb,var(--paper) 92%,var(--kraft))}.grammar-library-panel-heading,.grammar-library-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:14px}.grammar-library-panel-heading h3,.grammar-library-section-title h3{margin:0 0 13px;font-size:16px;line-height:1.35}.grammar-library-panel-heading span,.grammar-library-section-title span{color:var(--brown);font-size:12px}.grammar-library-detail ul{gap:7px;color:var(--brown);font-size:14px;line-height:1.65}.grammar-library-patterns{gap:8px;margin-bottom:15px}.grammar-library-patterns code{padding:10px 12px;border:1px solid color-mix(in srgb,var(--brown) 12%,transparent);border-radius:7px;background:var(--cream);font-family:var(--font-mono, ui-monospace);font-size:14px;line-height:1.5;white-space:normal}.grammar-library-boundaries{margin-top:14px;padding:19px 20px;border:1px solid color-mix(in srgb,var(--brown) 14%,transparent);border-radius:10px;background:color-mix(in srgb,var(--ink) 3%,var(--paper))}.grammar-library-boundaries dl{gap:16px 24px}.grammar-library-boundaries dt{color:var(--brown);font-size:12px;font-weight:700}.grammar-library-boundaries dd{margin-top:3px;font-size:14px;line-height:1.6}.grammar-library-content-section{margin-top:26px;padding-top:22px;border-top:1px solid color-mix(in srgb,var(--brown) 14%,transparent)}.grammar-library-section-title{margin:0 0 13px}.grammar-library-examples{gap:12px}.grammar-library-example{min-width:0;min-height:136px;padding:16px;border:1px solid color-mix(in srgb,var(--brown) 15%,transparent);border-radius:10px;background:var(--cream)}.grammar-library-ruby{display:block;min-height:64px;font-size:20px;line-height:1.9}.grammar-library-example p{margin:13px 0 0;color:var(--brown);font-size:13px;line-height:1.5}.grammar-library-example .grammar-library-example-hanzi{margin:0;min-height:64px;color:var(--ink);font-size:20px;line-height:1.9}.grammar-library-errors{gap:9px}.grammar-library-errors>div{padding:14px 16px;border:1px solid color-mix(in srgb,var(--brown) 11%,transparent);border-radius:9px;background:color-mix(in srgb,var(--kraft) 42%,var(--paper));font-size:14px;line-height:1.6}.grammar-library-errors p{margin:8px 0 0;color:var(--brown);font-size:13px}.grammar-library-practice{gap:14px}.grammar-library-practice .grammar-library-callout{margin:0}.grammar-exercise-card{padding:18px 20px;border:1px solid color-mix(in srgb,var(--brown) 14%,transparent);border-radius:10px;background:var(--paper)}.grammar-exercise-kicker{margin-bottom:9px;color:var(--rust);font-size:12px;font-weight:700;letter-spacing:.02em}.grammar-exercise-card h3{margin:0 0 14px;font-family:var(--font-sans);font-size:16px;line-height:1.55}.grammar-exercise-options{gap:8px}.grammar-exercise-options button{padding:11px 13px;border:1px solid color-mix(in srgb,var(--brown) 18%,transparent);border-radius:8px;background:var(--cream);font-size:14px;line-height:1.5}.grammar-exercise-options button[data-correct=true].is-selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.grammar-exercise-options button[data-correct=false].is-selected{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.grammar-exercise-card details{margin-top:14px;padding-top:12px;border-top:1px solid color-mix(in srgb,var(--brown) 12%,transparent)}@media(max-width:650px){.grammar-library-detail{padding:22px 18px}.grammar-library-detail-head h2{font-size:28px}.grammar-library-panel-heading,.grammar-library-section-title{align-items:flex-start;flex-direction:column;gap:3px}}.grammar-library-search-panel{grid-template-columns:minmax(260px,1fr) repeat(5,minmax(118px,1fr));align-items:center}.grammar-library-search-panel select:disabled{opacity:.48;cursor:not-allowed;background:color-mix(in srgb,var(--brown) 4%,var(--paper))}.grammar-library-active-filter{display:flex;align-items:center;gap:10px;min-height:38px;padding:8px 12px;border:1px solid color-mix(in srgb,var(--rust) 22%,transparent);border-radius:9px;background:color-mix(in srgb,var(--kraft) 58%,var(--paper));color:var(--brown);font-size:12px}.grammar-library-active-filter strong{color:var(--ink);font-size:13px;font-weight:650}.grammar-library-active-filter button{margin-left:auto;border:0;background:transparent;color:var(--rust);font:inherit;cursor:pointer}.grammar-library-list .result-count strong{color:var(--ink);font-weight:650}.grammar-library-list button small{display:flex;align-items:center;gap:5px}@media(max-width:1180px){.grammar-library-search-panel{grid-template-columns:minmax(240px,1fr) repeat(3,minmax(140px,1fr))}.grammar-library-search{grid-column:span 2}}@media(max-width:760px){.grammar-library-search-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.grammar-library-search{grid-column:1 / -1}.grammar-library-active-filter{align-items:flex-start;flex-wrap:wrap}}.grammar-library-callout{border:1px solid color-mix(in srgb,var(--rust) 24%,transparent);border-left-width:1px;border-radius:10px}.grammar-library-detail-head h2{max-width:28ch;text-wrap:balance}.grammar-library-detail-grid{align-items:start}.grammar-library-panel,.grammar-library-boundaries,.grammar-library-content-section{min-width:0}.grammar-library-example{display:grid;align-content:start;gap:8px}.grammar-library-example p{margin:0}.grammar-library-example .grammar-library-example-hanzi,.grammar-library-ruby{min-height:0}.grammar-exercise-card{display:grid;gap:12px}.grammar-exercise-options button{transition:background-color .16s ease,border-color .16s ease,color .16s ease}.grammar-exercise-options button.is-selected{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 12%,var(--cream))}.grammar-exercise-options button.is-selected.is-correct{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--cream));color:var(--accent)}.grammar-exercise-options button.is-selected.is-incorrect{border-color:var(--error);background:color-mix(in srgb,var(--error) 10%,var(--cream));color:var(--danger)}.grammar-exercise-response{display:grid;gap:8px}.grammar-exercise-response textarea{width:100%;min-height:74px;resize:vertical}.grammar-exercise-feedback{margin:0;padding:9px 11px;border-radius:8px;font-size:13px}.grammar-exercise-feedback.is-correct{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--cream))}.grammar-exercise-feedback.is-incorrect{color:var(--danger);background:color-mix(in srgb,var(--error) 8%,var(--cream))}.grammar-library-workbench{grid-template-columns:minmax(236px,292px) minmax(0,1fr);gap:20px}.grammar-library-list{max-height:min(760px,calc(100vh - 250px))}.grammar-library-list button{padding:11px 9px}.grammar-library-list button>span{min-width:0}.grammar-library-list button strong{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.5}.grammar-library-detail{padding:32px 36px 40px}.grammar-library-detail-head{gap:28px}.grammar-library-detail-head h2{max-width:none;font-size:31px;line-height:1.3}.grammar-library-breadcrumb{margin:6px 0 8px;color:var(--brown);font-size:13px;line-height:1.55}.grammar-library-form-note{margin:0 0 9px;color:var(--brown);font-size:14px;line-height:1.65}.grammar-library-detail-anchor{margin:0 0 12px;color:var(--brown);font-size:15px;line-height:1.6}.grammar-library-callout{margin:22px 0 26px;padding:20px 22px;border:1px solid color-mix(in srgb,var(--rust) 22%,transparent);border-radius:10px;background:color-mix(in srgb,var(--kraft) 52%,var(--paper))}.grammar-library-callout p{margin:8px 0 0;font-size:18px;line-height:1.8}.grammar-library-structure{margin:0 0 28px;padding:0 0 24px;border-bottom:1px solid color-mix(in srgb,var(--brown) 14%,transparent)}.grammar-library-structure .grammar-library-section-title{margin-bottom:12px}.grammar-library-structure .grammar-library-patterns{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin:0}.grammar-library-structure .grammar-library-patterns code{display:grid;align-items:center;min-height:52px;background:color-mix(in srgb,var(--kraft) 46%,var(--paper))}.grammar-library-detail-grid{gap:18px}.grammar-library-panel{padding:22px 23px}.grammar-library-panel-heading h3,.grammar-library-section-title h3{font-size:17px}.grammar-library-panel-heading span,.grammar-library-section-title span{font-size:13px}.grammar-library-detail ul{font-size:15px;line-height:1.8}.grammar-library-patterns code{padding:12px 14px;font-size:15px;line-height:1.65}.grammar-library-boundaries{margin-top:18px;padding:21px 23px}.grammar-library-boundaries dl{gap:18px 28px}.grammar-library-boundaries dt{font-size:13px}.grammar-library-boundaries dd{font-size:15px;line-height:1.75}.grammar-library-content-section{margin-top:32px;padding-top:26px}.grammar-library-examples{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.grammar-library-example{min-height:150px;padding:18px}.grammar-library-example .grammar-library-example-hanzi,.grammar-library-ruby{font-size:21px;line-height:1.95}.grammar-library-example p{font-size:14px;line-height:1.65}.grammar-library-errors{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.grammar-library-errors>div{padding:17px 18px;font-size:15px;line-height:1.75}.grammar-library-errors p{font-size:14px;line-height:1.7}.grammar-library-guidance{padding-bottom:2px}.grammar-library-guidance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.grammar-library-guidance-grid>div{min-width:0}.grammar-library-guidance-grid h4{margin:0 0 9px;color:var(--ink);font-size:15px}.grammar-library-guidance-grid ul{padding-left:19px}.grammar-library-guidance-note{margin-top:20px;padding:16px 18px;background:color-mix(in srgb,var(--ink) 3%,var(--paper))}.grammar-library-guidance-note dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 24px;margin:0}.grammar-library-guidance-note dl div{min-width:0}.grammar-library-guidance-note dt{margin-bottom:4px;color:var(--brown);font-size:13px;font-weight:700}.grammar-library-guidance-note dd{margin:0;color:var(--ink);font-size:15px;line-height:1.7}.grammar-library-practice-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:2px;color:var(--brown);font-size:13px}.grammar-library-practice-toolbar .text-button{display:inline-flex;align-items:center;gap:6px;min-height:36px}.grammar-library-practice-toolbar .text-button:hover{text-decoration:underline}@media(max-width:1180px){.grammar-library-workbench{grid-template-columns:minmax(220px,270px) minmax(0,1fr)}.grammar-library-detail{padding:28px 26px 34px}}@media(max-width:900px){.grammar-library-workbench{grid-template-columns:1fr}.grammar-library-list{max-height:360px}.grammar-library-detail{padding:26px 24px 32px}.grammar-library-guidance-note dl{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.grammar-library-detail{padding:22px 18px 28px}.grammar-library-detail-head h2{font-size:27px}.grammar-library-callout p{font-size:16px}.grammar-library-examples,.grammar-library-errors,.grammar-library-guidance-grid,.grammar-library-guidance-note dl,.grammar-library-structure .grammar-library-patterns{grid-template-columns:1fr}.grammar-library-practice-toolbar{align-items:flex-start;flex-direction:column}}.audit-table{display:grid;gap:6px}.audit-table .audit-row{grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;align-items:center}.audit-table .audit-header{font-weight:700;color:var(--muted);font-size:13px;border:0;padding:4px 16px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.back-link{display:inline-flex;align-items:center;gap:7px;width:fit-content;min-height:44px;padding:0 11px;color:var(--accent);border:1px solid var(--line);border-radius:8px;background:#ffffffb3;text-decoration:none;font-size:14px;font-weight:650}.back-link:hover{background:var(--surface);border-color:var(--muted)}.legal-page{min-height:100vh;padding:56px 24px;background:var(--paper)}.legal-document{max-width:760px;margin:0 auto;padding:42px;background:var(--surface);border:1px solid var(--line);border-radius:8px}.legal-document h1{margin:28px 0 10px;font-size:36px}.legal-document h2{margin:28px 0 8px;font-size:19px}.legal-document p{color:var(--ink-2);line-height:1.8}.legal-intro{font-size:17px}.register-card{overflow-y:auto}.register-form{display:grid;gap:18px}.register-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.register-fields label{display:grid;gap:7px;font-weight:650;color:var(--ink-2)}.register-fields .full-field{grid-column:1 / -1}.register-fields input{min-width:0;padding:12px 13px;border:1px solid var(--line);border-radius:8px;font:inherit}.terms-check{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:9px;font-size:14px;color:var(--ink-2)}.terms-check small{grid-column:2}.terms-check a{color:var(--accent)}@media(max-width:850px){.login-page-enhanced{grid-template-columns:1fr}.login-hero{min-height:260px;padding:36px 24px}.login-hero h1{font-size:36px}.login-hero .copyright{display:none}.login-card-enhanced{min-height:calc(100vh - 260px);padding:32px 24px}}@media(max-width:560px){.register-fields{grid-template-columns:1fr}.register-fields .full-field{grid-column:auto}.legal-document{padding:26px 20px}}.page-heading h1{max-width:22ch;margin:5px 0 9px;font-size:38px;line-height:1.18;letter-spacing:-.025em;text-wrap:balance}.page-heading>p:last-child{max-width:72ch;margin-bottom:0}.back-link{min-height:44px;padding:0 10px;border:0;border-radius:7px;background:transparent;color:var(--accent)}.back-link:hover{border-color:transparent;background:var(--accent-soft)}.back-link svg{transition:transform .18s cubic-bezier(.22,1,.36,1)}.back-link:hover svg{transform:translate(-3px)}.danger-text-button{min-height:38px;padding:0 10px;border:0;border-radius:7px;background:transparent;color:var(--danger);cursor:pointer;font:650 13px/1 var(--font-sans)}.danger-text-button:hover{background:var(--danger-soft)}.danger-text-button:disabled{opacity:.55;cursor:wait}.preparation-heading{max-width:900px}.preparation-intent-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;border-radius:8px;background:var(--accent-soft);color:var(--ink)}.preparation-intent-banner span{color:var(--ink-2)}.workspace-header-actions{display:flex;align-items:center;gap:8px}.workspace-list{max-width:none}.workspace-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0;overflow:hidden;background:var(--surface);box-shadow:none}.workspace-card>a{display:grid;flex:1;gap:5px;min-width:0;padding:17px 18px;color:var(--ink);text-decoration:none}.workspace-card>a strong{font-size:15px}.workspace-card>a span{color:var(--muted);font-size:13px}.workspace-card>.secondary-button{flex:0 0 auto;margin-right:14px}.workspace-item-form{grid-template-columns:minmax(170px,210px) minmax(280px,1fr) auto;padding:18px;box-shadow:none}.workspace-item-card{box-shadow:none}.workspace-item-card>div:first-child{min-width:210px}.workspace-quick-actions{justify-content:flex-end}.workspace-quick-actions a,.workspace-quick-actions button{min-height:38px;display:inline-flex;align-items:center;padding:0 10px}.workspace-notes{display:grid;gap:14px;padding-top:24px;border-top:1px solid var(--line)}.workspace-notes h2,.workspace-notes p{margin:0}.workspace-notes>div>p{margin-top:5px;color:var(--muted)}.workspace-notes form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px}.workspace-notes textarea{min-height:92px;padding:12px 13px;resize:vertical;border:1px solid var(--line);border-radius:8px;font:inherit;line-height:1.6}.admin-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.admin-metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-metric{display:grid;gap:5px;padding:18px;border-radius:8px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}.admin-metric>span{color:var(--muted);font-size:13px}.admin-metric strong{font-size:30px;line-height:1.1;letter-spacing:-.02em}.admin-metric small{color:var(--muted)}.admin-chart{box-shadow:none}.admin-chart header p{margin:4px 0 0;color:var(--muted);font-size:13px}.admin-users{display:grid;gap:16px;padding-top:8px}.admin-users>header{display:flex;align-items:end;justify-content:space-between;gap:18px}.admin-users h2,.admin-users p{margin:0}.admin-users header p{margin-top:5px;color:var(--muted)}.admin-user-search input{min-width:300px;min-height:42px;padding:0 13px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font:inherit}.admin-user-table{overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.admin-user-row{display:grid;grid-template-columns:1.1fr .8fr 1.45fr .55fr;align-items:center;gap:16px;min-height:58px;padding:9px 15px;border-bottom:1px solid var(--line)}.admin-user-row:last-child{border-bottom:0}.admin-user-row>span:first-child{display:grid;gap:2px}.admin-user-row small{color:var(--muted)}.admin-user-row>span:last-child{display:flex;align-items:center;gap:7px}.admin-user-row--header{min-height:42px;background:var(--accent-soft);color:var(--ink-2);font-size:12px;font-weight:700}.account-status{width:8px;height:8px;border-radius:50%;background:var(--muted)}.account-status--active{background:var(--accent)}.account-status--pending{background:var(--gold)}.account-status--disabled{background:var(--danger)}.dialogue-speed-toolbar{width:fit-content;padding:6px;border:1px solid var(--line);border-radius:9px;background:var(--accent-soft)}.dialogue-speed-toolbar>span{padding:0 8px;color:var(--ink-2)}.speed-segmented-control{display:inline-flex;padding:3px;border-radius:7px;background:var(--accent-soft)}.speed-button{min-width:50px;min-height:44px;padding:0 10px;border:0;border-radius:6px;background:transparent}.speed-button[aria-pressed=true]{background:var(--surface);color:var(--accent);box-shadow:0 1px 4px #1f4d4324}.dialogue-card{grid-template-columns:minmax(320px,42%) minmax(0,58%);align-items:stretch;border-radius:10px;background:var(--surface);box-shadow:none}.dialogue-image-frame{min-height:430px;height:100%;padding:18px;background:var(--accent-soft);color:var(--muted)}.dialogue-image-frame img{width:100%;height:100%;min-height:390px;object-fit:contain}.dialogue-body{display:flex;flex-direction:column;padding:24px 26px}.dialogue-body>.section-title-row{padding-bottom:13px;border-bottom:1px solid var(--line)}.dialogue-body>.section-title-row>div{display:grid;gap:3px}.dialogue-scene-index{color:var(--muted);font-size:12px;font-weight:700}.dialogue-body h2{margin:0;font-size:19px}.dialogue-vocab-note{margin:10px 0 2px}.dialogue-line{grid-template-columns:68px minmax(0,1fr);gap:14px;padding:15px 0}.dialogue-speaker{align-self:start;width:fit-content;margin-top:8px;padding:5px 8px;border-radius:6px;background:var(--accent-soft);color:var(--accent);font-size:13px}.dialogue-copy{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}.dialogue-ruby{margin:0!important;font-size:20px!important;line-height:2.35!important}.dialogue-ruby rt{font-size:13px!important}.line-play-button{align-self:center;white-space:nowrap}.example-list{display:grid;gap:10px}.example-row{grid-template-columns:30px minmax(0,1fr);padding:15px 16px;box-shadow:none}.example-ruby{display:flex;flex-wrap:wrap;align-items:flex-end;gap:0;margin:0 0 8px;font-size:20px;line-height:2.35}.example-ruby ruby{display:inline-flex;flex-direction:column-reverse;align-items:center;min-width:1.08em}.example-ruby rt{min-height:1.15em;color:var(--muted);font-size:13px;line-height:1;white-space:nowrap}.example-word-highlight{padding:0 2px;border-radius:3px;background:var(--gold-soft);color:var(--gold);font-weight:700}.generated-document-header>div:first-child h2,.generated-document-header>div:first-child p{margin:0}.generated-document-header>div:first-child p{margin-top:4px;color:var(--muted);font-size:13px}.example-audio-tools{display:flex;align-items:end;gap:9px}.example-audio-tools label{display:grid;gap:5px;color:var(--muted);font-size:12px;font-weight:700}.example-audio-tools select{min-height:38px;padding:0 30px 0 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface)}.example-audio-action{display:grid;gap:4px}.example-audio-download{text-decoration:none}.image-dialog-actions{display:flex;align-items:center;gap:7px}@media(max-width:980px){.admin-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dialogue-card{grid-template-columns:1fr}.dialogue-image-frame{min-height:0;aspect-ratio:16/9}.dialogue-image-frame img{min-height:0}}@media(max-width:720px){.page-heading h1{font-size:30px}.preparation-intent-banner,.admin-heading,.admin-users>header{align-items:flex-start;flex-direction:column}.workspace-item-form,.workspace-notes form{grid-template-columns:1fr}.workspace-item-card{align-items:stretch}.workspace-quick-actions{justify-content:flex-start}.admin-user-search,.admin-user-search input{width:100%;min-width:0}.admin-user-table{border:0;background:transparent}.admin-user-row{grid-template-columns:1fr 1fr;gap:8px 14px;margin-bottom:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.admin-user-row--header{display:none}.dialogue-copy{grid-template-columns:1fr}.line-play-button{align-self:start}.generated-document-header,.example-audio-tools{align-items:stretch;flex-direction:column}}.preparation-save-status{width:fit-content;margin:0;padding:7px 10px;border-radius:8px;background:color-mix(in srgb,var(--success, var(--accent)) 10%,var(--cream));color:var(--accent);font-size:13px;font-weight:600}.preparation-save-status.form-error{background:color-mix(in srgb,var(--error) 8%,var(--cream))}.page-stack{gap:20px}.page-heading h1{margin-block:2px 6px;font-size:clamp(28px,3vw,38px)}.home-workbench{width:100%;max-width:none;margin:0;padding:0}.home-workbench-heading{margin-bottom:6px}.courses-page{padding-top:0}.courses-heading{margin-bottom:14px}.back-link{min-height:38px;padding:0 9px;border-radius:999px;background:var(--accent-soft)}.lesson-word-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lesson-word-actions .secondary-button{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:8px 12px;text-decoration:none}.lesson-word-copy{display:grid;gap:7px;min-width:0}.aligned-pinyin{display:inline-flex;flex-wrap:wrap;align-items:flex-end;column-gap:0;row-gap:10px;max-width:100%;line-height:1}.pinyin-cell{display:inline-flex;flex:0 0 auto;min-width:1.42em;flex-direction:column;align-items:center;justify-content:flex-end;padding:2px 1px;border-radius:4px}.pinyin-reading{min-height:1.15em;color:var(--muted);font-size:.58em;font-weight:500;line-height:1.05;white-space:nowrap}.pinyin-hanzi{font-size:1em;line-height:1.12}.pinyin-cell.is-punctuation{min-width:.65em;align-items:flex-start}.pinyin-cell.is-highlighted{color:var(--gold);background:var(--gold-soft);font-weight:700}.lesson-word-pinyin{font-size:23px}.word-image-dialog-inner>img,.vocabulary-detail-image{background:transparent!important}.dialogue-card{grid-template-columns:minmax(280px,42%) minmax(0,1fr);align-items:stretch}.dialogue-image-frame{min-height:0!important;aspect-ratio:4 / 3;padding:0!important;background:transparent!important}.dialogue-image-frame img{width:100%;height:100%;min-height:0!important;object-fit:contain;mix-blend-mode:multiply}.dialogue-body{display:grid;align-content:start;gap:12px;padding:clamp(18px,2vw,28px)}.dialogue-card-heading{align-items:center}.dialogue-card-heading .dialogue-play-button{flex:0 0 auto;min-width:132px}.dialogue-ruby{display:inline-flex!important;align-items:flex-end;flex-wrap:wrap;gap:0;margin:0!important;font-size:21px!important;line-height:1.15!important}.dialogue-ruby .pinyin-reading{font-size:13px}.dialogue-ruby .pinyin-cell{min-width:1.18em}.dialogue-copy{min-width:0;display:grid;gap:10px}.line-play-button{justify-self:start;min-width:104px}.authoring-inline-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.authoring-inline-options label{display:grid;gap:7px}.example-ruby{font-size:21px}.example-ruby .pinyin-reading,.story-ruby .pinyin-reading{font-size:13px}.example-row-audio{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}.example-row-audio select,.example-audio-tools select{min-height:40px;padding:0 28px 0 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface)}.story-ruby{font-size:20px;line-height:1.2}.plan-picker{display:grid;gap:16px;min-width:min(520px,82vw);padding:20px}.homework-document{display:grid;gap:18px;min-height:340px;padding:clamp(20px,3vw,34px);border:1px solid var(--accent-soft);background:var(--surface)}.homework-document h3{margin:0;text-align:center;font-family:var(--font-serif);font-size:22px}.homework-word-grid{display:flex;flex-wrap:wrap;gap:10px}.homework-word{padding:7px 9px;border-radius:7px;background:var(--surface);font-size:20px}@media(max-width:850px){.dialogue-card{grid-template-columns:1fr}.dialogue-image-frame{aspect-ratio:16 / 9}.authoring-inline-options{grid-template-columns:1fr}}.section-label{margin:0 0 6px;color:var(--ink-2);font:650 13px/1.4 var(--font-label)}.home-workbench-heading h1{max-width:20ch;margin:0 0 7px;color:var(--ink);font:700 clamp(30px,3vw,40px)/1.22 var(--font-serif);text-wrap:balance}.home-workbench-heading>p:last-child{max-width:65ch;margin:0;color:var(--muted);font-size:15px;line-height:1.7;text-wrap:pretty}.today-overview{margin-bottom:4px}.today-overview__heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:11px;flex-wrap:wrap}.today-overview__heading h2{margin:0;font:650 20px/1.3 var(--font-serif)}.today-overview__heading span{color:var(--muted);font-size:13px}.today-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.today-overview-tile{min-width:0;padding:16px 18px}.today-overview-tile+.today-overview-tile{border-left:1px solid var(--line)}.today-overview-tile__label{margin-bottom:7px;color:var(--muted);font-size:12px;font-weight:650}.today-overview-tile__value{color:var(--ink);font:650 29px/1 var(--font-serif);font-variant-numeric:tabular-nums}.today-overview-tile__hint{margin-top:7px;color:var(--muted);font-size:12px;line-height:1.35}.today-overview__course-link{margin-top:9px}.home-quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}.home-quick-action{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;min-height:78px;padding:13px 14px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--ink);text-decoration:none;transition:transform .16s ease-out,border-color .16s ease-out,background-color .16s ease-out}.home-quick-action:hover{transform:translateY(-2px);border-color:var(--muted);background:var(--surface)}.home-quick-action:active{transform:translateY(0) scale(.985)}.home-quick-action__icon{display:grid;place-items:center;width:38px;height:38px;border-radius:9px;background:var(--accent-soft);color:var(--accent)}.home-quick-action__copy{display:grid;gap:4px;min-width:0}.home-quick-action__copy strong{font-size:14px}.home-quick-action__copy small{color:var(--muted);font-size:12px;line-height:1.35}.home-quick-action__arrow{color:var(--accent);transition:transform .16s ease-out}.home-quick-action:hover .home-quick-action__arrow{transform:translate(3px)}.primary-button{align-items:center;min-height:44px;border:0;border-radius:9px;background:var(--accent);box-shadow:0 3px 0 var(--ink);font-weight:700;cursor:pointer;transition:transform .15s ease-out,background-color .15s ease-out,box-shadow .15s ease-out}.primary-button:hover:not(:disabled){transform:translateY(-1px);background:var(--ink);box-shadow:0 4px 0 var(--ink)}.primary-button:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}.primary-button:disabled{opacity:.56;cursor:not-allowed;box-shadow:none}.secondary-button,.word-media-actions button,.vocabulary-actions button{transition:transform .15s ease-out,border-color .15s ease-out,background-color .15s ease-out}.secondary-button:hover:not(:disabled),.word-media-actions button:hover:not(:disabled),.vocabulary-actions button:hover:not(:disabled){transform:translateY(-1px);border-color:var(--muted);background:var(--surface)}.secondary-button:active:not(:disabled),.word-media-actions button:active:not(:disabled),.vocabulary-actions button:active:not(:disabled){transform:scale(.98)}.course-level-tabs{display:flex;flex-wrap:wrap;gap:3px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--accent-soft)}.course-level-tabs button{min-height:36px;padding:0 12px;border:0;border-radius:8px;background:transparent;transition:transform .15s ease-out,color .15s ease-out,background-color .15s ease-out}.course-level-tabs button:hover{border-color:transparent;background:#ffffffb3}.course-level-tabs button.active{border-color:transparent;background:var(--accent);box-shadow:0 1px 3px #19524633}.course-level-tabs button:active{transform:scale(.97)}.course-search-input{min-height:46px;border-radius:10px;background:var(--surface)}.course-card-modern{isolation:isolate;min-height:184px}.course-card-modern__index{position:absolute;z-index:0;right:13px;bottom:-9px;color:var(--accent-soft);font:700 66px/.9 var(--font-serif);font-variant-numeric:tabular-nums;pointer-events:none}.course-card-modern__arrow{width:auto;min-width:30px;padding:0 8px;gap:4px;border-radius:999px}.course-card-modern__arrow>span{max-width:0;overflow:hidden;font-size:12px;font-weight:700;opacity:0;transition:max-width .16s ease-out,opacity .16s ease-out}.course-card-modern:hover .course-card-modern__arrow>span{max-width:30px;opacity:1}.course-card-modern:hover .course-card-modern__arrow{transform:none}.course-card-modern__titles,.course-card-modern__meta,.course-card-modern__topline{position:relative;z-index:1}.lesson-action-card{overflow:hidden;transition:transform .16s ease-out,border-color .16s ease-out,background-color .16s ease-out}.lesson-action-card:after{content:"";position:absolute;inset:auto 0 0;height:3px;background:var(--action-color);opacity:0;transform:scaleX(.35);transform-origin:left;transition:transform .16s ease-out,opacity .16s ease-out}.lesson-action-card:hover:after{opacity:1;transform:scaleX(1)}.lesson-action-card:active{transform:translateY(0) scale(.985)}.authoring-settings{position:sticky;top:88px;overflow:hidden;border:0;border-top:3px solid var(--accent);border-radius:12px;box-shadow:0 3px 8px #1f4d431a}.authoring-word-list label{border:1px solid transparent;transition:border-color .15s ease-out,background-color .15s ease-out}.authoring-word-list label:has(input:checked){border-color:var(--line);background:var(--accent-soft)}.authoring-word-list label:has(input:focus-visible){outline:3px solid rgba(40,125,111,.24);outline-offset:-1px}.authoring-settings select,.authoring-settings textarea,.authoring-settings input:not([type=checkbox]){transition:border-color .15s ease-out,box-shadow .15s ease-out}.authoring-settings select:focus,.authoring-settings textarea:focus,.authoring-settings input:not([type=checkbox]):focus{border-color:var(--accent);outline:0;box-shadow:0 0 0 3px #287d6f1f}.generated-document{border:0;border-radius:12px;box-shadow:inset 0 0 0 1px var(--line)}.empty-card{border-style:solid;border-color:var(--line);background:var(--surface)}:where(a,button,input,select,textarea,summary):focus-visible{outline-color:#287d6f57}@media(max-width:1050px){.home-quick-actions,.today-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.today-overview-tile:nth-child(3){border-left:0;border-top:1px solid var(--line)}.today-overview-tile:nth-child(4){border-top:1px solid var(--line)}}@media(max-width:720px){.home-quick-actions{grid-template-columns:1fr}.today-overview-grid{grid-template-columns:1fr 1fr}.course-card-modern__arrow>span{display:none}.authoring-settings{position:static}}@media(max-width:480px){.today-overview-grid{grid-template-columns:1fr}.today-overview-tile+.today-overview-tile{border-top:1px solid var(--line);border-left:0}}@media(prefers-reduced-motion:reduce){.home-quick-action,.home-quick-action__arrow,.primary-button,.secondary-button,.word-media-actions button,.vocabulary-actions button,.course-level-tabs button,.course-card-modern,.course-card-modern__arrow,.course-card-modern__arrow>span,.lesson-action-card,.lesson-action-card:after,.lesson-action-arrow{transition:none!important}}.dialogue-playback-panel{display:flex;min-height:46px;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap}.dialogue-playback-feedback{display:flex;min-height:22px;align-items:center;gap:10px;color:var(--ink-2);font-size:13px;font-weight:600}.dialogue-playback-feedback:empty{display:none}.dialogue-playback-feedback .form-error{margin:0}.dialogue-card{display:grid;grid-template-columns:minmax(300px,40%) minmax(0,1fr);align-items:stretch;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:none}.dialogue-card.is-long{grid-template-columns:minmax(0,1fr)}.dialogue-image-frame{position:relative;display:grid;width:100%;min-height:100%!important;place-items:center;overflow:hidden;padding:0!important;aspect-ratio:auto!important;background:var(--surface)!important}.dialogue-image-frame img{display:block;width:100%;height:100%;min-height:320px!important;object-fit:contain;mix-blend-mode:normal}.dialogue-card.is-long .dialogue-image-frame{min-height:0!important;aspect-ratio:16 / 7!important;border-bottom:1px solid var(--line)}.dialogue-card.is-long .dialogue-image-frame img{min-height:0!important}.dialogue-body{display:grid;min-width:0;align-content:start;gap:0;padding:clamp(20px,2.4vw,32px)}.dialogue-card.is-long .dialogue-body{width:min(100%,1180px);justify-self:center}.dialogue-card-heading{align-items:center;gap:18px;padding-bottom:16px;border-bottom:1px solid var(--accent-soft)}.dialogue-card-heading>div{min-width:0}.dialogue-card-heading h2{max-width:46ch;font-size:19px;line-height:1.55;text-wrap:pretty}.dialogue-card-heading .dialogue-play-button{flex:0 0 auto;min-width:138px;white-space:nowrap}.dialogue-vocab-note{margin:16px 0 10px}.dialogue-line{display:grid;grid-template-columns:70px minmax(0,1fr);align-items:start;gap:14px;padding:17px 0;border-bottom:1px solid var(--accent-soft);background:transparent}.dialogue-line.is-playing{margin-inline:0;padding-inline:0;border-radius:0;background:transparent}.dialogue-line.is-playing .dialogue-speaker{background:var(--accent-soft);color:var(--accent)}.dialogue-copy{display:grid;min-width:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px 18px}.dialogue-line-reading{display:grid;min-width:0;gap:7px}.dialogue-line-status{width:fit-content;padding:3px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:650}.line-play-button{min-width:112px;justify-self:end;white-space:nowrap}.pinyin-cell.is-highlighted .pinyin-reading{color:var(--ink-2)}.admin-provider-audit{margin-top:24px}.admin-alert{margin:10px 0;padding:12px 14px;border-radius:12px;font-size:14px}.admin-alert--critical{background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger-soft)}.admin-alert--warning{background:var(--gold-soft);color:var(--gold);border:1px solid var(--gold-mark)}.admin-alert--info{background:var(--accent-soft);color:var(--accent);border:1px solid var(--line)}.admin-provider-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:16px 0}.admin-provider-card{display:grid;gap:6px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.admin-provider-card span{color:var(--muted);font-size:13px}.grammar-page{--grammar-ink: var(--ink);--grammar-accent: var(--accent);--grammar-line: var(--line);--grammar-muted: var(--muted)}.grammar-breadcrumb-row{min-height:38px}.grammar-page-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:36px;align-items:end;padding:8px 0 4px}.grammar-stale-notice{padding:10px 12px;border:1px solid var(--gold-mark);border-radius:8px;background:var(--gold-soft);color:var(--gold);font-size:13px;line-height:1.5}.grammar-page-heading>div:first-child{display:grid;gap:8px}.grammar-page-heading h1{max-width:760px;margin:0;color:var(--grammar-ink);font-size:clamp(30px,4vw,46px);line-height:1.14;letter-spacing:-.035em;text-wrap:balance}.grammar-page-heading p{max-width:680px;margin:0;color:var(--grammar-muted);line-height:1.7}.grammar-coverage{display:grid;grid-template-columns:repeat(3,minmax(94px,1fr));border-block:1px solid var(--grammar-line)}.grammar-coverage>div{display:grid;gap:3px;min-width:96px;padding:14px 16px;border-left:1px solid var(--grammar-line)}.grammar-coverage>div:first-child{border-left:0}.grammar-coverage strong{color:var(--grammar-ink);font-size:clamp(14px,1.4vw,20px);line-height:1.2;overflow-wrap:anywhere}.grammar-coverage span{color:var(--grammar-muted);font-size:12px}.grammar-trust-notice{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 14px;align-items:start;padding:13px 15px;border:1px solid var(--line);border-radius:10px;background:var(--accent-soft);color:var(--ink-2);font-size:14px;line-height:1.6}.grammar-toolbar{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;align-items:center;gap:18px;padding:15px 16px;border:1px solid var(--grammar-line);border-radius:12px;background:var(--surface)}.grammar-toolbar-copy{display:grid;gap:3px}.grammar-toolbar-copy span{color:var(--grammar-muted);font-size:13px}.grammar-check{display:inline-flex;gap:9px;align-items:center;color:var(--ink-2);cursor:pointer}.grammar-check>span{display:grid;gap:2px}.grammar-check small{color:var(--grammar-muted);font-size:11px;font-weight:400}.grammar-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;align-items:start}.grammar-list{display:grid;min-width:0;gap:12px}.grammar-card{overflow:hidden;border:1px solid var(--grammar-line);border-radius:13px;background:var(--surface);transition:border-color .16s ease-out,box-shadow .16s ease-out}.grammar-card:hover{border-color:var(--line);box-shadow:0 8px 20px #176b5d12}.grammar-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px}.grammar-course-title{display:flex;gap:12px;min-width:0}.grammar-course-title>div{display:grid;min-width:0;gap:4px}.grammar-course-title>div>strong{color:var(--grammar-ink);font-size:17px}.grammar-course-title small{color:var(--muted);line-height:1.55}.grammar-order{display:grid;place-items:center;flex:0 0 auto;width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--grammar-accent);font-size:12px;font-weight:750}.grammar-status{flex:0 0 auto;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:650}.grammar-status--published{background:var(--accent-soft);color:var(--grammar-accent)}.grammar-status--waiting_review{background:var(--surface-sunk);color:var(--muted)}.grammar-focus-index{display:grid;gap:8px;padding:0 18px 14px 58px}.grammar-focus-index>span{color:var(--grammar-muted);font-size:11px;font-weight:700;letter-spacing:.08em}.grammar-focus-index>div{display:flex;flex-wrap:wrap;gap:7px}.grammar-focus-index>div>span{padding:6px 9px;border:1px solid var(--accent-soft);border-radius:7px;color:var(--ink-2);background:var(--surface);font-size:12px}.grammar-focus-index>div>span.is-selected{border-color:var(--accent);background:var(--accent-soft);color:var(--grammar-accent)}.grammar-course-actions{display:flex;justify-content:flex-end;padding:0 18px 14px}.grammar-waiting{display:grid;gap:4px;padding:14px 18px 18px 58px;border-top:1px solid var(--accent-soft);color:var(--muted);font-size:13px;line-height:1.65}.grammar-card-body{display:grid;gap:0;padding:0 20px 20px;border-top:1px solid var(--accent-soft)}.grammar-card-body p{margin:0;color:var(--ink-2);line-height:1.75}.grammar-focus{display:grid;gap:16px;padding:22px 0 4px;border-top:1px solid var(--accent-soft)}.grammar-focus:first-child{border-top:0}.grammar-focus-loading{align-content:start;min-height:84px;padding:16px;border:1px dashed var(--line);border-radius:9px;background:var(--surface);color:var(--muted)}.grammar-focus-loading strong{color:var(--grammar-ink)}.grammar-focus-loading span{font-size:13px}.grammar-focus>header{display:flex;justify-content:space-between;gap:14px;align-items:center}.grammar-focus-select{display:flex;gap:10px;align-items:flex-start;cursor:pointer}.grammar-focus-select>span{display:grid;gap:3px}.grammar-focus-select>span>strong{color:var(--grammar-ink);font-size:17px}.grammar-focus-select small{color:var(--muted);font-size:12px}.grammar-foundation-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);border-block:1px solid var(--grammar-line)}.grammar-foundation-grid>section{display:grid;align-content:center;gap:7px;min-height:90px;padding:14px 16px}.grammar-foundation-grid>section+section{border-left:1px solid var(--grammar-line)}.grammar-foundation-grid span{color:var(--grammar-muted);font-size:12px;font-weight:700}.grammar-pattern{color:var(--accent);font-size:clamp(18px,2.3vw,25px);line-height:1.4;letter-spacing:.01em}.grammar-related-details,.grammar-advanced-details{border:1px solid var(--grammar-line);border-radius:9px;background:var(--surface)}.grammar-related-details summary,.grammar-advanced-details summary{padding:11px 13px;color:var(--ink-2);font-size:13px;font-weight:700;cursor:pointer}.grammar-related-list{display:grid;gap:7px;padding:0 13px 13px}.grammar-related-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 8px;align-items:baseline;padding:8px 9px;border-radius:7px;background:var(--accent-soft)}.grammar-related-item>span{padding:3px 6px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:10px;font-weight:700}.grammar-related-item>strong{color:var(--grammar-ink);font-size:12px}.grammar-related-item>small{grid-column:2;color:var(--grammar-muted);line-height:1.45}.grammar-advanced-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:0 13px 13px}.grammar-advanced-grid>section{display:grid;gap:5px;align-content:start;padding:10px;border:1px solid var(--line);border-radius:7px;background:var(--surface)}.grammar-advanced-grid h3{margin:0;color:var(--ink-2);font-size:12px}.grammar-advanced-grid p,.grammar-advanced-grid li{color:var(--ink-2);font-size:12px;line-height:1.55}.grammar-advanced-grid p{margin:0}.grammar-advanced-grid ul{display:grid;gap:4px;margin:0;padding-left:17px}.grammar-teacher-copy{display:grid;gap:6px;padding:14px 16px;border-radius:9px;background:var(--accent-soft);color:var(--ink-2)}.grammar-teacher-copy p{color:var(--ink-2);font-size:14px}.grammar-text-block{display:grid;gap:3px;min-width:0}.grammar-text-block p{margin:0}.grammar-pattern-list{display:grid;gap:8px}.grammar-pattern-list .grammar-text-block{padding:8px 10px;border-radius:7px;background:var(--surface)}.grammar-pattern-list .grammar-pattern{font-size:18px}.grammar-usage-panel,.grammar-errors-panel,.grammar-near-synonyms{display:grid;gap:10px;padding:14px 15px;border:1px solid var(--grammar-line);border-radius:9px;background:var(--surface)}.grammar-usage-panel h3,.grammar-errors-panel h3,.grammar-near-synonyms h3{margin:0;color:var(--ink-2);font-size:14px}.grammar-usage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.grammar-usage-grid>div{display:grid;align-content:start;gap:7px}.grammar-usage-grid>div>strong{color:var(--ink-2);font-size:12px}.grammar-usage-grid .grammar-text-block{padding:7px 9px;border-radius:7px;background:var(--surface)}.grammar-errors-panel,.grammar-near-synonyms{border-color:var(--line);background:var(--surface)}.grammar-near-synonyms .grammar-text-block{padding:8px 10px;border-radius:7px;background:var(--surface)}.grammar-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.grammar-columns>section{display:grid;align-content:start;gap:7px;padding:14px 15px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.grammar-columns h3{margin:0;color:var(--ink-2);font-size:14px}.grammar-columns p{font-size:14px}.grammar-flow-preview{display:grid;gap:11px;padding:14px 15px;border:1px solid var(--grammar-line);border-radius:9px}.grammar-flow-preview>header{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.grammar-flow-preview h3{margin:0;color:var(--ink-2);font-size:14px}.grammar-flow-preview>header span{color:var(--grammar-muted);font-size:12px}.grammar-flow-preview ol{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;margin:0;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:7px;background:var(--line);list-style:none}.grammar-flow-preview li{display:grid;gap:3px;padding:10px;background:var(--surface)}.grammar-flow-preview li span{color:var(--ink-2);font-size:12px;font-weight:700}.grammar-flow-preview li small{color:var(--grammar-muted);font-size:10px}.grammar-examples,.grammar-exercises{display:grid;gap:8px}.grammar-examples h3,.grammar-exercises h3{margin:0;color:var(--ink-2);font-size:14px}.grammar-example{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;border-radius:8px;background:var(--paper)}.grammar-example p{color:var(--muted);font-size:13px;text-align:right}.grammar-error{display:grid;gap:7px;padding:10px 12px;border-radius:8px;background:var(--gold-soft);font-size:14px}.grammar-error>p{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:7px;align-items:baseline}.grammar-error small{grid-column:1 / -1;color:var(--muted)}.grammar-exercises>div{display:grid;gap:6px;padding:12px 13px;border:1px solid #dde8ee;border-radius:8px;background:#f6f9fb}.grammar-exercises small{color:var(--muted)}.grammar-diagnostic{display:grid;gap:12px;padding:15px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.grammar-diagnostic>header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.grammar-diagnostic h3{margin:0;color:var(--ink-2);font-size:14px}.grammar-diagnostic p{margin:3px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.grammar-diagnostic>header>span{flex:none;padding:4px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:700}.grammar-diagnostic-tags{display:flex;flex-wrap:wrap;gap:7px}.grammar-diagnostic-tags label{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink-2);font-size:12px;cursor:pointer}.grammar-diagnostic-tags label:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.grammar-diagnostic-controls{display:grid;grid-template-columns:minmax(150px,.35fr) minmax(0,1fr);gap:10px}.grammar-diagnostic-controls label{display:grid;gap:5px;color:var(--ink-2);font-size:12px}.grammar-diagnostic-controls select,.grammar-diagnostic-controls textarea{width:100%;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--accent);padding:8px 9px;font:inherit}.grammar-diagnostic-note textarea{min-height:52px;resize:vertical}.grammar-diagnostic-suggestion{color:var(--muted);line-height:1.55}.grammar-focus-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:2px}.grammar-summary{position:sticky;top:18px;display:grid;gap:14px;padding:17px;border:1px solid var(--grammar-line);border-radius:12px;background:var(--surface)}.grammar-summary>header{display:flex;justify-content:space-between;gap:10px;align-items:center}.grammar-summary h2{margin:0;color:var(--grammar-ink);font-size:16px}.grammar-summary>header span{padding:4px 7px;border-radius:6px;background:var(--surface-sunk);color:var(--muted);font-size:11px}.grammar-summary>header span.is-saving{background:var(--accent-soft);color:var(--grammar-accent)}.grammar-summary>p{margin:0;color:var(--grammar-muted);font-size:13px;line-height:1.6}.grammar-summary>p>strong{margin-right:3px;color:var(--grammar-accent);font-size:25px;line-height:1}.grammar-summary-list{display:grid;gap:6px}.grammar-summary-list span{padding:8px 9px;border-radius:7px;color:var(--accent);background:var(--accent-soft);font-size:12px}.grammar-summary-list small{padding:10px 0;color:var(--muted);line-height:1.6}.grammar-summary-note{padding-top:12px;border-top:1px solid var(--accent-soft)}.grammar-presentation{position:fixed;inset:0;z-index:60;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:var(--surface);color:var(--grammar-ink, var(--ink))}.grammar-presentation::backdrop{background:#0d221d61}.grammar-presentation-header,.grammar-presentation-footer{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px clamp(20px,5vw,72px);background:var(--surface)}.grammar-presentation-header{border-bottom:1px solid var(--line)}.grammar-presentation-header>div{display:grid;gap:2px}.grammar-presentation-header span{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.08em}.grammar-presentation-header strong{color:var(--ink);font-size:15px}.grammar-presentation-close{min-height:40px}.grammar-step-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:0 clamp(20px,5vw,72px);border-bottom:1px solid var(--line);background:var(--surface)}.grammar-step-nav button{display:grid;grid-template-columns:auto 1fr;gap:1px 9px;align-items:center;min-height:64px;padding:10px 12px;border:0;border-bottom:3px solid transparent;color:var(--muted);background:transparent;cursor:pointer;text-align:left;transition:color .16s ease-out,border-color .16s ease-out,background-color .16s ease-out}.grammar-step-nav button:hover{background:var(--paper);color:var(--ink-2)}.grammar-step-nav button.is-active{border-bottom-color:var(--accent);color:var(--accent);background:var(--paper)}.grammar-step-nav button.is-complete{color:var(--ink-2)}.grammar-step-nav button>span{grid-row:1 / 3;display:grid;place-items:center;width:25px;height:25px;border:1px solid var(--line);border-radius:50%;font-size:11px;font-weight:750}.grammar-step-nav button.is-active>span,.grammar-step-nav button.is-complete>span{border-color:var(--accent);color:var(--surface);background:var(--accent)}.grammar-step-nav button strong{font-size:12px}.grammar-step-nav button small{font-size:10px;font-weight:400}.grammar-presentation-stage{overflow-y:auto;padding:clamp(28px,5vh,62px) 20px}.grammar-presentation-content{display:grid;justify-items:center;gap:20px;width:min(100%,920px);min-height:100%;margin:0 auto;align-content:center;text-align:center}.grammar-presentation-content h1{max-width:24ch;margin:0;color:var(--ink);font-size:clamp(30px,4.6vw,58px);line-height:1.18;letter-spacing:-.025em;text-wrap:balance}.grammar-presentation-content>p:not(.grammar-presentation-kicker,.grammar-presentation-error){max-width:54ch;margin:0;color:var(--ink-2);font-size:clamp(16px,1.7vw,19px);line-height:1.7}.grammar-presentation-copy{width:min(100%,660px);text-align:center}.grammar-presentation-kicker{margin:0;color:var(--accent);font-size:13px;font-weight:750;letter-spacing:.12em}.grammar-presentation-pattern{padding:14px 22px;border-block:1px solid var(--muted);color:var(--accent)!important}.grammar-presentation-examples{display:grid;gap:10px;width:min(100%,680px)}.grammar-presentation-example{display:grid;gap:8px;padding:18px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:clamp(21px,3vw,29px)}.grammar-presentation-example>span:last-child{color:var(--muted);font-size:14px}.grammar-teacher-cue,.grammar-presentation-answer,.grammar-word-support{display:grid;gap:5px;width:min(100%,660px);padding:13px 15px;border-radius:9px;text-align:left}.grammar-teacher-cue,.grammar-presentation-answer{background:var(--accent-soft);color:var(--ink-2)}.grammar-teacher-cue span,.grammar-presentation-answer span{line-height:1.65}.grammar-presentation-error{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;margin:0;padding:10px 13px;border-radius:8px;background:var(--gold-soft);color:var(--muted);font-size:15px}.grammar-presentation-options{display:grid;gap:8px;width:min(100%,560px)}.grammar-presentation-options span{padding:11px 13px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink-2);text-align:left}.grammar-word-support{border:1px solid var(--line);background:var(--surface)}.grammar-word-support>div{display:flex;flex-wrap:wrap;gap:7px}.grammar-word-support span{padding:6px 9px;border-radius:6px;background:var(--accent-soft);color:var(--accent);font-size:14px}.grammar-presentation-footer{border-top:1px solid var(--line)}.grammar-presentation-toggles{display:flex;flex-wrap:wrap;gap:14px;color:var(--ink-2);font-size:13px}.grammar-presentation-toggles label{display:inline-flex;gap:6px;align-items:center;cursor:pointer}.grammar-presentation-pagination{display:flex;align-items:center;gap:9px}.grammar-presentation-pagination>span{min-width:38px;color:var(--muted);font-size:12px;text-align:center}.grammar-loading-heading,.grammar-loading-toolbar,.grammar-loading-card{border-radius:10px;background:var(--surface-sunk)}.grammar-loading-heading{width:min(70%,680px);height:110px}.grammar-loading-toolbar{height:74px}.grammar-loading-card{height:220px}.grammar-page button:focus-visible,.grammar-page a:focus-visible,.grammar-page input:focus-visible,.grammar-presentation button:focus-visible,.grammar-presentation input:focus-visible{outline:3px solid rgb(23 107 93 / 32%);outline-offset:2px}@media(max-width:1040px){.grammar-page-heading{grid-template-columns:1fr;gap:20px}.grammar-coverage{width:fit-content}.grammar-toolbar{grid-template-columns:1fr;align-items:stretch}}@media(max-width:860px){.grammar-layout{grid-template-columns:1fr}.grammar-summary{position:static}.grammar-flow-preview ol{grid-template-columns:1fr}.grammar-flow-preview li{grid-template-columns:1fr auto}}@media(max-width:720px){.grammar-page-heading h1{font-size:30px}.grammar-coverage{width:100%}.grammar-coverage>div{min-width:0;padding-inline:10px}.grammar-trust-notice{grid-template-columns:1fr}.grammar-check{align-items:flex-start}.grammar-card>header{align-items:flex-start}.grammar-focus-index,.grammar-waiting{padding-left:18px}.grammar-focus>header,.grammar-focus-actions{align-items:stretch;flex-direction:column}.grammar-focus>header .secondary-button,.grammar-focus-actions>*{width:100%}.grammar-advanced-grid,.grammar-diagnostic-controls,.grammar-foundation-grid,.grammar-columns,.grammar-usage-grid{grid-template-columns:1fr}.grammar-foundation-grid>section+section{border-top:1px solid var(--grammar-line);border-left:0}.grammar-example{align-items:flex-start;flex-direction:column}.grammar-example p{text-align:left}.grammar-error>p{grid-template-columns:auto 1fr}.grammar-error>p strong{grid-column:2}.grammar-presentation{grid-template-rows:auto auto minmax(0,1fr) auto}.grammar-presentation-header,.grammar-presentation-footer{padding-inline:14px}.grammar-step-nav{display:flex;overflow-x:auto;padding-inline:8px;scroll-snap-type:x proximity}.grammar-step-nav button{flex:0 0 132px;scroll-snap-align:start}.grammar-presentation-content{align-content:start}.grammar-presentation-content h1{font-size:30px}.grammar-presentation-footer{align-items:stretch;flex-direction:column}.grammar-presentation-pagination{width:100%}.grammar-presentation-pagination>button{flex:1}}@media(prefers-reduced-motion:reduce){.grammar-card,.grammar-step-nav button{transition:none}}@media(max-width:980px){.dialogue-card,.dialogue-card.is-compact{grid-template-columns:minmax(0,1fr)}.dialogue-card .dialogue-image-frame{min-height:0!important;aspect-ratio:16 / 8!important;border-bottom:1px solid var(--line)}.dialogue-card .dialogue-image-frame img{min-height:0!important}}@media(max-width:720px){.back-link{min-height:44px}.dialogue-playback-panel{align-items:stretch;flex-direction:column}.dialogue-speed-toolbar{width:100%}.dialogue-card .dialogue-image-frame{aspect-ratio:4 / 3!important}.dialogue-body{padding:18px 16px}.dialogue-card-heading{align-items:stretch;flex-direction:column}.dialogue-card-heading .dialogue-play-button{width:100%}.dialogue-line{grid-template-columns:1fr;gap:9px}.dialogue-speaker{width:fit-content}.dialogue-copy{grid-template-columns:minmax(0,1fr)}.line-play-button{justify-self:start}}.grammar-library-page{max-width:1480px;gap:22px}.grammar-library-heading{padding-bottom:2px}.grammar-library-heading p{max-width:68ch;margin-bottom:0;font-size:15px;line-height:1.7}.grammar-library-search-panel{grid-template-columns:minmax(260px,1fr) repeat(5,minmax(112px,148px));gap:8px;padding:10px;border-radius:12px;background:var(--surface);box-shadow:none}.grammar-library-search,.grammar-library-search-panel select,.grammar-library-filter{min-height:44px;border-radius:8px;background:var(--cream, var(--surface));font-size:14px}.grammar-library-search-panel select{padding-inline:11px}.grammar-library-workbench{grid-template-columns:minmax(198px,220px) minmax(0,1fr);gap:24px;align-items:start}.grammar-library-list{position:sticky;top:18px;max-height:calc(100vh - 36px);padding:7px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:none}.grammar-library-list .result-count{padding:10px 9px 9px;font-size:12px;line-height:1.45}.grammar-library-list button{min-height:62px;padding:10px 9px;border-radius:8px}.grammar-library-list button strong{font-size:14px;line-height:1.45}.grammar-library-list button small{margin-top:3px;font-size:12px;line-height:1.35}.grammar-library-list button.active{background:color-mix(in srgb,var(--accent) 10%,var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 24%,transparent)}.grammar-library-detail{min-width:0;padding:38px clamp(28px,4vw,56px) 54px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:none}.grammar-library-detail-head{gap:24px;padding-bottom:26px}.grammar-library-title-block{max-width:76ch}.grammar-library-detail-head h2{margin:9px 0 12px;font-size:32px;line-height:1.3;letter-spacing:-.02em;text-wrap:balance}.grammar-library-breadcrumb,.grammar-library-form-note,.grammar-library-detail-anchor{font-size:14px;line-height:1.65}.grammar-library-detail-actions{align-items:flex-start}.grammar-library-detail-actions .secondary-button,.grammar-library-practice-back{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:48px;padding:10px 14px;font-size:15px;white-space:nowrap}.grammar-library-callout{margin:28px 0 34px;padding:21px 23px;border:1px solid color-mix(in srgb,var(--gold) 34%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--gold) 8%,var(--surface))}.grammar-library-callout p{max-width:70ch;margin:8px 0 0;color:var(--ink);font-size:18px;line-height:1.8}.grammar-library-structure{margin:0 0 34px;padding:0 0 28px;border-bottom:1px solid var(--line)}.grammar-library-section-title{margin:0 0 15px}.grammar-library-section-title h3{font-size:18px;line-height:1.35}.grammar-library-section-title span{font-size:13px}.grammar-library-structure .grammar-library-patterns{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.grammar-library-structure .grammar-library-patterns code{min-height:58px;padding:14px 16px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);font-size:15px;line-height:1.6}.grammar-library-content-section{margin-top:34px;padding-top:28px;border-top:1px solid var(--line)}.grammar-library-examples{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.grammar-library-example{min-height:148px;padding:19px 20px;border:1px solid var(--line);border-radius:10px;background:var(--cream, var(--surface))}.grammar-library-example .grammar-library-example-hanzi,.grammar-library-ruby{font-size:21px;line-height:1.9}.grammar-library-example p{color:var(--muted);font-size:14px;line-height:1.65}.grammar-library-guidance-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px}.grammar-library-guidance-grid h4{margin-bottom:10px;font-size:16px}.grammar-library-detail ul{color:var(--ink);font-size:15px;line-height:1.85}.grammar-library-guidance-note{margin-top:22px;padding:18px 20px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}.grammar-library-guidance-note dd{font-size:15px;line-height:1.75}.grammar-library-errors-section .grammar-library-section-title{align-items:end}.grammar-library-errors{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.grammar-library-errors>.grammar-error-item{display:grid;gap:9px;min-width:0;padding:18px 19px;border:1px solid color-mix(in srgb,var(--error) 18%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--error) 4%,var(--surface));color:var(--ink);font-size:16px;line-height:1.7}.grammar-error-line{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;align-items:baseline}.grammar-error-line>span:last-child{min-width:0;overflow-wrap:anywhere}.grammar-error-line.is-wrong>span:last-child{color:var(--danger);text-decoration:line-through;text-decoration-thickness:1px;text-decoration-color:var(--danger)}.grammar-error-line.is-correct>span:last-child{color:var(--accent);font-weight:650}.grammar-error-label,.grammar-correct-label{width:auto;margin:0;color:var(--muted);font-size:12px;font-weight:700;white-space:nowrap}.grammar-correct-label{color:var(--accent)}.grammar-library-errors p{margin:2px 0 0;color:var(--muted);font-size:14px;line-height:1.7}.grammar-library-practice{gap:18px}.grammar-library-practice-toolbar{position:sticky;top:12px;z-index:2;align-items:center;justify-content:flex-start;gap:14px;margin:-8px -8px 2px;padding:8px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--surface) 94%,transparent)}.grammar-library-practice-toolbar>span{color:var(--muted);font-size:14px}.grammar-library-practice-back{flex:0 0 auto}.grammar-exercise-card{gap:13px;padding:20px 21px;border:1px solid var(--line);border-radius:10px;background:var(--cream, var(--surface));box-shadow:none}.grammar-exercise-card h3{margin:0;font-size:17px;line-height:1.6}.grammar-exercise-options button{min-height:46px;padding:11px 14px;font-size:15px;line-height:1.5}@media(max-width:1180px){.grammar-library-workbench{grid-template-columns:minmax(196px,216px) minmax(0,1fr);gap:18px}.grammar-library-detail{padding-inline:28px}}@media(max-width:900px){.grammar-library-list{position:static;max-height:340px}.grammar-library-practice-toolbar{position:static}}@media(max-width:650px){.grammar-library-search-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.grammar-library-search{grid-column:1 / -1}.grammar-library-detail{padding:24px 18px 32px}.grammar-library-detail-head{flex-direction:column}.grammar-library-detail-actions,.grammar-library-detail-actions>*{width:100%}.grammar-library-practice-toolbar{align-items:stretch;flex-direction:column}.grammar-library-practice-back{width:100%}}.deck-editor-page{--deck-ink: var(--ink);--deck-muted: var(--muted);--deck-panel: var(--surface);--deck-panel-soft: var(--surface-sunk);--deck-line: rgb(92 64 51 / 15%);--deck-accent: var(--gold);--deck-accent-soft: var(--line);color:var(--deck-ink)}.deck-v2-topline{display:flex;align-items:center;gap:12px;min-height:28px;color:var(--deck-muted);font-size:13px}.deck-v2-topline>span:nth-child(2){padding-left:12px;border-left:1px solid var(--deck-line);color:var(--deck-ink);font-weight:700}.deck-v2-topline .deck-save-state{margin-left:auto}.deck-path-picker,.deck-lesson-overview{padding:34px;border:1px solid var(--deck-line);border-radius:16px;background:var(--deck-panel);box-shadow:0 4px 8px #5c40330f}.deck-path-picker{display:grid;gap:30px}.deck-path-picker-intro{display:grid;justify-items:center;gap:9px;text-align:center}.deck-path-picker-intro p,.deck-overview-header p{margin:0;color:var(--deck-accent);font-size:13px;font-weight:700}.deck-path-picker-intro h1,.deck-overview-header h1{max-width:760px;margin:0;color:var(--deck-ink);font:650 34px/1.2 var(--font-serif);letter-spacing:-.025em;text-wrap:balance}.deck-path-picker-intro>span,.deck-overview-header>div>span{color:var(--deck-muted);font-size:14px}.deck-path-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.deck-path-choice{position:relative;display:grid;min-height:220px;padding:21px;border:1px solid var(--deck-line);border-radius:13px;background:var(--surface);color:var(--deck-ink);text-align:left;cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s cubic-bezier(.16,1,.3,1)}.deck-path-choice:hover,.deck-path-choice:focus-visible{border-color:var(--deck-accent);background:var(--surface);transform:translateY(-2px);outline:none}.deck-path-choice.is-current{border-color:var(--deck-accent);background:var(--deck-panel-soft)}.deck-path-choice-mark{width:fit-content;margin-bottom:20px;padding:4px 8px;border-radius:999px;background:var(--deck-accent-soft);color:var(--gold);font-size:11px;font-weight:700}.deck-path-choice strong{font-size:18px}.deck-path-choice p{min-height:44px;margin:8px 0;color:var(--ink-2);font-size:14px;line-height:1.6}.deck-path-choice small{color:var(--deck-muted);font-size:12px}.deck-path-choice b{align-self:end;margin-top:20px;color:var(--deck-accent);font-size:13px}.deck-path-picker-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:18px;border-top:1px solid var(--deck-line);color:var(--deck-muted);font-size:13px}.deck-lesson-overview{display:grid;gap:28px}.deck-overview-header{display:flex;align-items:end;justify-content:space-between;gap:24px}.deck-overview-header>div:first-child{display:grid;gap:8px}.deck-overview-actions,.deck-workspace-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.deck-overview-grid{display:grid;grid-template-columns:minmax(0,1fr) 286px;gap:26px;align-items:start}.deck-beat-timeline{display:grid;gap:0;margin:0;padding:0;list-style:none;border-top:1px solid var(--deck-line)}.deck-beat-timeline li{border-bottom:1px solid var(--deck-line)}.deck-beat-timeline button{display:grid;grid-template-columns:38px minmax(0,1fr) auto;width:100%;gap:13px;align-items:center;padding:15px 4px;border:0;background:transparent;color:var(--deck-ink);text-align:left;cursor:pointer}.deck-beat-timeline button:hover{background:var(--surface)}.deck-beat-timeline div{display:grid;gap:3px}.deck-beat-timeline strong{font-size:15px}.deck-beat-timeline small,.deck-beat-timeline em{color:var(--deck-muted);font-size:12px;font-style:normal;line-height:1.45}.deck-beat-timeline em{color:var(--ink-2)}.deck-beat-timeline i,.deck-beat-rail-heading i{color:var(--deck-accent);font-size:22px;font-style:normal}.deck-beat-token{display:inline-grid;width:28px;height:28px;place-items:center;border-radius:9px;background:var(--surface-sunk);color:var(--ink-2);font-size:12px;font-weight:800}.deck-beat-token.is-warmup{background:var(--line);color:var(--gold)}.deck-beat-token.is-understand{background:var(--surface-sunk);color:var(--accent)}.deck-beat-token.is-practice{background:#ece7f0;color:#604d78}.deck-beat-token.is-produce{background:var(--surface-sunk);color:var(--gold)}.deck-beat-token.is-review{background:var(--line);color:var(--ink-2)}.deck-readiness{display:grid;gap:16px;padding:18px;border-radius:13px;background:var(--paper)}.deck-readiness header{display:grid;gap:4px}.deck-readiness header>div{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.deck-readiness header span{color:var(--deck-muted);font-size:12px;font-weight:700}.deck-readiness header strong{color:var(--deck-accent);font-size:27px;letter-spacing:-.04em}.deck-readiness header small{color:var(--ink-2);font-size:12px}.deck-readiness ul{display:grid;gap:12px;margin:0;padding:0;list-style:none}.deck-readiness li{display:grid;grid-template-columns:19px minmax(0,1fr);gap:8px;align-items:start}.deck-readiness li b{display:grid;width:18px;height:18px;place-items:center;border-radius:50%;background:var(--line);color:var(--accent);font-size:11px}.deck-readiness li.is-warning b,.deck-readiness li.is-notice b{background:var(--line);color:var(--gold)}.deck-readiness li span{display:grid;gap:2px}.deck-readiness li strong{font-size:12px}.deck-readiness li small{color:var(--deck-muted);font-size:11px;line-height:1.45}.deck-workspace-header{display:flex;align-items:end;justify-content:space-between;gap:16px}.deck-workspace-header>div:first-child{display:grid;gap:5px}.deck-workspace-header>div:first-child>strong{font:650 23px/1.2 var(--font-serif)}.deck-workspace-header>div:first-child>small{color:var(--deck-muted);font-size:12px}.deck-workspace-layout{grid-template-columns:236px minmax(0,1fr) 300px;gap:18px;min-height:680px}.deck-workspace-layout .deck-page-rail,.deck-workspace-layout .deck-canvas-panel,.deck-workspace-layout .deck-properties{border-color:var(--deck-line);border-radius:13px;background:var(--deck-panel);box-shadow:0 3px 7px #5c40330d}.deck-workspace-layout .deck-canvas-panel{padding:16px;background:var(--surface-sunk)}.deck-workspace-layout .deck-canvas{border-color:#5c403321;border-radius:10px;background:var(--surface);box-shadow:0 6px 14px #5c40331a}.deck-workspace-layout .deck-layout-cover{background:var(--gold-soft)}.deck-beat-rail{align-self:stretch;padding:12px}.deck-beat-rail .deck-rail-header{padding:4px 4px 13px}.deck-rail-header>div{display:grid;gap:2px}.deck-rail-header small{color:var(--deck-muted);font-size:11px;font-weight:400}.deck-beat-rail nav{display:grid;gap:4px}.deck-beat-rail-group{border-radius:10px}.deck-beat-rail-group.is-active{background:var(--paper)}.deck-beat-rail-heading{display:grid;grid-template-columns:28px minmax(0,1fr) auto;width:100%;gap:9px;align-items:center;padding:9px;border:0;border-radius:10px;background:transparent;color:var(--deck-ink);text-align:left;cursor:pointer}.deck-beat-rail-heading span:nth-child(2){display:grid;gap:2px}.deck-beat-rail-heading strong{font-size:13px}.deck-beat-rail-heading small{color:var(--deck-muted);font-size:11px}.deck-beat-rail-heading i{font-size:17px}.deck-beat-slide-list{display:grid;gap:3px;padding:0 8px 8px 46px}.deck-beat-slide-list>button{display:grid;grid-template-columns:18px minmax(0,1fr);gap:6px;width:100%;padding:7px 6px;border:0;border-radius:6px;background:transparent;color:var(--ink-2);text-align:left;cursor:pointer}.deck-beat-slide-list>button:hover,.deck-beat-slide-list>button.is-active{background:var(--surface);color:var(--deck-ink)}.deck-beat-slide-list>button>span{color:var(--deck-muted);font-size:10px}.deck-beat-slide-list>button>strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.deck-beat-slide-list .deck-add-beat-page{display:block;color:var(--deck-accent);font-size:11px;font-weight:700}.deck-workspace-layout .deck-properties{display:grid;align-content:start;gap:16px;max-height:calc(100vh - 160px);padding:16px;overflow:auto}.deck-context-header{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:9px}.deck-context-header>div{display:grid;gap:2px}.deck-context-header strong{color:var(--deck-ink);font-size:15px}.deck-context-header small{color:var(--deck-muted);font-size:11px;line-height:1.45}.deck-context-settings{display:grid;gap:11px;padding:13px;border-radius:10px;background:var(--surface-sunk)}.deck-context-settings-heading{display:grid;gap:2px}.deck-context-settings-heading strong{font-size:13px}.deck-context-settings-heading small{color:var(--deck-muted);font-size:11px}.deck-context-settings label{display:grid;gap:5px;color:var(--ink-2);font-size:11px;font-weight:700}.deck-context-settings input,.deck-context-settings textarea{box-sizing:border-box;width:100%;border:1px solid rgb(92 64 51 / 17%);border-radius:7px;background:var(--surface);color:var(--deck-ink);font:13px/1.45 var(--font-sans);padding:8px}.deck-context-settings textarea{resize:vertical}.deck-context-settings input:focus,.deck-context-settings textarea:focus{border-color:var(--deck-accent);outline:2px solid rgb(122 92 16 / 18%)}.deck-context-settings .deck-switch{font-weight:400}.deck-context-additions{display:grid;gap:8px}.deck-context-additions>div{display:grid;gap:2px}.deck-context-additions>div strong{font-size:13px}.deck-context-additions>div small,.deck-context-additions p{margin:0;color:var(--deck-muted);font-size:11px;line-height:1.45}.deck-context-addition{display:grid;gap:2px;width:100%;padding:9px 10px;border:1px solid var(--deck-line);border-radius:8px;background:transparent;color:var(--deck-accent);text-align:left;cursor:pointer}.deck-context-addition:hover{background:var(--surface);border-color:var(--deck-accent)}.deck-context-addition span{font-size:12px;font-weight:700}.deck-context-addition small{color:var(--deck-muted);font-size:10px}.deck-advanced-editor{display:grid;gap:12px;border-top:1px solid var(--deck-line);padding-top:14px}.deck-advanced-editor summary{color:var(--ink-2);cursor:pointer;font-size:12px;font-weight:700}.deck-advanced-editor>p{margin:-4px 0 0;color:var(--deck-muted);font-size:11px;line-height:1.45}.deck-workspace-layout .deck-inspector-tabs{border-color:var(--deck-line);background:var(--paper)}.deck-workspace-layout .deck-inspector-tabs button.is-active{color:var(--deck-accent);box-shadow:0 1px 3px #5c403314}.deck-workspace-layout .deck-section-picker,.deck-workspace-layout .deck-teaching-meta{border-color:var(--deck-line);background:var(--surface-sunk)}.deck-editor-page button:focus-visible,.deck-editor-page a:focus-visible{outline:3px solid rgb(122 92 16 / 28%);outline-offset:2px}@media(max-width:1120px){.deck-workspace-layout{grid-template-columns:210px minmax(0,1fr)}.deck-workspace-layout .deck-properties{grid-column:1 / -1;max-height:none}.deck-context-settings{grid-template-columns:repeat(2,minmax(0,1fr))}.deck-context-settings-heading,.deck-context-settings label:nth-child(4),.deck-context-settings .deck-switch{grid-column:1 / -1}.deck-overview-grid{grid-template-columns:minmax(0,1fr) 250px}}@media(max-width:760px){.deck-v2-topline{flex-wrap:wrap}.deck-v2-topline .deck-save-state{margin-left:0}.deck-path-picker,.deck-lesson-overview{padding:22px}.deck-path-picker-intro{justify-items:start;text-align:left}.deck-path-picker-intro h1,.deck-overview-header h1{font-size:29px}.deck-path-choices,.deck-overview-grid{grid-template-columns:1fr}.deck-path-choice,.deck-path-choice p{min-height:0}.deck-path-picker-footer,.deck-overview-header,.deck-workspace-header{align-items:stretch;flex-direction:column}.deck-overview-actions,.deck-workspace-actions{justify-content:flex-start}.deck-workspace-layout{grid-template-columns:1fr}.deck-workspace-layout .deck-page-rail{order:2}.deck-workspace-layout .deck-canvas-panel{order:1}.deck-workspace-layout .deck-properties{order:3;grid-column:auto}.deck-context-settings{grid-template-columns:1fr}.deck-context-settings-heading,.deck-context-settings label:nth-child(4),.deck-context-settings .deck-switch{grid-column:auto}.deck-workspace-layout .deck-properties{max-height:none}.deck-beat-rail{padding:10px}.deck-beat-rail nav{grid-template-columns:repeat(2,minmax(0,1fr))}.deck-beat-slide-list{padding-left:8px}.deck-beat-rail-group{min-width:0}}.deck-preview-word-detail{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:24px;align-items:center}.deck-preview-word-detail>div{min-width:0}.deck-preview-word-detail>img{width:100%;max-height:280px;object-fit:contain}.deck-preview-word-detail>div>.deck-preview-word-ruby{font-size:clamp(28px,3vw,48px)}.deck-preview-word-detail p{overflow-wrap:anywhere}.deck-preview-exercises{display:grid;gap:14px;font-size:18px}.deck-preview-exercises>ol{display:flex;flex-wrap:wrap;gap:12px 32px;padding-left:24px}.deck-exercise-answer{color:var(--deck-ink);font-weight:600}@media(max-width:760px){.deck-preview-word-detail{grid-template-columns:1fr;gap:12px}.deck-preview-word-detail>img{max-height:160px}}.deck-present-slide{max-height:calc(100dvh - 140px);justify-content:flex-start}.deck-present-slide>*{flex-shrink:0}.deck-exercise-prompt{white-space:pre-line;overflow-wrap:anywhere}.ai-courseware-page{max-width:1160px;margin-inline:auto;width:100%}.ai-courseware-heading,.ai-courseware-result>header{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.ai-courseware-heading h1{margin:0;font-size:clamp(26px,3vw,38px);text-wrap:balance}.ai-courseware-heading p{color:var(--muted);margin:8px 0 0}.ai-courseware-prepare,.ai-courseware-progress,.ai-courseware-revise{display:grid;gap:18px;padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:14px}.ai-courseware-page h2{margin:0;font-size:22px}.ai-courseware-page p{max-width:72ch;color:var(--muted);line-height:1.7}.ai-courseware-page label{display:grid;gap:8px;font-weight:600}.ai-courseware-page textarea{width:100%;min-height:86px;resize:vertical;padding:12px 14px;color:var(--ink);background:var(--surface);border:1px solid var(--gold-mark);border-radius:8px;font:inherit;box-sizing:border-box}.ai-courseware-page textarea::placeholder{color:var(--muted)}.ai-courseware-counts{display:flex;flex-wrap:wrap;gap:18px 30px;margin:0;padding-block:12px;border-block:1px solid var(--line)}.ai-courseware-counts>div{display:flex;gap:10px;align-items:baseline}.ai-courseware-counts dt{color:var(--muted);font-size:14px}.ai-courseware-counts dd{margin:0;font-weight:700;font-size:20px}.ai-courseware-page .primary-button,.ai-courseware-page .secondary-button{justify-self:start}.ai-courseware-page summary{cursor:pointer;color:var(--gold);font-weight:600;padding-block:10px}.ai-courseware-materials{max-height:300px;overflow:auto;padding:0;list-style:none}.ai-courseware-materials li{padding-block:9px;display:flex;gap:18px;justify-content:space-between;border-bottom:1px solid var(--line)}.ai-courseware-materials li span{min-width:0;overflow-wrap:anywhere}.ai-courseware-materials small{color:var(--muted);flex-shrink:0;max-width:50%}.ai-courseware-progress ol{display:flex;flex-wrap:wrap;gap:14px;padding:0;list-style:none}.ai-courseware-progress li{color:var(--muted);padding:8px 12px;border-radius:6px}.ai-courseware-progress li.is-current{background:var(--gold-soft);color:var(--ink);font-weight:700}.ai-courseware-progress li.is-complete{color:var(--accent)}.ai-courseware-result>img{display:block;width:100%;height:auto;margin-block:18px;border:1px solid var(--line);border-radius:8px}.ai-courseware-result nav{display:flex;justify-content:center;align-items:center;gap:20px}.ai-courseware-result nav label{display:flex;align-items:center;gap:6px}.ai-courseware-result select{padding:6px;font:inherit}.ai-courseware-error{padding:24px;background:var(--surface);border:1px solid var(--danger);border-radius:10px}.ai-courseware-history li{padding-block:7px}.ai-courseware-page button:focus-visible,.ai-courseware-page a:focus-visible,.ai-courseware-page textarea:focus-visible,.ai-courseware-page summary:focus-visible,.ai-courseware-page select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}@media(max-width:640px){.ai-courseware-prepare,.ai-courseware-progress,.ai-courseware-revise{padding:18px}.ai-courseware-result nav{gap:10px}.ai-courseware-materials li{flex-direction:column;gap:4px}.ai-courseware-materials small{max-width:100%}}.ai-courseware-heading{padding-block:10px 20px;border-bottom:1px solid var(--line)}.ai-courseware-heading h1{font-size:clamp(25px,2.8vw,34px);line-height:1.4;overflow-wrap:anywhere}.ai-courseware-heading .ai-courseware-english{font-size:clamp(17px,1.8vw,22px);line-height:1.5;color:var(--ink-2);font-weight:400;margin-top:6px}.ai-courseware-prepare{padding:0;gap:0;overflow:hidden}.ai-courseware-intro{display:flex;align-items:flex-start;gap:16px;padding:28px 30px 24px}.ai-courseware-mark{color:var(--gold);font-size:30px;line-height:1.2}.ai-courseware-intro p{margin:8px 0 0}.ai-courseware-workspace{display:grid;grid-template-columns:minmax(0,1fr) 300px;border-top:1px solid var(--line)}.ai-courseware-compose{display:grid;align-content:start;gap:20px;padding:28px 30px}.ai-courseware-compose textarea{margin-top:4px;min-height:138px}.ai-courseware-page .ai-courseware-hint{font-size:13px;margin:-6px 0 0}.ai-courseware-source{padding:28px 24px;background:var(--surface-sunk)}.ai-courseware-source h3{font-size:16px;margin:0 0 18px;color:var(--ink-2)}.ai-courseware-counts{display:grid;grid-template-columns:1fr 1fr;gap:14px 22px;padding:0;border:0}.ai-courseware-counts>div{justify-content:space-between;gap:8px}.ai-courseware-counts dd{font-size:16px;font-variant-numeric:tabular-nums}.ai-courseware-source .ai-courseware-reference{font-size:13px;padding-top:18px;border-top:1px solid var(--line);margin:22px 0 0}.word-image-success{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;color:var(--accent);font-size:14px}@media(max-width:760px){.ai-courseware-workspace{grid-template-columns:minmax(0,1fr)}.ai-courseware-intro,.ai-courseware-compose,.ai-courseware-source{padding:22px 20px}.ai-courseware-prepare{padding:0}.ai-courseware-source{border-top:1px solid var(--line)}.ai-courseware-counts{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 20px}}@media(max-width:400px){.ai-courseware-counts{grid-template-columns:repeat(2,minmax(0,1fr))}}.ai-courseware-progress{gap:16px}.ai-courseware-progress-heading{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:12px 24px}.ai-courseware-page-count{color:var(--ink);font-size:18px;font-variant-numeric:tabular-nums}.ai-courseware-progress>p{margin:0}.ai-courseware-progress .ai-courseware-round{font-size:14px}.ai-courseware-progress progress{width:100%;height:8px;accent-color:var(--gold)}.ai-courseware-progress ol{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:8px 0}.ai-courseware-progress li{display:flex;flex-direction:column;gap:4px;padding:12px;background:var(--surface-sunk)}.ai-courseware-progress li span{font-size:15px}.ai-courseware-progress li small{font-size:12px;font-weight:400}.ai-courseware-progress li.is-current{background:var(--line);color:var(--ink);outline:1px solid var(--gold)}.ai-courseware-progress-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:12px;border-top:1px solid var(--line)}.ai-courseware-progress-footer p{margin:0;font-size:14px}.ai-courseware-revise>div>p{margin:8px 0 0;font-size:14px}.ai-courseware-revision-fields input{width:min(100%,280px);padding:11px 12px;border:1px solid var(--gold-mark);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit}.ai-courseware-revision-fields input::placeholder{color:var(--muted)}.ai-courseware-revision-fields input:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.ai-courseware-history ul{padding:0;margin:14px 0 0;list-style:none}.ai-courseware-history li{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}.ai-courseware-history-title{min-width:0;display:grid;gap:6px;overflow-wrap:anywhere}.ai-courseware-history-title small{color:var(--muted)}.ai-courseware-history-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px 14px;flex-shrink:0;font-size:14px}.ai-courseware-history-actions .danger-text{color:var(--danger)}.ai-courseware-regenerate{margin-block:0 8px}.ai-courseware-regenerate>summary{padding:12px 0}@media(max-width:640px){.ai-courseware-progress ol{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-courseware-history li{align-items:flex-start;flex-direction:column;gap:8px}.ai-courseware-history-actions{flex-shrink:1}}.admin-batch-start{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.admin-batch-start label{display:inline-flex;align-items:center;gap:8px;color:var(--ink-2);font-size:14px}.admin-batch-start select{min-height:38px;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font:inherit}.admin-batch-start p{flex-basis:100%;margin:0;color:var(--muted);font-size:13px}.admin-batch{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.admin-batch>header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.admin-batch>header>div:first-child{display:flex;align-items:center;gap:10px}.admin-batch-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-batch-status{padding:2px 10px;border-radius:999px;background:var(--surface-sunk);color:var(--ink-2);font-size:12px;font-weight:700}.admin-batch-status--running{background:#e3f0f6;color:#23627d}.admin-batch-status--completed{background:var(--accent-soft);color:var(--accent)}.admin-batch-status--paused{background:var(--gold-soft);color:var(--gold)}.admin-batch-bar{display:flex;height:12px;overflow:hidden;border-radius:999px;background:var(--accent-soft)}.admin-batch-bar i{display:block;height:100%}.admin-batch-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0;padding:0;color:var(--muted);font-size:13px;list-style:none}.admin-batch-legend i{display:inline-block;width:9px;height:9px;margin-right:6px;border-radius:3px}.admin-batch-legend strong{color:var(--ink)}.admin-batch-note{margin:0;color:var(--ink-2);font-size:14px}.admin-batch-detail summary{color:#23627d;font-size:14px;font-weight:650;cursor:pointer}.admin-batch-detail ul{display:grid;gap:4px;margin:8px 0 0;padding-left:20px;color:var(--ink-2);font-size:13px}.legal-meta{margin:0;color:var(--muted)!important;font-size:13px}.legal-toc{margin:22px 0 6px;padding:16px 20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 20px;border-radius:10px;background:var(--paper);font-size:14px}.legal-toc a{color:var(--accent);text-decoration:none}.legal-toc a:hover{text-decoration:underline}.legal-document section{scroll-margin-top:20px}.legal-document ul{margin:0 0 8px;padding-left:1.4em;color:var(--ink-2);line-height:1.8}.legal-document li+li{margin-top:4px}.legal-document>.legal-meta:last-child{margin-top:32px;padding-top:16px;border-top:1px solid var(--line)}@media(max-width:640px){.legal-toc{grid-template-columns:1fr}}.legal-meta a{color:var(--accent)}.admin-user-table--accounts .admin-user-row{grid-template-columns:1.1fr .8fr 1.4fr .8fr .55fr}.admin-user-active{color:var(--muted);font-size:14px;white-space:nowrap}@media(max-width:760px){.admin-user-table--accounts .admin-user-row{grid-template-columns:1fr 1fr}.admin-user-active:before{content:"最近活跃 ";color:var(--muted)}}.ai-model-list{display:grid;gap:16px;margin-top:16px}.ai-model-card{padding:18px 20px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.ai-model-card>header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.ai-model-card h3{margin:0;font-size:18px}.ai-model-card>header p{margin:4px 0 0;color:var(--muted);font-size:14px}.ai-model-badge{flex:none;padding:3px 10px;border-radius:999px;background:var(--paper);color:var(--muted);font-size:13px}.ai-model-badge.is-custom{background:var(--accent-soft);color:var(--accent-strong)}.ai-model-slots{display:grid;gap:10px;margin:14px 0 0;padding:0;list-style:none}.ai-model-slots li{display:grid;grid-template-columns:96px minmax(160px,220px) minmax(180px,1fr) auto;gap:10px;align-items:center}.ai-model-slot-name{font-weight:600;color:var(--ink-2);font-size:14px}.ai-model-slots select,.ai-model-slots input{width:100%;min-height:38px;box-sizing:border-box}.ai-model-slot-actions{display:flex;gap:4px}.ai-model-result{grid-column:2 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;background:var(--paper);color:var(--ink-2);font-size:14px}.ai-model-result.is-ok{background:var(--success-soft);color:var(--success)}.ai-model-result.is-fail{background:var(--danger-soft);color:var(--danger)}.ai-model-result audio{height:34px}.ai-model-result img{width:80px;height:80px;object-fit:cover;border-radius:6px}.ai-model-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px}@media(max-width:760px){.ai-model-slots li{grid-template-columns:1fr 1fr}.ai-model-slot-name,.ai-model-slot-actions,.ai-model-result{grid-column:1 / -1}}.ai-model-mode{display:flex;flex-wrap:wrap;gap:10px 22px;margin:14px 0 0;padding:10px 14px;border:1px solid var(--line-soft);border-radius:10px;background:var(--surface-sunk)}.ai-model-mode legend{padding:0 6px;color:var(--muted);font-size:13px}.ai-model-mode label{display:flex;gap:8px;align-items:flex-start;max-width:420px;cursor:pointer}.ai-model-mode input{margin-top:4px;accent-color:var(--accent)}.ai-model-mode span{display:grid;gap:2px;font-size:14px}.ai-model-mode small{color:var(--muted);font-size:12.5px;line-height:1.5}.admin-user-table--accounts .admin-user-row{grid-template-columns:1fr .8fr 1.3fr .7fr .5fr 1.5fr}.account-controls{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.account-controls select{min-height:32px}.account-controls input{width:70px;min-height:32px}.membership-form{display:grid;gap:16px;margin-top:16px;padding:18px 20px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.membership-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.membership-grid label,.membership-costs label{display:grid;gap:4px;font-size:14px;font-weight:500}.membership-grid small{color:var(--muted);font-weight:400;font-size:12px}.membership-costs{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:0;padding:12px 14px;border:1px solid var(--line-soft);border-radius:10px}.membership-costs legend{padding:0 6px;color:var(--muted);font-size:13px}.membership-subheading{margin:26px 0 6px;font-size:17px}.membership-hint{margin:0 0 12px;color:var(--muted);font-size:14px}.membership-cost-table{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.membership-cost-row{display:grid;grid-template-columns:1.4fr .5fr .9fr .9fr .9fr .6fr .6fr 2fr;gap:10px;min-width:860px;padding:10px 14px;border-bottom:1px solid var(--line-soft);font-size:14px}.membership-cost-row.is-header{color:var(--muted);font-size:13px}.membership-cost-row small{color:var(--muted);overflow-wrap:anywhere}@media(max-width:760px){.membership-grid{grid-template-columns:1fr}.admin-user-table--accounts .admin-user-row{grid-template-columns:1fr 1fr}.account-controls{grid-column:1 / -1}}.language-switch{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;flex-shrink:0;min-height:44px;padding:0 10px;border:0;background:none;color:inherit;font:inherit;font-size:14px;cursor:pointer;border-radius:8px}.language-switch span{font-size:12px;font-weight:600;letter-spacing:-.02em;opacity:.7}.language-switch:hover{color:var(--accent)}.language-switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.protection-row{grid-template-columns:.9fr 1.4fr 1.6fr .6fr .7fr .9fr .8fr;min-width:820px}.protection-row small{color:var(--muted)}.protection-trace-field{display:grid;gap:6px;font-size:14px;font-weight:500}.protection-trace-field textarea{width:100%}.protection-trace-results{display:grid;gap:8px;margin:0;padding-left:18px;font-size:14px}.protection-trace-results li{display:grid;gap:2px}.word-visual-panel{display:grid;gap:14px}.word-diagram{width:100%;max-width:560px;height:auto;margin:0 auto;display:block}.word-diagram--position{max-width:300px}.word-diagram-axis,.word-diagram-road{stroke:var(--muted);stroke-width:3;fill:none}.word-diagram-road{stroke-dasharray:8 6}.word-diagram-arrowhead{fill:var(--muted)}.word-diagram-now{stroke:var(--ink-2, #333);stroke-width:2;stroke-dasharray:4 4}.word-diagram-tick{fill:var(--surface);stroke:var(--muted);stroke-width:2}.word-diagram-highlight{fill:var(--accent);opacity:.9}.word-diagram-box{fill:var(--surface-2, #eee);stroke:var(--line, #ccc);stroke-width:2}.word-diagram-day{fill:#f6e7b8}.word-diagram-night{fill:#c9cfe3}.word-diagram-label{fill:var(--muted);font-size:16px}.word-diagram-target{fill:var(--accent);font-size:20px;font-weight:700}.word-visual-pairs{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.word-visual-pairs span{padding:8px 16px;border:1px solid var(--line);border-radius:999px;font-size:22px;background:var(--surface)}.word-visual-example{margin:0;padding:14px 16px;border-radius:12px;background:var(--surface-2, #f5f5f0);font-size:22px}.word-visual-example figcaption{margin-top:6px;color:var(--muted);font-size:13px}.word-visual-hint{margin:0;color:var(--muted);font-size:14px}.word-visual-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.word-visual-editor{display:grid;gap:10px;padding-top:10px;border-top:1px solid var(--line)}.word-visual-editor label{display:grid;gap:4px;font-size:14px;font-weight:500}.word-image-example{margin-top:10px;font-size:20px;text-align:center}.ai-quota-card{display:grid;gap:12px;margin:16px 0 20px;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.ai-quota-card header{display:flex;align-items:center;justify-content:space-between;gap:12px}.ai-quota-card h3{margin:0;font-size:16px}.ai-quota-windows{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none}.ai-quota-row{display:flex;justify-content:space-between;gap:8px;font-size:14px}.ai-quota-row span{color:var(--muted);font-variant-numeric:tabular-nums}.ai-quota-bar{height:8px;margin:6px 0 4px;overflow:hidden;border-radius:999px;background:var(--surface-sunk);box-shadow:inset 0 0 0 1px var(--line-soft)}.ai-quota-bar span{display:block;height:100%;border-radius:inherit;background:var(--accent)}.ai-quota-bar.is-mid span{background:var(--gold)}.ai-quota-bar.is-high span{background:var(--danger)}.ai-quota-windows small{color:var(--muted);font-size:12px}.ai-quota-note{margin:0;color:var(--muted);font-size:13px}@media(max-width:760px){.ai-quota-windows{grid-template-columns:1fr}}.ai-quota-subtitle{margin:0;font-size:14px;color:var(--ink-2)}.ai-quota-budgets{display:grid;gap:14px;margin:4px 0 0;padding:12px 0 0;border-top:1px solid var(--line-soft);list-style:none}.ai-quota-budgets small{color:var(--muted);font-size:12px}:root{--paper: #F4EFE6;--paper-deep: #EBE3D6;--surface: #FFFDF9;--surface-sunk: #FAF6EE;--line: #E3DBCD;--line-strong: #D3C8B6;--line-soft: #EEE7DB;--ink: #1E2B28;--ink-2: #3D4A46;--muted: #5C6965;--accent: #17675B;--accent-strong: #0F4F45;--accent-soft: #E6F0EC;--accent-line: #CFE0D9;--gold: #8A6420;--gold-ink: #6E4F17;--gold-soft: #F3E9D2;--gold-mark: #A87A2A;--danger: #A33F36;--danger-soft: #FBEDEA;--success: #2F6B3A;--success-soft: #E7F2E6;--font-serif: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", "SimSun", serif;--font-sans: "PingFang SC", "Noto Sans SC", "Source Han Sans SC", "Microsoft YaHei", system-ui, sans-serif;--font-pinyin: "Fltrp-pinyin Pinyin", "Times New Roman", "Tinos", "Source Serif 4", serif;--font-label: var(--font-sans);--text-xs: 12px;--text-sm: 14px;--text-md: 15px;--text-lg: 17px;--title-sm: 20px;--title-md: 26px;--title-lg: 32px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(60, 45, 20, .06);--shadow-md: 0 4px 14px rgba(60, 45, 20, .08);--shadow-lg: 0 14px 36px rgba(60, 45, 20, .14);--focus-ring: 0 0 0 3px rgba(23, 103, 91, .28);--sidebar-width: 232px;--sidebar-rail: 72px;--topbar-height: 60px;--bottom-nav-height: 64px;--kraft: var(--paper);--parchment: var(--surface);--cream: var(--surface);--brown: var(--ink-2);--brown-light: var(--muted);--gold-light: var(--gold-mark);--gold-bright: var(--gold-mark);--gold-glow: rgba(23, 103, 91, .16);--error: var(--danger);--surface-soft: var(--accent-soft);--surface-dim: var(--paper-deep);--on-surface: var(--ink);--on-surface-variant: var(--ink-2);--outline: var(--line-strong);--outline-variant: var(--line);--radius-xl: 14px;--shadow-soft: var(--shadow-sm);color:var(--ink);background:var(--paper);font-family:var(--font-sans)}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-md);line-height:1.6;-webkit-font-smoothing:antialiased}[lang=en],.latin,.pinyin-reading{font-family:var(--font-pinyin)}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:none;box-shadow:var(--focus-ring)}.skip-link{position:absolute;left:12px;top:-48px;z-index:100;padding:10px 14px;border-radius:var(--radius-md);background:var(--accent);color:var(--surface);text-decoration:none}.skip-link:focus{top:12px}.studio-shell{min-height:100vh;background:var(--paper)}.studio-sidebar{position:fixed;inset:0 auto 0 0;z-index:20;width:var(--sidebar-width);display:flex;flex-direction:column;gap:24px;padding:20px 14px;overflow-y:auto;background:var(--paper);border-right:1px solid var(--line)}.studio-brand{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 6px;color:var(--ink);text-decoration:none}.brand-mark{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:var(--radius-md);background:var(--accent);color:var(--surface);font:700 19px/1 var(--font-serif)}.brand-text{font:700 18px/1.2 var(--font-serif);letter-spacing:.02em;white-space:nowrap}.studio-nav{display:grid;gap:2px;align-content:start}.studio-nav-bottom{margin-top:auto;padding-top:14px;border-top:1px solid var(--line)}.studio-nav-group{margin:18px 12px 4px;color:var(--muted);font-size:var(--text-xs)}.studio-nav a{display:flex;align-items:center;gap:11px;min-height:40px;padding:8px 12px;border-radius:var(--radius-md);color:var(--ink-2);text-decoration:none;white-space:nowrap;transition:background .15s ease,color .15s ease}.studio-nav a svg{flex:none;color:var(--muted)}.studio-nav a:hover{background:var(--paper-deep);color:var(--ink)}.studio-nav a.active{background:var(--surface);color:var(--accent);font-weight:600;box-shadow:0 0 0 1px var(--line)}.studio-nav a.active svg{color:var(--accent)}.studio-nav a.studio-nav-member,.studio-sheet a.studio-nav-member{margin:6px 0 2px;background:linear-gradient(135deg,#f6e3b4,#e9c77b);color:#5b3b07;font-weight:700;box-shadow:0 1px #5b3b071f,inset 0 0 0 1px #5b3b0724}.studio-nav a.studio-nav-member svg,.studio-sheet a.studio-nav-member svg{color:#8a5a00}.studio-nav a.studio-nav-member:hover,.studio-sheet a.studio-nav-member:hover{background:linear-gradient(135deg,#f3d99a,#e2b85c);color:#4a2f04}.studio-nav a.studio-nav-member.active{box-shadow:inset 0 0 0 2px #b9862c}.nav-member-tag{margin-left:auto;padding:1px 7px;border-radius:999px;background:#ffffffa6;color:#8a5a00;font-size:11px;font-weight:600}.studio-content{min-width:0;margin-left:var(--sidebar-width)}.studio-topbar{position:sticky;top:0;z-index:15;display:flex;align-items:center;gap:16px;height:var(--topbar-height);padding:0 clamp(20px,3vw,48px);background:color-mix(in srgb,var(--paper) 92%,transparent);-webkit-backdrop-filter:saturate(1.2) blur(8px);backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid var(--line)}.studio-topbar-brand{display:none;text-decoration:none}.studio-search{display:flex;align-items:center;gap:8px;width:min(360px,100%);margin-left:auto;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--muted)}.studio-search:focus-within{border-color:var(--accent);box-shadow:var(--focus-ring)}.studio-search input{flex:1;min-width:0;height:36px;border:0;outline:0;background:transparent;color:var(--ink);font-size:var(--text-sm)}.studio-search input:focus-visible{box-shadow:none}.studio-account{position:relative;display:flex;align-items:center;gap:10px;color:var(--ink-2);font-size:var(--text-sm)}.studio-account-trigger{display:grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer}.studio-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--gold-soft);color:var(--gold-ink);border:1px solid var(--line-strong);font-weight:600}.studio-account-trigger:hover .studio-avatar,.studio-account-trigger[aria-expanded=true] .studio-avatar{border-color:var(--gold-mark)}.studio-account-menu{position:absolute;z-index:40;top:calc(100% + 8px);right:0;width:232px;padding:6px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg)}.studio-account-summary{display:grid;gap:2px;padding:10px 10px 12px;margin-bottom:4px;border-bottom:1px solid var(--line-soft)}.studio-account-summary strong{color:var(--ink);font-size:var(--text-sm)}.studio-account-summary small{overflow:hidden;color:var(--muted);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap}.studio-account-menu>a,.studio-account-menu>button{display:flex;align-items:center;gap:9px;width:100%;min-height:40px;padding:0 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink-2);cursor:pointer;font:500 var(--text-sm)/1 var(--font-sans);text-decoration:none}.studio-account-menu>a:hover,.studio-account-menu>button:hover{background:var(--paper);color:var(--ink)}.studio-account-menu>button:disabled{cursor:wait;opacity:.6}.studio-account-menu>.form-error{display:block;padding:6px 10px 2px}.studio-main{width:100%;max-width:1360px;margin:0 auto;padding:28px clamp(20px,3vw,48px) 72px;outline:none}.studio-tabbar,.studio-sheet-backdrop{display:none}@media(max-width:1199px){.studio-sidebar{width:var(--sidebar-rail);padding:16px 10px;align-items:center}.studio-brand{padding:0}.studio-sidebar .brand-text,.studio-sidebar .nav-text,.studio-nav-group,.studio-sidebar .nav-member-tag{display:none}.studio-nav{justify-items:center}.studio-nav a{justify-content:center;width:48px;min-height:44px;padding:0}.studio-content{margin-left:var(--sidebar-rail)}}@media(max-width:767px){.studio-sidebar{display:none}.studio-content{margin-left:0}.studio-topbar{gap:10px;height:56px;padding:0 12px 0 16px}.studio-topbar-brand{display:block}.studio-topbar-brand .brand-mark{width:30px;height:30px;font-size:17px}.studio-search{width:auto;flex:1;margin-left:4px}.studio-account-name{display:none}.studio-main{padding:18px 16px calc(var(--bottom-nav-height) + 32px + env(safe-area-inset-bottom))}.studio-tabbar{position:fixed;inset:auto 0 0;z-index:30;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line)}.studio-tabbar a,.studio-tabbar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:44px;border:0;background:transparent;color:var(--muted);font:500 11px/1.2 var(--font-sans);text-decoration:none;cursor:pointer}.studio-tabbar a.active,.studio-tabbar button.active{color:var(--accent);font-weight:700}.studio-sheet-backdrop{position:fixed;inset:0;z-index:25;display:block;background:#1e2b2847}.studio-sheet{position:absolute;inset:auto 0 calc(var(--bottom-nav-height) + env(safe-area-inset-bottom)) 0;display:grid;gap:2px;padding:10px 12px 14px;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--surface);box-shadow:var(--shadow-lg)}.studio-sheet a{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 12px;border-radius:var(--radius-md);color:var(--ink);text-decoration:none}.studio-sheet a svg{color:var(--muted)}.studio-sheet a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}}.page-heading h1,.courses-heading h1{margin:2px 0 6px;font:700 clamp(26px,2.6vw,var(--title-lg))/1.3 var(--font-serif);letter-spacing:.01em;color:var(--ink);max-width:none}.page-heading h2{font-family:var(--font-serif)}.page-heading>p:last-child,.page-heading p:not(.eyebrow):not(.section-label){color:var(--muted)}.eyebrow,.section-label{margin:0;color:var(--gold);font:500 var(--text-sm)/1.4 var(--font-sans);letter-spacing:0;text-transform:none}.section-title-row h2,.page-stack>section>h2{font-family:var(--font-serif)}.breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 14px;padding:0;list-style:none;color:var(--muted);font-size:var(--text-sm)}.breadcrumbs a{color:var(--accent);text-decoration:none}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs li+li:before{content:"›";margin-right:6px;color:var(--line-strong)}.breadcrumbs [aria-current=page]{color:var(--ink)}.has-breadcrumbs .back-link{display:none}@media(max-width:767px){.breadcrumbs{display:none}.has-breadcrumbs .back-link{display:inline-flex}}.back-link{display:inline-flex;align-items:center;gap:6px;width:fit-content;min-height:44px;padding:0 4px;border:0;background:transparent;color:var(--accent);font-size:var(--text-sm);font-weight:500;text-decoration:none}.back-link:hover{color:var(--accent-strong);text-decoration:underline}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 18px;border:0;border-radius:var(--radius-md);background:var(--accent);color:var(--surface);font-weight:500;text-decoration:none;box-shadow:none;cursor:pointer}.primary-button:hover{background:var(--accent-strong);box-shadow:none}.primary-button:disabled,.primary-button[aria-disabled=true]{background:var(--line-strong);color:var(--muted);cursor:not-allowed}.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 16px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);text-decoration:none;cursor:pointer}.secondary-button:hover{border-color:var(--muted);background:var(--surface)}.text-button{color:var(--accent)}.search-field input{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius-md);padding:11px 14px;background:var(--surface);color:var(--ink);outline:none}.search-field input:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}select,textarea,input:not([type=checkbox]):not([type=radio]):not([type=range]){accent-color:var(--accent)}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}.skeleton{display:block;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--paper-deep) 0%,var(--surface-sunk) 50%,var(--paper-deep) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite}.skeleton-stack{display:grid;gap:12px}.skeleton-line{height:14px}.skeleton-title{height:30px;width:min(420px,70%)}.skeleton-block{height:120px;border-radius:var(--radius-lg)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}.page-loading{display:grid;gap:16px;padding:8px 0}.empty-card{display:grid;gap:6px;padding:28px;border:1px dashed var(--line-strong);border-radius:var(--radius-lg);background:var(--surface-sunk);box-shadow:none}.empty-card strong{font-family:var(--font-serif);font-size:var(--title-sm);color:var(--ink)}.empty-card span,.empty-card p{color:var(--muted)}.empty-card .empty-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.query-error-card{display:grid;gap:6px;padding:18px 20px;border:1px solid color-mix(in srgb,var(--danger) 30%,var(--line));border-radius:var(--radius-lg);background:var(--danger-soft)}.query-error-card strong{color:var(--danger)}.query-error-card span{color:var(--ink-2)}.query-error-card .text-button{justify-self:start;min-height:40px;padding:0 14px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);cursor:pointer}.loading-page{display:block;place-items:normal;min-height:100vh;padding:48px clamp(20px,5vw,96px);background:var(--paper);color:var(--muted)}.loading-page .page-loading{max-width:960px;margin:0 auto}.loading-page>div:not(.page-loading){max-width:420px;margin:18vh auto 0;text-align:center}.loading-page-title{margin:0 0 16px;color:var(--ink);font:700 24px/1.3 var(--font-serif)}.credit-badge{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink-2, inherit);font-size:13px;white-space:nowrap;text-decoration:none}.credit-badge strong{color:var(--accent);font-size:15px;font-variant-numeric:tabular-nums}.credit-badge:hover{border-color:var(--accent)}.credit-badge--low{border-color:#d97706;background:#fff7ed}.credit-badge--low strong{color:#c2410c}@media(max-width:719px){.credit-badge{min-height:30px;padding:0 9px;font-size:12px}.credit-badge-label{display:none}.credit-badge strong:before{content:"⭑ ";font-weight:400}}.segmented{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line-strong);border-radius:var(--radius-md);overflow:hidden;background:var(--surface)}.segmented button{min-height:36px;padding:0 14px;border:0;border-left:1px solid var(--line-strong);background:transparent;color:var(--ink-2);font:500 var(--text-sm)/1 var(--font-sans);cursor:pointer}.segmented button:first-child{border-left:0}.segmented button:hover{background:var(--paper)}.segmented button[aria-pressed=true]{background:var(--ink);color:var(--surface)}.segmented--levels{display:grid;flex:1;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}.home-switcher__levels{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:var(--text-sm);font-weight:600}.segmented--levels button[aria-pressed=true]{background:var(--accent)}.home-desk{gap:28px}.home-desk__heading h1{font-size:clamp(28px,3vw,34px)}.home-desk__top{display:flex;flex-wrap:wrap;gap:24px;align-items:stretch}.home-continue{flex:2 1 540px;min-width:0;display:flex;flex-direction:column;gap:20px;padding:26px 30px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface)}.home-continue__head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:flex-start}.home-continue__head h2{margin:2px 0 0;font:700 clamp(22px,2.2vw,27px)/1.35 var(--font-serif);color:var(--ink)}.home-continue__en{margin:2px 0 0;color:var(--muted);font-size:var(--text-md)}.home-continue__count{color:var(--muted);font-size:var(--text-sm)}.home-continue__steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}.home-continue__steps li{display:flex;flex-direction:column;gap:6px;padding:14px 10px 0 0;margin-top:-1px;border-top:2px solid transparent;color:var(--ink-2);font-size:var(--text-sm);font-weight:500}.home-continue__steps li.is-done,.home-continue__steps li.is-current{border-top-color:var(--accent)}.home-continue__mark{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--line-strong);color:var(--muted);font-size:12px}.is-done>.home-continue__mark{border-color:var(--accent);background:var(--accent);color:var(--surface)}.is-current>.home-continue__mark{border:1.5px solid var(--accent);color:var(--accent);font-weight:700}.home-continue__actions{display:flex;flex-wrap:wrap;gap:12px}.home-switcher{flex:1 1 300px;min-width:0;display:flex;flex-direction:column;gap:14px;padding:22px 24px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface)}.home-switcher h2{margin:0;font:700 var(--title-sm)/1.3 var(--font-serif)}.home-switcher__list{margin:0;padding:0;list-style:none}.home-switcher__list li+li{border-top:1px solid var(--line-soft)}.home-switcher__list a{display:flex;align-items:center;gap:12px;min-height:44px;padding:6px 8px;border-radius:var(--radius-sm);color:var(--ink);text-decoration:none}.home-switcher__list a:hover{background:var(--paper)}.home-switcher__list a.is-current{background:var(--accent-soft)}.home-switcher__no{flex:none;width:52px;color:var(--muted);font-size:var(--text-sm)}.home-switcher__title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-switcher__tag{color:var(--gold);font-size:var(--text-xs)}.home-switcher__all{margin-top:auto;color:var(--accent);font-size:var(--text-sm);text-decoration:none}.home-switcher__all:hover{text-decoration:underline}.home-tools{display:flex;flex-wrap:wrap;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden}.home-tools a{flex:1 1 220px;display:flex;gap:12px;align-items:flex-start;padding:16px 20px;color:var(--ink);text-decoration:none;border-left:1px solid var(--line)}.home-tools a:first-child{border-left:0}.home-tools a:hover{background:var(--surface-sunk)}.home-tools svg{flex:none;margin-top:3px;color:var(--accent)}.home-tools strong{display:block;font-weight:600}.home-tools small{color:var(--muted);font-size:var(--text-sm)}.home-recent{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:28px}.home-recent__head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.home-recent__head h2{margin:0;font:700 var(--title-sm)/1.3 var(--font-serif)}.home-recent__head a{color:var(--accent);font-size:var(--text-sm);text-decoration:none}.home-recent__list{margin:0;padding:0;list-style:none;border-top:1px solid var(--line-strong)}.home-recent__list li{border-bottom:1px solid var(--line)}.home-recent__list a{display:flex;flex-direction:column;gap:2px;padding:12px 4px;color:var(--ink);text-decoration:none}.home-recent__list a:hover .home-recent__title{color:var(--accent)}.home-recent__title{font-weight:500}.home-recent__list small{color:var(--muted);font-size:var(--text-sm)}.home-recent__empty{margin:0;padding:14px 4px;border-top:1px solid var(--line-strong);color:var(--muted);font-size:var(--text-sm)}.course-card-modern__index{display:none!important}.course-card-modern__status{padding:1px 8px;border-radius:var(--radius-full);background:var(--gold-soft)!important;color:var(--gold-ink)!important;font-weight:500}.course-grid-empty{grid-column:1 / -1}.lesson-workbench{gap:22px}.lesson-header{display:flex;flex-wrap:wrap;gap:18px;justify-content:space-between;align-items:flex-end;padding-bottom:20px;border-bottom:1px solid var(--line-strong)}.lesson-header__titles{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;gap:4px}.lesson-header h1{margin:0;font:700 clamp(28px,3vw,var(--title-lg))/1.3 var(--font-serif);color:var(--ink)}.lesson-header__meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;color:var(--muted)}.lesson-header__meta .lesson-title-en{font-size:var(--text-lg);color:var(--ink-2)}.lesson-header__note{margin:4px 0 0;color:var(--muted);font-size:var(--text-sm)}.topic-chip{max-width:100%;overflow-wrap:anywhere;padding:2px 10px;border-radius:var(--radius-full);background:var(--gold-soft);color:var(--gold-ink);font-size:13px}.lesson-save-action{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.lesson-auto-save-note{color:var(--muted);font-size:var(--text-xs)}.lesson-layout{display:flex;flex-wrap:wrap;gap:32px;align-items:flex-start}.lesson-layout__main{flex:999 1 560px;min-width:0;display:flex;flex-direction:column;gap:24px}.lesson-inline-note{margin:0;padding:10px 14px;border-radius:var(--radius-md);background:var(--surface-sunk);color:var(--muted);font-size:var(--text-sm)}.lesson-next{align-self:flex-end}.lesson-steps ol{margin:0;padding:0;list-style:none}.lesson-step{display:flex;align-items:center;gap:10px;color:var(--ink-2);text-decoration:none}.lesson-step__mark{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--line-strong);color:var(--muted);font-size:12px;background:var(--surface)}.lesson-step.is-done .lesson-step__mark{border-color:var(--accent);background:var(--accent);color:var(--surface)}.lesson-step.is-current .lesson-step__mark{border:1.5px solid var(--accent);color:var(--accent);font-weight:700}.lesson-step.is-current{color:var(--ink);font-weight:600}.lesson-steps--rail{flex:1 1 200px;max-width:220px;position:sticky;top:calc(var(--topbar-height) + 20px)}.lesson-steps--rail ol{display:grid;gap:2px}.lesson-steps--rail .lesson-step{min-height:44px;padding:8px 12px;border-radius:var(--radius-md)}.lesson-steps--rail .lesson-step:hover{background:var(--paper-deep)}.lesson-steps--rail .lesson-step.is-current{background:var(--surface);box-shadow:inset 3px 0 0 var(--accent),0 0 0 1px var(--line)}.lesson-steps--bar{margin:-4px 0 18px;overflow-x:auto;scrollbar-width:none}.lesson-steps--bar::-webkit-scrollbar{display:none}.lesson-steps--bar ol{display:flex;gap:6px;min-width:max-content}.lesson-steps--bar .lesson-step{min-height:38px;padding:0 14px 0 6px;border:1px solid var(--line);border-radius:var(--radius-full);background:var(--surface);font-size:var(--text-sm);white-space:nowrap}.lesson-steps--bar .lesson-step:hover{border-color:var(--line-strong)}.lesson-steps--bar .lesson-step.is-current{border-color:var(--ink);background:var(--ink);color:var(--surface)}.lesson-steps--bar .lesson-step.is-current .lesson-step__mark{border-color:var(--surface);color:var(--surface);background:transparent}.lesson-steps--bar .lesson-step__mark{width:26px;height:26px}.lesson-vocab{display:flex;flex-direction:column;gap:14px}.lesson-vocab__head{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center}.lesson-vocab__head h2{margin:0;font:700 22px/1.3 var(--font-serif)}.lesson-vocab__head h2 small{margin-left:6px;color:var(--muted);font:400 var(--text-md) var(--font-sans)}.lesson-vocab__tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.lesson-vocab__tools .secondary-button{min-height:36px;padding:0 14px;font-size:var(--text-sm)}.word-list{margin:0;padding:0;list-style:none;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface)}.word-row{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(0,2fr) auto;gap:16px;align-items:center;padding:10px 18px}.word-row+.word-row{border-top:1px solid var(--line-soft)}.word-row__word{display:flex;align-items:flex-end;gap:8px;min-width:0}.word-row__ruby .pinyin-hanzi{font-size:24px;font-weight:500}.word-row__ruby .pinyin-reading{font-size:14px;color:var(--ink-2)}.key-badge{flex:none;margin-bottom:6px;padding:0 6px;border-radius:4px;background:var(--gold-soft);color:var(--gold-ink);font-size:12px;line-height:1.6}.word-row__gloss{display:flex;gap:12px;align-items:baseline;min-width:0}.word-row__pos{flex:none;min-width:44px;color:var(--muted);font-size:var(--text-sm)}.word-row__english{min-width:0;color:var(--ink);font-size:16px;overflow-wrap:anywhere}.word-row .word-media-actions{justify-content:flex-end}.lesson-vocab__uses{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;padding:12px 16px;border-radius:var(--radius-md);background:var(--surface-sunk);font-size:var(--text-sm)}.lesson-vocab__uses span{color:var(--muted)}.lesson-vocab__uses a{color:var(--accent);text-decoration:none}.lesson-vocab__uses a:hover{text-decoration:underline}.course-notes{padding:20px 22px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface)}.course-notes h2{margin:0 0 8px;font:700 var(--title-sm)/1.3 var(--font-serif)}@media(max-width:1199px){.lesson-steps--rail{max-width:100%;min-width:0;flex-basis:100%;position:static}.lesson-steps--rail ol{display:flex;gap:6px;overflow-x:auto}.lesson-steps--rail .lesson-step{min-height:38px;padding:0 14px 0 6px;border:1px solid var(--line);border-radius:var(--radius-full);background:var(--surface);white-space:nowrap;font-size:var(--text-sm)}.lesson-steps--rail .lesson-step.is-current{box-shadow:none;border-color:var(--ink);background:var(--ink);color:var(--surface)}.lesson-steps--rail .lesson-step.is-current .lesson-step__mark{border-color:var(--surface);color:var(--surface);background:transparent}}@media(max-width:767px){.home-continue,.home-switcher{padding:18px}.home-continue__steps{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:8px}.home-continue__actions>*{flex:1 1 auto}.home-tools a{flex-basis:50%;border-left:0;border-top:1px solid var(--line);padding:14px 16px}.home-tools a:nth-child(-n+2){border-top:0}.home-tools a:nth-child(2n){border-left:1px solid var(--line)}.home-tools small{display:none}.lesson-header{align-items:stretch}.lesson-save-action{align-items:stretch;width:100%}.lesson-save-action .primary-button{width:100%}.word-row{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:12px 14px}.word-row__gloss{grid-column:1 / -1;grid-row:2}.word-row .word-media-actions{grid-column:2;grid-row:1}.lesson-next{align-self:stretch}}.word-row .word-media-actions{display:inline-flex;flex-wrap:nowrap;gap:0}.word-row .word-media-actions>button{min-height:36px;padding:0 12px;border:1px solid var(--line-strong);border-left-width:0;border-radius:0;background:var(--surface);color:var(--ink-2);font-size:13px;box-shadow:none;white-space:nowrap}.word-row .word-media-actions>button:first-child{border-left-width:1px;border-radius:var(--radius-md) 0 0 var(--radius-md);background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent);font-weight:600}.word-row .word-media-actions>button:last-of-type{border-radius:0 var(--radius-md) var(--radius-md) 0}.word-row .word-media-actions>button:hover:not(:disabled){background:var(--paper);color:var(--ink)}.word-row .word-media-actions>button:disabled{color:var(--line-strong);background:var(--surface)}@media(max-width:767px){.word-row .word-media-actions>button{min-height:44px;padding:0 10px}}.page-stack>*{min-width:0}.pinyin-cell.is-highlighted{background:none;color:inherit;font-weight:600}.pinyin-cell.is-highlighted .pinyin-hanzi{box-shadow:inset 0 -2px 0 var(--gold-mark)}.pinyin-cell.is-highlighted .pinyin-reading{color:var(--gold-ink)}.dialogue-playback-panel{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:0;border:0;background:none;box-shadow:none}.dialogue-speed-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:0;border:0;background:none}.dialogue-speed-toolbar>span{color:var(--muted);font-size:var(--text-sm)}.dialogue-list{display:grid;gap:24px}.dialogue-card{grid-template-columns:minmax(280px,40%) minmax(0,1fr);align-items:start;overflow:visible;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:none}.dialogue-card.is-playing{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.dialogue-card .dialogue-image-frame{width:auto;position:sticky;top:calc(var(--topbar-height) + 16px);align-self:start;aspect-ratio:4 / 3;margin:16px;border-radius:var(--radius-md);overflow:hidden;background:var(--paper-deep)}.dialogue-image-frame img{width:100%;height:100%;object-fit:cover;mix-blend-mode:normal}.dialogue-image-frame>span{display:grid;place-items:center;height:100%;color:var(--muted);font-size:var(--text-sm)}.dialogue-body{min-width:0;padding:20px 24px 20px 8px}.dialogue-card-heading h2{font:700 var(--title-sm)/1.4 var(--font-serif);color:var(--ink)}.dialogue-scene-index{color:var(--gold);font-size:var(--text-sm);font-weight:500}.dialogue-vocab-note{display:flex;align-items:center;gap:8px;margin:6px 0 10px;color:var(--muted);font-size:var(--text-xs)}.dialogue-vocab-swatch{width:18px;border-bottom:2px solid var(--gold-mark)}.dialogue-line{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:start;padding:10px 8px;border-radius:var(--radius-md);border-top:1px solid var(--line-soft)}.dialogue-line.is-playing{background:var(--accent-soft);border-top-color:transparent}.dialogue-speaker{justify-self:start;margin-top:18px;padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;white-space:nowrap}.dialogue-speaker.speaker-0{background:var(--accent-soft);color:var(--accent-strong)}.dialogue-speaker.speaker-1{background:#e7eef7;color:#2e5a88}.dialogue-speaker.speaker-2{background:var(--gold-soft);color:var(--gold-ink)}.dialogue-speaker.speaker-3{background:#f1eaf3;color:#6a4c7a}.dialogue-copy{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}.dialogue-line-reading{min-width:0}.dialogue-copy .line-play-button{flex:none;display:grid;place-items:center;width:36px;min-width:36px;height:36px;min-height:36px;margin-top:14px;padding:0;border:1px solid var(--accent-line);border-radius:50%;background:var(--surface);color:var(--accent);cursor:pointer}.line-play-button:hover,.line-play-button[aria-pressed=true]{background:var(--accent-soft)}.line-play-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(max-width:900px){.dialogue-card{grid-template-columns:1fr}.dialogue-card .dialogue-image-frame{position:static;margin:12px 12px 0;aspect-ratio:16 / 10}.dialogue-body{padding:14px 14px 16px}}@media(max-width:767px){.dialogue-line{grid-template-columns:1fr;gap:2px;padding:10px 4px}.dialogue-speaker{margin-top:0}.dialogue-copy .line-play-button{width:44px;min-width:44px;height:44px;margin-top:8px}}.lesson-grammar-workspace .lesson-grammar-heading{display:block;margin-bottom:4px}.lesson-grammar-workspace .lesson-grammar-document{max-height:none;overflow:visible;border-color:var(--line);border-radius:var(--radius-lg)}.lesson-grammar-workspace .lesson-grammar-nav{background:var(--surface);border-color:var(--line)}.lesson-grammar-workspace .lesson-grammar-nav-group h3{background:transparent;color:var(--gold);padding-left:9px}.lesson-grammar-workspace .lesson-grammar-nav button[aria-current=true]{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-strong);font-weight:600}.lesson-grammar-workspace .lesson-grammar-document-heading{background:var(--surface-sunk);border-bottom:1px solid var(--line)}.lesson-grammar-workspace .lesson-grammar-document-heading h2{font-family:var(--font-serif);letter-spacing:0}.lesson-grammar-workspace .grammar-section-jumps{position:sticky;top:var(--topbar-height);z-index:5;display:flex;gap:6px;overflow-x:auto;padding:10px 24px;background:color-mix(in srgb,var(--surface) 94%,transparent);border-bottom:1px solid var(--line-soft);scrollbar-width:none}.lesson-grammar-workspace .grammar-section-jumps:empty{display:none}.lesson-grammar-workspace .grammar-section-jumps button{flex:none;min-height:32px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius-full);background:var(--surface);color:var(--ink-2);font:500 13px/1 var(--font-sans);cursor:pointer}.lesson-grammar-workspace .grammar-section-jumps button:hover{border-color:var(--accent-line);color:var(--accent)}.lesson-grammar-workspace .lesson-grammar-section{scroll-margin-top:calc(var(--topbar-height) + 56px)}@media(max-width:767px){.grammar-section-jumps{top:56px;padding:8px 12px}.grammar-section-jumps button{min-height:40px}}.authoring-layout{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:28px;align-items:start}.authoring-settings,.dialogue-generator-settings{position:sticky;top:calc(var(--topbar-height) + 16px);display:grid;gap:18px;padding:22px;border:1px solid var(--line);border-top:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:none}.authoring-settings legend,.dialogue-generator-settings legend{display:flex;justify-content:space-between;width:100%;margin-bottom:10px;font-weight:600;color:var(--ink)}.authoring-settings legend small{color:var(--muted);font-weight:400;font-size:var(--text-sm)}.authoring-word-list,.generator-word-grid{display:flex;flex-wrap:wrap;gap:6px;max-height:none;overflow:visible;padding:0;border:0;background:none}.authoring-word-list>label,.generator-word-grid>label{position:relative;display:inline-flex;align-items:flex-end;min-height:44px;padding:2px 12px 4px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);cursor:pointer}.authoring-word-list>label:hover,.generator-word-grid>label:hover{border-color:var(--muted)}.authoring-word-list>label:has(input:checked),.generator-word-grid>label:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.authoring-word-list>label:focus-within,.generator-word-grid>label:focus-within{box-shadow:var(--focus-ring)}.authoring-word-list>label>input,.generator-word-grid>label>input{position:absolute;opacity:0;width:1px;height:1px;margin:0}.authoring-word-list .pinyin-hanzi,.generator-word-grid .pinyin-hanzi{font-size:17px}.authoring-settings .text-button{justify-self:start}.generated-document,.generated-dialogues{min-width:0;padding:22px 26px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:none}.generated-document-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-bottom:14px;margin-bottom:18px;border-bottom:1px solid var(--line)}.generated-document-header h2{margin:0;font:700 var(--title-sm)/1.3 var(--font-serif)}.story-card{padding:0 0 22px;margin-bottom:22px;border:0;border-bottom:1px solid var(--line-soft);border-radius:0;background:none;box-shadow:none}.story-card:last-child{border-bottom:0;margin-bottom:0}.story-card h2{font:700 22px/1.4 var(--font-serif)}.story-card .eyebrow{color:var(--gold)}@media(max-width:960px){.authoring-layout{grid-template-columns:1fr}.authoring-settings,.dialogue-generator-settings{position:static}}@media(max-width:767px){.authoring-settings,.generated-document,.generated-dialogues{padding:16px}}.ai-courseware-existing{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border:1px solid var(--accent-line);border-radius:var(--radius-lg);background:var(--accent-soft)}.ai-courseware-existing strong{display:block;color:var(--accent-strong)}.ai-courseware-existing span{color:var(--ink-2);font-size:var(--text-sm)}.ai-courseware-heading h1{font:700 clamp(28px,3vw,var(--title-lg))/1.3 var(--font-serif)}.ai-courseware-prepare,.ai-courseware-progress,.ai-courseware-revise,.ai-courseware-history,.ai-courseware-error{border-color:var(--line);border-radius:var(--radius-lg);box-shadow:none}.ai-courseware-mark{color:var(--gold-mark)}.deck-v2-topline>span:not(.deck-save-state){color:var(--gold);font-size:var(--text-sm);font-weight:500}.dialogue-card.is-long{row-gap:0}.dialogue-card.is-long .dialogue-image-frame{position:static;margin:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0}span.aligned-pinyin{display:inline-flex!important}.aligned-pinyin>span.pinyin-cell{display:inline-flex!important}.vocab-browse{display:grid;gap:14px;padding:22px 24px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface)}.vocab-browse__head h2{margin:0;font:700 var(--title-sm)/1.3 var(--font-serif)}.vocab-browse__head p{margin:4px 0 0;color:var(--muted);font-size:var(--text-sm)}.vocab-browse .segmented--levels{max-width:560px}.vocab-browse__lessons{display:flex;flex-wrap:wrap;gap:6px}.vocab-browse__lessons button{min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius-full);background:var(--surface);color:var(--ink-2);font:14px var(--font-sans);cursor:pointer}.vocab-browse__lessons button span{margin-right:6px;color:var(--muted);font-size:12px}.vocab-browse__lessons button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.vocab-browse__words{display:flex;flex-wrap:wrap;gap:8px;padding-top:12px;border-top:1px solid var(--line-soft)}.vocab-browse__words button{display:inline-flex;align-items:flex-end;min-height:52px;padding:4px 14px 6px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);cursor:pointer}.vocab-browse__words button:hover{border-color:var(--accent);background:var(--accent-soft)}.vocab-browse__words .pinyin-hanzi{font-size:20px}.vocab-browse__lesson-link{justify-self:start;color:var(--accent);font-size:var(--text-sm);text-decoration:none}.vocab-browse__lesson-link:hover{text-decoration:underline}@media(max-width:767px){.vocab-browse{padding:16px}.vocab-browse__lessons button{min-height:44px}}.admin-tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line-strong);scrollbar-width:none}.admin-tabs button{flex:none;min-height:44px;padding:0 16px;border:0;border-bottom:2px solid transparent;background:none;color:var(--ink-2);font:500 var(--text-md) var(--font-sans);cursor:pointer}.admin-tabs button:hover{color:var(--ink)}.admin-tabs button[aria-pressed=true]{border-bottom-color:var(--accent);color:var(--accent);font-weight:600}.admin-metric,.admin-chart,.admin-users{border-color:var(--line);border-radius:var(--radius-lg);box-shadow:none;background:var(--surface)}.admin-metric strong{font-family:var(--font-serif)}.settings-page{max-width:760px}.settings-card-title{margin:0 0 var(--space-md);font:700 var(--title-sm)/1.3 var(--font-serif);color:var(--ink)}.settings-card-title--danger{color:var(--danger)}.danger-button{border-color:color-mix(in srgb,var(--danger) 45%,var(--line));color:var(--danger)}.danger-button:hover{background:var(--danger-soft);border-color:var(--danger)}.save-confirm{margin:8px 0 0;color:var(--success);font-size:var(--text-sm)}.text-tool-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line-strong)}.text-tool-tabs a{min-height:44px;display:inline-flex;align-items:center;padding:0 18px;border-bottom:2px solid transparent;color:var(--ink-2);font-weight:500;text-decoration:none}.text-tool-tabs a:hover{color:var(--ink)}.text-tool-tabs a.active{border-bottom-color:var(--accent);color:var(--accent);font-weight:600}.generation-history{margin:-6px 0 16px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-sunk)}.generation-history summary{cursor:pointer;color:var(--ink-2);font-size:var(--text-sm);font-weight:500}.generation-history ul{display:grid;gap:4px;margin:10px 0 2px;padding:0;list-style:none;max-height:280px;overflow-y:auto}.generation-history button{display:flex;gap:12px;align-items:baseline;width:100%;min-height:40px;padding:6px 10px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--ink);text-align:left;cursor:pointer;font:var(--text-sm) var(--font-sans)}.generation-history button:hover{background:var(--surface);border-color:var(--line)}.generation-history button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent-line)}.generation-history__when{flex:none;width:104px;color:var(--muted)}.generation-history__what{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.generation-history__audio{flex:none;padding:0 6px;border-radius:4px;background:var(--gold-soft);color:var(--gold-ink);font-size:12px}.settings-page{max-width:1080px}.settings-layout{display:flex;flex-wrap:wrap;gap:32px;align-items:flex-start}.settings-nav{flex:1 1 180px;max-width:200px;position:sticky;top:calc(var(--topbar-height) + 20px);display:grid;gap:2px}.settings-nav a{min-height:40px;display:flex;align-items:center;padding:0 12px;border-radius:var(--radius-md);color:var(--ink-2);text-decoration:none}.settings-nav a:hover{background:var(--paper-deep);color:var(--ink)}.settings-sections{flex:999 1 520px;min-width:0;display:grid;gap:20px}.settings-section{display:grid;gap:16px;padding:22px 24px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);scroll-margin-top:calc(var(--topbar-height) + 16px)}.settings-section>header h2{margin:0;font:700 var(--title-sm)/1.3 var(--font-serif)}.settings-section>header p{margin:4px 0 0;color:var(--muted);font-size:var(--text-sm)}.settings-section--danger{border-color:color-mix(in srgb,var(--danger) 30%,var(--line))}.settings-section--danger>header h2{color:var(--danger)}.settings-form{display:grid;gap:14px}.settings-form h3{margin:0;font-size:var(--text-lg)}.settings-field{display:grid;gap:6px;font-weight:500;color:var(--ink)}.settings-field input,.settings-field select{min-height:42px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);font:var(--text-md) var(--font-sans)}.settings-field small{color:var(--muted);font-weight:400;font-size:var(--text-xs)}.settings-password{display:flex;gap:8px;align-items:center}.settings-password input{flex:1;min-width:0}.settings-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px 20px;margin:0}.settings-facts dt{color:var(--muted);font-size:var(--text-xs)}.settings-facts dd{margin:2px 0 0;overflow-wrap:anywhere}.settings-actions{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center}.settings-actions small{color:var(--muted);font-size:var(--text-xs)}.settings-actions .save-confirm,.settings-actions .form-error{margin:0}.settings-row{display:flex;flex-wrap:wrap;gap:12px 20px;justify-content:space-between;align-items:center;padding-top:14px;border-top:1px solid var(--line-soft)}.settings-row>div{flex:1 1 280px;display:grid;gap:2px}.settings-row small{color:var(--muted);font-size:var(--text-sm)}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px 18px}.settings-check{display:flex;gap:8px;align-items:center}.settings-check input{width:18px;height:18px}.settings-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:0;padding:0;list-style:none}.settings-stats a{display:grid;gap:2px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink);text-decoration:none}.settings-stats a:hover{border-color:var(--accent-line);background:var(--accent-soft)}.settings-stats strong{font:700 26px/1.1 var(--font-serif)}.settings-stats span{color:var(--muted);font-size:var(--text-sm)}@media(max-width:767px){.settings-nav{max-width:none;flex-basis:100%;position:static;display:flex;overflow-x:auto;gap:6px}.settings-nav a{flex:none;border:1px solid var(--line);border-radius:var(--radius-full);background:var(--surface)}.settings-section{padding:16px}}.auth-notice{margin:0 0 14px;padding:10px 14px;border-radius:10px;background:#e6f0ece6;color:#0f4f45;font-size:14px}.read-speed{display:grid;gap:4px;font-weight:500}.read-speed small{color:var(--muted);font-weight:400;font-size:12px}.read-aloud{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px}.read-aloud audio{height:36px;max-width:100%}.read-aloud--pending{color:var(--muted)}.read-aloud-start{margin-top:8px;padding:4px 12px;border:1px solid var(--accent-line);border-radius:999px;background:var(--accent-soft);color:var(--accent-strong);font:inherit;font-size:13px;cursor:pointer}.read-aloud-start:hover{border-color:var(--accent)}.supplement-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 14px;padding:12px 14px;border:1px dashed var(--line-strong);border-radius:10px;background:var(--surface-sunk);font-size:14px;color:var(--ink-2)}.generation-history summary small{margin-left:6px;color:var(--muted);font-weight:400}.example-all-audio{padding:14px 18px}.homework-task-editor{gap:8px!important}.homework-task-editor li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start}.homework-task-editor textarea,.homework-note{box-sizing:border-box;width:100%;min-height:40px;padding:8px 10px;resize:vertical;border:1px solid transparent;border-radius:8px;background:var(--surface-sunk);font:inherit;line-height:1.6;color:var(--ink)}.homework-task-editor textarea:hover,.homework-note:hover{border-color:var(--line)}.homework-task-editor textarea:focus,.homework-note:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #17675b24}.homework-add-task{margin-top:10px}.homework-preview-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:14px 0 8px}.homework-preview-actions p{margin:0}.generation-history li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px}.generation-history .generation-history__delete,.generation-history__confirm button{width:auto;min-height:32px;padding:4px 8px;border:0}.generation-history__confirm{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);font-size:var(--text-sm)}.lesson-grammar-workspace .grammar-section-tabs{gap:8px;padding:12px 24px}.lesson-grammar-workspace .grammar-section-tabs button{min-height:40px;padding:0 16px;border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--accent-strong);font:600 15px/1 var(--font-sans)}.lesson-grammar-workspace .grammar-section-tabs button:hover{border-color:var(--accent)}.lesson-grammar-workspace .grammar-section-tabs button[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--surface);box-shadow:0 4px 12px #17675b38}.lesson-grammar-workspace .grammar-section-tabs{flex-wrap:wrap;overflow:visible}.lesson-grammar-keypoints .lesson-grammar-section-body{display:grid;gap:14px}.credit-note{display:block;margin-top:6px;color:var(--muted);font-size:13px}.credit-note.is-short{color:var(--danger)}.settings-credits-balance{display:flex;align-items:baseline;gap:10px}.settings-credits-balance strong{font:700 40px/1 var(--font-serif);color:var(--accent)}.settings-credits-balance span{color:var(--muted)}.settings-credits-table{margin-top:16px;border-collapse:collapse;width:100%;max-width:420px;font-size:14px}.settings-credits-table caption{text-align:left;color:var(--muted);font-size:13px;padding-bottom:6px}.settings-credits-table th,.settings-credits-table td{padding:6px 0;border-bottom:1px solid var(--line-soft);text-align:left;font-weight:400}.settings-credits-table td{text-align:right;font-weight:600}.settings-subheading{margin:20px 0 8px;font-size:15px}.settings-credits-history{display:grid;gap:4px;margin:0;padding:0;list-style:none;font-size:14px}.settings-credits-history li{display:grid;grid-template-columns:120px 1fr auto;gap:10px;padding:6px 0;border-bottom:1px solid var(--line-soft)}.settings-credits-history .is-plus{color:var(--success)}.settings-credits-history .is-minus{color:var(--danger)}.settings-credits-note,.settings-credits-free{margin-top:14px;color:var(--muted);font-size:14px}.members-only{display:grid;gap:6px;padding:16px 18px;border:1px dashed var(--gold-mark);border-radius:12px;background:var(--gold-soft);color:var(--gold-ink)}.members-only strong{font-size:15px}.members-only p{margin:0;color:var(--ink-2)}.members-only small{color:var(--muted)}.grammar-library-detail>.members-only{margin:16px 0}.members-only-join{justify-self:start;margin-top:4px;font-weight:600;color:var(--accent)}.settings-membership{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;color:var(--ink-2)}.membership-page{max-width:1040px;margin:0 auto;padding:8px 0 40px}.membership-hero h1{margin:0 0 8px;font:700 30px/1.2 var(--font-serif)}.membership-hero p{max-width:720px;margin:0 0 8px;color:var(--muted)}.membership-hero .membership-status{color:var(--ink);font-weight:600}.membership-perks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0 16px;padding:0;list-style:none}.membership-perks li{display:grid;gap:4px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.membership-perks strong{font-size:16px;color:var(--accent)}.membership-perks span{color:var(--muted);font-size:13px}.membership-cta{margin-bottom:4px}.membership-offer{display:grid;gap:4px;margin:18px 0 0;padding:14px 18px;border:1px dashed var(--gold-mark);border-radius:12px;background:var(--gold-soft);color:var(--gold-ink)}.membership-offer strong{font-size:15px}.membership-offer span{color:var(--ink-2);font-size:13px}.membership-compare{margin-top:28px}.membership-compare h2,.membership-plans-title{margin:0 0 12px;font:700 21px/1.3 var(--font-serif)}.membership-plans-title{margin-top:32px;scroll-margin-top:80px}.membership-compare table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--surface);font-size:14px}.membership-compare th,.membership-compare td{padding:11px 14px;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:top}.membership-compare thead th{background:var(--surface-sunk);color:var(--muted);font-size:13px;font-weight:600}.membership-compare thead th.is-member{color:var(--accent)}.membership-compare tbody th{font-weight:400;color:var(--ink)}.membership-compare td{width:24%;white-space:nowrap}.membership-compare td small{display:block;margin-top:2px;color:var(--muted);font-size:12px;white-space:normal}.membership-compare td.is-member{background:color-mix(in srgb,var(--accent-soft) 45%,transparent)}.membership-compare tr.is-highlight th{font-weight:600}.membership-compare .compare-group th{padding-top:16px;background:transparent;color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.04em}.membership-compare tbody tr:last-child th,.membership-compare tbody tr:last-child td{border-bottom:0}.compare-mark{font-size:16px;line-height:1}.compare-mark.is-no{filter:grayscale(1);opacity:.55}.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:24px}.plan-card{position:relative;display:grid;align-content:start;gap:12px;padding:24px 22px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.plan-card.is-featured{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.plan-card.is-draft{border-style:dashed}.plan-card h2{margin:0;font-size:18px}.plan-price{margin:0;font:700 40px/1 var(--font-serif);color:var(--accent)}.plan-price span{margin-right:2px;font-size:20px}.plan-card ul{display:grid;gap:6px;margin:0;padding:0;list-style:none;color:var(--ink-2);font-size:14px}.plan-card li{display:flex;gap:6px;align-items:baseline}.plan-card button{margin-top:6px}.plan-tag{position:absolute;top:12px;right:12px;padding:2px 8px;border-radius:999px;background:var(--gold-soft);color:var(--gold-ink);font-size:12px}.membership-foot{margin-top:24px;color:var(--muted);font-size:14px}.pay-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:16px;background:#14181473}.pay-dialog{display:grid;justify-items:center;gap:10px;width:min(380px,100%);padding:26px 24px 20px;border-radius:16px;background:var(--surface);text-align:center;box-shadow:0 20px 60px #00000040}.pay-dialog h2{margin:0;font-size:20px}.pay-summary{margin:0;color:var(--muted);font-size:14px}.pay-qr{width:220px;height:220px;border:1px solid var(--line-soft);border-radius:10px;background:#fff;image-rendering:pixelated}.pay-hint{margin:0;font-size:14px}.pay-open{font-size:13px}.pay-timer{margin:0;color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.pay-done{display:grid;justify-items:center;gap:10px;padding:8px 0}.pay-done strong{font-size:22px;color:var(--success)}.pay-done p{margin:0}.plan-admin-list{display:grid;gap:10px}.plan-admin-row{display:grid;grid-template-columns:1.3fr .8fr .7fr .7fr 1.2fr auto;gap:10px;align-items:end;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.plan-admin-row label{display:grid;gap:4px;font-size:13px;color:var(--muted)}.plan-admin-row input,.plan-admin-row select{min-height:34px;color:var(--ink)}.plan-admin-actions{display:flex;gap:8px;align-items:center}.order-table .membership-cost-row{grid-template-columns:.9fr 1.2fr .8fr .6fr .7fr 1.6fr .9fr;min-width:820px}.order-status.is-paid{color:var(--success);font-weight:600}.order-status.is-pending{color:var(--gold-ink)}.order-status.is-failed,.order-status.is-cancelled{color:var(--muted)}@media(max-width:760px){.membership-perks{grid-template-columns:1fr}.membership-compare th,.membership-compare td{padding:9px 10px}.membership-compare td{width:26%;white-space:normal}.plan-admin-row{grid-template-columns:1fr 1fr}.plan-admin-actions{grid-column:1 / -1}.membership-hero h1{font-size:24px}}@font-face{font-family:Ma Shan Zheng;src:url(/assets/ma-shan-zheng-hsk-subset-B7iCY75U.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap;unicode-range:U+273f,U+4e2a,U+4e2d,U+4e3a,U+4e4b,U+4eba,U+4f1a,U+4f46,U+5176,U+5199,U+51fa,U+524d,U+52a8,U+53ea,U+53ef,U+5728,U+5730,U+5927,U+5bf9,U+5c0f,U+5de5,U+5e08,U+5e74,U+6211,U+624b,U+628a,U+6559,U+65b0,U+65b9,U+65f6,U+660e,U+6837,U+6b63,U+6ca1,U+7136,U+73b0,U+7406,U+7528,U+770b,U+7b49,U+800c,U+8981,U+8bdd,U+8d77,U+8eab,U+8fc7,U+8fd8,U+95ee,U+9762}:root{font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}a{color:inherit}
