:root{--bg-body: #f5f6fa;--bg-surface: #ffffff;--bg-surface-alt: #f0f1f5;--bg-input: #f8f9fc;--bg-input-focus: #ffffff;--text-primary: #1a1d2e;--text-secondary: #4a4e69;--text-tertiary: #8b8fa3;--text-on-accent: #ffffff;--accent: #4f46e5;--accent-hover: #4338ca;--accent-muted: #818cf8;--accent-subtle: #eef2ff;--edge: #d1d5e0;--edge-light: #e8eaf0;--border-color: var(--edge);--bg-secondary: var(--bg-surface-alt);--bg-raised: var(--bg-surface);--color-correct: #16a34a;--color-correct-bg: #f0fdf4;--color-correct-border: #bbf7d0;--color-incorrect: #dc2626;--color-incorrect-bg: #fef2f2;--color-incorrect-border: #fecaca;--color-partial: #d97706;--color-partial-bg: #fffbeb;--color-partial-border: #fde68a;--color-warning: #f59e0b;--color-warning-bg: #fffbeb;--color-warning-text: #92400e;--color-warning-highlight: #fef3c7;--color-partial-text: #854d0e;--color-incorrect-dark: #991b1b;--color-incorrect-accent: #ef4444;--color-incorrect-bg-strong: #fee2e2;--color-correct-accent: #22c55e;--color-correct-bg-strong: #dcfce7;--color-partial-accent: #eab308;--color-partial-bg-strong: #fefce8;--color-partial-bg-alt: #fef9c3;--color-info: #3b82f6;--color-info-bg: #eff6ff;--color-info-text: #1e40af;--color-info-bg-alt: #dbeafe;--text-muted: #6b7280;--shadow-sm: 0 1px 2px rgba(0,0,0,.05);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.07), 0 2px 4px -2px rgba(0,0,0,.05);--shadow-lg: 0 10px 15px -3px rgba(0,0,0,.08), 0 4px 6px -4px rgba(0,0,0,.05);--radius: .6rem;--radius-sm: .4rem;--radius-xs: .3rem;--font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--transition: .15s ease;--text-xs: .75rem;--text-sm: .85rem;--text-base: .9rem;--text-md: 1rem;--text-lg: 1.1rem;--text-xl: 1.35rem;--text-2xl: 1.5rem;--text-3xl: 1.75rem;--text-4xl: 2.5rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--accent-blue: #5b6abf;--accent-blue-hover: #4a58b0;--accent-blue-muted: #ededfa;--accent-blue-subtle: #dfe0f4;--border-default: #d5d8e2;--border-subtle: #e8eaef;--border-input: #c8ccd8;--border-input-focus: #5b6abf;--color-correct-text: #15803d;--color-incorrect-text: #b91c1c;--press-shadow: 3px 3px 0 var(--edge);--press-shadow-sm: 2px 2px 0 var(--edge);--press-radius: 16px;--press-radius-sm: 12px;--card-bg: var(--bg-surface);--border: var(--border-default);--matchup-next-bg: var(--accent-blue-muted);--matchup-next-hover: var(--bg-surface-alt)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:20px;-webkit-font-smoothing:antialiased}body{font-family:var(--font-body);background:var(--bg-body);color:var(--text-primary);line-height:1.6;min-height:100vh}h1{font-size:var(--text-3xl);font-weight:700;line-height:1.3}h2{font-size:var(--text-xl);font-weight:600;line-height:1.35}h3{font-size:var(--text-lg);font-weight:600;line-height:1.4}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.ca-page{min-height:100vh;display:flex;flex-direction:column}.ca-main{max-width:1400px;width:100%;margin:0 auto;padding:1.6rem clamp(1rem,4vw,2rem);flex:1}.ca-section{margin-bottom:var(--space-8)}.ca-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5);flex-wrap:wrap;gap:var(--space-3)}.ca-class-group{margin-bottom:var(--space-6)}.ca-class-group-title{font-size:var(--text-md);font-weight:700;color:var(--text-secondary);margin-bottom:var(--space-3);padding-bottom:.35rem;border-bottom:2px solid var(--edge-light)}.ca-nav{background:var(--bg-surface);border-bottom:1px solid var(--edge-light);padding:0 clamp(1rem,4vw,2rem);position:sticky;top:0;z-index:100;box-shadow:var(--shadow-sm)}.ca-nav-inner{max-width:1400px;margin:0 auto;display:flex;align-items:center;height:56px;gap:var(--space-2)}.ca-nav-brand{font-weight:700;font-size:var(--text-lg);color:var(--accent);margin-right:24px;cursor:pointer;white-space:nowrap}.ca-nav-links{display:flex;gap:var(--space-1);flex:1}.ca-nav-link{padding:.5rem .85rem;border-radius:var(--radius-xs);color:var(--text-secondary);font-size:var(--text-base);font-weight:500;cursor:pointer;transition:background var(--transition),color var(--transition);border:none;background:none;font-family:inherit}.ca-nav-link:hover{background:var(--bg-surface-alt);color:var(--text-primary);text-decoration:none}.ca-nav-link.active{background:var(--accent-subtle);color:var(--accent)}.ca-nav-right{display:flex;align-items:center;gap:var(--space-2)}.ca-nav-user{font-size:var(--text-sm);color:var(--text-tertiary);margin-right:8px}.ca-nav-hamburger{display:none;background:none;border:none;font-size:1.4rem;color:var(--text-primary);cursor:pointer;padding:.25rem;margin-left:auto;line-height:1}.ca-nav-dropdown{display:none;flex-direction:column;padding:.5rem 0;border-top:1px solid var(--edge-light)}.ca-nav-dropdown-link{display:block;width:100%;text-align:left;padding:.6rem 1rem;background:none;border:none;font-family:inherit;font-size:var(--text-base);font-weight:500;color:var(--text-secondary);cursor:pointer;transition:background var(--transition)}.ca-nav-dropdown-link:hover{background:var(--bg-surface-alt)}.ca-nav-dropdown-link.active{color:var(--accent);font-weight:600}.ca-nav-dropdown-divider{height:1px;background:var(--edge-light);margin:.25rem 0}@media(max-width:768px){.ca-nav-links,.ca-nav-right{display:none!important}.ca-nav-hamburger{display:block}.ca-nav-dropdown{display:flex}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:.6rem 1.25rem;border-radius:var(--radius-sm);font-family:inherit;font-size:var(--text-base);font-weight:600;border:none;cursor:pointer;transition:all var(--transition);white-space:nowrap}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--text-on-accent);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--edge)}.btn-secondary:hover:not(:disabled){background:var(--bg-surface-alt);border-color:var(--text-tertiary)}.btn-danger{background:var(--color-incorrect);color:var(--text-on-accent)}.btn-danger:hover:not(:disabled){background:var(--color-incorrect-text)}.btn-link{background:none;color:var(--accent);padding:var(--space-1) var(--space-2);font-weight:500}.btn-link:hover{text-decoration:underline}.ca-main>.btn-link:first-child{margin-bottom:var(--space-3)}.ca-main>h1{margin-bottom:var(--space-5)}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--text-sm)}.btn-xs{padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.btn-lg{padding:.6rem 1.4rem;font-size:1rem}.ca-btn-group{display:flex;gap:var(--space-2);flex-wrap:wrap}.ca-card{position:relative;display:flex;flex-direction:column;background:var(--bg-surface);border:1px solid var(--edge-light);border-radius:var(--radius);padding:1.25rem;cursor:pointer;transition:box-shadow var(--transition),border-color var(--transition)}.ca-card:hover{box-shadow:var(--shadow-md);border-color:var(--accent-muted)}.ca-card h3{margin-bottom:0}.ca-card-subtitle{display:block;color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-2)}.ca-card-meta{display:flex;justify-content:space-between;font-size:var(--text-sm);color:var(--text-tertiary)}.ca-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.ca-card-due{font-size:var(--text-sm);color:var(--text-tertiary);margin-top:6px}.ca-card-dates{display:flex;gap:var(--space-6, 1.5rem);font-size:var(--text-sm);color:var(--text-tertiary)}.ca-archive-btn{align-self:flex-end;margin-top:10px;opacity:0;transition:opacity .15s ease}.ca-card:hover .ca-archive-btn{opacity:1}.ca-card-assignment,.ca-card-class,.qs-card,.qb-card{padding:1.25rem;gap:.75rem}.ca-card-assignment>*+*,.ca-card-class>*+*,.qs-card>*+*,.qb-card>*+*{margin-top:0}.ca-card-assignment>.ca-badge{align-self:flex-start}.ca-card-flagged{border:2px solid #f59e0b}.al-info-block{display:flex;flex-direction:column;gap:.25rem}.al-badges-row{display:flex;flex-wrap:wrap;gap:.375rem;align-items:center}.al-badge-inline{align-self:flex-start;border-radius:var(--radius-xs, 4px);padding:2px 6px}.al-card-actions{display:flex;align-items:center;gap:6px}.ca-card-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:10px}.al-archive-btn{align-self:flex-end;margin-top:auto;background:#e53e3e14;border:1px solid rgba(229,62,62,.2);cursor:pointer;font-size:var(--text-xs);font-family:inherit;font-weight:500;padding:4px 10px;border-radius:var(--radius-xs);transition:all .15s ease;color:#c53030;line-height:1}.al-archive-btn:hover{color:#fff;background:#c53030;border-color:#c53030}.ca-card-archived{opacity:.75;border-style:dashed}.cd-table-wrap{overflow-x:auto;border:1px solid var(--edge);border-radius:var(--radius-sm);scrollbar-width:thin}.cd-perf-table{border-collapse:collapse;border:none;margin:0;border-radius:0;width:max-content;min-width:100%}.cd-perf-table th,.cd-perf-table td{border:none;border-bottom:1px solid var(--edge);vertical-align:middle}.cd-perf-table tbody tr:last-child th,.cd-perf-table tbody tr:last-child td{border-bottom:none}.cd-col-name{position:sticky;left:0;z-index:2;background:var(--bg-surface-alt);width:200px;min-width:160px;padding:10px 12px;white-space:nowrap;border-right:2px solid var(--edge)!important;text-align:left}.cd-name-inner{display:flex;align-items:center;gap:4px}.cd-student-name{flex:1;overflow:hidden;text-overflow:ellipsis}.cd-name-inner .ca-remove-btn{flex-shrink:0;opacity:0;transition:opacity .15s ease}td.cd-col-name:hover .ca-remove-btn{opacity:1}.cd-col-assign{width:130px;min-width:130px;max-width:130px;text-align:center;padding:6px 8px;border-right:1px solid var(--edge)!important}.cd-col-placeholder{background:var(--bg-surface-alt);opacity:.4}.cd-assign-title{display:block;font-size:var(--text-xs);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;line-height:1.3;cursor:pointer}.cd-assign-title:hover{text-decoration:underline}.cd-assign-meta{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:2px}.cd-assign-badge{font-size:.6rem!important;padding:1px 6px!important}.cd-col-score{width:130px;min-width:130px;max-width:130px;text-align:center;padding:6px 8px;vertical-align:middle;border-right:1px solid var(--edge)!important}.cd-score-pct{display:block;font-weight:700;font-size:var(--text-sm);line-height:1.3}.cd-score-frac{display:block;font-size:var(--text-xs);color:var(--text-muted);font-weight:400;line-height:1.3}.cd-score-empty{color:var(--text-tertiary);font-size:var(--text-sm)}.cd-score-pending{color:var(--text-muted);font-style:italic;font-size:var(--text-xs)}.cd-col-avg{position:sticky;right:0;z-index:2;width:80px;min-width:80px;max-width:80px;text-align:center;padding:10px 8px;font-weight:700;font-size:var(--text-sm);border-left:none!important;box-shadow:inset 3px 0 0 0 var(--text-tertiary);background:var(--bg-surface-alt)}thead .cd-col-name,thead .cd-col-avg{z-index:3}.cd-score-high{color:var(--color-correct-text)}.cd-score-mid{color:var(--color-warning-text)}.cd-score-low{color:var(--color-incorrect-text)}.cd-sort-btn{background:none;border:none;cursor:pointer;font-family:inherit;font-size:inherit;font-weight:inherit;color:inherit;padding:0;display:inline-flex;align-items:center;gap:3px;white-space:nowrap}.cd-sort-btn:hover .cd-sort-icon{opacity:1}.cd-sort-btn-col{font-size:var(--text-xs);color:var(--text-tertiary)}.cd-sort-icon{font-size:.7rem;opacity:.35;transition:opacity .15s ease;line-height:1}.cd-sort-icon.cd-sort-active{opacity:1;color:var(--accent)}.cd-scroll-bar{display:flex;justify-content:flex-end;gap:2px;margin-bottom:6px}.cd-scroll-btn{background:none;border:1px solid var(--edge);border-radius:var(--radius-xs);width:24px;height:18px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:.85rem;color:var(--text-tertiary);transition:all .15s ease;padding:0;line-height:1;font-family:inherit}.cd-scroll-btn:hover:not(:disabled){color:var(--text-primary);border-color:var(--text-tertiary)}.cd-scroll-btn:disabled{opacity:.25;cursor:default}.cd-pin-modal{border-radius:16px;overflow:hidden;overflow-y:hidden}.cd-pin-modal .modal-body{overflow-y:auto;max-height:calc(85vh - 80px)}.cd-pin-row{cursor:pointer;transition:background .15s ease}.cd-pin-row:hover{background:var(--bg-surface-alt)}.modal-header-actions{display:flex;gap:.5rem;margin-left:auto;margin-right:.75rem}.ca-grid{display:grid;gap:var(--space-5)}.ca-grid-classes{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.ca-grid-assignments{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.ca-badge{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:999px;font-size:var(--text-xs);font-weight:600;text-transform:capitalize}.ca-badge-homework{background:var(--color-info-bg-alt);color:var(--color-info-text)}.ca-badge-classwork{background:var(--color-warning-highlight);color:var(--color-warning-text)}.ca-badge-status-pending{background:var(--bg-surface-alt);color:var(--text-tertiary)}.ca-badge-status-review{background:var(--color-warning-bg);color:var(--color-warning-text)}.ca-badge-status-completed{background:var(--color-correct-bg);color:var(--color-correct-text)}.ca-badge-status-not_started{background:var(--bg-surface-alt);color:var(--text-tertiary)}.ca-badge-status-in_progress{background:var(--color-info-bg);color:#1d4ed8}.ca-badge-status-submitted{background:#e0e7ff;color:#3730a3}.ca-badge-status-marked{background:var(--color-warning-highlight);color:var(--color-warning-text)}.ca-badge-status-reviewed{background:var(--color-correct-bg);color:var(--color-correct-text)}.ca-badge-status-draft{background:#f3f4f6;color:var(--text-muted);font-style:italic}.ca-badge-ai-marked{background:var(--color-info-bg-alt);color:var(--color-info-text);margin-left:4px;font-size:var(--text-xs)}.ca-badge-automark-only{background:var(--color-partial-bg-alt);color:var(--color-partial-text);margin-left:4px;font-size:var(--text-xs)}.ca-badge-status-completed{background:#d1fae5;color:#065f46}.ca-badge-easy{background:var(--color-correct-bg);color:var(--color-correct-text)}.ca-badge-medium{background:var(--color-warning-bg);color:var(--color-warning-text)}.ca-badge-hard{background:var(--color-incorrect-bg);color:var(--color-incorrect-dark)}.ca-badge-auto{background:var(--color-info-bg-alt);color:var(--color-info-text)}.ca-badge-ai{background:#ede9fe;color:#5b21b6}.ca-badge-manual{background:var(--color-warning-highlight);color:var(--color-warning-text)}.ca-badge-aqa,.ca-badge-board-aqa{background:#3b82f61f;color:#2563eb}.ca-badge-edexcel,.ca-badge-board-edexcel{background:#db27771f;color:#db2777}.ca-badge-board-igcse{background:#10b9811f;color:#047857}[data-theme=dark] .ca-badge-aqa,[data-theme=dark] .ca-badge-board-aqa{background:#3b82f633;color:#93c5fd}[data-theme=dark] .ca-badge-edexcel,[data-theme=dark] .ca-badge-board-edexcel{background:#db277733;color:#f9a8d4}[data-theme=dark] .ca-badge-board-igcse{background:#10b98133;color:#6ee7b7}.ca-table{width:100%;border-collapse:collapse;table-layout:fixed;background:var(--bg-surface);border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--edge-light)}.ca-table th,.ca-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--edge-light);font-size:var(--text-sm)}.ca-table th{background:var(--bg-surface-alt);font-weight:500;font-size:var(--text-sm);color:var(--text-tertiary, #94a3b8);text-transform:uppercase;letter-spacing:.02em;cursor:pointer;-webkit-user-select:none;user-select:none}.ca-table th:hover{background:#e4e6ec}.ca-table tbody tr:hover{background:var(--bg-surface-alt)}.ca-table .ca-pin{font-family:Courier New,monospace;font-weight:600;font-size:1rem;letter-spacing:.1em}.ca-results-table-wrapper{overflow-x:auto}input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input[type=datetime-local],select,textarea{font-family:inherit;font-size:var(--text-base);padding:10px 14px;border:1px solid var(--edge);border-radius:var(--radius-xs);background:var(--bg-input);color:var(--text-primary);transition:border-color var(--transition),box-shadow var(--transition);width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle);background:var(--bg-input-focus)}textarea{resize:vertical;min-height:80px}.ca-form-group{margin-bottom:var(--space-4)}.ca-form-group label{display:block;font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);margin-bottom:var(--space-2)}.ca-form-group .ca-form-help{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:4px}.ca-form-row{display:flex;gap:var(--space-4);flex-wrap:wrap}.ca-form-row .ca-form-group{flex:1;min-width:200px}.ca-inline-form{display:flex;gap:var(--space-3);align-items:flex-end;margin-bottom:var(--space-4);flex-wrap:wrap}.ca-inline-form input{max-width:300px}.ca-paste-section{margin-bottom:var(--space-4)}.ca-paste-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2);flex-wrap:wrap}.ca-paste-header .ca-label{margin-bottom:0}.ca-paste-textarea{resize:vertical;min-height:5rem;font-family:inherit}.ca-checkbox-label{display:flex;align-items:center;gap:.4rem;font-size:.9rem;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.ca-checkbox-label input[type=checkbox]{accent-color:var(--color-primary)}.nc-layout{display:flex;gap:3rem;align-items:flex-start}.nc-layout .nc-left{flex:1;min-width:0;max-width:420px}.nc-layout .nc-right{flex:1;min-width:0;position:relative}.nc-right-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.nc-right-title{font-size:1.1rem;font-weight:600;color:var(--text-primary)}.ca-student-list-actions{display:flex;gap:var(--space-2)}.nc-roster{width:100%}.nc-roster td:last-child,.nc-roster th:last-child{width:1%;white-space:nowrap}.nc-row-num{width:2rem;text-align:center;color:var(--text-muted, #999);font-size:.8rem}.nc-blank-row td{border-bottom-color:var(--edge-light, #eee)}.nc-fade-half{opacity:.5}.nc-fade-light{opacity:.2}.nc-table-fade{position:absolute;bottom:0;left:0;right:0;height:3.5rem;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--bg-page, #f5f6fa))}.nc-empty-cell{display:block;min-height:1.4em;cursor:pointer}.ca-editable-name{cursor:pointer;padding:.2rem .4rem;border-radius:4px;display:inline-block}.ca-editable-name:hover{background:var(--bg-hover, rgba(0,0,0,.05))}.ca-inline-edit{display:flex}.ca-inline-edit-input{padding:.2rem .4rem;font-size:inherit;width:100%}.ca-th-name{font-weight:600;color:var(--text-primary)}.ca-th-hint{font-weight:400;font-size:.75rem;color:var(--text-muted, #999);margin-left:.4rem;text-transform:lowercase}@media(max-width:768px){.nc-layout{flex-direction:column}.nc-layout .nc-left{max-width:100%}}.ca-form-section{margin-bottom:var(--space-6)}.ca-form-section .ca-field{margin-bottom:var(--space-4)}.ca-field-row{display:flex;gap:var(--space-4);flex-wrap:wrap}.ca-field-row .ca-field{flex:1;min-width:180px;margin-bottom:0}.ca-question-list{display:flex;flex-direction:column;gap:var(--space-2)}.ca-question-item{display:flex;align-items:center;gap:var(--space-2);background:var(--bg-surface);border:1px solid var(--edge-light);border-radius:var(--radius-sm);padding:.625rem .75rem;transition:border-color .15s ease,box-shadow .15s ease;cursor:grab}.ca-question-item:hover{border-color:var(--accent-muted)}.ca-drag-handle{flex-shrink:0;color:var(--text-tertiary);cursor:grab;display:flex;align-items:center;padding:2px}.ca-drag-handle:active{cursor:grabbing}.ca-question-number{font-weight:700;font-size:var(--text-sm);color:var(--text-tertiary);flex-shrink:0;min-width:1.25rem}.ca-question-info{flex:1;min-width:0}.ca-question-info .ca-question-title{font-weight:600;font-size:var(--text-base);display:block}.ca-question-info .ca-question-title.qs-preview-link{cursor:pointer;color:var(--accent)}.ca-question-info .ca-question-title.qs-preview-link:hover{text-decoration:underline}.ca-question-meta{display:flex;gap:var(--space-2);align-items:center;font-size:var(--text-sm);color:var(--text-muted);margin-top:.25rem}.ca-question-meta-text{color:var(--text-quaternary, #999);font-size:var(--text-sm)}.ca-question-meta-sep{color:var(--text-tertiary);font-size:var(--text-xs)}.ca-question-marks{color:var(--text-tertiary);font-size:var(--text-sm)}.ca-question-actions{display:flex;gap:2px;align-items:center;flex-shrink:0;margin-left:auto}.ca-move-btn{background:none;border:none;cursor:pointer;font-size:.6rem;color:var(--text-tertiary);padding:4px 5px;line-height:1;border-radius:var(--radius-xs);transition:color .15s ease;font-family:inherit}.ca-move-btn:hover:not(:disabled){color:var(--text-primary)}.ca-move-btn:disabled{opacity:.25;cursor:default}.ca-remove-btn{background:none;border:none;cursor:pointer;font-size:1.1rem;color:var(--text-tertiary);padding:2px 6px;line-height:1;border-radius:var(--radius-xs);transition:color .15s ease;font-family:inherit;margin-left:2px}.ca-remove-btn:hover:not(:disabled){color:#dc2626}.ca-remove-btn:disabled{opacity:.25;cursor:default}.ca-form-actions{display:flex;gap:var(--space-3);align-items:center;margin-top:1.5rem}.ca-form-error{color:var(--color-incorrect);font-size:var(--text-sm);margin-top:6px}.ca-form-success{color:var(--color-correct);font-size:var(--text-sm);margin-top:6px;padding:10px 16px;background:var(--color-correct-bg);border:1px solid var(--color-correct-border);border-radius:var(--radius-xs)}.ca-auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg-body)}.ca-auth-card{background:var(--bg-surface);border:1px solid var(--edge-light);border-radius:var(--radius);padding:40px;width:100%;max-width:440px;box-shadow:var(--shadow-lg)}.ca-auth-card h1{text-align:center;margin-bottom:var(--space-2)}.ca-auth-subtitle{text-align:center;color:var(--text-secondary);font-size:var(--text-base);margin-bottom:var(--space-6)}.ca-auth-card .btn{width:100%;margin-top:8px}.ca-auth-footer{text-align:center;margin-top:20px;font-size:var(--text-sm);color:var(--text-tertiary)}.ca-auth-footer a,.ca-auth-footer button{color:var(--accent);font-weight:500;background:none;border:none;cursor:pointer;font-size:inherit;font-family:inherit}.ca-empty{text-align:center;color:var(--text-tertiary);padding:40px 20px;font-size:var(--text-base)}.ca-code{font-family:Courier New,monospace;font-weight:700;letter-spacing:.15em;background:var(--bg-surface-alt);padding:2px 8px;border-radius:var(--radius-xs)}.ca-code-large{font-family:Courier New,monospace;font-weight:800;font-size:2rem;letter-spacing:.2em;color:var(--accent);text-align:center;padding:16px;background:var(--accent-subtle);border-radius:var(--radius);margin:16px 0}.ca-stat-badge{padding:6px 14px;border-radius:999px;font-size:var(--text-sm);font-weight:600}.ca-stat-warning{background:var(--color-warning-bg);color:var(--color-warning-text)}.ca-results-header{margin-bottom:var(--space-6)}.ca-results-title-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-3)}.ca-results-header-right{display:flex;align-items:center;gap:var(--space-2)}.ca-results-meta{display:flex;gap:var(--space-4);font-size:var(--text-md, 1.05rem);color:var(--text-secondary);flex-wrap:wrap}.ca-results-submitted-count{font-size:var(--text-base);font-weight:600;color:var(--text-secondary)}.ca-results-actions{display:flex;gap:var(--space-3);margin-top:24px;flex-wrap:wrap}.ca-results-actions-bordered{border-top:1px solid var(--edge-light);padding-top:1.25rem}.btn-outline-danger{background:#fef2f2;color:#dc2626;border:1px solid #dc2626;border-radius:var(--radius-sm, 6px);padding:.5rem 1rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.btn-outline-danger:hover{background:#dc2626;color:#fff}.btn-outline-danger:disabled{opacity:.5;cursor:not-allowed}.ca-share-info{display:flex;flex-direction:column;gap:var(--space-4)}.ca-share-row{display:flex;flex-direction:column;gap:var(--space-1)}.ca-share-value-row{display:flex;align-items:center;gap:var(--space-3)}.ca-share-code{font-family:monospace;font-size:var(--text-2xl);font-weight:700;letter-spacing:.15em;color:var(--accent)}.ca-share-link{font-size:var(--text-sm);color:var(--text-secondary);word-break:break-all}.ca-stats-bar{display:flex;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap}.ca-class-stats-banner{background:var(--bg-surface);border:1px solid var(--edge-light);border-radius:var(--radius);padding:1rem 1.5rem;margin-bottom:var(--space-6)}.ca-class-stats-banner.ca-class-stats-inline{display:flex;align-items:center;justify-content:center;gap:var(--space-6);background:var(--bg-surface);border:1px solid var(--edge-light);border-radius:var(--radius);padding:1rem 1.5rem}.ca-class-stats-inline .ca-class-stats-title{font-weight:600;font-size:var(--text-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;margin-bottom:0;white-space:nowrap}.ca-class-stats-title{font-weight:700;font-size:var(--text-md);color:var(--text-primary);margin-bottom:var(--space-3)}.ca-class-stats-row{display:flex;gap:var(--space-8);align-items:center}.ca-class-stats-divider{width:1px;height:2rem;background:var(--edge-light)}.ca-class-stat{display:flex;flex-direction:column;align-items:center}.ca-class-stat-value{font-size:var(--text-xl);font-weight:700;color:var(--text-primary)}.ca-class-stat-label{font-size:var(--text-sm);color:var(--text-tertiary);font-weight:500}.ca-stat-box{background:var(--bg-surface);border:1px solid var(--edge-light);border-radius:var(--radius-sm);padding:16px 20px;flex:1;min-width:140px;text-align:center}.ca-stat-value{font-size:var(--text-2xl);font-weight:700;color:var(--text-primary)}.ca-stat-label{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em;margin-top:4px}.spinner-fullpage{display:flex;align-items:center;justify-content:center;min-height:100vh}.spinner-container{display:flex;align-items:center;justify-content:center;padding:40px}.spinner{border:3px solid var(--edge-light);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}.spinner-small{width:20px;height:20px}.spinner-medium{width:36px;height:36px}.spinner-large{width:48px;height:48px}@keyframes spin{to{transform:rotate(360deg)}}.error-message{display:flex;align-items:center;gap:var(--space-3);padding:14px 18px;background:var(--color-incorrect-bg);border:1px solid var(--color-incorrect-border);border-radius:var(--radius-sm);margin-bottom:var(--space-4)}.error-message-icon{width:28px;height:28px;border-radius:50%;background:var(--color-incorrect);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--text-sm);flex-shrink:0}.error-message-text{flex:1;color:var(--color-incorrect);font-size:var(--text-base)}.error-message-retry{padding:6px 14px;background:var(--color-incorrect);color:#fff;border:none;border-radius:var(--radius-xs);cursor:pointer;font-weight:600;font-size:var(--text-sm);font-family:inherit}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content{background:var(--bg-surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);max-width:600px;width:100%;max-height:85vh;overflow-y:auto}.modal-content.modal-lg{max-width:800px}.modal-content.ca-picker-modal{max-width:700px;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--edge-light)}.modal-header h2{font-size:var(--text-lg)}.modal-close{background:none;border:none;font-size:var(--text-2xl);cursor:pointer;color:var(--text-tertiary);padding:4px 8px;border-radius:var(--radius-xs);transition:background var(--transition)}.modal-close:hover{background:var(--bg-surface-alt)}.modal-body{padding:24px}.confirm-modal .modal-body{text-align:center}.confirm-modal .modal-actions{display:flex;gap:var(--space-3);justify-content:center;margin-top:20px}.ca-question-display{margin-bottom:var(--space-6)}.ca-question-title{font-size:var(--text-lg);font-weight:600;margin-bottom:var(--space-4);padding-bottom:12px;border-bottom:1px solid var(--edge-light)}.ca-question-part{margin-bottom:var(--space-6);padding:16px;background:var(--bg-surface);border:1px solid var(--edge-light);border-radius:var(--radius-sm)}.ca-part-text-row{display:flex;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-3)}.ca-part-label{font-weight:800;font-size:1rem;color:var(--accent);flex-shrink:0}.ca-part-text{line-height:1.7;white-space:pre-line}.ca-part-marks{text-align:right;font-size:var(--text-sm);color:var(--text-tertiary);font-weight:500;margin-top:12px}.ca-part-diagrams{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-3)}.ca-diagram-figure{margin:0}.ca-diagram{max-width:400px;max-height:300px;border-radius:var(--radius-xs);border:1px solid var(--edge-light)}.ca-diagram-caption{text-align:center;font-size:var(--text-xs);font-weight:600;color:var(--text-muted);margin-top:4px}.ca-part-tables{margin-bottom:var(--space-3)}.ca-part-table-block{border:1px solid var(--edge-light);border-radius:var(--radius-xs);overflow:hidden;margin-bottom:var(--space-3)}.ca-part-table-label{font-size:var(--text-xs);font-weight:700;color:var(--text-muted);padding:6px 12px;border-bottom:1px solid var(--edge-light)}.ca-part-inline-table{width:100%;border-collapse:collapse;font-size:var(--text-base)}.ca-part-inline-table th,.ca-part-inline-table td{padding:8px 12px;border:1px solid var(--edge-light);text-align:left}.ca-part-inline-table th{background:var(--bg-raised);font-weight:700;font-size:var(--text-sm)}.ca-part-inline-table tbody tr:nth-child(2n){background:var(--bg-raised)}.ca-part-unsupported{padding:12px;background:var(--color-warning-bg);color:var(--color-warning-text);border-radius:var(--radius-xs);font-size:var(--text-sm)}.mc-options{display:flex;flex-direction:column;gap:var(--space-3)}.mc-option{display:flex;align-items:center;padding:12px 16px;background:var(--bg-surface);border:1.5px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s,border-color .15s;-webkit-user-select:none;user-select:none}.mc-option:hover{background:var(--bg-surface-alt)}.mc-option input[type=radio],.mc-option input[type=checkbox]{margin-right:12px;width:18px;height:18px;accent-color:var(--accent-blue);flex-shrink:0}.mc-option input:disabled{cursor:not-allowed}.mc-option.correct{background:var(--color-correct-bg);border-color:var(--color-correct-border);color:var(--color-correct-text)}.mc-option.correct:after{content:"✓";margin-left:auto;font-size:var(--text-lg);font-weight:700;color:var(--color-correct)}.mc-option.incorrect{background:var(--color-incorrect-bg);border-color:var(--color-incorrect-border);color:var(--color-incorrect-text)}.mc-option.incorrect:after{content:"✗";margin-left:auto;font-size:var(--text-lg);font-weight:700;color:var(--color-incorrect)}.mc-option.selected{border-color:var(--accent-blue);background:var(--accent-blue-muted)}.mc-options-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.mc-option-image-label{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.mc-option-image-label span{display:flex;flex-direction:column;align-items:center;width:100%}.mc-option-image{max-width:100%;max-height:180px;display:block;margin:4px auto 0;border-radius:var(--radius-xs);background:var(--bg-surface);padding:4px;border:1px solid var(--border-subtle)}.gf-word-bank{border:2px solid var(--accent-blue-muted);padding:12px 16px;border-radius:var(--radius-sm);margin-bottom:var(--space-4);background:var(--accent-blue-muted);font-size:var(--text-md);color:var(--text-primary);display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2)}.gf-word-bank strong{color:var(--accent-blue);background:var(--bg-surface);padding:5px 16px;border-radius:999px;border:1px solid var(--border-default);font-weight:700;text-align:center}.gf-sentence{margin-top:12px;line-height:2.4}.gf-blank-wrapper{display:inline}.gf-dropdown{display:inline-block;padding:6px 10px;margin:0 4px;border:2px solid var(--accent-blue);border-radius:var(--radius-sm);background:var(--bg-input);font-family:inherit;font-size:inherit;color:var(--text-primary);cursor:pointer;vertical-align:baseline;appearance:auto;transition:border-color .2s,background .2s}.gf-dropdown:focus{outline:none;border-color:var(--accent-blue-hover);background:var(--bg-input-focus);box-shadow:0 0 0 3px var(--accent-blue-muted)}.gf-dropdown:disabled{background:var(--bg-surface-alt);cursor:not-allowed;color:var(--text-tertiary);border-color:var(--border-default)}.gf-dropdown option{background:var(--bg-surface);color:var(--text-primary)}.gf-dropdown.correct{border-color:var(--color-correct);background:var(--color-correct-bg);color:var(--color-correct-text)}.gf-dropdown.incorrect{border-color:var(--color-incorrect);background:var(--color-incorrect-bg);color:var(--color-incorrect-text)}.gf-correct-answer{display:inline-block;margin-left:4px;font-size:var(--text-sm);color:var(--color-correct-text);font-weight:700}.gf-correct-answer:before{content:"✓";color:var(--color-correct)}.sa-wrapper{margin-top:12px}.sa-review-columns{display:grid;grid-template-columns:1fr 1fr;padding:1.25rem 0;gap:var(--space-4)}.sa-review-col{text-align:center;padding:.5rem 1.5rem;font-size:1.5em}.sa-review-col+.sa-review-col{border-left:1px solid var(--border-default)}.sa-input{display:block;width:100%;max-width:360px;padding:8px 12px;border:2px solid var(--accent-blue);border-radius:var(--radius-sm);background:var(--bg-input);font-family:inherit;font-size:inherit;color:var(--text-primary);transition:border-color .2s,background .2s}.sa-input:focus{outline:none;border-color:var(--accent-blue-hover);background:var(--bg-input-focus);box-shadow:0 0 0 3px var(--accent-blue-muted)}.sa-input:disabled{background:var(--bg-surface-alt);cursor:not-allowed;color:var(--text-primary);border-color:var(--border-default)}.sa-input.correct{border-color:var(--color-correct);background:var(--color-correct-bg);color:var(--color-correct-text)}.sa-input.incorrect{border-color:var(--color-incorrect);background:var(--color-incorrect-bg);color:var(--color-incorrect-text)}.sa-misspelt-note,.sa-keyword-note{display:block;margin-top:6px;font-size:var(--text-sm);color:var(--text-tertiary);font-style:italic}.sa-correct-answer{display:block;margin-top:6px;font-size:var(--text-base);color:var(--color-correct-text);font-weight:700}.sa-correct-answer:before{content:"✓";color:var(--color-correct)}.ew-container{display:flex;flex-direction:column}.ew-encouragement{font-size:var(--text-base);color:var(--accent-blue);font-style:italic;margin-bottom:var(--space-3);line-height:1.5;padding:10px 14px;background:var(--accent-blue-muted);border-radius:var(--radius-sm);border-left:3px solid var(--accent-blue)}.ew-textarea{width:100%;min-height:150px;padding:14px 16px;font-family:inherit;font-size:1rem;line-height:1.65;color:var(--text-primary);background:var(--bg-input);border:2px solid var(--border-input);border-radius:var(--radius-sm);resize:vertical;transition:border-color .2s,box-shadow .2s}.ew-textarea:focus{outline:none;border-color:var(--border-input-focus);background:var(--bg-input-focus);box-shadow:0 0 0 3px var(--accent-blue-muted)}.ew-textarea:read-only,.ew-textarea:disabled{opacity:.7;cursor:not-allowed;background:var(--bg-surface-alt)}.ew-textarea::placeholder{color:var(--text-tertiary)}.ew-char-counter{text-align:right;font-size:var(--text-sm);color:var(--text-secondary);margin-top:6px}.ew-char-counter.near-limit{color:var(--color-incorrect);font-weight:700}.ew-review-ms-table{width:100%;border-collapse:collapse}.ew-review-ms-point-col{width:75%}.ew-review-ms-verdict-col{width:25%}.ew-ms-point{font-weight:400;color:var(--text-primary);padding:.35rem .75rem .35rem 0;vertical-align:top;font-size:var(--text-base)}.ms-verdict-cell{text-align:right;vertical-align:top;padding:.35rem 0}.ms-checkbox{display:inline-flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;border-radius:4px;font-size:.95rem;font-weight:700;line-height:1;flex-shrink:0}.ms-checkbox-awarded{background:var(--color-correct);color:#fff}.ms-checkbox-not-awarded{background:var(--color-incorrect);color:#fff}.ms-checkbox-clickable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:opacity .15s,transform .1s}.ms-checkbox-clickable:hover{opacity:.8;transform:scale(1.1)}.ms-rows-container{display:flex;flex-direction:column;gap:4px}.ms-row-outer{display:flex;align-items:center;gap:6px}.ms-row-card{display:flex;align-items:center;gap:10px;padding:.45rem .6rem;border-radius:8px;border:2px solid transparent;flex:1;min-width:0;transition:background .15s,border-color .15s}.ms-row-card-awarded{background:#f0fdf4;border-color:#bbf7d0}.ms-row-card-not-awarded{background:#fef2f2;border-color:#fecaca}.ms-row-card-review.ms-row-card-awarded{background:#f0fdf4;border-color:#bbf7d0}.ms-row-card-unset{background:#f8fafc;border-color:#e2e8f0}.ms-pick-btns{display:flex;gap:6px;flex-shrink:0}.ms-checkbox-pick{opacity:.5;transition:opacity .15s,transform .1s}.ms-checkbox-pick:hover{opacity:1;transform:scale(1.15)}.ms-row-card-review.ms-row-card-not-awarded{background:#fef2f2;border-color:#fecaca}.ms-row-number{display:inline-flex;align-items:center;justify-content:center;width:1.3rem;height:1.3rem;border-radius:4px;background:var(--color-surface-secondary, #f1f5f9);color:var(--text-secondary, #64748b);font-size:.7rem;font-weight:600;flex-shrink:0;font-variant-numeric:tabular-nums}.ms-row-point{flex:1;font-size:var(--text-base);color:var(--text-primary);line-height:1.5;min-width:0}.ms-needs-review-badge{font-size:.65rem;font-weight:700;letter-spacing:.03em;padding:2px 7px;border-radius:4px;background:#fef3c7;color:#d97706;white-space:nowrap;flex-shrink:0}.ms-review-slot{width:7.5rem;flex-shrink:0}.ms-review-actions{display:flex;flex-direction:column;align-items:stretch;gap:3px}.ms-review-btns{display:flex;gap:4px}.ms-review-btns .ms-agree-btn,.ms-review-btns .ms-disagree-btn{flex:1}.ms-agree-btn,.ms-disagree-btn{font-size:.72rem;font-weight:600;padding:3px 10px;border-radius:5px;border:none;cursor:pointer;transition:opacity .15s,transform .1s;white-space:nowrap}.ms-agree-btn{background:#dcfce7;color:#15803d}.ms-agree-btn:hover{background:#bbf7d0}.ms-agree-btn:active{background:#86efac;transform:scale(.96)}.ms-disagree-btn{background:#fee2e2;color:#b91c1c}.ms-disagree-btn:hover{background:#fecaca}.ms-disagree-btn:active{background:#fca5a5;transform:scale(.96)}.ms-resolve-btn{font-size:.72rem;font-weight:600;padding:4px 12px;border-radius:5px;border:none;background:#fef3c7;color:#92400e;cursor:pointer;transition:background .15s,transform .1s;white-space:nowrap}.ms-resolve-btn:hover{background:#fbbf24;color:#78350f}.ms-resolve-btn:active{background:#f59e0b;transform:scale(.96)}.ms-answer-container-ai{background:#faf5ff;border:1px solid #e9d5ff;border-radius:10px;padding:.5rem 1rem .65rem;margin-bottom:.5rem}.ms-answer-container-ai .ca-review-subtitle{margin:0}.ms-answer-header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:.25rem}.ms-ai-marking-badge{font-size:.65rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:2px 8px;border-radius:4px;background:#e9d5ff;color:#7c3aed;white-space:nowrap}.ms-feedback-clickable{cursor:pointer;transition:border-color .15s}.ms-feedback-clickable:hover{border-color:#c4b5fd}.ms-feedback-edit-hint{font-size:.65rem;font-weight:500;color:#a78bfa;font-style:italic;display:block}.ms-feedback-editing-tag{font-size:.65rem;font-weight:600;color:#7c3aed;background:#e9d5ff;padding:1px 6px;border-radius:3px;margin-left:4px}.ms-feedback-delete-btn{margin-left:auto;background:none;border:none;font-size:1.1rem;line-height:1;color:#94a3b8;cursor:pointer;padding:0 4px;border-radius:3px;transition:color .15s,background .15s}.ms-feedback-delete-btn:hover{color:#ef4444;background:#fef2f2}.ms-feedback-textarea{width:100%;border:1px solid #d8b4fe;border-radius:6px;padding:.5rem;font-size:.85rem;font-family:inherit;line-height:1.5;resize:vertical;background:#faf5ff;color:var(--text-primary);min-height:3.5rem;overflow:hidden}.ms-feedback-textarea:focus{outline:none;border-color:#a78bfa;box-shadow:0 0 0 2px #a78bfa33}.ms-flagged-tag{font-size:.6rem;font-weight:700;color:#d97706;background:#fef3c7;padding:1px 6px;border-radius:3px;white-space:nowrap;text-transform:uppercase;letter-spacing:.03em}.ms-flagged-label{font-size:.65rem;font-style:italic;color:#94a3b8;font-weight:400}.ms-flagged-inline{font-size:.7rem;font-style:italic;font-weight:600;color:#92400e;flex-shrink:0;white-space:nowrap}@keyframes ms-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.ms-row-card-shimmer{background-image:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.5) 20%,rgba(255,255,255,.9) 50%,rgba(255,255,255,.5) 80%,transparent 100%);background-size:200% 100%;animation:ms-shimmer 3.5s ease-in-out infinite}.ms-row-outer:nth-child(odd)>.ms-row-card-shimmer{animation-delay:-1.2s}.ms-row-outer:nth-child(3n)>.ms-row-card-shimmer{animation-duration:4s;animation-delay:-2.5s}.ms-row-outer:nth-child(4n+1)>.ms-row-card-shimmer{animation-duration:3s;animation-delay:-.5s}.ms-row-card-shimmer.ms-row-card-awarded{background-color:#f0fdf4}.ms-row-card-shimmer.ms-row-card-not-awarded{background-color:#fef2f2}.ms-flipped-tag{font-size:.6rem;font-weight:600;color:#9333ea;background:#f3e8ff;padding:1px 6px;border-radius:3px;white-space:nowrap;flex-shrink:0;text-transform:uppercase;letter-spacing:.03em}.ms-resolved-check{display:inline-flex;align-items:center;justify-content:center;width:1.2rem;height:1.2rem;border-radius:50%;background:#22c55e;color:#fff;font-size:.7rem;font-weight:700;flex-shrink:0}.sae-container{display:flex;flex-direction:column}.sae-explain-prompt{margin-top:14px;font-weight:600;color:var(--text-primary);font-size:var(--text-md)}.sae-explain-section{margin-top:10px}.tf-wrapper{margin-top:12px}.tf-table{width:100%;border-collapse:collapse;font-size:var(--text-md)}.tf-table th,.tf-table td{padding:10px 14px;border:1px solid var(--border-default);color:var(--text-primary)}.tf-table thead th{background:var(--bg-surface-alt);font-weight:700;text-align:center}.tf-table td{text-align:center}.tf-blank-cell{position:relative}.tf-cell-input{width:100%;max-width:160px;padding:6px 10px;border:2px solid var(--accent-blue);border-radius:var(--radius-sm);background:var(--bg-input);font-family:inherit;font-size:inherit;color:var(--text-primary);text-align:center;transition:border-color .2s,background .2s}.tf-cell-input:focus{outline:none;border-color:var(--accent-blue-hover);background:var(--bg-input-focus);box-shadow:0 0 0 3px var(--accent-blue-muted)}.tf-cell-input:disabled{background:var(--bg-surface-alt);cursor:not-allowed;color:var(--text-primary);border-color:var(--border-default)}.tf-cell-input.correct{border-color:var(--color-correct);background:var(--color-correct-bg);color:var(--color-correct-text)}.tf-cell-input.incorrect{border-color:var(--color-incorrect);background:var(--color-incorrect-bg);color:var(--color-incorrect-text)}.tf-misspelt-note{display:block;margin-top:4px;font-size:var(--text-xs);color:var(--text-tertiary);font-style:italic}.tf-correct-answer{display:block;margin-top:4px;font-size:var(--text-sm);color:var(--color-correct-text);font-weight:700}.tf-correct-answer:before{content:"✓";color:var(--color-correct)}.tick-box-table{width:100%;border-collapse:collapse;margin:12px 0;font-size:var(--text-md)}.tick-box-table th,.tick-box-table td{padding:10px 14px;border:1px solid var(--border-default);color:var(--text-primary)}.tick-box-table thead th{background:var(--bg-surface-alt);font-weight:700;text-align:center}.tick-box-table thead th:first-child{text-align:left}.tick-box-row-label{text-align:left;font-weight:600}.tick-box-cell{text-align:center;width:120px}.tick-box-cell input[type=radio]{width:20px;height:20px;accent-color:var(--accent-blue);cursor:pointer}.tick-box-cell input[type=radio]:disabled{cursor:not-allowed}.tick-box-table tbody tr:nth-child(2n){background:var(--bg-surface-alt)}.tick-box-table tbody tr:nth-child(odd){background:var(--bg-surface)}.tick-box-result-header{border:none!important;background:transparent!important}.tick-box-result-cell{border:none!important;background:#fff!important;text-align:center;width:2.5rem;font-size:1.3em;font-weight:700}.tick-box-result-cell.tick-box-result-correct{color:var(--color-correct)!important}.tick-box-result-cell.tick-box-result-incorrect{color:var(--color-incorrect)!important}.matchup-container{display:flex;flex-direction:column;padding:12px 0}.matchup-columns{display:flex;justify-content:space-between;align-items:center;gap:80px}.matchup-column-left,.matchup-column-right{display:flex;flex-direction:column;gap:var(--space-3);flex:0 1 auto}.matchup-right-row{display:flex;align-items:center;gap:var(--space-2)}.matchup-right-row .matchup-box{flex:1}.matchup-box{padding:10px 18px;border:1.5px solid var(--border-default);border-radius:var(--radius-sm);background:var(--card-bg);cursor:pointer;transition:border-color .15s,background .15s;-webkit-user-select:none;user-select:none;min-width:120px;text-align:center}.matchup-box:hover:not(.disabled):not(.linked):not(.selected){background:var(--matchup-next-hover)}.matchup-box.selected{box-shadow:0 0 0 3px var(--matchup-next-bg);background:var(--matchup-next-bg);border-color:var(--accent-blue)}.matchup-box.linked{cursor:default}.matchup-box.disabled{cursor:default;opacity:.9}.matchup-result-icon{font-size:1.3em;font-weight:700;flex-shrink:0;width:1.5rem;text-align:center}.matchup-result-correct{color:var(--color-correct)}.matchup-result-incorrect{color:var(--color-incorrect)}.matchup-box-image{max-width:100px;max-height:80px;display:block;margin:0 auto}.matchup-cancel-btn{background:none;border:1.5px solid var(--border-default);border-radius:50%;width:28px;height:28px;cursor:pointer;color:var(--text-secondary);font-size:var(--text-sm);display:flex;align-items:center;justify-content:center;transition:color .15s,border-color .15s,background .15s;flex-shrink:0}.matchup-cancel-btn:hover{color:var(--color-incorrect);border-color:var(--color-incorrect);background:var(--color-incorrect-bg)}.matchup-reset-row{display:flex;justify-content:flex-end;margin-bottom:var(--space-3)}.matchup-reset-btn{padding:5px 14px;border:1.5px solid var(--border-default);border-radius:999px;background:var(--card-bg);color:var(--border-default);cursor:default;font-size:var(--text-sm);transition:color .15s,border-color .15s,background .15s;opacity:.5}.matchup-reset-btn.active{color:var(--text-secondary);border-color:var(--text-secondary);opacity:1;cursor:pointer}.matchup-reset-btn.active:hover{color:var(--color-incorrect);border-color:var(--color-incorrect);background:var(--color-incorrect-bg)}.numerical-container{display:flex;flex-direction:column;gap:var(--space-3)}.numerical-final-answer{display:flex;flex-direction:column;gap:var(--space-2)}.numerical-final-label{font-size:var(--text-base);font-weight:600;color:var(--text-secondary)}.numerical-final-row{display:flex;align-items:center;gap:var(--space-3)}.numerical-final-input{flex:1;max-width:280px;padding:10px 14px;font-family:inherit;font-size:var(--text-lg);color:var(--text-primary);background:var(--bg-input);border:2px solid var(--accent-blue);border-radius:var(--radius-sm);transition:border-color .2s,box-shadow .2s}.numerical-final-input:focus{outline:none;border-color:var(--accent-blue-hover);background:var(--bg-input-focus);box-shadow:0 0 0 3px var(--accent-blue-muted)}.numerical-final-input:disabled,.numerical-final-input:read-only{cursor:not-allowed;background:var(--bg-surface-alt)}.numerical-final-input::placeholder{color:var(--text-tertiary)}.numerical-final-input.correct{border-color:var(--color-correct-border);background:var(--color-correct-bg);color:var(--color-correct-text)}.numerical-final-input.incorrect{border-color:var(--color-incorrect-border);background:var(--color-incorrect-bg);color:var(--color-incorrect-text)}.numerical-unit{font-size:var(--text-lg);font-weight:600;color:var(--text-secondary)}.numerical-correct-answer{font-size:var(--text-base);color:var(--color-correct-text);font-weight:600;margin-top:4px}.numerical-correct-answer:before{content:"✓";color:var(--color-correct)}.numerical-working-toggle{align-self:flex-start;padding:6px 16px;font-size:var(--text-sm);font-weight:500;color:var(--text-on-accent);background:var(--accent-blue);border:1px solid var(--accent-blue);border-radius:var(--radius-sm);cursor:pointer;transition:background .2s,color .2s}.numerical-working-toggle:hover{background:var(--accent-blue-hover);color:var(--text-on-accent)}.numerical-working-toggle.open{color:var(--text-on-accent);background:var(--accent-blue-hover);border-color:var(--accent-blue-hover)}.numerical-working{display:flex;flex-direction:column;gap:var(--space-3);padding:16px;background:var(--bg-surface-alt);border:1px solid var(--border-default);border-radius:var(--radius-sm)}.numerical-working-section{display:flex;flex-direction:column;gap:var(--space-2)}.numerical-working-label{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.numerical-formula-list{display:flex;flex-direction:column;gap:var(--space-2)}.numerical-formula-option{display:flex;align-items:center;gap:var(--space-3);padding:8px 12px;background:var(--bg-input);border:2px solid var(--border-input);border-radius:var(--radius-sm);cursor:pointer;transition:border-color .2s,background .2s}.numerical-formula-option:hover:not(.disabled){border-color:var(--accent-blue-muted);background:var(--bg-input-focus)}.numerical-formula-option.selected{border-color:var(--accent-blue);background:var(--bg-input-focus)}.numerical-formula-option.disabled{opacity:.7;cursor:not-allowed}.numerical-formula-option input[type=radio]{width:16px;height:16px;accent-color:var(--accent-blue);flex-shrink:0}.numerical-working-input{padding:8px 12px;font-family:inherit;font-size:1rem;color:var(--text-primary);background:var(--bg-input);border:2px solid var(--border-input);border-radius:var(--radius-sm);transition:border-color .2s}.numerical-working-input:focus{outline:none;border-color:var(--accent-blue);background:var(--bg-input-focus)}.numerical-working-input:disabled,.numerical-working-input:read-only{opacity:.7;cursor:not-allowed;background:var(--bg-surface-alt)}.numerical-working-input::placeholder{color:var(--text-tertiary)}.numerical-calculator{display:flex;flex-direction:column;gap:var(--space-2)}.numerical-calc-row{display:flex;align-items:center;gap:var(--space-2)}.numerical-calc-input{flex:1;padding:8px 12px;font-family:inherit;font-size:1rem;color:var(--text-primary);background:var(--bg-input);border:2px solid var(--border-input);border-radius:var(--radius-sm);transition:border-color .2s}.numerical-calc-input:focus{outline:none;border-color:var(--accent-blue);background:var(--bg-input-focus)}.numerical-calc-input::placeholder{color:var(--text-tertiary)}.numerical-calc-btn{width:40px;height:40px;font-size:var(--text-lg);font-weight:700;color:var(--text-on-accent);background:var(--accent-blue);border:none;border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0;transition:background .2s}.numerical-calc-btn:hover{background:var(--accent-blue-hover)}.numerical-calc-result{font-size:var(--text-md);font-weight:600;color:var(--text-primary);min-width:80px}.numerical-display{display:flex;flex-direction:column;gap:var(--space-3)}.numerical-display-section{display:flex;flex-direction:column;gap:var(--space-1)}.numerical-display-label{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.numerical-display-value{font-size:1rem;color:var(--text-primary);padding:8px 12px;background:var(--bg-surface-alt);border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.numerical-display-answer.correct{color:var(--color-correct);font-weight:600}.numerical-display-answer.incorrect{color:var(--color-incorrect-text);font-weight:700}.calc-steps-container{display:flex;flex-direction:column;gap:var(--space-2)}.calc-step-row{display:flex;align-items:center;gap:var(--space-2)}.calc-step-label{font-size:var(--text-sm);font-weight:600;color:var(--text-tertiary);min-width:48px;flex-shrink:0}.calc-step-input{flex:1;padding:8px 12px;font-family:inherit;font-size:1rem;color:var(--text-primary);background:var(--bg-input);border:2px solid var(--border-input);border-radius:var(--radius-sm);transition:border-color .2s,box-shadow .2s}.calc-step-input:focus{outline:none;border-color:var(--accent-blue);background:var(--bg-input-focus);box-shadow:0 0 0 3px var(--accent-blue-muted)}.calc-step-input:disabled,.calc-step-input:read-only{opacity:.7;cursor:not-allowed;background:var(--bg-surface-alt)}.calc-step-input::placeholder{color:var(--text-tertiary)}.calc-step-actions{display:flex;align-items:center;gap:var(--space-3);margin-top:2px;padding-left:56px}.calc-equals-btn{flex-shrink:0;padding:0 14px;height:38px;font-size:var(--text-sm);font-weight:600;color:var(--text-on-accent);background:var(--accent-blue);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background .2s}.calc-equals-btn:hover{background:var(--accent-blue-hover)}.calc-btn-layout{display:flex;gap:var(--space-6);margin-top:4px;position:relative}.calc-btn-left{display:flex;gap:var(--space-1)}.calc-btn-numpad{display:grid;grid-template-columns:repeat(3,40px);gap:var(--space-1)}.calc-btn-ops{display:grid;grid-template-columns:40px 40px;gap:var(--space-1)}.calc-btn-symbols{display:grid;grid-template-columns:repeat(6,36px);gap:var(--space-1);align-content:start}.calc-btn-layout button{height:38px;font-size:1rem;font-weight:600;color:var(--text-primary);background:var(--bg-input);border:1.5px solid var(--border-input);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s,border-color .15s;-webkit-user-select:none;user-select:none}.calc-btn-layout button:hover:not(:disabled){background:var(--bg-input-focus);border-color:var(--accent-blue-muted)}.calc-btn-layout button:active:not(:disabled){background:var(--accent-blue-muted)}.calc-btn-layout button:disabled{opacity:.5;cursor:not-allowed}.calc-btn-layout .calc-btn-operator{color:var(--accent-blue);font-weight:800}.calc-btn-layout .calc-btn-symbol{font-style:italic;color:var(--accent-blue)}.calc-btn-layout .calc-btn-symbol-greek{font-style:italic;color:#8b5e9b}.calc-remove-step-btn{margin-left:auto;padding:4px 12px;font-size:var(--text-sm);font-weight:500;color:var(--text-tertiary);background:transparent;border:1px dashed var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;transition:color .2s,background .2s,border-color .2s}.calc-remove-step-btn:hover:not(:disabled){color:var(--color-incorrect);background:var(--color-incorrect-bg);border-color:var(--color-incorrect-border)}.calc-remove-step-btn:disabled{opacity:.35;cursor:not-allowed}.calc-add-step-btn{padding:4px 12px;font-size:var(--text-sm);font-weight:500;color:var(--accent-blue);background:transparent;border:1px dashed var(--accent-blue-muted);border-radius:var(--radius-sm);cursor:pointer;transition:background .2s,border-color .2s}.calc-add-step-btn:hover:not(:disabled){background:var(--accent-blue-muted);border-color:var(--accent-blue)}.calc-add-step-btn:disabled{opacity:.4;cursor:not-allowed}.calc-message{font-size:var(--text-sm);padding:4px 10px;border-radius:var(--radius-sm)}.calc-message-error{color:var(--color-incorrect-text);background:var(--color-incorrect-bg);border:1px solid var(--color-incorrect-border)}.calc-help-btn{flex-shrink:0;align-self:start;padding:6px 14px;font-size:var(--text-sm);font-weight:600;color:var(--accent-blue);background:var(--accent-blue-muted);border:1px solid var(--accent-blue-subtle);border-radius:var(--radius-sm);cursor:pointer;transition:background .2s,border-color .2s}.calc-help-btn:hover{background:var(--accent-blue-subtle);border-color:var(--accent-blue)}.calc-help-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.calc-help-modal{background:var(--bg-surface);border:1.5px solid var(--border-default);border-radius:var(--radius);padding:24px 28px;max-width:520px;width:90%;box-shadow:var(--shadow-lg)}.calc-help-title{font-size:1rem;font-weight:700;color:var(--accent-blue);margin-bottom:var(--space-3)}.calc-help-list{font-size:var(--text-sm);line-height:1.6;color:var(--text-secondary);padding-left:20px;margin:0 0 18px}.calc-help-list li{margin-bottom:var(--space-3)}.calc-help-list li:last-child{margin-bottom:0}.calc-help-example{display:inline-block;font-family:Courier New,monospace;font-size:var(--text-sm);font-weight:600;color:var(--text-primary);background:var(--bg-surface-alt);padding:1px 6px;border-radius:var(--radius-xs);margin:2px 3px 2px 0}.calc-help-ok-btn{display:block;margin-left:auto;padding:6px 24px;font-size:var(--text-sm);font-weight:600;color:var(--text-on-accent);background:var(--accent-blue);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background .2s}.calc-help-ok-btn:hover{background:var(--accent-blue-hover)}.qb-tabs{display:inline-flex;gap:2px;margin-bottom:var(--space-5);background:var(--bg-surface-alt);border-radius:var(--radius-sm);padding:3px}.qb-tab{padding:9px 22px;background:none;border:none;border-radius:var(--radius-xs);font-size:var(--text-sm);font-weight:500;color:var(--text-tertiary);cursor:pointer;transition:all .2s ease;position:relative;font-family:var(--font-body)}.qb-tab:hover{color:var(--text-primary)}.qb-tab-active{background:var(--bg-surface);color:var(--text-primary);font-weight:600;box-shadow:0 1px 3px #00000014,0 1px 1px #0000000a}.ca-filter-bar{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-6);padding:16px 18px;background:var(--bg-surface);border:1px solid var(--edge-light);border-radius:var(--radius-sm)}.ca-filter-row{display:flex;gap:var(--space-3);align-items:flex-end}.ca-filter-group{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.ca-filter-topic,.ca-filter-subtopic{flex:1}.ca-filter-difficulty{width:120px;flex-shrink:0}.ca-filter-search{flex:1}.ca-filter-label{font-size:var(--text-xs);font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.ca-filter-select,.ca-filter-input{padding:9px 12px;border:1px solid var(--edge);border-radius:var(--radius-xs);background:var(--bg-input);font-size:var(--text-sm);color:var(--text-primary);font-family:var(--font-body);transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;width:100%}.ca-filter-select:focus,.ca-filter-input:focus{outline:none;border-color:var(--accent-muted);background:var(--bg-input-focus);box-shadow:0 0 0 3px #4f46e514}.ca-filter-select:disabled{opacity:.45;cursor:not-allowed;background:var(--bg-surface-alt);color:var(--text-tertiary)}.qb-result-count{font-size:var(--text-xs);font-weight:500;color:var(--text-tertiary);margin-bottom:var(--space-3);letter-spacing:.01em}.qb-prompt{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:56px 24px;color:var(--text-secondary);font-size:var(--text-md);font-weight:500}.qb-prompt:before{content:"";display:block;width:48px;height:48px;margin-bottom:var(--space-4);border-radius:50%;background:var(--bg-surface-alt);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%238b8fa3' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center}.qb-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.qb-card{position:relative;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;animation:qb-card-in .3s ease both}.qb-card-title-row{display:flex;align-items:flex-start;gap:.5rem}.qb-card-title-row h3{flex:1;min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.qb-card-type-icon{flex-shrink:0;font-size:1.1rem;line-height:1.3;opacity:.7}.qb-card>.ca-card-meta{margin-top:auto}.qb-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:.4rem}.qb-card-topic{font-size:.72rem;color:var(--text-quaternary, #999);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:70%}.qb-card-marks{font-size:.72rem;color:var(--text-quaternary, #999);white-space:nowrap;flex-shrink:0}.qb-card:hover{transform:translateY(-2px)}@keyframes qb-card-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.qb-card:nth-child(1){animation-delay:0ms}.qb-card:nth-child(2){animation-delay:30ms}.qb-card:nth-child(3){animation-delay:60ms}.qb-card:nth-child(4){animation-delay:90ms}.qb-card:nth-child(5){animation-delay:.12s}.qb-card:nth-child(6){animation-delay:.15s}.qb-card:nth-child(7){animation-delay:.18s}.qb-card:nth-child(8){animation-delay:.21s}.qb-card:nth-child(9){animation-delay:.24s}.qb-card:nth-child(10){animation-delay:.27s}.qb-card:nth-child(11){animation-delay:.3s}.qb-card:nth-child(12){animation-delay:.33s}.qb-success-message{padding:var(--space-3) var(--space-4);background:var(--color-correct-bg);color:var(--color-correct-text);border-radius:var(--radius-sm);font-size:var(--text-base);font-weight:600;margin-bottom:var(--space-3);display:flex;align-items:center;gap:var(--space-2)}.qb-bulk-toolbar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-incorrect-bg-strong);border:1px solid #fecaca;border-radius:var(--radius-sm);margin-bottom:1rem}.qb-bulk-count{font-size:var(--text-base);font-weight:600;color:var(--color-incorrect-dark)}.qb-card-selected{outline:2px solid var(--color-incorrect-accent);outline-offset:-2px}.qb-card-checkbox{position:absolute;top:var(--space-3);right:var(--space-3);width:16px;height:16px;cursor:pointer}.qb-card-creator{font-size:var(--text-xs);color:var(--text-tertiary);margin-bottom:.35rem}.qb-load-more{text-align:center;padding:24px 0}.qb-preview-overlay{position:fixed;inset:0;background:#0f111c73;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:qb-overlay-in .2s ease}@keyframes qb-overlay-in{0%{opacity:0}to{opacity:1}}.qb-preview-modal{position:relative;background:var(--bg-surface);border-radius:var(--radius);box-shadow:0 24px 48px -12px #00000026,0 0 0 1px #0000000d;max-width:800px;width:100%;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;animation:qb-modal-in .25s cubic-bezier(.16,1,.3,1)}.qb-preview-modal>.qb-preview-close{position:absolute;top:12px;right:12px;z-index:2}@keyframes qb-modal-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.qb-preview-header{flex-shrink:0;padding:20px 24px 14px;border-bottom:1px solid var(--edge-light);background:var(--bg-surface)}.qb-preview-header-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-3)}.qb-preview-title-row{display:flex;align-items:center;gap:var(--space-6);flex:1;min-width:0}.qb-preview-title{font-size:var(--text-lg);font-weight:600;line-height:1.3;min-width:0}.qb-preview-header-right{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.qb-preview-marks{font-size:var(--text-sm);font-weight:700;color:var(--text-secondary);white-space:nowrap;background:var(--bg-surface-alt);padding:4px 10px;border-radius:var(--radius-xs);font-variant-numeric:tabular-nums}.qb-preview-close{background:none;border:none;font-size:var(--text-xl);cursor:pointer;color:var(--text-tertiary);width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-xs);transition:background .15s ease,color .15s ease;line-height:1}.qb-preview-close:hover{background:var(--bg-surface-alt);color:var(--text-primary)}.qb-preview-header-meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-6)}.qb-preview-breadcrumb{font-size:var(--text-sm);color:var(--text-secondary);font-weight:500}.qb-preview-header-creator{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:8px;padding-top:8px;border-top:1px solid var(--edge-light);font-weight:500}.qb-preview-body{flex:1;overflow-y:auto;padding:24px;scroll-behavior:smooth}.qb-preview-body::-webkit-scrollbar{width:6px}.qb-preview-body::-webkit-scrollbar-track{background:transparent}.qb-preview-body::-webkit-scrollbar-thumb{background:var(--edge);border-radius:3px}.qb-preview-body::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.qp-empty{text-align:center;padding:32px 24px;color:var(--text-tertiary);font-size:var(--text-base)}.qe-part{background:var(--bg-surface);border:1px solid var(--edge-light);border-radius:var(--radius-sm);margin-bottom:var(--space-4);overflow:hidden}.qe-part-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-surface-alt);border-bottom:1px solid var(--edge-light);cursor:pointer}.qe-part-body{padding:16px}.qe-part-actions{display:flex;gap:var(--space-2)}.qe-part-actions button{padding:4px 8px;background:none;border:1px solid var(--edge);border-radius:var(--radius-xs);cursor:pointer;font-size:var(--text-sm);color:var(--text-secondary);transition:all var(--transition)}.qe-part-actions button:hover{background:var(--bg-surface-alt)}.qe-part-actions button.qe-delete:hover{background:var(--color-incorrect-bg);color:var(--color-incorrect);border-color:var(--color-incorrect-border)}.qe-options-list{display:flex;flex-direction:column;gap:var(--space-2);margin-top:8px}.qe-option-row{display:flex;align-items:center;gap:var(--space-2)}.qe-option-row input[type=text]{flex:1}.qe-mark-scheme-list{display:flex;flex-direction:column;gap:var(--space-2);margin-top:8px}.qe-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5)}.qe-header h1{margin:0}.qe-readonly-badge{font-size:var(--text-xs);font-weight:600;color:var(--color-warning);background:var(--color-warning-bg);padding:3px 10px;border-radius:var(--radius-xs)}.qe-draft-badge{font-size:var(--text-xs);font-weight:600;color:var(--color-info);background:var(--color-info-bg);padding:3px 10px;border-radius:var(--radius-xs)}.qe-form-section{margin-bottom:var(--space-8)}.qe-field{margin-bottom:var(--space-3)}.qe-field-row{display:flex;gap:var(--space-4);flex-wrap:wrap}.qe-field-row .qe-field{flex:1;min-width:180px}.qe-label{display:block;font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);margin-bottom:var(--space-2)}.qe-input,.qe-select{width:100%;padding:8px 12px;border:1px solid var(--edge);border-radius:var(--radius-xs);font-family:inherit;font-size:var(--text-base);background:var(--bg-input);color:var(--text-primary);transition:border-color var(--transition)}.qe-input:focus,.qe-select:focus{outline:none;border-color:var(--accent);background:var(--bg-input-focus)}.qe-custom-input-row{display:flex;gap:var(--space-2);align-items:center}.qe-custom-input-row .qe-input,.qe-custom-input-row .qe-select{flex:1}.qe-total-marks{font-size:var(--text-base);color:var(--text-secondary);padding:8px 0}.qe-total-marks strong{color:var(--text-primary);font-size:var(--text-lg)}.qe-parts-section{margin-bottom:var(--space-8)}.qe-part-nav{display:flex;gap:var(--space-1);flex-wrap:wrap;margin-bottom:var(--space-5);padding:4px;background:var(--bg-surface-alt);border-radius:var(--radius-sm);border:1px solid var(--edge-light)}.qe-part-tab{padding:8px 16px;border:none;background:transparent;border-radius:var(--radius-xs);font-family:inherit;font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all var(--transition);display:flex;align-items:center;gap:var(--space-2)}.qe-part-tab:hover{background:var(--bg-surface)}.qe-part-tab-active{background:var(--bg-surface);color:var(--accent);box-shadow:var(--shadow-sm)}.qe-part-tab-marks{font-size:var(--text-xs);font-weight:500;color:var(--text-tertiary)}.qe-part-tab-active .qe-part-tab-marks{color:var(--accent-muted)}.qe-part-tab-x{font-size:var(--text-sm);line-height:1;color:var(--text-tertiary);margin-left:2px;padding:0 2px;border-radius:var(--radius-xs);opacity:0;transition:all var(--transition)}.qe-part-tab:hover .qe-part-tab-x{opacity:1}.qe-part-tab-x:hover{color:var(--danger);background:var(--danger-subtle, rgba(220, 38, 38, .1))}.qe-part-tab-add{color:var(--accent);font-size:1rem;font-weight:700;padding:8px 12px}.qe-part-tab-add:hover{background:var(--accent-subtle)}.qe-part-arrows{display:flex;align-items:center;justify-content:center;gap:var(--space-4);margin-top:20px;padding-top:20px;border-top:1px solid var(--edge-light)}.qe-part-indicator{font-size:var(--text-sm);color:var(--text-secondary);font-weight:500}.qe-actions{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-top:8px;margin-bottom:var(--space-8)}.qe-add-part-bottom{width:100%;margin-top:8px}.qe-preview-section{margin-top:24px;padding:20px;background:var(--bg-surface);border:1px solid var(--edge-light);border-radius:var(--radius-sm)}.qe-preview-section h2{font-size:1rem;margin-bottom:var(--space-4);color:var(--text-secondary)}.qe-preview-container{border:1px dashed var(--edge);border-radius:var(--radius-xs);padding:16px}.qe-main-wide{max-width:1400px}.qe-split-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);align-items:start}.qe-split-editor{min-width:0}.qe-split-preview{position:sticky;top:80px;max-height:calc(100vh - 100px);overflow-y:auto;border:1px solid var(--edge-light);border-radius:var(--radius-sm);background:var(--bg-surface)}.qe-split-preview-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--edge-light);background:var(--bg-surface-alt);border-radius:var(--radius-sm) var(--radius-sm) 0 0}.qe-split-preview-title{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.qe-split-preview-marks{font-size:var(--text-sm);font-weight:600;color:var(--accent)}.qe-split-preview-body{padding:16px}.qe-split-preview-empty{display:flex;align-items:center;justify-content:center;height:120px;color:var(--text-tertiary);font-size:var(--text-sm)}@media(max-width:900px){.qe-split-layout{grid-template-columns:1fr}.qe-split-preview{position:static;max-height:none}}.qe-wizard-steps{display:flex;align-items:center;gap:0;margin-bottom:var(--space-6)}.qe-wizard-step{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:8px;font-size:var(--text-sm);font-weight:500;color:var(--text-tertiary);background:none;border:none;cursor:default;line-height:1}.qe-wizard-step-done{cursor:pointer;color:var(--accent)}.qe-wizard-step-done:hover{background:var(--accent-subtle)}.qe-wizard-step-active{color:var(--text-primary);font-weight:600}.qe-wizard-step-num{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;background:var(--edge);color:var(--text-secondary);flex-shrink:0}.qe-wizard-step-done .qe-wizard-step-num{background:var(--accent);color:#fff}.qe-wizard-step-active .qe-wizard-step-num{background:var(--text-primary);color:#fff}.qe-wizard-divider{flex:0 0 32px;height:1px;background:var(--edge);margin:0 var(--space-1)}.qe-step1-grid{display:grid;gap:var(--space-6)}.qe-step1-section{border-top:1px solid var(--edge);padding-top:var(--space-5)}.qe-step1-section-title{font-size:var(--text-sm);font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-4)}.qe-classifications-row{display:flex;align-items:flex-start;justify-content:center;flex-wrap:nowrap;gap:0}.qe-classifications-row .qe-field{flex:0 0 auto;padding:0 var(--space-4)}@media(max-width:768px){.qe-classifications-row{flex-wrap:wrap;justify-content:flex-start}.qe-classifications-row .qe-field{padding:var(--space-2) var(--space-4)}}.qe-classifications-row .qe-field+.qe-field{border-left:1px solid var(--edge)}.qe-classifications-row .qe-pill-row{margin-top:var(--space-2)}.qe-step1-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--edge)}.qe-pill-row{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-2)}.qe-pill{padding:6px 16px;border-radius:20px;border:1.5px solid var(--edge);background:var(--bg-surface);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;font-weight:500;transition:border-color .12s,color .12s,background .12s;line-height:1.4}.qe-pill:hover{border-color:var(--accent-muted);color:var(--accent)}.qe-pill-active{background:var(--accent);border-color:var(--accent);color:#fff}.qe-pill-active:hover{color:#fff}.qe-category-cards{display:flex;gap:var(--space-3)}.qe-category-card{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-4);border:2px solid var(--edge);border-radius:var(--radius-lg);background:var(--surface);cursor:pointer;text-align:left;width:220px;transition:border-color .15s,background .15s}.qe-category-card:hover{border-color:var(--accent-muted)}.qe-category-card strong{font-size:var(--text-base);color:var(--text-primary)}.qe-category-card span{font-size:var(--text-sm);color:var(--text-secondary)}.qe-category-card--active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.qe-category-card--active strong{color:var(--accent)}.ca-badge-exam-cat{background:var(--surface-hover);color:var(--text-secondary)}.qe-header-meta{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-1)}.qe-header-breadcrumb{font-size:var(--text-sm);color:var(--text-secondary)}.qe-header-tags{display:flex;gap:var(--space-2)}.qe-tag{display:inline-block;padding:2px 10px;border-radius:12px;background:var(--accent-subtle);color:var(--accent);font-size:.72rem;font-weight:600;text-transform:capitalize}.qe-tags-editor{display:flex;flex-direction:column;gap:.5rem}.qe-tags-list{display:flex;flex-wrap:wrap;gap:.35rem}.qe-tag-removable{display:inline-flex;align-items:center;gap:.3rem;padding:3px 8px 3px 10px}.qe-tag-remove{background:none;border:none;color:var(--accent);cursor:pointer;font-size:.85rem;line-height:1;padding:0 2px;opacity:.6}.qe-tag-remove:hover{opacity:1}.qe-tags-input-row{display:flex}.qe-tags-input{flex:1;font-size:.82rem}.qpe-image-tags{display:flex;flex-direction:column;gap:.25rem;margin-top:.25rem}.qpe-image-tags-list{display:flex;flex-wrap:wrap;gap:.2rem}.qpe-image-tag{display:inline-flex;align-items:center;gap:.2rem;padding:1px 7px;border-radius:8px;background:var(--surface-2);color:var(--text-secondary);font-size:.68rem;font-weight:500}.qpe-image-tag-x{background:none;border:none;color:var(--text-tertiary);cursor:pointer;font-size:.75rem;padding:0 1px;line-height:1}.qpe-image-tag-x:hover{color:var(--danger)}.qpe-image-tag-input{font-size:.75rem!important;padding:3px 6px!important;height:auto!important}.qpe-section-tables{margin-top:.25rem}.qpe-data-table-block{margin-bottom:.75rem;border:1px solid var(--edge-light);border-radius:6px;padding:.5rem}.qpe-data-table-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.qpe-data-table-wrap{overflow-x:auto}.qpe-data-table{border-collapse:collapse;width:100%}.qpe-data-table th,.qpe-data-table td{border:1px solid var(--edge-light);padding:0;vertical-align:middle;position:relative}.qpe-data-table th{background:var(--bg-secondary)}.qpe-data-table-input{width:100%;border:none;background:transparent;font-size:var(--text-sm);font-family:inherit;color:var(--text-primary);padding:.3rem .4rem;outline:none;box-sizing:border-box}.qpe-data-table-input:focus{background:var(--bg-primary);box-shadow:inset 0 0 0 2px var(--accent)}.qpe-data-table-header-input{font-weight:600;text-align:center}.qpe-data-table-col-remove{position:absolute;top:-1px;right:1px;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.75rem;line-height:1;padding:0 2px;opacity:0}.qpe-data-table th:hover .qpe-data-table-col-remove{opacity:1}.qpe-data-table-col-remove:hover{color:var(--danger)}.qpe-data-table-add-col{border:none!important;background:none!important;width:30px;text-align:center}.qpe-data-table-row-actions{border:none!important;width:24px;text-align:center}.qpe-data-table-row-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.85rem;padding:0;opacity:0}.qpe-data-table tr:hover .qpe-data-table-row-remove{opacity:1}.qpe-data-table-row-remove:hover{color:var(--danger)}.qe-math-modal-backdrop{position:fixed;inset:0;background:#00000073;z-index:400}.qe-math-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:12px;box-shadow:var(--shadow-lg);z-index:401;width:min(560px,95vw);padding:var(--space-6);max-height:90vh;overflow-y:auto}.qe-math-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.qe-math-modal-header h3{margin:0;font-size:var(--text-lg)}.qe-math-modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-tertiary);line-height:1;padding:2px 6px;border-radius:4px}.qe-math-modal-close:hover{background:var(--bg-surface-alt)}.qe-math-templates-label,.qe-math-input-label,.qe-math-preview-label{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);margin-bottom:var(--space-2);display:block}.qe-math-templates{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-5)}.qe-math-symbols{display:grid;grid-template-columns:repeat(9,1fr);gap:var(--space-2);margin-bottom:var(--space-5)}.qe-math-symbols .qe-math-template-btn{text-align:center;padding:5px 4px}.qe-math-template-btn{padding:5px 10px;border-radius:6px;border:1.5px solid var(--edge);background:var(--bg-surface);font-family:monospace;font-size:.85rem;cursor:pointer;transition:background .1s,border-color .1s;color:var(--text-primary)}.qe-math-template-btn:hover{background:var(--accent-subtle);border-color:var(--accent-muted)}.qe-math-input{width:100%;padding:8px 12px;border-radius:6px;border:1.5px solid var(--edge);font-family:monospace;font-size:var(--text-base);margin-bottom:var(--space-4);background:var(--bg-input);color:var(--text-primary);box-sizing:border-box}.qe-math-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}.qe-math-preview{min-height:52px;padding:var(--space-3) var(--space-4);border-radius:8px;background:var(--accent-subtle);display:flex;align-items:center;justify-content:center;font-size:1.25rem;margin-bottom:var(--space-4);border:1px solid var(--edge-light)}.qe-math-preview-dots{color:var(--text-tertiary);font-size:var(--text-sm);font-style:italic}.qe-math-error{color:#dc2626;font-size:var(--text-sm);margin-bottom:var(--space-3);padding:var(--space-2) var(--space-3);background:#fef2f2;border-radius:6px;border:1px solid #fca5a5}.qe-math-modal-actions{display:flex;gap:var(--space-3);justify-content:flex-end}.qpe-text-label-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2)}.qpe-text-label-row .qpe-label{margin-bottom:0}.qpe-text-preview{margin-top:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:6px;background:var(--accent-subtle);font-size:var(--text-base);min-height:36px;border:1px solid var(--edge-light);line-height:1.6}.qpe-diagram-strip{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-3)}.qpe-diagram-strip-item{display:flex;flex-direction:column;gap:var(--space-1);width:140px;background:var(--bg-surface);border-radius:8px;padding:var(--space-2);border:1px solid var(--edge);position:relative}.qpe-diagram-strip-thumb{width:100%;height:80px;object-fit:contain;border-radius:4px;background:#fff;border:1px solid var(--edge-light)}.qpe-diagram-strip-name{font-size:.68rem;color:var(--text-tertiary);word-break:break-all;line-height:1.3;max-height:2.6em;overflow:hidden}.qpe-diagram-strip-item .qpe-input{font-size:.75rem;padding:4px 8px}.qpe-diagram-strip-actions{position:absolute;top:4px;right:4px;display:flex;gap:2px}.qpe-diagram-strip-move,.qpe-diagram-strip-remove{background:#0000008c;color:#fff;border:none;border-radius:50%;width:18px;height:18px;font-size:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;line-height:1;padding:0}.qpe-diagram-strip-move:disabled{opacity:.3;cursor:default}.qpe-diagram-strip-move:not(:disabled):hover{background:#000000bf}.qpe-diagram-strip-remove:hover{background:#dc2626}.qpe-diagram-crop-btn{margin-top:2px}.qpe-diagram-add-row{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.icm-backdrop{position:fixed;inset:0;background:#0009;z-index:600;display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.icm-modal{background:var(--surface-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-width:900px;max-height:90vh;width:100%;display:flex;flex-direction:column;overflow:hidden}.icm-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--edge-light)}.icm-header h3{margin:0;font-size:var(--text-lg);font-weight:700;color:var(--text-primary)}.icm-close{background:none;border:none;font-size:1.5rem;color:var(--text-tertiary);cursor:pointer;padding:0 4px;line-height:1}.icm-close:hover{color:var(--text-primary)}.icm-body{flex:1;overflow:auto;padding:20px;display:flex;justify-content:center;background:var(--surface-secondary)}.icm-img-wrapper{position:relative;display:inline-block;cursor:crosshair;user-select:none;-webkit-user-select:none}.icm-img{display:block;max-width:100%;max-height:65vh;pointer-events:none}.icm-overlay{position:absolute;background:#00000073;pointer-events:none}.icm-crop-rect{position:absolute;border:2px solid #fff;box-shadow:0 0 0 1px #0000004d,inset 0 0 0 1px #00000026;cursor:move}.icm-grid-h,.icm-grid-v{position:absolute;pointer-events:none}.icm-grid-h{left:0;right:0;height:1px;background:#ffffff40}.icm-grid-v{top:0;bottom:0;width:1px;background:#ffffff40}.icm-handle{position:absolute;width:10px;height:10px;background:#fff;border:1px solid rgba(0,0,0,.4);border-radius:2px;z-index:2}.icm-size-label{position:absolute;transform:translate(-50%);background:#000000b3;color:#fff;font-size:.7rem;padding:2px 8px;border-radius:4px;white-space:nowrap;pointer-events:none}.icm-footer{display:flex;justify-content:flex-end;gap:var(--space-3);padding:16px 20px;border-top:1px solid var(--edge-light)}.qpe-sae-markscheme{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--edge)}.qe-classifications-toggle{display:flex;align-items:center;gap:0;width:100%;background:var(--bg-muted);border:1px solid var(--edge-light);border-radius:var(--radius-sm);padding:8px 12px;font-size:var(--text-sm);font-weight:600;color:var(--text-primary);cursor:pointer;font-family:inherit;text-align:left}.qe-classifications-toggle:hover{background:var(--bg-hover)}.qe-classifications-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-3);margin-top:12px}.qe-two-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}@media(max-width:600px){.qe-two-col{grid-template-columns:1fr}.qe-classifications-grid{grid-template-columns:1fr 1fr}}.qe-publish-overlay{position:fixed;inset:0;z-index:1000;background:#00000073;display:flex;align-items:center;justify-content:center;padding:24px}.qe-publish-modal{background:var(--bg-surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;max-width:480px;overflow:hidden}.qe-publish-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--edge-light)}.qe-publish-header h2{font-size:var(--text-lg);margin:0}.qe-publish-close{background:none;border:none;font-size:var(--text-2xl);color:var(--text-tertiary);cursor:pointer;padding:0 4px;line-height:1}.qe-publish-close:hover{color:var(--text-primary)}.qe-publish-body{padding:20px}.qe-publish-hint{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-4)}.qe-publish-field{margin-bottom:var(--space-4)}.qe-publish-footer{display:flex;justify-content:flex-end;gap:var(--space-3);padding:16px 20px;border-top:1px solid var(--edge-light);background:var(--bg-surface-alt)}.qpe-part{background:var(--accent-subtle);border:1px solid var(--edge-light);border-left:3px solid var(--accent-muted);border-radius:var(--radius-sm);padding:24px}.qpe-part-title-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3);padding-bottom:10px;border-bottom:1px solid var(--edge-light)}.qpe-part-title{font-size:var(--text-md);font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.03em}.qpe-type-marks-bar{display:flex;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-4);padding-bottom:14px;border-bottom:1px solid var(--edge-light)}.qpe-type-marks-bar>.qpe-field{margin-bottom:0}.qpe-field{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-4)}.qpe-section{background:var(--bg-surface);border:1px solid var(--edge-light);border-radius:var(--radius-sm);margin-bottom:var(--space-5);overflow:hidden}.qpe-section:last-child{margin-bottom:0}.qpe-section-title{margin:0;padding:10px 16px;font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);background:var(--bg-surface-alt);border-bottom:1px solid var(--edge-light)}.qpe-section-markscheme .qpe-section-title{color:var(--color-correct);background:var(--color-correct-bg);border-bottom-color:var(--color-correct-border)}.qpe-section-content{padding:16px}.qpe-field-row{display:flex;gap:var(--space-4);align-items:flex-start;flex-wrap:wrap;margin-bottom:var(--space-4)}.qpe-field-row>.qpe-field{margin-bottom:0}.qpe-field-row .qpe-field-type,.qpe-field-row .qpe-field-marks{flex:0 0 auto}.qpe-option-row{display:flex;align-items:center;gap:var(--space-2);padding:8px 10px;border-radius:var(--radius-xs);border:1px solid transparent;margin-bottom:var(--space-1)}.qpe-option-row .qpe-input{flex:1}.qpe-drag-handle{display:flex;align-items:center;cursor:grab;color:var(--text-tertiary);padding:4px 4px 4px 0;touch-action:none}.qpe-drag-handle:active{cursor:grabbing}.qpe-diagram-row{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}.qpe-diagram-row .qpe-input{flex:1}.qpe-diagram-label-input{font-size:var(--text-sm)}.qpe-option-correct{background:var(--color-correct-bg);border-color:var(--color-correct-border)}.qpe-equation-row{display:flex;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-2)}.qpe-equation-edit{flex:1;display:flex;flex-direction:column;gap:var(--space-1)}.qpe-equation-preview{padding:6px 10px;background:var(--bg-surface);border:1px solid var(--edge-light);border-radius:var(--radius-xs);font-size:var(--text-md);min-height:28px}.qpe-equation-input-row{display:flex;gap:var(--space-2);align-items:center}.qpe-equation-input-row .qpe-input{flex:1}.qpe-equation-bank{background:var(--bg-surface);border:1px solid var(--edge-light);border-radius:var(--radius-sm);padding:12px;margin-top:8px;margin-bottom:var(--space-2);max-height:320px;overflow-y:auto}.qpe-equation-bank-group{margin-bottom:var(--space-3)}.qpe-equation-bank-group:last-child{margin-bottom:0}.qpe-equation-bank-group-title{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);margin-bottom:var(--space-2)}.qpe-equation-bank-items{display:flex;flex-wrap:wrap;gap:var(--space-2)}.qpe-equation-bank-item{background:var(--bg-surface-alt);border:1px solid var(--edge-light);border-radius:var(--radius-xs);padding:6px 12px;cursor:pointer;font-family:inherit;font-size:var(--text-base);transition:all var(--transition)}.qpe-equation-bank-item:hover{background:var(--accent-subtle);border-color:var(--accent-muted)}.qpe-marks-auto{display:inline-flex;align-items:center;justify-content:center;min-width:32px;padding:8px 12px;background:var(--bg-surface-alt);border:1px solid var(--edge-light);border-radius:var(--radius-xs);font-size:var(--text-base);font-weight:600;color:var(--text-secondary);box-sizing:border-box}.qpe-gap-info{font-size:var(--text-sm);color:var(--text-tertiary);margin-top:.25rem}.qpe-wordbank-preview{margin-top:.75rem;padding:.75rem;background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--edge-light)}.qpe-wordbank-label{font-weight:600;font-size:var(--text-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em}.qpe-wordbank-words{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:.4rem}.qpe-wordbank-word{display:inline-block;padding:.2rem .65rem;background:var(--bg-primary);border:1px solid var(--edge-light);border-radius:2rem;font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.qpe-matchup-pairs{display:flex;flex-direction:column;gap:var(--space-2)}.qpe-matchup-pair-header{display:grid;grid-template-columns:1fr auto 1fr auto;gap:var(--space-2);padding:0 .25rem;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary)}.qpe-matchup-pair-row{display:grid;grid-template-columns:1fr auto 1fr auto;gap:var(--space-2);align-items:center}.qpe-matchup-link{color:var(--text-tertiary);font-size:var(--text-lg);flex-shrink:0;width:1.5rem;text-align:center}.qpe-matchup-dummy-divider{margin-top:.5rem;padding-top:.5rem;border-top:1px dashed var(--edge-light);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary)}.qpe-matchup-dummy-cell{display:flex;gap:var(--space-2);align-items:center}.qpe-matchup-dummy-cell .qpe-input{flex:1}.qpe-matchup-empty{display:block}.qpe-matchup-buttons{display:flex;gap:var(--space-2);margin-top:.75rem}.qpe-tickbox-table-wrap{overflow-x:auto}.qpe-tickbox-table{border-collapse:collapse;width:100%}.qpe-tickbox-table th,.qpe-tickbox-table td{border:1px solid var(--edge-light);padding:.35rem .5rem;vertical-align:middle}.qpe-tickbox-th-label{width:40%;min-width:120px}.qpe-tickbox-th{text-align:center;position:relative;min-width:80px}.qpe-tickbox-header-input{width:100%;border:none;background:transparent;text-align:center;font-weight:600;font-size:var(--text-sm);font-family:inherit;color:var(--text-primary);padding:.2rem 0;outline:none}.qpe-tickbox-header-input::placeholder{color:var(--text-tertiary);font-weight:400}.qpe-tickbox-header-input:focus{box-shadow:inset 0 -2px 0 var(--accent)}.qpe-tickbox-remove-col{position:absolute;top:1px;right:1px;border:none;background:none;color:var(--text-tertiary);font-size:var(--text-sm);cursor:pointer;padding:0 3px;line-height:1;opacity:0;transition:all var(--transition)}.qpe-tickbox-th:hover .qpe-tickbox-remove-col{opacity:1}.qpe-tickbox-remove-col:hover{color:var(--danger)}.qpe-tickbox-td-label{position:relative}.qpe-tickbox-label-input{width:100%;border:none;background:transparent;font-size:var(--text-sm);font-family:inherit;color:var(--text-primary);padding:.2rem 0;outline:none}.qpe-tickbox-label-input::placeholder{color:var(--text-tertiary)}.qpe-tickbox-label-input:focus{box-shadow:inset 0 -2px 0 var(--accent)}.qpe-tickbox-remove-row{position:absolute;top:50%;right:2px;transform:translateY(-50%);border:none;background:none;color:var(--text-tertiary);font-size:var(--text-sm);cursor:pointer;padding:0 3px;line-height:1;opacity:0;transition:all var(--transition)}.qpe-tickbox-td-label:hover .qpe-tickbox-remove-row{opacity:1}.qpe-tickbox-remove-row:hover{color:var(--danger)}.qpe-tickbox-td-cell{text-align:center}.qpe-tickbox-check{width:1.1rem;height:1.1rem;cursor:pointer;accent-color:var(--accent)}.qpe-tickbox-th-add{border:none!important;padding-left:.5rem;vertical-align:middle}.qpe-tickbox-add-row{margin-top:.5rem}.qpe-tf-td{vertical-align:top;padding:.25rem .35rem!important}.qpe-tf-td-blank{background:var(--accent-subtle, rgba(59, 130, 246, .06))}.qpe-tf-cell{display:flex;align-items:center;gap:var(--space-1)}.qpe-tf-cell-input{flex:1;border:none;background:transparent;font-size:var(--text-sm);font-family:inherit;color:var(--text-primary);padding:.25rem 0;outline:none;min-width:60px}.qpe-tf-cell-input::placeholder{color:var(--text-tertiary)}.qpe-tf-cell-input:focus{box-shadow:inset 0 -2px 0 var(--accent)}.qpe-tf-blank-toggle{border:1px solid var(--edge-light);background:var(--bg-secondary);color:var(--text-tertiary);font-size:.65rem;font-family:inherit;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:.15rem .4rem;border-radius:var(--radius-xs);cursor:pointer;white-space:nowrap;transition:all var(--transition);flex-shrink:0}.qpe-tf-blank-toggle:hover{border-color:var(--accent);color:var(--accent)}.qpe-tf-blank-active{background:var(--accent);color:var(--text-on-accent);border-color:var(--accent)}.qpe-tf-blank-active:hover{background:var(--accent-hover, var(--accent));color:var(--text-on-accent)}.qpe-tf-blank-label{font-size:var(--text-xs);color:var(--accent);margin-top:.1rem}.ca-filter-checkbox{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;padding:0 4px}.ca-filter-checkbox input[type=checkbox]{accent-color:var(--accent)}.qt-header{margin-bottom:var(--space-5)}.qt-question-info{display:flex;align-items:center;gap:var(--space-3);margin-top:.5rem}.qt-question-title{font-weight:600;color:var(--text-primary);font-size:var(--text-md)}.qt-question-marks{background:var(--bg-surface-alt);padding:2px 10px;border-radius:var(--radius-xs);font-size:var(--text-sm);color:var(--text-secondary)}.qt-question-area{background:var(--bg-surface);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow-sm);margin-bottom:var(--space-5)}.qt-actions{display:flex;gap:var(--space-3);margin-bottom:var(--space-6)}.qt-results{margin-top:.5rem}.qt-results h2{font-size:var(--text-lg);margin-bottom:var(--space-4)}.qt-part-result{background:var(--bg-surface);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:var(--space-3);box-shadow:var(--shadow-sm)}.qt-part-result-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.qt-part-label{font-weight:600;font-size:var(--text-md)}.qt-selfassess-badge{font-size:var(--text-sm);font-weight:600;color:var(--color-partial);background:var(--color-partial-bg);padding:2px 8px;border-radius:var(--radius-xs)}.qt-manual-notice{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-2);font-style:italic}.qt-manual-note{font-size:var(--text-sm);color:var(--text-secondary);margin-top:.5rem}.ca-student-page{min-height:100vh;background:var(--bg-body)}.ca-student-header{background:var(--bg-surface);border-bottom:1px solid var(--edge-light);padding:12px clamp(16px,3vw,32px);box-shadow:var(--shadow-sm)}.ca-student-header-inner{max-width:900px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}.ca-student-main{max-width:900px;margin:0 auto;padding:24px clamp(16px,3vw,32px)}.ca-entry-card{background:var(--bg-surface);border:1px solid var(--edge-light);border-radius:var(--radius);padding:40px;max-width:480px;margin:60px auto;box-shadow:var(--shadow-lg);text-align:center}.ca-entry-card h1{margin-bottom:var(--space-2)}.ca-entry-card .ca-subtitle{color:var(--text-secondary);margin-bottom:var(--space-6)}.ca-entry-card .ca-form-group{text-align:left}.ca-question-nav{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-5);padding:12px;background:var(--bg-surface);border:1px solid var(--edge-light);border-radius:var(--radius-sm)}.ca-question-nav-btn{width:40px;height:40px;border-radius:50%;border:2px solid var(--edge);background:var(--bg-surface);font-family:inherit;font-weight:600;font-size:var(--text-base);cursor:pointer;transition:all var(--transition);color:var(--text-secondary)}.ca-question-nav-btn:hover{border-color:var(--accent);color:var(--accent)}.ca-question-nav-btn.active{background:var(--accent);color:var(--text-on-accent);border-color:var(--accent)}.ca-question-nav-btn.answered{background:var(--color-correct-bg);border-color:var(--color-correct);color:var(--color-correct)}.ca-question-nav-btn.partial{background:var(--color-info-bg);border-color:var(--color-info);color:var(--color-info)}.ca-nav-buttons{display:flex;justify-content:space-between;margin-top:24px;gap:var(--space-3)}.ca-draft-indicator{font-size:var(--text-xs);color:var(--text-tertiary);display:flex;align-items:center;gap:var(--space-2)}.ca-draft-indicator.saving{color:var(--accent)}.ca-draft-indicator.error{color:var(--color-incorrect)}.ca-draft-indicator.saved{color:var(--color-correct)}.ca-submit-warning{text-align:center;padding:8px 0}.ca-submit-warning .ca-warning-count{font-size:2rem;font-weight:700;color:var(--color-warning);margin:12px 0}.ca-submit-warning .ca-warning-text{color:var(--text-secondary);margin-bottom:var(--space-5)}.ca-review-teacher-header{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:var(--space-6);gap:var(--space-3)}.ca-review-teacher-nav{display:flex;align-items:center;gap:var(--space-4);width:100%;justify-content:center}.ca-review-teacher-nav-btn{min-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.82rem!important}.ca-review-teacher-nav-btn:disabled{opacity:0;pointer-events:none}.ca-review-teacher-name{flex:1;min-width:0;text-align:center}.ca-review-teacher-name h1{font-size:1.6rem;margin-bottom:2px}.ca-review-teacher-subtitle{font-size:.88rem;color:var(--text-secondary)}.ca-review-score-hero{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);margin-top:4px}.ca-review-score-hero-value{font-size:var(--text-4xl);font-weight:800;line-height:1.1}.ca-review-score-hero .ca-review-score-value{color:var(--accent)}.ca-review-score-hero .ca-review-score-divider{color:var(--text-tertiary);margin:0 4px}.ca-review-score-hero .ca-review-score-max{color:var(--text-secondary)}.ca-review-score-hero .ca-score-full .ca-review-score-value{color:var(--color-correct)}.ca-review-score-hero .ca-score-partial .ca-review-score-value{color:var(--color-partial)}.ca-review-score-hero .ca-score-zero .ca-review-score-value{color:var(--color-incorrect)}.ca-review-score-hero-pct{font-size:1.15rem;color:var(--text-secondary);font-weight:500}.ca-review-teacher-status-row{display:flex;align-items:center;gap:var(--space-3);margin-top:4px}.ca-review-q-card{border-radius:var(--radius);padding:20px 24px;margin-bottom:var(--space-5);border:1px solid var(--edge-light)}.ca-review-q-even{background:var(--bg-surface)}.ca-review-q-odd{background:var(--bg-surface-alt)}.ca-review-q-card-header{display:flex;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-4);padding-bottom:10px;border-bottom:1px solid var(--edge-light)}.ca-review-q-card-num{font-weight:700;font-size:1rem;color:var(--accent);flex-shrink:0}.ca-review-q-card-title{font-weight:600;font-size:1rem;color:var(--text-primary)}.ca-review-teacher-part{padding:16px 0;border-bottom:1px solid var(--edge-light)}.ca-review-teacher-part:last-child{border-bottom:none;padding-bottom:0}.ca-review-teacher-part.ca-flagged{background:var(--color-warning-bg);border-radius:var(--radius-xs);padding:16px;margin:8px -8px}.ca-ms-ribbon{border-left:4px solid var(--color-partial);background:var(--color-warning-bg);border-radius:0 var(--radius-xs) var(--radius-xs) 0;padding:10px 14px;margin-top:12px;margin-bottom:var(--space-6);font-size:var(--text-sm);line-height:1.55}.ca-ms-ribbon-title{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-warning-text);margin-bottom:var(--space-1)}.ca-ms-ribbon-list{list-style:none;padding:0;margin:0}.ca-ms-ribbon-list li{margin-bottom:3px}.ca-ms-ribbon-marks{font-weight:700;color:var(--color-partial-text);margin-right:6px}.ca-mark-result{margin-top:12px;padding:14px 16px;border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--bg-secondary)}.ca-mark-result.ca-score-full{border-color:var(--color-correct-border);background:var(--color-correct-bg)}.ca-mark-result.ca-score-partial{border-color:var(--color-partial-border);background:var(--color-partial-bg)}.ca-mark-result.ca-score-zero{border-color:var(--color-incorrect-border);background:var(--color-incorrect-bg)}.ca-mark-result-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.ca-mark-result-score{display:flex;align-items:baseline;gap:2px}.ca-mark-result-score-value{font-size:1.7rem;font-weight:800;line-height:1}.ca-score-full .ca-mark-result-score-value{color:var(--color-correct)}.ca-score-partial .ca-mark-result-score-value{color:var(--color-partial)}.ca-score-zero .ca-mark-result-score-value{color:var(--color-incorrect)}.ca-mark-result-score-divider{font-size:1.2rem;font-weight:400;color:var(--text-tertiary);margin:0 1px}.ca-mark-result-score-max{font-size:var(--text-lg);font-weight:600;color:var(--text-secondary)}.ca-mark-result-badges{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.ca-mark-confidence{margin-top:10px}.ca-mark-confidence-compact{margin-top:8px}.ca-mark-confidence-label{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-1)}.ca-mark-confidence-label strong{color:var(--text-primary)}.ca-mark-confidence-track{height:6px;border-radius:3px;background:#00000014;overflow:hidden}.ca-mark-confidence-fill{height:100%;border-radius:3px;background:#6366f1;transition:width .4s ease}.ca-mark-confidence-high .ca-mark-confidence-fill{background:var(--color-correct)}.ca-mark-confidence-low .ca-mark-confidence-fill{background:var(--color-incorrect-accent)}.ca-mark-confidence-low .ca-mark-confidence-label{color:var(--color-incorrect-dark)}.ca-mark-confidence-low .ca-mark-confidence-label strong{color:var(--color-incorrect)}.ca-badge-override{background:var(--color-warning-bg);color:var(--color-warning-text);font-size:var(--text-xs);padding:2px 8px;border-radius:999px;font-weight:600}.ca-badge-flagged{background:#ede9fe;color:#5b21b6;font-size:var(--text-xs);padding:2px 8px;border-radius:999px;font-weight:600}.ca-badge-marking-method{color:var(--text-on-accent);font-size:var(--text-xs);padding:2px 8px;border-radius:999px;font-weight:600}.ca-review-ai-feedback{background:#f5f3ff;border:1px solid #ddd6fe;border-radius:var(--radius-xs);padding:12px;margin-top:10px;font-size:var(--text-sm)}.ca-review-ai-feedback-title{color:#5b21b6;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin-bottom:var(--space-1)}.ca-review-ai-feedback p{color:var(--text-secondary);line-height:1.5;margin:0}.ca-override-panel{margin-top:10px;padding:10px 12px;background:var(--bg-surface-alt);border-radius:var(--radius-xs);border:1px solid var(--edge-light)}.ca-override-panel.ca-override-active{border-color:var(--color-warning);background:var(--color-warning-bg)}.ca-override-toggle{font-size:var(--text-sm);color:var(--accent);cursor:pointer;background:none;border:none;font-weight:500;font-family:inherit}.ca-override-form{display:flex;flex-direction:column;gap:var(--space-3);margin-top:8px}.ca-override-form input[type=number]{max-width:100px}.ca-override-form textarea{min-height:60px}.csv-dropzone{border:2px dashed var(--edge);border-radius:var(--radius);padding:40px 24px;text-align:center;cursor:pointer;transition:all var(--transition);color:var(--text-tertiary)}.csv-dropzone:hover,.csv-dropzone-active{border-color:var(--accent);background:var(--accent-subtle);color:var(--accent)}.csv-preview{margin-top:16px}.csv-preview h4{margin-bottom:var(--space-2)}.csv-preview ul{list-style:none;padding:0;max-height:200px;overflow-y:auto}.csv-preview li{padding:4px 0;font-size:var(--text-sm);border-bottom:1px solid var(--edge-light)}.csv-error{color:var(--color-incorrect);font-size:var(--text-sm);margin-top:8px}.ca-csv-section{margin-bottom:var(--space-4);padding:16px;background:var(--bg-surface);border:1px solid var(--edge-light);border-radius:var(--radius-sm)}.csv-preview-actions{display:flex;gap:var(--space-2);margin-top:12px}.bulk-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-4);margin-bottom:var(--space-3)}.bulk-preview-class h4{font-size:var(--text-md);font-weight:600;margin-bottom:var(--space-2)}.bulk-preview-count{font-weight:400;color:var(--text-tertiary);font-size:var(--text-sm)}.ca-assignment-questions{margin-top:16px}.ca-assignment-question-item{display:flex;align-items:center;gap:var(--space-3);padding:12px 16px;background:var(--bg-surface);border:1px solid var(--edge-light);border-radius:var(--radius-xs);margin-bottom:var(--space-2)}.ca-assignment-question-item .ca-q-number{font-weight:700;color:var(--accent);width:28px;text-align:center}.ca-assignment-question-item .ca-q-info{flex:1}.ca-assignment-question-item .ca-q-title{font-weight:600}.ca-assignment-question-item .ca-q-meta{font-size:var(--text-sm);color:var(--text-tertiary)}.ca-assignment-question-item .ca-q-actions{display:flex;gap:var(--space-1)}.ca-success-card{background:var(--bg-surface);border:1px solid var(--edge-light);border-radius:var(--radius);padding:32px;text-align:center;margin-top:24px;max-width:420px;margin-left:auto;margin-right:auto}.ca-success-card h2{color:var(--color-correct);margin-bottom:var(--space-2)}.ca-subtitle{color:var(--text-secondary);font-size:var(--text-base)}.ca-class-actions{display:flex;gap:var(--space-2)}.ca-flag-indicator{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px 8px;background:var(--color-warning-bg);border-radius:999px;font-size:var(--text-xs);color:var(--color-warning-text);font-weight:600}.ca-percentage-high{color:var(--color-correct)}.ca-percentage-mid{color:var(--color-partial)}.ca-percentage-low{color:var(--color-incorrect)}.ca-type-toggle{display:flex;border:1px solid var(--edge);border-radius:var(--radius-sm);overflow:hidden}.ca-type-toggle button{flex:1;padding:10px 20px;border:none;background:var(--bg-surface);cursor:pointer;font-family:inherit;font-weight:600;font-size:var(--text-sm);transition:all var(--transition);color:var(--text-secondary)}.ca-type-toggle button.active{background:var(--accent);color:var(--text-on-accent)}.ca-type-toggle button:not(.active):hover{background:var(--bg-surface-alt)}.ca-card-type-btn{display:inline-flex;align-items:center;padding:5px 14px;border:1px solid var(--edge);border-radius:var(--radius-sm);background:var(--bg-surface);font-family:inherit;font-weight:600;font-size:var(--text-sm);color:var(--text-secondary);text-transform:capitalize}.ca-picker-source{display:flex;gap:0;border:1px solid var(--edge);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:var(--space-4)}.ca-type-toggle-btn{flex:1;padding:10px 20px;border:none;background:var(--bg-surface);cursor:pointer;font-family:inherit;font-weight:600;font-size:var(--text-sm);transition:all var(--transition);color:var(--text-secondary);text-align:center}.ca-type-toggle-btn.active{background:var(--accent);color:var(--text-on-accent)}.ca-type-toggle-btn:not(.active):hover{background:var(--bg-surface-alt)}.ca-picker-top-actions{display:flex;gap:var(--space-2);margin-bottom:var(--space-4)}.ca-picker-filters{margin-bottom:var(--space-3)}.ca-picker-filter-row{display:flex;gap:var(--space-2);margin-bottom:var(--space-2);flex-wrap:wrap}.ca-picker-select{flex:1;min-width:140px;padding:8px 10px;border:1px solid var(--edge);border-radius:var(--radius-sm);font-family:inherit;font-size:var(--text-sm);background:var(--bg-input);color:var(--text-primary)}.ca-picker-select:disabled{opacity:.5;cursor:not-allowed}.ca-picker-search{flex:1;min-width:120px;padding:8px 10px;border:1px solid var(--edge);border-radius:var(--radius-sm);font-family:inherit;font-size:var(--text-sm);background:var(--bg-input);color:var(--text-primary)}.ca-picker-modal{height:80vh;display:flex;flex-direction:column}.ca-picker-modal .modal-body{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.ca-picker-modal .modal-body>.ca-empty,.ca-picker-modal .modal-body>.spinner-wrap{flex:1;display:flex;align-items:center;justify-content:center}.ca-picker-list{flex:1;overflow-y:auto;border:1px solid var(--edge-light);border-radius:var(--radius-sm);min-height:0}.ca-picker-item{display:flex;align-items:center;gap:var(--space-3);padding:10px 14px;cursor:pointer;border-bottom:1px solid var(--edge-light);transition:background var(--transition)}.ca-picker-item:last-child{border-bottom:none}.ca-picker-item:hover{background:var(--bg-surface-alt)}.ca-picker-item-selected{background:var(--accent-subtle)}.ca-picker-item-added{opacity:.5}.ca-picker-item-info{flex:1;min-width:0}.ca-picker-item-title{display:block;font-weight:500;font-size:var(--text-base);margin-bottom:2px}.ca-picker-item-title-clickable{cursor:pointer;color:var(--accent)}.ca-picker-item-title-clickable:hover{text-decoration:underline}.ca-picker-preview-modal{max-width:700px;max-height:85vh;display:flex;flex-direction:column}.ca-picker-preview-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);position:sticky;top:0;background:var(--card-bg);z-index:1}.ca-picker-preview-title{font-size:var(--text-lg);font-weight:600;margin:0}.ca-picker-preview-body{padding:1rem 1.25rem;overflow-y:auto;flex:1}.ca-picker-item-meta{display:flex;gap:var(--space-2);align-items:center;font-size:var(--text-sm);color:var(--text-tertiary)}.ca-picker-item input[type=checkbox]{flex-shrink:0;width:18px;height:18px;accent-color:var(--accent)}.ca-confirm-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.ca-confirm-card{background:var(--bg-surface);border:1px solid var(--edge-light);border-radius:var(--radius);padding:48px;max-width:500px;text-align:center;box-shadow:var(--shadow-lg)}.ca-confirm-icon{width:64px;height:64px;border-radius:50%;background:var(--color-correct-bg);color:var(--color-correct);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;font-size:2rem}.ca-confirm-card h1{margin-bottom:var(--space-2)}.ca-confirm-card p{color:var(--text-secondary);margin-bottom:var(--space-6)}.ca-confirm-list{list-style:disc;padding-left:1.25rem;margin:var(--space-4) 0 var(--space-6);color:var(--text-primary);font-size:var(--text-base);line-height:1.7;text-align:left}.ca-confirm-list li{margin-bottom:var(--space-1)}.ca-feedback-part{padding:16px;margin-bottom:var(--space-3);border-radius:var(--radius-sm)}.ca-feedback-part.full-marks{background:var(--color-correct-bg);border:1px solid var(--color-correct-border)}.ca-feedback-part.partial-marks{background:var(--color-partial-bg);border:1px solid var(--color-partial-border)}.ca-feedback-part.zero-marks{background:var(--color-incorrect-bg);border:1px solid var(--color-incorrect-border)}.ca-review-page{padding-bottom:40px}.ca-review-container{max-width:900px;margin:0 auto;padding:24px clamp(16px,3vw,32px)}.ca-review-container-fixed{padding-top:16px}.ca-review-meta{color:var(--text-secondary);font-size:var(--text-base);margin-top:4px}.ca-review-score-summary{text-align:center;padding:24px;background:var(--bg-surface);border:1px solid var(--edge-light);border-radius:var(--radius);margin:20px 0 28px}.ca-review-fixed-centre{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0;margin:0 auto}.ca-review-fixed-score{display:flex;align-items:baseline;gap:2px;font-weight:700;font-size:var(--text-xl);flex-shrink:0;padding:3px 12px;border-radius:var(--radius);background:var(--bg-surface-alt)}.ca-review-fixed-score.ca-score-full{background:var(--color-correct-bg-strong);color:var(--color-correct-text)}.ca-review-fixed-score.ca-score-partial{background:var(--color-partial-bg-alt);color:var(--color-partial-text)}.ca-review-fixed-score.ca-score-zero{background:var(--color-incorrect-bg-strong);color:var(--color-incorrect-dark)}.ca-review-fixed-score-value{font-size:var(--text-xl)}.ca-review-fixed-score-divider{font-size:1rem;color:var(--text-tertiary);margin:0 1px}.ca-review-fixed-score-max{font-size:1rem;color:var(--text-secondary)}.ca-review-fixed-score-pct{font-size:.82rem;font-weight:600;color:var(--text-secondary);margin-left:4px}.ca-feedback-btn-sm{flex-shrink:0;padding:6px 14px;font-size:var(--text-xs);font-weight:600;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;transition:background .15s}.ca-feedback-btn-sm:hover{background:var(--bg-surface-alt)}.ca-modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.ca-modal-content{background:var(--bg-surface);border-radius:12px;padding:1.5rem;max-width:480px;width:100%;position:relative;box-shadow:0 8px 32px #0003}.ca-modal-close{position:absolute;top:.5rem;right:.75rem;background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-secondary);line-height:1;padding:4px}.ca-modal-close:hover{color:var(--text-primary)}.ca-feedback-modal .ca-feedback-form{border:none;padding:0;border-radius:0}.ca-review-page .ca-work-nav-complete{background:var(--color-correct-bg-strong);border-color:var(--color-correct-accent);color:var(--color-correct-text)}.ca-review-page .ca-work-nav-partial{background:var(--color-partial-bg-strong);border-color:var(--color-partial-accent);color:var(--color-partial-text)}.ca-review-page .ca-work-nav-unanswered{background:var(--color-incorrect-bg);border-color:var(--color-incorrect-accent);color:var(--color-incorrect-dark)}.ca-review-nav-btn{width:64px;height:64px;border-radius:50%;border:2.5px solid var(--edge);background:var(--bg-surface);font-family:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;transition:all .15s;padding:0}.ca-review-nav-btn:hover{border-color:var(--accent)}.ca-review-nav-num{font-size:1.05rem;font-weight:800;line-height:1.15;color:var(--text-primary)}.ca-review-nav-score{font-size:.72rem;font-weight:600;color:var(--text-tertiary);line-height:1.15}.ca-review-pill-full{border-color:var(--color-correct-accent);background:var(--color-correct-bg)}.ca-review-pill-full .ca-review-nav-score{color:var(--color-correct-text)}.ca-review-pill-partial{border-color:var(--color-partial-accent);background:var(--color-partial-bg-strong)}.ca-review-pill-partial .ca-review-nav-score{color:var(--color-partial-text)}.ca-review-pill-zero{border-color:var(--color-incorrect-accent);background:var(--color-incorrect-bg)}.ca-review-pill-zero .ca-review-nav-score{color:var(--color-incorrect-dark)}.ca-work-nav-active.ca-review-nav-btn{background:var(--accent)!important;color:var(--text-on-accent)!important;border-color:var(--accent)!important}.ca-work-nav-active.ca-review-nav-btn .ca-review-nav-num,.ca-work-nav-active.ca-review-nav-btn .ca-review-nav-score{color:#ffffffd9}.ca-review-fixed-score-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary)}.ca-review-total-score{font-size:var(--text-4xl);font-weight:800}.ca-review-score-value{color:var(--accent)}.ca-review-score-divider{color:var(--text-tertiary);margin:0 4px}.ca-review-score-max{color:var(--text-secondary)}.ca-review-percentage{font-size:1.2rem;color:var(--text-secondary);margin-top:4px}.ca-score-full .ca-review-score-value{color:var(--color-correct)}.ca-score-partial .ca-review-score-value{color:var(--color-partial)}.ca-score-zero .ca-review-score-value{color:var(--color-incorrect)}.ca-feedback-section{text-align:center;margin-bottom:var(--space-6)}.ca-feedback-prompt{display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.ca-feedback-prompt-msg{color:var(--color-warning-text);font-size:.95rem;font-weight:500;margin:0}.ca-feedback-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:10px 24px;background:var(--color-incorrect);color:var(--text-on-accent);border:1px solid var(--color-incorrect);border-radius:var(--radius);font-size:var(--text-md);font-weight:600;cursor:pointer;transition:all var(--transition)}.ca-feedback-btn:hover{background:var(--color-incorrect-text);color:var(--text-on-accent);border-color:var(--color-incorrect-text)}.ca-feedback-form{background:var(--bg-surface);border:1px solid var(--edge-light);border-radius:var(--radius);padding:24px;text-align:left}.ca-feedback-title{font-size:1rem;font-weight:600;margin-bottom:var(--space-4)}.ca-feedback-options{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.ca-feedback-option{display:flex;align-items:center;gap:var(--space-3);padding:10px 14px;border:1px solid var(--edge-light);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);font-size:var(--text-base)}.ca-feedback-option:hover,.ca-feedback-option-selected{border-color:var(--accent);background:var(--accent-subtle)}.ca-feedback-option input[type=radio]{accent-color:var(--accent)}.ca-feedback-details{margin-bottom:var(--space-4)}.ca-feedback-details textarea{width:100%;resize:vertical}.ca-feedback-thanks{text-align:center;font-weight:500;color:var(--color-correct);padding:16px;background:var(--bg-surface);border:1px solid var(--edge-light);border-radius:var(--radius)}.ca-submit-feedback-section{max-width:520px;margin:32px auto 0;text-align:center;background:var(--color-warning-highlight);border:1px solid var(--color-warning);border-radius:var(--radius);padding:1.5rem}.ca-review-question-block{margin-bottom:var(--space-6)}.ca-review-question-num{font-weight:600;font-size:var(--text-base);color:var(--text-tertiary);margin-bottom:var(--space-3)}.ca-review-part-scores{margin-top:12px}.ca-review-part-result{padding:12px 16px;border-radius:var(--radius-xs);margin-bottom:var(--space-2);border:1px solid var(--edge-light);background:var(--bg-surface)}.ca-review-part-result.ca-score-full{background:var(--color-correct-bg);border-color:var(--color-correct-border)}.ca-review-part-result.ca-score-partial{background:var(--color-partial-bg);border-color:var(--color-partial-border)}.ca-review-part-result.ca-score-zero{background:var(--color-incorrect-bg);border-color:var(--color-incorrect-border)}.ca-review-part-score-row{display:flex;align-items:center;gap:var(--space-3)}.ca-review-part-label{font-weight:600;font-size:var(--text-sm)}.ca-review-part-score{font-weight:700;font-size:var(--text-base)}.ca-review-part-result .ca-mark-result-score-value{font-size:1.4rem}.ca-review-part-result .ca-mark-result-score-divider{font-size:1rem}.ca-review-part-result .ca-mark-result-score-max{font-size:.95rem}.ca-review-part-result.ca-score-full .ca-mark-result-score-value{color:var(--color-correct)}.ca-review-part-result.ca-score-partial .ca-mark-result-score-value{color:var(--color-partial)}.ca-review-part-result.ca-score-zero .ca-mark-result-score-value{color:var(--color-incorrect)}.ca-review-override-badge{font-size:var(--text-xs);padding:2px 8px;background:var(--color-warning-bg);color:var(--color-warning-text);border-radius:999px;font-weight:600}.ca-review-feedback{margin-top:8px;font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5}.ca-review-feedback p{margin:4px 0 0}.ca-review-feedback-label{display:inline-block;font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:var(--radius-xs);margin-bottom:2px}.ca-review-feedback-ai{background:#ede9fe;color:#5b21b6}.ca-review-feedback-teacher{background:var(--color-warning-highlight);color:var(--color-warning-text)}.ca-review-actions{text-align:center;margin-top:32px}.ca-student-flag-row{margin-top:.75rem;text-align:right}.ca-student-flag-btn{background:none;border:1px solid var(--edge);border-radius:var(--radius-xs);padding:4px 12px;font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;transition:all .15s}.ca-student-flag-btn:hover{border-color:var(--color-warning);color:var(--color-warning-text);background:var(--color-warning-bg)}.ca-student-flag-active{background:var(--color-warning-highlight);border-color:var(--color-warning);color:var(--color-warning-text);font-weight:600}.ca-badge-student-flagged{background:#fef3c7;color:#92400e;font-size:var(--text-xs);padding:2px 8px;border-radius:999px;font-weight:600}.ca-rp-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;background:var(--bg-body);padding:var(--space-4)}.ca-rp-topbar{display:flex;align-items:center;gap:var(--space-4);width:100%;max-width:680px;padding:var(--space-3) 0;border-bottom:1px solid var(--edge);margin-bottom:var(--space-4);flex-wrap:wrap}.ca-rp-topbar-title{font-weight:600;color:var(--text-primary)}.ca-rp-topbar-progress{color:var(--text-secondary);font-size:var(--text-sm);margin-left:auto}.ca-rp-timer{font-variant-numeric:tabular-nums;font-weight:700;font-size:var(--text-lg);color:var(--text-primary);min-width:3.5ch;text-align:center;padding:var(--space-1) var(--space-2);border-radius:var(--radius);background:var(--surface)}.ca-rp-timer--warning{color:#d97706;background:#fef3c7}.dark .ca-rp-timer--warning{color:#fbbf24;background:#451a03}.ca-rp-timer--danger{color:#dc2626;background:#fee2e2}.dark .ca-rp-timer--danger{color:#f87171;background:#450a0a}.ca-rp-question{width:100%;max-width:680px;background:var(--surface);border:1px solid var(--edge);border-radius:var(--radius-lg);padding:var(--space-5)}.ca-rp-question-number{font-weight:700;font-size:var(--text-lg);color:var(--text-primary);margin-bottom:var(--space-3)}.ca-rp-submit-btn{margin-top:var(--space-4);min-width:180px}.ca-rp-feedback{width:100%;max-width:680px;margin-top:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.ca-rp-feedback p{font-size:var(--text-base);font-weight:600;margin:0}.ca-rp-feedback strong{font-weight:700}.ca-rp-feedback--correct{background:#d1fae5;color:#065f46;border:1px solid #6ee7b7}.dark .ca-rp-feedback--correct{background:#064e3b;color:#6ee7b7;border-color:#065f46}.ca-rp-feedback--incorrect{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.dark .ca-rp-feedback--incorrect{background:#450a0a;color:#fca5a5;border-color:#991b1b}.ca-rp-feedback-text{font-size:var(--text-base);font-weight:700}.ca-rp-feedback-text--correct{color:#16a34a}.ca-rp-feedback-text--incorrect{color:#dc2626}.ca-rp-next-btn{min-width:160px}.ca-rp-next-btn:disabled{opacity:.4;cursor:not-allowed}.ca-rp-summary{width:100%;max-width:680px}.ca-rp-summary-hero{text-align:center;padding:var(--space-6) 0 var(--space-4)}.ca-rp-summary-hero{display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--bg-surface);border:1.5px solid var(--edge);border-radius:var(--radius);padding:var(--space-5) var(--space-6);box-shadow:0 2px 8px #0000000f}.ca-rp-summary-emoji{font-size:3.5rem;margin-bottom:var(--space-2)}.ca-rp-summary-score{font-size:2.8rem;font-weight:800;line-height:1.1}.ca-rp-summary-score.ca-score-full{color:var(--color-correct, #16a34a)}.ca-rp-summary-score.ca-score-partial{color:var(--accent)}.ca-rp-summary-score.ca-score-zero{color:var(--color-incorrect, #dc2626)}.ca-rp-summary-divider{color:var(--text-tertiary);margin:0 2px;font-weight:400}.ca-rp-summary-max{color:var(--text-secondary);font-weight:600}.ca-rp-summary-pct{font-size:1.15rem;color:var(--text-secondary);font-weight:500;margin-top:var(--space-1)}.ca-rp-summary-message{font-size:var(--text-base);color:var(--text-secondary);margin-top:var(--space-3);font-weight:500}.ca-rp-summary-list{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-4)}.ca-rp-summary-row{display:flex;align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius);border:1px solid var(--edge);flex-wrap:wrap}.ca-rp-summary-answer{width:100%;padding-left:calc(2ch + var(--space-3));font-size:var(--text-sm);color:#059669;font-weight:500}.dark .ca-rp-summary-answer{color:#6ee7b7}.ca-rp-summary-row--correct{border-color:#6ee7b7;background:color-mix(in srgb,#d1fae5 30%,transparent)}.ca-rp-summary-row--incorrect{border-color:#fca5a5;background:color-mix(in srgb,#fee2e2 30%,transparent)}.dark .ca-rp-summary-row--correct{border-color:#065f46;background:color-mix(in srgb,#064e3b 30%,transparent)}.dark .ca-rp-summary-row--incorrect{border-color:#991b1b;background:color-mix(in srgb,#450a0a 30%,transparent)}.ca-rp-summary-num{font-weight:700;min-width:2ch;color:var(--text-secondary)}.ca-rp-summary-title{flex:1;color:var(--text-primary)}.ca-rp-summary-icon{font-size:var(--text-lg);font-weight:700}.ca-rp-summary-row--correct .ca-rp-summary-icon{color:#059669}.ca-rp-summary-row--incorrect .ca-rp-summary-icon{color:#dc2626}.dark .ca-rp-summary-row--correct .ca-rp-summary-icon{color:#6ee7b7}.dark .ca-rp-summary-row--incorrect .ca-rp-summary-icon{color:#f87171}.ca-rp-done-btn{margin-top:var(--space-4);width:100%}.ca-work-page{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-body)}.ca-work-header{background:var(--bg-surface);border-bottom:1px solid var(--edge-light);padding:10px clamp(16px,3vw,24px);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:50}.ca-work-header-left{display:flex;align-items:center;gap:var(--space-2);min-width:0}.ca-work-header-title{font-size:.95rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ca-work-header-class,.ca-work-header-student{font-size:.88rem;font-weight:600;color:var(--text-secondary);white-space:nowrap}.ca-work-header-divider{color:var(--text-tertiary);font-size:.8rem;flex-shrink:0}.ca-work-header-right{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.ca-work-progress{background:var(--bg-surface);border-bottom:1px solid var(--edge-light);padding:6px clamp(16px,3vw,24px) 8px;position:sticky;top:49px;z-index:49}.ca-work-progress-info{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-xs);color:var(--text-tertiary);font-weight:500;margin-bottom:4px}.ca-work-progress-done{color:var(--color-correct);font-weight:600}.ca-work-progress-track{height:4px;background:var(--edge-light);border-radius:2px;overflow:hidden}.ca-work-progress-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .3s ease,background-color .3s ease}.ca-work-progress-complete{background:var(--color-correct)}.ca-work-error{padding:0 clamp(16px,3vw,24px)}.ca-work-layout{display:flex;flex:1;max-width:1100px;width:100%;margin:0 auto;padding:20px clamp(16px,3vw,24px);gap:var(--space-5)}.ca-work-nav{width:80px;flex-shrink:0;position:sticky;top:102px;align-self:flex-start}.ca-work-nav-title{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:var(--space-2);text-align:center}.ca-work-nav-grid{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.ca-work-nav-btn{width:42px;height:42px;border-radius:50%;border:2px solid var(--edge);background:var(--bg-surface);font-family:inherit;font-weight:600;font-size:var(--text-base);cursor:pointer;transition:all var(--transition);color:var(--text-secondary)}.ca-work-nav-btn:hover{border-color:var(--accent);color:var(--accent)}.ca-work-nav-active{background:var(--accent)!important;color:var(--text-on-accent)!important;border-color:var(--accent)!important}.ca-work-nav-complete{background:var(--color-correct-bg);border-color:var(--color-correct);color:var(--color-correct)}.ca-work-nav-partial{background:var(--color-info-bg);border-color:var(--color-info);color:var(--color-info)}.ca-work-main{flex:1;min-width:0}.ca-work-question-header{margin-bottom:var(--space-3);font-size:var(--text-sm);color:var(--text-tertiary);font-weight:500}.ca-work-nav-buttons{display:flex;align-items:center;justify-content:space-between;margin-top:24px;padding-top:16px;border-top:1px solid var(--edge-light)}.ca-work-nav-progress{font-size:var(--text-sm);color:var(--text-tertiary);font-weight:500}.ca-work-submitting-overlay{position:fixed;inset:0;background:#ffffffd9;display:flex;align-items:center;justify-content:center;z-index:200}.ca-work-submitting-content{text-align:center}.ca-work-submitting-content p{margin-top:12px;color:var(--text-secondary);font-weight:500}.ca-submit-modal .modal-body{text-align:center}.ca-submit-modal-body{margin-bottom:var(--space-6)}.ca-submit-modal-message{font-size:1rem;line-height:1.5;color:var(--text-primary)}.ca-submit-modal-hint{margin-top:8px;font-size:var(--text-sm);color:var(--text-tertiary)}.ca-submit-modal-actions{display:flex;gap:var(--space-3);justify-content:center;padding-top:16px;border-top:1px solid var(--edge-light)}.ca-student-card{background:var(--bg-surface);border:1px solid var(--edge-light);border-radius:var(--radius);padding:40px;max-width:480px;margin:60px auto;box-shadow:var(--shadow-lg);text-align:center}.ca-student-title{margin-bottom:var(--space-2)}.ca-student-subtitle{color:var(--text-secondary);font-size:var(--text-base);margin-bottom:var(--space-6)}.ca-student-form{text-align:left}.ca-student-form .ca-field{margin-bottom:var(--space-4)}.ca-student-back{margin-top:16px}.ca-label{display:block;font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);margin-bottom:var(--space-2)}.ca-input,.ca-select{font-family:inherit;font-size:var(--text-base);padding:.6rem .85rem;border:1px solid var(--edge);border-radius:var(--radius-xs);background:var(--bg-input);color:var(--text-primary);width:100%;transition:border-color var(--transition),box-shadow var(--transition)}input[type=datetime-local].ca-input{font-family:inherit;color-scheme:light}[data-theme=dark] input[type=datetime-local].ca-input{color-scheme:dark}input[type=datetime-local].ca-input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6}input[type=datetime-local].ca-input::-webkit-calendar-picker-indicator:hover{opacity:1}::-webkit-datetime-edit{font-family:inherit}::-webkit-datetime-edit-fields-wrapper{padding:0}.ca-input:focus,.ca-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle);background:var(--bg-input-focus)}.ca-input-code{text-align:center;font-size:var(--text-2xl);font-weight:700;letter-spacing:.2em;text-transform:uppercase}.ca-input-pin{text-align:center;font-size:var(--text-xl);font-weight:700;letter-spacing:.3em}.btn-block{width:100%}@media(max-width:768px){h1{font-size:var(--text-xl)}h2{font-size:var(--text-lg)}.ca-nav-inner{height:48px}.ca-nav-brand{font-size:var(--text-md)}.ca-main{padding:.8rem}.ca-auth-card{padding:1.4rem 1rem}.ca-entry-card{padding:1.4rem 1rem;margin:1.5rem auto}.ca-stats-bar{flex-direction:column}.ca-grid-classes,.ca-grid-assignments,.qb-grid{grid-template-columns:1fr}.ca-filter-row{flex-wrap:wrap}.ca-filter-topic,.ca-filter-subtopic{flex:1 1 calc(50% - 6px);min-width:140px}.ca-filter-difficulty{width:auto;flex:1 1 100%}.qb-tabs{width:100%}.qb-tab{flex:1;text-align:center}.qb-preview-modal{max-width:100%;max-height:92vh}.qb-preview-header{padding:16px 16px 12px}.qb-preview-body{padding:16px}.ca-form-row{flex-direction:column}.ca-table{font-size:var(--text-sm)}.ca-table th,.ca-table td{padding:8px 12px}.ca-work-layout{flex-direction:column}.ca-work-nav{width:100%;position:static}.ca-work-nav-grid{flex-direction:row;flex-wrap:wrap;justify-content:center}.ca-work-nav-btn{width:36px;height:36px;font-size:.82rem}.ca-review-nav-btn{width:52px;height:52px}.ca-review-nav-num{font-size:var(--text-base)}.ca-review-nav-score{font-size:.65rem}.ca-review-fixed-score{font-size:var(--text-lg)}.ca-work-header-left{flex-wrap:wrap}.ca-work-header-divider{display:none}.ca-work-header-title{flex-basis:100%}.ca-work-header{flex-wrap:wrap}.ca-student-card{margin:20px auto;padding:24px 16px}.ca-review-teacher-nav{flex-wrap:wrap;gap:var(--space-2)}.ca-review-teacher-nav-btn{min-width:80px;font-size:var(--text-xs)!important}.ca-review-q-card{padding:14px 16px}.ca-review-teacher-part.ca-flagged{margin:8px -4px;padding:12px}}@media(max-width:1400px)and (max-height:800px){.ca-main{padding:.8rem 1rem}.ca-section{margin-bottom:var(--space-5)}h1{font-size:var(--text-2xl)}.ca-card{padding:.8rem}.ca-question-part{padding:.6rem}}.ca-collapsible-section{margin-top:var(--space-8);margin-bottom:var(--space-6)}.ca-collapsible-section:first-child{margin-top:0}.ca-section-toggle{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;-webkit-user-select:none;user-select:none;padding:8px 0;margin-bottom:var(--space-3)}.ca-section-toggle h2{margin:0;font-size:var(--text-lg)}.ca-toggle-chevron{font-size:var(--text-xs);color:var(--text-tertiary);transition:transform var(--transition);display:inline-block}.ca-toggle-chevron.open{transform:rotate(90deg)}.qs-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.qs-card{cursor:pointer;transition:border-color var(--transition),box-shadow var(--transition)}.qs-card>.ca-card-meta,.ca-card-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.ca-card-title-row h3{margin:0}.ca-card-student-count{font-size:.8rem;color:var(--text-secondary);white-space:nowrap}.ca-card-active-count{color:var(--accent);font-weight:600}.ca-card-completed-count{color:var(--text-secondary)}.ca-card-class>.ca-card-meta{margin-top:auto;display:flex;justify-content:flex-start;gap:.75rem}.qs-card:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.qs-card--community{cursor:default}.qs-copy-btn{margin-top:auto;align-self:flex-start}.qs-topic-badge{background:transparent;border:1.5px solid currentColor}.ca-filter-bar--flat{background:none;border:none;padding:0}.ca-filter-bar--flat .ca-select{max-width:220px}.ca-filter-bar--flat .ca-input{flex:1}.qs-filter-row{flex-direction:row;align-items:center;gap:var(--space-3);flex-wrap:wrap}.sa-step1-row{display:flex;align-items:flex-start;justify-content:flex-start;flex-wrap:nowrap;gap:0}.sa-step1-row .qe-field{flex:0 0 auto;padding:0 var(--space-4)}.sa-step1-row .qe-field:first-child{padding-left:0}.sa-step1-row .qe-field+.qe-field{border-left:1px solid var(--edge)}.sa-step1-row .qe-select,.sa-step1-row .qe-input{min-width:160px;font-size:var(--text-sm);padding:6px 12px}.sa-step1-row .qe-pill{padding:6px 16px}@media(max-width:640px){.sa-step1-row{flex-wrap:wrap}.sa-step1-row .qe-field{padding:var(--space-3) var(--space-4)}.sa-step1-row .qe-field:first-child{padding-left:var(--space-4)}.sa-step1-row .qe-field+.qe-field{border-left:none;border-top:1px solid var(--edge)}}.sa-stepper{display:flex;align-items:center;justify-content:flex-start;margin-bottom:var(--space-6)}.sa-step{display:flex;align-items:center;gap:var(--space-2);opacity:.4;transition:opacity var(--transition)}.sa-step-active{opacity:1}.sa-step-number{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--edge);color:var(--text-secondary);font-weight:700;font-size:var(--text-sm);transition:all var(--transition)}.sa-step-active .sa-step-number{background:var(--accent);color:var(--text-on-accent)}.sa-step-label{font-weight:600;font-size:var(--text-base)}.sa-step-line{width:60px;height:2px;background:var(--edge);margin:0 12px}.sa-set-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.sa-set-card{cursor:pointer;transition:all var(--transition);position:relative;gap:10px;min-height:120px}.sa-set-card:hover:not(.sa-set-card-disabled){border-color:var(--accent)}.sa-set-card-selected{border-color:var(--accent)!important;box-shadow:0 0 0 2px #4f46e533!important}.sa-set-card-disabled{opacity:.5;cursor:not-allowed}.sa-set-card-warning{font-size:var(--text-xs);color:var(--color-warning);font-weight:600;margin-top:6px}.sa-selected-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:12px 16px;background:var(--accent-bg, rgba(99, 102, 241, .08));border:2px solid var(--accent);border-radius:var(--radius);margin-bottom:var(--space-4)}.sa-selected-info{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;min-width:0}.sa-selected-label{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent)}.sa-selected-title{font-weight:600;font-size:1rem;color:var(--text-primary)}.sa-selected-meta{font-size:var(--text-sm);color:var(--text-secondary)}.sa-selected-clear{flex-shrink:0;font-size:var(--text-sm);color:var(--text-secondary)!important}.sa-set-filter-bar{display:flex;gap:var(--space-3);margin-bottom:var(--space-4)}.sa-set-filter-bar .ca-select{max-width:220px}.sa-set-filter-bar .ca-input{flex:1}.sa-set-or{text-align:center;margin:16px 0;color:var(--text-tertiary);font-size:var(--text-sm);font-weight:500}.sa-summary-banner{padding:20px 24px;border-radius:var(--radius);border:2px solid #e9d88a;background:#fffef5;margin-bottom:var(--space-5);max-width:600px;margin-left:auto;margin-right:auto}.sa-summary-banner-ready{border-color:#86cfac;background:#f4fdf7}.sa-summary-row{display:flex;align-items:center;justify-content:center;gap:var(--space-2);flex-wrap:wrap}.sa-summary-set-row{margin-top:8px;padding-top:8px;flex-wrap:nowrap;overflow:hidden;border-top:none;height:44px;position:relative;justify-content:center}.sa-summary-set-row:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:60%;height:1px;background:#00000014}.sa-summary-label{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary)}.sa-summary-value{font-weight:600;font-size:var(--text-base);color:var(--text-primary);margin-right:8px}.sa-summary-meta{font-size:var(--text-sm);color:var(--text-secondary)}.sa-summary-placeholder{font-size:var(--text-sm);color:var(--text-tertiary);font-style:italic;line-height:28px}.sa-summary-clear{margin-left:8px;font-size:var(--text-sm)}.ca-picker-add-bar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.ca-review-q-pills{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-4)}.ca-review-q-pill{width:36px;height:36px;border-radius:50%;border:2px solid var(--border);background:var(--bg-surface);font-size:var(--text-sm);font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.ca-review-q-pill:hover{border-color:var(--accent);background:var(--accent-bg, rgba(99, 102, 241, .08))}.ca-review-q-pill-active{background:var(--accent);color:var(--text-on-accent);border-color:var(--accent)}.ca-badge-marking-auto{background:var(--color-info-bg-alt);color:var(--color-info-text)}.ca-badge-marking-ai{background:#ede9fe;color:#6d28d9}.ca-badge-marking-manual{background:var(--color-warning-highlight);color:var(--color-warning-text)}.al-class-group{margin-bottom:1.5rem}.al-class-heading{font-size:var(--text-lg);font-weight:600;margin-bottom:.75rem;color:var(--text-primary)}.al-view-completed{background:none;border:none;cursor:pointer;font-family:inherit;font-size:var(--text-sm);color:var(--text-tertiary);padding:0;margin-top:10px;transition:color .15s ease}.al-view-completed:hover{color:var(--text-primary)}.al-overlay-backdrop{position:fixed;inset:0;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.al-overlay{background:var(--bg-surface);border-radius:var(--radius-lg, 12px);width:100%;max-width:640px;max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--shadow-xl, 0 20px 60px rgba(0,0,0,.3))}.al-overlay-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--edge-light)}.al-overlay-header h2{font-size:var(--text-lg);font-weight:600;margin:0}.al-overlay-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-tertiary);padding:4px 8px;border-radius:var(--radius-xs);line-height:1}.al-overlay-close:hover{background:var(--bg-surface-alt);color:var(--text-primary)}.al-overlay-warning{margin:0;padding:10px 24px;background:var(--color-warning-bg);color:var(--color-warning-text);font-size:var(--text-sm);font-weight:500}.al-overlay-cards{overflow-y:auto;padding:20px 24px 24px;display:flex;flex-direction:column;gap:12px}.al-reopen-btn{background:none;border:1px solid var(--accent);color:var(--accent);font-weight:600;transition:all .15s ease}.al-reopen-btn:hover:not(:disabled){background:var(--accent);color:#fff}.al-reopen-btn:disabled{opacity:.4;cursor:not-allowed;border-color:var(--text-tertiary);color:var(--text-tertiary)}.ca-text-sm{font-size:var(--text-sm)}.ca-text-muted{color:var(--text-tertiary)}.al-copy-btn{padding:4px 10px;font-size:var(--text-xs);background:var(--bg-surface-alt);border:1px solid var(--edge);border-radius:var(--radius-xs);cursor:pointer;font-weight:600;font-family:inherit;transition:all var(--transition);color:var(--text-secondary)}.al-copy-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.ca-dashboard-stats{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));margin-bottom:var(--space-6)}.ca-stat-card{cursor:pointer;text-align:center;padding:20px 16px;transition:border-color var(--transition),box-shadow var(--transition)}.ca-stat-card:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.ca-stat-card-warning{border-color:var(--color-warning)}.ca-stat-number{font-size:2rem;font-weight:800;color:var(--accent);line-height:1.2}.ca-stat-card-warning .ca-stat-number{color:var(--color-warning)}.ca-stat-label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:500;margin-top:4px}.ca-dashboard-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}.ca-page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-8);flex-wrap:wrap;gap:var(--space-3)}.ca-page-header h1{margin:0}.ca-page-header .ca-stat-badge{margin-top:var(--space-2)}.ca-warning-banner{background:var(--color-warning-bg);border:1px solid var(--color-warning);border-radius:var(--radius-sm);padding:12px 16px;font-size:var(--text-base);color:var(--color-warning-text);font-weight:500;margin-bottom:var(--space-5)}.ca-badge-status-archived{background:var(--bg-surface-alt);color:var(--text-tertiary)}.ca-review-part-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2);padding:.25rem 0}.ca-review-part-marks{font-weight:600;font-size:var(--text-xl);color:var(--text-secondary)}.ca-badge-marking-auto{background:var(--color-info);color:var(--text-on-accent);padding:2px 10px;border-radius:999px;font-size:var(--text-xs);font-weight:600}.ca-badge-marking-ai{background:#8b5cf6;color:var(--text-on-accent);padding:2px 10px;border-radius:999px;font-size:var(--text-xs);font-weight:600}.ca-badge-marking-flagged{background:#f97316;color:var(--text-on-accent);padding:2px 10px;border-radius:999px;font-size:var(--text-xs);font-weight:600}.ca-review-divider{border:none;border-top:1px solid var(--edge-light);margin:1.25rem 0}.ca-review-answer-box{background:var(--bg-body);border-radius:var(--radius-sm);padding:.75rem 1rem}.ca-review-answer-box .ca-review-subtitle{margin:0 0 .5em}.ca-review-subtitle{font-weight:700;color:var(--text-primary);font-size:var(--text-base);margin:.75rem 0 2em}.ca-review-subtitle-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4)}.ca-review-subtitle-row .ca-review-subtitle{margin-bottom:2em}.ca-review-subtitle-row .ca-student-flag-row{margin:0}.ca-review-subtitle-row .ca-student-flag-btn{font-size:var(--text-sm);padding:.25rem .6rem}.ca-review-answer-correct{color:var(--color-correct);font-weight:500}.ca-review-answer-correct:after{content:"✓";display:block;font-weight:700;font-size:2em;margin-top:.25rem}.ca-review-answer-incorrect{color:var(--color-incorrect);font-weight:500}.ca-review-answer-incorrect:after{content:"✗";display:block;font-weight:700;font-size:2em;margin-top:.25rem}.mc-option.missed{background:var(--color-warning-highlight);border-color:var(--color-warning)}.mc-missed-label{margin-left:auto;font-size:var(--text-sm);font-weight:600;color:var(--color-partial-text);white-space:nowrap}.gf-review-answer{font-weight:600;padding:0 2px}.gf-review-correct{color:var(--color-correct)}.gf-review-incorrect{color:var(--color-incorrect)}.gf-review-tick{text-decoration:none;margin:0 .35em}.gf-review-cross{color:var(--color-incorrect);font-weight:700;margin:0 .35em}.gf-review-correction-badge{display:inline-block;padding:1px 8px;background:var(--color-warning-highlight);color:var(--color-warning-text);border-radius:var(--radius-xs);font-weight:600;font-size:.9em;margin-left:.3em}.gf-review-correction-label{font-weight:600}.tf-review-cell{vertical-align:middle}.tf-review-answer-row{display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.tf-review-text{font-weight:500;padding:4px 8px}.tf-review-correct,.tf-review-incorrect{color:var(--text-primary)}.tf-review-icon{font-size:1.4em;font-weight:700;flex-shrink:0}.tf-review-icon-correct{color:var(--color-correct)}.tf-review-icon-incorrect{color:var(--color-incorrect)}.tf-review-correction{display:inline-block;margin-top:4px;padding:2px 10px;background:var(--color-warning-highlight);color:var(--color-warning-text);border-radius:var(--radius-xs);font-weight:600;font-size:var(--text-base)}.tf-review-correction-label{font-weight:600}.calc-review-columns{display:grid;grid-template-columns:1fr 1fr;padding:1.25rem 0;gap:var(--space-4)}.calc-review-col{padding:.5rem 1rem;display:flex;flex-direction:column}.calc-review-col+.calc-review-col{border-left:1px solid var(--border-default)}.calc-review-ms-list{margin:.25rem 0 0;padding-left:.5rem;font-size:var(--text-base);list-style:none}.calc-review-ms-table{width:100%;border-collapse:collapse;height:100%}.calc-review-ms-point-col{width:auto}.calc-review-ms-verdict-col{width:1%;white-space:nowrap}.calc-ms-point{font-weight:400;color:var(--text-primary);padding:.3rem .75rem .3rem 0;vertical-align:top}.calc-review-step{padding:.35rem .75rem;margin:.25rem 0;border-left:3px solid var(--edge);font-family:monospace}.calc-review-step.correct{border-left-color:var(--color-correct);color:var(--color-correct)}.calc-review-step.incorrect{border-left-color:var(--color-incorrect);color:var(--color-incorrect)}.calc-review-step.calc-step-awarded,.calc-review-step.calc-step-not-awarded{border-left-color:var(--edge)}.calc-review-step-label{font-weight:600;font-family:inherit}.calc-step-mark{margin-left:1rem;font-size:1.4em;font-weight:700;font-family:inherit}.calc-step-mark.awarded{color:var(--color-correct)}.calc-step-mark.not-awarded{color:var(--color-incorrect)}.calc-review-no-working{color:var(--color-warning-text);background:var(--color-warning-highlight);padding:.5rem .75rem .5rem 1.75rem;border-radius:var(--radius-xs);margin:.5rem 0;font-size:var(--text-base);list-style:disc}.ca-review-ai-banner{background:#f3e8ff;border-left:4px solid #8b5cf6;padding:.75rem 1rem;border-radius:.375rem;margin:.5rem calc(100% / 6);font-size:var(--text-base)}.ca-review-ai-banner-title{display:flex;align-items:center;font-weight:700;color:#7c3aed;margin-bottom:var(--space-1);font-size:var(--text-sm)}.ca-review-ai-confidence{margin-left:auto;font-size:var(--text-xs);font-weight:500;padding:.1rem .4rem;border-radius:.25rem}.ca-confidence-confident{color:#16a34a;background:#16a34a1f}.ca-confidence-uncertain{color:#d97706;background:#d977061f}.ca-review-ai-banner p{margin:0;color:#4c1d95}.ca-review-confidence-reasoning{font-size:var(--text-xs);font-style:italic;color:#6d28d9;margin:0 0 var(--space-1)}.ca-review-flagged{border:2px dotted #f97316!important;border-radius:var(--radius-sm);padding:12px}.ca-review-toggle-mark{cursor:pointer;border:none;background:none;font-size:var(--text-lg);padding:.15rem .35rem;border-radius:var(--radius-xs);transition:background .15s;line-height:1}.ca-review-toggle-mark:hover{background:#0000000f}.ca-review-toggle-mark.awarded{color:var(--color-correct)}.ca-review-toggle-mark.not-awarded{color:var(--color-incorrect)}.ca-review-ms-points{list-style:none;padding:0;margin:.25rem 0}.ca-review-ms-points li{display:flex;align-items:flex-start;gap:var(--space-2);padding:.2rem 0;font-size:var(--text-base)}.ca-review-no-marks-msg{font-style:italic;color:var(--color-warning-text);background:var(--color-warning-highlight);padding:.5rem .75rem;border-radius:var(--radius-xs);margin:.5rem 0;font-size:var(--text-base)}.ca-section-header-right{display:flex;align-items:center;gap:var(--space-3)}.ca-results-submitted-count{font-size:var(--text-base);color:var(--text-secondary)}.ca-review-flagged-btn{white-space:nowrap}.ca-flagged-review-page{max-width:1400px;width:100%;margin:0 auto;padding:1.6rem clamp(1rem,4vw,2rem) 3rem}.ca-flagged-header{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);margin-bottom:var(--space-5);text-align:center}.ca-flagged-header-back{align-self:flex-start}.ca-flagged-title{font-size:var(--text-xl);font-weight:700;margin:0}.ca-flagged-assignment{font-size:var(--text-base);color:var(--text-secondary)}.ca-flagged-progress{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.ca-flagged-counter{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);white-space:nowrap;min-width:5rem}.ca-flagged-progress-bar{flex:1;height:6px;background:var(--border-color);border-radius:3px;overflow:hidden}.ca-flagged-progress-fill{height:100%;background:var(--accent-blue);border-radius:3px;transition:width .25s ease}.ca-flagged-badges{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap}.ca-flagged-student-name{font-weight:600;font-size:1rem;margin-right:.25rem}.ca-flagged-question-block{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius);padding:.75rem;margin-bottom:var(--space-5)}.ca-flagged-question-title{font-weight:600;font-size:var(--text-md);margin-bottom:var(--space-3);color:var(--text-secondary)}.ca-flagged-override{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:var(--space-5)}.ca-flagged-override-row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.ca-flagged-override-label{font-weight:600;font-size:var(--text-base);white-space:nowrap}.ca-flagged-score-input{width:4rem!important;text-align:center}.ca-flagged-override-max{font-size:var(--text-base);color:var(--text-secondary)}.ca-flagged-override-saved{display:block;margin-top:.5rem;font-size:var(--text-sm);color:var(--color-correct);font-weight:500}.ca-flagged-resolve-area{display:flex;justify-content:center;margin-bottom:var(--space-5)}.ca-flagged-resolve-btn{background:#f59e0b;color:#fff;font-family:inherit;font-size:1rem;font-weight:700;padding:12px 48px;border:none;border-radius:var(--radius);cursor:pointer;transition:background .15s,transform .1s}.ca-flagged-resolve-btn:hover{background:#d97706}.ca-flagged-resolve-btn:active{transform:scale(.97)}.ca-flagged-resolve-btn:disabled{opacity:.6;cursor:not-allowed}.ca-flagged-resolve-row{display:flex;justify-content:flex-end;margin-bottom:1rem}.ca-flagged-nav{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4)}.ca-flagged-prev-btn{padding:.5rem 1rem;font-size:.85rem;font-weight:500;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;background:transparent;color:var(--text-secondary, #64748b);cursor:pointer;transition:color .15s,border-color .15s,background .15s}.ca-flagged-prev-btn:hover:not(:disabled){color:var(--text-primary, #334155);border-color:var(--text-secondary, #94a3b8);background:#00000008}.ca-flagged-prev-btn:disabled{opacity:.3;cursor:not-allowed}.ca-flagged-skip-btn{padding:.5rem 1.2rem;font-size:.85rem;font-weight:600;border:none;border-radius:8px;background:var(--accent-blue, #3b82f6);color:#fff;cursor:pointer;transition:background .15s,transform .1s}.ca-flagged-skip-btn:hover:not(:disabled){background:#2563eb}.ca-flagged-skip-btn:active{transform:scale(.97)}.ca-flagged-skip-btn:disabled{opacity:.4;cursor:not-allowed}.ca-flagged-confirm-btn{padding:.5rem 1.2rem;font-size:.85rem;font-weight:600;border:none;border-radius:8px;background:#22c55e;color:#fff;cursor:pointer;transition:background .15s,transform .1s}.ca-flagged-confirm-btn:hover:not(:disabled){background:#16a34a}.ca-flagged-confirm-btn:active{transform:scale(.97)}.ca-flagged-confirm-btn:disabled{opacity:.5;cursor:not-allowed}.ca-flagged-empty{text-align:center;padding:3rem 1rem;color:var(--text-secondary)}.ca-flagged-empty p{margin-bottom:var(--space-4);font-size:1rem}.ca-flagged-resolved-icon{font-size:3rem;margin-bottom:var(--space-3)}.qr-counter{font-size:.8rem;font-weight:600;color:var(--text-secondary);background:var(--bg-surface-alt);padding:4px 12px;border-radius:var(--radius-sm)}.qr-meta-bar{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;padding:12px 16px;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius);margin-bottom:var(--space-4)}.qr-meta-title{font-weight:600;font-size:.95rem;color:var(--text-primary);margin-right:auto}.qr-meta-tags{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.qr-meta-marks{font-size:.78rem;color:var(--text-secondary);font-weight:500}.qr-meta-actions{display:flex;gap:.5rem}.qr-preview-container{background:var(--bg-surface);border-radius:var(--radius);padding:var(--space-5);box-shadow:var(--shadow-sm);margin-bottom:var(--space-4);border:1px solid var(--border-color)}.qr-flag-form{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-4);display:flex;flex-direction:column;gap:.75rem}.qr-flag-field{display:flex;flex-direction:column;gap:4px}.qr-flag-field .ca-select{max-width:320px}.qr-actions{display:flex;gap:.75rem;align-items:center;padding-top:var(--space-1)}.qr-btn-approve{background:var(--color-correct)!important;color:#fff!important;border:none!important;margin-left:auto}.qr-btn-approve:hover:not(:disabled){filter:brightness(.9)}.qr-btn-flag{background:#f59e0b!important;color:#fff!important;border:none!important}.qr-btn-flag:hover:not(:disabled){background:#d97706!important}.qr-empty{text-align:center;padding:var(--space-12) var(--space-6)}.qr-empty-icon{font-size:3rem;color:var(--color-correct);margin-bottom:.75rem}.qr-empty h2{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:0 0 .5rem}.qr-empty p{color:var(--text-secondary);font-size:.9rem;margin-bottom:var(--space-5)}.ca-badge-status-needs_fixes{background:#fef2f2;color:#b91c1c}[data-theme=dark] .ca-badge-status-needs_fixes{background:#451a1a;color:#fca5a5}.qf-layout{display:grid;grid-template-columns:280px 1fr;gap:var(--space-5);align-items:start}@media(max-width:800px){.qf-layout{grid-template-columns:1fr}.qf-sidebar{max-height:200px;overflow-y:auto}}.qf-sidebar{display:flex;flex-direction:column;gap:2px;border:1px solid var(--edge-light);border-radius:var(--radius-lg);overflow:hidden;position:sticky;top:var(--space-4);max-height:calc(100vh - 120px);overflow-y:auto}.qf-sidebar-item{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:none;background:var(--surface-primary);text-align:left;cursor:pointer;transition:background .15s;border-bottom:1px solid var(--edge-light);font-family:inherit}.qf-sidebar-item:last-child{border-bottom:none}.qf-sidebar-item:hover{background:var(--surface-secondary)}.qf-sidebar-item--active{background:var(--surface-secondary);border-left:3px solid var(--color-primary)}.qf-sidebar-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);line-height:1.3}.qf-sidebar-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.qf-sidebar-id{font-size:.7rem;color:var(--text-tertiary);font-family:monospace}.qf-sidebar-flags{font-size:.75rem;color:#b91c1c;font-weight:600}[data-theme=dark] .qf-sidebar-flags{color:#fca5a5}.qf-content{min-width:0}.qf-flags{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.qf-flag-card{border:1px solid var(--edge-light);border-radius:var(--radius-md);padding:12px 16px;background:#fef2f2;display:flex;flex-direction:column;gap:6px}[data-theme=dark] .qf-flag-card{background:#451a1a;border-color:#6b2020}.qf-flag-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.qf-flag-category{font-size:var(--text-sm);font-weight:600;color:#b91c1c}[data-theme=dark] .qf-flag-category{color:#fca5a5}.qf-flag-date{font-size:.75rem;color:var(--text-tertiary)}.qf-flag-notes{font-size:var(--text-sm);color:var(--text-primary);margin:0;line-height:1.4}.qf-dismiss-btn{align-self:flex-end}.qf-legacy-id{font-size:.75rem;color:var(--text-tertiary);font-family:monospace}.img-lib-backdrop{position:fixed;inset:0;z-index:499;background:#00000040}.img-lib-panel{position:fixed;top:0;right:0;width:340px;height:100vh;z-index:500;background:var(--bg-surface);border-left:1px solid var(--border-subtle);box-shadow:-6px 0 24px #0000002e;display:flex;flex-direction:column;overflow:hidden}.img-lib-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 13px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.img-lib-title{font-weight:700;font-size:1rem;color:var(--text-primary)}.img-lib-close{background:none;border:none;font-size:1.6rem;line-height:1;cursor:pointer;color:var(--text-secondary);padding:0 2px;display:flex;align-items:center}.img-lib-close:hover{color:var(--text-primary)}.img-lib-search-wrap{position:relative;padding:10px 12px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.img-lib-search{width:100%;padding:7px 30px 7px 10px;border:1px solid var(--border-subtle);border-radius:6px;font-size:.88rem;background:var(--bg-surface-alt);color:var(--text-primary);box-sizing:border-box}.img-lib-search:focus{outline:none;border-color:var(--primary)}.img-lib-clear{position:absolute;right:18px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--text-secondary);font-size:1.1rem;line-height:1;padding:2px 4px}.img-lib-clear:hover{color:var(--text-primary)}.img-lib-count{padding:5px 14px 4px;font-size:.75rem;color:var(--text-muted);flex-shrink:0}.img-lib-grid{flex:1;overflow-y:auto;padding:8px;display:grid;grid-template-columns:repeat(2,1fr);gap:8px;align-content:start}.img-lib-status{grid-column:1 / -1;padding:28px 16px;text-align:center;font-size:.88rem;color:var(--text-secondary)}.img-lib-error{color:var(--color-incorrect)}.img-lib-item{display:flex;flex-direction:column;align-items:center;gap:5px;padding:7px 6px 6px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-surface);cursor:pointer;transition:border-color .13s,background .13s,box-shadow .13s;text-align:center;width:100%}.img-lib-item:hover{border-color:var(--primary);background:var(--bg-surface-alt);box-shadow:0 1px 6px #00000014}.img-lib-thumb{width:100%;height:76px;object-fit:contain;border-radius:4px}.img-lib-name{font-size:.65rem;color:var(--text-secondary);word-break:break-all;line-height:1.3;max-height:2.6em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.img-lib-tags{display:flex;flex-wrap:wrap;gap:2px;margin-top:3px}.img-lib-tag{font-size:.55rem;color:var(--text-secondary);background:var(--bg-surface-alt);border-radius:3px;padding:1px 4px;line-height:1.4;white-space:nowrap}@media print{.ca-nav,.btn,.ca-class-actions{display:none!important}.ca-table,.ca-table th,.ca-table td{border:1px solid #000}}.qg-wrap{max-width:1400px;width:100%;margin:0 auto;padding:1.6rem clamp(1rem,4vw,2rem)}.qg-header{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-5)}.qg-header h1{margin:0;font-size:var(--text-xl)}.qg-page{display:grid;grid-template-columns:1fr 1fr;gap:0;min-height:calc(100vh - 180px)}.qg-form{overflow-y:auto;padding-right:var(--space-6)}.qg-preview{overflow-y:auto;padding-left:var(--space-6);border-left:1px solid var(--edge)}.qg-section{margin-bottom:var(--space-5)}.qg-section-title{font-size:var(--text-sm);font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-2)}.qg-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-3);align-items:end}.qg-row .qe-field{margin-bottom:0}.qg-type-group-label{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}.qg-type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:var(--space-2)}.qg-type-check{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);cursor:pointer;padding:4px 0}.qg-type-check input[type=checkbox]{accent-color:var(--accent)}.qg-submit{margin-top:var(--space-4)}.qg-error{color:#dc2626;font-size:var(--text-sm);margin-top:var(--space-3);padding:var(--space-3);background:#fef2f2;border-radius:6px}.qg-placeholder{display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);font-size:var(--text-base);min-height:300px;text-align:center;padding:var(--space-8)}.qg-generating{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);min-height:300px;color:var(--text-secondary)}.qg-preview-toggle{display:flex;gap:var(--space-2);margin-bottom:var(--space-4)}.qg-edit-parts{display:flex;flex-direction:column;gap:var(--space-4)}.qg-edit-part-wrap{position:relative}.qg-hold-check{display:inline-flex;align-items:center;gap:.35rem;font-size:var(--text-xs);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.qg-hold-check input[type=checkbox]{accent-color:var(--accent)}.qg-hold-active{color:var(--accent);font-weight:600}.qg-hold-inline{margin-top:.25rem}.qg-actions{display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--edge)}.qb-new-dropdown-wrap{position:relative;display:inline-block}.qb-new-dropdown{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-card);border:1px solid var(--edge);border-radius:8px;box-shadow:var(--shadow-md);z-index:50;min-width:220px;overflow:hidden}.qb-new-dropdown-item{display:block;width:100%;padding:10px 16px;border:none;background:none;text-align:left;cursor:pointer;font-size:var(--text-sm);color:var(--text-primary)}.qb-new-dropdown-item:hover{background:var(--accent-subtle)}.qb-new-dropdown-item+.qb-new-dropdown-item{border-top:1px solid var(--edge)}.qb-ai-filter{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;padding:0 var(--space-1)}.qb-ai-filter input[type=checkbox]{accent-color:#7c3aed}.qb-category-toggle{display:flex;gap:0;border-radius:8px;overflow:hidden;border:1px solid var(--accent);width:fit-content}.qb-category-btn{padding:6px 18px;font-size:.85rem;font-weight:600;background:#fff;color:var(--text-quaternary, #aaa);border:none;cursor:pointer;transition:background .15s,color .15s;font-family:inherit}.qb-category-btn:not(:last-child){border-right:1px solid var(--accent)}.qb-category-btn:hover{background:#4f46e50f;color:var(--accent)}.qb-category-btn--active{background:var(--accent);color:#fff}.qb-category-btn--active:hover{background:var(--accent-hover);color:#fff}[data-theme=dark] .qb-category-toggle{border-color:var(--accent)}[data-theme=dark] .qb-category-btn{background:transparent;color:var(--text-quaternary, #666)}[data-theme=dark] .qb-category-btn:hover{background:#4f46e526;color:var(--accent)}[data-theme=dark] .qb-category-btn--active{background:var(--accent);color:#fff}[data-theme=dark] .qb-category-btn--active:hover{background:var(--accent-hover);color:#fff}.qb-advanced-toggle{background:none;border:none;color:var(--text-tertiary);font-size:.78rem;font-family:inherit;cursor:pointer;padding:.25rem 0;margin-top:.15rem}.qb-advanced-toggle:hover{color:var(--accent)}.qb-advanced-row{animation:qb-card-in .2s ease both}.ca-badge-retrieval{background:#d1fae5;color:#065f46}.dark .ca-badge-retrieval{background:#064e3b;color:#6ee7b7}.qs-category-toggle{display:flex;gap:0;border-radius:var(--radius);overflow:hidden;border:1px solid var(--edge);width:fit-content}@media(max-width:900px){.qg-page{grid-template-columns:1fr}.qg-form{padding-right:0}.qg-preview{padding-left:0;border-left:none;border-top:1px solid var(--edge);padding-top:var(--space-5);margin-top:var(--space-5)}}.sandbox-selector{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-5)}.sandbox-row{display:flex;gap:var(--space-3);align-items:flex-start}.sandbox-part-pills{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.sandbox-part-pills>label{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary)}.sandbox-part-pill{padding:4px 12px;border-radius:999px;border:1px solid var(--edge);background:var(--bg-card);font-size:var(--text-sm);cursor:pointer;transition:all .15s}.sandbox-part-pill:hover{border-color:var(--brand)}.sandbox-part-pill.active{background:var(--brand);color:#fff;border-color:var(--brand)}.sandbox-part-display{background:var(--bg-card);border:1px solid var(--edge);border-radius:var(--radius);padding:var(--space-4);margin-bottom:var(--space-4)}.sandbox-part-display h3{margin:0 0 var(--space-3);font-size:var(--text-base)}.sandbox-part-display h4{margin:var(--space-3) 0 var(--space-2);font-size:var(--text-sm);color:var(--text-secondary)}.sandbox-question-text{line-height:1.6}.sandbox-mark-scheme ol{margin:0;padding-left:20px}.sandbox-mark-scheme li{margin-bottom:4px;line-height:1.5}.sandbox-calc-context ul{margin:0;padding-left:20px}.sandbox-answer-input{margin-bottom:var(--space-5)}.sandbox-answer-input textarea{width:100%;font-family:inherit;font-size:var(--text-base);resize:vertical}.sandbox-results{background:var(--bg-card);border:1px solid var(--edge);border-radius:var(--radius);padding:var(--space-4);margin-top:var(--space-4)}.sandbox-results h3{margin:0 0 var(--space-3);font-size:var(--text-lg)}.sandbox-results h4{margin:var(--space-4) 0 var(--space-2);font-size:var(--text-sm);font-weight:600;color:var(--text-secondary)}.sandbox-score-row{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.sandbox-score{font-size:var(--text-xl);font-weight:700}.sandbox-score.full{color:var(--color-correct)}.sandbox-score.partial{color:#e6a817}.sandbox-score.zero{color:var(--color-incorrect)}.sandbox-confidence{padding:2px 10px;border-radius:999px;font-size:var(--text-sm);font-weight:600}.sandbox-confidence.confident{background:#22c55e26;color:#16a34a}.sandbox-confidence.uncertain{background:#eab30826;color:#ca8a04}.sandbox-confidence-reasoning{font-size:var(--text-sm);font-style:italic;color:var(--text-secondary);margin:var(--space-1) 0 0}.sandbox-ms-confidence{font-size:.75rem;font-weight:600;margin-left:8px;padding:1px 6px;border-radius:4px}.sandbox-ms-confidence.confident{background:#22c55e1f;color:#16a34a}.sandbox-ms-confidence.uncertain{background:#eab30826;color:#ca8a04}.sandbox-ms-conf-reason{font-size:.75rem;font-style:italic;color:var(--text-secondary)}.ms-confidence-col{width:70px}.ms-confidence-cell{text-align:center;padding:0 4px}.ms-uncertain-badge{font-size:.68rem;font-weight:600;padding:1px 6px;border-radius:4px;background:#eab30826;color:#ca8a04;white-space:nowrap;cursor:help}.sandbox-feedback{line-height:1.6}.sandbox-feedback p{margin:0}.sandbox-ms-results,.sandbox-step-results{display:flex;flex-direction:column;gap:6px}.sandbox-ms-row,.sandbox-step-row{display:flex;align-items:flex-start;gap:var(--space-2);padding:6px 10px;border-radius:var(--radius-sm, 6px);font-size:var(--text-sm);line-height:1.5}.sandbox-ms-row.awarded,.sandbox-step-row.awarded{background:#22c55e14}.sandbox-ms-row.not-awarded,.sandbox-step-row.not-awarded{background:#ef444414}.sandbox-ms-icon{flex-shrink:0;font-weight:700;width:20px;text-align:center}.sandbox-ms-row.awarded .sandbox-ms-icon{color:var(--color-correct)}.sandbox-ms-row.not-awarded .sandbox-ms-icon{color:var(--color-incorrect)}.sandbox-step-row.awarded .sandbox-ms-icon{color:var(--color-correct)}.sandbox-step-row.not-awarded .sandbox-ms-icon{color:var(--color-incorrect)}.sandbox-step-reason{color:var(--text-secondary);font-style:italic}.sandbox-raw{margin-top:var(--space-4);border:1px solid var(--edge);border-radius:var(--radius)}.sandbox-raw summary{padding:var(--space-2) var(--space-3);cursor:pointer;font-size:var(--text-sm);font-weight:600;color:var(--text-secondary)}.sandbox-raw pre{margin:0;padding:var(--space-3);background:var(--bg-page, #f8f9fa);border-top:1px solid var(--edge);overflow-x:auto;font-size:12px;line-height:1.5;max-height:400px;overflow-y:auto}.sandbox-raw h4{margin:var(--space-3) var(--space-3) var(--space-1);font-size:var(--text-sm);color:var(--text-secondary)}.sandbox-prompt-toggle{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-3) 0 var(--space-2)}.sandbox-toggle-label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none}.sandbox-toggle-label input[type=checkbox]{width:16px;height:16px;cursor:pointer}.sandbox-prompt-editor{background:var(--surface-secondary);border:1px solid var(--edge-light);border-radius:var(--radius-lg);padding:var(--space-3);margin-bottom:var(--space-3)}.sandbox-prompt-textarea{width:100%;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:12px;line-height:1.5;padding:var(--space-2);border:1px solid var(--edge-light);border-radius:var(--radius-md);background:var(--surface-primary);color:var(--text-primary);resize:vertical;tab-size:2}.sandbox-prompt-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 20%,transparent)}@media(max-width:600px){.sandbox-row{flex-direction:column}}.ait-phase{margin-top:var(--space-3)}.ait-version-row{display:flex;gap:var(--space-3);align-items:flex-end;flex-wrap:wrap;margin-bottom:var(--space-3)}.ait-model-row{display:flex;gap:var(--space-3);align-items:flex-end;flex-wrap:wrap;margin-bottom:var(--space-3);padding:12px 16px;background:var(--bg-secondary, #f8f9fa);border-radius:var(--radius-md);border:1px solid var(--edge-light)}.ait-used-badge{display:inline-block;font-size:.65rem;background:var(--text-secondary);color:#fff;padding:1px 5px;border-radius:4px;margin-left:6px;vertical-align:middle}.ait-marking-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}.ait-nav-arrows{display:flex;gap:var(--space-2);align-items:center}.ait-marking-card{border:1px solid var(--edge-light);border-radius:var(--radius-lg, 8px);padding:var(--space-3);margin-bottom:var(--space-2)}.ait-marking-point{display:flex;align-items:flex-start;gap:var(--space-2);padding:8px 12px;border-radius:var(--radius-md, 6px);margin-bottom:4px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}.ait-marking-point:hover{opacity:.85}.ait-marking-point.awarded{background:#4caf501f}.ait-marking-point.not-awarded{background:#f4433614}.ait-progress-grid{width:100%;border-collapse:collapse;margin-top:var(--space-3)}.ait-progress-grid th,.ait-progress-grid td{padding:10px 16px;text-align:center;border:1px solid var(--edge-light)}.ait-progress-grid th{background:var(--bg-secondary, #f8f9fa);font-weight:600}.ait-progress-cell{min-width:80px}.ait-compare-table{width:100%;border-collapse:collapse}.ait-compare-table th,.ait-compare-table td{padding:8px 12px;border:1px solid var(--edge-light);text-align:center;font-size:var(--text-sm)}.ait-compare-table th{background:var(--bg-secondary, #f8f9fa);font-weight:600}.ait-compare-table td:first-child{text-align:left}.ait-compare-cell.match{background:#4caf501f}.ait-compare-cell.mismatch{background:#f443361f}.ait-summary-table{border-collapse:collapse;margin-top:var(--space-2)}.ait-summary-table th,.ait-summary-table td{padding:8px 16px;border:1px solid var(--edge-light);text-align:center}.ait-summary-table th{background:var(--bg-secondary, #f8f9fa);font-weight:600}.ait-summary-table td:first-child{text-align:left}.ait-accuracy-cell.high{background:#4caf5026;color:#2e7d32;font-weight:600}.ait-accuracy-cell.medium{background:#ff980026;color:#e65100;font-weight:600}.ait-accuracy-cell.low{background:#f4433626;color:#c62828;font-weight:600}.ait-queue-modal{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.ait-queue-content{background:var(--bg-primary, #fff);border-radius:var(--radius-lg, 8px);padding:var(--space-4);max-width:500px;width:90%;max-height:80vh;overflow-y:auto}.ait-queue-item{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid var(--edge-light)}.ait-queue-item:last-child{border-bottom:none}.ait-results-filters{display:flex;gap:var(--space-2);align-items:flex-end;flex-wrap:wrap;margin-bottom:var(--space-3)}.ait-results-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.ait-results-table th,.ait-results-table td{padding:8px 10px;border:1px solid var(--edge-light);text-align:left}.ait-results-table th{background:var(--bg-secondary, #f8f9fa);font-weight:600;position:sticky;top:0}.ait-results-table tbody tr:hover{background:#00000005}.ait-expand-row td{background:var(--bg-secondary, #f8f9fa);padding:var(--space-2) var(--space-3)}.ait-summary-footer td{background:var(--bg-secondary, #f8f9fa);font-weight:600;border-top:2px solid var(--edge-light)}@media(max-width:600px){.ait-version-row{flex-direction:column;align-items:stretch}.ait-marking-header{flex-direction:column}.ait-results-filters{flex-direction:column;align-items:stretch}}.bm-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.bm-header h1{margin:0;font-size:var(--text-xl)}.bm-description{color:var(--text-secondary);font-size:var(--text-sm);max-width:600px;margin-bottom:var(--space-4)}.bm-setup-form{display:flex;flex-direction:column;gap:var(--space-3);max-width:400px}.bm-hint{font-size:.75rem;color:var(--text-secondary);margin-top:2px}.bm-resume-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border:1.5px solid var(--color-primary);border-radius:10px;background:color-mix(in srgb,var(--color-primary) 6%,transparent);margin-bottom:20px}.bm-resume-info{display:flex;flex-direction:column;gap:4px}.bm-resume-info strong{font-size:.9rem}.bm-resume-info span{font-size:.8rem;color:var(--text-secondary)}.bm-resume-actions{display:flex;gap:8px;flex-shrink:0}.bm-history{margin-top:32px;max-width:700px}.bm-history h3{font-size:1rem;margin-bottom:12px}.bm-history-list{display:flex;flex-direction:column;gap:8px}.bm-history-row{display:flex;align-items:center;gap:16px;padding:10px 14px;border:1px solid var(--edge-light);border-radius:8px;font-size:.8rem}.bm-history-meta{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.bm-history-meta strong{font-size:.85rem}.bm-history-meta span{color:var(--text-secondary);font-size:.75rem}.bm-history-accuracy{display:flex;gap:8px;flex-shrink:0}.bm-history-pct{font-size:.75rem;font-weight:600;padding:2px 6px;border-radius:4px}.bm-history-pct.high{color:var(--color-correct);background:color-mix(in srgb,var(--color-correct) 10%,transparent)}.bm-history-pct.medium{color:var(--color-warning, #c08800);background:color-mix(in srgb,var(--color-warning, #c08800) 10%,transparent)}.bm-history-pct.low{color:var(--color-incorrect);background:color-mix(in srgb,var(--color-incorrect) 10%,transparent)}.bm-history-actions{display:flex;gap:6px;flex-shrink:0}.bm-mode-options{display:flex;flex-direction:column;gap:8px;margin-top:4px}.bm-mode-option{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border:1.5px solid var(--edge-light);border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s}.bm-mode-option:hover{border-color:var(--text-secondary)}.bm-mode-option.selected{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 6%,transparent)}.bm-mode-option input[type=radio]{margin-top:3px;accent-color:var(--color-primary)}.bm-mode-option strong{display:block;font-size:.875rem}.bm-mode-desc{display:block;font-size:.75rem;color:var(--text-secondary);margin-top:2px;font-weight:400}.bm-config-grid{display:flex;gap:0;align-items:flex-start;margin-bottom:16px}.bm-config-grid>.bm-model-group{min-width:120px;padding:0 16px;border-left:1px solid var(--edge-light)}.bm-config-grid>.bm-model-group:first-child{padding-left:0;border-left:none}.bm-model-group{display:flex;flex-direction:column;gap:4px}.bm-model-provider{font-weight:600;font-size:.8rem;color:var(--text-secondary);margin-bottom:2px}.bm-model-check{display:flex;align-items:center;gap:6px;font-size:.85rem;cursor:pointer}.bm-model-check input[type=checkbox]{margin:0}.bm-generating,.bm-waiting{display:flex;flex-direction:column;align-items:center;padding:48px 0;text-align:center}.bm-gen-status,.bm-wait-status{margin-top:var(--space-3);color:var(--text-secondary);font-size:var(--text-sm)}.bm-gen-warning{color:var(--warning, #e65100);font-size:var(--text-sm);margin-top:var(--space-2)}.bm-progress-bar{width:100%;max-width:400px;height:6px;background:var(--edge-light, #e0e0e0);border-radius:3px;margin-top:var(--space-2);overflow:hidden}.bm-progress-fill{height:100%;background:var(--primary, #1976d2);border-radius:3px;transition:width .3s ease}.bm-marking-progress{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.bm-marking-progress .bm-progress-bar{max-width:none;flex:1}.bm-progress-label{font-size:var(--text-sm);color:var(--text-secondary);white-space:nowrap}.bm-question-info{background:var(--bg-primary, #fff);border:1px solid var(--edge-light);border-radius:var(--radius-md, 6px);padding:var(--space-3);margin-bottom:var(--space-4)}.bm-question-meta{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-2)}.bm-meta-tag{font-size:.7rem;padding:2px 8px;background:var(--bg-secondary, #f0f0f0);border-radius:var(--radius-sm, 4px);color:var(--text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:.03em}.bm-question-title{margin:0 0 var(--space-2) 0;font-size:var(--text-base)}.bm-question-text{line-height:1.6}.bm-mark-scheme-ref{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--edge-light)}.bm-mark-scheme-ref h4{margin:0 0 var(--space-2) 0;font-size:var(--text-sm)}.bm-mark-scheme-ref ol{margin:0;padding-left:20px;font-size:var(--text-sm)}.bm-mark-scheme-ref li{margin-bottom:4px}.bm-calc-context{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary)}.bm-calc-context h4{margin:0 0 var(--space-1) 0}.bm-calc-context ul{margin:0;padding-left:20px}.bm-answers-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-bottom:var(--space-4)}.bm-answer-card{background:var(--bg-primary, #fff);border:1px solid var(--edge-light);border-radius:var(--radius-md, 6px);overflow:hidden}.bm-answer-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--edge-light);background:var(--bg-secondary, #f8f9fa)}.bm-answer-level{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:var(--radius-sm, 4px)}.bm-level-weak{background:#f443361f;color:#c62828}.bm-level-partial{background:#ff98001f;color:#e65100}.bm-level-strong{background:#4caf501f;color:#2e7d32}.bm-answer-score{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.bm-answer-text{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);line-height:1.5;max-height:200px;overflow-y:auto}.bm-marking-points{padding:var(--space-2)}.bm-mark-point{display:flex;align-items:flex-start;gap:var(--space-2);padding:6px 10px;border-radius:var(--radius-sm, 4px);cursor:pointer;font-size:var(--text-sm);transition:background .15s;-webkit-user-select:none;user-select:none}.bm-mark-point:hover{opacity:.85}.bm-mark-point.awarded{background:#4caf501f}.bm-mark-point.not-awarded{background:#f4433614}.bm-mark-icon{font-weight:700;min-width:16px;text-align:center}.bm-mark-point.awarded .bm-mark-icon{color:#2e7d32}.bm-mark-point.not-awarded .bm-mark-icon{color:#c62828}.bm-marking-actions{display:flex;align-items:center;gap:var(--space-3)}.bm-ai-status{font-size:var(--text-sm);color:var(--text-secondary)}.bm-results{max-width:700px}.bm-results h2{margin:0 0 var(--space-2) 0}.bm-results-summary{color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-4)}.bm-accuracy-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-bottom:var(--space-4)}.bm-accuracy-card{border:1px solid var(--edge-light);border-radius:var(--radius-md, 6px);padding:var(--space-3);text-align:center}.bm-accuracy-card h3{margin:0 0 var(--space-1) 0;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary)}.bm-accuracy-pct{font-size:2rem;font-weight:700;line-height:1.2}.bm-accuracy-card p{font-size:var(--text-sm);color:var(--text-secondary);margin:var(--space-1) 0 0 0}.bm-accuracy-high .bm-accuracy-pct{color:#2e7d32}.bm-accuracy-medium .bm-accuracy-pct{color:#e65100}.bm-accuracy-low .bm-accuracy-pct{color:#c62828}.bm-results-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}@media(max-width:900px){.bm-answers-grid,.bm-accuracy-cards{grid-template-columns:1fr}}.art-page{max-width:900px;margin:0 auto;padding:var(--space-4) var(--space-3)}.art-page h1{margin-bottom:var(--space-1)}.art-subtitle{color:var(--text-secondary);margin-bottom:var(--space-4)}.art-section{margin-bottom:var(--space-4)}.art-drop-zone{border:2px dashed var(--border-color);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-4);text-align:center;cursor:pointer;transition:border-color .15s;margin-bottom:var(--space-3)}.art-drop-zone:hover{border-color:var(--color-primary)}.art-upload-summary strong{display:block;margin-bottom:var(--space-1)}.art-upload-summary p{margin:var(--space-1) 0;color:var(--text-secondary)}.art-warnings{color:var(--color-warning, #e67e22);font-size:.85rem;margin-top:var(--space-2)}.art-model-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-3);margin-bottom:var(--space-3)}.art-provider-group{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-2)}.art-provider-group h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:var(--space-1)}.art-model-checkbox{display:flex;align-items:center;gap:var(--space-1);padding:4px 0;cursor:pointer;font-size:.9rem}.art-model-checkbox input{margin:0}.art-badge{font-size:.7rem;background:var(--color-primary);color:#fff;padding:1px 6px;border-radius:9999px;margin-left:auto}.art-options{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap;margin-bottom:var(--space-3)}.art-timeout-label{display:flex;align-items:center;gap:var(--space-1);font-size:.9rem}.art-timeout-input{width:60px;padding:4px 6px;border:1px solid var(--border-color);border-radius:var(--radius-sm)}.art-actions{display:flex;gap:var(--space-2)}.art-btn{padding:8px 18px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-color);cursor:pointer;font-size:.9rem;transition:background .15s}.art-btn:hover{background:var(--hover-color, #f0f0f0)}.art-btn:disabled{opacity:.5;cursor:not-allowed}.art-btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.art-btn-primary:hover{opacity:.9}.art-progress-bar{width:100%;height:8px;background:var(--border-color);border-radius:4px;overflow:hidden;margin-bottom:var(--space-1)}.art-progress-fill{height:100%;background:var(--color-primary);transition:width .3s}.art-progress-text{font-size:.85rem;color:var(--text-secondary);margin-bottom:var(--space-2)}.art-errors{margin-bottom:var(--space-2);font-size:.85rem}.art-errors summary{cursor:pointer;color:var(--color-error, #e74c3c)}.art-errors ul{padding-left:var(--space-3);margin-top:var(--space-1)}.art-errors li{margin-bottom:4px}.art-error-note{color:var(--color-error, #e74c3c);margin-bottom:var(--space-2)}.art-summary-table{width:100%;border-collapse:collapse;margin-bottom:var(--space-3)}.art-summary-table th,.art-summary-table td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--border-color)}.art-summary-table th{font-size:.8rem;text-transform:uppercase;color:var(--text-secondary)}
