:root{--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-primary-light:#eff6ff;--color-success:#16a34a;--color-warning:#d97706;--color-error:#dc2626;--color-text:#111827;--color-text-muted:#6b7280;--color-border:#e5e7eb;--color-surface:#fff;--color-background:#f9fafb;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--color-background);color:var(--color-text);font-family:system-ui,-apple-system,sans-serif;line-height:1.5}#root{min-height:100vh}.navbar{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border);background:var(--color-surface);justify-content:space-between;align-items:center;display:flex}.navbar-logo{background:var(--color-border);border-radius:var(--radius-sm);width:120px;height:32px;color:var(--color-text-muted);font-size:var(--font-size-sm);justify-content:center;align-items:center;font-weight:500;display:flex}.main-content{max-width:720px;padding:var(--spacing-2xl) var(--spacing-lg);margin:0 auto}.upload-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-2xl);text-align:center;box-shadow:var(--shadow-sm)}.upload-card--error{border-color:var(--color-error)}.upload-icon{color:var(--color-primary);margin-bottom:var(--spacing-lg)}.upload-card h2{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-sm);font-weight:600}.upload-subtitle{color:var(--color-text-muted);margin-bottom:var(--spacing-xl)}.browse-area{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-lg) var(--spacing-xl);border:2px dashed var(--color-border);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-base);color:var(--color-primary);flex-direction:column;font-weight:500;transition:border-color .2s,background .2s;display:flex}.browse-area:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.browse-hint{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:400}.upload-header{margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:center;display:flex}.upload-filename{font-weight:500;font-size:var(--font-size-base)}.upload-status{color:var(--color-text-muted);margin-bottom:var(--spacing-md);text-align:left}.progress-bar{background:var(--color-border);width:100%;height:8px;margin-bottom:var(--spacing-sm);border-radius:4px;overflow:hidden}.progress-fill{background:var(--color-primary);border-radius:4px;height:100%;transition:width .3s}.progress-fill--pulse{width:100%;animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}.progress-text{font-size:var(--font-size-sm);color:var(--color-text-muted);text-align:right;display:block}.btn-primary{padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);font-size:var(--font-size-base);cursor:pointer;margin-top:var(--spacing-md);border:none;font-weight:500;transition:background .2s;display:inline-block}.btn-cancel{color:var(--color-text-muted);font-size:var(--font-size-sm);cursor:pointer;padding:var(--spacing-xs) var(--spacing-sm);background:0 0;border:none}.btn-cancel:hover{color:var(--color-error)}.error-icon{width:48px;height:48px;color:var(--color-error);margin:0 auto var(--spacing-md);font-size:var(--font-size-xl);background:#fef2f2;border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex}.upload-card--error h3{font-size:var(--font-size-lg);margin-bottom:var(--spacing-sm)}.error-message{color:var(--color-text-muted);font-size:var(--font-size-sm)}.toc-viewer{flex-direction:column;display:flex}.toc-row{width:100%;padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;border-radius:var(--radius-sm);text-align:left;justify-content:space-between;align-items:center;gap:var(--spacing-md);background:0 0;border:none;transition:background .15s;display:flex}.toc-row:hover{background:var(--color-background)}.toc-row--l1{font-size:var(--font-size-lg);font-weight:600}.toc-row--l2{font-size:var(--font-size-base);padding-left:calc(var(--spacing-md) + 16px)}.toc-row--l3{font-size:var(--font-size-sm);padding-left:calc(var(--spacing-md) + 32px);color:var(--color-text-muted)}.toc-row--selected,.toc-row--selected:hover{background:var(--color-primary-light)}.toc-row--warning,.toc-row--warning:hover{background:#fffbeb}.toc-page{color:var(--color-text-muted);font-size:var(--font-size-sm);flex-shrink:0}.toc-title{flex:1;min-width:0}.toc-warning{font-size:var(--font-size-sm);color:var(--color-warning);padding:var(--spacing-xs) var(--spacing-md);padding-left:calc(var(--spacing-md) + 4px)}.cluster-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.cluster-empty{color:var(--color-text-muted);font-size:var(--font-size-base);text-align:center;padding:var(--spacing-xl)}.cluster-card{gap:var(--spacing-xs);width:100%;padding:var(--spacing-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:left;flex-direction:column;transition:border-color .15s,box-shadow .15s;display:flex}.cluster-card:hover{box-shadow:var(--shadow-sm)}.cluster-card--selected{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.cluster-header{justify-content:space-between;align-items:center;gap:var(--spacing-md);display:flex}.cluster-title{font-weight:600;font-size:var(--font-size-base)}.cluster-badge{font-size:var(--font-size-sm);padding:2px var(--spacing-sm);border-radius:var(--radius-sm);color:#fff;flex-shrink:0;font-weight:500}.cluster-badge--normal{background:var(--color-primary)}.cluster-badge--warning{background:var(--color-warning)}.cluster-pages,.cluster-summary{font-size:var(--font-size-sm);color:var(--color-text-muted)}.cluster-warning{font-size:var(--font-size-sm);color:var(--color-warning);padding:var(--spacing-xs) var(--spacing-md)}.range-input{gap:var(--spacing-md);flex-direction:column;display:flex}.range-fields{gap:var(--spacing-md);display:flex}.range-field{gap:var(--spacing-xs);flex-direction:column;flex:1;display:flex}.range-label{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:500}.range-number{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-surface);outline:none;width:100%;transition:border-color .15s}.range-number:focus{border-color:var(--color-primary)}.range-number::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.range-number::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.range-number{-moz-appearance:textfield}.range-status{font-size:var(--font-size-sm);color:var(--color-text-muted)}.range-status--valid{color:var(--color-success)}.range-status--error{color:var(--color-error)}.structure-page{gap:var(--spacing-xl);flex-direction:column;display:flex}.structure-loading{justify-content:center;align-items:center;gap:var(--spacing-md);padding:var(--spacing-2xl);color:var(--color-text-muted);flex-direction:column;display:flex}.spinner--sm{border-width:2px;width:18px;height:18px}@keyframes spin{to{transform:rotate(360deg)}}.structure-error-page{text-align:center;padding:var(--spacing-2xl)}.structure-error-page .error-icon{width:48px;height:48px;color:var(--color-error);margin:0 auto var(--spacing-md);font-size:var(--font-size-xl);background:#fef2f2;border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex}.structure-error-page h3{margin-bottom:var(--spacing-sm)}.error-detail{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-bottom:var(--spacing-lg)}.structure-header{text-align:center}.structure-title{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-xs);word-break:break-word;font-weight:600}.structure-subtitle{color:var(--color-text-muted);font-size:var(--font-size-base)}.structure-section{gap:var(--spacing-md);flex-direction:column;display:flex}.section-heading{font-size:var(--font-size-lg);font-weight:600}.options-grid{gap:var(--spacing-md);grid-template-columns:1fr 1fr;display:grid}@media (width<=600px){.options-grid{grid-template-columns:1fr}}.option-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-lg);gap:var(--spacing-sm);flex-direction:column;display:flex}.option-title{font-size:var(--font-size-base);font-weight:600}.option-desc{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--spacing-sm)}.option-loading{align-items:center;gap:var(--spacing-sm);color:var(--color-text-muted);font-size:var(--font-size-sm);padding:var(--spacing-sm) 0;display:flex}.option-clusters{margin-top:var(--spacing-sm)}.option-error{font-size:var(--font-size-sm);color:var(--color-error);margin-top:var(--spacing-sm)}.btn-secondary{padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;align-self:flex-start;font-weight:500;transition:background .15s}.selection-summary{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-md) var(--spacing-lg);opacity:0;pointer-events:none;max-height:0;padding:0 var(--spacing-lg);margin:0;transition:opacity .25s,transform .25s;overflow:hidden;transform:translateY(8px)}.selection-summary--visible{opacity:1;pointer-events:auto;max-height:200px;padding:var(--spacing-md) var(--spacing-lg);transform:translateY(0)}.selection-info{gap:var(--spacing-xs);flex-direction:column;display:flex}.selection-range{font-weight:600;font-size:var(--font-size-base)}.selection-count{font-size:var(--font-size-sm);color:var(--color-text-muted)}.selection-source{font-size:var(--font-size-sm);color:var(--color-text-muted);font-style:italic}.btn-confirm{width:100%;padding:var(--spacing-md);background:var(--color-primary);color:#fff;border-radius:var(--radius-md);font-size:var(--font-size-lg);cursor:pointer;border:none;font-weight:600;transition:background .15s}.btn-confirm:hover:not(:disabled){background:var(--color-primary-hover)}.btn-confirm:disabled{opacity:.5;cursor:not-allowed}.confirm-error{text-align:center;font-size:var(--font-size-sm);color:var(--color-error)}.progress-steps{flex-direction:column;display:flex}.progress-step{align-items:flex-start;gap:var(--spacing-md);display:flex}.step-indicator{flex-direction:column;flex-shrink:0;align-items:center;display:flex}.step-circle{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.step-circle--done{background:var(--color-success)}.step-circle--active{background:var(--color-primary);animation:1.5s ease-in-out infinite step-pulse}.step-circle--waiting{border:2px solid var(--color-border);background:0 0}@keyframes step-pulse{0%,to{box-shadow:0 0 #2563eb66}50%{box-shadow:0 0 0 6px #2563eb00}}.step-line{background:var(--color-border);width:2px;height:24px}.step-label{font-size:var(--font-size-sm);padding-top:2px;line-height:1.4}.progress-step--done .step-label{color:var(--color-text)}.progress-step--active .step-label{color:var(--color-primary);font-weight:600}.progress-step--waiting .step-label{color:var(--color-text-muted)}.topic-checkbox{align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s;display:flex}.topic-checkbox:hover{background:var(--color-background)}.topic-input{cursor:pointer;accent-color:var(--color-primary);flex-shrink:0;width:16px;height:16px;margin-top:3px}.topic-content{flex-direction:column;gap:2px;min-width:0;display:flex}.topic-title{font-size:var(--font-size-base);font-weight:500}.topic-desc{font-size:var(--font-size-sm);color:var(--color-text-muted)}.topic-badge{font-size:var(--font-size-sm);color:var(--color-primary);background:var(--color-primary-light);padding:2px var(--spacing-sm);border-radius:var(--radius-sm);align-self:flex-start;margin-top:2px;display:inline-block}.section-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-lg);gap:var(--spacing-sm);flex-direction:column;transition:opacity .2s;display:flex}.section-card--dimmed{opacity:.5}.section-header{justify-content:space-between;align-items:center;gap:var(--spacing-md);display:flex}.section-title{font-size:var(--font-size-lg);font-weight:600}.type-badge{font-size:var(--font-size-sm);padding:2px var(--spacing-sm);border-radius:var(--radius-sm);text-transform:capitalize;flex-shrink:0;font-weight:500}.type-badge--chapter{background:var(--color-primary);color:#fff}.type-badge--section{background:var(--color-border);color:var(--color-text)}.type-badge--segment{border:1px solid var(--color-border);color:var(--color-text-muted);background:0 0}.section-pages{font-size:var(--font-size-sm);color:var(--color-text-muted)}.section-summary{font-size:var(--font-size-sm);color:var(--color-text-muted);font-style:italic}.section-skip-banner{font-size:var(--font-size-sm);color:var(--color-warning);padding:var(--spacing-xs) 0;font-weight:500}.section-topics{margin-top:var(--spacing-sm);flex-direction:column;display:flex}.topics-heading{font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:var(--spacing-xs);font-weight:600}.summary-bar{background:var(--color-surface);border-top:1px solid var(--color-border);z-index:100;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 8px #0000000f}.summary-bar-inner{max-width:720px;padding:var(--spacing-md) var(--spacing-lg);justify-content:space-between;align-items:center;gap:var(--spacing-md);margin:0 auto;display:flex}.summary-text{font-size:var(--font-size-sm);color:var(--color-text)}.summary-text--error{color:var(--color-error)}.btn-confirm-bar{padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;white-space:nowrap;border:none;flex-shrink:0;font-weight:600;transition:background .15s}.btn-confirm-bar:hover:not(:disabled){background:var(--color-primary-hover)}.btn-confirm-bar:disabled{opacity:.5;cursor:not-allowed}.analyse-page{gap:var(--spacing-xl);flex-direction:column;display:flex}.analyse-loading{justify-content:center;align-items:center;gap:var(--spacing-md);padding:var(--spacing-2xl);flex-direction:column;min-height:400px;display:flex}.analyse-loading-title{font-size:var(--font-size-2xl);font-weight:600}.analyse-loading-sub{color:var(--color-text-muted);margin-bottom:var(--spacing-lg)}.analyse-progress-wrapper{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-lg)}.analyse-error-page{text-align:center;padding:var(--spacing-2xl)}.analyse-error-icon{width:48px;height:48px;color:var(--color-error);margin:0 auto var(--spacing-md);font-size:var(--font-size-xl);background:#fef2f2;border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex}.analyse-error-page h3{margin-bottom:var(--spacing-sm)}.analyse-error-detail{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-bottom:var(--spacing-lg)}.btn-primary{padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);font-size:var(--font-size-base);cursor:pointer;border:none;font-weight:500;transition:background .2s;display:inline-block}.analyse-header{gap:var(--spacing-md);flex-direction:column;display:flex}.analyse-title{font-size:var(--font-size-2xl);font-weight:600}.analyse-summary-box{background:var(--color-primary-light);border-radius:var(--radius-md);padding:var(--spacing-lg);font-size:var(--font-size-base);color:var(--color-text);line-height:1.6}.analyse-change-link{font-size:var(--font-size-sm);color:var(--color-text-muted)}.analyse-change-link a{color:var(--color-primary);text-decoration:none}.analyse-change-link a:hover{text-decoration:underline}.analyse-sections{gap:var(--spacing-lg);flex-direction:column;display:flex}.analyse-confirm-error{text-align:center;font-size:var(--font-size-sm);color:var(--color-error)}.analyse-bar-spacer{height:72px}.configure-page{gap:var(--spacing-xl);flex-direction:column;max-width:480px;margin:0 auto;display:flex}.configure-loading{justify-content:center;align-items:center;gap:var(--spacing-md);padding:var(--spacing-2xl);flex-direction:column;min-height:300px;display:flex}.configure-error-page{text-align:center;padding:var(--spacing-2xl)}.configure-error-icon{width:48px;height:48px;color:var(--color-error);margin:0 auto var(--spacing-md);font-size:var(--font-size-xl);background:#fef2f2;border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex}.configure-error-page h3{margin-bottom:var(--spacing-sm)}.configure-error-detail{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-bottom:var(--spacing-lg)}.btn-primary{padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);font-size:var(--font-size-base);cursor:pointer;border:none;font-weight:500;display:inline-block}.btn-primary:hover{background:var(--color-primary-hover)}.configure-header{text-align:center}.configure-title{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-xs);font-weight:600}.configure-subtitle{color:var(--color-text-muted);font-size:var(--font-size-base)}.configure-context{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-sm)}.configure-change-link{color:var(--color-primary);font-size:var(--font-size-sm);text-decoration:none}.configure-change-link:hover{text-decoration:underline}.configure-field{gap:var(--spacing-sm);flex-direction:column;display:flex}.field-label{font-weight:600;font-size:var(--font-size-base)}.field-hint{font-size:var(--font-size-sm);color:var(--color-text-muted)}.field-input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-surface);outline:none;width:100%;max-width:120px}.field-input:focus{border-color:var(--color-primary)}.field-error{font-size:var(--font-size-sm);color:var(--color-error)}.distribution-grid{gap:var(--spacing-md);grid-template-columns:1fr 1fr 1fr;display:grid}.dist-item{align-items:center;gap:var(--spacing-xs);flex-direction:column;display:flex}.dist-label{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:500}.dist-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-lg);text-align:center;color:var(--color-text);background:var(--color-surface);outline:none}.dist-input:focus{border-color:var(--color-primary)}.field-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.field-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.dist-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.dist-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.field-input,.dist-input{-moz-appearance:textfield}.dist-pct{font-size:var(--font-size-sm);color:var(--color-text-muted)}.validation-summary{font-size:var(--font-size-sm);text-align:center;padding:var(--spacing-sm);border-radius:var(--radius-sm);font-weight:500}.validation-summary--valid{color:var(--color-success);background:#f0fdf4}.validation-summary--error{color:var(--color-error);background:#fef2f2}.btn-generate{width:100%;padding:var(--spacing-md);background:var(--color-primary);color:#fff;border-radius:var(--radius-md);font-size:var(--font-size-lg);cursor:pointer;border:none;font-weight:600;transition:background .15s}.btn-generate:hover:not(:disabled){background:var(--color-primary-hover)}.btn-generate:disabled{opacity:.5;cursor:not-allowed}.configure-submit-error{text-align:center;font-size:var(--font-size-sm);color:var(--color-error)}.gen-page{gap:var(--spacing-lg);flex-direction:column;max-width:1200px;margin:0 auto;display:flex}.gen-loading{justify-content:center;align-items:center;gap:var(--spacing-md);padding:var(--spacing-2xl);flex-direction:column;min-height:400px;display:flex}.gen-loading-title{font-size:var(--font-size-2xl);font-weight:600}.gen-loading-sub{color:var(--color-text-muted);margin-bottom:var(--spacing-lg)}.gen-progress-wrapper{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-lg)}.spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}.gen-error-page{text-align:center;padding:var(--spacing-2xl)}.gen-error-icon{width:48px;height:48px;color:var(--color-error);margin:0 auto var(--spacing-md);font-size:var(--font-size-xl);background:#fef2f2;border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex}.gen-error-page h3{margin-bottom:var(--spacing-sm)}.gen-error-detail{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-bottom:var(--spacing-lg)}.gen-error-actions{gap:var(--spacing-md);justify-content:center;display:flex}.btn-primary{padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;border:none;font-weight:600}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;font-weight:500}.btn-secondary:hover{background:var(--color-background)}.gen-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-lg);flex-wrap:wrap;display:flex}.gen-title{font-size:var(--font-size-2xl);word-break:break-word;font-weight:600}.gen-subtitle{color:var(--color-text-muted);font-size:var(--font-size-base)}.gen-header-right{gap:var(--spacing-sm);flex-shrink:0;display:flex}.gen-filters{gap:var(--spacing-sm);display:flex}.filter-btn{padding:var(--spacing-xs) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font-size:var(--font-size-sm);cursor:pointer;color:var(--color-text);transition:background .15s,border-color .15s}.filter-btn:hover{background:var(--color-background)}.filter-btn--active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.filter-btn--active:hover{background:var(--color-primary-hover)}.gen-table-wrapper{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow-x:auto}.gen-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.gen-table thead{z-index:1;position:sticky;top:0}.gen-table th{background:var(--color-surface);border-bottom:2px solid var(--color-border);padding:var(--spacing-sm) var(--spacing-md);text-align:left;white-space:nowrap;font-weight:600}.gen-table td{padding:var(--spacing-sm) var(--spacing-md);vertical-align:top;border-bottom:1px solid var(--color-border)}.gen-table tbody tr:nth-child(odd){background:var(--color-surface)}.gen-table tbody tr:nth-child(2n){background:var(--color-background)}.gen-table tbody tr:hover{background:var(--color-primary-light)}.col-num{text-align:right;color:var(--color-text-muted);width:40px;min-width:40px}.col-question{min-width:200px}.col-diff{text-align:center;width:90px}.diff-pill{padding:2px var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.03em;font-weight:600;display:inline-block}.diff-pill--easy{color:#166534;background:#dcfce7}.diff-pill--medium{color:#92400e;background:#fef3c7}.diff-pill--hard{color:#991b1b;background:#fee2e2}.col-topic{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:180px;overflow:hidden}.col-option{min-width:120px}.col-option--correct{border-left:3px solid var(--color-success);background:#16a34a26}.col-explanation{cursor:pointer;min-width:150px;position:relative}.expand-hint{color:var(--color-primary);font-weight:500;font-size:var(--font-size-sm)}
