*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg: #f2f3f7;--bg-card: #ffffff;--bg-hover: #f1f5f9;--primary: #1e293b;--accent: #3b82f6;--accent-hover: #2563eb;--text: #1e293b;--text-secondary: #64748b;--text-muted: #94a3b8;--border: #e2e8f0;--border-light: #f1f5f9;--success: #22c55e;--error: #ef4444;--error-bg: #fef2f2;--accent-strong: #1d4ed8;--accent-soft: rgba(59, 130, 246, .1);--danger: #dc2626;--badge-search-bg: #eff6ff;--badge-qa-bg: #f0fdf4;--radius: 12px;--radius-sm: 8px;--radius-pill: 20px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow: 0 1px 3px rgba(0, 0, 0, .1), 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07), 0 2px 4px rgba(0, 0, 0, .06);--sidebar-w: 220px;--font: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-base: 14px}html[data-theme=dark]{--bg: #0f172a;--bg-card: #1e293b;--bg-hover: #273449;--text: #e2e8f0;--text-secondary: #cbd5e1;--text-muted: #94a3b8;--border: #334155;--border-light: #1e293b;--error-bg: rgba(239, 68, 68, .15);--badge-search-bg: rgba(59, 130, 246, .15);--badge-qa-bg: rgba(34, 197, 94, .15);--accent-strong: #93c5fd;--accent-soft: rgba(96, 165, 250, .18);--danger: #f87171;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 1px 3px rgba(0, 0, 0, .5), 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 6px rgba(0, 0, 0, .5), 0 2px 4px rgba(0, 0, 0, .4)}html[data-font-size=small]{font-size:.93rem}html[data-font-size=medium]{font-size:1rem}html[data-font-size=large]{font-size:1.14rem}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--font);font-size:1rem;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-shell{display:flex;flex-direction:row;height:100%}.app-main{flex:1;position:relative;overflow-y:auto;overflow-x:hidden;min-width:0}.sidebar{width:var(--sidebar-w);height:100%;background:var(--primary);color:#fff;display:flex;flex-direction:column;flex-shrink:0}.sidebar-brand{padding:20px 16px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-brand-sub{display:block;font-size:10px;color:#ffffff80;margin-bottom:4px}.sidebar-brand-title{font-size:1.14rem;font-weight:700;color:#fff}.sidebar-nav{flex:1;padding:12px 8px;display:flex;flex-direction:column;gap:2px}.sidebar-nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;background:none;color:#ffffffb3;font-family:var(--font);font-size:.93rem;font-weight:500;cursor:pointer;border-radius:var(--radius-sm);transition:all .15s;text-align:left}.sidebar-nav-item:hover{background:#ffffff1a;color:#fff}.sidebar-nav-item.active{background:var(--accent);color:#fff}.sidebar-user{display:flex;align-items:center;gap:10px;padding:14px 16px;border-top:1px solid rgba(255,255,255,.1)}.sidebar-user-info{display:flex;flex-direction:column;min-width:0}.sidebar-user-label{font-size:10px;color:#fff6}.sidebar-user-name{font-size:12px;color:#ffffffe6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.health-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted);flex-shrink:0}.health-dot.online{background:var(--success)}.health-dot.offline{background:var(--error)}.health-dot.inline{display:inline-block;margin-right:6px;vertical-align:middle}.btn-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:none;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all .15s}.btn-icon:hover{background:var(--bg-hover);color:var(--text)}.btn-icon-sm{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:none;color:var(--text-muted);cursor:pointer;border-radius:6px;transition:all .15s}.btn-icon-sm:hover{background:var(--bg-hover);color:var(--text)}.btn-send{display:flex;align-items:center;gap:6px;padding:8px 16px;border:none;background:var(--primary);color:#fff;font-family:var(--font);font-size:.93rem;font-weight:500;cursor:pointer;border-radius:var(--radius-sm);transition:all .15s;white-space:nowrap}.btn-send:hover:not(:disabled){background:#0f172a}.btn-send:disabled{opacity:.4;cursor:not-allowed}.pipeline-pills{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.pipeline-pills .option-label{font-size:12px;color:var(--text-secondary);font-weight:500;margin-right:4px}.pill{padding:6px 14px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-family:var(--font);font-size:12px;font-weight:500;cursor:pointer;border-radius:var(--radius-pill);transition:all .15s}.pill:hover{border-color:var(--text-muted);color:var(--text)}.pill.active{background:var(--primary);color:#fff;border-color:var(--primary)}.pill.small{padding:4px 10px;font-size:11px}.pill.has-tooltip{position:relative}.pill .tooltip{display:none;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);width:260px;padding:10px 12px;background:var(--primary);color:#fff;font-size:12px;font-weight:400;line-height:1.6;border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:50;pointer-events:none}.pill .tooltip:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-bottom-color:var(--primary)}.pill.has-tooltip:hover .tooltip{display:block}.pipeline-descriptions{margin-top:12px;display:flex;flex-direction:column;gap:8px}.pipeline-desc-item{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;background:var(--bg);border-radius:6px;font-size:12px;line-height:1.5;color:var(--text-secondary)}.pipeline-desc-item svg{flex-shrink:0;margin-top:2px;color:var(--accent)}.pipeline-desc-item strong{display:block;font-size:12px;font-weight:600;color:var(--text);margin-bottom:2px}.login-page{display:flex;align-items:center;justify-content:center;height:100%;background:var(--bg)}.login-card{width:100%;max-width:420px;padding:40px 32px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md)}.login-header{text-align:center;margin-bottom:28px}.login-logo{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;background:var(--accent);color:#fff;border-radius:14px;margin-bottom:16px}.login-header h1{font-size:1.43rem;font-weight:700;margin-bottom:4px}.login-subtitle{font-size:.93rem;color:var(--text-secondary)}.login-features{display:flex;flex-direction:column;gap:10px;margin-bottom:28px;padding:16px;background:var(--bg);border-radius:var(--radius-sm)}.login-feature{display:flex;align-items:center;gap:10px;font-size:.93rem;color:var(--text-secondary)}.login-feature svg{color:var(--accent);flex-shrink:0}.login-actions{display:flex;flex-direction:column;gap:12px}.btn-azure{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:12px;border:1px solid var(--border);background:var(--bg-card);font-family:var(--font);font-size:1rem;font-weight:500;color:var(--text);cursor:pointer;border-radius:var(--radius-sm);transition:all .15s}.btn-azure:hover{background:var(--bg-hover);border-color:var(--text-muted)}.btn-login{padding:10px 20px;border:none;background:var(--primary);color:#fff;font-family:var(--font);font-size:.93rem;font-weight:500;cursor:pointer;border-radius:var(--radius-sm);transition:all .15s}.btn-login:hover{background:#0f172a}.btn-login:disabled{opacity:.4;cursor:not-allowed}.callback-page{display:flex;align-items:center;justify-content:center;height:100%;background:var(--bg)}.callback-card{text-align:center;padding:40px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md)}.callback-card h2{font-size:1.14rem;margin-bottom:8px}.callback-card p{color:var(--text-secondary);font-size:.93rem;margin-bottom:16px}.search-page{display:flex;flex-direction:column;height:100%;overflow:hidden}.search-top{padding:16px 24px 12px;background:var(--bg-card);border-bottom:1px solid var(--border);flex-shrink:0}.search-bar-row{display:flex;gap:8px;margin-bottom:10px}.search-field{flex:1;display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color .15s}.search-field:focus-within{border-color:var(--accent)}.search-field-icon{color:var(--text-muted);flex-shrink:0}.search-field-input{flex:1;padding:10px 0;border:none;background:none;font-family:var(--font);font-size:1rem;color:var(--text);outline:none}.search-field-input::placeholder{color:var(--text-muted)}.btn-search{display:flex;align-items:center;gap:6px;padding:10px 20px;border:none;background:var(--primary);color:#fff;font-family:var(--font);font-size:1rem;font-weight:600;cursor:pointer;border-radius:var(--radius-sm);white-space:nowrap;transition:background .15s}.btn-search:hover:not(:disabled){background:#0f172a}.btn-search:disabled{opacity:.4;cursor:not-allowed}.btn-clear{padding:10px 14px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-family:var(--font);font-size:.93rem;cursor:pointer;border-radius:var(--radius-sm);transition:all .15s}.btn-clear:hover{border-color:var(--text-muted);color:var(--text)}.search-pills{display:flex;align-items:center;gap:6px}.search-pills-label{font-size:12px;color:var(--text-secondary);font-weight:500;margin-right:2px}.search-top .filter-panel{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);width:100%;box-sizing:border-box}.search-top .filter-panel-title{flex:0 0 auto;margin-bottom:0}.search-top .filter-row{flex:0 0 auto;margin-bottom:0;display:inline-flex;align-items:center;gap:6px}.search-top .filter-row label{display:inline;margin-bottom:0;white-space:nowrap}.search-top .btn-filter-apply{flex:0 0 auto;width:auto;margin-top:0;margin-left:auto;padding:8px 14px;white-space:nowrap}.filter-dropdown{position:relative;flex:1 1 auto;min-width:180px;border:1px solid var(--border);border-radius:6px;background:var(--bg-card)}.filter-dropdown>summary{display:flex;align-items:center;gap:6px;padding:8px 12px;cursor:pointer;font-size:13px;color:var(--text);-webkit-user-select:none;user-select:none;list-style:none}.filter-dropdown>summary::-webkit-details-marker{display:none}.filter-dropdown>summary::marker{content:""}.filter-dropdown>summary:hover{background:#3b82f60f}.filter-dropdown-caret{transition:transform .15s;color:var(--text-muted);flex-shrink:0}.filter-dropdown[open]>summary .filter-dropdown-caret{transform:rotate(180deg)}.filter-dropdown-body{position:absolute;top:calc(100% + 4px);left:0;z-index:20;min-width:280px;display:flex;flex-direction:column;gap:8px;padding:10px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;box-shadow:0 6px 16px #0000001f}.filter-dropdown-toolbar{display:flex;align-items:center;gap:4px;padding-bottom:8px;border-bottom:1px solid var(--border-light, #eee)}.filter-dropdown-sort{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .12s,color .12s,border-color .12s}.filter-dropdown-sort:hover{background:var(--accent-soft)}.filter-dropdown-sort.active{background:var(--accent-soft);color:var(--accent-strong);border-color:var(--accent)}.filter-dropdown-search{display:inline-flex;align-items:center;flex:1;gap:4px;padding:3px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg-secondary, #fafafa);color:var(--text-muted);min-width:0}.filter-dropdown-search input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-family:inherit;font-size:12px;color:var(--text)}.filter-dropdown-bulk{padding:4px 8px;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--text-secondary);font-family:inherit;font-size:11px;cursor:pointer;white-space:nowrap;transition:background .12s}.filter-dropdown-bulk:hover{background:var(--accent-soft);color:var(--accent-strong)}.filter-dropdown-list{display:flex;flex-direction:column;gap:4px;max-height:240px;overflow-y:auto}.filter-tri-item{display:flex;align-items:center;gap:8px;padding:4px 6px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--text);font-family:inherit;font-size:13px;cursor:pointer;text-align:left;transition:background .12s}.filter-tri-item:hover{background:var(--bg-hover, rgba(0, 0, 0, .04))}.filter-tri-mark{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:3px;border:1.5px solid var(--border);background:var(--bg-card);color:transparent;font-size:15px;font-weight:700;line-height:1;flex-shrink:0;transition:border-color .12s,background .12s,color .12s}.filter-tri-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-tri-include .filter-tri-mark{border-color:var(--accent);background:var(--accent);color:#fff}.filter-tri-exclude .filter-tri-mark{border-color:var(--danger);background:var(--bg-card);color:var(--danger)}.filter-tri-exclude .filter-tri-label{color:var(--text-muted);text-decoration:line-through;text-decoration-color:var(--danger)}.search-split{flex:1;display:flex;gap:0;overflow:hidden}.split-left{flex:1;overflow-y:auto;padding:20px 24px;min-width:0}.search-split.image-mode .split-right{width:100%;border-left:none;flex:1}.split-right{width:420px;border-left:1px solid var(--border);flex-shrink:0;overflow-y:auto;display:flex;flex-direction:column}.search-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 20px;gap:8px}.search-empty-icon{color:var(--border)}.search-empty-state h2{font-size:1.43rem;font-weight:700;color:var(--primary);white-space:nowrap}.search-empty-state>p{font-size:1rem;color:var(--text-secondary);max-width:none;white-space:nowrap}.search-loading{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--text-muted)}.search-loading p{font-size:1rem}.search-examples{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;justify-content:center}.example-chip{padding:8px 16px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-family:var(--font);font-size:.93rem;cursor:pointer;border-radius:var(--radius-pill);transition:all .15s}.example-chip:hover{border-color:var(--accent);color:var(--accent)}.follow-up-section{margin-top:16px}.follow-up-divider{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:8px 0;border-top:1px solid var(--border-light)}.follow-up-input{display:flex;gap:8px;margin-top:16px;padding-top:12px;border-top:1px solid var(--border-light)}.follow-up-input input{flex:1;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font);font-size:.93rem;color:var(--text);outline:none}.follow-up-input input:focus{border-color:var(--accent)}.follow-up-input input:disabled{background:var(--bg)}.btn-send-sm{padding:10px 16px;border:none;background:var(--primary);color:#fff;font-family:var(--font);font-size:.93rem;font-weight:500;cursor:pointer;border-radius:var(--radius-sm);transition:background .15s;white-space:nowrap}.btn-send-sm:hover:not(:disabled){background:#0f172a}.btn-send-sm:disabled{opacity:.4;cursor:not-allowed}.answer-panel{background:transparent;border:none;border-radius:0}.answer-panel-header{display:flex;align-items:center;gap:8px;padding:8px 0;background:transparent;border-bottom:1px solid var(--border-light, #eee);font-size:1rem;font-weight:600;color:var(--text)}.answer-body{padding:12px 0}.answer-content{font-size:1rem;line-height:1.8;color:var(--text)}.answer-content h1,.answer-content h2,.answer-content h3{font-weight:600;margin-top:16px;margin-bottom:8px}.answer-content h2{font-size:1.07rem}.answer-content h3{font-size:1rem}.answer-content p{margin-bottom:8px}.answer-content p:last-child{margin-bottom:0}.answer-content ul,.answer-content ol{margin:8px 0;padding-left:20px}.answer-content li{margin-bottom:4px}.answer-content strong{font-weight:600}.answer-content code{background:var(--bg);padding:2px 6px;border-radius:4px;font-size:.93rem}.answer-content pre{background:var(--primary);color:#e2e8f0;padding:12px 16px;border-radius:var(--radius-sm);overflow-x:auto;margin:8px 0}.answer-content pre code{background:none;padding:0;color:inherit}.answer-content table{border-collapse:collapse;margin:8px 0;width:100%}.answer-content th,.answer-content td{border:1px solid var(--border);padding:6px 10px;font-size:.93rem;text-align:left}.answer-content th{background:var(--bg);font-weight:600}.answer-sources{margin-top:16px;padding-top:12px;border-top:1px solid var(--border-light)}.answer-sources-label{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:8px}.answer-sources-tags{display:flex;flex-wrap:wrap;gap:6px}.source-chip{display:inline-flex;align-items:flex-start;gap:5px;padding:6px 12px;border:1px solid var(--accent);background:#3b82f60f;color:var(--accent);font-family:var(--font);font-size:12px;font-weight:500;cursor:pointer;border-radius:var(--radius-pill);transition:all .15s}.source-chip:hover{background:#3b82f61f}.source-chip-text{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;text-align:left}.source-chip-path,.source-chip-date{max-width:260px;overflow:hidden;text-overflow:ellipsis;color:var(--text-muted);font-size:11px;font-weight:400;white-space:nowrap}.source-chip-download{display:inline-flex;align-items:center;align-self:center;padding:3px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:4px;opacity:0;transition:opacity .15s ease,background .15s ease}.source-chip:hover .source-chip-download,.source-chip:focus-within .source-chip-download{opacity:1}.source-chip-download:hover{color:var(--accent);background:#3b82f626}.source-chip.unavailable{border-color:var(--border-light);background:transparent;color:var(--text-muted);cursor:default}.source-chip.unavailable:hover{background:transparent}.source-chip-unavailable-badge{align-self:center;padding:1px 6px;border:1px solid var(--border-light);border-radius:var(--radius-pill);color:var(--text-muted);font-size:10px;font-weight:400;white-space:nowrap}.filter-row-multi{align-items:flex-start}.filter-row-multi>label{padding-top:4px}.filter-checkbox-group{display:flex;flex-wrap:wrap;gap:6px 10px;flex:1}.filter-checkbox-item{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border:1px solid var(--border-light);border-radius:var(--radius-pill);font-size:12px;color:var(--text-secondary, #4b5563);background:var(--bg-secondary, #fafafa);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s,border-color .12s}.filter-checkbox-item:hover{background:#3b82f614;border-color:#93c5fd}.filter-checkbox-item input[type=checkbox]{margin:0;cursor:pointer}.filter-checkbox-item:has(input:checked){background:#3b82f61f;border-color:#3b82f6;color:#1d4ed8;font-weight:500}.filter-empty{color:var(--text-muted);font-size:12px;font-style:italic}.source-chip.glossary{border-color:#a78bfa;background:#a78bfa14;align-items:flex-start;padding:6px 10px;max-width:480px}.source-chip.glossary:hover{background:#a78bfa29}.source-chip-glossary-def{color:var(--text-secondary, #4b5563);font-size:11px;font-weight:400;line-height:1.4;white-space:normal;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;max-width:380px}.source-chip-glossary-badge{align-self:center;padding:1px 6px;border:1px solid #a78bfa;border-radius:var(--radius-pill);color:#7c3aed;background:#a78bfa1f;font-size:10px;font-weight:500;white-space:nowrap}.glossary-page{max-width:960px;margin:0 auto;padding:24px;box-sizing:border-box}.glossary-back-btn{position:fixed;top:50%;left:calc(var(--sidebar-w) + (100vw - var(--sidebar-w) - 960px) / 4);transform:translate(-50%,-50%);z-index:5;margin-bottom:0}@media(max-width:1180px){.glossary-back-btn{position:absolute;top:16px;left:16px;transform:none}}.glossary-header{display:flex;align-items:center;gap:8px;margin-bottom:16px}.glossary-header h1{font-size:22px;font-weight:600;margin:0}.glossary-count{margin-left:auto;color:var(--text-muted);font-size:13px}.glossary-filter{width:100%;padding:8px 12px;border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:14px;margin-bottom:16px}.glossary-list{display:flex;flex-direction:column;gap:8px}.glossary-entry{display:block;width:100%;text-align:left;padding:12px 16px;border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-secondary, #fafafa);font-family:inherit;color:inherit;cursor:pointer;transition:background .12s,border-color .12s,transform .12s}.glossary-entry:hover{background:#a78bfa1a;border-color:#c4b5fd}.glossary-entry:focus-visible{outline:2px solid #a78bfa;outline-offset:2px}.glossary-entry:active{transform:scale(.995)}.glossary-term{font-weight:600;font-size:15px;margin-bottom:4px;color:var(--text-primary, #1f2937)}.glossary-definition{color:var(--text-secondary, #4b5563);font-size:13px;white-space:pre-wrap;line-height:1.55}.glossary-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;background:#0f172a73;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:glossary-backdrop-in .18s ease-out}@keyframes glossary-backdrop-in{0%{opacity:0}to{opacity:1}}.glossary-modal{position:relative;width:100%;max-width:720px;max-height:calc(100vh - 48px);overflow-y:auto;padding:32px 40px 40px;background:var(--bg-card, #ffffff);border-radius:12px;box-shadow:0 24px 64px #00000040;animation:glossary-modal-in .2s cubic-bezier(.2,.9,.3,1)}@keyframes glossary-modal-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.glossary-modal-close{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;margin-bottom:20px;border:1px solid var(--border);border-radius:999px;background:var(--bg-secondary, #f8fafc);color:var(--text-secondary, #4b5563);font-family:inherit;font-size:13px;cursor:pointer;transition:background .12s,color .12s}.glossary-modal-close:hover{background:#a78bfa24;color:#7c3aed}.glossary-modal-term{font-size:28px;font-weight:700;color:var(--text-primary, #1f2937);margin-bottom:16px;line-height:1.35;word-break:break-word}.glossary-modal-definition{font-size:17px;line-height:1.85;color:var(--text-primary, #1f2937);white-space:pre-wrap;word-break:break-word}.glossary-loading,.glossary-error,.glossary-empty{padding:24px;text-align:center;color:var(--text-muted)}.answer-warnings{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-light)}.warning-banner{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius-sm);color:#b91c1c;font-size:.93rem;font-weight:500;margin-top:6px}.warning-banner svg{flex-shrink:0;color:#dc2626}.file-panel{display:flex;flex-direction:column;height:100%;background:transparent}.file-panel-header{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border);font-size:1rem;font-weight:600;color:var(--text);flex-shrink:0}.file-list{flex-shrink:0;padding:8px;display:flex;flex-direction:column;gap:2px;max-height:50%;overflow-y:auto}.file-item{display:flex;flex-direction:column;gap:0;padding:8px 10px;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s}.file-item:hover{background:var(--bg-hover)}.file-item.selected{background:#fef2f2;border-color:#fecaca}.file-name{flex:1;font-size:.93rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-path{margin-top:4px;padding-left:24px;font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-pages{font-size:11px;color:var(--text-muted);flex-shrink:0}.file-download{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;background:none;color:var(--text-muted);cursor:pointer;border-radius:4px;flex-shrink:0;transition:all .15s}.file-download:hover{background:var(--bg);color:var(--accent)}.file-icon{flex-shrink:0}.file-icon-pdf{color:#3b82f6}.file-icon-xlsx{color:#22c55e}.file-icon-pptx{color:#ef4444}.file-icon-dwg{color:#6366f1}.file-icon-other{color:var(--text-muted)}.file-preview{flex:1;display:flex;flex-direction:column;border-top:1px solid var(--border);overflow:hidden}.file-preview-header{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 6px 16px;border-bottom:1px solid var(--border-light);flex-shrink:0}.file-preview-label{font-size:12px;font-weight:600;color:var(--text-secondary)}.file-preview-actions{display:flex;gap:4px}.file-preview-content{flex:1;padding:12px 16px;overflow-y:auto;background:var(--bg-card)}.preview-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:24px;z-index:200}.preview-modal{width:min(1400px,96vw);height:92vh;background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-md);display:flex;flex-direction:column;overflow:hidden}.preview-modal-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 10px 16px;border-bottom:1px solid var(--border);flex-shrink:0;gap:12px}.preview-modal-title{font-size:.93rem;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-modal-actions{display:flex;gap:4px;flex-shrink:0}.preview-modal-body{flex:1;min-height:0;display:flex}.preview-modal-body iframe,.preview-modal-body img{flex:1;width:100%;height:100%;border:none;object-fit:contain}.file-preview-content pre{font-size:12px;font-family:Geist Mono,monospace;white-space:pre-wrap;word-break:break-word;color:var(--text-secondary);line-height:1.6}.file-preview-empty{color:var(--text-muted);font-size:.93rem;text-align:center;padding:20px 0}.file-preview-content iframe,.file-preview-content img{width:100%;height:100%;border:none;object-fit:contain}.file-preview-content iframe{min-height:300px}.file-preview-unsupported{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 0;color:var(--text-muted);font-size:.93rem}.file-preview-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:24px 0;color:var(--text-muted);font-size:.93rem}.file-item-main{display:flex;align-items:center;gap:8px;width:100%}.file-meta{display:flex;gap:6px;align-items:center;margin-top:4px;padding-left:24px;flex-wrap:wrap}.file-customer-badge{font-size:11px;background:var(--bg);padding:1px 6px;border-radius:4px;color:var(--text-secondary)}.file-category-tag{font-size:10px;background:#3b82f614;color:var(--accent);padding:1px 6px;border-radius:4px}.file-date{font-size:11px;color:var(--text-muted)}.filter-panel{padding:12px 16px;border-bottom:1px solid var(--border-light, #eee);background:transparent;flex-shrink:0}.filter-panel-title{display:flex;align-items:center;gap:6px;font-size:.93rem;font-weight:600;color:var(--text);margin-bottom:10px}.filter-row{margin-bottom:8px}.filter-row:last-child{margin-bottom:0}.filter-row label{display:block;font-size:12px;color:var(--text-secondary);font-weight:500;margin-bottom:4px}.filter-row select,.filter-row input[type=date]{width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:6px;font-family:var(--font);font-size:.93rem;color:var(--text);background:var(--bg-card);outline:none}.filter-row select:focus,.filter-row input[type=date]:focus{border-color:var(--accent)}.btn-filter-apply{display:flex;align-items:center;justify-content:center;width:100%;margin-top:10px;padding:7px 12px;border:none;border-radius:var(--radius-sm);background:var(--primary);color:#fff;font-family:var(--font);font-size:.93rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-filter-apply:hover:not(:disabled){background:#0f172a}.btn-filter-apply:disabled{opacity:.4;cursor:not-allowed}.filter-date-range{display:flex;align-items:center;gap:6px}.filter-date-range input[type=date]{flex:1}.filter-date-sep{font-size:12px;color:var(--text-muted);flex-shrink:0}.btn-secondary{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-family:var(--font);font-size:.93rem;cursor:pointer;border-radius:var(--radius-sm);transition:all .15s}.btn-secondary:hover{border-color:var(--text-muted);color:var(--text)}.chat-message{display:flex;gap:12px;padding:16px 0}.chat-message+.chat-message{border-top:1px solid var(--border-light)}.message-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.chat-message.user .message-avatar{background:var(--primary);color:#fff}.chat-message.assistant .message-avatar{background:var(--accent);color:#fff}.message-body{flex:1;min-width:0}.message-role{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:4px}.message-content{font-size:1rem;line-height:1.7;color:var(--text);word-break:break-word}.message-content h1,.message-content h2,.message-content h3{font-weight:600;margin-top:16px;margin-bottom:8px}.message-content h1{font-size:1.29rem}.message-content h2{font-size:1.14rem}.message-content h3{font-size:1rem}.message-content p{margin-bottom:8px}.message-content p:last-child{margin-bottom:0}.message-content ul,.message-content ol{margin:8px 0;padding-left:20px}.message-content li{margin-bottom:4px}.message-content code{background:var(--bg);padding:2px 6px;border-radius:4px;font-size:.93rem;font-family:Geist Mono,monospace}.message-content pre{background:var(--primary);color:#e2e8f0;padding:12px 16px;border-radius:var(--radius-sm);overflow-x:auto;margin:8px 0}.message-content pre code{background:none;padding:0;color:inherit}.message-content table{border-collapse:collapse;margin:8px 0;width:100%}.message-content th,.message-content td{border:1px solid var(--border);padding:6px 10px;font-size:.93rem;text-align:left}.message-content th{background:var(--bg);font-weight:600}.message-content strong{font-weight:600}.source-tag{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:5px 12px;border:1px solid var(--accent);background:#3b82f60f;color:var(--accent);font-family:var(--font);font-size:12px;font-weight:500;cursor:pointer;border-radius:var(--radius-pill);transition:all .15s}.source-tag:hover{background:#3b82f61f}.loading-indicator{display:flex;align-items:center;gap:8px;padding:16px 0;color:var(--text-muted);font-size:.93rem}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-spinner{width:24px;height:24px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 12px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.modal-panel{width:680px;max-width:90vw;height:75vh;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-md);display:flex;flex-direction:column}.modal-panel .source-panel{width:100%;height:100%;border-left:none}.modal-panel .source-list{overflow-y:hidden}.modal-panel .source-card{display:flex;flex-direction:column;flex:1;min-height:0}.modal-panel .source-card-content{flex:1;overflow-y:auto;padding:12px 16px 16px}.modal-panel .source-card-content pre{max-height:none;overflow-y:visible}.modal-panel .source-list.accordion{overflow-y:auto}.modal-panel .source-list.accordion .source-card{flex:0 0 auto}.modal-panel .source-list.accordion .source-card.expanded{flex:1 1 auto;min-height:0}.modal-panel .source-list.accordion .source-card.expanded .source-card-content{max-height:100%}.source-panel{width:360px;background:var(--bg-card);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;flex-shrink:0}.source-panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}.source-panel-header h3{display:flex;align-items:center;gap:8px;font-size:1rem;font-weight:600}.source-list{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.source-card{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;transition:border-color .15s}.source-card:hover{border-color:var(--text-muted)}.source-card-header{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;cursor:pointer}.source-card-index{width:24px;height:24px;border-radius:50%;background:var(--bg);font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-secondary)}.source-card-info{flex:1;min-width:0}.source-card-title{font-size:.93rem;font-weight:600;color:var(--text);word-break:break-word}.source-card-path{font-size:11px;color:var(--text-muted);margin-top:2px;word-break:break-all}.source-card-date{font-size:11px;color:var(--text-muted);margin-top:2px}.source-card-pages{font-size:11px;color:var(--accent);margin-top:2px}.source-card-actions{display:flex;gap:2px;flex-shrink:0}.source-card-content{border-top:1px solid var(--border);padding:10px 12px}.source-card-content pre{font-size:12px;font-family:Geist Mono,monospace;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto;color:var(--text-secondary);line-height:1.5}.settings-page{padding:24px;overflow-y:auto;height:100%}.settings-header{margin-bottom:24px}.settings-header h2{font-size:1.43rem;font-weight:700}.settings-header p{font-size:.93rem;color:var(--text-secondary);margin-top:4px}.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}.settings-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.settings-card-title{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--border-light);font-size:1rem;color:var(--text)}.settings-card-title h3{font-size:1rem;font-weight:600}.settings-card-body{padding:16px}.settings-dl{display:grid;grid-template-columns:120px 1fr;gap:10px 12px;font-size:.93rem}.settings-dl dt{color:var(--text-secondary);font-weight:500}.settings-dl dd{color:var(--text);min-width:0;overflow-wrap:anywhere;word-break:break-word}.settings-field{margin-bottom:14px}.settings-field:last-child{margin-bottom:0}.settings-field label{display:block;font-size:12px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.settings-field select{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-family:var(--font);font-size:.93rem;color:var(--text);background:var(--bg-card);outline:none}.settings-field select:focus{border-color:var(--accent)}.mono{font-family:Geist Mono,monospace;font-size:12px}.settings-card-wide{grid-column:1 / -1}.settings-tag-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:16px}@media(max-width:1100px){.settings-tag-columns{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.settings-tag-columns{grid-template-columns:1fr}}.settings-tag-rows{display:flex;flex-direction:column;gap:4px;min-height:36px;margin-bottom:10px;max-height:280px;overflow-y:auto}.settings-tag-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:6px;padding:3px 6px;background:var(--bg-secondary, rgba(0, 0, 0, .02));border:1px solid var(--border);border-radius:4px;font-size:.85rem}.settings-tag-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-tag-row-yomi{min-width:0;width:100%;padding:2px 6px;border:1px solid var(--border);border-radius:3px;background:var(--bg-card);font-family:inherit;font-size:.8rem;color:var(--text)}.settings-tag-row-yomi:focus{outline:none;border-color:var(--accent)}.settings-tag-input-yomi{flex:0 0 40%}.settings-tag-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.settings-tag-section-head label{margin-bottom:0}.settings-tag-autofill{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--text-secondary);font-family:inherit;font-size:11px;cursor:pointer;white-space:nowrap;transition:background .12s,color .12s}.settings-tag-autofill:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-strong);border-color:var(--accent)}.settings-tag-autofill:disabled{opacity:.4;cursor:not-allowed}.settings-tag-autofill-error{margin:4px 0;font-size:11px;color:var(--error, #dc2626)}.settings-tag-yomi-wrap{position:relative;display:flex;flex:0 0 40%;min-width:0}.settings-tag-yomi-wrap .settings-tag-input-yomi{flex:1;width:100%;padding-right:28px}.settings-tag-single-suggest{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:none;border-radius:4px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .12s,color .12s}.settings-tag-single-suggest:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-strong)}.settings-tag-single-suggest:disabled{opacity:.35;cursor:not-allowed}.answer-origin-badge{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:10px;background:var(--accent-soft);color:var(--accent-strong);font-size:11px;font-weight:600;vertical-align:middle}.glossary-notfound{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--error-bg);color:var(--text);font-size:13px}.glossary-notfound-dismiss{display:inline-flex;align-items:center;border:none;background:none;padding:2px;cursor:pointer;color:var(--text-secondary)}.source-chip-no{flex-shrink:0;padding:1px 6px;border-radius:3px;background:var(--accent-soft);color:var(--accent-strong);font-size:10.5px;font-weight:600;white-space:nowrap;line-height:1.5}.settings-tag-section{margin-bottom:0}.settings-tag-list{display:flex;flex-wrap:wrap;gap:6px;min-height:36px;margin-bottom:10px}.settings-tag-empty{font-size:.85rem;color:var(--text-tertiary);line-height:28px}.settings-tag-item{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:var(--bg-hover);border:1px solid var(--border);border-radius:14px;font-size:.85rem;color:var(--text)}.settings-tag-text{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-tag-remove{display:flex;align-items:center;background:none;border:none;padding:1px;cursor:pointer;color:var(--text-secondary);border-radius:50%;line-height:1}.settings-tag-remove:hover{color:var(--error);background:var(--error-bg, rgba(220, 38, 38, .1))}.settings-tag-input-row{display:flex;gap:8px}.settings-tag-input{flex:1;padding:6px 10px;border:1px solid var(--border);border-radius:6px;font-family:var(--font);font-size:.88rem;color:var(--text);background:var(--bg-card);outline:none}.settings-tag-input:focus{border-color:var(--accent)}.settings-tag-add{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;white-space:nowrap}.settings-tag-add:disabled{opacity:.4;cursor:not-allowed}.settings-tag-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;border-top:1px solid var(--border-light);padding-top:14px;margin-top:4px}.settings-tag-save{display:inline-flex;align-items:center;gap:6px;padding:7px 20px;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer}.settings-tag-save:disabled{opacity:.5;cursor:not-allowed}.settings-tag-reset{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;background:none;color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;font-size:.88rem;cursor:pointer}.settings-tag-reset:hover{background:var(--bg-hover);color:var(--text)}.settings-tag-reset:disabled{opacity:.5;cursor:not-allowed}.settings-tag-saved{font-size:.85rem;color:var(--success, #16a34a)}.settings-tag-error{font-size:.85rem;color:var(--error, #dc2626);margin-bottom:8px}.data-management-page{padding:24px;overflow-y:auto;height:100%}.data-header{margin-bottom:24px}.data-header h2{font-size:1.43rem;font-weight:700}.data-header p{font-size:.93rem;color:var(--text-secondary);margin-top:4px}.upload-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:24px}.upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px 20px;border:2px dashed var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s;margin-bottom:16px}.upload-zone:hover{border-color:var(--accent);background:#3b82f608}.upload-zone.drag-over{border-color:var(--accent);background:#3b82f60f}.upload-zone.has-file{border-color:var(--success);border-style:solid;background:#22c55e0a}.upload-zone-icon{color:var(--text-muted)}.upload-zone-icon.selected{color:var(--success)}.upload-zone-text{font-size:1rem;color:var(--text-secondary);font-weight:500}.upload-zone-sub{font-size:12px;color:var(--text-muted)}.upload-zone-filename{font-size:1rem;font-weight:600;color:var(--text)}.upload-zone-size{font-size:12px;color:var(--text-muted)}.upload-controls{display:flex;align-items:flex-end;gap:12px}.upload-group-select{display:flex;flex-direction:column;gap:4px}.upload-group-select label{font-size:12px;color:var(--text-secondary);font-weight:500}.upload-group-select select{padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-family:var(--font);font-size:.93rem;color:var(--text);background:var(--bg-card);outline:none}.upload-override-toggle{display:inline-flex;align-items:center;gap:8px;height:37px;padding:0 10px;border:1px solid var(--border);border-radius:6px;font-size:.93rem;color:var(--text);background:var(--bg-card);white-space:nowrap;cursor:pointer}.upload-override-toggle input[type=checkbox]{width:16px;height:16px;margin:0}.btn-upload{display:flex;align-items:center;gap:6px;padding:10px 20px;border:none;background:var(--accent);color:#fff;font-family:var(--font);font-size:1rem;font-weight:600;cursor:pointer;border-radius:var(--radius-sm);transition:background .15s;white-space:nowrap}.btn-upload:hover:not(:disabled){background:var(--accent-hover)}.btn-upload:disabled{opacity:.4;cursor:not-allowed}.jobs-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.jobs-section h3{padding:14px 16px;font-size:1rem;font-weight:600;border-bottom:1px solid var(--border)}.jobs-empty{padding:24px;text-align:center;color:var(--text-muted);font-size:.93rem}.job-table{width:100%;border-collapse:collapse}.job-table th{padding:10px 16px;font-size:12px;font-weight:600;color:var(--text-secondary);text-align:left;background:var(--bg);border-bottom:1px solid var(--border)}.job-table td{padding:10px 16px;font-size:.93rem;border-bottom:1px solid var(--border-light);vertical-align:middle}.job-table tr:last-child td{border-bottom:none}.job-row-failed{background:#ef444408}.job-id{font-family:Geist Mono,monospace;font-size:12px;color:var(--text-muted)}.job-filename{font-weight:500}.job-date{font-size:12px;color:var(--text-muted)}.status-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:var(--radius-pill);font-size:11px;font-weight:600}.status-queued{background:var(--bg);color:var(--text-muted)}.status-processing{background:#3b82f61a;color:var(--accent)}.status-completed{background:#22c55e1a;color:#16a34a}.status-failed{background:#ef44441a;color:#dc2626}.progress-bar{display:inline-block;width:80px;height:6px;background:var(--bg);border-radius:3px;overflow:hidden;vertical-align:middle;margin-right:6px}.progress-fill{height:100%;border-radius:3px;transition:width .5s ease}.progress-queued{background:var(--text-muted)}.progress-processing{background:var(--accent)}.progress-completed{background:var(--success)}.progress-failed{background:var(--error)}.progress-text{font-size:11px;color:var(--text-muted)}.file-explorer-section{margin-top:24px}.file-explorer{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.fe-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.fe-header h3{font-size:1rem;font-weight:600;margin:0}.fe-btn-icon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;background:none;border:1px solid var(--border);border-radius:6px;cursor:pointer;color:var(--text-secondary);transition:all .15s}.fe-btn-icon:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.fe-btn-icon:disabled{opacity:.5;cursor:default}.fe-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:2px;padding:8px 16px;background:var(--bg-hover);border-bottom:1px solid var(--border);font-size:.86rem}.fe-crumb{background:none;border:none;padding:3px 6px;border-radius:4px;cursor:pointer;color:var(--accent);font-size:.86rem;font-family:var(--font);transition:background .1s}.fe-crumb:hover{background:var(--border)}.fe-crumb.fe-crumb-current{color:var(--text);font-weight:600;cursor:default;pointer-events:none}.fe-crumb-sep{display:flex;align-items:center;gap:0;color:var(--text-muted)}.fe-error{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 16px;background:#ef444414;border-bottom:1px solid rgba(239,68,68,.2);font-size:.86rem;color:var(--error);white-space:pre-wrap;word-break:break-all}.fe-error-close{background:none;border:none;cursor:pointer;color:var(--error);font-size:1rem;line-height:1;flex-shrink:0;padding:0 4px}.fe-list-wrap{overflow-x:auto;max-height:480px;overflow-y:auto}.fe-table{width:100%;border-collapse:collapse;font-size:.93rem}.fe-table thead th{position:sticky;top:0;z-index:1;padding:9px 16px;text-align:left;font-size:.8rem;font-weight:600;color:var(--text-secondary);background:var(--bg-card);border-bottom:1px solid var(--border)}.fe-col-check{width:44px;text-align:center!important;padding-left:16px!important;padding-right:4px!important}.fe-col-name{min-width:200px}.fe-col-cat{width:90px}.fe-col-date{width:110px;white-space:nowrap}.fe-row{border-bottom:1px solid var(--border-light);transition:background .1s}.fe-row:last-child{border-bottom:none}.fe-row td{padding:9px 16px;vertical-align:middle}.fe-row-dir{cursor:pointer}.fe-row-dir:hover{background:var(--bg-hover)}.fe-row-file{cursor:pointer}.fe-row-file:hover{background:var(--bg-hover)}.fe-row-file.fe-row-selected{background:#3b82f612}.fe-name-cell{display:flex;align-items:center;gap:8px}.fe-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:400px}.fe-empty,.fe-loading{padding:32px 16px;text-align:center;color:var(--text-muted);font-size:.93rem}.fe-loading{display:flex;align-items:center;justify-content:center;gap:8px}.ficon{flex-shrink:0}.ficon-folder{color:#f59e0b}.ficon-doc{color:#3b82f6}.ficon-excel{color:#22c55e}.ficon-image{color:#a855f7}.ficon-dwg{color:#f97316}.ficon-generic{color:var(--text-muted)}.fe-category-badge{display:inline-block;padding:2px 7px;border-radius:var(--radius-pill);font-size:11px;font-weight:500;white-space:nowrap}.fe-cat-doc{background:#3b82f61f;color:#3b82f6}.fe-cat-excel{background:#22c55e1f;color:#22c55e}.fe-cat-image{background:#a855f71f;color:#a855f7}.fe-cat-dwg{background:#f973161f;color:#f97316}.fe-cat-text{background:#64748b1f;color:var(--text-secondary)}.fe-selection-detail{margin-left:4px;font-size:.8rem;color:var(--text-muted)}.fe-btn-rename-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:none;border:none;border-radius:4px;cursor:pointer;color:var(--text-muted);opacity:0;transition:opacity .1s,background .1s;flex-shrink:0;margin-left:4px}.fe-row:hover .fe-btn-rename-icon{opacity:1}.fe-btn-rename-icon:focus-visible,.fe-row:focus-within .fe-btn-rename-icon{opacity:1}.fe-btn-rename-icon:hover{background:var(--border);color:var(--text)}.fe-rename-cell{display:flex;align-items:center;gap:6px}.fe-rename-input{flex:1;min-width:0;padding:3px 8px;border:1px solid var(--accent);border-radius:4px;font-size:.93rem;font-family:var(--font);color:var(--text);background:var(--bg-card);outline:none}.fe-btn-rename-ok{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:var(--accent);color:#fff;cursor:pointer;flex-shrink:0}.fe-btn-rename-ok:disabled{opacity:.6;cursor:default}.fe-btn-rename-cancel{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid var(--border);border-radius:4px;background:none;color:var(--text-secondary);cursor:pointer;flex-shrink:0}.fe-btn-rename-cancel:hover:not(:disabled){background:var(--bg-hover)}.fe-action-bar{display:flex;align-items:center;gap:12px;padding:12px 20px;background:#3b82f60d;border-top:1px solid var(--border)}.fe-selection-count{font-size:.86rem;color:var(--text-secondary);flex:1}.fe-btn-delete{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--error);border-radius:6px;background:none;color:var(--error);font-size:.86rem;font-family:var(--font);font-weight:500;cursor:pointer;transition:all .15s}.fe-btn-delete:hover:not(:disabled){background:var(--error);color:#fff}.fe-btn-delete:disabled{opacity:.5;cursor:default}.fe-confirm-row{display:flex;align-items:center;gap:8px}.fe-confirm-label{font-size:.86rem;color:var(--error);font-weight:500}.fe-btn-confirm-yes{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border:none;border-radius:6px;background:var(--error);color:#fff;font-size:.86rem;font-family:var(--font);font-weight:500;cursor:pointer;transition:opacity .15s}.fe-btn-confirm-yes:disabled{opacity:.6;cursor:default}.fe-btn-confirm-no{padding:6px 12px;border:1px solid var(--border);border-radius:6px;background:none;color:var(--text-secondary);font-size:.86rem;font-family:var(--font);cursor:pointer;transition:background .15s}.fe-btn-confirm-no:hover:not(:disabled){background:var(--bg-hover)}.fe-header-actions{display:flex;align-items:center;gap:8px}.fe-btn-retag{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border:1px solid var(--border);border-radius:6px;background:none;color:var(--text-secondary);font-size:.82rem;font-family:var(--font);font-weight:500;cursor:pointer;transition:all .15s}.fe-btn-retag:hover{background:var(--bg-hover);color:var(--text);border-color:var(--accent)}.fe-col-customer{width:120px;white-space:nowrap}.fe-col-tag-categories{min-width:140px}.fe-col-action{width:36px;text-align:center!important;padding-left:4px!important;padding-right:8px!important}.fe-tag-text{font-size:.86rem;color:var(--text)}.fe-tag-empty{font-size:.86rem;color:var(--text-muted)}.fe-tag-badges{display:flex;flex-wrap:wrap;gap:3px}.fe-tag-badge{display:inline-block;padding:2px 7px;border-radius:var(--radius-pill);font-size:11px;font-weight:500;background:#3b82f61a;color:var(--accent);white-space:nowrap}.fe-btn-tag-edit{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:none;border:none;border-radius:4px;cursor:pointer;color:var(--text-muted);opacity:0;transition:opacity .1s,background .1s;flex-shrink:0}.fe-row:hover .fe-btn-tag-edit{opacity:1}.fe-btn-tag-edit:focus-visible,.fe-row:focus-within .fe-btn-tag-edit{opacity:1}.fe-btn-tag-edit:hover{background:var(--border);color:var(--accent)}.tag-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;z-index:200}.tag-dialog{background:var(--bg-card);border-radius:var(--radius);width:min(480px,94vw);max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--shadow-md)}.tag-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border);gap:12px}.tag-dialog-title{font-size:.95rem;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.tag-dialog-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:4px;background:none;color:var(--text-secondary);cursor:pointer;flex-shrink:0;transition:background .1s}.tag-dialog-close:hover{background:var(--bg-hover);color:var(--text)}.tag-dialog-body{padding:18px;overflow-y:auto;display:flex;flex-direction:column;gap:18px}.tag-field{display:flex;flex-direction:column;gap:8px}.tag-field-label{font-size:.82rem;font-weight:600;color:var(--text-secondary)}.tag-field-select{padding:7px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:.9rem;font-family:var(--font);outline:none;transition:border-color .15s}.tag-field-select:focus{border-color:var(--accent)}.tag-field-empty{font-size:.86rem;color:var(--text-muted);margin:0}.tag-category-list{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto}.tag-category-item{display:flex;align-items:center;gap:8px;font-size:.9rem;cursor:pointer;padding:4px 6px;border-radius:4px;transition:background .1s}.tag-category-item:hover{background:var(--bg-hover)}.tag-dialog-error{font-size:.86rem;color:var(--error);margin:0}.tag-dialog-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 18px;border-top:1px solid var(--border)}.tag-btn-cancel{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border:1px solid var(--border);border-radius:6px;background:none;color:var(--text-secondary);font-size:.86rem;font-family:var(--font);cursor:pointer;transition:background .15s}.tag-btn-cancel:hover:not(:disabled){background:var(--bg-hover)}.tag-btn-cancel:disabled{opacity:.5;cursor:default}.tag-btn-save{display:inline-flex;align-items:center;gap:6px;padding:7px 18px;border:none;border-radius:6px;background:var(--accent);color:#fff;font-size:.86rem;font-family:var(--font);font-weight:500;cursor:pointer;transition:opacity .15s}.tag-btn-save:disabled{opacity:.6;cursor:default}.retag-filter-section{display:flex;flex-direction:column;gap:12px}.retag-filter-desc{font-size:.86rem;color:var(--text-secondary);margin:0;line-height:1.5}.retag-filter-list{display:flex;flex-direction:column;gap:8px}.retag-filter-item{display:flex;align-items:center;gap:8px;font-size:.9rem;cursor:pointer;padding:4px 6px;border-radius:4px;transition:background .1s}.retag-filter-item:hover{background:var(--bg-hover)}.retag-progress-section{display:flex;flex-direction:column;gap:10px}.retag-progress-bar-wrap{height:8px;background:var(--border);border-radius:4px;overflow:hidden}.retag-progress-bar{height:100%;border-radius:4px;transition:width .3s ease}.retag-bar-running{background:var(--accent)}.retag-bar-done{background:var(--success);transition:none}.retag-progress-stats{display:flex;justify-content:space-between;font-size:.82rem;color:var(--text-secondary)}.retag-done-msg{display:flex;align-items:center;gap:6px;font-size:.86rem;color:var(--success);margin:0}.retag-failed-list{border:1px solid rgba(239,68,68,.2);border-radius:6px;padding:10px 12px;background:#ef44440a}.retag-failed-title{display:flex;align-items:center;gap:6px;font-size:.86rem;font-weight:600;color:var(--error);margin:0 0 8px}.retag-failed-list ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto}.retag-failed-item{display:flex;flex-direction:column;gap:2px}.retag-failed-path{font-size:.82rem;color:var(--text);word-break:break-all}.retag-failed-reason{font-size:.78rem;color:var(--error);word-break:break-all}@media(max-width:1024px){.split-right{width:320px}.search-top .filter-panel{grid-template-columns:1fr 1fr}.search-top .filter-panel-title,.search-top .filter-row:last-of-type,.search-top .btn-filter-apply{grid-column:1 / -1}.source-panel{position:fixed;right:0;top:0;bottom:0;z-index:100;box-shadow:-4px 0 20px #0000001a}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.history-page{padding:24px;max-width:900px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:16px;overflow-y:auto;height:100%;box-sizing:border-box}.history-header{display:flex;align-items:center;justify-content:space-between}.history-title{font-size:18px;font-weight:600;color:var(--text)}.history-btn-clear-all{display:flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.history-btn-clear-all:hover{background:var(--bg-hover);color:var(--error);border-color:var(--error)}.history-filters{display:flex;gap:8px}.history-filter-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;border:1px solid var(--border);border-radius:var(--radius-pill);background:transparent;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.history-filter-btn:hover{background:var(--bg-hover)}.history-filter-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.history-filter-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:#ffffff4d;font-size:11px;font-weight:600}.history-error{padding:12px;border-radius:var(--radius-sm);background:var(--error-bg);color:var(--error);font-size:13px}.history-loading{display:flex;justify-content:center;padding:40px}.history-empty{text-align:center;padding:60px 0;color:var(--text-muted);font-size:14px}.history-list{display:flex;flex-direction:column;gap:8px}.history-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;transition:box-shadow .15s}.history-item:hover{box-shadow:var(--shadow)}.history-item-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;gap:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.history-item-left{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.history-item-date{font-size:12px;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.history-type-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-pill);font-size:11px;font-weight:600;white-space:nowrap;flex-shrink:0}.history-type-search{background:var(--badge-search-bg);color:var(--accent)}.history-type-qa{background:var(--badge-qa-bg);color:var(--success)}.history-item-summary{font-size:13px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-item-meta{font-size:12px;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.history-item-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.history-btn-delete,.history-btn-expand{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.history-btn-delete:hover{background:var(--error-bg);color:var(--error)}.history-btn-expand:hover{background:var(--bg-hover);color:var(--text)}.history-item-body{border-top:1px solid var(--border-light);padding:12px 14px;background:var(--bg)}.history-detail{display:flex;flex-direction:column;gap:8px}.history-detail-row{display:flex;gap:12px;font-size:13px}.history-detail-label{flex-shrink:0;width:80px;color:var(--text-muted);font-weight:500}.history-detail-value{color:var(--text);flex:1;min-width:0}.history-detail-pretext{white-space:pre-wrap;word-break:break-word}.history-detail-answer{max-height:120px;overflow-y:auto;color:var(--text-secondary)}.history-source-chip{display:inline-block;margin:2px 4px 2px 0;padding:2px 8px;border:1px solid var(--border);border-radius:var(--radius-pill);font-size:12px;color:var(--text-secondary);background:var(--bg-card)}.history-pagination{display:flex;align-items:center;justify-content:center;gap:16px;padding:8px 0}.history-page-btn{padding:6px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-secondary);font-size:13px;cursor:pointer;transition:background .15s}.history-page-btn:hover:not(:disabled){background:var(--bg-hover)}.history-page-btn:disabled{opacity:.4;cursor:not-allowed}.history-page-info{font-size:13px;color:var(--text-secondary)}.file-similar{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 7px;background:var(--badge-search-bg);color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-pill);font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .15s,color .15s,transform .05s}.file-similar-label{display:none;white-space:nowrap}.file-item-main:hover .file-similar .file-similar-label{display:inline}.file-similar:hover{background:var(--accent);color:#fff}.file-similar:active{transform:scale(.96)}.fe-csv-actions{display:inline-flex;align-items:center;gap:6px;margin-left:auto}.fe-csv-scope{height:24px;padding:0 6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text);font-size:11px;cursor:pointer}.fe-csv-scope:disabled{opacity:.5;cursor:not-allowed}.fe-csv-export{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 10px;background:var(--badge-search-bg);color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-pill);font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .15s,color .15s,transform .05s}.fe-csv-export:hover:not(:disabled){background:var(--accent);color:#fff}.fe-csv-export:active:not(:disabled){transform:scale(.96)}.fe-csv-export:disabled{opacity:.5;cursor:not-allowed}.search-mode-tabs{display:inline-flex;align-items:center;gap:4px;padding:4px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-pill);margin-bottom:8px}.search-mode-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:transparent;color:var(--text-secondary);border:none;border-radius:var(--radius-pill);font-size:12px;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.search-mode-tab:hover:not(.active){color:var(--text)}.search-mode-tab.active{background:var(--accent);color:#fff}.image-dropzone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:180px;padding:16px;border:2px dashed var(--border);border-radius:var(--radius);background:var(--bg);cursor:pointer;transition:border-color .15s,background .15s}.image-dropzone:hover:not(.has-image){border-color:var(--accent);background:var(--bg-hover)}.image-dropzone.drag-over{border-color:var(--accent);background:var(--badge-search-bg)}.image-dropzone.has-image{cursor:default;padding:12px;border-style:solid;border-color:var(--border)}.image-dropzone-input{display:none}.image-dropzone-empty{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text-muted);pointer-events:none}.image-dropzone-title{font-size:13px;font-weight:500;color:var(--text-secondary)}.image-dropzone-hint{font-size:11px;color:var(--text-muted)}.image-dropzone-preview{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%}.image-dropzone-preview img{max-height:220px;max-width:100%;object-fit:contain;border-radius:var(--radius-sm);background:var(--bg-card)}.image-dropzone-meta{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);max-width:100%}.image-dropzone-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:360px}.image-dropzone-clear{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:50%;background:var(--bg-hover);color:var(--text-secondary);cursor:pointer;flex-shrink:0}.image-dropzone-clear:hover:not(:disabled){background:var(--error);color:#fff}.image-search-row{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px;margin-top:8px}.image-search-row .image-dropzone{flex:1 1 280px;min-width:0}.image-search-actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.image-search-error{display:flex;align-items:center;gap:8px;margin-top:6px;padding:6px 10px;font-size:12px;color:var(--error);background:var(--error-bg);border-radius:var(--radius-sm)}.image-search-error-text{flex:1;min-width:0;word-break:break-word}.image-search-error-dismiss{flex-shrink:0;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--error);font-size:12px;cursor:pointer;border-radius:50%}.image-search-error-dismiss:hover{background:#ef44442e}.similar-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;z-index:100}.similar-modal{background:var(--bg-card);border-radius:var(--radius);width:min(640px,92vw);max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--shadow-md)}.similar-modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);gap:12px}.similar-modal-title{font-size:14px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.similar-modal-body{padding:8px;overflow-y:auto}.similar-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.similar-item-btn{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:left;cursor:pointer;font:inherit;color:var(--text);transition:background .15s,border-color .15s}.similar-item-btn:hover{background:var(--bg-hover);border-color:var(--accent)}.similar-item-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.similar-item-customer{flex-shrink:0;font-size:11px;background:var(--bg-card);color:var(--text-secondary);padding:1px 8px;border:1px solid var(--border);border-radius:var(--radius-pill)}.similar-item-cat{flex-shrink:0;font-size:11px;background:var(--badge-search-bg);color:var(--accent);padding:1px 8px;border-radius:var(--radius-pill)}.similar-loading,.similar-error,.similar-empty{padding:24px;text-align:center;font-size:13px;color:var(--text-secondary)}.similar-loading{display:flex;align-items:center;justify-content:center;gap:8px}.similar-error{color:var(--error)}.analytics-page{padding:24px;max-width:900px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:20px;overflow-y:auto;height:100%;box-sizing:border-box}.analytics-header{display:flex;align-items:center}.analytics-title{font-size:18px;font-weight:600;color:var(--text)}.analytics-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.analytics-date-label{font-size:13px;color:var(--text-secondary)}.analytics-date-input{padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text);font-size:13px;cursor:pointer}.analytics-date-input:focus{outline:none;border-color:var(--accent)}.analytics-date-sep{font-size:13px;color:var(--text-muted)}.analytics-apply-btn{padding:6px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:background .15s,color .15s}.analytics-apply-btn:hover{background:var(--bg-hover);color:var(--text)}.analytics-error{padding:10px 14px;border-radius:var(--radius-sm);background:#fef2f2;color:#b91c1c;font-size:13px}.analytics-loading{display:flex;justify-content:center;padding:40px 0}.analytics-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}@media(max-width:700px){.analytics-cards{grid-template-columns:repeat(2,1fr)}}.analytics-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px 16px;display:flex;flex-direction:column;align-items:center;gap:6px}.analytics-card-value{font-size:28px;font-weight:700;color:var(--accent);line-height:1}.analytics-card-label{font-size:12px;color:var(--text-secondary)}.analytics-table-section{display:flex;flex-direction:column;gap:10px}.analytics-table-title{font-size:14px;font-weight:600;color:var(--text)}.analytics-empty{font-size:13px;color:var(--text-muted);padding:16px 0}.analytics-table-wrapper{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.analytics-table{width:100%;border-collapse:collapse;font-size:13px}.analytics-th{padding:10px 14px;background:var(--bg-hover);color:var(--text-secondary);font-weight:600;text-align:left;border-bottom:1px solid var(--border)}.analytics-th-count{text-align:right;width:90px}.analytics-tr:not(:last-child){border-bottom:1px solid var(--border-light)}.analytics-tr:hover{background:var(--bg-hover)}.analytics-td{padding:9px 14px;color:var(--text)}.analytics-td-file{max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analytics-td-count{text-align:right;color:var(--text-secondary);white-space:nowrap}.upload-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:95;background:#0f172a8c;display:flex;align-items:center;justify-content:center;pointer-events:none}.upload-overlay-card{pointer-events:none;width:min(560px,80vw);padding:40px 32px;background:var(--bg-card);border:3px dashed var(--accent);border-radius:var(--radius);color:var(--text);display:flex;flex-direction:column;align-items:center;gap:12px;box-shadow:var(--shadow-md)}.upload-overlay-card svg{color:var(--accent)}.upload-overlay-title{font-size:1.07rem;font-weight:700}.upload-overlay-sub{font-size:.86rem;color:var(--text-secondary);text-align:center}.uptoast{position:fixed;right:16px;bottom:16px;z-index:90;width:360px;max-height:60vh;display:flex;flex-direction:column;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);overflow:hidden}.uptoast.collapsed{max-height:44px}.uptoast-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--bg);border-bottom:1px solid var(--border);gap:8px}.uptoast-title{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.uptoast-fail-badge{flex-shrink:0;background:var(--error);color:#fff;padding:1px 8px;border-radius:var(--radius-pill);font-size:10px;font-weight:700}.uptoast-actions{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}.uptoast-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:background .15s,color .15s}.uptoast-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.uptoast-btn:disabled{opacity:.35;cursor:not-allowed}.uptoast-body{overflow-y:auto;padding:8px 10px 10px}.uptoast-job{border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:8px;background:var(--bg)}.uptoast-job:last-child{margin-bottom:0}.uptoast-job-head{display:flex;align-items:center;gap:6px;padding:6px 10px;font-size:12px;border-bottom:1px solid var(--border-light)}.uptoast-job-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-weight:500}.uptoast-job-pct{flex-shrink:0;font-size:11px;color:var(--accent);font-weight:600}.uptoast-job-err{flex-shrink:0;font-size:11px;color:var(--error);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uptoast-job-progress{height:4px;background:var(--bg-card)}.uptoast-job-progress-fill{height:100%;background:var(--accent);transition:width .15s ease}.uptoast-files{padding:4px 6px;display:flex;flex-direction:column;gap:2px;max-height:200px;overflow-y:auto}.uptoast-row{display:flex;align-items:center;gap:6px;padding:3px 6px;font-size:11px;color:var(--text-secondary);border-radius:var(--radius-sm)}.uptoast-row-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uptoast-row-success{color:var(--text)}.uptoast-row-failed{color:var(--error);background:var(--error-bg)}.uptoast-row-skipped{color:var(--text-muted)}.uptoast-row-active{color:var(--accent)}.uptoast-ic-success{color:var(--success);flex-shrink:0}.uptoast-ic-failed{color:var(--error);flex-shrink:0}.uptoast-ic-skipped{color:var(--text-muted);flex-shrink:0}.uptoast-ic-active{color:var(--accent);flex-shrink:0}.uptoast-ic-queued{color:var(--text-muted);flex-shrink:0}.fe-upload-wrapper{position:relative;display:inline-block}.fe-btn-upload{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:var(--radius-sm);font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,transform .05s}.fe-btn-upload:hover{background:var(--accent-hover)}.fe-btn-upload:active{transform:scale(.97)}.fe-upload-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30}.fe-upload-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:31;min-width:200px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:4px;display:flex;flex-direction:column;gap:2px}.fe-upload-menu button{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;background:transparent;border:none;border-radius:var(--radius-sm);font-size:12px;color:var(--text);text-align:left;cursor:pointer;transition:background .1s}.fe-upload-menu button:hover{background:var(--bg-hover)}.faq-page{padding:24px 28px;max-width:1200px;margin:0 auto;height:100%;overflow-y:auto}.faq-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}.faq-header h1{font-size:1.3rem;margin:0}.faq-count{font-size:.85rem;color:var(--text-secondary)}.faq-add-btn{margin-left:auto;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:none;border-radius:var(--radius-sm);background:var(--primary);color:#fff;font-family:var(--font);font-size:.9rem;cursor:pointer}.faq-add-btn:hover{background:var(--accent-strong)}.faq-filter-row{display:flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-muted);margin-bottom:14px}.faq-filter{flex:1;border:none;outline:none;background:transparent;font-family:var(--font);font-size:.9rem;color:var(--text)}.faq-error{color:var(--error);background:var(--error-bg);padding:8px 12px;border-radius:var(--radius-sm);margin-bottom:12px;font-size:.85rem}.faq-loading{display:flex;align-items:center;gap:8px;color:var(--text-secondary);padding:24px}.faq-table-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.faq-table{width:100%;border-collapse:collapse;font-size:.85rem}.faq-table th{text-align:left;padding:11px 12px;background:var(--primary);color:#fff;font-weight:700;border-bottom:2px solid var(--border)}.faq-table td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:top;color:var(--text)}.faq-table tbody tr:nth-child(2n){background:var(--bg-hover)}.faq-table tbody tr:hover{background:var(--accent-soft)}.faq-table tr:last-child td{border-bottom:none}.faq-col-q{width:22%}.faq-col-a{width:40%}.faq-col-cat{width:10%;white-space:nowrap}.faq-col-ref{width:20%}.faq-col-act{width:8%;white-space:nowrap;text-align:right}.faq-q-text{font-weight:600;color:var(--text)}.faq-a-text{color:var(--text);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap}.faq-origin-badge,.faq-edited-badge{display:inline-block;margin-top:4px;margin-right:4px;padding:2px 8px;border-radius:10px;font-size:10.5px;font-weight:700}.faq-origin-badge{background:#2563eb;color:#fff}.faq-edited-badge{background:#16a34a;color:#fff}.faq-ref-chips{display:flex;flex-wrap:wrap;gap:4px}.faq-ref-chip{display:inline-block;max-width:100%;padding:2px 8px;border-radius:10px;background:var(--bg);border:1px solid var(--border);color:var(--text);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.faq-icon-btn{border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);border-radius:6px;padding:5px;cursor:pointer;margin-left:4px}.faq-icon-btn:hover{background:var(--bg-hover);color:var(--text)}.faq-icon-danger:hover{color:var(--error);border-color:var(--error)}.faq-empty{text-align:center;color:var(--text-muted);padding:32px}.faq-dialog{width:min(680px,92vw);max-height:88vh}.faq-dialog-body{overflow-y:auto}.faq-rulebook-note{font-size:.8rem;color:var(--text-secondary);background:var(--accent-soft);border-radius:var(--radius-sm);padding:8px 10px;margin:0 0 12px}.faq-field{margin-bottom:14px}.faq-field-label{display:block;font-size:.82rem;font-weight:600;color:var(--text-secondary);margin-bottom:5px}.faq-textarea,.faq-input{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-family:var(--font);font-size:.9rem;resize:vertical}.faq-textarea:focus,.faq-input:focus{outline:none;border-color:var(--accent)}.faq-textarea-answer{font-family:Geist Mono,monospace;font-size:.85rem;line-height:1.5}.faq-ref-edit-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.faq-ref-chip-edit{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:3px 4px 3px 8px;border-radius:12px;background:var(--bg-hover);border:1px solid var(--border);font-size:12px}.faq-ref-chip-text{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.faq-ref-chip-edit button{display:flex;align-items:center;border:none;background:none;cursor:pointer;color:var(--text-muted);padding:1px;border-radius:50%}.faq-ref-chip-edit button:hover{color:var(--error)}.faq-ref-input-row{display:flex;gap:8px}.faq-ref-add{flex-shrink:0;padding:0 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text);font-family:var(--font);cursor:pointer}.faq-ref-add:disabled{opacity:.4;cursor:not-allowed}.faq-ref-tree-toggle{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text);font-family:var(--font);font-size:.82rem;cursor:pointer}.faq-ref-tree-toggle:hover{background:var(--bg-hover);border-color:var(--accent);color:var(--accent-strong)}.ftree{margin-top:8px;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--bg)}.ftree-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:2px;padding:6px 10px;background:var(--bg-hover);border-bottom:1px solid var(--border);font-size:.8rem}.ftree-crumb{border:none;background:none;color:var(--text-secondary);cursor:pointer;padding:2px 4px;border-radius:4px;font-family:var(--font)}.ftree-crumb:hover{color:var(--accent-strong)}.ftree-crumb.current{color:var(--text);font-weight:700}.ftree-crumb-sep{display:inline-flex;align-items:center;color:var(--text-muted)}.ftree-list{max-height:260px;overflow-y:auto}.ftree-row{display:flex;align-items:center;gap:8px;width:100%;padding:7px 12px;border:none;border-bottom:1px solid var(--border-light);background:var(--bg-card);color:var(--text);font-family:var(--font);font-size:.85rem;text-align:left;cursor:pointer}.ftree-row:last-child{border-bottom:none}.ftree-row:hover{background:var(--accent-soft)}.ftree-row-dir .ftree-name{font-weight:600}.ftree-icon-dir{color:#eab308;flex-shrink:0}.ftree-icon-file{color:var(--text-muted);flex-shrink:0}.ftree-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ftree-chevron{color:var(--text-muted);flex-shrink:0}.ftree-row-file.picked{background:var(--accent-soft)}.ftree-row-file.picked .ftree-name{color:var(--accent-strong);font-weight:600}.ftree-check{color:var(--accent-strong);flex-shrink:0}.ftree-empty{padding:16px;text-align:center;color:var(--text-muted);font-size:.82rem}.faq-dialog-error{color:var(--error);font-size:.82rem;margin:4px 0 0}
