:root{--color-primary: oklch(35% .06 165);--color-primary-hover: oklch(40% .07 165);--color-primary-muted: oklch(93% .015 165);--color-accent: oklch(58% .12 70);--color-accent-hover: oklch(53% .13 70);--color-accent-ring: oklch(58% .12 70 / .25);--color-success: oklch(45% .1 155);--color-success-bg: oklch(95% .02 155);--color-warning: oklch(55% .13 75);--color-warning-bg: oklch(95% .025 75);--color-error: oklch(50% .12 25);--color-error-bg: oklch(95% .02 25);--color-info: oklch(45% .08 250);--color-info-bg: oklch(96% .015 250);--color-ink: oklch(20% .01 165);--color-ink-secondary: oklch(40% .015 165);--color-ink-muted: oklch(55% .01 165);--color-border: oklch(89% .008 165);--color-border-strong: oklch(82% .012 165);--color-line-subtle: oklch(91% .007 165 / .62);--color-surface: oklch(100% 0 0);--color-surface-raised: oklch(99% .002 165);--color-surface-dim: oklch(97.5% .004 165);--color-bg: oklch(98.5% .003 165);--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--space-3xl: 48px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px;--radius-pill: 999px;--shadow-sm: 0 1px 3px oklch(20% .01 165 / .07);--shadow-panel: 0 1px 2px oklch(20% .01 165 / .05), 0 16px 40px oklch(20% .01 165 / .06);--shadow-panel-soft: 0 10px 30px oklch(20% .01 165 / .05);--shadow-focus: 0 0 0 3px var(--color-accent-ring);--ease-out-quart: cubic-bezier(.25, 1, .5, 1);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .4s;color:var(--color-ink);background:var(--color-bg);font-family:Inter,Noto Sans SC,PingFang SC,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;padding:var(--space-xl)}.app-header{align-items:center;display:flex;justify-content:space-between;margin:0 auto var(--space-lg);max-width:1500px}.app-header h1{font-size:26px;font-weight:800;letter-spacing:-.01em;line-height:1.2;margin:var(--space-xs) 0 0;text-wrap:balance}.eyebrow{color:var(--color-ink-muted);font-size:13px;letter-spacing:.02em;margin:0}.header-badge{background:var(--color-primary);border-radius:var(--radius-md);color:#fff;font-size:13px;font-weight:700;padding:var(--space-sm) var(--space-md);white-space:nowrap}.progress-strip{align-items:center;display:flex;gap:0;margin:0 auto var(--space-lg);max-width:1500px}.progress-step{align-items:center;display:flex}.progress-connector{background:var(--color-border);flex-shrink:0;height:1px;width:20px}.progress-strip span{align-items:center;background:var(--color-surface);border:1px solid transparent;border-radius:var(--radius-pill);color:var(--color-ink-muted);display:inline-flex;font-size:13px;font-weight:700;padding:var(--space-sm) var(--space-md);transition:background var(--duration-normal) var(--ease-out-quart),color var(--duration-normal) var(--ease-out-quart),border-color var(--duration-normal) var(--ease-out-quart);white-space:nowrap}.progress-strip span.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.progress-strip span.done{background:var(--color-success-bg);border-color:var(--color-success);color:var(--color-success)}.exam-session-cue{align-items:center;background:transparent;border-radius:var(--radius-lg);display:grid;gap:var(--space-md);grid-template-columns:minmax(240px,1.2fr) minmax(0,1fr);margin:0 auto var(--space-lg);max-width:1500px;padding:var(--space-sm) 0 var(--space-md)}.exam-session-title{align-items:center;display:flex;gap:var(--space-md)}.exam-session-title strong{display:block;font-size:15px}.exam-session-title p{color:var(--color-ink-secondary);font-size:13px;margin:var(--space-xs) 0 0}.exam-session-stats{align-items:center;display:grid;gap:var(--space-sm);grid-template-columns:repeat(4,minmax(0,1fr))}.exam-session-stat,.exam-session-pill{background:var(--color-surface);border-radius:var(--radius-md);min-width:0;padding:var(--space-sm) var(--space-md)}.exam-session-stat span,.exam-session-pill{color:var(--color-ink-muted);font-size:12px;font-weight:700}.exam-session-stat strong{display:block;font-size:14px;margin-top:var(--space-xs)}.exam-session-pill{align-items:center;display:inline-flex;gap:var(--space-sm);justify-content:center}.prep-panel,.workbench-shell{margin:0 auto var(--space-lg);max-width:1500px}.prep-summary{align-items:start;display:grid;gap:var(--space-lg);grid-template-columns:minmax(0,1fr) auto}.prep-summary-copy{display:grid;gap:var(--space-md)}.prep-current-question{display:grid;gap:var(--space-sm)}.prep-current-question strong{font-size:18px}.prep-current-question p{color:var(--color-ink-secondary);line-height:1.6;margin:0}.prep-package-summary{display:grid;gap:var(--space-xs)}.prep-package-summary p{align-items:baseline;display:flex;flex-wrap:wrap;gap:var(--space-sm)}.prep-package-summary span{color:var(--color-primary);font-size:12px;font-weight:800}.prep-meta-row{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.prep-meta-chip{align-items:center;background:var(--color-surface-dim);border:1px solid transparent;border-radius:var(--radius-pill);color:var(--color-ink-secondary);display:inline-flex;font-size:12px;font-weight:700;min-height:30px;padding:0 12px}.prep-meta-chip.accent{background:var(--color-primary-muted);border-color:transparent;color:var(--color-primary)}.prep-summary-actions{align-items:center;display:grid;gap:var(--space-sm);justify-items:end}.prep-body{display:grid;gap:var(--space-xl);grid-template-columns:280px minmax(0,1fr);margin-top:var(--space-lg);padding-top:var(--space-lg);box-shadow:inset 0 1px 0 var(--color-line-subtle)}.question-list-embedded,.editor-panel-embedded{min-width:0}.workbench-shell{align-items:start;display:grid;gap:var(--space-lg);grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr)}.evidence-pane,.review-workbench{display:grid;gap:var(--space-lg)}.evidence-pane-header,.review-workbench-header{align-items:start;background:transparent;border-radius:var(--radius-lg);display:grid;gap:var(--space-lg);padding:0}.evidence-pane-header{grid-template-columns:minmax(0,1fr) minmax(220px,280px)}.evidence-pane-stack{display:grid;gap:var(--space-lg)}.evidence-focus-card{align-items:start;background:var(--color-primary-muted);border-radius:var(--radius-md);display:grid;gap:var(--space-sm);grid-template-columns:auto 1fr;padding:var(--space-md)}.evidence-focus-card strong{display:block;font-size:13px}.evidence-focus-card p{color:var(--color-ink-secondary);line-height:1.5;margin:var(--space-xs) 0 0}.workbench-right{min-width:0}.review-stage-tabs{display:inline-flex;flex-wrap:wrap;gap:var(--space-sm)}.review-stage-tab{align-items:center;background:var(--color-surface-dim);border:1px solid transparent;border-radius:var(--radius-pill);color:var(--color-ink-secondary);display:inline-flex;font-size:13px;font-weight:700;gap:var(--space-sm);min-height:36px;padding:0 14px;transition:background var(--duration-fast) var(--ease-out-quart),border-color var(--duration-fast) var(--ease-out-quart),color var(--duration-fast) var(--ease-out-quart)}.review-stage-tab.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.review-stage-tab:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.review-stage-callout{align-items:start;background:transparent;border-radius:var(--radius-md);display:grid;gap:var(--space-sm);grid-template-columns:auto 1fr;padding:0}.review-stage-callout strong{display:block;font-size:13px}.review-stage-callout p{color:var(--color-ink-secondary);line-height:1.5;margin:var(--space-xs) 0 0}.review-stage-body{min-width:0}.panel{background:var(--color-surface);border:1px solid transparent;border-radius:var(--radius-lg);box-shadow:var(--shadow-panel-soft);min-width:0;padding:var(--space-lg);transition:border-color var(--duration-normal) var(--ease-out-quart),opacity var(--duration-normal) var(--ease-out-quart),filter var(--duration-normal) var(--ease-out-quart),background var(--duration-normal) var(--ease-out-quart),box-shadow var(--duration-normal) var(--ease-out-quart)}.panel-title{align-items:center;display:flex;gap:var(--space-sm);margin-bottom:var(--space-md)}.panel-title-inline,.editor-title-actions{align-items:center;display:flex;gap:var(--space-sm)}.editor-title-actions{flex-wrap:wrap;justify-content:flex-end}.panel-title h2,.placeholder-panel h2{font-size:15px;font-weight:700;letter-spacing:0;line-height:1.25;margin:0}.panel-title p,.placeholder-panel p{color:var(--color-ink-secondary);font-size:13px;margin:var(--space-xs) 0 0}.row-between{justify-content:space-between}[data-step-state=pending]>.panel{filter:grayscale(.3);opacity:.4;pointer-events:none}[data-step-state=done]>.panel{background:var(--color-surface);border-color:transparent;box-shadow:var(--shadow-panel-soft)}[data-step-state=active]>.panel{border-color:transparent;box-shadow:inset 0 0 0 1px var(--color-accent-ring),var(--shadow-panel)}.question-tabs{display:grid;gap:var(--space-sm)}.question-tab{align-items:flex-start;background:var(--color-surface-dim);border:1px solid transparent;border-radius:var(--radius-md);color:var(--color-ink);display:grid;gap:var(--space-sm);min-height:60px;padding:var(--space-md);text-align:left;transition:border-color var(--duration-fast) var(--ease-out-quart),background var(--duration-fast) var(--ease-out-quart)}.question-tab:hover{background:var(--color-surface);border-color:transparent}.question-tab.active{background:var(--color-primary-muted);border-color:transparent;box-shadow:inset 0 0 0 1px #1544332e}.question-tab span{font-weight:700}.question-tab small{color:var(--color-ink-muted)}.field{display:grid;gap:var(--space-sm);margin-bottom:var(--space-md)}.field span{color:var(--color-ink-secondary);font-size:13px;font-weight:700}.field input,.field textarea{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-ink);line-height:1.5;min-width:0;padding:9px 10px;resize:vertical;width:100%;transition:border-color var(--duration-fast) var(--ease-out-quart),box-shadow var(--duration-fast) var(--ease-out-quart)}.field input:focus,.field textarea:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);outline:none}.field.compact{margin-bottom:0;max-width:120px}.score-row{align-items:end;display:flex;gap:var(--space-md);margin-bottom:var(--space-md)}.score-total{border-radius:var(--radius-md);font-size:13px;font-weight:700;padding:var(--space-sm) var(--space-md)}.score-total.ok{background:var(--color-success-bg);color:var(--color-success)}.score-total.warn,.validation-list{background:var(--color-warning-bg);color:var(--color-warning)}.validation-list,.ready-note{border-radius:var(--radius-md);font-size:13px;font-weight:700;padding:var(--space-sm) var(--space-md)}.validation-list p{margin:0 0 var(--space-xs)}.validation-list p:last-child{margin-bottom:0}.ready-note{align-items:center;background:var(--color-success-bg);color:var(--color-success);display:inline-flex;gap:var(--space-sm)}.rubric-list{display:grid;gap:var(--space-md);margin-bottom:var(--space-md)}.rubric-draft-preview{background:var(--color-primary-muted);border-radius:var(--radius-md);display:grid;gap:var(--space-md);margin-bottom:var(--space-md);padding:var(--space-lg)}.rubric-draft-header{align-items:start;display:flex;gap:var(--space-md);justify-content:space-between}.rubric-draft-header strong{display:block;font-size:15px}.rubric-draft-header p,.rubric-draft-rationale,.rubric-draft-item p{color:var(--color-ink-secondary);line-height:1.5;margin:var(--space-xs) 0 0}.rubric-draft-actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:flex-end}.rubric-draft-actions .secondary-action,.rubric-draft-actions .primary-action{margin-bottom:0}.rubric-draft-list{display:grid;gap:var(--space-sm)}.rubric-draft-item{align-items:start;background:#ffffffa3;border-radius:var(--radius-md);display:grid;gap:var(--space-md);grid-template-columns:minmax(0,1fr) auto;padding:var(--space-md)}.rubric-draft-item span{color:var(--color-primary);font-size:13px;font-weight:800;white-space:nowrap}.rubric-item{background:var(--color-surface-dim);border-radius:var(--radius-md);padding:var(--space-md)}.rubric-item-grid{align-items:end;display:grid;gap:10px;grid-template-columns:1fr 100px 36px}.icon-button{align-items:center;background:var(--color-surface-dim);border:1px solid transparent;border-radius:var(--radius-md);color:var(--color-ink-secondary);display:inline-flex;height:36px;justify-content:center;width:36px;transition:background var(--duration-fast) var(--ease-out-quart),border-color var(--duration-fast) var(--ease-out-quart),color var(--duration-fast) var(--ease-out-quart),transform var(--duration-fast) var(--ease-out-quart)}.icon-button:hover{background:var(--color-border);border-color:var(--color-border-strong)}.icon-button:active{transform:scale(.95)}.icon-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.icon-button.danger{color:var(--color-error)}.secondary-action,.primary-action{align-items:center;border-radius:var(--radius-md);display:inline-flex;font-size:14px;font-weight:700;gap:var(--space-sm);justify-content:center;min-height:38px;padding:9px 14px;transition:background var(--duration-fast) var(--ease-out-quart),border-color var(--duration-fast) var(--ease-out-quart),transform var(--duration-fast) var(--ease-out-quart),box-shadow var(--duration-fast) var(--ease-out-quart)}.secondary-action{background:var(--color-surface-dim);border:1px solid transparent;color:var(--color-ink-secondary)}.secondary-action:hover{background:var(--color-border);border-color:var(--color-border-strong)}.primary-action{background:var(--color-accent);border:1px solid var(--color-accent);color:#fff}.primary-action:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.primary-action:active,.secondary-action:active{transform:scale(.97)}.primary-action:focus-visible,.secondary-action:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.primary-action:disabled,.secondary-action:disabled,.icon-button:disabled{cursor:not-allowed;opacity:.4;pointer-events:none}.primary-action.loading,.primary-action.loading:disabled{background:var(--color-accent-hover);border-color:var(--color-accent-hover);opacity:1}.compact-action{font-size:13px;min-height:32px;padding:7px 10px}.ai-rubric-action{background:var(--color-primary-muted);color:var(--color-primary)}.ai-rubric-action.loading,.ai-rubric-action.loading:disabled{opacity:1}.editor-panel .secondary-action,.editor-panel-embedded .secondary-action{margin-bottom:var(--space-md)}.editor-title-actions .secondary-action{margin-bottom:0}.placeholder-panel{min-height:420px}.recording-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:var(--space-md)}.status-pill{border-radius:var(--radius-pill);font-size:12px;font-weight:800;padding:6px 10px}.status-pill.idle{background:var(--color-surface-dim);color:var(--color-ink-muted)}.status-pill.recording{background:var(--color-info-bg);color:var(--color-info)}.status-pill.completed{background:var(--color-success-bg);color:var(--color-success)}.status-pill.failed,.error-note{background:var(--color-error-bg);color:var(--color-error)}.error-note{border-radius:var(--radius-md);font-size:13px;font-weight:700;margin-bottom:var(--space-md);padding:var(--space-sm) var(--space-md)}.live-transcript{background:var(--color-surface-dim);border:1px solid transparent;border-radius:var(--radius-md);min-height:130px;padding:var(--space-md)}.live-transcript span{color:var(--color-ink-muted);font-size:13px;font-weight:800}.live-transcript p{line-height:1.6;margin:var(--space-sm) 0 0;white-space:pre-wrap}.live-transcript em{color:var(--color-ink-muted);font-style:normal}.transcript-editor{background:var(--color-surface-dim);border:1px solid var(--color-border);border-radius:var(--radius-md);line-height:1.6;min-height:180px;padding:var(--space-md);resize:vertical;width:100%;transition:border-color var(--duration-fast) var(--ease-out-quart),box-shadow var(--duration-fast) var(--ease-out-quart)}.transcript-editor:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);outline:none}.transcript-preview{background:transparent;border:0;border-radius:var(--radius-md);margin-top:var(--space-md);padding:0}.transcript-preview-header{align-items:baseline;display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:space-between}.transcript-preview-header strong{font-size:13px}.transcript-preview-header span{color:var(--color-ink-muted);font-size:12px;font-weight:700}.transcript-segment-list{display:grid;gap:var(--space-sm);max-height:min(42vh,420px);margin-top:var(--space-md);overflow:auto;padding-right:var(--space-xs)}.transcript-segment{background:var(--color-surface-dim);border:1px solid transparent;border-radius:var(--radius-md);color:var(--color-ink-secondary);display:block;line-height:1.7;padding:var(--space-sm) var(--space-md);scroll-margin:88px}.transcript-segment.active{background:var(--color-primary-muted);border-color:transparent;box-shadow:inset 0 0 0 1px #15443329;color:var(--color-ink)}.transcript-preview-note{font-size:12px;font-weight:700;margin:var(--space-md) 0 0}.transcript-preview-note.ok{color:var(--color-success)}.transcript-preview-note.warn{color:var(--color-warning)}.muted-note{background:var(--color-surface-dim);border-radius:var(--radius-md);color:var(--color-ink-muted);font-size:13px;font-weight:700;margin-bottom:var(--space-md);padding:var(--space-sm) var(--space-md)}.scoring-result{display:grid;gap:var(--space-md)}.ai-analysis-loading{background:var(--color-primary-muted);border-radius:var(--radius-md);display:grid;gap:var(--space-md);padding:var(--space-lg)}.ai-analysis-header{align-items:start;color:var(--color-primary);display:flex;gap:var(--space-sm)}.ai-analysis-header strong{color:var(--color-ink);display:block;font-size:14px}.ai-analysis-header p{color:var(--color-ink-secondary);line-height:1.5;margin:var(--space-xs) 0 0}.ai-progress-track{background:#1544331f;border-radius:var(--radius-pill);height:5px;overflow:hidden}.ai-progress-track span{animation:progress-indeterminate 1.45s var(--ease-out-quart) infinite;background:var(--color-primary);border-radius:inherit;display:block;height:100%;width:38%}.ai-analysis-steps{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.ai-analysis-steps span{background:#ffffff9e;border-radius:var(--radius-pill);color:var(--color-primary);font-size:12px;font-weight:800;padding:6px 10px}.score-card,.report-scores{background:var(--color-primary);border-radius:var(--radius-md);color:#fff;display:grid;gap:var(--space-sm);padding:var(--space-md)}.score-card span,.report-scores span{font-size:13px;opacity:.8}.score-card strong,.report-scores strong{font-size:28px;letter-spacing:-.01em}.section-score-strip{display:grid;gap:var(--space-sm);grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:var(--space-lg)}.section-score-card{background:var(--color-surface-dim);border-radius:var(--radius-md);display:grid;gap:4px;min-height:82px;padding:var(--space-md)}.section-score-card span,.section-score-card small{color:var(--color-ink-muted);font-size:12px;font-weight:800}.section-score-card strong{color:var(--color-ink);font-size:24px}.section-score-card.total{background:var(--color-primary-muted)}.section-score-card.total span,.section-score-card.total small{color:var(--color-primary)}.evidence-list{display:grid;gap:var(--space-sm)}.evidence-item{background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:inherit;display:block;padding:var(--space-sm) var(--space-md);text-align:left;transition:transform var(--duration-fast) var(--ease-out-quart),border-color var(--duration-fast) var(--ease-out-quart),box-shadow var(--duration-fast) var(--ease-out-quart);width:100%}.evidence-item:hover{transform:translateY(-1px)}.evidence-item.active{box-shadow:inset 0 0 0 1px #1218151f}.evidence-item.hit{background:var(--color-success-bg);border-color:transparent}.evidence-item.weak{background:var(--color-warning-bg);border-color:transparent}.evidence-item.missing{background:var(--color-error-bg);border-color:transparent}.evidence-item header{align-items:center;display:flex;gap:var(--space-sm)}.evidence-item header span{margin-left:auto}.evidence-status-icon{flex-shrink:0}.evidence-text,.evidence-comment,.evidence-meta,.feedback-box p,.missing-list p,.report-section p{color:var(--color-ink-secondary);line-height:1.6;margin:var(--space-sm) 0 0;white-space:pre-wrap}.evidence-meta{font-size:12px;font-weight:700}.feedback-box,.missing-list,.report-section{background:var(--color-surface-dim);border:1px solid transparent;border-radius:var(--radius-md);padding:var(--space-md)}.compact-score{max-width:180px}.empty-report{min-height:160px}.report-scores{grid-template-columns:1fr 1fr;margin-bottom:var(--space-lg)}.review-summary-grid{margin-bottom:var(--space-md)}.review-point-list,.report-point-list,.teaching-feedback-card{display:grid;gap:var(--space-md)}.review-point-card,.report-point-card{background:transparent;border:0;border-radius:0;padding:var(--space-xl) 0;box-shadow:inset 0 1px 0 var(--color-line-subtle)}.review-point-card.changed,.report-point-card.changed{border-color:transparent}.review-point-card.active{background:var(--color-primary-muted);border-radius:var(--radius-md);box-shadow:none;margin:0 calc(-1 * var(--space-md));padding:var(--space-lg)}.review-point-header,.report-point-header{align-items:flex-start;display:flex;gap:var(--space-md);justify-content:space-between;margin-bottom:var(--space-md)}.review-point-header-side{align-items:flex-end;display:grid;gap:var(--space-sm)}.report-point-evidence,.report-point-comment,.review-point-comment{color:var(--color-ink-secondary);line-height:1.6;margin:var(--space-sm) 0 0}.review-point-kicker{color:var(--color-primary);display:block;font-size:12px;font-weight:800;margin-bottom:var(--space-xs)}.review-point-status,.report-point-header span{border-radius:var(--radius-pill);font-size:12px;font-weight:700;padding:6px 10px;white-space:nowrap}.review-point-status.kept,.report-point-header span{background:var(--color-success-bg);color:var(--color-success)}.review-point-status.changed{background:var(--color-warning-bg);color:var(--color-warning)}.review-point-scroll{max-height:min(48vh,560px);overflow:auto;padding-right:var(--space-xs)}.review-evidence-quote{background:var(--color-surface-dim);border-radius:var(--radius-md);margin:var(--space-md) 0;padding:var(--space-md)}.review-evidence-quote span,.review-ai-note span{color:var(--color-ink-muted);display:block;font-size:12px;font-weight:800;margin-bottom:var(--space-xs)}.review-evidence-quote p,.review-ai-note p{color:var(--color-ink-secondary);line-height:1.65;margin:0}.review-decision-row{align-items:end;background:var(--color-primary-muted);border-radius:var(--radius-md);display:grid;gap:var(--space-md);grid-template-columns:repeat(2,minmax(0,1fr));margin:var(--space-md) 0;padding:var(--space-md)}.review-explanation-grid{align-items:start;display:grid;gap:var(--space-md);grid-template-columns:minmax(220px,.82fr) minmax(280px,1fr)}.review-ai-note{padding-top:2px}.review-adjustment-field{margin-bottom:0}.review-evidence-action{align-items:center;background:var(--color-surface);border:1px solid transparent;border-radius:var(--radius-pill);color:var(--color-ink-secondary);display:inline-flex;font-size:12px;font-weight:700;gap:6px;min-height:30px;padding:0 12px;transition:border-color var(--duration-fast) var(--ease-out-quart),background var(--duration-fast) var(--ease-out-quart),color var(--duration-fast) var(--ease-out-quart)}.review-evidence-action.active{background:var(--color-primary-muted);border-color:var(--color-primary);color:var(--color-primary)}.review-evidence-state{background:var(--color-info-bg);border-radius:var(--radius-md);color:var(--color-info);font-size:12px;font-weight:700;margin:0 0 var(--space-sm);padding:var(--space-sm) var(--space-md)}.review-metric{background:transparent;border:0;border-radius:var(--radius-md);display:grid;gap:var(--space-xs);padding:0}.review-metric span,.teaching-feedback-card span{color:var(--color-ink-muted);font-size:12px;font-weight:700}.review-metric strong{font-size:24px}.review-panel-title{align-items:flex-start;background:linear-gradient(180deg,var(--color-surface) 78%,oklch(100% 0 0 / 0));margin:calc(-1 * var(--space-lg)) calc(-1 * var(--space-lg)) var(--space-lg);padding:var(--space-lg) var(--space-lg) var(--space-md);position:sticky;top:0;z-index:3}.review-panel-title .primary-action{white-space:nowrap}.review-final-section{display:grid;gap:var(--space-md);margin-top:var(--space-lg);padding-top:var(--space-lg);box-shadow:inset 0 1px 0 var(--color-line-subtle)}.review-footer-summary{align-items:center;background:var(--color-primary-muted);border-radius:var(--radius-md);display:grid;gap:var(--space-sm);grid-template-columns:auto 1fr;padding:var(--space-md)}.review-footer-summary span{color:var(--color-ink-muted);display:block;font-size:12px;font-weight:700}.review-footer-summary strong{display:block;font-size:24px;margin-top:var(--space-xs)}.review-footer-summary p{color:var(--color-ink-secondary);line-height:1.5;margin:0}.review-comment-field{margin-bottom:0}.teaching-feedback-card>div{background:transparent;border:0;border-radius:var(--radius-md);padding:0}.teaching-feedback-card p{color:var(--color-ink-secondary);line-height:1.6;margin:var(--space-sm) 0 0}.report-panel{box-shadow:var(--shadow-panel);padding:var(--space-2xl)}.report-panel .panel-title{margin-bottom:var(--space-lg)}.report-panel .panel-title h2{font-size:18px}.report-panel>.report-section{background:transparent;border:0;border-radius:0;margin-top:var(--space-xl);padding:var(--space-xl) 0 0;box-shadow:inset 0 1px 0 var(--color-line-subtle)}.report-panel>.report-question{background:var(--color-surface-dim);border-radius:var(--radius-lg);box-shadow:none;margin-top:0;padding:var(--space-lg)}.report-section>strong{display:block;font-size:15px;margin-bottom:var(--space-sm)}.report-question p:first-of-type{color:var(--color-ink);font-size:18px;font-weight:700}.report-point-list,.review-point-list{gap:0}.report-point-card:first-child,.review-point-card:first-child{box-shadow:none;padding-top:var(--space-sm)}.report-point-card.changed{background:var(--color-warning-bg);border-radius:var(--radius-md);box-shadow:none;margin:var(--space-md) 0;padding:var(--space-lg)}.report-point-metrics{align-items:baseline;display:flex;flex-wrap:wrap;gap:var(--space-xl);margin:var(--space-md) 0}.report-point-card .review-metric{align-items:baseline;display:flex;gap:var(--space-sm)}.report-point-card .review-metric strong{font-size:18px}.report-point-evidence,.report-point-comment{max-width:72ch}.report-detail-line{align-items:start;column-gap:var(--space-md);display:grid;grid-template-columns:92px minmax(0,1fr)}.report-detail-label{color:var(--color-primary);font-weight:800;white-space:nowrap}.report-detail-label:after{color:var(--color-ink-muted);content:"：";font-weight:700}.report-detail-body{min-width:0}.report-transcript p{max-height:260px;overflow:auto;padding-right:var(--space-sm)}.report-feedback-section .teaching-feedback-card{grid-template-columns:repeat(3,minmax(0,1fr))}.review-panel .panel-title{margin-bottom:var(--space-lg)}.review-panel .report-scores{margin-bottom:var(--space-xl)}.review-panel .review-point-card:first-child{padding-top:0}.review-panel .review-metric strong{font-size:22px}.review-panel .field textarea,.review-panel .field input{background:var(--color-surface)}.state-shell{display:grid;place-items:center;text-align:center}.access-shell{background:linear-gradient(180deg,#f5faf7,#edf4f0);display:grid;min-height:100vh;padding:var(--space-xl);place-items:center}.access-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);display:grid;gap:var(--space-lg);max-width:420px;padding:var(--space-2xl);width:min(100%,420px)}.access-card h1{font-size:24px;margin:var(--space-xs) 0 var(--space-sm)}.access-card p{color:var(--color-ink-muted);line-height:1.7;margin:0}.access-icon{align-items:center;background:var(--color-primary-muted);border-radius:var(--radius-md);color:var(--color-primary);display:inline-flex;height:48px;justify-content:center;width:48px}.global-error{margin:0 auto var(--space-lg);max-width:1500px}.real-session-cue{align-items:stretch;grid-template-columns:1fr}.session-command-grid{display:grid;gap:var(--space-md);grid-template-columns:repeat(3,minmax(0,1fr))}.draw-card{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:grid;gap:var(--space-sm);min-height:180px;padding:var(--space-lg)}.draw-card-kicker,.roster-question,.save-state{color:var(--color-ink-muted);font-size:12px;font-weight:700}.draw-card>strong{font-size:18px}.draw-card p{color:var(--color-ink-muted);margin:0}.draw-result{background:var(--color-primary-muted);border-radius:var(--radius-md);display:grid;gap:var(--space-xs);padding:var(--space-md)}.draw-result span{color:var(--color-primary);font-size:12px;font-weight:800}.draw-result strong{color:var(--color-ink);line-height:1.45}.draw-package-titles{display:grid;gap:var(--space-xs)}.draw-package-titles p{background:#ffffff9e;border-radius:var(--radius-sm);display:grid;gap:2px;padding:var(--space-sm)}.draw-package-titles small{color:var(--color-primary);font-size:11px;font-weight:800}.draw-empty{align-items:center;background:var(--color-surface-dim);border-radius:var(--radius-md);color:var(--color-ink-muted);display:flex;min-height:72px;padding:var(--space-md)}.draw-actions,.session-cue-actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-sm)}.session-cue-actions{justify-content:flex-end}.save-state{align-items:center;display:inline-flex;gap:var(--space-xs)}.live-session-layout{align-items:start;display:grid;gap:var(--space-lg);grid-template-columns:minmax(280px,320px) minmax(0,1fr);margin:0 auto;max-width:1500px}.roster-panel{position:sticky;top:var(--space-lg)}.roster-list{display:grid;gap:var(--space-xs);max-height:calc(100vh - 160px);overflow:auto;padding-right:var(--space-xs)}.roster-row{align-items:center;background:var(--color-surface-dim);border-radius:var(--radius-md);display:flex;gap:var(--space-sm);justify-content:space-between;padding:var(--space-sm) var(--space-md)}.roster-row.active{background:var(--color-primary-muted);box-shadow:inset 3px 0 0 var(--color-primary)}.roster-row.confirmed{background:var(--color-success-bg)}.roster-row.skipped{background:var(--color-warning-bg)}.roster-main{align-items:center;display:flex;gap:var(--space-sm);min-width:0}.roster-main>span{align-items:center;background:var(--color-surface);border-radius:var(--radius-pill);color:var(--color-ink-muted);display:inline-flex;flex:0 0 auto;font-size:12px;font-weight:800;height:28px;justify-content:center;width:28px}.roster-main strong,.roster-main p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster-main p{color:var(--color-ink-muted);font-size:12px;margin:2px 0 0}.roster-side{align-items:center;display:flex;flex:0 0 auto;gap:var(--space-xs)}.empty-workbench{min-height:260px}.empty-workbench h2{margin-top:0}.action-note{align-items:center;display:flex;gap:var(--space-sm);justify-content:space-between}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes progress-indeterminate{0%{transform:translate(-115%)}55%,to{transform:translate(270%)}}.loading-spinner{animation:spin .9s linear infinite;flex-shrink:0}.animate-fade-in{animation:fade-in var(--duration-slow) var(--ease-out-expo) both}.animate-scale-in{animation:scale-in .35s var(--ease-out-expo) both}.animate-stagger{animation:fade-in var(--duration-normal) var(--ease-out-expo) both;animation-delay:calc(var(--i, 0) * 60ms)}@media print{.app-header,.prep-panel,.progress-strip,.exam-session-cue,.evidence-pane,.review-workbench-header,.review-stage-callout,.scoring-panel,.review-panel{display:none}.app-shell{padding:0}.workbench-shell{display:block}.report-panel{border:0;box-shadow:none}}@media(max-width:1180px){.exam-session-cue,.session-command-grid,.live-session-layout{grid-template-columns:1fr}.roster-panel{position:static}.prep-body,.workbench-shell,.evidence-pane-header{grid-template-columns:1fr}}@media(max-width:760px){.app-shell{padding:var(--space-lg)}.app-header{align-items:flex-start;display:grid;gap:var(--space-md)}.exam-session-stats,.review-decision-row,.review-explanation-grid,.report-scores,.section-score-strip,.report-feedback-section .teaching-feedback-card,.rubric-item-grid{grid-template-columns:1fr}.field.compact{max-width:none}.review-point-header,.report-point-header,.transcript-preview-header,.prep-summary{display:grid}.progress-strip{flex-wrap:wrap;gap:var(--space-sm)}.prep-summary-actions{justify-items:stretch}.review-stage-tabs{width:100%}.review-stage-tab{justify-content:center}.review-point-header-side{align-items:stretch}.review-footer-summary{grid-template-columns:1fr}.progress-connector{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
