:root{--c-bg: #fafbfc;--c-bg-surface: #ffffff;--c-bg-muted: #f1f5f9;--c-bg-accent: #f0f4ff;--c-border: #e2e8f0;--c-border-light: #f1f5f9;--c-text: #1a1a2e;--c-text-secondary: #475569;--c-text-muted: #94a3b8;--c-primary: #2563eb;--c-primary-light: #dbeafe;--c-primary-dark: #1d4ed8;--c-success: #16a34a;--c-success-light: #dcfce7;--c-warning: #f59e0b;--c-warning-light: #fef3c7;--c-danger: #dc2626;--c-danger-light: #fee2e2;--c-info: #6366f1;--c-info-light: #e0e7ff;--font-sans: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "SF Mono", monospace;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-base: .9rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.35rem;--fs-2xl: 1.6rem;--fw-normal: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--lh-tight: 1.3;--lh-normal: 1.55;--lh-relaxed: 1.7;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sidebar-width: 300px;--header-height: 52px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 2px 8px rgba(0, 0, 0, .08);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .1);--transition-fast: .12s ease;--transition-normal: .2s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-normal);color:var(--c-text);background:var(--c-bg)}.app{display:grid;grid-template-columns:var(--sidebar-width) 1fr;grid-template-rows:var(--header-height) 1fr;height:100vh;overflow:hidden}.app-header{grid-column:1 / -1;display:flex;align-items:center;gap:var(--sp-4);padding:0 var(--sp-6);background:var(--c-bg-surface);border-bottom:1px solid var(--c-border);box-shadow:0 1px 3px #0000000a;z-index:10}.app-sidebar{overflow-y:auto;border-right:1px solid var(--c-border);background:var(--c-bg-surface);box-shadow:1px 0 3px #00000005}.app-main{overflow-y:auto;padding:var(--sp-6) var(--sp-8);background:var(--c-bg)}.header-title{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--c-text);letter-spacing:-.02em}.header-subtitle{font-size:var(--fs-xs);color:var(--c-text-muted);letter-spacing:.02em}.doc-selector{display:flex;gap:0;margin-left:auto;background:var(--c-bg-muted);padding:3px;border-radius:var(--radius-lg);border:1px solid var(--c-border)}.doc-tab{min-width:120px;padding:var(--sp-2) var(--sp-5);border:none;border-radius:var(--radius-md);background:transparent;font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--c-text-muted);cursor:pointer;transition:all var(--transition-fast);text-align:center}.doc-tab:hover{color:var(--c-text);background:var(--c-bg-surface)}.doc-tab[data-active=true]{background:var(--c-primary);color:#fff;box-shadow:0 2px 6px #2563eb59}.sidebar-section{padding:var(--sp-3) var(--sp-3) var(--sp-2)}.sidebar-section-title{font-size:.65rem;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.08em;color:var(--c-text-muted);padding:var(--sp-3) var(--sp-3) var(--sp-2)}.question-list{list-style:none}.question-item{display:flex;flex-direction:column;gap:var(--sp-1);width:100%;padding:var(--sp-2) var(--sp-4);border:none;background:none;text-align:left;font-size:var(--fs-sm);color:var(--c-text-secondary);cursor:pointer;border-left:3px solid transparent;transition:all var(--transition-fast);line-height:var(--lh-tight)}.question-item:hover{background:var(--c-bg-muted);color:var(--c-text)}.question-item[data-active=true]{background:var(--c-primary-light);color:var(--c-primary-dark);border-left-color:var(--c-primary);font-weight:var(--fw-medium)}.question-category{display:inline-block;font-size:.6rem;padding:1px var(--sp-2);border-radius:var(--radius-sm);max-width:fit-content;letter-spacing:.02em}.question-category[data-cat=product_boundary]{background:#fce7f3;color:#9d174d}.question-category[data-cat=cross_reference]{background:#dbeafe;color:#1d4ed8}.question-category[data-cat=scenario]{background:#fef3c7;color:#92400e}.question-category[data-cat=compliance]{background:#fee2e2;color:#991b1b}.question-category[data-cat=definition]{background:#e0e7ff;color:#3730a3}.question-category[data-cat=factual]{background:#dcfce7;color:#166534}.question-category[data-cat=procedure]{background:#f3e8ff;color:#6b21a8}.index-toggle{display:flex;align-items:center;gap:var(--sp-2);width:calc(100% - var(--sp-2));margin:var(--sp-2) auto;padding:var(--sp-3) var(--sp-4);border:1px solid var(--c-border);border-radius:var(--radius-md);background:linear-gradient(135deg,var(--c-bg-surface),var(--c-bg-muted));font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--c-info);cursor:pointer;text-align:left;transition:all var(--transition-normal)}.index-toggle:hover{background:linear-gradient(135deg,var(--c-info-light),var(--c-bg-surface));border-color:var(--c-info);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.index-toggle[data-active=true]{background:linear-gradient(135deg,var(--c-info),#818cf8);border-color:var(--c-info);color:#fff;box-shadow:0 2px 8px #6366f14d}.answer-panel{max-width:860px}.answer-question{padding:var(--sp-4) var(--sp-5);background:var(--c-bg-accent);border-left:4px solid var(--c-primary);border-radius:var(--radius-md);margin-bottom:var(--sp-6)}.answer-question h2{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--c-primary-dark);margin-bottom:var(--sp-2)}.answer-question p{font-size:var(--fs-base);color:var(--c-text-secondary);line-height:var(--lh-relaxed)}.answer-body{background:var(--c-bg-surface);padding:var(--sp-6);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:var(--sp-6);line-height:var(--lh-relaxed)}.answer-body h3{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--c-text);margin:var(--sp-5) 0 var(--sp-2)}.answer-body h3:first-child{margin-top:0}.answer-confidence{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);border-radius:var(--radius-sm);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase}.answer-confidence[data-level=high]{background:var(--c-success-light);color:var(--c-success)}.answer-confidence[data-level=medium]{background:var(--c-warning-light);color:var(--c-warning)}.answer-confidence[data-level=low]{background:var(--c-danger-light);color:var(--c-danger)}.section-header{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4)}.section-header h3{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--c-text)}.section-badge{font-size:var(--fs-xs);padding:var(--sp-1) var(--sp-3);border-radius:12px;font-weight:var(--fw-semibold);background:var(--c-primary);color:#fff}.chain-step{display:flex;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-2);background:var(--c-bg-surface);border-radius:var(--radius-md);border-left:3px solid var(--c-border);box-shadow:var(--shadow-sm)}.chain-step[data-type=fact]{border-left-color:var(--c-primary)}.chain-step[data-type=deduction]{border-left-color:#8b5cf6}.chain-step[data-type=implication]{border-left-color:var(--c-warning)}.chain-step[data-type=conclusion]{border-left-color:var(--c-success);background:var(--c-success-light)}.step-num{font-weight:var(--fw-bold);color:var(--c-text-muted);min-width:50px;font-size:var(--fs-sm)}.step-type{font-size:var(--fs-xs);padding:1px var(--sp-2);border-radius:10px;background:var(--c-bg-muted);color:var(--c-text-muted);text-transform:uppercase;letter-spacing:.3px}.step-claim{flex:1 1 100%;font-weight:var(--fw-medium);margin-top:var(--sp-1);font-size:var(--fs-sm)}.step-basis{flex:1 1 100%;font-size:var(--fs-xs);color:var(--c-text-muted)}.step-ref{background:var(--c-primary-light);color:var(--c-primary-dark);padding:0 var(--sp-1);border-radius:2px;font-weight:var(--fw-semibold);font-size:var(--fs-xs)}.step-explain{flex:1 1 100%;font-size:var(--fs-xs);color:var(--c-text-secondary);font-style:italic}.citation-card{background:var(--c-bg-surface);border-radius:var(--radius-lg);padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-3);box-shadow:var(--shadow-sm);border-left:4px solid var(--c-success)}.cite-header{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-2)}.cite-id{font-weight:var(--fw-bold);color:var(--c-primary);font-size:var(--fs-md)}.cite-location{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--c-info)}.cite-product{font-size:var(--fs-xs);padding:1px var(--sp-2);border-radius:var(--radius-sm);background:var(--c-bg-muted);color:var(--c-text-secondary);margin-left:auto}.cite-quote{padding:var(--sp-3) var(--sp-4);background:var(--c-bg-muted);border-left:3px solid var(--c-border);border-radius:var(--radius-sm);font-style:italic;color:var(--c-text-secondary);margin:var(--sp-3) 0;font-size:var(--fs-sm);line-height:var(--lh-relaxed)}.cite-context{font-size:var(--fs-sm);color:var(--c-text-secondary);margin:var(--sp-2) 0}.cite-relevance{font-size:var(--fs-sm);margin:var(--sp-2) 0}.cite-connection{font-size:var(--fs-sm);padding:var(--sp-2) var(--sp-3);background:#f5f3ff;border-radius:var(--radius-sm);color:#7c3aed;margin-top:var(--sp-2)}.index-viewer{max-width:860px}.index-meta{background:var(--c-bg-surface);padding:var(--sp-5);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:var(--sp-6)}.index-meta h2{font-size:var(--fs-xl);margin-bottom:var(--sp-3)}.index-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--sp-3)}.index-meta-item{padding:var(--sp-3);background:var(--c-bg-muted);border-radius:var(--radius-md)}.index-meta-label{font-size:var(--fs-xs);color:var(--c-text-muted);text-transform:uppercase;letter-spacing:.04em}.index-meta-value{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--c-text)}.index-sections{display:flex;flex-direction:column;gap:var(--sp-2)}.index-entry{display:grid;grid-template-columns:90px 80px 1fr 60px;gap:var(--sp-3);align-items:center;padding:var(--sp-2) var(--sp-3);background:var(--c-bg-surface);border-radius:var(--radius-sm);font-size:var(--fs-sm);border:1px solid var(--c-border-light);transition:background var(--transition-fast)}.index-entry:hover{background:var(--c-bg-muted)}.index-entry-id{font-family:var(--font-mono);font-weight:var(--fw-semibold);color:var(--c-primary);font-size:var(--fs-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.index-entry-type{font-size:.65rem;padding:1px var(--sp-2);border-radius:var(--radius-sm);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.index-entry-type[data-type=coverage]{background:#dcfce7;color:#166534}.index-entry-type[data-type=exclusion]{background:#fee2e2;color:#991b1b}.index-entry-type[data-type=definition]{background:#e0e7ff;color:#3730a3}.index-entry-type[data-type=payment]{background:#fef3c7;color:#92400e}.index-entry-type[data-type=procedure]{background:#f3e8ff;color:#6b21a8}.index-entry-type[data-type=obligation]{background:#fce7f3;color:#9d174d}.index-entry-type[data-type=limitation]{background:#fff7ed;color:#c2410c}.index-entry-type[data-type=general]{background:var(--c-bg-muted);color:var(--c-text-muted)}.index-entry-title{color:var(--c-text)}.index-entry-chars{font-size:var(--fs-xs);color:var(--c-text-muted);text-align:right}.index-products-list{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-3)}.index-product-tag{font-size:var(--fs-xs);padding:var(--sp-1) var(--sp-3);background:var(--c-primary-light);color:var(--c-primary-dark);border-radius:12px;font-weight:var(--fw-medium)}.index-structure{display:flex;flex-direction:column;gap:var(--sp-1);margin-bottom:var(--sp-4)}.structure-chapter{display:flex;align-items:baseline;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--c-bg-surface);border-radius:var(--radius-sm);font-size:var(--fs-sm);border-left:3px solid var(--c-primary-light)}.structure-chapter-num{font-family:var(--font-mono);font-weight:var(--fw-semibold);color:var(--c-primary);font-size:var(--fs-xs);white-space:nowrap;flex-shrink:0}.structure-chapter-name{color:var(--c-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.structure-chapter-count{color:var(--c-text-muted);font-size:var(--fs-xs);white-space:nowrap;flex-shrink:0}.index-entry-expandable{border:1px solid var(--c-border-light);border-radius:var(--radius-sm);margin-bottom:1px;overflow:hidden;transition:box-shadow var(--transition-normal)}.index-entry-expandable.expanded{border-color:var(--c-primary-light);box-shadow:var(--shadow-md);margin-bottom:var(--sp-2)}.index-entry-row{display:grid;grid-template-columns:minmax(70px,auto) 90px 1fr 55px 45px 16px;gap:var(--sp-2);align-items:center;padding:var(--sp-1) var(--sp-3);background:var(--c-bg-surface);border:none;width:100%;text-align:left;font-size:var(--fs-sm);cursor:pointer;transition:background var(--transition-fast);min-height:32px}.index-entry-row:hover{background:var(--c-bg-muted)}.expanded .index-entry-row{background:var(--c-bg-accent);border-bottom:1px solid var(--c-border-light)}.index-entry-product{font-size:.65rem;color:var(--c-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.index-entry-expand{color:var(--c-text-muted);font-size:var(--fs-xs)}.index-entry-details{padding:var(--sp-4);background:var(--c-bg);display:flex;flex-direction:column;gap:var(--sp-3)}.index-detail-summary{font-size:var(--fs-sm);color:var(--c-text-secondary);font-style:italic;padding:var(--sp-2) var(--sp-3);background:var(--c-bg-muted);border-radius:var(--radius-sm)}.index-detail-tags{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.index-tag{font-size:var(--fs-xs);padding:1px var(--sp-2);background:var(--c-bg-muted);color:var(--c-text-secondary);border-radius:var(--radius-sm)}.index-detail-refs{display:flex;flex-wrap:wrap;gap:var(--sp-1);align-items:center}.index-detail-label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--c-text-muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:var(--sp-1)}.index-ref{font-size:var(--fs-xs);padding:1px var(--sp-2);background:var(--c-primary-light);color:var(--c-primary-dark);border-radius:var(--radius-sm);font-family:var(--font-mono)}.index-detail-variants{padding:var(--sp-3);background:var(--c-warning-light);border-radius:var(--radius-md)}.index-variant{display:flex;gap:var(--sp-2);font-size:var(--fs-sm);padding:var(--sp-1) 0}.index-variant-product{font-weight:var(--fw-semibold);color:var(--c-text);min-width:60px}.index-variant-text{color:var(--c-text-secondary)}.index-detail-text{margin-top:var(--sp-2)}.index-text-content{font-size:var(--fs-sm);line-height:var(--lh-relaxed);padding:var(--sp-5);background:var(--c-bg-surface);border:1px solid var(--c-border);border-radius:var(--radius-md);max-height:600px;overflow-y:auto;color:var(--c-text-secondary)}.index-text-content h1,.index-text-content h2{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--c-primary-dark);margin:var(--sp-4) 0 var(--sp-2);padding-bottom:var(--sp-1);border-bottom:2px solid var(--c-primary-light)}.index-text-content h3,.index-text-content h4{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--c-text);margin:var(--sp-3) 0 var(--sp-1)}.index-text-content p{margin:var(--sp-2) 0}.index-text-content strong{color:var(--c-text);font-weight:var(--fw-semibold)}.index-text-content ul,.index-text-content ol{padding-left:var(--sp-5);margin:var(--sp-2) 0}.index-text-content li{margin:var(--sp-1) 0}.index-text-content li>ul,.index-text-content li>ol{margin:var(--sp-1) 0}.index-text-content table{width:100%;border-collapse:collapse;margin:var(--sp-3) 0;font-size:var(--fs-xs)}.index-text-content th,.index-text-content td{padding:var(--sp-2) var(--sp-3);border:1px solid var(--c-border);text-align:left}.index-text-content th{background:var(--c-bg-muted);font-weight:var(--fw-semibold);color:var(--c-text)}.index-text-content blockquote{border-left:3px solid var(--c-primary-light);padding-left:var(--sp-4);margin:var(--sp-3) 0;color:var(--c-text-muted);font-style:italic}.index-text-content code{font-family:var(--font-mono);font-size:var(--fs-xs);background:var(--c-bg-muted);padding:1px var(--sp-1);border-radius:2px}.index-text-content hr{border:none;border-top:1px solid var(--c-border-light);margin:var(--sp-4) 0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--c-text-muted);gap:var(--sp-3)}.empty-state-icon{font-size:3rem;opacity:.3}.empty-state-text{font-size:var(--fs-md)}
