*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f5f5f5;--bg-surface: #ffffff;--bg-card: #eef1f5;--bg-input: #ffffff;--text: #1a1a1a;--text-muted: #6b7280;--primary: #2563eb;--primary-hover: #1d4ed8;--success: #16a34a;--danger: #dc2626;--warning: #d97706;--border: #d1d5db;--radius: 6px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;height:100vh;overflow:hidden}.main-nav{display:flex;align-items:center;padding:0 1.5rem;height:48px;background:var(--bg-surface);border-bottom:1px solid var(--border);gap:1.5rem}.nav-brand{font-weight:700;font-size:1.1rem;color:var(--primary);text-decoration:none}.nav-brand:hover{opacity:.8}.nav-links{flex:1}#root{display:flex;flex-direction:column;height:100vh;overflow:hidden}main{margin:0 auto;padding:1.5rem;flex:1;min-height:0;width:100%;overflow:auto;display:flex;flex-direction:column}.pipeline-page{display:flex;flex-direction:column;flex:1;min-height:0}button{cursor:pointer;border:1px solid var(--border);background:var(--bg-card);color:var(--text);padding:.5rem 1rem;border-radius:var(--radius);font-size:.875rem}button:hover{border-color:var(--primary)}button.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.primary:hover{background:var(--primary-hover)}.btn-small{padding:.25rem .5rem;font-size:.8rem}.btn-approve{background:var(--success);border-color:var(--success);color:#fff}.btn-reject{background:var(--danger);border-color:var(--danger);color:#fff}.btn-retry{background:var(--warning);border-color:var(--warning);color:#000}.btn-delete{background:none;border-color:var(--danger);color:var(--danger)}.btn-delete:hover{background:var(--danger);color:#fff}.btn-refresh{margin-top:.5rem;width:100%}input,textarea,select{background:var(--bg-input);border:1px solid var(--border);color:var(--text);padding:.5rem;border-radius:var(--radius);font-size:.875rem;width:100%;font-family:inherit}input:focus,textarea:focus{outline:none;border-color:var(--primary)}label{display:block;margin-bottom:.75rem;font-size:.85rem;color:var(--text-muted)}label input,label textarea{margin-top:.25rem}textarea{min-height:80px;resize:vertical}.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh}.login-form{background:var(--bg-surface);padding:2rem;border-radius:var(--radius);border:1px solid var(--border);width:360px}.login-form h1{font-size:1.5rem;margin-bottom:1.5rem;text-align:center}.login-form button{width:100%;margin-top:.5rem;background:var(--primary);border-color:var(--primary);color:#fff;padding:.6rem}.login-subtitle{text-align:center;color:var(--text-muted);margin-top:-1rem;margin-bottom:1rem;font-size:.9rem}.login-link{text-align:center;margin-top:1rem;font-size:.85rem;color:var(--text-muted)}.login-link a{color:var(--primary)}.breadcrumb{font-size:.9rem;color:var(--text-muted);margin-bottom:1.25rem}.breadcrumb a{color:var(--primary);text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.page-header-actions{display:flex;gap:.5rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}a.card,.card{display:block;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;text-decoration:none;color:var(--text);transition:border-color .15s}a.card:hover,.card:hover{border-color:var(--primary)}a.card.card-unanswered,a.card.card-unanswered:hover{border-color:#ef4444}.card-row{display:flex;align-items:center;gap:.75rem}.card-list{display:flex;flex-direction:column;gap:.5rem}.card-name{font-weight:600;font-size:1rem}.card-row-with-actions{display:flex;align-items:center}.card-row-with-actions .card-link{flex:1;text-decoration:none;color:inherit;padding:.6rem .8rem}.category-action-btn{background:none;border:none;color:var(--muted);cursor:pointer;font-size:1.1rem;padding:.3rem .5rem;border-radius:4px;opacity:0;transition:opacity .15s}.card-row-with-actions:hover .category-action-btn{opacity:1}.category-action-btn.danger:hover{color:var(--danger, #e53e3e)}.confirm-modal{background:var(--bg);border-radius:12px;padding:1.5rem;max-width:400px;width:90vw}.confirm-modal p{margin:0 0 .5rem}.confirm-modal-warning{color:var(--muted);font-size:.9rem}.confirm-modal-actions{display:flex;gap:.8rem;justify-content:flex-end;margin-top:1rem}.btn-danger{background:var(--danger, #e53e3e);color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-weight:600}.btn-danger:hover{opacity:.9}.editable-name-btn{font-size:.7rem;padding:.15rem .4rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text-muted);cursor:pointer;opacity:0;transition:opacity .15s;margin-left:auto}.card-row:hover .editable-name-btn,.breadcrumb:hover>.editable-name-btn{opacity:1}.editable-name-btn:hover{border-color:var(--primary);color:var(--primary)}.editable-name-input{font:inherit;background:var(--bg-surface);border:1px solid var(--primary);border-radius:var(--radius);padding:.1rem .3rem;outline:none}.question-source-link{font-size:.75rem;color:var(--text-muted);margin-left:auto;text-decoration:none}.question-source-link:hover{color:var(--primary)}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.5rem}.column{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;min-height:300px}.column-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.column-header h3{font-size:.95rem;color:var(--text-muted)}.item-list{list-style:none}.item-list li{padding:.4rem .6rem;border-radius:var(--radius);cursor:pointer;font-size:.9rem}.item-list li:hover{background:var(--bg-card)}.item-list li.selected{background:var(--primary);color:#fff}.item-list li.selected a{color:#fff}.theme-link{text-decoration:none;color:var(--text);display:block}.theme-link:hover{color:var(--primary)}.section{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-bottom:1rem}.section h3{font-size:1rem;margin-bottom:.75rem}.review-layout{display:grid;grid-template-columns:260px 1fr;gap:1rem}.step-list{max-height:500px;overflow-y:auto}.step-group-label{font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--text-muted);padding:.5rem .6rem .2rem;letter-spacing:.05em}.review-item{padding:.5rem .6rem;border-radius:var(--radius);cursor:pointer;display:flex;align-items:center;gap:.5rem;font-size:.85rem;margin-bottom:.25rem}.review-item:hover{background:var(--bg-card)}.review-item.selected{background:var(--bg-card);border:1px solid var(--primary)}.step-name{font-weight:600}.step-seq{color:var(--text-muted);font-size:.8rem}.step-id{color:var(--text-muted);font-size:.75rem;font-family:monospace;margin-left:auto}.review-detail{border:1px solid var(--border);border-radius:var(--radius);padding:1rem;background:var(--bg)}.detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.detail-meta{font-size:.85rem;color:var(--text-muted);margin-bottom:1rem;font-family:monospace}.status{padding:.2rem .5rem;border-radius:var(--radius);font-size:.8rem;font-weight:600}.status-needs_review{background:#d977061f;color:var(--warning)}.status-approved{background:#16a34a1f;color:var(--success)}.status-rejected{background:#dc26261f;color:var(--danger)}.status-pending{color:var(--text-muted)}.status-succeeded{color:var(--success)}.status-failed{color:var(--danger)}.status-running{color:var(--primary)}.artifact-view{display:flex;flex-direction:column;align-items:center}.artifact-view .artifact-json{align-self:stretch}.artifact-view .image-overlay-img{width:auto;max-width:100%;max-height:calc(100vh - 250px)}.crop-viewer .image-overlay-img{max-height:calc(100vh - 350px)}.artifact-image{max-width:100%;width:auto;max-height:calc(100vh - 250px);border-radius:var(--radius);border:1px solid var(--border)}.artifact-json{background:var(--bg-card);padding:1rem;border-radius:var(--radius);overflow-x:auto;font-size:.85rem;max-height:400px;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.orient-editor{display:flex;flex-direction:column;gap:12px}.orient-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.orient-controls .btn-small.active{background:var(--accent);color:#fff}.orient-info{font-size:.85em;color:var(--fg-dim);margin-left:4px}.orient-preview{display:flex;justify-content:center;align-items:center;overflow:visible;max-height:calc(100vh - 310px)}.orient-preview img{max-width:100%;max-height:calc(100vh - 310px);transition:transform .2s ease}.orient-preview.rotated-sideways img{max-width:calc(100vh - 310px);max-height:100%}.corner-editor{position:relative;width:fit-content;max-width:100%}.corner-editor-image{width:auto;max-width:100%;max-height:calc(100vh - 250px);display:block;border-radius:var(--radius);border:1px solid var(--border);-webkit-user-select:none;user-select:none}.corner-editor-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.corner-editor-overlay circle{pointer-events:auto;cursor:grab}.corner-editor-overlay circle:active{cursor:grabbing}.region-editor-panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem;display:flex;flex-direction:column;gap:.6rem;overflow-y:auto;min-width:0;min-height:0}.region-editor-section{display:flex;flex-direction:column;gap:.3rem}.region-editor-section-label{font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.region-editor-btn{width:100%;text-align:center}.region-editor-select{width:100%!important;padding:.2rem .3rem!important;font-size:.8rem!important}.region-editor-zoom-row{display:flex;align-items:center;gap:.25rem}.region-editor-zoom{font-size:.8rem;min-width:2.2rem;text-align:center;color:var(--text-muted)}.region-editor-count{font-size:.8rem;color:var(--text-muted);white-space:nowrap}.region-editor-chips{display:flex;flex-direction:column;gap:.3rem}.region-editor-viewport{overflow:hidden;border-radius:var(--radius);min-width:0;min-height:0;flex:1;outline:none;user-select:none;-webkit-user-select:none}.region-editor-canvas{transform-origin:0 0}.image-overlay{position:relative;line-height:0}.image-overlay-img{display:block;width:100%;-webkit-user-select:none;user-select:none;border-radius:var(--radius)}.image-overlay-svg{position:absolute;top:0;left:0}.rep-mode-bar{display:flex;gap:.2rem}.rep-mode-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.25rem;padding:.3rem .25rem;font-size:.75rem;font-weight:500;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--bg-base);color:var(--text-muted);cursor:pointer;transition:border-color .1s,background .1s,color .1s;white-space:nowrap}.rep-mode-btn:hover{border-color:var(--accent);color:var(--text)}.rep-mode-btn.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent);font-weight:600}.rep-kbd{font-size:.65rem;opacity:.55;font-family:monospace;margin-left:.1rem}.rep-selected-section{border:1px solid var(--border);border-radius:var(--radius);padding:.4rem .5rem;background:color-mix(in srgb,var(--bg-surface) 60%,var(--bg-base))}.rep-group-card{border:1.5px solid var(--border);border-radius:var(--radius);padding:.35rem .5rem;display:flex;flex-direction:column;gap:.35rem}.rep-group-card-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.rep-group-card-name{font-size:.8rem;font-weight:600;color:var(--text)}.rep-group-card-count{font-size:.72rem;color:var(--text-muted)}.rep-type-pills{display:flex;gap:.2rem;flex-wrap:wrap}.rep-type-pill{padding:.15rem .4rem;font-size:.72rem;font-weight:500;border:1.5px solid var(--border);border-radius:9999px;background:transparent;cursor:pointer;transition:background .1s,color .1s;color:var(--text-muted)}.rep-type-pill.active{color:#fff}.rep-type-pill:not(.active):hover{opacity:.8}.rep-action-row{display:flex;gap:.25rem;flex-wrap:wrap}.rep-action-row .region-editor-btn{flex:1;min-width:0}.rep-autosplit-row{display:flex;align-items:center;gap:.4rem}.rep-autosplit-row .region-editor-btn{flex:1;width:auto}.rep-mingap-input{width:4.5rem}.rep-split-status{font-size:.72rem;padding:.2rem .4rem;border-radius:.25rem;background:color-mix(in srgb,var(--color-accent, #2563eb) 12%,transparent);color:var(--color-accent, #2563eb)}.rep-stats-section{margin-top:auto}.rep-type-summary{display:flex;gap:.25rem;flex-wrap:wrap;margin-bottom:.25rem}.rep-type-badge{font-size:.7rem;font-weight:600;padding:.1rem .4rem;border-radius:9999px;border:1px solid;white-space:nowrap}.group-label-chip{display:flex;align-items:center;gap:.35rem;padding:.2rem .5rem;border:1.5px solid var(--border);border-radius:var(--radius);font-size:.8rem;cursor:pointer}.group-label-chip.active{font-weight:600}.group-label-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.group-label-text{white-space:nowrap}.group-label-select{width:auto!important;padding:0 .2rem!important;font-size:.75rem!important;border:none!important;background:transparent!important;cursor:pointer}.group-label-input{width:80px!important;padding:.1rem .25rem!important;font-size:.8rem!important}.jobs-list{margin-bottom:1rem}.jobs-list h4{font-size:.9rem;margin-bottom:.5rem;color:var(--text-muted)}.job-item{display:flex;gap:1rem;font-size:.85rem;padding:.3rem 0}.crop-viewer{display:flex;flex-direction:column;gap:.5rem}.crop-padding-control{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);font-size:.85rem}.crop-padding-label{font-weight:600;color:var(--text-muted);white-space:nowrap}.crop-padding-slider{flex:1;min-width:100px;max-width:200px;accent-color:var(--primary)}.crop-padding-input{width:3.5rem;padding:.15rem .3rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.85rem;text-align:right}.crop-padding-unit{color:var(--text-muted)}.crop-padding-changed{font-size:.75rem;color:var(--warning);font-style:italic;white-space:nowrap}.crop-toggle-btn{margin-left:auto;padding:.2rem .6rem;font-size:.75rem;border:1px solid var(--border);border-radius:4px;background:transparent;cursor:pointer;white-space:nowrap;color:var(--text-muted)}.crop-toggle-btn:hover{background:var(--surface-hover, #f1f5f9);color:var(--text)}.crop-toggle-btn.active{background:color-mix(in srgb,var(--primary, #2563eb) 12%,transparent);color:var(--primary, #2563eb);border-color:var(--primary, #2563eb)}.crop-viewer-summary{display:flex;flex-wrap:wrap;gap:.4rem}.crop-chip{display:flex;align-items:center;gap:.35rem;padding:.2rem .5rem;border:1.5px solid var(--border);border-radius:var(--radius);font-size:.8rem;cursor:pointer}.crop-chip.active{font-weight:600}.crop-chip-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.crop-chip-label{white-space:nowrap}.crop-viewer-detail{display:flex;gap:1rem;align-items:flex-start;padding:.75rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius)}.crop-thumbnail{max-width:300px;max-height:200px;border-radius:var(--radius);border:1px solid var(--border)}.crop-thumbnail-placeholder{width:200px;height:100px;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);border-radius:var(--radius);color:var(--text-muted);font-size:.85rem}.crop-detail-info{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.crop-detail-label{font-weight:500}.crop-detail-size{color:var(--text-muted)}.ocr-review{display:flex;flex-direction:column;gap:.75rem}.ocr-crop-image{max-width:100%;max-height:250px;border-radius:var(--radius);border:1px solid var(--border);object-fit:contain}.ocr-review-details{display:flex;flex-direction:column;gap:.5rem}.ocr-confidence{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.ocr-confidence-label{color:var(--text-muted)}.ocr-confidence-value{font-weight:600;font-family:monospace}.ocr-confidence-value.high{color:var(--success)}.ocr-confidence-value.medium{color:var(--warning)}.ocr-confidence-value.low{color:var(--danger)}.ocr-section-label{font-size:.8rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.ocr-diff-section{display:flex;flex-direction:column;gap:.25rem}.diff-view{background:var(--bg-card);padding:.75rem;border-radius:var(--radius);font-size:.85rem;line-height:1.6;white-space:pre-wrap;word-break:break-word;max-height:250px;overflow-y:auto;border:1px solid var(--border)}.diff-removed{background:#dc262626;color:var(--danger);text-decoration:line-through;border-radius:2px}.diff-added{background:#16a34a26;color:var(--success);border-radius:2px}.diff-empty{font-size:.8rem;color:var(--text-muted);padding:.5rem 0}.ocr-text-label{font-size:.85rem;color:var(--text-muted)}.ocr-text-input{margin-top:.25rem;font-family:inherit;font-size:.9rem;line-height:1.5;min-height:100px}.structure-review,.structure-form{display:flex;flex-direction:column;gap:.75rem}.structure-field{display:flex;flex-direction:column;gap:.25rem}.structure-label{display:flex;flex-direction:column;font-size:.85rem;color:var(--text-muted);font-weight:500}.structure-number-input{width:80px!important;margin-top:.25rem}.structure-stem-input{margin-top:.25rem;font-size:.9rem;line-height:1.5;min-height:80px}.structure-options{display:flex;flex-direction:column;gap:.35rem;margin-top:.25rem}.structure-option-row{display:flex;align-items:center;gap:.5rem}.structure-option-row .question-option-delete-btn{display:none}.structure-option-row:hover .question-option-delete-btn{display:inline}.structure-option-key{font-weight:600;font-size:.9rem;min-width:1.5rem;text-align:center}.structure-option-key-input{width:2rem;text-align:center;font-weight:600;font-size:.9rem;padding:.25rem;border:1px solid transparent;background:transparent}.structure-option-key-input:hover,.structure-option-key-input:focus{border-color:var(--border);background:var(--bg)}.structure-option-value{flex:1}.review-actions{display:flex;gap:.5rem}.drop-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:2rem;text-align:center;cursor:pointer;color:var(--text-muted);margin:.5rem 0;transition:border-color .2s}.drop-zone.drag-over{border-color:var(--primary);color:var(--text)}.upload-results{margin-top:.75rem}.upload-result{padding:.5rem .75rem;border-radius:var(--radius);margin-bottom:.5rem;display:flex;justify-content:space-between;font-size:.9rem}.upload-result.success{background:#16a34a14;border:1px solid var(--success)}.upload-result.error{background:#dc262614;border:1px solid var(--danger)}.modal-overlay{position:fixed;inset:0;background:#0000004d;display:flex;justify-content:center;align-items:center;z-index:100}.modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;width:400px}.modal h3{margin-bottom:1rem}.modal-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}.question-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-bottom:.75rem}.question-card.needs-review{border-color:var(--warning)}.question-card.no-answer{border-color:var(--danger)}.question-card.duplicate-number{border-color:var(--warning)}.badge-warning{background:#d977062e;color:var(--warning)}.question-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.question-number{font-weight:700;font-size:1rem}.badge{background:#d977061f;color:var(--warning);padding:.15rem .4rem;border-radius:var(--radius);font-size:.75rem;font-weight:600}.question-stem{margin-bottom:.5rem;white-space:pre-wrap}.question-options{list-style:none;margin-bottom:.5rem}.question-options li{padding:.2rem .4rem;font-size:.9rem}.question-options li.correct{color:var(--success);font-weight:600}.correct-answer{font-size:.85rem;color:var(--success);margin-bottom:.5rem}.question-actions{display:flex;gap:.5rem}.question-edit{margin-top:.5rem}.badge-reviewed{background:#16a34a1f;color:var(--success);padding:.15rem .4rem;border-radius:var(--radius);font-size:.75rem;font-weight:600}.questions-summary{display:flex;flex-direction:column}.questions-list{display:flex;flex-direction:column;gap:.5rem}.questions-link{color:var(--primary);cursor:pointer;text-decoration:underline}.category-summary{display:flex;flex-direction:column;gap:.5rem}.category-tree{display:flex;flex-direction:column;gap:.125rem}.category-node-wrapper{display:flex;flex-direction:column}.category-node{display:flex;align-items:center;gap:.375rem;padding:.35rem .5rem;border-radius:var(--radius);border:1px solid transparent;cursor:grab;font-size:.875rem;position:relative;-webkit-user-select:none;user-select:none}.category-node:hover{background:var(--bg-card)}.category-node.dragging{opacity:.5}.category-node.drop-into{border:2px dashed var(--primary);background:#2563eb0f}.category-node.drop-before:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--primary);border-radius:1px}.category-node.drop-after:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--primary);border-radius:1px}.uncategorized-header{display:flex;align-items:center;gap:.5rem}.move-all-select{font-size:.75rem;padding:.15rem .35rem;border:1px solid var(--border);border-radius:4px;background:#fff;cursor:pointer;color:var(--text-muted)}.drop-prompt-overlay{position:fixed;inset:0;z-index:100}.drop-prompt{position:fixed;display:flex;gap:.25rem;background:#fff;border:1px solid var(--border);border-radius:6px;padding:.35rem;box-shadow:0 4px 12px #00000026;z-index:101;transform:translate(-50%,-100%);margin-top:-8px}.drop-prompt button{padding:.3rem .75rem;border:1px solid var(--border);border-radius:4px;background:#fff;cursor:pointer;font-size:.8rem;white-space:nowrap}.drop-prompt button:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.merge-name-pick{flex-direction:column;min-width:10rem}.merge-name-pick-label{font-size:.75rem;color:var(--text-muted);padding:0 .25rem .25rem}.merge-name-pick-cancel{margin-top:.25rem;color:var(--text-muted)!important;border-color:transparent!important;background:transparent!important}.merge-name-pick-cancel:hover{background:var(--surface-hover, #f1f5f9)!important;color:var(--text, #1e293b)!important}.category-drag-handle{color:var(--text-muted);font-size:.75rem;cursor:grab;flex-shrink:0}.category-expand-btn{background:none;border:none;padding:0 .1rem;font-size:.7rem;color:var(--text-muted);cursor:pointer;flex-shrink:0;line-height:1;min-width:12px}.category-expand-btn:hover{color:var(--text);border:none}.category-node-name{flex:1;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.category-node-name:hover{color:var(--primary);text-decoration:underline}.category-node-name.editing{flex:1;cursor:text;border:1px solid var(--primary);border-radius:var(--radius);padding:.1rem .25rem;font-size:.875rem;outline:none;background:var(--bg-input);min-width:80px}.category-node-count{font-size:.75rem;color:var(--text-muted);flex-shrink:0}.category-node-actions{display:flex;gap:.125rem;flex-shrink:0;opacity:0;transition:opacity .1s}.category-node:hover .category-node-actions{opacity:1}.category-action-btn{background:none;border:1px solid var(--border);padding:.1rem .35rem;font-size:.7rem;border-radius:var(--radius);cursor:pointer;line-height:1.4}.category-action-btn:hover{border-color:var(--primary);color:var(--primary)}.category-action-delete:hover{border-color:var(--danger);color:var(--danger)}.category-children{display:flex;flex-direction:column}.category-questions{display:flex;flex-direction:column;gap:.25rem;padding:.25rem 0}.question-card-preview{padding:.5rem .75rem;cursor:grab;font-size:.825rem}.question-card-preview .answer-match-card-edit-btn{opacity:0}.question-card-preview:hover .answer-match-card-edit-btn{opacity:1}.question-stem-preview{color:var(--text-muted);font-size:.8rem;margin-bottom:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.answer-entry-expanded{padding:.5rem .75rem;cursor:grab;font-size:.825rem;background:#fffbeb;border:1px solid #fde68a;border-radius:var(--radius)}.answer-entry-header{font-weight:600;color:#92400e;margin-bottom:.35rem;font-size:.8rem}.answer-entry-list{display:flex;flex-wrap:wrap;gap:.2rem .6rem}.answer-entry-item{display:inline-flex;gap:.2rem;font-size:.78rem}.answer-entry-qnum{color:var(--text-muted)}.answer-entry-answer{font-weight:600;color:#1e293b}.question-card-preview .question-stem{font-size:.82rem;color:var(--text);line-height:1.4;white-space:pre-wrap}.question-correct-answer{font-size:.72rem;font-weight:600;color:var(--success);background:#f0fdf4;padding:0 .3rem;border-radius:3px;margin-left:auto}.question-options-preview{margin-top:.25rem;display:flex;flex-direction:column;gap:.1rem}.question-option-row{display:flex;gap:.35rem;font-size:.78rem;padding:.05rem .3rem;border-radius:3px}.question-option-row.correct{background:#f0fdf4;font-weight:600}.question-option-key{color:var(--text-muted);font-weight:600;min-width:1.2rem}.question-option-value{color:var(--text)}.question-blanks-preview{margin-top:.25rem;display:flex;flex-wrap:wrap;gap:.25rem}.question-blank-item{font-size:.78rem;background:#eff6ff;padding:.1rem .4rem;border-radius:3px;color:#1e40af}.category-tree-add-root{padding:.25rem 0}.uncategorized-section{margin-top:.5rem;border:1px dashed var(--border);border-radius:var(--radius);padding:.5rem}.uncategorized-header{font-size:.8rem;font-weight:600;color:var(--text-muted);margin-bottom:.25rem}.uncategorized-empty{font-size:.8rem;color:var(--text-muted);font-style:italic;padding:.25rem 0}.category-node.existing-category{border-left:2px solid var(--text-muted);opacity:.75}.category-node.existing-category:hover{opacity:1}.category-node.existing-category .category-node-name{cursor:default}.summary-original-image{margin-top:1.5rem;border-top:1px solid var(--border);padding-top:1rem}.summary-original-image h4{margin:0 0 .5rem;font-size:.875rem;color:var(--text-muted)}.summary-original-image img{max-width:100%;border-radius:var(--radius);border:1px solid var(--border)}.finalization-modal-content{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;width:480px;max-width:90vw;max-height:80vh;overflow-y:auto;display:flex;flex-direction:column;gap:1rem}.finalization-modal-content h3{margin:0}.finalization-category-list{border:1px solid var(--border);border-radius:var(--radius);padding:.5rem;max-height:40vh;overflow-y:auto;font-size:.875rem}.finalization-category-row{display:flex;align-items:center;justify-content:space-between;padding:.25rem;border-radius:3px}.finalization-category-row:hover{background:var(--bg-card)}.finalization-category-name{flex:1}.finalization-category-count{color:var(--text-muted);font-size:.8rem;flex-shrink:0;margin-left:.5rem}.finalization-summary{font-size:.875rem;color:var(--text-muted)}.finalization-note{font-size:.8rem;color:var(--text-muted);background:var(--bg-card);border-radius:var(--radius);padding:.5rem .75rem}.spinner-inline{display:inline-block;width:12px;height:12px;margin-right:.25rem;vertical-align:middle}.image-list{display:flex;flex-direction:column;gap:.25rem}.image-row{display:flex;align-items:center;gap:1rem;padding:.5rem .75rem;border-radius:var(--radius);text-decoration:none;color:var(--text);font-size:.9rem}.image-row:hover{background:var(--bg-card)}.image-filename{flex:1;font-weight:500}.image-size{color:var(--text-muted);font-size:.8rem}.image-arrow{color:var(--primary);font-size:.8rem}.pipeline-layout{display:grid;grid-template-columns:1fr 4fr;gap:4px;flex:1;min-height:0}.pipeline-layout.three-col{grid-template-columns:1fr 4fr 1fr}.pipeline-stepper{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;overflow-y:auto;min-height:0}.keyboard-hints{display:flex;gap:.75rem;padding:.5rem .25rem 0;margin-top:.5rem;border-top:1px solid var(--border);font-size:.7rem;color:var(--text-muted)}.keyboard-hints kbd{display:inline-block;padding:.05rem .3rem;font-size:.65rem;font-family:inherit;background:var(--bg-surface);border:1px solid var(--border);border-radius:3px;margin-right:.15rem}.pipeline-step{display:flex;align-items:center;gap:.5rem;padding:.5rem .6rem;border-radius:var(--radius);cursor:pointer;font-size:.85rem;margin-bottom:2px}.pipeline-step:hover{background:var(--bg-card)}.pipeline-step.active{background:var(--bg-card);outline:2px solid var(--primary)}.pipeline-step.upcoming{opacity:.45;cursor:default}.pipeline-step.sub{padding-left:1.5rem}.pipeline-branch-vertical{margin-top:.25rem}.branch-header{font-weight:600;font-size:.8rem;padding:.3rem .5rem .1rem;color:var(--text-muted);display:flex;align-items:center;gap:.3rem}.branch-rerun-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.85rem;padding:0;line-height:1;opacity:0;transition:opacity .15s}.branch-header:hover .branch-rerun-btn{opacity:.7}.branch-rerun-btn:hover{opacity:1!important;color:var(--accent)}.branch-delete-btn:hover{color:var(--danger, #e53e3e)!important}.pipeline-step.branch-child{padding-left:1.5rem}.step-branch-tag{font-size:.85rem;font-weight:400;color:var(--text-muted)}.chem-toolbar{display:flex;align-items:center;gap:.4rem;margin-bottom:.5rem}.chem-btn{padding:.2rem .5rem;border:1px solid var(--border);border-radius:4px;background:var(--bg-card);cursor:pointer;font-size:.85rem}.chem-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.chem-hint{font-size:.75rem;color:var(--text-muted)}.pipeline-step-group{margin-bottom:2px}.pipeline-step-group>.step-label{font-size:.8rem;font-weight:600;color:var(--text-muted);padding:.4rem .6rem .15rem}.step-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;background:var(--border)}.step-dot.approved{background:var(--success)}.step-dot.needs_review{background:var(--warning)}.step-dot.processing{background:var(--primary);animation:pulse 1.2s infinite}.step-dot.pending{background:var(--border)}.step-dot.rejected{background:var(--danger)}.step-label{flex:1}.step-status-text{font-size:.75rem;color:var(--text-muted)}.step-status-text.approved{color:var(--success)}.step-status-text.needs_review{color:var(--warning)}.step-status-text.processing{color:var(--primary)}.step-status-text.rejected{color:var(--danger)}.pipeline-content{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem;min-width:0;min-height:0;flex:1;overflow-y:auto;display:flex;flex-direction:column}.pipeline-layout.three-col .pipeline-content{overflow:hidden}.pipeline-layout.three-col .pipeline-content>.region-editor-viewport{flex:1;width:100%}.pipeline-content-col{display:flex;flex-direction:column;gap:4px;min-height:0}.pipeline-step-bar{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem;flex-shrink:0}.pipeline-step-bar .job-error{margin-top:.25rem}.pipeline-content-header{display:flex;justify-content:space-between;align-items:center}.pipeline-content-header h3{font-size:1.1rem;text-transform:capitalize}.pipeline-content-header-actions{display:flex;align-items:center;gap:.5rem}.pipeline-waiting{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:3rem 0;color:var(--text-muted)}.step-done-msg{color:var(--text-muted);font-size:.9rem}.job-duration{color:var(--text-muted);font-family:monospace;font-size:.8rem}.spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.region-ocr-row{display:flex;align-items:center;gap:.5rem;padding:.25rem 0}.region-ocr-btn{flex-shrink:0;font-size:.7rem;padding:.15rem .4rem;min-width:2.2rem;display:inline-flex;align-items:center;justify-content:center}.spinner-inline{display:inline-block;width:12px;height:12px;border:2px solid var(--border);border-top-color:var(--text);border-radius:50%;animation:spin .6s linear infinite}.region-ocr-image{width:100%;min-height:32px;max-height:120px;object-fit:contain;object-position:left;border:1px solid var(--border);border-radius:3px;background:var(--bg-surface)}.region-ocr-placeholder{width:100%;height:32px;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:var(--text-muted);background:var(--bg-surface);border:1px solid var(--border);border-radius:3px}.structure-option-with-region{display:flex;flex-direction:column}.structure-field-inline{display:flex;gap:.75rem;align-items:flex-start}.structure-field-inline .structure-number-input{width:60px!important}.field-diff-inline{margin-top:.2rem}.field-diff-inline .diff-view{font-size:.8rem;padding:.4rem .6rem;max-height:80px;line-height:1.4}.field-diff-inline .diff-empty{font-size:.75rem;padding:.2rem 0}.field-empty{outline:2px solid var(--danger)!important;outline-offset:-1px}.field-diff-mismatch{font-size:.75rem;color:var(--warning);font-weight:600;margin-left:.4rem}.field-diff-accept{cursor:pointer;text-decoration:underline}.field-diff-accept:hover{color:var(--primary)}.field-diff-clickable{cursor:pointer}.field-diff-clickable:hover .diff-view{border-color:var(--primary)}.field-diff-clickable .diff-empty{cursor:default}.structure-match-banner{padding:.5rem .75rem;border-radius:var(--radius);font-size:.85rem;font-weight:600}.structure-match-banner.match{background:#16a34a1a;color:var(--success);border:1px solid var(--success)}.structure-match-banner.mismatch{background:#d977061a;color:var(--warning);border:1px solid var(--warning)}.regional-ocr-pending{font-size:.85rem;color:var(--primary);padding:.4rem 0;font-style:italic}h2{font-size:1.3rem;margin-bottom:.5rem}.error{color:var(--danger);font-size:.85rem}.empty{color:var(--text-muted);text-align:center;padding:2rem}.loading{color:var(--text-muted);text-align:center;padding:3rem}.qr-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;width:360px;text-align:center}.qr-modal h3{margin-bottom:1rem}.qr-code-container{display:flex;justify-content:center;padding:1rem 0}.qr-info{display:flex;justify-content:center;align-items:center;gap:1rem;margin:.75rem 0;font-size:.9rem}.qr-timer{font-family:monospace;font-size:1.1rem;font-weight:600;color:var(--text)}.qr-timer.warning{color:var(--danger)}.qr-uploads-count{color:var(--success);font-weight:600}.mobile-upload-page{display:flex;justify-content:center;align-items:flex-start;min-height:100vh;padding:2rem 1rem}.mobile-upload-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;width:100%;max-width:400px;text-align:center}.mobile-upload-card h2{margin-bottom:1.5rem}.mobile-upload-btn{display:block;width:100%;padding:1rem;font-size:1.1rem;margin-bottom:.75rem;min-height:56px}.mobile-upload-success{color:var(--success);font-weight:600;font-size:1.1rem;margin:.75rem 0}.mobile-upload-results{margin-top:.75rem;text-align:left}.stats-grid{display:flex;gap:1.5rem;flex-wrap:wrap;align-items:flex-start}.stat-item{display:flex;flex-direction:column;align-items:center;min-width:100px}.stat-value{font-size:1.5rem;font-weight:700;color:var(--text)}.stat-label{font-size:.8rem;color:var(--text-muted)}.stat-size{font-size:.75rem;color:var(--text-muted);margin-top:.15rem}.stat-total{display:flex;align-items:center;margin-left:auto;font-size:.85rem;color:var(--text-muted);font-weight:600}.preprocessing-controls{display:flex;flex-direction:column;gap:.75rem;padding:1rem;background:var(--bg-card);border-radius:var(--radius);margin-top:.5rem}.preprocessing-controls label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;font-weight:500}.preprocessing-controls input[type=range]{width:100%;cursor:pointer}.preprocessing-controls button{align-self:flex-start;padding:.4rem 1rem;background:var(--primary);color:#fff;border:none;border-radius:var(--radius);cursor:pointer;font-size:.85rem}.preprocessing-controls button:hover{background:var(--primary-hover)}.question-type-select{padding:.15rem .4rem;border:1px solid var(--border);border-radius:4px;background:var(--bg-card);font-size:.8rem;cursor:pointer}.badge-type{display:inline-block;padding:.1rem .4rem;border-radius:3px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.badge-type-multiple_choice{background:#e8f4fd;color:#1976d2}.badge-type-fill_in_blank{background:#fff3e0;color:#e65100}.badge-type-true_false{background:#e8f5e9;color:#2e7d32}.question-blanks-info{font-size:.85rem;color:var(--text-muted);font-style:italic;padding:.25rem 0}.question-true-false{font-size:.9rem;font-weight:500;padding:.25rem 0}.structure-label-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.3rem}.structure-blanks{display:flex;flex-direction:column;gap:.3rem}.structure-blank-label{font-size:.8rem;color:var(--text-muted);min-width:4rem}.btn-remove{padding:.15rem .4rem;color:var(--text-muted);font-size:.8rem;line-height:1}.btn-remove:hover{color:#c62828}.true-false-options .structure-option-key-input{width:3.5rem;color:var(--text-muted)}.true-false-options .structure-option-value{padding:.3rem .5rem}.answer-key-editor{display:flex;flex-direction:column;gap:.75rem}.answer-key-crop-img{max-width:100%;border:1px solid var(--border);border-radius:4px;margin-top:.5rem}.answer-key-table{width:100%;border-collapse:collapse;font-size:.9rem}.answer-key-table th{text-align:left;padding:.4rem .5rem;border-bottom:2px solid var(--border);font-weight:600;color:var(--text-muted);font-size:.8rem}.answer-key-table td{padding:.3rem .5rem;border-bottom:1px solid var(--border-light, #eee)}.answer-key-col-num{width:5rem}.answer-key-col-actions{width:3rem;text-align:center}.answer-key-input-num{width:2.8rem;padding:.25rem .3rem;border:1px solid var(--border);border-radius:3px;font-size:.9rem;text-align:center}.answer-key-input-answer{field-sizing:content;min-width:2.8rem;padding:.25rem .3rem;border:1px solid var(--border);border-radius:3px;font-size:.9rem;text-align:center}.answer-key-regions{display:grid;gap:.5rem}.answer-key-region-row{display:flex;flex-direction:column;align-items:stretch;gap:.4rem;padding:.4rem;border:1px solid var(--border-light, #eee);border-radius:4px}.answer-key-region-row.missing-entry{border-color:var(--danger, #e53e3e);border-width:2px}.outline-danger{outline:2px solid var(--danger, #e53e3e);outline-offset:-2px}.answer-key-region-img-wrap{width:100%;flex:1;min-height:0;display:flex;align-items:center}.answer-key-region-img{width:100%;height:100%;object-fit:contain;border:1px solid var(--border);border-radius:3px}.answer-key-region-placeholder{width:100%;height:40px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.8rem;border:1px dashed var(--border);border-radius:3px}.answer-key-region-fields{display:flex;align-items:center;gap:.4rem}.answer-key-region-fields .answer-key-input-answer{flex:1;min-width:0;field-sizing:fixed;width:0}.answer-key-region-delete{width:100%;padding:.2rem 0;font-size:.75rem;border:1px solid #fca5a5;border-radius:3px;background:transparent;color:#dc2626;cursor:pointer;transition:background .15s}.answer-key-region-delete:hover{background:#fee2e2}.answer-key-no-entry{color:var(--text-muted);font-size:.85rem;font-style:italic}.answer-key-region-ocr-hint{font-size:.75rem;color:var(--text-muted);padding:.2rem .5rem;background:var(--bg-muted, #f5f5f5);border-radius:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.answer-key-region-ocr-hint.ocr-differs{color:#b45309;background:#fef3c7;border:1px solid #f59e0b;font-weight:600;cursor:pointer}.answer-key-region-ocr-only{display:flex;align-items:center;gap:.5rem;min-width:0}.answer-key-ocr-preview{font-size:.9rem;color:var(--text-muted);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-dialog{background:var(--bg, #fff);border:1px solid var(--border);border-radius:6px;padding:1.5rem;max-width:600px;width:90%;max-height:80vh;display:flex;flex-direction:column;gap:1rem}.modal-dialog .modal-body{overflow-y:auto;min-height:0}.modal-dialog h3{margin:0;font-size:1rem}.modal-dialog p{margin:0;font-size:.875rem;color:var(--text-muted, #666)}.modal-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border, #e0e0e0);font-weight:600;font-size:.9em}.modal-body{padding:12px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:8px 12px;border-top:1px solid var(--border, #e0e0e0)}.question-editor-stem{font-size:.95em;margin-bottom:8px;line-height:1.4}.question-editor-options{list-style:none;padding:0;margin:0 0 12px;font-size:.85em;color:#555}.question-editor-options li{padding:2px 0}.question-editor-answer-field{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.question-editor-answer-field label{font-size:.85em;font-weight:600}.answer-entry-header-actions{margin-left:auto;display:flex;gap:4px}.answer-match-unmatched{color:#b45309;font-size:.8em}.answer-match-missing{font-style:italic;color:#b45309;font-weight:400}.answer-match-cards{display:flex;flex-direction:column;gap:.4rem;padding:.4rem 0 .2rem}.answer-match-card-row{display:flex;align-items:flex-start;gap:.5rem}.answer-match-card{flex:1;min-width:0;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.35rem .6rem;font-size:.85em}.answer-match-card--orphan{border-color:#f59e0b;background:#fffbeb}.answer-match-card--no-answer{border-color:var(--danger);background:#fff1f2}.answer-match-card-header{display:flex;align-items:center;gap:.35rem;margin-bottom:.2rem}.answer-match-badge{flex-shrink:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.95rem;background:#dcfce7;color:#166534;border:1px solid #86efac;border-radius:var(--radius);align-self:flex-start;margin-top:.1rem}.answer-match-badge--empty{background:#fff1f2;color:var(--danger);border-color:var(--danger);font-weight:400}.answer-match-badge--orphan{background:#fef3c7;color:#92400e;border-color:#fcd34d}.answer-match-inline-answer{margin-top:.25rem;padding:.2rem .4rem;background:#dcfce7;border:1px solid #86efac;border-radius:var(--radius);font-size:.85em;color:#166534;font-weight:500}.answer-match-inline-answer--empty{background:transparent;border-color:transparent;padding:0}.answer-match-inline-label{font-weight:400;color:#4ade80;font-size:.9em}.pipeline-warning{padding:6px 10px;background:#fffbeb;border:1px solid #f59e0b;border-radius:4px;color:#92400e;font-size:.85em}.answer-match-card-edit-btn{background:none;border:none;cursor:pointer;opacity:0;padding:0 .2rem;font-size:.85rem;color:var(--text-muted, #888);transition:opacity .15s}.answer-match-card:hover .answer-match-card-edit-btn{opacity:1}.question-option-row{position:relative;display:flex;align-items:center;gap:.3rem;padding:.15rem .3rem;border-radius:3px;cursor:pointer}.question-option-row:hover{background:#0000000a}.question-option-delete-btn{display:none;background:none;border:none;cursor:pointer;color:var(--danger, #c0392b);font-size:.75rem;padding:0 .15rem;margin-left:auto}.question-option-row:hover .question-option-delete-btn{display:inline}.question-option-row.correct{background:#e8f5e9;font-weight:600}.users-table{width:100%;border-collapse:collapse;margin-top:1rem}.users-table th,.users-table td{text-align:left;padding:.5rem 1rem;border-bottom:1px solid var(--border, #e0e0e0)}.users-table th{font-weight:600;color:var(--text-muted, #666);font-size:.85rem}.tree-node-header{display:flex;align-items:center;gap:.4rem;padding:.4rem .5rem;cursor:pointer;border-radius:4px;font-weight:600}.tree-node-header:hover{background:var(--bg-hover, #f5f5f5)}.tree-toggle{font-size:.7rem;width:1rem;text-align:center;color:var(--text-muted)}.tree-node-name{font-size:.95rem}.tree-node-body{padding-left:.5rem;border-left:1px solid var(--border-light, #eee);margin-left:.5rem}.home-questions{display:flex;flex-direction:column;gap:.5rem;padding:.25rem 0}.home-question-card{display:flex;gap:.5rem;align-items:baseline;padding:.35rem .5rem;border-radius:4px;font-size:.9rem}.home-question-card:hover{background:var(--bg-hover, #f5f5f5)}.home-question-card .question-number{color:var(--text-muted);font-size:.8rem;min-width:2rem}.home-question-card .question-stem{flex:1}.home-question-card .question-options{margin:.25rem 0 0 2.5rem;padding:0;list-style:none;font-size:.85rem}.home-question-card .question-options .correct{color:var(--success, green);font-weight:600}.home-loading{color:var(--text-muted);font-size:.85rem;padding:.25rem .5rem}.training-home{max-width:480px;margin:2rem auto;padding:0 1rem}.training-home-title{text-align:center;margin-bottom:1.5rem;font-size:1.3rem}.training-modes{display:flex;flex-direction:column;gap:.75rem}.training-mode-btn{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:1.2rem 1.4rem;border:none;border-radius:var(--radius);cursor:pointer;text-align:left;font-family:inherit}.training-mode-btn .mode-name{font-size:1.15rem;font-weight:600}.training-mode-btn .mode-desc{font-size:.85rem;margin-top:.2rem}.training-mode-btn.active{background:#7c3aed;color:#fff}.training-mode-btn.active:hover{background:#6d28d9}.training-mode-btn.active .mode-desc{color:#fffc}.training-mode-btn.disabled{background:var(--bg-card);color:var(--text-muted);cursor:not-allowed}.training-admin-link{text-align:center;margin-top:2rem;font-size:.9rem}.training-setup{max-width:480px;margin:0 auto;padding:1rem 1rem 5rem}.training-resume-prompt{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-bottom:1rem;text-align:center}.training-resume-prompt p{margin-bottom:.75rem;font-weight:600}.training-resume-actions{display:flex;gap:.75rem;justify-content:center}.training-resume-actions .training-begin-btn{max-width:200px}.training-setup-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.training-setup-header h2{font-size:1.2rem;flex:1;text-align:left;margin:0}.training-back-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.4rem .9rem;cursor:pointer;font-family:inherit;font-size:.9rem}.training-back-btn:hover{background:var(--border)}.training-empty{color:var(--text-muted);text-align:center;margin-top:2rem}.checkbox-tree{display:flex;flex-direction:column;gap:.15rem}.checkbox-tree-node{display:flex;flex-direction:column}.checkbox-tree-label{display:flex;align-items:center;justify-content:flex-start;gap:.5rem;padding:.35rem .5rem;border-radius:var(--radius);text-align:left;cursor:pointer}.checkbox-tree-label input[type=checkbox]{flex-shrink:0;width:18px;height:18px}.checkbox-tree-label span{flex:1;text-align:left;white-space:pre-line;cursor:pointer;font-size:.95rem}.checkbox-tree-label:hover{background:var(--bg-card)}.checkbox-tree-label.root{font-weight:600;background:var(--bg-card);margin-bottom:.15rem}.checkbox-tree-children{display:flex;flex-direction:column}.category-edit-icon{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.85rem;padding:0 .3rem;opacity:0;transition:opacity .15s}.checkbox-tree-label:hover .category-edit-icon{opacity:1}.category-edit-icon:hover{color:var(--fg)}.category-inline-edit{flex:1;padding:.2rem .4rem;border:1px solid var(--accent);border-radius:4px;font-size:inherit;background:var(--bg);color:var(--fg);outline:none}.training-setup-footer{position:fixed;bottom:0;left:0;right:0;padding:1rem 1rem 1.25rem;background:var(--bg-surface, #fff);border-top:1px solid var(--border, #eee);display:flex;flex-direction:column;align-items:center}.training-shuffle-toggles{display:flex;gap:1.2rem;justify-content:center;flex-wrap:wrap}.training-shuffle-toggle{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.9rem;margin-bottom:.75rem;cursor:pointer;white-space:nowrap}.training-begin-btn{max-width:480px;width:100%;padding:.85rem;background:#7c3aed;color:#fff;border:none;border-radius:var(--radius);font-size:1rem;font-weight:600;cursor:pointer;font-family:inherit}.training-begin-btn:hover:not(:disabled){background:#6d28d9}.training-begin-btn:disabled{opacity:.5;cursor:not-allowed}.training-session{max-width:480px;margin:0 auto;padding:0 1rem}.training-session-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0}.training-end-btn{background:var(--danger);color:#fff;border:none;border-radius:var(--radius);padding:.35rem .8rem;font-size:.85rem;cursor:pointer;font-family:inherit;font-weight:600}.training-end-btn:hover{opacity:.9}.training-progress-text{font-weight:600;font-size:1rem}.training-score{color:var(--success);font-weight:600;font-size:.9rem}.training-progress-bar{width:100%;height:6px;background:var(--bg-card);border-radius:3px;overflow:hidden;margin-bottom:1.5rem}.training-progress-fill{height:100%;background:#7c3aed;border-radius:3px;transition:width .3s ease}.training-question-area{display:flex;flex-direction:column;gap:1rem}.training-stem{font-size:1.1rem;line-height:1.6;white-space:pre-line}.training-options{display:flex;flex-direction:column;gap:.5rem}.training-option{display:flex;align-items:center;gap:.5rem;width:100%;padding:.75rem 1rem;border:2px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);cursor:pointer;font-family:inherit;font-size:.95rem;text-align:left}.training-option:hover:not(:disabled){border-color:var(--primary)}.training-option.selected{border-color:var(--primary);background:#eff6ff}.training-option.correct{border-color:var(--success);background:#f0fdf4}.training-option.wrong{border-color:var(--danger);background:#fef2f2}.training-tf{flex-direction:row}.training-tf .training-option{flex:1;justify-content:center;font-weight:600}.training-fill-stem{font-size:1rem;line-height:3;white-space:pre-line;margin-bottom:1rem}.training-fill-blank-wrap{display:inline-block;position:relative;vertical-align:bottom}.training-fill-hint{position:absolute;left:0;right:0;top:calc(100% - 1rem);font-size:.85rem;font-weight:600;color:var(--success, #22c55e);text-align:center;white-space:nowrap}.training-fill-inline{display:inline-block;width:10ch;padding:.2rem .4rem;border:none;border-bottom:2px solid var(--border, #ccc);border-radius:0;font-size:.95rem;font-family:inherit;background:transparent;text-align:center}.training-fill-inline:focus{outline:none;border-bottom-color:var(--accent, #4f46e5)}.training-fill-inline.correct{border-bottom-color:var(--success, #22c55e);color:var(--success, #22c55e);font-weight:600}.training-fill-inline.wrong{border-bottom-color:var(--danger, #e53e3e);color:var(--danger, #e53e3e)}.training-progress-btn{background:none;border:1px solid var(--border, #ddd);border-radius:4px;padding:.2rem .75rem;font-weight:600;cursor:pointer;font-family:inherit;font-size:.95rem}.training-progress-btn:hover{background:var(--bg-hover, #f5f5f5)}.training-picker{display:flex;flex-wrap:wrap;gap:.3rem;padding:.75rem 0;justify-content:center}.training-picker-item{width:2.2rem;height:2.2rem;display:flex;align-items:center;justify-content:center;border:1px solid var(--border, #ddd);border-radius:4px;font-size:.8rem;cursor:pointer;background:#fff;font-family:inherit}.training-picker-item:hover{background:var(--bg-hover, #f5f5f5)}.training-picker-item.current{border-color:var(--accent, #4f46e5);background:#eef2ff;font-weight:700}.training-picker-item.correct{background:#f0fdf4;border-color:var(--success, #22c55e)}.training-picker-item.wrong{background:#fef2f2;border-color:var(--danger, #e53e3e)}.training-nav-row{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-top:1rem}.training-nav-btn{background:none;border:1px solid var(--border, #ddd);border-radius:6px;padding:.5rem 1rem;cursor:pointer;font-family:inherit;font-size:.9rem}.training-nav-btn:hover:not(:disabled){background:var(--bg-hover, #f5f5f5)}.training-nav-btn:disabled{opacity:.3;cursor:not-allowed}.training-edit-btn{background:none;border:1px solid var(--border);color:var(--text-muted);padding:.35rem .9rem;border-radius:var(--radius);cursor:pointer;font-size:.8rem;font-family:inherit;letter-spacing:.03em;text-transform:uppercase;font-weight:600;align-self:flex-end;transition:all .15s ease}.training-edit-btn:hover{background:var(--bg-card);border-color:var(--primary);color:var(--primary)}.question-edit-modal-overlay{animation:qeOverlayIn .2s ease-out}@keyframes qeOverlayIn{0%{opacity:0}to{opacity:1}}.question-edit-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:14px;max-width:560px;width:94vw;max-height:88vh;overflow-y:auto;padding:0;box-shadow:0 4px 6px -1px #00000012,0 10px 30px -5px #0000001a,0 0 0 1px #00000008;animation:qeSlideIn .25s cubic-bezier(.16,1,.3,1)}@keyframes qeSlideIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.question-edit-modal::-webkit-scrollbar{width:6px}.question-edit-modal::-webkit-scrollbar-track{background:transparent}.question-edit-modal::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.question-edit-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-surface);z-index:2;border-radius:14px 14px 0 0}.question-edit-header h3{margin:0;font-size:.95rem;font-weight:700;letter-spacing:-.01em;color:var(--text)}.question-edit-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;font-size:1.1rem;transition:all .12s ease}.question-edit-close:hover{background:var(--bg-card);color:var(--text)}.question-edit-img-context{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.4rem;display:flex;justify-content:center;overflow:hidden}.question-edit-img-context img{max-width:100%;object-fit:contain;border-radius:4px}.question-edit-crop{max-height:180px}.question-edit-img-region{padding:.25rem}.question-edit-img-region img{max-height:56px}.question-edit-img-answer{padding:.25rem}.question-edit-img-answer img{max-height:48px}.question-edit-fields{display:flex;flex-direction:column;gap:1rem;padding:1.25rem}.question-edit-fields label{display:flex;flex-direction:column;gap:.35rem}.question-edit-fields label>span:first-child,.question-edit-fields>label:first-child{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.question-edit-fields textarea,.question-edit-fields input[type=text],.question-edit-fields select{padding:.55rem .7rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.9rem;font-family:inherit;background:var(--bg-input);color:var(--text);transition:border-color .15s ease,box-shadow .15s ease;line-height:1.5}.question-edit-fields textarea:focus,.question-edit-fields input[type=text]:focus,.question-edit-fields select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.question-edit-fields textarea{resize:vertical;min-height:5rem}.question-edit-fields select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;padding-right:2rem}.question-edit-options{display:flex;flex-direction:column;gap:.5rem}.question-edit-options-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:.1rem}.question-edit-option-group{display:flex;flex-direction:column;gap:.35rem}.question-edit-option-row{display:flex;align-items:center;gap:0}.question-edit-option-key-input{width:2.2rem;height:2.25rem;text-align:center;font-weight:700;font-size:.85rem;color:var(--text-muted);background:var(--bg);border:1px solid var(--border);border-right:none;border-radius:var(--radius) 0 0 var(--radius);flex-shrink:0;padding:0;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}.question-edit-option-key-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a;position:relative;z-index:1;color:var(--text)}.question-edit-option-row input:not(.question-edit-option-key-input){flex:1;padding:.5rem .65rem;border:1px solid var(--border);border-radius:0 var(--radius) var(--radius) 0;font-size:.9rem;font-family:inherit;background:var(--bg-input);color:var(--text);transition:border-color .15s ease,box-shadow .15s ease}.question-edit-option-row input:not(.question-edit-option-key-input):focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a;position:relative;z-index:1}.question-edit-actions{display:flex;gap:.6rem;justify-content:flex-end;padding:.85rem 1.25rem;border-top:1px solid var(--border);background:var(--bg);border-radius:0 0 14px 14px;position:sticky;bottom:0}.question-edit-actions .training-back-btn{font-size:.85rem;padding:.45rem 1rem}.question-edit-actions .training-begin-btn{max-width:unset;width:auto;font-size:.85rem;padding:.45rem 1.5rem;border-radius:var(--radius)}.training-action-row{margin-top:1rem}.training-check-btn,.training-next-btn{width:100%;padding:.85rem;border:none;border-radius:var(--radius);font-size:1rem;font-weight:600;cursor:pointer;font-family:inherit;color:#fff}.training-check-btn{background:var(--primary)}.training-check-btn:hover:not(:disabled){background:var(--primary-hover)}.training-check-btn:disabled{opacity:.5;cursor:not-allowed}.training-next-btn{background:var(--success)}.training-next-btn:hover{opacity:.9}.training-summary{text-align:center;padding-top:3rem}.training-summary h2{font-size:1.5rem;margin-bottom:1rem}.training-summary-score{font-size:2.5rem;font-weight:700;color:var(--success)}.training-summary-pct{font-size:1.2rem;color:var(--text-muted);margin-bottom:2rem}.training-summary-actions{display:flex;gap:1rem;justify-content:center}
