.review-card{border:1px solid #e5e7eb;border-radius:10px;padding:14px 16px;margin:0 0 14px;background:#fff}.review-card-inactive{opacity:.65}.review-card-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.review-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;flex-wrap:wrap}.review-reminder-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.review-reminder-list{margin:0 0 12px;padding-left:18px}.review-reminder-list li{margin:6px 0}:root{font-family:Noto Sans SC,Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#1f2937;background:#f9fafb;--color-brand: #bc312a;--color-brand-strong: #a32924;--color-gold: #D4AF37;--color-gold-soft: #fdf6e3;--color-brand-tint: #fdeceb;--color-text: #1f2937;--color-muted: #6b7280;--color-surface: #fff;--color-surface-subtle: #f9fafb;--color-surface-sunken: #f3f4f6;--color-border: #e5e7eb;--color-danger: #991b1b;--radius-sm: 10px;--radius-md: 16px;--shadow-panel: 0 1px 2px rgba(0, 0, 0, .05), 0 1px 3px rgba(0, 0, 0, .06);--shadow-panel-lg: 0 4px 8px rgba(30, 15, 10, .04), 0 16px 40px rgba(30, 15, 10, .08);--focus-ring: 0 0 0 3px #bc312a33}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{accent-color:var(--color-brand)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px;box-shadow:var(--focus-ring)}.app-shell{min-height:100vh;display:grid;grid-template-columns:236px 1fr}.mobile-menu-button,.mobile-nav-backdrop{display:none}#admin-sidebar{background:#fff;color:#1f2937;padding:20px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;border-right:1px solid var(--color-border);box-shadow:1px 0 2px #00000008}.sidebar-brand-row{display:flex;align-items:center;gap:10px;padding:6px 6px 20px}.sidebar-brand-row:before{content:"M";display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:10px;box-shadow:0 0 0 2px var(--color-gold-soft),0 0 0 3px var(--color-gold);background:var(--color-brand);color:#fff;font-size:15px;font-weight:800}.sidebar-brand-row>div{min-width:0}.brand{font-size:14.5px;font-weight:750;line-height:1.25}.brand-subtitle{margin:1px 0 0;color:#9ca3af;font-size:11px;text-transform:uppercase;letter-spacing:.06em}nav{display:grid;gap:2px;flex:1;align-content:start}.nav-group-label{margin:16px 10px 4px;color:#9ca3af;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}nav a{position:relative;color:#374151;padding:9px 12px 9px 16px;border-radius:8px;border:0;background:transparent;text-align:left;cursor:pointer;text-decoration:none;display:block;font:inherit;font-size:13.5px;font-weight:550}nav a:hover{background:var(--color-surface-sunken);color:#1f2937}nav a.active{background:var(--color-brand-tint);color:var(--color-brand-strong);font-weight:700}nav a.active:before{content:"";position:absolute;left:4px;top:8px;bottom:8px;width:3px;border-radius:99px;background:var(--color-gold)}.account-link{display:block;margin-top:10px;color:#374151;text-decoration:none;border-radius:8px;padding:9px 12px 9px 16px;font-size:13.5px;font-weight:550}.account-link:hover{background:var(--color-surface-sunken);color:#1f2937}.account-link.active{background:var(--color-brand-tint);color:var(--color-brand-strong);font-weight:700}.logout-button{margin-top:4px;background:transparent;border:0;color:#8f7a75;border-radius:8px;padding:9px 12px 9px 16px;cursor:pointer;text-align:left;font:inherit;font-size:13.5px;font-weight:550}.logout-button:hover{background:#fde8e8;color:#991b1b}.sidebar-identity{display:flex;align-items:center;gap:10px;margin-top:14px;padding:10px;border-radius:10px;background:var(--color-surface-subtle);border:1px solid var(--color-border)}.identity-avatar{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:50%;background:var(--color-brand);color:#fff;font-size:11.5px;font-weight:800}.identity-copy{display:grid;gap:1px;min-width:0}.identity-copy strong,.identity-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.identity-copy strong{font-size:13px}.identity-copy small{color:#9ca3af;font-size:11px}main{padding:32px 40px 64px;max-width:1280px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:26px;padding-bottom:18px;border-bottom:1px solid var(--color-border)}.page-header-actions{display:flex;flex-wrap:wrap;gap:14px;flex-shrink:0}.page-header>div>.link-button:first-child{display:inline-block;margin-bottom:8px}.eyebrow{color:#bc312a;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;margin:0 0 4px}h1{font-size:26px;font-weight:750;margin:0;line-height:1.25}h2{font-size:17px;font-weight:700;margin:0 0 14px}.section-heading{margin-top:28px}.lead{color:#6b7280;margin:6px 0 0;font-size:14px}.breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;color:#9ca3af;margin-bottom:10px}.breadcrumb-item{display:inline-flex;flex-shrink:0;align-items:center;gap:6px;white-space:nowrap}.breadcrumbs a{color:#bc312a;text-decoration:none}.breadcrumbs a:hover{text-decoration:underline}.breadcrumb-current{color:#1f2937;font-weight:600}.breadcrumb-sep{color:#b9a89f}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-bottom:28px}article{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:18px 18px 16px;box-shadow:var(--shadow-panel);overflow:hidden}.course-grid>article:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--color-brand)}.course-grid>article:nth-of-type(4n+2):before{background:#2f6b3a}.course-grid>article:nth-of-type(4n+3):before{background:#a46b11}.course-grid>article:nth-of-type(4n+4):before{background:#315d86}article span{color:#6b7280;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;font-weight:700}article h2{margin:10px 0 4px;font-size:24px;font-weight:750}article p{color:var(--color-muted);margin:0;font-size:13px}.error{background:#fee2e2;color:#991b1b;border-radius:8px;padding:12px;margin-bottom:16px;font-size:14px}.banner-warning{background:#fef3c7;color:#92400e;border-radius:8px;padding:12px;margin-bottom:16px;font-size:14px}.inline-error{display:flex;align-items:center;gap:8px;color:#991b1b;font-size:13px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.reading-snapshot-player{display:grid;gap:8px}.toast-region{position:fixed;z-index:200;right:22px;bottom:22px;width:min(380px,calc(100vw - 32px));display:grid;gap:10px;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;background:#fff;border:1px solid #e5e7eb;border-left:4px solid #6b7280;border-radius:10px;padding:13px 14px;box-shadow:0 16px 40px #1f293726;animation:toast-enter .18s ease-out}.toast p{margin:3px 0 0;color:#6b7280;font-size:13px}.toast-success{border-left-color:#2f6b3a}.toast-error{border-left-color:#991b1b}.toast-warning{border-left-color:#a46b11}.toast-info{border-left-color:#315d86}.toast-close{flex:0 0 32px;width:32px;height:32px;border:0;border-radius:6px;background:transparent;cursor:pointer}.toast-close:hover{background:#f3f4f6}@keyframes toast-enter{0%{opacity:0;transform:translateY(8px)}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.skeleton{display:grid;gap:10px;padding:18px 0}.skeleton span{height:14px;border-radius:6px;background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6,#e5e7eb 75%);background-size:200% 100%;animation:skeleton-shimmer 1.2s linear infinite}.skeleton span:last-child{width:62%}@keyframes skeleton-shimmer{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton span{animation:none}}.button-spinner{display:inline-block;width:12px;height:12px;margin-right:6px;vertical-align:-2px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:button-spin .6s linear infinite}@keyframes button-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.button-spinner{animation:none}}.skeleton-row td{padding:14px 12px}.skeleton-cell{display:block;height:14px;border-radius:6px;background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6,#e5e7eb 75%);background-size:200% 100%;animation:skeleton-shimmer 1.2s linear infinite}@media(prefers-reduced-motion:reduce){.skeleton-cell{animation:none}}.empty-state{padding:28px 18px;text-align:center;color:#6b7280}.empty-state strong{color:#1f2937}.empty-state p{margin:6px auto 14px;max-width:480px}.publish-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}.publish-summary span{display:grid;gap:3px;padding:12px;border-radius:8px;background:#f9fafb;color:#6b7280;font-size:12px}.publish-summary strong{color:#1f2937;font-size:22px}.publish-issues{display:grid;gap:8px;padding:0;list-style:none}.publish-issues li{padding:10px 12px;border-radius:8px;font-size:13px}.publish-issue-error{background:#fee2e2;color:#991b1b}.publish-issue-warning{background:#fff3d6;color:#805b12}.success-message{padding:12px;border-radius:8px;background:#e8f5ec;color:#27633a}.context-help{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin:12px 0 18px;padding:14px 16px;border:1px solid #e6d28a;border-left:4px solid #a46b11;border-radius:10px;background:#fdf6e3;color:#374151}.context-help>div{display:grid;gap:4px}.context-help p{margin:0;font-size:13px;line-height:1.5}.context-help button,.context-help-link{border:0;background:transparent;color:#bc312a;cursor:pointer;white-space:nowrap;font:inherit;font-size:12px;font-weight:700}.context-help-link{margin-bottom:10px}.mobile-preview-workspace{display:grid;justify-items:center;gap:16px}.mobile-preview-toolbar{width:min(390px,100%);display:flex;justify-content:space-between;align-items:end;gap:16px;padding:12px 14px;border-radius:10px;background:#fff;border:1px solid #e5e7eb}.mobile-preview-toolbar>div{display:grid;gap:3px}.mobile-preview-toolbar small{color:#6b7280}:root{--mc-red: #bc312a;--mc-red-dark: #a32924;--mc-red-soft: #f8f0f0;--mc-ink: #171719;--mc-muted: #606067;--mc-canvas: #f7f4f3;--mc-gold: #f4b942;--mc-gold-soft: #fff3d8;--mc-jade: #25866d;--mc-jade-soft: #e4f4ef;--mc-line: #f0ecee;--mc-line-strong: #e8e5e7;--mc-surface-soft: #fff7f5}.mc-tabbar{flex-shrink:0;display:flex;gap:8px;overflow-x:auto;padding:0 12px 12px;border-bottom:1px solid var(--mc-line)}.mc-tab{flex-shrink:0;display:flex;align-items:center;gap:6px;padding:8px 14px;border:0;border-radius:18px;background:transparent;color:var(--mc-muted);font:inherit;font-weight:700;font-size:13px;cursor:pointer;white-space:nowrap}.mc-tab-active{background:var(--mc-red);color:#fff}.mc-tab-body{flex:1;min-height:0;overflow-y:auto;padding:18px 14px 24px}.mc-tab-body-exercise{padding:0;overflow:hidden;display:flex;flex-direction:column}.mc-plain-list{margin:0;padding:0;list-style:none;display:grid;gap:8px}.mc-dialogue{display:grid;gap:16px}.mc-dialogue-row{display:flex;flex-direction:column;gap:4px}.mc-dialogue-row-left{align-items:flex-start}.mc-dialogue-row-right{align-items:flex-end}.mc-dialogue-speaker{padding:0 4px;font-size:12px;font-weight:700;color:var(--mc-muted)}.mc-dialogue-bubble{max-width:280px;display:grid;gap:2px;padding:14px;border-radius:16px}.mc-dialogue-row-left .mc-dialogue-bubble{background:#fff;border:1px solid #e5e7eb;border-bottom-left-radius:4px}.mc-dialogue-row-right .mc-dialogue-bubble{background:var(--mc-red-soft);border-bottom-right-radius:4px}.mc-dialogue-hanzi{font-size:18px;font-weight:700;color:#000}.mc-dialogue-translation{color:var(--mc-ink)}.mc-vocab-list{display:grid;gap:10px}.mc-vocab-row{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--mc-line);border-radius:16px;background:#fff}.mc-vocab-row-expandable{cursor:pointer}.mc-vocab-row-expandable:hover{border-color:var(--mc-red)}.mc-vocab-index{flex-shrink:0;width:20px;text-align:center;color:var(--mc-muted);font-weight:700;font-size:13px}.mc-vocab-copy{display:grid;gap:1px;flex:1;min-width:0}.mc-vocab-hanzi{font-size:17px}.mc-vocab-pinyin,.mc-vocab-meaning{color:var(--mc-muted);font-size:13px}.mc-vocab-info{flex-shrink:0;border:0;background:transparent;padding:4px;color:var(--mc-muted);font-size:18px;line-height:1;cursor:pointer}.mc-vocab-info:hover{color:var(--mc-red)}.mc-sheet-scrim{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-end;background:#1f293759}.mc-sheet{width:100%;max-height:80%;display:flex;flex-direction:column;border-radius:22px 22px 0 0;background:#fff;box-shadow:0 -8px 30px #1f293733;animation:mc-sheet-up .18s ease-out}@keyframes mc-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.mc-sheet-grip{flex-shrink:0;align-self:center;width:44px;height:5px;margin:10px 0 0;padding:0;border:0;border-radius:3px;background:var(--mc-line);cursor:pointer}.mc-sheet-body{overflow-y:auto;padding:16px 20px 24px}.mc-sheet-head{display:grid;gap:4px;justify-items:center;text-align:center}.mc-sheet-word{display:flex;align-items:center;gap:6px}.mc-sheet-hanzi{font-size:30px;font-weight:800}.mc-sheet-pinyin{color:var(--mc-red);font-weight:700}.mc-sheet-meaning{font-size:15px}.mc-sheet-image{width:100%;max-height:180px;object-fit:cover;border-radius:16px;margin-top:14px}.mc-sheet-section{margin-top:18px;padding-top:18px;border-top:1px solid var(--mc-line)}.mc-sheet-label{margin:0 0 8px;color:var(--mc-muted);font-size:11px;font-weight:800;letter-spacing:.6px}.mc-sheet-text{margin:0;white-space:pre-wrap;font-size:14px}.mc-sheet-example-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.mc-sheet-example-zh{font-size:17px;font-weight:700}.mc-sheet-example-pinyin{margin:4px 0 0;color:var(--mc-muted);font-size:13px}.mc-grammar-list{display:grid;gap:14px}.mc-grammar-card{border-radius:22px;overflow:hidden}.mc-grammar-card-rose{background:var(--mc-red-soft);border:1px solid #f2c9c3}.mc-grammar-card-gold{background:var(--mc-gold-soft);border:1px solid #f1d89e}.mc-grammar-toggle{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:14px 16px;border:0;background:transparent;font:inherit;text-align:left;cursor:pointer}.mc-grammar-name.rich-text-content{padding:0;font-weight:700;font-size:16px}.mc-grammar-chevron{transition:transform .15s ease-out}.mc-grammar-chevron-open{transform:rotate(180deg)}.mc-grammar-explanation.rich-text-content{padding:0 16px 16px}.mc-image-list{display:grid;gap:16px}.mc-image-figure{margin:0}.mc-image-full{width:100%;border-radius:16px;display:block}.mc-video-lesson{display:flex;flex-direction:column;gap:12px}.mc-video-player{width:100%;aspect-ratio:16 / 9;border:0;border-radius:16px;background:#000;display:block}.mc-video-chapters li{display:flex;gap:8px;align-items:baseline}.chapter-time{max-width:90px}.mc-image-figure figcaption{margin-top:6px;color:var(--mc-muted);font-size:13px}.mc-progress-header{flex-shrink:0;padding:14px 14px 10px;border-bottom:1px solid var(--mc-line)}.mc-progress-track{height:6px;border-radius:999px;background:var(--mc-line);overflow:hidden}.mc-progress-fill{height:100%;background:var(--mc-red);border-radius:999px;transition:width .15s ease-out}.mc-progress-counter{margin:6px 0 0;color:var(--mc-ink);font-size:13px;font-weight:700;text-align:right}.mc-exercise-list{display:grid;gap:18px}.mc-question-card{position:relative;display:grid;gap:10px}.mc-question-meta{color:var(--mc-muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:700}.mc-stem{display:grid;justify-items:center;gap:12px;padding:4px 8px;text-align:center}.mc-stem-instruction{margin:0;color:var(--mc-muted);font-size:15px;font-weight:700}.mc-stem-prompt{font-size:23px;font-weight:800;line-height:1.2;color:var(--mc-ink)}.mc-stem-prompt .rich-text-content{padding:0}.mc-stem-image{width:100%;height:180px;object-fit:contain;border-radius:14px;background:#f3f4f6}.mc-stem-carousel{width:100%;display:grid;gap:8px}.mc-stem-carousel-dots{display:flex;justify-content:center;gap:6px}.mc-stem-carousel-dot{width:6px;height:6px;padding:0;border:0;border-radius:3px;background:var(--mc-line);cursor:pointer;transition:width .15s ease-out,background .15s ease-out}.mc-stem-carousel-dot-active{width:18px;background:var(--mc-red-dark)}.mc-passage{width:100%;background:var(--mc-surface-soft);border:1px solid var(--mc-line);border-radius:14px;padding:16px;display:grid;gap:8px;text-align:left}.mc-passage-label{font-size:11px;font-weight:800;letter-spacing:.04em;color:var(--mc-red-dark)}.mc-audio-button{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;min-height:44px;padding:0 18px;border:0;border-radius:16px;background:var(--mc-red-soft);color:var(--mc-red-dark);font:inherit;font-weight:700;font-size:13.5px;cursor:pointer}.mc-audio-button audio{display:none}.mc-audio-icon-button{width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:14px;background:var(--mc-red-soft);color:var(--mc-red-dark);font-size:18px;cursor:pointer}.mc-audio-icon-button audio{display:none}.mc-explanation{width:100%;background:var(--mc-jade-soft);border-radius:12px;padding:10px 14px;font-size:13.5px;text-align:left}.mc-choices{display:grid;gap:10px}.mc-choices-grid{grid-template-columns:1fr 1fr}.mc-choice{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:16px;background:#fff;border:1px solid #e5e7eb;box-shadow:0 3px 8px #261b1b0d}.mc-choice-correct{background:var(--mc-jade-soft);border-color:var(--mc-jade);border-width:2px;font-weight:600}.mc-choice-icon{color:var(--mc-muted);flex-shrink:0}.mc-choice-correct .mc-choice-icon{color:var(--mc-jade)}.mc-choice-image{position:relative;flex-direction:column;gap:4px;padding:6px;text-align:center}.mc-choice-image-badge{position:absolute;top:4px;right:4px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:#fff}.mc-matching-columns{display:grid;gap:10px}.mc-matching-row{display:flex;align-items:stretch;gap:10px}.mc-matching-card{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:12px 10px;border-radius:14px;background:var(--mc-surface-soft);border:1.5px solid var(--mc-line);text-align:center}.mc-matching-badge{position:absolute;top:0;right:0;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--mc-ink);color:#fff;font-size:11px;font-weight:800}.mc-order-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.mc-order-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;background:#fff;border:1px solid var(--mc-line);font-size:13.5px}.mc-blank-answer{display:flex;justify-content:center}.mc-blank-standalone{display:inline-block;width:180px;padding-bottom:4px;text-align:center;font-size:23px;font-weight:800;color:var(--mc-ink)}.mc-blank-line{margin:0}.mc-blank-underline{display:inline-block;min-width:84px;padding-bottom:3px;border-bottom:1.5px solid var(--mc-line);font-size:16px;font-weight:700;color:var(--mc-ink);text-align:center}.mc-word-bank-preview{display:grid;gap:12px}.mc-word-bank-chips{display:flex;flex-wrap:wrap;gap:8px}.mc-word-chip{padding:6px 12px;border-radius:14px;background:#fff;border:1px solid #e8dad6;font-size:13px}.mc-blanks-list{display:grid;gap:6px}.mc-listen-repeat{display:grid;gap:12px}.mc-text-input{display:grid;gap:4px}.mc-text-input small{color:var(--mc-muted);font-weight:700}.mc-text-input input{padding:14px 16px;border:0;border-radius:16px;background:#fff;box-shadow:inset 0 0 0 1px #e5e7eb;text-align:center;font:inherit;font-weight:700}.mc-hanzi-sequence{display:grid;gap:10px;justify-items:center}.mc-hanzi-pad{width:100%;min-height:200px;display:grid;place-items:center;gap:6px;padding:18px;border-radius:28px;background:#fff;box-shadow:0 10px 24px #261b1b0f}.mc-hanzi-pad-char{font-size:72px;line-height:1}.mc-hanzi-pad-pinyin{color:var(--mc-muted)}.mc-record-prompt{display:grid;gap:8px}.mc-record-button{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;min-height:50px;padding:0 20px;border:0;border-radius:16px;background:var(--mc-red);color:#fff;font:inherit;font-size:14.5px;font-weight:700;cursor:default}.mc-subquestions{display:grid;gap:12px}.mc-subquestion{display:grid;gap:10px}.mc-subquestion-title{color:var(--mc-ink);font-size:16px;font-weight:700}.mc-subquestion-pager{display:flex;gap:12px}.mc-practice-tab{flex:1;min-height:0;display:flex;flex-direction:column}.mc-practice-scroll{flex:1;min-height:0;overflow-y:auto;padding:16px 14px 20px}.mc-practice-footer{flex-shrink:0;display:flex;align-items:stretch;gap:12px;padding:10px 14px 16px;border-top:1px solid var(--mc-line);background:var(--mc-canvas)}.mc-btn-outline,.mc-btn-filled{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 20px;border-radius:16px;font:inherit;font-size:14.5px;font-weight:700;cursor:pointer}.mc-btn-outline{background:#fff;color:var(--mc-ink);border:1px solid #e5e7eb}.mc-btn-outline:disabled{color:var(--mc-muted);border-color:var(--mc-line);cursor:default}.mc-btn-filled{flex:1;min-height:54px;background:var(--mc-red);color:#fff;border:0}.mc-btn-filled:disabled{background:var(--mc-line);color:var(--mc-muted);cursor:default}.course-card,.lesson-list a,.lesson-list button{text-align:left;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:18px;cursor:pointer;display:grid;gap:6px;text-decoration:none;color:inherit;font:inherit}.course-card span,.lesson-list span{color:#bc312a;font-size:11px;text-transform:uppercase;font-weight:700;letter-spacing:.04em}.course-card strong{font-size:16px}.lesson-list{display:grid;gap:10px;margin-top:16px}.lesson-list a:hover,.lesson-list button:hover,.course-card:hover{border-color:#bc312a}.link-button{background:transparent;border:0;border-radius:6px;color:#bc312a;cursor:pointer;padding:6px 10px;font-size:14px}.link-button:hover:not(:disabled){background:#f3f4f6}.link-button:disabled{opacity:.5;cursor:default}.link-button.danger{color:#991b1b}.link-button.danger:hover:not(:disabled){background:#fde2e2}.button-primary{background:var(--color-brand);color:#fff;border:0;border-radius:8px;padding:9px 16px;cursor:pointer;font:inherit;font-size:14px;font-weight:600;box-shadow:0 1px 2px #a3292429;transition:background-color .12s ease,box-shadow .12s ease}.button-primary:hover:not(:disabled){background:#a32924;box-shadow:0 2px 6px #a3292438}.button-primary:disabled{opacity:.5;cursor:default;box-shadow:none}.management-panel,.block-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:20px 22px;margin-top:18px;box-shadow:var(--shadow-panel)}.management-panel:first-of-type{margin-top:0}.progress-bar{height:8px;border-radius:999px;background:#e5e7eb;overflow:hidden}.progress-bar-fill{height:100%;background:#a32924;border-radius:999px;transition:width .2s ease}.management-panel article button,.course-grid article button{border:0;border-radius:7px;padding:7px 12px;cursor:pointer}.page-header-actions button:not(.link-button),.block-card>button,.block-form button:not(.link-button):not(.icon-button),.question-form button:not(.link-button):not(.icon-button),.management-panel>form button[type=submit],.section-toolbar button:not(.link-button){background:var(--color-brand);color:#fff;border:0;border-radius:8px;padding:9px 16px;cursor:pointer;font:inherit;font-size:14px;font-weight:600;box-shadow:0 1px 2px #a3292429;transition:background-color .12s ease,box-shadow .12s ease}.page-header-actions button:not(.link-button):hover:not(:disabled),.block-card>button:hover:not(:disabled),.management-panel>form button[type=submit]:hover:not(:disabled),.section-toolbar button:not(.link-button):hover:not(:disabled){background:#a32924;box-shadow:0 2px 6px #a3292438}.section-toolbar{display:flex;justify-content:flex-end;gap:12px;margin:16px 0}.page-header-actions button:not(.link-button):disabled,.management-panel>form button[type=submit]:disabled{opacity:.5;cursor:default}.page-header-actions button.button-secondary{background:#fff;color:#bc312a;border:1px solid #d1d5db;box-shadow:none}.page-header-actions button.button-secondary:hover:not(:disabled){border-color:#bc312a;box-shadow:none}.page-header-actions button.button-danger{background:#fff;color:#991b1b;border:1px solid #f3caca;box-shadow:none}.page-header-actions button.button-danger:hover:not(:disabled){background:#fde2e2;box-shadow:none}.block-list{display:grid;gap:16px}.editor-workspace{display:grid;grid-template-columns:210px minmax(0,1fr);gap:20px;align-items:start}.editor-outline{position:sticky;top:20px;display:grid;gap:8px;max-height:calc(100vh - 40px);padding:14px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;color:#1f2937}.editor-outline-heading{display:flex;align-items:baseline;justify-content:space-between;padding:3px 7px 7px}.editor-outline-heading strong{font-size:13px}.editor-outline-heading small{color:#6b7280;font-size:10px}.editor-outline nav{display:grid;gap:5px;overflow-y:auto}.editor-outline button{display:grid;gap:2px;padding:8px;border:0;border-radius:7px;background:transparent;color:inherit;text-align:left;cursor:pointer}.editor-outline button:hover{background:#f3f4f6}.editor-outline small{color:#6b7280;font-size:10px}.editor-outline-item{position:relative;border-left:3px solid transparent!important}.editor-outline-item.active{border-left-color:#bc312a!important;background:#fdeceb}.editor-outline-item.outline-warning{border-left-color:#c28316!important}.editor-outline-item.outline-error{border-left-color:#b42318!important}.editor-outline-title{display:flex;align-items:center;justify-content:space-between;gap:6px;font-weight:650}.editor-outline-title b{display:inline-grid;flex:0 0 auto;min-width:20px;height:20px;place-items:center;border-radius:99px;background:#fff0d5;color:#805b12;font-size:10px}.outline-error .editor-outline-title b{background:#fde2e2;color:#991b1b}.editor-outline-item[draggable=true]{cursor:grab}.editor-outline-item.dragging{opacity:.52}.editor-outline-item.drop-before:before,.editor-outline-item.drop-after:after{content:"";position:absolute;z-index:3;left:4px;right:4px;height:3px;border-radius:99px;background:#bc312a;box-shadow:0 0 0 2px #fff}.editor-outline-item.drop-before:before{top:-4px}.editor-outline-item.drop-after:after{bottom:-4px}.editor-block-frame{position:relative;scroll-margin-top:18px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;transition:box-shadow .14s ease,opacity .14s ease}.editor-block-frame.dragging{opacity:.52;box-shadow:0 0 0 2px #bc312a}.editor-block-frame.drop-before:before,.editor-block-frame.drop-after:after{content:"";position:absolute;z-index:3;left:8px;right:8px;height:4px;border-radius:99px;background:#bc312a;box-shadow:0 0 0 3px #fff}.editor-block-frame.drop-before:before{top:-10px}.editor-block-frame.drop-after:after{bottom:-10px}.editor-block-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:50px;padding:7px 10px;border-bottom:1px solid #eadfd8;border-radius:11px 11px 0 0;background:#f9fafb}.editor-block-actions{display:flex;justify-content:flex-end;align-items:center;gap:4px;flex-wrap:wrap}.editor-block-actions .link-button,.drag-handle{min-height:36px;padding:7px 9px}.drag-handle{display:inline-flex;align-items:center;gap:7px;border:0;border-radius:7px;background:transparent;color:#6f2028;cursor:grab;font:inherit;font-size:13px;font-weight:600;white-space:nowrap}.drag-handle:hover{background:#f3f4f6}.drag-handle:active{cursor:grabbing}.drag-handle:focus-visible{outline:2px solid #bc312a;outline-offset:2px}.editor-block-frame .block-card{margin:0;border:0;border-radius:0 0 11px 11px;box-shadow:none}.block-card{padding:20px 22px}.block-card>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.block-card details{display:block}.block-card-summary{display:flex;justify-content:space-between;align-items:center;gap:16px;cursor:pointer;list-style:none}.block-card-summary::-webkit-details-marker{display:none}.block-card-summary>span:first-child{display:grid;gap:4px;color:#1f2937;font-size:inherit;text-transform:none;letter-spacing:normal}.block-card-summary small{color:#6b7280;font-size:12px;font-weight:400}.block-toggle-label{color:#bc312a;font-size:12px;text-transform:none;letter-spacing:normal}.block-card-content{margin-top:16px;padding-top:16px;border-top:1px solid #e5e7eb}.block-card-actions{display:flex;justify-content:flex-end;margin:-8px 0 8px}.block-card-meta{display:flex;align-items:center;gap:12px;color:#6b7280;font-size:13px}.tabs-list{display:flex;gap:4px;border-bottom:1px solid #e5e7eb;margin-bottom:20px}.tabs-list button{background:transparent;border:0;border-bottom:2px solid transparent;padding:10px 4px;margin-right:20px;cursor:pointer;font:inherit;font-size:14px;color:#6b7280;display:flex;align-items:center;gap:6px}.tabs-list button.active{color:#bc312a;border-bottom-color:#bc312a;font-weight:600}.tabs-list button:hover:not(.active){color:#1f2937}.tab-badge{background:#e5e7eb;color:#6b7280;font-size:11px;padding:1px 7px;border-radius:999px}.tabs-list button.active .tab-badge{background:#fdeceb;color:#bc312a}.block-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:2px 16px;align-items:start}.block-form>p,.block-form>button{grid-column:1 / -1}.field{display:grid;gap:5px;margin-bottom:10px}.field-wide{grid-column:1 / -1}.field-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#bc312a}.field-error{color:#991b1b;font-size:12px}.field input,.field textarea,.field select{padding:9px 10px;border:1px solid #d1d5db;border-radius:8px;font:inherit}.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.narrow-form{max-width:460px}.form-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px}.form-actions button{padding:10px 18px;border:0;border-radius:8px;background:#bc312a;color:#fff;cursor:pointer;font:inherit}.form-actions button:disabled{opacity:.55;cursor:not-allowed}.form-actions button.button-danger{background:#fff;color:#991b1b;border:1px solid #f3caca;margin-left:auto}.form-actions button.button-danger:hover:not(:disabled){background:#fde2e2}.hint{color:#6b7280;font-size:13px;margin:8px 0}.hint-panel{padding:14px 16px;margin:0 0 20px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px}.hint-panel .hint:first-child{margin-top:0}.table-empty{margin:0;padding:16px;text-align:center}.dynamic-list{grid-column:1 / -1;margin:4px 0 14px;display:grid;gap:8px}.dynamic-row,.dialogue-row,.vocabulary-row,.grammar-row,.option-row,.pair-row,.blank-row,.hanzi-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.dynamic-row input,.dialogue-row input,.vocabulary-row input,.grammar-row input,.grammar-row textarea,.option-row input,.pair-row input,.blank-row input,.blank-row select,.hanzi-row input{flex:1;min-width:120px;padding:9px 10px;border:1px solid #d1d5db;border-radius:8px;font:inherit}.vocabulary-row select{flex:0 0 auto;min-width:110px;padding:9px 8px;border:1px solid #d1d5db;border-radius:8px;font:inherit;background:#fff}.dialogue-row select{flex:0 0 auto;min-width:72px;padding:9px 8px;border:1px solid #d1d5db;border-radius:8px;font:inherit}.dialogue-row-media,.vocabulary-row-media{flex-basis:100%;display:flex;gap:14px;flex-wrap:wrap}.dialogue-row-media .media-picker,.vocabulary-row-media .media-picker{flex:1;min-width:200px}.vocabulary-row-analysis{flex-basis:100%;margin-top:4px;padding-top:10px;border-top:1px dashed #e5e7eb}.vocabulary-row-analysis summary{cursor:pointer;color:#bc312a;font-size:13px;font-weight:700}.vocabulary-row-analysis[open]{display:grid;gap:8px}.vocabulary-row-analysis[open] summary{margin-bottom:2px}.vocabulary-row-analysis textarea{width:100%;box-sizing:border-box;padding:9px 10px;border:1px solid #d1d5db;border-radius:8px;font:inherit;resize:vertical}.vocabulary-row-analysis input{width:100%;box-sizing:border-box}.option-row-group,.pair-row-group{display:grid;gap:6px;padding-bottom:8px;border-bottom:1px dashed #e5e7eb}.option-row-group .media-picker{max-width:320px}.pair-row-images{display:flex;gap:14px;flex-wrap:wrap}.pair-row-images>div{flex:1;min-width:200px;display:grid;gap:6px}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:14px}.checkbox-row input{flex:none}.attendance-bulk-actions{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.session-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px}.session-progress{display:grid;justify-items:end;gap:6px;min-width:220px;margin-left:auto}.session-progress-label{font-size:12.5px;font-weight:700;color:#1f2937;white-space:nowrap}.session-progress .progress-bar{width:220px}.session-timeline{position:relative;display:grid;gap:10px}.session-timeline:before{content:"";position:absolute;left:38px;top:24px;bottom:24px;width:2px;background:#e5e7eb;z-index:0}.session-row{position:relative;z-index:1;display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:12px 16px}.session-row.session-canceled{opacity:.7}.session-row.session-blocked{opacity:.8}.session-row.session-actionable{border:2px solid #bc312a;box-shadow:0 2px 10px #bc312a1f;padding:11px 15px}.session-badge{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:999px;font-size:15px;font-weight:700;background:#fff;border:2px solid #d1d5db;color:#9ca3af}.session-badge-done{background:#e8f5ec;border-color:#2f6b3a;color:#2f6b3a}.session-badge-next{background:#bc312a;border-color:#bc312a;color:#fff}.session-badge-canceled{background:#e5e7eb;border-color:#d1d5db;color:#9ca3af}.session-info{flex:1;min-width:0;display:grid;gap:2px}.session-info-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.session-info-top strong{font-size:15px}.session-info-meta{color:#6b7280;font-size:13px}.session-row-actions{flex:none;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.attendance-toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:14px 0}.attendance-toolbar .list-search{flex:0 1 260px}.attendance-summary-chips{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}.attendance-roster{display:grid;gap:8px;max-height:46vh;overflow-y:auto;padding-right:2px}.attendance-row{display:flex;align-items:center;gap:12px;padding:9px 12px;border:1px solid #e5e7eb;border-radius:10px;background:#fff}.attendance-avatar{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:#bc312a;color:#fff;font-size:11.5px;font-weight:700}.attendance-identity{flex:1;min-width:0;display:grid;gap:1px}.attendance-identity strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attendance-identity small{color:#9ca3af;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attendance-status-group{flex:none;display:inline-flex;border-radius:999px;overflow:hidden;border:1px solid #d1d5db}.attendance-status-option{padding:7px 12px;border:0;border-right:1px solid #d1d5db;background:#fff;color:#6b7280;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}.attendance-status-option:last-child{border-right:0}.attendance-status-option:hover:not(.active){background:#f9fafb}.attendance-status-option.active.tone-success{background:#e8f5ec;color:#27633a}.attendance-status-option.active.tone-warning{background:#fff3d6;color:#805b12}.attendance-status-option.active.tone-neutral{background:#e5e7eb;color:#374151}.attendance-status-option.active.tone-danger{background:#fde8e8;color:#991b1b}@media(max-width:1100px){.session-progress{flex-basis:100%;justify-items:start;margin-left:0}}@media(max-width:720px){.session-toolbar,.attendance-toolbar{flex-direction:column;align-items:stretch}.session-progress{justify-items:stretch}.session-progress .progress-bar{width:100%}.attendance-summary-chips{margin-left:0}.session-row{flex-wrap:wrap}.session-row-actions{width:100%;justify-content:flex-start}}.row-actions{display:flex;gap:6px;margin-left:4px}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;flex:none;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#374151;font:inherit;font-size:14px;line-height:1;cursor:pointer}.icon-button:disabled{opacity:.35;cursor:default}.icon-button.danger{color:#991b1b;border-color:#f3caca}.question-list{grid-column:1 / -1;display:grid;gap:14px;margin:14px 0}.grading-question-list{grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));align-items:stretch}.question-card{display:flex;flex-direction:column;border:1px solid #e5e7eb;border-radius:10px;padding:16px;background:#f9fafb}.question-card header{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}.question-card header span{color:#6b7280;font-size:12px;white-space:nowrap}.question-card-actions{display:flex;gap:10px;align-items:center;margin-bottom:6px}.grading-question-list .question-card>.preview-options{flex:1;display:flex;flex-direction:column;gap:10px}.grading-question-list .question-card>.preview-options>label.field:first-of-type{margin-top:auto}.question-form{grid-column:1 / -1;border:1px solid #d1d5db;border-radius:10px;padding:16px;margin:14px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 14px}.question-form legend{font-weight:700;padding:0 6px}.question-form-actions{grid-column:1 / -1;display:flex;gap:12px;margin-top:8px}.question-type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}.question-type-card{min-height:54px;padding:10px 12px!important;border:1px solid #d1d5db!important;border-radius:9px!important;background:#fff!important;color:#374151!important;text-align:left;font-weight:600}.question-type-card:hover:not(:disabled){border-color:#bc312a!important}.question-type-card.active{border-color:#bc312a!important;background:#fdeceb!important;color:#a32924!important;box-shadow:inset 0 0 0 1px #bc312a}.question-type-card:disabled:not(.active){opacity:.5}.question-type-legacy{padding:12px;border-radius:8px;background:#fff3d6;color:#805b12}.question-step-label{margin:8px 0 4px;font-size:13px;font-weight:800;color:#1f2937}.advanced-options{padding:12px;border:1px solid #e5e7eb;border-radius:9px;background:#f9fafb}.advanced-options summary{cursor:pointer;color:#bc312a;font-size:13px;font-weight:700}.advanced-options[open] summary{margin-bottom:12px}.option-row input[type=radio],.option-row input[type=checkbox]{flex:0 0 auto}.media-picker{display:grid;gap:8px}.media-picker-selected{display:flex;align-items:flex-start;gap:12px;min-width:0;padding:10px;border:1px solid #e5e7eb;border-radius:9px;background:#fff;flex-wrap:wrap}.media-picker-selected.media-selection-missing,.media-picker-selected.media-selection-unavailable{border-color:#d69e2e;background:#fffbeb}.media-picker-selected-info{display:grid;gap:4px;min-width:0;flex:1 1 160px;align-self:center}.media-picker-selected-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.media-picker-selected-info small{color:#805b12;font-size:11px}.media-picker-selected-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;align-self:center}.media-picker-selected-actions .link-button{white-space:nowrap}.media-picker-selected-actions .button-secondary{display:inline-flex;align-items:center;white-space:nowrap;padding:6px 12px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#bc312a;cursor:pointer;font:inherit;font-size:13px}.media-picker-selected-actions .button-secondary:hover:not(:disabled){border-color:#bc312a}.media-picker-selected-actions .button-secondary:disabled{opacity:.5;cursor:default}.media-replace-action{cursor:pointer}.media-picker-selected>.field-error{flex-basis:100%}.media-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;max-height:220px;overflow-y:auto}.media-picker-multi-list{display:grid;gap:8px}.media-picker-option{display:grid;gap:4px;border:1px solid #d1d5db;border-radius:8px;padding:6px;background:#fff;cursor:pointer}.media-picker-option small{word-break:break-all}.media-thumb{width:100%;height:64px;object-fit:cover;border-radius:6px;background:#e5e7eb}.media-thumb-selected{flex:0 0 96px;width:96px;height:96px;object-fit:contain;border-radius:8px;background:#e5e7eb}.media-thumb-audio{width:100%}.media-thumb-audio-selected{flex:1 1 220px;max-width:280px}.media-thumb-missing{display:grid;place-items:center;color:#9ca3af}.media-thumb-missing.media-thumb-selected{font-size:24px}.hanzi-snapshot-gallery{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}.hanzi-snapshot-gallery figure{margin:0;width:120px;text-align:center}.hanzi-snapshot-gallery img{width:120px;height:120px;object-fit:contain;border-radius:8px;border:1px solid #e5e7eb;background:#fff}.hanzi-snapshot-gallery figcaption{margin-top:4px;font-size:12px;color:#6b7280}.picture-description-gallery{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px}.picture-description-gallery figure{margin:0;width:160px;display:grid;gap:6px}.picture-description-gallery img{width:160px;height:120px;object-fit:cover;border-radius:8px;border:1px solid #e5e7eb;background:#fff}.picture-description-gallery audio{width:160px;height:32px}.picture-description-gallery .hint{margin:0;font-size:12px}.upload-inline{display:inline-block;padding:8px 14px;border:1px dashed #bc312a;border-radius:8px;color:#bc312a;cursor:pointer;font-size:13px}.add-block-panel{display:grid;grid-template-columns:minmax(180px,1fr) minmax(360px,auto);align-items:end;gap:18px;padding:18px;border:1px dashed #c9aea7;border-radius:12px;background:#f9fafb}.add-block-copy{display:grid;align-self:center;gap:4px}.add-block-copy strong{color:#1f2937;font-size:14px}.add-block-copy span{color:#6b7280;font-size:12px;line-height:1.4}.add-block-controls{display:grid;grid-template-columns:minmax(190px,1fr) auto;align-items:end;gap:6px 10px}.add-block-controls label{grid-column:1 / -1;color:#6b7280;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.add-block-controls select,.add-block-controls button{min-height:42px;margin:0;font:inherit}.add-block-controls select{width:100%;padding:9px 36px 9px 11px;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#1f2937;font-size:14px}.add-block-controls button{white-space:nowrap}.centered-state{min-height:60vh;display:grid;place-items:center;color:#6b7280}.inline-form{display:flex;gap:12px;margin:0 0 20px;flex-wrap:wrap;align-items:flex-end;padding:16px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px}.inline-form label{display:grid;gap:4px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#bc312a}.inline-form .field{margin-bottom:0}.inline-form input,.inline-form select{padding:9px 11px;border:1px solid #d1d5db;border-radius:8px;font:inherit;font-size:14px}.inline-form>input,.inline-form>select{align-self:flex-end}.inline-form button{background:#bc312a;color:#fff;border:0;border-radius:8px;padding:10px 16px;cursor:pointer;font:inherit;font-size:14px}.inline-form button:disabled{opacity:.5;cursor:default}.assignment-form{flex-wrap:wrap}.assignment-result{display:grid;gap:4px;margin-top:10px;padding:10px;border-radius:8px;background:#f3f4f6}.login-page{min-height:100vh;margin:auto;display:grid;place-items:center;background:#f3f4f6}.login-card{width:min(420px,92vw);background:#fff;padding:32px;border-radius:16px;box-shadow:0 16px 50px #5220161a}.login-card label{display:grid;gap:6px;margin:14px 0}.login-card input{padding:12px;border:1px solid #d1d5db;border-radius:8px}.login-card button{width:100%;padding:12px;margin-top:10px;border:0;border-radius:8px;background:#bc312a;color:#fff;cursor:pointer}.login-card button.secondary{background:#e5e7eb;color:#a32924}.login-links{margin:12px 0 0;font-size:13px;text-align:center}.login-links a{color:#bc312a}.field-hint{color:#991b1b;font-size:12px;margin-top:-8px}.field-note{color:#6b7280;font-size:12px;margin-top:-8px}.dev-tools{margin-top:18px;padding-top:14px;border-top:1px dashed #d1d5db}.password-field{position:relative;display:block}.password-field input{width:100%;padding-right:44px}.password-field .password-reveal{position:absolute;top:0;right:0;width:40px;height:100%;display:grid;place-items:center;margin:0;padding:0;border:0;border-radius:0 8px 8px 0;background:transparent;color:#6b7280;cursor:pointer}.password-field .password-reveal:hover{color:#3a1216}.dev-tools>span{display:block;color:#6b7280;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.save-status{display:inline-flex;align-items:center;align-self:center;gap:4px;min-height:36px;color:#6b7280;font-size:12px;white-space:nowrap}.save-status-failed{color:#991b1b}.save-status-saving{color:#805b12}.save-status-saved{color:#27633a}.table-wrap{position:relative;overflow-x:auto;background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-panel)}.table-scroll-hint{display:none;position:sticky;left:0;bottom:0;width:100%;padding:5px 10px;background:#fdf6e3;color:#6b7280;text-align:right;font-size:11px}table{width:100%;border-collapse:collapse}.data-table th{background:var(--color-surface-subtle)}th,td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--color-border);font-size:13.5px}th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#6b7280;font-weight:700}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--color-surface-subtle)}.sortable-th{font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;font-weight:inherit;background:none;border:none;padding:0;cursor:pointer}.sortable-th:hover{color:var(--color-brand)}td small{display:block;color:var(--color-muted);margin-top:2px}td select{padding:7px}td a{color:#bc312a}.lesson-preview{display:grid;gap:16px}.preview-block{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px 22px}.preview-block h3{margin:0 0 10px;color:#bc312a}.preview-block ul{margin:0;padding-left:20px;display:grid;gap:6px}.preview-dialogue{list-style:none;padding:0}.preview-grammar-point{margin:10px 0}.preview-grammar-name.rich-text-content{padding:0;font-weight:700}.preview-question{border-top:1px solid #e5e7eb;padding-top:14px;margin-top:14px}.preview-question:first-of-type{border-top:0;margin-top:0;padding-top:0}.preview-question small{display:block;color:#6b7280;margin:2px 0 8px}.preview-passage{background:#f9fafb;padding:10px 12px;border-radius:8px}.preview-options{list-style:none;padding:0;display:grid;gap:6px}.preview-options li{padding:6px 10px;border:1px solid #e5e7eb;border-radius:6px;display:flex;align-items:center;gap:8px}.preview-options li.correct{border-color:#bc312a;background:#fdeceb;font-weight:600}.preview-options li.wrong,.wrong-text{border-color:#991b1b;background:#fde2e2;color:#991b1b;font-weight:600}.preview-pair{justify-content:flex-start}.preview-pair-side{display:flex;align-items:center;gap:6px}.preview-vocab-item{display:flex;align-items:center;gap:8px}.preview-thumb{flex-shrink:0;object-fit:cover;border-radius:6px;background:#e5e7eb}.preview-thumb-sm{width:40px;height:40px}.preview-thumb-md{width:88px;height:88px}.preview-thumb-option{width:120px;height:90px}.attempt-question.correct{border-left:4px solid #2f6b3a}.attempt-question.incorrect{border-left:4px solid #991b1b}@media(max-width:720px){.app-shell{grid-template-columns:1fr}.mobile-menu-button{display:inline-flex;position:sticky;top:0;z-index:80;align-items:center;gap:8px;min-height:48px;padding:10px 16px;border:0;border-bottom:1px solid var(--color-border);background:#fff;color:#1f2937;font:inherit;font-weight:600}#admin-sidebar{position:fixed;z-index:100;inset:0 auto 0 0;width:min(300px,86vw);padding:18px;transform:translate(-105%);transition:transform .18s ease-out;box-shadow:12px 0 36px #1f293733}.mobile-nav-open #admin-sidebar{transform:translate(0)}.mobile-nav-backdrop{display:block;position:fixed;z-index:90;inset:0;border:0;background:#1f29378c}nav{display:grid;overflow:visible}.nav-group-label{display:block}main{padding:24px 16px;max-width:100%}.page-header{flex-direction:column}.editor-workspace{grid-template-columns:1fr}.editor-outline{position:static;max-height:none}.editor-outline nav{max-height:220px}.editor-block-toolbar{align-items:stretch;flex-direction:column;gap:4px}.drag-handle{justify-content:center;width:100%}.editor-block-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.editor-block-actions .link-button{padding-inline:5px}.add-block-panel{grid-template-columns:1fr;gap:14px}.add-block-controls{grid-template-columns:1fr}.add-block-controls label{grid-column:auto}.add-block-controls button{width:100%}.table-wrap{max-width:calc(100vw - 32px)}.table-scroll-hint{display:block}.data-table{min-width:680px}.grading-question-list{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){#admin-sidebar{transition:none}}.bar-chart{display:grid;gap:10px;margin:14px 0}.bar-chart-row{display:grid;grid-template-columns:minmax(100px,160px) 1fr 56px;align-items:center;gap:12px}.bar-chart-label{font-size:13px;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-chart-track{background:#f3f4f6;border-radius:6px;height:14px;overflow:hidden}.bar-chart-fill{background:#bc312a;height:100%;border-radius:6px}.bar-chart-value{font-size:13px;font-weight:700;color:#6b7280;text-align:right}.line-chart{margin:14px 0}.line-chart-svg{width:100%;height:100px;display:block}.line-chart-line{stroke:#bc312a;stroke-width:2}.line-chart-dot{fill:#bc312a}.line-chart-labels{display:flex;justify-content:space-between;margin-top:6px;font-size:12px;color:#6b7280}.chart-panel{margin-top:24px;padding:20px 22px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-panel)}.chart-panel h2{margin-bottom:4px}.chart-panel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:16px;align-items:stretch}.chart-panel-grid>.chart-panel{margin-top:0}.donut-chart{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin:14px 0 4px}.donut-chart-figure{position:relative;flex:none;width:132px;height:132px}.donut-chart-svg{width:100%;height:100%;display:block}.donut-chart-svg circle{transition:stroke-dasharray .2s ease}.donut-chart-center{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:10px}.donut-chart-center strong{display:block;font-size:20px;font-weight:750;color:var(--color-text);line-height:1.1}.donut-chart-center small{display:block;color:var(--color-muted);font-size:11px;margin-top:2px}.donut-legend{list-style:none;margin:0;padding:0;display:grid;gap:8px;flex:1 1 160px;min-width:160px}.donut-legend li{display:flex;align-items:center;gap:8px;font-size:13px}.donut-legend-swatch{flex:none;width:10px;height:10px;border-radius:3px}.donut-legend-label{flex:1;min-width:0;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.donut-legend-value{flex:none;font-weight:700;color:var(--color-muted)}.quick-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 18px;padding:14px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-panel)}.quick-actions strong{margin-right:auto}.quick-actions .button-primary,.quick-actions .button-secondary{min-height:40px;display:inline-flex;align-items:center;padding:8px 14px;border-radius:8px;text-decoration:none}.quick-actions .button-secondary{color:#bc312a;border:1px solid #d1d5db;background:#fff}.attention-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}.attention-card{display:grid;gap:4px;padding:16px 18px}.attention-card span{color:var(--color-muted);font-size:12px}.attention-card strong{font-size:26px;font-weight:750}.attention-card small{color:var(--color-muted)}.attention-grading{border-left:3px solid var(--color-brand)}.attention-overdue{border-left:3px solid #a46b11}.attention-action a{display:block;margin-top:4px;font-weight:700}@media(max-width:720px){.attention-summary{grid-template-columns:1fr}}.modal-backdrop{position:fixed;inset:0;background:#1f2937b3;display:grid;place-items:center;padding:24px;z-index:100}.modal-panel{background:#fff;border-radius:16px;width:min(520px,100%);max-height:90vh;overflow-y:auto;box-shadow:0 24px 60px #1f293740}.modal-panel.wide{width:min(680px,100%)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid #e5e7eb}.modal-header h2{margin:0;font-size:17px}.modal-body{padding:20px}.modal-body .field{margin-bottom:14px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.modal-actions-split{justify-content:space-between;align-items:center}.modal-actions-group{display:flex;gap:10px}.modal-actions-note{margin:0}.modal-actions button:not(.link-button){background:#bc312a;color:#fff;border:0;border-radius:7px;padding:9px 15px;cursor:pointer;font:inherit;font-size:14px}.modal-actions button.button-danger-solid{background:#991b1b}.modal-actions button.button-secondary{background:#fff;color:#bc312a;border:1px solid #d1d5db}.modal-actions button.button-secondary:hover:not(:disabled){border-color:#bc312a}.row-link-button{background:transparent;border:0;color:#bc312a;cursor:pointer;padding:0;font:inherit;font-size:14px;text-decoration:underline}.updated-meta{color:#9ca3af;font-size:12px}.status-pill{display:inline-flex;align-items:center;min-height:24px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700;line-height:1.2;white-space:nowrap}.status-pill:before{content:"";width:6px;height:6px;border-radius:50%;margin-right:6px;background:currentColor}.status-success{background:#e8f5ec;color:#27633a}.status-warning{background:#fff3d6;color:#805b12}.status-danger{background:#fde8e8;color:#991b1b}.status-neutral{background:#e5e7eb;color:#6b7280}.modal-section{margin:18px 0 4px;padding-top:14px;border-top:1px solid #e5e7eb}.modal-section:first-child{margin-top:0;padding-top:0;border-top:0}.modal-section-title{font-size:13px;font-weight:700;color:#1f2937;margin:0 0 10px}.scope-selector{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}.scope-option{padding:8px 16px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#374151;font:inherit;font-size:13px;font-weight:600;cursor:pointer}.scope-option:hover:not(.active){border-color:#bc312a;color:#bc312a}.scope-option.active{background:#bc312a;border-color:#bc312a;color:#fff}.picker-search{width:100%;padding:9px 11px;border:1px solid #d1d5db;border-radius:8px;font:inherit;font-size:14px;margin-bottom:10px;box-sizing:border-box}.picker-selection-hint{display:flex;align-items:center;gap:8px;margin:0 0 10px}.picker-group{margin-bottom:12px}.picker-group-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:700;color:#bc312a;margin-bottom:6px}.picker-list{max-height:190px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:8px;padding:6px;background:#f9fafb;display:grid;gap:2px}.picker-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 8px;border-radius:6px;font-size:14px}.picker-row:hover{background:#f3f4f6}.picker-row label{display:flex;align-items:center;gap:8px;cursor:pointer}.picker-row input{flex:none}.picker-tag{color:#9ca3af;font-weight:400}.picker-empty{padding:8px;margin:0;color:#9ca3af;font-size:13px}.multiselect{position:relative}.multiselect-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.multiselect-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 6px 4px 10px;border-radius:999px;background:#f3f4f6;color:#374151;font-size:13px}.multiselect-chip button{border:none;background:none;color:#bc312a;cursor:pointer;font:inherit;font-size:15px;line-height:1;padding:2px;border-radius:50%}.multiselect-chip button:hover{background:#e6d5cb}.multiselect-dropdown{position:absolute;z-index:5;top:calc(100% + 2px);left:0;right:0;max-height:220px;overflow-y:auto;border:1px solid #d1d5db;border-radius:8px;background:#fff;box-shadow:0 6px 18px #281a141f}.multiselect-dropdown-item{display:block;width:100%;text-align:left;padding:8px 11px;border:none;background:none;font:inherit;font-size:14px;color:#3b2c26;cursor:pointer}.multiselect-dropdown-item:hover,.multiselect-dropdown-item.active{background:#f9fafb}.multiselect-dropdown-empty{padding:10px 11px;margin:0;color:#9ca3af;font-size:13px}.advanced-options{margin:16px 0 4px;border:1px solid #e5e7eb;border-radius:8px;padding:4px 12px}.advanced-options summary{cursor:pointer;padding:10px 0;font-size:13px;font-weight:700;color:#bc312a}.advanced-options[open] summary{border-bottom:1px solid #e5e7eb}.advanced-options .field,.advanced-options .dynamic-list{margin:12px 0}.state-pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.state-pill.active,.state-pill.published{background:#e4f3e6;color:#1c6b32}.state-pill.closed,.state-pill.draft{background:#e5e7eb;color:#6b7280}.state-pill.pending_manual{background:#fff3d8;color:#9b5c00}.state-pill.archived{background:#f3e2e2;color:#bc312a}.state-pill.kind-curriculum{background:#e3eefc;color:#1d4f91}.state-pill.kind-exercise{background:#efe6fb;color:#5b2d91}.state-pill.kind-practice{background:#e5e7eb;color:#4b5563}.mini-meter{display:inline-block;width:60px;height:6px;border-radius:999px;background:#e5e7eb;overflow:hidden;vertical-align:middle;margin-right:8px}.mini-meter>span{display:block;height:100%;background:#bc312a}.rich-text-editor{border:1px solid #d1d5db;border-radius:8px;overflow:hidden;background:#fff}.rich-text-editor:focus-within{border-color:#c79b96;box-shadow:0 0 0 3px #8d26311a}.rich-text-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:5px 6px;background:#fafafa;border-bottom:1px solid #e5e7eb}.rich-text-toolbar-divider{width:1px;height:20px;background:#e0dad6;margin:0 4px;flex:none}.rich-text-toolbar-button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:none;background:transparent;border:0;border-radius:6px;color:#374151;cursor:pointer;padding:0}.rich-text-toolbar-button-text{font-size:14px;font-weight:700}.rich-text-toolbar-button:hover:not(:disabled){background:#e5e7eb}.rich-text-toolbar-button.active{background:#f5dedb;color:#bc312a}.rich-text-toolbar-button:disabled{opacity:.35;cursor:default}.rich-text-script-label{font-size:13px;font-weight:700;line-height:1}.rich-text-script-label sub,.rich-text-script-label sup{font-size:8px;font-weight:700}.rich-text-heading-select{border:1px solid transparent;border-radius:6px;background:transparent;color:#374151;font:inherit;font-size:13px;line-height:1.4;padding:6px;cursor:pointer}.rich-text-heading-select:hover{background:#e5e7eb}.rich-text-color-picker{position:relative;display:inline-flex;align-items:center;gap:2px}.rich-text-color-swatch{position:relative;font-size:14px;font-weight:700}.rich-text-color-swatch:after{content:"";position:absolute;left:6px;right:6px;bottom:5px;height:3px;border-radius:2px;background:var(--swatch-color, #1c1a1c)}.rich-text-color-picker input[type=color]{position:absolute;inset:0;width:30px;height:30px;opacity:0;pointer-events:none;border:0;padding:0}.rich-text-content{padding:10px 12px;min-height:60px;font:inherit}.rich-text-content p{margin:0 0 8px}.rich-text-content p:last-child{margin-bottom:0}.rich-text-content h1,.rich-text-content h2,.rich-text-content h3{margin:4px 0 8px}.rich-text-content ul,.rich-text-content ol{margin:0 0 8px;padding-left:22px}.rich-text-content a{color:#bc312a}.rich-text-content s,.rich-text-content del{text-decoration:line-through}.rich-text-content mark{background:#fde68a;padding:0 2px;border-radius:2px}.rich-text-content blockquote{margin:6px 0;padding:2px 0 2px 12px;border-left:3px solid #d1d5db;color:#6b625f}.rich-text-content blockquote p:last-child{margin-bottom:0}.rich-text-content pre{margin:6px 0;padding:10px 12px;background:#f3f4f6;border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;overflow-x:auto;white-space:pre}.rich-text-content code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;background:#f3f4f6;padding:1px 4px;border-radius:4px}.rich-text-content pre code{background:none;padding:0;font-size:inherit}.rich-text-content hr{border:0;border-top:1px solid #d1d5db;margin:10px 0}.rich-text-table-picker{position:relative;display:inline-flex}.rich-text-table-grid{position:absolute;top:calc(100% + 4px);left:0;z-index:30;padding:8px;background:#fff;border:1px solid #d1d5db;border-radius:8px;box-shadow:0 10px 28px #1c1a1c29}.rich-text-table-grid-cells{display:grid;gap:3px}.rich-text-table-grid .rich-text-table-grid-cell{width:16px;height:16px;min-width:0;padding:0;margin:0;border:1px solid #d1d5db;border-radius:2px;background:#fff;color:inherit;font:inherit;box-shadow:none;cursor:pointer}.rich-text-table-grid .rich-text-table-grid-cell:hover{background:#fbeeec}.rich-text-table-grid .rich-text-table-grid-cell.active{background:#f5dedb;border-color:#bc312a}.rich-text-table-grid-label{margin-top:7px;font-size:12px;color:#374151;text-align:center}.rich-text-table-grid-foot{margin-top:6px;display:flex;align-items:center;gap:6px;font-size:12px;color:#374151;cursor:pointer}.rich-text-table-grid-foot input{margin:0}.rich-text-table-controls{border-bottom:1px solid #e5e7eb;border-top:1px dashed #e5e7eb}.rich-text-content table{border-collapse:collapse;margin:4px 0 10px;width:100%}.rich-text-content th,.rich-text-content td{border:1px solid #d1d5db;padding:6px 9px;vertical-align:top;text-align:left}.rich-text-content th{background:#f7f1ed;font-weight:700}.rich-text-content td p,.rich-text-content th p{margin:0}.dynamic-row .rich-text-editor,.dialogue-row .rich-text-editor{flex:1;min-width:200px;align-self:flex-start}.grammar-row{flex-direction:column;align-items:stretch;gap:10px;padding:14px;border:1px solid #e5e7eb;border-radius:10px}.grammar-point-field{display:grid;gap:5px}.grammar-row .row-actions{align-self:flex-end}.list-toolbar{display:flex;justify-content:flex-end;align-items:end;gap:10px;flex-wrap:wrap;margin-bottom:12px}.report-filter{display:grid;gap:4px;color:#6b7280;font-size:12px}.report-filter select{min-height:38px;min-width:150px;border:1px solid #d1d5db;border-radius:7px;background:#fff;padding:7px 10px;color:#1f2937;font:inherit}.report-metrics article[title]{cursor:help}.report-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px}.report-section-heading h3{margin:0}.report-attention{display:inline-block;margin-top:10px;padding:6px 9px;border-radius:7px;background:#fff3d8;color:#805b12}.grading-actions{position:sticky;bottom:16px;z-index:5;display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:18px;padding:12px;border:1px solid #e5e7eb;border-radius:10px;background:#fffffff2;box-shadow:0 8px 28px #1f29371a}.grading-actions .button-secondary,.page-header-actions .button-secondary{display:inline-flex;align-items:center;min-height:38px;padding:8px 13px;border:1px solid #d1d5db;border-radius:7px;background:#fff;color:#bc312a;text-decoration:none;font:inherit}.list-search{width:280px;max-width:100%;padding:9px 11px;border:1px solid #d1d5db;border-radius:8px;font:inherit;font-size:14px}.pager{display:flex;align-items:center;justify-content:flex-end;gap:14px;width:100%;margin-top:14px;flex-wrap:wrap}.pager-summary{color:#6b7280;font-size:12px;white-space:nowrap}.pager-size{display:inline-flex;align-items:center;gap:7px;color:#6b7280;font-size:12px;white-space:nowrap}.pager-limit{min-height:44px;padding:6px 28px 6px 9px;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#1f2937;font:inherit;font-size:13px}.pager-controls{display:flex;align-items:center;gap:4px}.pager-button{display:inline-grid;place-items:center;min-width:44px;height:44px;padding:0 8px;border:1px solid transparent;border-radius:8px;background:transparent;color:#374151;cursor:pointer;font:inherit;font-size:13px;font-weight:600}.pager-button:hover:not(:disabled):not(.active){border-color:#d1d5db;background:#fff;color:#bc312a}.pager-button.active{border-color:#bc312a;background:#bc312a;color:#fff}.pager-button:disabled{opacity:.35;cursor:default}.pager-arrow{border-color:#e5e7eb;background:#fff;color:#bc312a;font-size:16px}.pager-ellipsis{display:inline-grid;place-items:center;width:24px;color:#9ca3af}.list-filter-bar{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}.list-filter-fields{display:flex;align-items:flex-end;gap:10px;flex:1;flex-wrap:wrap}.list-filter-fields .list-search{flex:1 1 260px}.list-filter-fields label{display:grid;gap:4px;color:#6b7280;font-size:12px}.list-filter-fields select{min-height:40px;min-width:150px}.list-filter-reset{flex:0 0 auto;min-height:40px;background:transparent;color:#bc312a;border-color:#d1d5db}.sortable-header{display:inline-flex;align-items:center;gap:6px;width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left}.sortable-header span{color:#9ca3af;font-size:12px}.sortable-header.active span{color:#bc312a}.action-menu-trigger{display:inline-grid;place-items:center;width:44px;min-width:44px;height:44px;padding:0;border:1px solid #d1d5db;border-radius:9px;background:#fff;color:#374151;letter-spacing:1px}.action-menu-popover{position:fixed;z-index:1200;display:grid;width:190px;max-height:calc(100vh - 16px);overflow-y:auto;padding:6px;border:1px solid #e5e7eb;border-radius:10px;background:#fff;box-shadow:0 12px 30px #3219162e}.action-menu-popover button{justify-content:flex-start;min-height:44px;padding:8px 10px;border:0;border-radius:7px;background:transparent;color:#1f2937;text-align:left}.action-menu-popover button:hover:not(:disabled),.action-menu-popover button:focus-visible{background:#f3f4f6}.action-menu-popover button.danger{color:#a2202c}@media(max-width:640px){.list-filter-bar{align-items:stretch;flex-direction:column}.list-filter-fields{align-items:stretch}.list-filter-fields label,.list-filter-fields select{width:100%}.list-filter-reset{align-self:flex-end}}.exam-structure{display:grid;gap:16px}.exam-structure .inline-row,.block-form .inline-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 16px;margin:8px 0}.exam-structure .inline-row label{display:grid;gap:4px;font-size:13px;font-weight:600;color:#4b5563}.exam-structure .inline-row input,.exam-structure .inline-row select{font-weight:400}.exam-part{margin-top:12px;padding:12px 14px;border:1px solid #e5e7eb;border-radius:10px;background:#fff}.exam-structure .question-card header{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.exam-structure .question-card>header{margin-bottom:4px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:16px 0 24px}.stat-card{display:grid;gap:4px;padding:14px 16px;border:1px solid #e5e7eb;border-radius:10px;background:#fff}.stat-card span{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#7a6767}.stat-card strong{font-size:24px}.version-list{padding-left:18px;display:grid;gap:6px}.exam-preview-header{display:flex;justify-content:space-between;gap:12px;padding:12px 16px;margin-bottom:12px;border-radius:10px;background:#bc312a;color:#fff}.exam-preview-part{margin:16px 0}.exam-preview ul{margin:6px 0 0;padding-left:20px}.page-header-actions a.button-secondary,.page-header-actions button.button-secondary{display:inline-flex;align-items:center;padding:8px 14px;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#bc312a;font:inherit;font-size:14px;font-weight:600;text-decoration:none;cursor:pointer;box-shadow:none}.page-header-actions a.button-secondary:hover,.page-header-actions button.button-secondary:hover:not(:disabled){background:#fdeceb}.exam-row-actions{white-space:nowrap}.exam-row-actions .link-button{display:inline-block}.exam-published-note{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;margin:4px 0 20px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);box-shadow:var(--shadow-panel)}.exam-published-note p{margin:4px 0 0;color:var(--color-muted);font-size:14px}.exam-published-note>button{flex:none;padding:9px 16px;border:0;border-radius:8px;background:var(--color-brand);color:#fff;font:inherit;font-weight:600;cursor:pointer}.exam-subheading{margin:0 0 8px;font-size:14px;color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em}.version-list{list-style:none;padding:0;display:grid;gap:8px}.version-list li{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface)}.version-list li .hint{margin-left:auto}.exam-policy{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 20px;align-items:end;max-width:980px}.exam-policy>h3{margin:22px 0 6px;padding-top:18px;border-top:1px solid var(--color-border);font-size:16px}.exam-policy>h3:first-child{margin-top:6px;padding-top:0;border-top:0}.exam-policy .checkbox-row{padding:6px 0}.exam-policy fieldset{margin:4px 0 10px;padding:8px 14px 10px;border:1px solid var(--color-border);border-radius:10px;display:flex;flex-wrap:wrap;gap:4px 22px}.exam-policy fieldset legend{padding:0 6px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#bc312a}.exam-policy input[type=number],.exam-policy input[type=text],.exam-policy input:not([type]),.exam-policy select,.exam-policy textarea{width:100%}.exam-scope-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.exam-scope-row select,.exam-scope-row input{padding:9px 10px;border:1px solid #d1d5db;border-radius:8px;font:inherit;background:#fff;min-width:200px}.exam-add,.exam-add-form button:not(.link-button){cursor:pointer;font:inherit;font-size:14px;font-weight:600}.exam-add{justify-self:start;padding:8px 14px;border:1px dashed #d1d5db;border-radius:8px;background:transparent;color:#bc312a}.exam-add:hover{background:#fdeceb;border-style:solid}.exam-add-section{padding:12px;width:100%;justify-self:stretch;text-align:center}.exam-add-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.exam-add-form input{flex:1;min-width:220px;padding:9px 10px;border:1px solid #d1d5db;border-radius:8px;font:inherit}.exam-add-form button:not(.link-button){padding:9px 16px;border:0;border-radius:8px;background:var(--color-brand);color:#fff}.exam-add-form button:disabled{opacity:.5;cursor:default}.exam-structure{gap:20px}.exam-section{display:grid;gap:14px;padding:18px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface);box-shadow:var(--shadow-panel)}.exam-section-head{display:flex;align-items:center;gap:12px}.exam-section-title{display:grid;flex:1;min-width:0}.exam-section-title strong{font-size:17px}.exam-section-title small{color:var(--color-muted)}.exam-index{display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:50%;background:var(--color-brand);color:#fff;font-weight:700;font-size:14px}.exam-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px 16px}.exam-fields .field,.exam-part .field{margin:0}.exam-structure .field input,.exam-structure .field select,.exam-structure .field textarea{width:100%;background:#fff}.exam-part{display:grid;gap:12px;margin:0;padding:14px 16px;border:1px solid #e5e7eb;border-radius:12px;background:var(--color-surface-subtle)}.exam-part-head{display:flex;align-items:center;gap:12px}.exam-part-badge{flex:none;padding:4px 10px;border-radius:999px;background:var(--color-brand-tint);color:#a32924;font-size:12px;font-weight:700;white-space:nowrap}.exam-part-head>input{flex:1;min-width:0;padding:8px 10px;border:1px solid #d1d5db;border-radius:8px;font:inherit;font-weight:600;background:#fff}.exam-audio-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px 22px;padding:8px 12px;border:1px solid var(--color-border);border-radius:10px;background:#fff}.exam-audio-row .field-label{margin-right:4px}.exam-inline-number{display:inline-flex;align-items:center;gap:8px;font-size:14px}.exam-inline-number input{width:64px;padding:6px 8px;border:1px solid #d1d5db;border-radius:8px;font:inherit}.exam-inline-number input:disabled{background:var(--color-surface-sunken)}.exam-question-list{display:grid;gap:6px}.exam-question{border:1px solid var(--color-border);border-radius:10px;background:#fff}.exam-question-row{display:flex;align-items:center;gap:12px;padding:8px 12px;min-height:48px}.exam-question-row:hover{background:#f9fafb;border-radius:10px}.exam-q-index{flex:none;display:grid;place-items:center;min-width:26px;padding:0 6px;height:26px;white-space:nowrap;border-radius:6px;background:var(--color-surface-sunken);color:var(--color-muted);font-size:13px;font-weight:700}.exam-q-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;font-size:14px}.exam-q-meta{flex:none;padding:3px 9px;border-radius:999px;background:var(--color-surface-sunken);color:#4b5563;font-size:12px;white-space:nowrap}.exam-q-actions{flex:none;display:flex;align-items:center;gap:8px}.exam-question>.question-form,.exam-question>form{margin:0 12px 12px}@media(max-width:760px){.exam-question-row{flex-wrap:wrap}.exam-q-title{flex-basis:calc(100% - 50px);white-space:normal}.exam-published-note{flex-direction:column;align-items:flex-start}}.page-header-actions a.button-primary{display:inline-flex;align-items:center;padding:9px 16px;border-radius:8px;background:var(--color-brand);color:#fff;font-size:14px;font-weight:600;text-decoration:none;box-shadow:0 1px 2px #a3292429}.page-header-actions a.button-primary:hover{background:#a32924}.exam-policy .exam-scope-row select,.exam-policy .exam-scope-row input{width:auto}.block-form button.exam-add{background:transparent;color:#bc312a;border:1px dashed #d1d5db;box-shadow:none;padding:8px 14px}.block-form button.exam-add:hover:not(:disabled){background:#fdeceb;border-style:solid;box-shadow:none}.exam-fields .field-note{margin-top:0}.block-form.exam-policy button.exam-add{background:transparent;color:#bc312a;border:1px dashed #d1d5db;box-shadow:none;padding:8px 14px;justify-self:start;grid-column:auto!important}.block-form.exam-policy button.exam-add:hover:not(:disabled){background:#fdeceb;border-style:solid;box-shadow:none}.exam-preview-part>h3{margin:0 0 4px}.exam-preview .question-card{margin-bottom:10px;gap:6px}.exam-preview ul{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:6px}.exam-preview ul li{padding:7px 12px;border:1px solid var(--color-border);border-radius:8px;background:#fff;font-size:14px}.exam-structure .field input[type=checkbox],.exam-structure .field input[type=radio],.exam-structure .question-form input[type=checkbox],.exam-structure .question-form input[type=radio]{width:auto;padding:0;flex:none}.exam-structure .question-form .field input:not([type=checkbox]):not([type=radio]),.exam-structure .question-form .field select,.exam-structure .question-form .field textarea{width:100%}.exam-question>.question-form{margin:4px 12px 12px}.question-form>.error{grid-column:1 / -1;margin-bottom:8px}.question-form .field-error-list{margin:0;padding-left:18px}.exam-structure,.exam-section,.exam-part,.exam-question-list,.exam-question{grid-template-columns:minmax(0,1fr);min-width:0}.exam-section,.exam-part{overflow-wrap:anywhere}.exam-fields{grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr))}.exam-policy{grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr))}.exam-audio-row .exam-inline-number{white-space:nowrap}.tabs-list{overflow-x:auto;scrollbar-width:thin}.tabs-list button{white-space:nowrap;flex:none}@media(max-width:900px){.page-header{flex-wrap:wrap}.page-header-actions{flex-shrink:1}.exam-section{padding:14px}.exam-part{padding:12px}.exam-question-row{flex-wrap:wrap;row-gap:6px}.exam-q-title{flex:1 1 calc(100% - 50px);white-space:normal}.exam-q-meta{margin-left:38px}.exam-q-actions{margin-left:auto}.exam-part-head{flex-wrap:wrap}.exam-part-head>input{flex-basis:100%;order:3}.question-form{grid-template-columns:minmax(0,1fr)}}@media(min-width:721px){.app-shell{grid-template-columns:236px minmax(0,1fr)}}@media(max-width:720px){.app-shell{grid-template-columns:minmax(0,1fr)}}.app-shell>*{min-width:0}.exam-check-group{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:4px 28px;padding:4px 0 8px}.exam-check-group .field{margin:0;min-width:180px}.exam-check-group .checkbox-row{padding:6px 0}.exam-check-group .field{width:200px}.exam-policy textarea{min-height:88px}.exam-action-bar{position:sticky;bottom:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:20px;padding:12px 16px;border:1px solid var(--color-border);border-radius:12px;background:#fffdfbf5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 -4px 18px #1e0f0a14}.exam-save-state{font-size:14px;color:#25866d;font-weight:600}.exam-save-state.is-dirty{color:#92400e}.exam-action-bar-buttons{display:flex;gap:10px}.exam-action-bar-buttons button{padding:9px 18px;border-radius:8px;border:0;background:var(--color-brand);color:#fff;font:inherit;font-weight:600;cursor:pointer}.exam-action-bar-buttons button.button-secondary{background:#fff;color:#bc312a;border:1px solid #d1d5db}.exam-action-bar-buttons button:disabled{opacity:.5;cursor:not-allowed}.page-header-actions button.action-menu-trigger{align-self:stretch;height:auto;min-height:38px;width:44px;padding:0;background:#fff;color:#bc312a;border:1px solid #d1d5db;box-shadow:none;line-height:1}.page-header-actions button.action-menu-trigger:hover:not(:disabled){background:#fdeceb;box-shadow:none}.mc-stem-grid{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mc-stem-grid-single{grid-template-columns:minmax(0,1fr)}.mc-stem-figure{margin:0;display:grid;gap:4px}.mc-stem-grid:not(.mc-stem-grid-single) .mc-stem-image{height:auto;aspect-ratio:4 / 3}.mc-stem-figure figcaption{text-align:center;color:var(--mc-muted);font-size:12px}.mc-exam-appbar{flex-shrink:0;display:flex;align-items:center;gap:10px;padding:8px 14px 10px;border-bottom:1px solid var(--mc-line);background:var(--mc-canvas)}.mc-exam-close{color:var(--mc-muted);font-size:16px}.mc-exam-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.mc-exam-timer{flex:none;display:grid;justify-items:end;font-size:13px;font-weight:700;color:var(--mc-ink)}.mc-exam-timer small{color:var(--mc-muted);font-size:10.5px;font-weight:600}.mc-exam-progress{padding-top:10px}.mc-exam-instructions{margin:0 0 10px;padding:8px 10px;border-radius:12px;background:var(--mc-gold-soft);color:#7a5a14;font-size:12.5px}.mc-exam-audio-note{margin:0 0 10px;color:var(--mc-muted);font-size:12px}.mc-exam-footer .mc-exam-map-button{flex:none;min-width:50px;padding:0;font-size:18px}.mc-exam-map-title{margin:0 0 12px;font-size:15px}.mc-exam-map{display:flex;flex-wrap:wrap;gap:8px}.mc-exam-map-cell{width:42px;height:42px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;color:var(--mc-ink);font:inherit;font-weight:700;cursor:pointer}.mc-exam-map-cell.is-current{background:var(--mc-red);border-color:var(--mc-red);color:#fff}.mc-exam-map-cell:disabled{background:var(--mc-surface-soft);color:#c4b2ae;cursor:not-allowed}.mc-exam-map-note{margin:14px 0 0;color:var(--mc-muted);font-size:12px}.mc-exam-dialog-scrim{align-items:center;justify-content:center;padding:24px}.mc-exam-dialog{width:100%;padding:20px;border-radius:20px;background:#fff;display:grid;gap:8px;box-shadow:0 12px 40px #1f293740}.mc-exam-dialog p{margin:0;color:var(--mc-muted);font-size:14px}.mc-exam-dialog-actions{display:flex;gap:10px;margin-top:8px}.mc-exam-dialog-actions button{flex:1;min-height:44px}.mc-exam-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.mc-exam-switch{display:inline-flex;padding:3px;border-radius:999px;background:var(--color-surface-sunken)}.mc-exam-switch button{padding:6px 14px;border:0;border-radius:999px;background:transparent;font:inherit;font-size:13px;font-weight:600;color:var(--color-muted);cursor:pointer}.mc-exam-switch button.active{background:#fff;color:#bc312a;box-shadow:0 1px 3px #1e0f0a1f}.mc-exam-footer{gap:8px}.mc-exam-icon-button{flex:none;width:44px;height:50px;border:0;border-radius:12px;background:transparent;color:var(--mc-ink);font-size:20px;cursor:pointer}.mc-exam-icon-button:hover{background:var(--mc-surface-soft)}.mc-exam-icon-button.is-on{color:var(--mc-red)}.mc-exam-map-cell{position:relative;border-radius:8px}.mc-exam-map-cell.is-current{background:#fff;color:var(--mc-ink);border:2px solid var(--mc-red)}.mc-exam-map-flag{position:absolute;top:1px;right:4px;font-size:11px;color:var(--mc-red)}.mc-exam-audio{display:grid;justify-items:center;gap:6px;margin:4px 0}.mc-exam-audio small{color:var(--mc-muted);font-size:12px}.mc-exam-audio-button{padding:10px 22px;border:0;border-radius:999px;background:var(--mc-red-soft);color:var(--mc-red-dark);font:inherit;font-weight:700}.mc-exam-audio-seek{width:100%;display:flex;align-items:center;gap:8px}.mc-exam-audio-seek input{flex:1;accent-color:var(--mc-red)}.mc-exam-result{flex:1;min-height:0;overflow-y:auto;padding:16px 16px 24px;display:grid;align-content:start;gap:6px}.mc-exam-chip{justify-self:center;padding:6px 14px;border:1px solid var(--mc-line);border-radius:999px;font-size:13px;background:#fff}.mc-exam-score{text-align:center;font-size:38px;font-weight:800;margin-top:10px}.mc-exam-center{text-align:center;font-size:15px}.mc-exam-card{display:grid;gap:4px;padding:12px 14px;border:1px solid var(--mc-line);border-radius:16px;background:#fff;text-align:left}.mc-exam-card>strong{text-align:center}.mc-exam-result-heading{margin:16px 0 4px;font-size:15px}.mc-exam-result-row{display:flex;justify-content:space-between;padding:8px 4px;font-size:14px;border-bottom:1px solid var(--mc-line)}.mc-exam-review-head{display:flex;align-items:center;gap:8px;font-size:14px}.mc-exam-review-head .grow{flex:1}.mc-exam-review small{color:var(--mc-muted);font-size:12.5px}.mc-exam-result-actions{display:grid;gap:6px;margin-top:18px}.mc-exam-text-button{border:0;background:transparent;color:var(--mc-red-dark);font:inherit;font-weight:600;padding:10px}.mobile-preview-toolbar .mc-exam-switch{display:inline-flex;flex:none}.mc-exam-switch button{white-space:nowrap}.rich-text-content img{display:block;max-width:100%;height:auto;margin:8px auto;border-radius:6px}.rich-text-editor .rich-text-content img{max-width:min(100%,360px);max-height:260px;width:auto;margin:8px 0}.rich-text-content img.ProseMirror-selectednode{outline:2px solid #bc312a}.news-preview-wrap{display:flex;justify-content:center}.news-preview-appbar{padding:10px 16px;font-weight:700;border-bottom:1px solid #0001}.news-preview-scroll{flex:1;overflow-y:auto}.news-preview-banner{display:block;width:100%;height:auto}.news-preview-body{padding:16px}.news-preview-body h2{margin:0 0 6px;font-size:20px}.news-preview-body h3{margin:0 0 6px;font-size:15px;font-weight:500}.news-preview-body small{display:block;margin-bottom:12px;opacity:.7}.news-preview-body .rich-text-content{padding:0;min-height:0}.news-preview-link{margin-top:16px;padding:8px 12px;border:1px solid #0003;border-radius:20px;display:inline-block;font-size:14px}.news-publish-box{margin:16px 0;padding:12px 14px;border:1px solid var(--mc-line, #0002);border-radius:8px;display:grid;gap:8px}.news-publish-box label{display:flex;gap:8px;align-items:center}.news-preview-scroll{min-height:0}.mc-ruby{ruby-position:over;ruby-align:center}.mc-ruby rt{font-size:.55em;line-height:1.2;color:#6b7280;font-weight:400}.mc-pinyin-toggle{display:flex;justify-content:flex-end;padding:4px 12px 0}.mc-pinyin-toggle .mc-btn-outline{padding:2px 10px;font-size:12px}.mc-pinyin-toggle .mc-btn-outline.is-off{opacity:.7}.exam-example{display:grid;gap:10px;margin:0;padding:12px 14px;border:1px dashed #d7a8a3;border-radius:12px;background:var(--mc-red-soft, #fce7e3)}.exam-example legend{padding:0 6px;font-weight:700;color:var(--mc-red-dark, #a32924)}.exam-example-options{display:grid;gap:8px}.exam-example-option{display:grid;grid-template-columns:auto auto 1fr 1fr auto;align-items:center;gap:8px}.exam-example-option input[type=text],.exam-example-option input:not([type]){min-width:0;padding:6px 8px;border:1px solid #d1d5db;border-radius:8px;font:inherit;background:#fff}.exam-example-remove{justify-self:start}@media(max-width:760px){.exam-example-option{grid-template-columns:auto auto 1fr}.exam-example-option input[aria-label^=Pinyin]{grid-column:3}}.mc-exam-heading{display:flex;align-items:baseline;gap:8px;margin:0 0 6px}.mc-exam-heading strong{font-size:15px;color:var(--mc-ink)}.mc-exam-heading small{color:var(--mc-muted);font-size:12.5px}.mc-exam-example{display:grid;gap:4px;margin:0 0 10px;padding:10px 12px;border:1px dashed #d7a8a3;border-radius:12px;background:#fce7e373}.mc-exam-example-img{max-width:100%;max-height:240px;object-fit:contain;border-radius:8px;justify-self:start}.mc-exam-example-label{color:var(--mc-red-dark);font-size:12.5px;font-weight:800}.mc-exam-example-py{color:var(--mc-muted);font-size:11.5px}.mc-exam-example-zh{font-size:14px}.mc-exam-example-options{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.mc-exam-example-option{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid #e5e7eb;border-radius:10px;background:#fff;font-size:14px}.mc-exam-example-option.is-correct{border-color:var(--mc-jade);background:var(--mc-jade-soft)}.mc-exam-example-option b{font-weight:800}.mc-exam-example-option small{display:block;color:var(--mc-muted);font-size:11px}.mc-exam-example-tick{color:var(--mc-jade);font-weight:800}.mc-exam-numrow{display:flex;align-items:center;justify-content:space-between;margin:0 0 8px}.mc-exam-badge{min-width:30px;padding:4px 9px;border-radius:8px;background:var(--mc-red);color:#fff;font-weight:800;text-align:center}.mc-exam-star{border:0;background:transparent;color:#b9aaa6;font-size:22px;line-height:1;cursor:pointer}.mc-exam-star.is-on{color:var(--mc-gold)}.pinyin-editor{margin:4px 0 8px 28px}.pinyin-editor-toggle,.pinyin-editor-actions button{font-size:12px;padding:2px 8px;cursor:pointer}.pinyin-editor-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:4px;margin:6px 0;font-size:20px}.pinyin-editor-cell{display:inline-flex;flex-direction:column;align-items:center}.pinyin-editor-cell input{width:auto;min-width:3.2em;text-align:center;font-size:12px;padding:2px 4px}.pinyin-editor-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.pinyin-editor-warning{color:#b45309;font-size:12px}.rich-text-pinyin-popover{padding:8px;min-width:240px;font-size:14px}.rich-text-pinyin-popover .pinyin-editor{margin-left:0}.ProseMirror ruby[data-pinyin]{display:inline-block;text-align:center}.ProseMirror ruby[data-pinyin]:before{content:attr(data-pinyin);display:block;font-size:.6em;line-height:1.2;color:#6b7280}input,select,textarea,button{font-family:inherit}.login-page{position:fixed;inset:0;z-index:10}.login-card input,.field input,.field textarea,.field select,.list-search,.list-filter-fields select,.report-filter select,.pager-limit{border-radius:10px;border-color:#d1d5db;background:#fff;color:#1f2937}.login-card input:focus,.field input:focus,.field textarea:focus,.field select:focus,.list-search:focus,.list-filter-fields select:focus,.pager-limit:focus{border-color:var(--color-brand);outline:none;box-shadow:var(--focus-ring)}.list-search,.list-filter-fields select,.report-filter select,.pager-limit{min-height:40px;box-sizing:border-box}.list-filter-fields label{color:#6b7280;font-weight:600}.pager-button,.pager-arrow{min-width:40px;height:40px;border-radius:10px}.pager-arrow:disabled{color:#9ca3af}td a{text-decoration:none;font-weight:600}td a:hover{text-decoration:underline}td .link-button{padding:4px 8px;white-space:nowrap}th{color:#6b7280;background:#f9fafb}.nav-group-label,.brand-subtitle{color:#9ca3af}.page-header-actions button.secondary{background:#fff;color:var(--color-brand);border:1px solid #d1d5db;box-shadow:none}.page-header-actions button.secondary:hover:not(:disabled){border-color:var(--color-brand);background:var(--color-brand-tint);box-shadow:none}.course-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.login-page{max-width:none;padding:0;margin:0}.sortable-header{text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:700;color:#6b7280}.sortable-header.active{color:var(--color-brand)}nav.breadcrumbs{display:flex;flex:none;gap:6px;margin-bottom:10px}.breadcrumbs a{display:inline;padding:0;background:transparent;border-radius:0;font-size:13px;font-weight:500}.breadcrumbs a:hover{background:transparent;color:var(--color-brand-strong)}.breadcrumb-sep{color:#d1d5db}td .link-button:not(.danger){color:#374151;font-weight:500}td .link-button:not(.danger):hover:not(:disabled){color:var(--color-brand);background:var(--color-brand-tint)}.form-grid{display:grid;gap:4px;max-width:560px}.form-grid>button[type=submit]{justify-self:start;margin-top:14px;padding:10px 20px;border:0;border-radius:10px;background:var(--color-brand);color:#fff;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 1px 2px #a3292429}.form-grid>button[type=submit]:hover:not(:disabled){background:var(--color-brand-strong)}.form-grid>button[type=submit]:disabled{opacity:.5;cursor:default}.section-toolbar{margin:10px 0 12px}.page-header{margin-bottom:20px;padding-bottom:16px}:root{--side: #172033;--side-hover: #222d45;--side-active: #2b3a5c;--side-text: #cfd6e4;--side-muted: #7d89a3;--color-surface-subtle: #f4f6fa;--color-border: #dfe4ec;--color-muted: #667085;background:#f4f6fa}body{background:#f4f6fa;font-size:14px;line-height:1.55}.app-shell{grid-template-columns:232px minmax(0,1fr);background:#f4f6fa}#admin-sidebar{background:var(--side);color:var(--side-text);padding:18px 0;border-right:0;box-shadow:none}.sidebar-brand-row{padding:0 20px 14px;gap:9px}.sidebar-brand-row:before{flex-basis:26px;width:26px;height:26px;border-radius:7px;box-shadow:none;background:linear-gradient(135deg,#e0574f,#bc312a);font-size:13px}.brand{color:#fff;font-size:16px;font-weight:700}.brand-subtitle{color:var(--side-muted);font-size:10.5px}nav{gap:0}.nav-group-label{margin:0;padding:14px 20px 4px;color:var(--side-muted);font-size:11px;font-weight:600;letter-spacing:.06em}nav a{padding:8px 20px;border-radius:0;border-left:3px solid transparent;color:var(--side-text);font-size:14px;font-weight:400}nav a:hover{background:var(--side-hover);color:#fff}nav a.active{background:var(--side-active);color:#fff;font-weight:500;border-left-color:#f0837f}nav a.active:before{content:none}.sidebar-identity{margin:auto 0 0;padding:14px 20px 8px;border-radius:0;border:0;border-top:1px solid var(--side-active);background:transparent}.identity-avatar{background:#e0574f}.identity-copy strong{color:#fff;font-size:13px}.identity-copy small{color:var(--side-muted)}.account-link{margin:0;padding:4px 20px;border-radius:0;color:#f4b4af;font-size:12.5px;font-weight:400}.account-link:hover{background:transparent;color:#fff;text-decoration:underline}.account-link.active{background:transparent;color:#fff;font-weight:400}.logout-button{margin:6px 20px 0;padding:3px 10px;border:1px solid var(--side-active);border-radius:8px;color:var(--side-text);font-size:12px;text-align:center;align-self:flex-start}.logout-button:hover{background:var(--side-hover);color:#fff}main{padding:26px 32px 60px}.page-header{align-items:center;margin-bottom:18px;padding-bottom:0;border-bottom:0}h1{font-size:22px;font-weight:700;letter-spacing:-.01em}h2{font-size:16px}.eyebrow{display:none}.lead{font-size:13px}.breadcrumbs{margin-bottom:6px}article,.table-wrap{border-radius:10px;border-color:var(--color-border);box-shadow:0 1px 2px #1018280f,0 1px 3px #10182814}.table-wrap th,.data-table th{background:#f0f3f8;position:sticky;top:0;z-index:1;font-size:11.5px;letter-spacing:.04em}th,td{padding:9px 12px;font-size:14px}tbody tr:hover td{background:#fdf3f2}tr:last-child td{border-bottom:0}.tabs-list{border-bottom-color:var(--color-border)}.status-pill{padding:1px 9px;min-height:0;font-weight:500}@media(max-width:720px){.app-shell{grid-template-columns:minmax(0,1fr)}.mobile-menu-button{background:var(--side);color:#fff;border-bottom:0;justify-content:space-between}#admin-sidebar{width:260px;padding:18px 0}main{padding:18px 14px 60px}}@media(min-width:721px){#admin-sidebar{overflow:hidden}#admin-sidebar nav{overflow-y:auto;min-height:0;scrollbar-width:thin;scrollbar-color:var(--side-active) transparent}.sidebar-identity{margin-top:8px;flex:none}nav a{padding-top:7px;padding-bottom:7px;font-size:13.5px}.nav-group-label{padding-top:12px}}@media(max-width:720px){.app-shell{align-content:start;grid-auto-rows:min-content}.app-shell>main{grid-column:1}.page-header{align-items:stretch}.mobile-menu-button{min-height:48px;height:48px;width:100%;flex-direction:row-reverse;justify-content:space-between}}.icon{flex:none;vertical-align:-3px}nav a{display:flex;align-items:center;gap:10px}nav a .icon{opacity:.75}nav a.active .icon,nav a:hover .icon{opacity:1}.account-link,.logout-button{display:flex;align-items:center;gap:8px}.logout-button{display:inline-flex}.eyebrow{display:inline-block;margin:0 0 4px;padding:1px 9px;border-radius:999px;background:#eceff5;color:var(--color-muted);font-size:12px;font-weight:500;letter-spacing:0;text-transform:none}.page-header-actions{gap:8px;align-items:center}.page-header-actions button:not(.link-button){padding:7px 14px;font-size:14px;font-weight:500;border-radius:8px;box-shadow:none}.page-header-actions button.button-secondary,.page-header-actions button.secondary{background:var(--color-surface);color:var(--text-strong, #1c2330);border:1px solid var(--color-border)}.page-header-actions button.button-secondary:hover:not(:disabled){background:#f0f3f8;border-color:#c8cfdb}.page-header-actions button.button-danger{background:var(--color-surface);color:#c62828;border:1px solid #efc2c2}.page-header-actions button.button-danger:hover:not(:disabled){background:#fdecec}section>.page-header:has(~.editor-workspace){position:sticky;top:0;z-index:20;margin:-26px -32px 18px;padding:14px 32px;background:#f4f6faeb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--color-border)}.field{gap:4px;margin-bottom:14px}.field-label{font-size:13px;font-weight:600;text-transform:none;letter-spacing:0;color:#1c2330}.field input,.field textarea,.field select{padding:7px 10px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);font-size:14px}.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid color-mix(in srgb,var(--color-brand) 40%,transparent);outline-offset:1px;border-color:var(--color-brand);box-shadow:none}.block-form{gap:0 14px}.hint,.field-note{font-size:12px}.editor-workspace{grid-template-columns:200px minmax(0,1fr);gap:16px}.editor-outline{top:78px;padding:8px 0;gap:4px;border-radius:10px;border-color:var(--color-border);box-shadow:0 1px 2px #1018280f;max-height:calc(100vh - 100px)}.editor-outline-heading{padding:8px 14px 6px}.editor-outline-heading strong{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted);font-weight:600}.editor-outline nav{gap:0}.editor-outline button{padding:7px 14px;border-radius:0}.editor-outline-item{border-left-width:3px!important}.editor-outline-item:hover{background:#f0f3f8!important}.editor-outline-item.active{background:#fdeceb!important;border-left-color:var(--color-brand)!important}.editor-outline-title{font-weight:500;font-size:13.5px}.editor-outline-item.active .editor-outline-title{font-weight:600;color:var(--color-brand-strong)}.block-list{gap:14px}.editor-block-frame{border-color:var(--color-border);border-radius:10px;box-shadow:0 1px 2px #1018280f,0 1px 3px #10182814}.editor-block-toolbar{min-height:0;padding:5px 8px;background:#f0f3f8;border-bottom-color:var(--color-border);border-radius:9px 9px 0 0}.editor-block-actions{gap:2px}.editor-block-actions .link-button,.drag-handle{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:4px 9px;border:1px solid transparent;border-radius:7px;font-size:12.5px;font-weight:500;color:#475467}.editor-block-actions .link-button:hover:not(:disabled),.drag-handle:hover{background:#fff;border-color:var(--color-border);color:#1c2330}.editor-block-actions .link-button.danger{color:#c62828}.editor-block-actions .link-button.danger:hover:not(:disabled){background:#fdecec;border-color:#efc2c2}.editor-block-frame .block-card{border-radius:0 0 9px 9px;padding:16px 18px}.block-card-summary strong,.block-card h2{font-size:15px}.block-form button:not(.link-button):not(.icon-button),.question-form button:not(.link-button):not(.icon-button){padding:6px 12px;font-size:13px;font-weight:500;border-radius:8px;box-shadow:none}.add-block-panel{padding:14px 16px;border-radius:10px;border:1px dashed #c3cad8;background:#fff}.add-block-controls select,.add-block-controls button{min-height:36px}.add-block-controls button{display:inline-flex;align-items:center;gap:6px;padding:0 14px;font-size:14px;font-weight:500}.add-block-controls label{font-size:11px}@media(max-width:900px){section>.page-header:has(~.editor-workspace){position:static;margin:0 0 18px;padding:0;background:none;border:0;-webkit-backdrop-filter:none;backdrop-filter:none}}.page-header{flex-wrap:wrap}.page-header>div:first-child{min-width:0;flex:1 1 320px}.page-header-actions{flex-wrap:wrap;justify-content:flex-end}.editor-workspace>*,.editor-blocks,.editor-block-frame,.editor-block-frame .block-card{min-width:0;max-width:100%}.block-list{grid-template-columns:minmax(0,1fr)}@media(max-width:900px){.editor-workspace{grid-template-columns:minmax(0,1fr)}.editor-outline{position:static;top:auto;max-height:none}.editor-outline nav{max-height:200px}}@media(max-width:720px){.page-header>div:first-child{flex:0 0 auto;width:100%}.page-header-actions{justify-content:flex-start}.editor-block-toolbar{flex-direction:column;align-items:stretch}.editor-block-actions{display:flex;flex-wrap:wrap}}.question-type-select select{width:100%;max-width:420px;padding:8px 10px;border:1px solid var(--color-border);border-radius:8px;background:#fff;font:inherit}.question-type-select select:disabled{background:#f0f3f8;color:var(--color-muted)}.editor-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start}.editor-main{min-width:0;display:grid;gap:12px}.editor-preview-pane{display:none}@media(min-width:1180px){.editor-workspace.has-preview{grid-template-columns:minmax(0,1fr) 340px}.editor-workspace.has-preview .editor-preview-pane{display:block;position:sticky;top:78px}}.editor-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 1px 2px #1018280f}.editor-chips-label{margin-right:4px;color:var(--color-muted);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.editor-chip{position:relative;display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border:1px solid var(--color-border);border-radius:999px;background:#f7f8fb;color:#475467;font:inherit;font-size:13px;cursor:pointer}.editor-chip:hover{background:#eceff5}.editor-chip.active{background:#fdeceb;border-color:var(--color-brand);color:var(--color-brand-strong);font-weight:600}.editor-chip.outline-warning{border-left:3px solid #c28316}.editor-chip.outline-error{border-left:3px solid #b42318}.editor-chip b{display:inline-grid;min-width:18px;height:18px;place-items:center;border-radius:99px;background:#fff0d5;color:#805b12;font-size:11px}.editor-chip.outline-error b{background:#fde2e2;color:#991b1b}.editor-chip.dragging{opacity:.5}.editor-chip.drop-before{box-shadow:-3px 0 0 var(--color-brand)}.editor-chip.drop-after{box-shadow:3px 0 0 var(--color-brand)}.editor-chip[draggable=true]{cursor:grab}.editor-block-frame .block-card{padding:0}.editor-block-frame .block-card-summary{padding:11px 16px}.editor-block-frame .block-card-summary:hover{background:#fafbfd}.editor-block-frame .block-card-content{margin:0;padding:14px 18px 18px}.editor-block-frame .block-toggle-label{color:var(--color-muted);font-size:12px;font-weight:500}.editor-block-frame .block-card-summary:after{content:"▾";color:var(--color-muted);margin-left:8px;transition:transform .15s}.editor-block-frame details[open]>.block-card-summary:after{transform:rotate(180deg)}.editor-block-frame details[open]>.block-card-summary{border-bottom:1px solid var(--color-border)}.block-card-summary{align-items:center}.mobile-preview-workspace.compact{gap:8px}.mobile-preview-workspace.compact .mobile-preview-toolbar{width:100%;padding:8px 12px}.context-help{padding:8px 12px;margin:0 0 14px}.context-help p{font-size:12.5px}.editor-block-frame:not(.is-open) .editor-block-toolbar{display:none}.editor-block-frame:not(.is-open) .block-card{border-radius:10px}.editor-block-frame .block-toggle-label{display:none}.editor-block-frame .block-card-summary{gap:10px}.editor-block-frame .block-card-summary>span:first-child{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.editor-block-frame .block-card-summary strong{font-size:14.5px}.editor-block-frame .block-card-summary small{margin:0}.editor-block-frame .block-card-summary:after{margin-left:auto}.vocabulary-row{display:grid;grid-template-columns:90px minmax(110px,1fr) minmax(140px,1.4fr) minmax(110px,1fr) 110px auto;gap:8px;align-items:start;padding:10px 12px;border:1px solid var(--color-border);border-radius:10px;background:#fbfcfe}.vocabulary-row .vocabulary-field{min-width:0}.vocabulary-row input{width:100%;padding:6px 9px;font-size:14px}.vocabulary-row-media,.vocabulary-row-analysis{grid-column:1 / -1}.vocabulary-row-media{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.vocabulary-row-analysis{margin:0;padding-top:6px}.vocabulary-row-analysis summary,.vocabulary-row-media .field-label{font-size:12.5px}.dialogue-row{padding:10px 12px;border:1px solid var(--color-border);border-radius:10px;background:#fbfcfe;gap:8px}.dialogue-row input,.dialogue-row select{padding:6px 9px;font-size:14px}.dynamic-list>.link-button{justify-self:start;display:inline-flex;align-items:center;padding:6px 14px;border:1px dashed #c3cad8;border-radius:8px;background:#fff;font-weight:500}.dynamic-list>.link-button:hover:not(:disabled){border-style:solid;background:#f0f3f8}@media(max-width:900px){.vocabulary-row{grid-template-columns:repeat(2,minmax(0,1fr))}.vocabulary-row-media{grid-template-columns:1fr}}.phone-frame{--s: .85;width:calc(390px * var(--s) + 20px);height:calc(790px * var(--s) + 20px);margin:0 auto;padding:10px;border-radius:46px;background:#11151c;box-shadow:0 0 0 2px #2b3342,0 12px 32px #10182847;flex:none}.phone-screen{width:calc(390px * var(--s));height:calc(790px * var(--s));border-radius:36px;overflow:hidden;background:var(--mc-canvas)}.ph-app{position:relative;width:390px;height:790px;display:flex;flex-direction:column;transform:scale(var(--s));transform-origin:top left;background:var(--mc-canvas);color:var(--mc-ink);font-family:-apple-system,Inter,Segoe UI,Roboto,sans-serif;overflow:hidden}.ph-status{position:relative;flex:none;height:50px;display:flex;align-items:flex-end;justify-content:space-between;padding:0 28px 8px 34px;background:var(--mc-canvas)}.ph-time{font-weight:600;font-size:16px}.ph-island{position:absolute;left:50%;top:11px;width:112px;height:32px;transform:translate(-50%);background:#000;border-radius:20px}.ph-icons{display:flex;align-items:center;gap:6px}.ph-appbar{flex:none;position:relative;display:flex;align-items:center;justify-content:center;height:48px;font-size:18px;font-weight:700}.ph-back{position:absolute;left:14px;font-size:30px;font-weight:400;line-height:1}.ph-home{position:absolute;left:50%;bottom:8px;width:134px;height:5px;transform:translate(-50%);border-radius:3px;background:#000000d9;pointer-events:none}.ph-app>.mc-tab-body,.ph-app>.mc-exam-result,.ph-app>.news-preview-scroll{padding-bottom:28px}.ph-app .mc-sheet-scrim{position:absolute;z-index:5}.ph-app>.mc-tab-body-exercise{padding-bottom:0}.ph-app .mc-practice-footer{padding-bottom:26px}.mobile-preview-workspace .phone-frame,.news-preview-wrap .phone-frame{margin-top:4px}.mobile-preview-workspace.compact .mobile-preview-toolbar{display:none}.exam-split{display:block}.exam-split.has-preview{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}.exam-split-main{min-width:0}.exam-preview-pane{position:sticky;top:16px}.mobile-preview-workspace.compact .mc-exam-toolbar{flex-direction:column;align-items:stretch;gap:8px;padding:8px 12px;width:100%}.mobile-preview-workspace.compact .mc-exam-toolbar small{display:none}.exam-action-bar{border-radius:10px;background:#f4f6faf2}.mobile-preview-workspace.compact .mobile-preview-toolbar.mc-exam-toolbar{display:flex}.news-split.has-preview{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px;align-items:start}.news-split-main{min-width:0}.news-preview-side{position:sticky;top:16px}.ph-appbar{justify-content:flex-start;height:56px;padding:0 20px 0 76px;background:var(--mc-canvas);font-size:20px;font-weight:800;letter-spacing:-.2px;color:var(--mc-ink)}.ph-appbar.tall{height:68px}.ph-back{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:24px;height:24px;color:var(--mc-ink)}.ph-title{display:flex;flex-direction:column;justify-content:center;min-width:0;line-height:1.25}.ph-title>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ph-title small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;letter-spacing:0;color:var(--mc-muted)}.mc-tabbar{gap:0;padding:0 16px 8px;border-bottom:0;background:var(--mc-canvas)}.mc-tab{height:38px;gap:8px;padding:0 16px;border-radius:14px;font-size:14px;font-weight:700}.mc-tab .icon{width:18px;height:18px;vertical-align:0}.mc-tab-body{padding:20px 20px 28px}.mc-tab-body-exercise{padding:0}.mc-dialogue{gap:0}.mc-dialogue-row{margin-bottom:16px}.mc-dialogue-speaker{padding:0 4px;margin-bottom:4px;font-size:12px;font-weight:700;color:var(--mc-muted)}.mc-dialogue-bubble{gap:4px;padding:16px;border-radius:16px;box-shadow:0 3px 8px #a329241a}.mc-dialogue-row-left .mc-dialogue-bubble{background:#fff;border:1px solid var(--mc-line-strong);border-radius:16px 16px 16px 4px}.mc-dialogue-row-right .mc-dialogue-bubble{background:var(--mc-red-soft);border-radius:16px 16px 4px}.mc-dialogue-pinyin{color:var(--mc-muted)}.mc-progress-header{display:flex;align-items:center;gap:14px;padding:8px 20px 12px;border-bottom:0;background:var(--mc-canvas)}.mc-progress-track{flex:1;height:8px;background:var(--mc-red-soft)}.mc-progress-fill{background:var(--mc-red)}.mc-progress-counter{margin:0;font-size:16px;font-weight:700;color:var(--mc-ink);white-space:nowrap}.mc-practice-scroll{padding:12px 20px 20px}.mc-practice-footer{padding:10px 20px 26px;border-top:0;background:var(--mc-canvas)}.mc-btn-filled{min-height:54px;border-radius:999px;font-size:15px;background:var(--mc-red)}.mc-btn-outline{min-height:50px;border-radius:14px;border:1px solid var(--mc-line-strong);font-size:15px}.mc-choice{border-radius:16px;border:1px solid var(--mc-line-strong)}.mc-vocab-row{border:1px solid var(--mc-line-strong);border-radius:20px;box-shadow:0 4px 10px #1717190f}.mc-exam-appbar{gap:4px;height:56px;padding:0 20px 0 8px;border-bottom:0;background:var(--mc-canvas)}.mc-exam-close{display:grid;place-items:center;width:44px;height:44px;font-size:20px;color:var(--mc-ink)}.mc-exam-title{font-size:14px;font-weight:700;color:var(--mc-ink)}.mc-exam-timer{font-size:14px}.mc-progress-header.mc-exam-progress{display:block;padding:0;background:var(--mc-canvas)}.mc-exam-progress .mc-progress-track{height:3px;border-radius:0;background:var(--mc-line)}.mc-exam-progress .mc-progress-counter{padding:10px 20px 4px;text-align:left;font-size:14px}.mc-exam-footer{padding:10px 20px 26px}.mc-exam-instructions{padding:0;border-radius:0;background:transparent;color:var(--mc-ink)}.mc-exam-map-cell.is-flagged{background:#fff3d8;border-color:#a9660d}.mc-exam-map-cell.is-current.is-flagged{background:#fff3d8}.mc-exam-map-flag{color:#a9660d}.mc-exam-chip{border:1px solid var(--mc-line-strong)}.news-preview-body{padding:16px;color:var(--mc-ink)}.news-preview-body h2{margin:0 0 8px;font-size:23px;line-height:1.2;font-weight:800}.news-preview-body h3{margin:0 0 8px;font-size:17px;line-height:1.3;font-weight:700}.news-preview-body small{margin-bottom:16px;font-size:13px;line-height:1.45;color:var(--mc-muted);opacity:1}.news-preview-link{display:flex;align-items:center;justify-content:center;min-height:50px;margin-top:16px;padding:0 20px;border:1px solid var(--mc-line-strong);border-radius:14px;background:#fff;font-size:15px;font-weight:600}.ph-app>.news-preview-scroll{background:var(--mc-canvas)}.action-menu-trigger,.page-header-actions button.action-menu-trigger{display:inline-flex;align-items:center;justify-content:center;width:38px;min-width:38px;height:38px;min-height:38px;padding:0;letter-spacing:0;line-height:1;overflow:hidden;border:1px solid var(--color-border);border-radius:8px;background:#fff;color:#475467}.action-menu-trigger svg{display:block;flex:none}.page-header-actions button.action-menu-trigger:hover:not(:disabled),.action-menu-trigger:hover{background:#f0f3f8;color:#1c2330}.dp-screen{flex:1;min-height:0;overflow-y:auto;padding:8px 20px 32px;display:grid;align-content:start;gap:12px;scrollbar-width:none}.dp-screen::-webkit-scrollbar{display:none}.dp-hero{display:grid;justify-items:center;gap:8px;padding:20px 16px 16px;border:1px solid var(--mc-red-border, #f2c9c3);border-radius:20px;background:var(--mc-surface-soft)}.dp-hero-text{line-height:1.15;font-weight:800;color:var(--mc-ink)}.dp-hero-pinyin{display:flex;align-items:center;gap:8px;font-size:19px;font-weight:700;color:var(--mc-red)}.dp-speak{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:#fad9d2;color:var(--mc-red-dark)}.dp-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.dp-chip{padding:3px 10px;border:1px solid var(--mc-line-strong);border-radius:999px;background:#fff;color:var(--mc-muted);font-size:12px;font-weight:700}.dp-chip-red{background:#fff2ed;border-color:#f2c9c3;color:var(--mc-red-dark)}.dp-chip-sky{background:#eaf1ff;border-color:#afc8ff;color:#1b4e8f}.dp-card{display:grid;gap:6px;padding:16px;border:1px solid var(--mc-line-strong);border-radius:20px;background:#fff}.dp-card-title{font-size:15px;font-weight:800}.dp-section-title{margin:6px 0 -4px}.dp-muted{margin:0;color:var(--mc-muted);font-size:12.5px}.dp-tiles{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px}.dp-whole{padding:8px 14px;border:1px solid var(--mc-line-strong);border-radius:999px;background:#fff;font:inherit;font-size:14px;font-weight:600;cursor:pointer}.dp-whole.is-selected{background:#fad9d2;border-color:var(--mc-red);color:var(--mc-red-dark)}.dp-tile{width:56px;height:56px;border:1px solid var(--mc-line-strong);border-radius:14px;background:#fff;color:var(--mc-ink);font:inherit;font-size:28px;font-weight:700;cursor:pointer}.dp-tile.is-selected{background:#fad9d2;border:2px solid var(--mc-red);color:var(--mc-red-dark)}.dp-link{display:inline-flex;align-items:center;gap:6px;justify-self:start;padding:6px 8px;border:0;background:transparent;color:var(--mc-red-dark);font:inherit;font-size:14px;font-weight:700;cursor:pointer}.dp-nav{display:flex;justify-content:space-between}.dp-title-row{display:flex;align-items:center;justify-content:space-between;font-size:15px}.dp-title-row strong{font-weight:800}.dp-count{color:var(--mc-red);font-weight:700}.dp-pad{display:block;width:100%;max-width:330px;aspect-ratio:1;margin:8px auto 0;border:1px solid var(--mc-line-strong);border-radius:20px;background:#fff;touch-action:none;cursor:crosshair}.dp-grid line{stroke:#f2c9c3;stroke-width:4}.dp-stroke-faint{fill:var(--mc-line)}.dp-stroke-done{fill:var(--mc-ink)}.dp-stroke-hint{fill:#bc312a8c}.dp-demo{fill:none;stroke:var(--mc-ink);stroke-width:160;stroke-linecap:round;stroke-linejoin:round}.dp-ink{fill:none;stroke:var(--mc-red);stroke-width:22;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.dp-status{margin:4px 0 0;text-align:center;color:var(--mc-muted);font-size:14px;font-weight:600}.dp-status.is-complete{color:#1b6552}.dp-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px}.dp-tool{display:grid;justify-items:center;align-content:center;gap:2px;height:52px;padding:0;border:1px solid #f2c9c3;border-radius:14px;background:var(--mc-surface-soft);color:var(--mc-red-dark);font:inherit;font-size:11.5px;font-weight:700;cursor:pointer}.dp-tool:disabled{background:var(--mc-canvas);border-color:var(--mc-line-strong);color:#7a6a6a;cursor:default}.dp-entry-pinyin{color:var(--mc-red);font-size:17px;font-weight:700}.dp-entry-meaning{margin:0;font-size:16px;font-weight:600}.dp-label{margin:10px 0 0;color:var(--mc-muted);font-size:11px;font-weight:800;letter-spacing:.6px}.dp-text{margin:0;font-size:14px;white-space:pre-wrap}.dp-example{display:grid;gap:2px;margin-top:6px}.dp-example-zh{display:flex;align-items:center;justify-content:space-between;font-size:17px;font-weight:700}.dp-example-pinyin{color:var(--mc-muted);font-size:13px}.dict-edit-layout{display:grid;gap:18px}.dict-preview-pane{display:none}@media(min-width:1100px){.modal-panel.dict-modal{width:min(1020px,100%)}.dict-edit-layout{grid-template-columns:minmax(0,1fr) 330px;align-items:start}.dict-preview-pane{display:block;position:sticky;top:0}}.dp-ink-rejected{opacity:.55;transition:opacity .4s}.dict-view{display:flex;justify-content:center}.row-link-button strong{font-size:16px}.modal-panel.dict-view-modal{width:min(980px,100%)}.dw-layout{display:grid;gap:18px;align-items:start}@media(min-width:820px){.dw-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.dw-left,.dw-right{display:grid;gap:12px;align-content:start;min-width:0}.dw-layout .dp-hero{justify-items:start;padding:22px 24px}.dw-layout .dp-chips{justify-content:flex-start}.dw-layout .dp-card{padding:18px 20px}.dw-layout .dp-pad{max-width:400px}.dw-layout .dp-entry-meaning{font-size:18px}.dw-layout .dp-text{font-size:15px}.dw-layout .dp-example-zh{font-size:20px}.dw-layout .dp-tool{height:56px;font-size:12.5px}.modal-panel.dict-view-modal{width:min(760px,100%)}.dict-view-modal .modal-body{padding:16px 18px}.dw-layout{gap:14px}@media(min-width:700px){.dw-layout{grid-template-columns:minmax(0,1fr) 300px}}.dw-left,.dw-right{gap:10px}.dw-layout .dp-hero{grid-template-columns:auto 1fr;justify-items:start;align-items:center;column-gap:16px;row-gap:4px;padding:14px 18px;border-radius:16px}.dw-layout .dp-hero-text{grid-row:1 / span 2;font-size:44px!important}.dw-layout .dp-hero-pinyin{font-size:16px}.dw-layout .dp-speak{width:30px;height:30px;border-radius:10px}.dw-layout .dp-chips{grid-column:2}.dw-layout .dp-card{padding:12px 14px;border-radius:16px;gap:4px}.dw-layout .dp-pad{max-width:260px;margin-top:6px;border-radius:16px}.dw-layout .dp-entry-meaning{font-size:16px}.dw-layout .dp-text{font-size:14px}.dw-layout .dp-example-zh{font-size:17px}.dw-layout .dp-tile{width:44px;height:44px;font-size:22px;border-radius:12px}.dw-layout .dp-tiles{margin-top:4px}.dw-layout .dp-tool{height:46px}.dw-layout .dp-status{font-size:13px}.dict-view-modal .modal-actions{margin-top:12px}.stat-tile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px;margin:0 0 18px}.stat-tile{--tile: var(--color-brand);display:grid;gap:2px;align-content:start;padding:14px 16px 14px 18px;background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--tile);border-radius:10px;box-shadow:0 1px 2px #1018280d;min-width:0}.stat-tile.tone-green{--tile: #2f6b3a}.stat-tile.tone-amber{--tile: #a46b11}.stat-tile.tone-blue{--tile: #315d86}.stat-tile[title]{cursor:help}.stat-tile-label{color:var(--color-muted);font-size:12px;font-weight:600;line-height:1.3}.stat-tile-value{font-size:26px;font-weight:750;line-height:1.15;color:var(--color-text);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.stat-tile-hint{color:var(--color-muted);font-size:12px}.chart-panel-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));margin-bottom:18px}.chart-panel{margin-top:0;padding:16px 18px;border-radius:10px;box-shadow:0 1px 2px #1018280d;min-width:0}.chart-panel-wide{grid-column:1 / -1}.chart-panel-head{margin-bottom:10px}.chart-panel-head h2{margin:0;font-size:15px}.chart-panel-head p{margin:2px 0 0;color:var(--color-muted);font-size:12px}.chart-panel>.line-chart,.chart-panel>div>.bar-chart{margin-bottom:0}.bar-chart{gap:9px;margin:6px 0 0}.bar-chart-row{grid-template-columns:minmax(80px,38%) 1fr auto;gap:10px}.bar-chart-label{font-size:12.5px}.bar-chart-track{height:10px;border-radius:999px}.bar-chart-fill{border-radius:999px;transition:width .25s ease}.bar-chart-fill.tone-good{background:#2f6b3a}.bar-chart-fill.tone-mid{background:#a46b11}.bar-chart-fill.tone-low{background:#b42318}.bar-chart-value{min-width:44px;font-size:12.5px;color:var(--color-text);font-variant-numeric:tabular-nums;white-space:nowrap}.chart-toggle{margin-top:10px;padding:4px 0;border:0;background:none;color:var(--color-brand);font-size:12.5px;font-weight:600;cursor:pointer}.chart-toggle:hover{text-decoration:underline}.line-chart{margin:4px 0 0}.line-chart-area{fill:#bc312a14}.line-chart-svg{height:120px}.donut-chart{margin:4px 0 0;gap:20px}.donut-chart-figure{width:148px;height:148px}.donut-chart-center strong{font-size:22px}.attention-panel{margin-top:4px}.attention-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:10px}.attention-head h2{margin:0 6px 0 0;font-size:16px}.attention-chip{padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}.attention-chip-grading{background:var(--color-brand-tint);color:var(--color-brand-strong)}.attention-chip-overdue{background:#fdf0d5;color:#8a5a0b}.attention-table .attention-action{min-width:200px}.class-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin-bottom:18px}.class-card-grid .course-card{display:grid;gap:3px;padding:14px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;color:inherit;text-decoration:none;box-shadow:0 1px 2px #1018280d;transition:border-color .15s,box-shadow .15s}.class-card-grid .course-card:hover{border-color:var(--color-brand);box-shadow:0 2px 8px #10182814}.class-card-grid .course-card span{color:var(--color-muted);font-size:12px;font-weight:600}.class-card-grid .course-card small{color:var(--color-muted)}.report-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:18px;align-items:start}.report-panel{min-width:0}.report-panel>h2{margin:0 0 8px;font-size:16px}.assignment-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px;margin-top:14px}.assignment-charts h3{margin:0 0 6px;font-size:13px;color:var(--color-muted);font-weight:600}@media(max-width:720px){.stat-tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bar-chart-row{grid-template-columns:minmax(70px,34%) 1fr auto}.donut-chart{justify-content:center}}.stat-tile-grid+.progress-bar{margin:-4px 0 16px}.rate-pill{display:inline-block;min-width:46px;padding:2px 9px;border-radius:999px;font-size:12.5px;font-weight:700;text-align:center;font-variant-numeric:tabular-nums}.rate-good{background:#e3f1e6;color:#1f5a2c}.rate-mid{background:#fdf0d5;color:#8a5a0b}.rate-low{background:#fde4e1;color:#a32924}:root{--tone-brand: #bc312a;--tone-good: #2f6b3a;--tone-mid: #a46b11;--tone-low: #b42318;--tone-blue: #315d86;--tone-neutral: #8b93a1}.bar-chart-fill.tone-good{background:var(--tone-good)}.bar-chart-fill.tone-mid{background:var(--tone-mid)}.bar-chart-fill.tone-low{background:var(--tone-low)}.stat-tile{--tile: var(--tone-brand)}.stat-tile.tone-green{--tile: var(--tone-good)}.stat-tile.tone-amber{--tile: var(--tone-mid)}.stat-tile.tone-blue{--tile: var(--tone-blue)}.stat-tile.tone-red{--tile: var(--tone-low)}.info-tip{position:relative;display:inline-flex;vertical-align:middle;margin-left:4px}.info-tip-button{width:16px;height:16px;padding:0;border:1px solid var(--color-border);border-radius:50%;background:var(--color-surface);color:var(--color-muted);font-size:10px;font-weight:700;line-height:1;cursor:help}.info-tip-button:hover,.info-tip-button:focus-visible{color:var(--color-text);border-color:var(--color-muted)}.info-tip-text{position:absolute;z-index:30;left:50%;bottom:calc(100% + 6px);transform:translate(-50%);width:max-content;max-width:240px;padding:7px 10px;border-radius:8px;background:#1c2330;color:#fff;font-size:12px;font-weight:400;line-height:1.4;text-transform:none;letter-spacing:0;box-shadow:0 6px 18px #10182840;visibility:hidden;opacity:0;transition:opacity .12s;pointer-events:none}.info-tip:hover .info-tip-text,.info-tip:focus-within .info-tip-text{visibility:visible;opacity:1}.sub-section{margin-top:26px;padding-top:18px;border-top:1px solid var(--color-border)}.sub-section-title{margin:0 0 10px;font-size:16px}.assignment-detail{margin-bottom:10px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 1px 2px #1018280d}.assignment-detail>summary{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;padding:12px 16px;cursor:pointer;list-style:none}.assignment-detail>summary::-webkit-details-marker{display:none}.assignment-detail>summary:before{content:"▸";color:var(--color-muted);transition:transform .15s}.assignment-detail[open]>summary:before{transform:rotate(90deg)}.assignment-detail-title{font-weight:600}.assignment-detail-meta{color:var(--color-muted);font-size:13px;margin-right:auto}.assignment-detail-body{padding:0 16px 14px}.stacked-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 10px;padding:0;list-style:none;font-size:12.5px;color:var(--color-text)}.stacked-legend li{display:inline-flex;align-items:center;gap:6px}.stacked-track{display:flex;min-width:8px;background:transparent;overflow:hidden}.stacked-seg{min-width:4px;height:100%}.stacked-seg+.stacked-seg{border-left:2px solid var(--color-surface)}.movement-table-gap{height:16px}.progress-list{list-style:none;margin:0 0 18px;padding:14px 18px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;display:grid;gap:14px;box-shadow:0 1px 2px #1018280d}.progress-list li{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:center}.progress-list-head{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}.progress-list-meta{color:var(--color-muted);font-size:12.5px}.progress-list .bar-chart-track{grid-column:1}.rate-cell{min-width:150px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px}.rate-cell .bar-chart-track{display:block}.filter-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px;margin:0 0 16px;padding:12px 14px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px}.filter-field{display:grid;gap:3px;font-size:12px;font-weight:600;color:var(--color-muted)}.filter-field input,.filter-field select{min-height:36px;font-size:14px;font-weight:400}.segmented{display:inline-flex;padding:3px;background:var(--color-surface-sunken);border-radius:9px}.segmented button{min-height:32px;padding:4px 12px;border:0;border-radius:7px;background:transparent;color:var(--color-muted);font-size:13px;font-weight:600;cursor:pointer;text-transform:capitalize}.segmented button.active{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 2px #1018281f}.collect-bar{height:8px;margin:-6px 0 16px;background:var(--color-surface-sunken);border-radius:999px;overflow:hidden}.collect-bar-fill{height:100%;background:var(--tone-good);border-radius:999px}.money-owed{color:var(--tone-low);font-weight:600}.money-ok{color:var(--tone-good)}.dashboard-split{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:18px;align-items:start}.dashboard-charts{display:grid;gap:18px}.attention-panel{margin:0;padding:16px 18px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 1px 2px #1018280d}.attention-list{list-style:none;margin:0;padding:0;display:grid}.attention-list li{display:grid;gap:2px;padding:10px 0;border-top:1px solid var(--color-border)}.attention-list li:first-child{border-top:0}.attention-item-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}.attention-item-class,.attention-item-meta{color:var(--color-muted);font-size:12.5px}.attention-item-meta{display:grid;gap:1px}.attention-clear{margin:4px 0 0}.class-card-grid .course-card{display:grid;gap:8px;align-content:start}.course-card-main{display:grid;gap:3px;color:inherit;text-decoration:none}.course-card-main strong{font-size:15px}.course-card-badges{display:flex;flex-wrap:wrap;gap:6px}.course-card-badges:empty{display:none}.course-card-actions{display:flex;flex-wrap:wrap;gap:4px 14px;padding-top:8px;border-top:1px solid var(--color-border);font-size:13px;font-weight:600}@media(max-width:1000px){.dashboard-split{grid-template-columns:1fr}}.stat-tile-delta{font-size:12px;font-weight:600;color:var(--color-muted)}.stat-tile-delta.up{color:var(--tone-good)}.stat-tile-delta.down{color:var(--tone-low)}.report-search{margin:0 0 16px}.report-search-field input{width:100%;max-width:520px;min-height:40px;padding:8px 14px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);font-size:14px}.report-search-results{margin-top:8px;padding:10px 14px;max-width:520px;display:grid;gap:10px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 6px 18px #10182814}.report-search-results h3{margin:0 0 4px;font-size:12px;color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em}.report-search-results ul{list-style:none;margin:0;padding:0}.report-search-results a{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;padding:6px 4px;border-radius:6px;color:inherit;text-decoration:none}.report-search-results a:hover,.report-search-results a:focus-visible{background:var(--color-surface-sunken)}.report-search-results small{color:var(--color-muted)}.overview-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px}.entity-grid{list-style:none;margin:0 0 14px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.entity-card{display:grid;gap:8px;height:100%;padding:14px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;color:inherit;text-decoration:none;box-shadow:0 1px 2px #1018280d;transition:border-color .15s,box-shadow .15s}a.entity-card:hover,a.entity-card:focus-visible{border-color:var(--color-brand);box-shadow:0 2px 10px #1018281a}.entity-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.entity-card-head strong{font-size:15px;line-height:1.3}.entity-card-code{color:var(--color-muted);font-size:12px;font-weight:600;letter-spacing:.03em}.entity-card-stats{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;color:var(--color-muted)}.entity-card-stats strong{color:var(--color-text);font-size:15px}.entity-card-link{color:var(--color-brand);font-size:13px;font-weight:600}.entity-card-skeleton{min-height:150px;background:linear-gradient(90deg,var(--color-surface-sunken) 25%,var(--color-surface) 50%,var(--color-surface-sunken) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.4s linear infinite}@media(prefers-reduced-motion:reduce){.entity-card-skeleton{animation:none}}.score-meter{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;min-width:120px}.score-meter-empty{color:var(--color-muted);font-size:12.5px}.score-cell{min-width:160px}.filter-group{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.filter-group input[type=date]{min-height:34px;font-size:13.5px}.filter-group-label{color:var(--color-muted);font-size:12px;font-weight:600}.breakdown-bar{display:flex;align-items:center;gap:10px;margin:4px 0 10px}.segmented button{text-transform:none}.filter-bar .link-button{align-self:center}.filter-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 14px;padding:14px 16px}.filter-bar>.filter-field{flex:1 1 150px}.filter-bar .filter-field{gap:5px;font-size:12px;font-weight:600;color:var(--color-muted);min-width:0}.filter-bar .filter-field input,.filter-bar .filter-field select{width:100%;height:38px;min-height:38px;padding:0 12px;border:1px solid var(--color-border);border-radius:8px;background-color:var(--color-surface);color:var(--color-text);font:inherit;font-size:14px;font-weight:400;box-shadow:none;transition:border-color .15s,box-shadow .15s}.filter-bar .filter-field select{appearance:none;-webkit-appearance:none;padding-right:34px;cursor:pointer;text-overflow:ellipsis;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%23667085' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.filter-bar .filter-field input[type=date]{padding-right:8px;cursor:pointer}.filter-bar .filter-field input:hover,.filter-bar .filter-field select:hover{border-color:#c4cbd8}.filter-bar .filter-field input:focus-visible,.filter-bar .filter-field select:focus-visible{outline:none;border-color:var(--color-brand);box-shadow:var(--focus-ring)}.filter-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex:0 0 auto;margin-left:auto;min-height:38px}button.button-primary.button-primary.button-primary,a.button-primary.button-primary.button-primary,button.button-secondary.button-secondary.button-secondary,a.button-secondary.button-secondary.button-secondary,button.button-danger.button-danger.button-danger,a.button-danger.button-danger.button-danger,button.button-danger-solid.button-danger-solid.button-danger-solid,a.button-danger-solid.button-danger-solid.button-danger-solid{display:inline-flex;align-items:center;justify-content:center;gap:6px;box-sizing:border-box;min-height:38px;padding:0 16px;margin:0;border:1px solid transparent;border-radius:8px;font:inherit;font-size:14px;font-weight:500;line-height:1.2;white-space:nowrap;text-decoration:none;cursor:pointer;box-shadow:none;transition:background-color .12s ease,border-color .12s ease,box-shadow .12s ease,color .12s ease}button.button-primary.button-primary.button-primary,a.button-primary.button-primary.button-primary{background:var(--color-brand);color:#fff;box-shadow:0 1px 2px #a3292433}button.button-primary.button-primary.button-primary:hover:not(:disabled),a.button-primary.button-primary.button-primary:hover:not(:disabled){background:var(--color-brand-strong)}button.button-secondary.button-secondary.button-secondary,a.button-secondary.button-secondary.button-secondary{background:var(--color-surface);color:var(--text-strong, #1c2330);border-color:var(--color-border)}button.button-secondary.button-secondary.button-secondary:hover:not(:disabled),a.button-secondary.button-secondary.button-secondary:hover:not(:disabled){background:#f0f3f8;border-color:#c8cfdb}button.button-danger.button-danger.button-danger,a.button-danger.button-danger.button-danger{background:var(--color-surface);color:#c62828;border-color:#efc2c2}button.button-danger.button-danger.button-danger:hover:not(:disabled),a.button-danger.button-danger.button-danger:hover:not(:disabled){background:#fdecec}button.button-danger-solid.button-danger-solid.button-danger-solid,a.button-danger-solid.button-danger-solid.button-danger-solid{background:#991b1b;color:#fff}button.button-danger-solid.button-danger-solid.button-danger-solid:hover:not(:disabled),a.button-danger-solid.button-danger-solid.button-danger-solid:hover:not(:disabled){background:#7f1616}button.button-primary.button-primary.button-primary:focus-visible,a.button-primary.button-primary.button-primary:focus-visible,button.button-secondary.button-secondary.button-secondary:focus-visible,a.button-secondary.button-secondary.button-secondary:focus-visible,button.button-danger.button-danger.button-danger:focus-visible,a.button-danger.button-danger.button-danger:focus-visible,button.button-danger-solid.button-danger-solid.button-danger-solid:focus-visible,a.button-danger-solid.button-danger-solid.button-danger-solid:focus-visible{outline:none;box-shadow:var(--focus-ring)}button.button-primary.button-primary.button-primary:disabled,a.button-primary.button-primary.button-primary:disabled,button.button-secondary.button-secondary.button-secondary:disabled,a.button-secondary.button-secondary.button-secondary:disabled,button.button-danger.button-danger.button-danger:disabled,a.button-danger.button-danger.button-danger:disabled,button.button-danger-solid.button-danger-solid.button-danger-solid:disabled,a.button-danger-solid.button-danger-solid.button-danger-solid:disabled{opacity:.5;cursor:default;box-shadow:none}td button.button-primary.button-primary.button-primary,td a.button-primary.button-primary.button-primary,td button.button-secondary.button-secondary.button-secondary,td a.button-secondary.button-secondary.button-secondary,td button.button-danger.button-danger.button-danger,td a.button-danger.button-danger.button-danger,td button.button-danger-solid.button-danger-solid.button-danger-solid,td a.button-danger-solid.button-danger-solid.button-danger-solid,.table-wrap button.button-primary.button-primary.button-primary,.table-wrap a.button-primary.button-primary.button-primary,.table-wrap button.button-secondary.button-secondary.button-secondary,.table-wrap a.button-secondary.button-secondary.button-secondary,.table-wrap button.button-danger.button-danger.button-danger,.table-wrap a.button-danger.button-danger.button-danger,.table-wrap button.button-danger-solid.button-danger-solid.button-danger-solid,.table-wrap a.button-danger-solid.button-danger-solid.button-danger-solid{min-height:32px;padding:0 12px;font-size:13px}.page-header-actions button:not(.link-button):not(.button-secondary):not(.button-danger):not(.secondary):not(.action-menu-trigger),.modal-actions button:not(.link-button):not(.button-secondary):not(.button-danger):not(.button-danger-solid),.form-grid>button[type=submit],.management-panel>form button[type=submit]{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:0 16px;border-radius:8px;font-size:14px;font-weight:500;white-space:nowrap}.link-button:focus-visible,.row-link-button:focus-visible{outline:none;box-shadow:var(--focus-ring)}.link-button{font-weight:500}.filter-actions{gap:10px}.attempt-page{max-width:920px;margin:0 auto;padding-bottom:84px}.attempt-page .stat-tile-grid{margin-bottom:14px}.attempt-nav{position:sticky;top:0;z-index:15;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin:0 0 14px;padding:10px 0;background:#f4f6faf0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--color-border)}.segmented-count{margin-left:4px;padding:0 6px;border-radius:999px;background:var(--color-surface-sunken);font-size:11.5px;font-variant-numeric:tabular-nums}.segmented button:disabled{opacity:.45;cursor:default}.attempt-nav-chips{display:flex;flex-wrap:wrap;gap:5px;margin:0;padding:0;list-style:none}.nav-chip{min-width:30px;height:30px;padding:0 6px;border:1px solid transparent;border-radius:8px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;font-variant-numeric:tabular-nums}.nav-chip.status-correct{background:#e3f1e6;color:#1f5a2c}.nav-chip.status-incorrect{background:#fde4e1;color:#a32924}.nav-chip.status-pending{background:#fdf0d5;color:#8a5a0b}.nav-chip.status-unknown{background:var(--color-surface-sunken);color:var(--color-muted)}.nav-chip:hover{border-color:currentColor}.nav-chip:focus-visible{outline:none;box-shadow:var(--focus-ring)}.attempt-list{display:grid;gap:14px}.attempt-card{--accent: var(--tone-neutral);scroll-margin-top:78px;background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--accent);border-radius:12px;box-shadow:0 1px 2px #1018280d}.attempt-card.status-correct{--accent: var(--tone-good)}.attempt-card.status-incorrect{--accent: var(--tone-low)}.attempt-card.status-pending{--accent: var(--tone-mid);background:#fffdf7}.attempt-card-head{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:12px;padding:14px 16px 10px}.attempt-card-number{display:grid;place-items:center;min-width:32px;height:32px;padding:0 6px;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;font-size:14px;font-variant-numeric:tabular-nums}.attempt-card-title{min-width:0;display:grid;gap:4px}.attempt-card-prompt{font-weight:500;overflow-wrap:anywhere}.attempt-card-prompt>*:first-child{margin-top:0}.attempt-card-prompt>*:last-child{margin-bottom:0}.attempt-card-label{margin-right:6px}.attempt-card-meta{display:flex;flex-wrap:wrap;gap:2px 12px;color:var(--color-muted);font-size:12.5px}.attempt-card-body{display:grid;gap:12px;padding:0 16px 16px 60px}.attempt-prompt-zh{margin:0;font-size:16px}.result-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:12.5px;font-weight:600;white-space:nowrap}.result-correct{background:#e3f1e6;color:#1f5a2c}.result-incorrect{background:#fde4e1;color:#a32924}.result-pending{background:#fdf0d5;color:#8a5a0b}.result-unknown{background:var(--color-surface-sunken);color:var(--color-muted)}.manual-grading{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,320px);gap:16px;align-items:start}.manual-grading-work{display:grid;gap:14px;min-width:0}.manual-grading-panel{display:grid;gap:12px;padding:14px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface-subtle);position:sticky;top:12px}.manual-grading-panel .field{margin:0}.manual-grading-panel textarea{width:100%}.grading-context,.grading-answer{display:grid;gap:6px}.grading-context{padding:12px 14px;border-left:3px solid var(--color-gold);background:var(--color-gold-soft);border-radius:0 8px 8px 0}.grading-context .attempt-prompt-zh{font-size:18px;line-height:1.6}.grading-context .preview-passage{font-size:17px;line-height:1.7}.grading-answer audio,.reading-snapshot-player audio{width:100%;max-width:560px}.picture-text-answer{margin:0;padding:10px 12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);white-space:pre-wrap;font-size:15px}.reading-snapshot-auto{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:13px;color:var(--color-muted)}.reading-snapshot-text [lang=zh]{color:var(--color-text);font-size:15px}.grading-score{display:grid;gap:6px}.grading-score-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.grading-score-presets{display:inline-flex;gap:4px}.grading-score-presets button{min-width:40px;min-height:36px;padding:4px 10px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);color:var(--color-text);font-weight:700;cursor:pointer}.grading-score-presets button.active{border-color:var(--color-brand);background:var(--color-brand-tint);color:var(--color-brand-strong)}.grading-score-input{display:inline-flex;align-items:center;gap:6px;color:var(--color-muted);font-size:13px}.grading-score-input input{width:72px;min-height:36px;font-size:16px;font-weight:700;text-align:center}@media(max-width:900px){.manual-grading{grid-template-columns:1fr}.manual-grading-panel{position:static}}.opt-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.opt{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface)}.opt-body{display:flex;align-items:center;gap:8px;min-width:0;overflow-wrap:anywhere}.opt-mark{font-weight:700;text-align:center}.opt-correct{border-color:#9cc9a6;background:#eef7f0}.opt-correct .opt-mark{color:var(--tone-good)}.opt-wrong{border-color:#eab0aa;background:#fdf0ee}.opt-wrong .opt-mark{color:var(--tone-low)}.opt-tags{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.opt-tag{padding:1px 8px;border-radius:999px;font-size:11.5px;font-weight:600;white-space:nowrap}.tag-selected{background:#e8edf5;color:#315d86}.tag-correct{background:#dcefe1;color:#1f5a2c}.answer-compare{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--color-border);border-radius:8px;overflow:hidden;font-size:14px}.answer-compare th,.answer-compare td{padding:8px 12px;text-align:left;vertical-align:top;border-top:1px solid var(--color-border);background:var(--color-surface)}.answer-compare thead th{border-top:0;background:#f0f3f8;font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted)}.answer-compare tbody th{font-weight:500;color:var(--color-muted);width:28%}.answer-compare tr.is-right td:first-of-type,.answer-compare tr.is-right td:nth-of-type(1){background:#eef7f0}.answer-compare tr.is-wrong td:nth-of-type(1){background:#fdf0ee}.answer-compare tr.is-wrong .compare-mark{color:var(--tone-low)}.answer-compare tr.is-right .compare-mark{color:var(--tone-good)}.compare-mark{display:inline-block;width:18px;font-weight:700}.compare-value{overflow-wrap:anywhere}.blank-gap{color:var(--color-muted);letter-spacing:2px}.muted{color:var(--color-muted)}.sub-question-results{display:grid;gap:10px}.attempt-sub{display:grid;gap:8px;padding:12px 14px;border:1px solid var(--color-border);border-left:3px solid var(--tone-neutral);border-radius:10px;background:var(--color-surface-subtle)}.attempt-sub.status-correct{border-left-color:var(--tone-good)}.attempt-sub.status-incorrect{border-left-color:var(--tone-low)}.attempt-sub.status-pending{border-left-color:var(--tone-mid);background:#fffdf7}.attempt-sub-head{display:flex;align-items:center;gap:10px}.attempt-sub-points{margin-right:auto;color:var(--color-muted);font-size:12.5px}.attempt-explanation{padding:8px 12px;border:1px dashed var(--color-border);border-radius:8px;background:var(--color-surface-subtle)}.attempt-explanation summary{cursor:pointer;font-weight:600;font-size:13px;color:var(--color-muted)}.attempt-card-body .preview-options{display:grid;gap:10px}.grading-bar{position:fixed;left:232px;right:0;bottom:0;z-index:25;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:12px 32px;background:#fffffff5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-top:1px solid var(--color-border);box-shadow:0 -4px 16px #1018280f}.grading-bar-status{margin:0;font-size:13.5px;color:var(--color-muted)}.grading-bar-status strong{color:var(--color-text)}.grading-bar-actions{display:flex;flex-wrap:wrap;gap:10px}@media(max-width:720px){.grading-bar{left:0;padding:10px 16px}.attempt-card-body{padding-left:16px}.attempt-card-head{grid-template-columns:auto 1fr}.attempt-card-head .result-badge{grid-column:2;justify-self:start}}tr.row-clickable{cursor:pointer}tr.row-clickable:hover td{background:#f7f9fc}td.row-action{text-align:right;white-space:nowrap}.list-toolbar .segmented{align-self:center}.compare-cell{display:flex;align-items:center;gap:4px}.compare-cell .compare-mark{flex:none}.attempt-list{gap:8px}.attempt-card{border-radius:10px}.attempt-card-head{grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:4px 10px;padding:10px 12px}.attempt-card-number{min-width:28px;height:28px;font-size:13px}.attempt-card-number.small{min-width:24px;height:24px;font-size:12px}.attempt-card-meta{gap:0 10px;font-size:12px}.attempt-card-body{gap:10px;padding:0 14px 12px 50px}.attempt-card.is-collapsed .attempt-card-head{cursor:pointer;padding:8px 12px}.attempt-card.is-collapsed .attempt-card-head:hover{background:var(--color-surface-subtle);border-radius:10px}.attempt-card-line{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attempt-card-summary{color:var(--color-muted);font-size:12.5px}.summary-label{font-weight:600}.attempt-toggle{display:inline-grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--color-muted);font-size:13px;cursor:pointer}.attempt-toggle:hover{background:var(--color-surface-sunken);color:var(--color-text)}.attempt-toggle:focus-visible{outline:none;box-shadow:var(--focus-ring)}.opt-list{gap:4px}.opt{padding:5px 10px;font-size:13.5px}.opt-mark{font-size:12.5px;color:var(--color-muted)}.opt-toggle{margin-top:4px;padding:2px 4px;font-size:12.5px}.opt-empty{margin:6px 0 0}.answer-compare{font-size:13.5px}.answer-compare th,.answer-compare td{padding:5px 10px}.attempt-sub{padding:8px 12px;gap:6px}.attempt-auto-note{margin:0 0 10px}.attempt-nav{gap:8px 16px;padding:8px 0}.attempt-nav-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.attempt-nav-expand{display:inline-flex;gap:2px}.attempt-nav-chips{max-height:66px;overflow-y:auto;align-content:flex-start}.nav-chip{min-width:28px;height:28px}.attempt-list-long .attempt-card{content-visibility:auto;contain-intrinsic-size:auto 64px}.attempt-table-wrap{overflow-x:auto}.attempt-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:13.5px}.attempt-table thead th{position:static;padding:8px 10px;background:#f0f3f8;text-align:left;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted)}.attempt-table thead th:nth-child(1){width:58px}.attempt-table thead th:nth-child(2){width:30%}.attempt-table thead th:nth-child(5){width:70px}.attempt-table thead th:nth-child(6){width:118px}.attempt-table thead th:nth-child(7){width:44px}.attempt-table td,.attempt-table tbody th{padding:7px 10px;border-top:1px solid var(--color-border);vertical-align:middle;text-align:left;font-weight:400;background:var(--color-surface)}.attempt-table .cell-clip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attempt-table .cell-nowrap{white-space:nowrap;font-variant-numeric:tabular-nums}.attempt-row{cursor:pointer}.attempt-row:hover td,.attempt-row:hover th{background:#f7f9fc}.attempt-row.status-correct th{box-shadow:inset 3px 0 0 var(--tone-good)}.attempt-row.status-incorrect th{box-shadow:inset 3px 0 0 var(--tone-low)}.attempt-row.status-pending th{box-shadow:inset 3px 0 0 var(--tone-mid)}.attempt-row.is-open td,.attempt-row.is-open th{background:var(--color-surface-subtle)}.attempt-table-detail>td{padding:10px 14px 14px 58px;background:var(--color-surface-subtle)}.attempt-table-detail .attempt-card-body{padding:0}@media(max-width:720px){.attempt-table thead th:nth-child(3),.attempt-table thead th:nth-child(4),.attempt-table td:nth-child(3),.attempt-table td:nth-child(4){display:none}.attempt-table thead th:nth-child(2){width:auto}.attempt-table-detail>td{padding-left:14px}}.attempt-row{--accent: var(--tone-neutral)}.attempt-row.status-correct{--accent: var(--tone-good)}.attempt-row.status-incorrect{--accent: var(--tone-low)}.attempt-row.status-pending{--accent: var(--tone-mid)}.attempt-table tbody th .attempt-card-number{display:inline-grid}.data-table-wide{width:max-content;min-width:100%;table-layout:auto}.data-table-wide thead th{max-width:150px;min-width:88px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.data-table-wide thead th:first-child,.data-table-wide tbody td:first-child{position:sticky;left:0;z-index:2;min-width:130px;max-width:200px}.data-table-wide thead th:first-child{z-index:3}.data-table-wide tbody td{white-space:nowrap;background:var(--color-surface)}.data-table-wide tbody td:first-child{overflow:hidden;text-overflow:ellipsis;box-shadow:1px 0 0 var(--color-border)}.data-table-wide tbody td:last-child{padding-right:16px}.table-wrap-wide{max-width:100%}@media(max-width:720px){.data-table-wide{min-width:0}}.pending-grading-group{margin-top:18px}.pending-grading-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 8px;font-size:16px}.pending-grading-title small{color:var(--color-muted);font-weight:500}.report-sheet{margin-top:20px}.report-sheet-title{margin:0 0 4px}.report-sheet-caption{margin:12px 0 6px;font-weight:700;font-size:13px;letter-spacing:.02em}
