body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.chat-container{align-items:center;background-color:#f0f4f9;border:1px solid #ddd;border-radius:12px;font-family:Arial,sans-serif;height:90vh;justify-content:center;margin:0 auto;padding:20px;width:90vw}.chat-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.visitor-info-header{align-items:center;cursor:pointer;display:flex;gap:8px;-webkit-user-select:none;user-select:none}.visitor-status{color:#2c5aa0;font-weight:700}.visitor-type{color:#666;font-size:11px}.toggle-icon{color:#888;font-size:10px;margin-left:auto}.visitor-info-details{animation:slideDown .3s ease-out;border-top:1px solid #b3d9e8;margin-top:8px;padding-top:8px}.visitor-detail{color:#444;margin:4px 0}.visitor-detail strong{color:#2c5aa0;margin-right:8px}@keyframes slideDown{0%{max-height:0;opacity:0}to{max-height:100px;opacity:1}}.chat-window{background-color:#e5f5f9;border:2px solid #54a9c0;border-radius:12px;box-shadow:0 4px 10px #0000000d;display:flex;gap:10px;height:calc(90vh - 150px);justify-content:center;width:100%}h2{border-bottom:1px solid #54a9c0;color:#4a6fa5;font-weight:700;padding-bottom:4px;text-align:center}.knowledge-upload-panel{background-color:#f7fbff;border:1px solid #cfd8e3;border-radius:8px;margin:12px 0;padding:10px}.knowledge-file-input,.knowledge-subfolder-input{flex:1 1;min-width:180px;width:auto}.knowledge-upload-result{margin-top:8px}.conversation-box{display:flex;flex-direction:column;flex-grow:1;gap:10px;margin:10px 0;max-height:calc(100% - 50px);overflow-y:auto;padding:10px;scroll-behavior:smooth}.message{border-radius:10px;max-width:80%;padding:10px}.user-message{align-self:flex-end;background-color:#b9e3ea;color:#004a5f}.model-message{align-self:flex-start;background-color:#fbe1ea;color:#722243}.message-text{font-size:16px}.retry-button{background:#eff6ff;border:1px solid #93c5fd;border-radius:8px;color:#1e40af;cursor:pointer;display:block;font-size:14px;font-weight:500;margin-top:10px;padding:6px 14px}.retry-button:hover:not(:disabled){background:#dbeafe}.retry-button:disabled{cursor:not-allowed;opacity:.5}.message-input{background-color:#f9f9f9;border-radius:8px;font-size:14px;margin-top:10px;padding:10px}.input-container{display:flex;gap:10px;justify-content:center;margin-top:20px}input{border:1px solid #ccc;border-radius:8px;font-size:16px;padding:10px;width:70%}button{background-color:#4a6fa5;border:none;border-radius:8px;color:#fff;cursor:pointer;padding:10px 20px}button:hover{background-color:#1f63c6}.message-text .retry-button{background:#eff6ff;border:1px solid #93c5fd;color:#1e40af;display:block;font-size:14px;font-weight:500;margin-top:10px;padding:6px 14px}.message-text .retry-button:hover:not(:disabled){background:#dbeafe}.loading{align-items:center;bottom:10px;color:#888;display:flex;font-size:14px;font-style:italic;justify-content:center;left:50%;position:absolute;transform:translateX(-50%)}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #f3f3f3;border-radius:50%;border-top-color:#54a9c0;height:20px;width:20px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.feedback-buttons{display:flex;gap:10px;margin-top:5px}.feedback-buttons button{background-color:#e0e0e0;border:none;border-radius:5px;cursor:pointer;font-size:16px;padding:5px 10px}.feedback-buttons button:hover{background-color:#f5c2d8}.message.model-message{display:flex;justify-content:flex-start;margin:10px 0}.message-text.typing{align-items:center;background-color:#f0f0f0;border-radius:16px;display:flex;font-size:20px;gap:6px;max-width:60%;padding:10px 14px}.message-text.typing .dot{animation:blink 1.2s ease-in-out infinite;background-color:#888;border-radius:50%;height:8px;width:8px}.message-text.typing .dot:nth-child(2){animation-delay:.2s}.message-text.typing .dot:nth-child(3){animation-delay:.4s}.voice-button{align-items:center;background-color:initial;border:none;border-radius:50%;cursor:pointer;display:flex;height:35px;justify-content:center;padding:0;transition:background-color .2s,box-shadow .1s ease-out;width:35px}.voice-button img{height:100%;width:100%}.voice-button:hover{background-color:#f0f0f0}.voice-button:active{transform:scale(.95)}.switch{display:inline-block;height:24px;margin-left:2px;margin-top:10px;vertical-align:middle;width:44px}.switch input{height:0;opacity:0;width:0}.slider{background-color:#ccc;border-radius:24px;bottom:0;cursor:pointer;left:0;right:0;top:0}.slider,.slider:before{position:absolute;transition:.3s}.slider:before{background-color:#fff;border-radius:50%;bottom:3px;content:"";height:18px;left:3px;width:18px}input:checked+.slider{background-color:#4caf50}input:checked+.slider:before{transform:translateX(20px)}.custom-tooltip{background:#333;border-radius:6px;box-shadow:0 2px 8px #00000026;color:#fff;font-size:13px;left:50%;padding:6px 14px;position:absolute;top:110%;transform:translateX(-50%);white-space:nowrap;z-index:10}.switch{position:relative}.language-selector{-webkit-appearance:none;appearance:none;background-color:#f8f9fa;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23495057' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;background-size:12px;border:2px solid #e9ecef;border-radius:8px;color:#495057;cursor:pointer;font-size:14px;margin-left:12px;min-width:100px;padding:6px 32px 6px 12px;transition:all .3s ease}.language-selector:hover{background-color:#fff;border-color:#adb5bd}.language-selector:focus{border-color:#4caf50;box-shadow:0 0 0 2px #4caf5033;outline:none}.language-selector option{background-color:#fff;padding:8px}@keyframes blink{0%,to{opacity:.2}50%{opacity:1}}.notification-overlay{animation:fadeInOut 2s ease-in-out;left:50%;position:fixed;top:50%;transform:translate(-50%,-50%);z-index:1000}.notification-message{background-color:#000c;border-radius:8px;color:#fff;font-size:16px;padding:15px 25px}@keyframes fadeInOut{0%{opacity:0}15%{opacity:1}85%{opacity:1}to{opacity:0}}.message a{color:#007bff!important;cursor:pointer!important;font-weight:500}.message a,.message a:hover{text-decoration:underline!important}.message a:hover{color:#0056b3!important}.message a:visited{color:#6f42c1!important}.message.bot a{background-color:#1e7e341a;border-radius:3px;color:#1e7e34!important;padding:1px 3px}.message.bot a:hover{background-color:#1e7e3433}.message.user a{color:#155724!important}.message.bot[data-retrying=true]{background-color:#fff3cd!important;border-left:4px solid #ffc107;font-style:italic;opacity:.8}.message.bot[data-error=true]{background-color:#f8d7da!important;border-left:4px solid #dc3545;color:#721c24!important}.message.bot[data-retrying=true]:after{animation:pulse 1.5s infinite;content:"⏳";margin-left:8px}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.knowledge-page{align-items:flex-start;background-color:#f0f4f9;box-sizing:border-box;display:flex;justify-content:center;min-height:100vh;padding:24px 16px}.knowledge-card{background:#fff;border:1px solid #d8e0ea;border-radius:12px;box-sizing:border-box;max-width:min(1400px,96vw);padding:24px 28px;width:100%}.knowledge-card h1{color:#4a6fa5;margin:0 0 8px;text-align:left}.knowledge-hint{color:#5f6b7a;margin:0 0 16px}.knowledge-upload-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.knowledge-file-input-hidden{display:none}.knowledge-pick-btn{align-items:center;background-color:#eef3fa;border:1px solid #cbd5e1;border-radius:8px;color:#4a6fa5;cursor:pointer;display:inline-flex;font-size:14px;padding:10px 16px}.knowledge-pick-btn:hover{background-color:#dfe8f5}.knowledge-pending{color:#5f6b7a;font-size:13px;margin-top:6px}.knowledge-file-input,.knowledge-selection-display{background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;color:#334155;flex:1 1;font-size:14px;min-width:220px;overflow:hidden;padding:10px 12px;text-overflow:ellipsis;white-space:nowrap}.knowledge-selection-display:empty:before{color:#94a3b8;content:"尚未選擇"}.knowledge-upload-row button{background-color:#4a6fa5;border:none;border-radius:8px;color:#fff;cursor:pointer;padding:10px 20px}.knowledge-upload-row button:hover{background-color:#3d5d8a}.knowledge-upload-row button:disabled{cursor:not-allowed;opacity:.7}.knowledge-clear-btn{background-color:#b42318!important}.knowledge-clear-btn:hover:not(:disabled){background-color:#912018!important}.knowledge-files-table .knowledge-path-cell{color:#5f6b7a;font-size:13px;max-width:220px;word-break:break-all}.knowledge-table-hint{color:#64748b;font-size:13px;margin:0 0 8px}.knowledge-files-table thead .knowledge-sort-th{padding:0;vertical-align:middle}.knowledge-sort-btn{align-items:center;background:#0000;border:none;border-radius:0;color:#475569;cursor:pointer;display:inline-flex;font:inherit;font-size:13px;font-weight:600;gap:8px;justify-content:flex-start;margin:0;min-height:40px;padding:8px 12px;text-align:left;transition:background-color .15s ease,color .15s ease;width:100%}.knowledge-sort-btn:hover{background-color:#e8eef6;color:#4a6fa5}.knowledge-sort-btn.is-active{background-color:#fff;box-shadow:inset 0 -2px 0 #4a6fa5;color:#1e4a8a}.knowledge-sort-btn:focus{outline:none}.knowledge-sort-btn:focus-visible{outline:2px solid #4a6fa5;outline-offset:-2px}.knowledge-sort-label{line-height:1.3}.knowledge-sort-icons{align-items:center;display:inline-flex;flex-direction:column;flex-shrink:0;gap:2px;justify-content:center;opacity:.5;transition:opacity .15s ease}.knowledge-sort-btn.is-active .knowledge-sort-icons,.knowledge-sort-btn:hover .knowledge-sort-icons{opacity:1}.knowledge-sort-caret{border-left:4px solid #0000;border-right:4px solid #0000;display:block;height:0;width:0}.knowledge-sort-caret.up{border-bottom:5px solid #94a3b8}.knowledge-sort-caret.down{border-top:5px solid #94a3b8}.knowledge-sort-caret.up.active{border-bottom-color:#4a6fa5}.knowledge-sort-caret.down.active{border-top-color:#4a6fa5}.knowledge-actions-cell{display:flex;flex-wrap:wrap;gap:8px}.knowledge-download-btn{background-color:#eef3fa;border:1px solid #cbd5e1;border-radius:6px;color:#4a6fa5;cursor:pointer;font-size:13px;padding:6px 12px}.knowledge-download-btn:hover:not(:disabled){background-color:#dfe8f5}.knowledge-download-btn:disabled{cursor:not-allowed;opacity:.6}.knowledge-duplicate-notice{background:#fff8e6;border:1px solid #f5d78e;border-radius:8px;color:#7a5c00;font-size:14px;margin-top:8px;padding:10px 12px}.knowledge-duplicate-notice ul{margin:8px 0 0;padding-left:20px}.knowledge-upload-result{font-size:14px;line-height:1.6;margin-top:12px}.knowledge-upload-result.success{color:#0c6b2f}.knowledge-upload-result.error{color:#b42318}.knowledge-back-link{align-items:center;background-color:#4a6fa5;border:1px solid #4a6fa5;border-radius:8px;box-sizing:border-box;color:#fff;display:inline-flex;font-size:14px;font-weight:500;gap:6px;margin-top:24px;padding:10px 18px;text-decoration:none}.knowledge-back-link:hover{background-color:#3d5d8a;border-color:#3d5d8a;color:#fff;text-decoration:none}.knowledge-tabs{border-bottom:1px solid #e2e8f0;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;padding-bottom:8px}.knowledge-tabs button{background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px 8px 0 0;color:#475569;cursor:pointer;font-size:14px;padding:8px 16px}.knowledge-tabs button.active{background:#4a6fa5;border-color:#4a6fa5;color:#fff}.knowledge-tab-panel{margin-top:4px}.manage-section+.manage-section{border-top:1px solid #e2e8f0;margin-top:32px;padding-top:28px}.manage-section-title{color:#334155;font-size:18px;font-weight:600;margin:0 0 8px}.kpi-intro{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;color:#475569;font-size:13px;line-height:1.5;margin:0 0 14px;padding:10px 12px}.kpi-query-toolbar{align-items:flex-end;display:flex;flex-wrap:wrap;gap:12px 20px;margin-bottom:8px}.kpi-mode-row{display:flex;flex-shrink:0;font-size:14px;gap:16px}.kpi-mode-option{align-items:center;cursor:pointer;display:inline-flex;gap:6px}.kpi-mode-option,.kpi-mode-option span{white-space:nowrap}.kpi-query-row{align-items:flex-end;display:flex;flex:1 1 auto;flex-wrap:wrap;gap:12px;min-width:0}.kpi-date-label{color:#475569;display:flex;flex-direction:column;font-size:13px;gap:4px}.kpi-date-label input[type=date]{border:1px solid #cbd5e1;border-radius:8px;font-size:14px;padding:8px 10px}.kpi-query-row>button{background-color:#4a6fa5;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px}.kpi-query-row>button:disabled{cursor:not-allowed;opacity:.7}.kpi-note{color:#64748b;font-size:12px;line-height:1.5;margin:0 0 12px}.kpi-note code{background:#f1f5f9;border-radius:4px;font-size:11px;padding:1px 4px}.kpi-cache-badge{color:#0c6b2f;font-size:12px;font-weight:500;margin:0 0 8px}.kpi-warn{color:#b45309;font-size:13px;line-height:1.5;margin:0 0 10px}.kpi-options-bar{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 14px;padding:12px 14px}.kpi-option-chip{align-items:center;background:#fff;border:1px solid #cbd5e1;border-radius:8px;color:#334155;cursor:pointer;display:inline-flex;font-size:14px;gap:10px;line-height:1.4;max-width:100%;padding:8px 12px;-webkit-user-select:none;user-select:none;width:-webkit-fit-content;width:fit-content}.kpi-option-chip:hover{background:#f1f5f9;border-color:#94a3b8}.kpi-option-chip--highlight{background:#eff6ff;border-color:#4a6fa5;font-weight:500}.kpi-option-chip--highlight:hover{background:#dbeafe}.kpi-checkbox{accent-color:#4a6fa5;cursor:pointer;flex-shrink:0;height:18px;margin:0;width:18px}.kpi-option-chip span{flex:0 1 auto}.kpi-picker-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-bottom:12px}@media (max-width:720px){.kpi-picker-grid{grid-template-columns:1fr}}.kpi-picker-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px}.kpi-picker-title{color:#334155;font-size:13px;font-weight:600;margin:0 0 4px}.kpi-picker-hint{color:#64748b;font-size:11px;line-height:1.4;margin:0 0 8px;word-break:break-all}.kpi-picker-status{color:#64748b;font-size:12px;margin:0}.kpi-picker-status--error{color:#b91c1c}.kpi-date-chips{display:flex;flex-wrap:wrap;gap:6px;max-height:132px;overflow-y:auto;padding:2px 0}.kpi-date-chip{background:#fff;border:1px solid #cbd5e1;border-radius:999px;color:#334155;cursor:pointer;font-size:12px;line-height:1.3;padding:4px 10px}.kpi-date-chip:hover{border-color:#4a6fa5;color:#1e3a5f}.kpi-date-chip--active{background:#4a6fa5;border-color:#4a6fa5;color:#fff}.kpi-date-chip--active:hover{color:#fff}.kpi-result-block{margin-top:16px}.kpi-period-caption{color:#64748b;font-size:13px;margin:0 0 12px}.kpi-metric-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));margin-top:10px}.kpi-metric-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px}.kpi-metric-section{margin-bottom:12px}.kpi-detail-head{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin:4px 0 10px}.kpi-detail-title{color:#64748b;font-size:13px;font-weight:600;margin:0}.kpi-detail-head-actions{display:flex;gap:8px}.kpi-detail-head-actions button{background:#fff;border:1px solid #cbd5e1;border-radius:999px;color:#334155;cursor:pointer;font-size:12px;padding:3px 12px}.kpi-metric-section-toggle{align-items:center;background:none;border:none;border-bottom:1px solid #e2e8f0;cursor:pointer;display:flex;gap:8px;margin:0;padding:8px 2px;text-align:left;width:100%}.kpi-metric-section-arrow{color:#94a3b8;flex:0 0 auto;font-size:11px;width:12px}.kpi-metric-section-title{color:#334155;flex:1 1 auto;font-size:14px;font-weight:600}.kpi-metric-section-count{color:#94a3b8;flex:0 0 auto;font-size:12px}.kpi-metric-label{color:#334155;font-size:13px;font-weight:600;line-height:1.35;margin-bottom:2px}.kpi-metric-hint{color:#64748b;font-size:11px;line-height:1.4;margin-bottom:6px}.kpi-metric-value{color:#1e293b;font-size:18px;font-weight:600}.kpi-metric-footnote{color:#94a3b8;font-size:11px;line-height:1.4;margin-top:4px}.kpi-headline{background:#f4f7fb;border:1px solid #dbe3ee;border-radius:12px;margin-bottom:18px;padding:14px 16px}.kpi-headline-head{align-items:baseline;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}.kpi-headline-title{color:#1e293b;font-size:14px;font-weight:700;margin:0}.kpi-headline-asof{color:#64748b;font-size:12px}.kpi-headline-loading{color:#4a6fa5;font-size:12px}.kpi-headline-error{margin:0 0 10px}.kpi-headline-strip{display:flex;flex-wrap:wrap;gap:8px}.kpi-headline-card{background:#fff;border:1px solid #e2e8f0;border-left:4px solid #cbd5e1;border-radius:8px;flex:1 1 150px;min-width:130px;padding:8px 12px}.kpi-headline-card--good{border-left-color:#2f9e5b}.kpi-headline-card--warn{border-left-color:#d97706}.kpi-headline-card--bad{border-left-color:#dc2626}.kpi-headline-label{color:#64748b;display:block;font-size:12px;line-height:1.35;margin-bottom:2px}.kpi-headline-value{font-feature-settings:"tnum";color:#0f172a;display:block;font-size:20px;font-variant-numeric:tabular-nums;font-weight:700}.kpi-trend-mode-row{display:flex;gap:8px;margin-bottom:12px}.kpi-trend-mode-row button{background:#fff;border:1px solid #cbd5e1;border-radius:999px;color:#334155;cursor:pointer;font-size:13px;padding:5px 14px}.kpi-trend-mode-row button.active{background:#4a6fa5;border-color:#4a6fa5;color:#fff}.kpi-trend-summary{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.kpi-trend-summary-card{background:#fff;border:1px solid #e2e8f0;border-left:4px solid #cbd5e1;border-radius:8px;flex:1 1 170px;min-width:150px;padding:8px 12px}.kpi-trend-summary-card--good{border-left-color:#2f9e5b}.kpi-trend-summary-card--warn{border-left-color:#d97706}.kpi-trend-summary-card--bad{border-left-color:#dc2626}.kpi-trend-summary-label{color:#64748b;display:block;font-size:12px;line-height:1.35;margin-bottom:2px}.kpi-trend-summary-value{font-feature-settings:"tnum";color:#0f172a;display:block;font-size:20px;font-variant-numeric:tabular-nums;font-weight:700}.kpi-trend-summary-delta{font-feature-settings:"tnum";display:block;font-size:12px;font-variant-numeric:tabular-nums;margin-top:2px}.kpi-trend-summary-delta--up{color:#b45309}.kpi-trend-summary-delta--down{color:#0369a1}.kpi-trend-summary-delta--flat{color:#64748b}.kpi-trend-summary-card--good .kpi-trend-summary-delta{color:#2f9e5b}.kpi-trend-summary-card--bad .kpi-trend-summary-delta{color:#dc2626}.kpi-trend-summary-delta-note{color:#94a3b8}.kpi-trend-summary-footnote{color:#94a3b8;display:block;font-size:11px;line-height:1.4;margin-top:2px}.kpi-charts-section{margin-top:8px}.kpi-chart-picker{background:#fff;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:16px;padding:14px 16px}.kpi-chart-picker-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:12px}.kpi-chart-picker-title{color:#334155;font-size:14px;font-weight:600;margin:0 0 4px}.kpi-chart-picker-hint{color:#64748b;font-size:12px;margin:0}.kpi-chart-picker-actions{display:flex;flex-wrap:wrap;gap:8px}.kpi-chart-picker-btn{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;color:#475569;cursor:pointer;font-size:12px;padding:6px 12px}.kpi-chart-picker-btn:hover{background:#e2e8f0;color:#1e293b}.kpi-chart-theme-list{align-items:flex-start;display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}.kpi-chart-theme-list>li{flex:0 0 auto;max-width:100%}.kpi-chart-theme-item{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;box-sizing:border-box;color:#334155;cursor:pointer;display:inline-flex;flex-direction:row;font-size:13px;font-weight:500;gap:6px;line-height:1.3;max-width:100%;padding:4px 10px;white-space:nowrap;width:auto}.kpi-chart-theme-item:hover{background:#f1f5f9;border-color:#cbd5e1}.kpi-chart-theme-item:has(input:checked){background:#eff6ff;border-color:#4a6fa5;color:#1e3a5f}.kpi-chart-theme-item .kpi-checkbox{height:14px;width:14px}.kpi-chart-theme-label{flex-shrink:0;white-space:nowrap}.kpi-chart-empty{background:#f8fafc;border:1px dashed #e2e8f0;border-radius:8px;color:#64748b;font-size:13px;margin:0 0 12px;padding:16px;text-align:center}.kpi-chart-size-panel{grid-gap:16px 28px;align-items:start;border-top:1px solid #e2e8f0;display:grid;gap:16px 28px;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));margin-top:14px;padding-top:14px}.kpi-chart-size-control{box-sizing:border-box;min-width:0}.kpi-chart-size-header{align-items:baseline;display:flex;flex-wrap:wrap;gap:8px 12px;margin-bottom:10px}.kpi-chart-size-label{color:#334155;font-size:13px;font-weight:600}.kpi-chart-size-value{font-feature-settings:"tnum";color:#4a6fa5;font-size:12px;font-variant-numeric:tabular-nums;font-weight:600}.kpi-chart-size-note{color:#64748b;font-size:11px}.kpi-chart-size-row{display:flex;flex-direction:column;gap:10px}.kpi-chart-size-slider{accent-color:#4a6fa5;cursor:pointer;max-width:100%;width:100%}.kpi-chart-size-presets{display:flex;flex-wrap:wrap;gap:8px}.kpi-chart-picker-btn-active{background:#eff6ff;border-color:#4a6fa5;color:#1e3a5f;font-weight:600}.kpi-chart-size-hint{color:#94a3b8;font-size:11px;grid-column:1/-1;line-height:1.4;margin:0}.kpi-chart-size-reset-all{background:none;border:none;color:#4a6fa5;cursor:pointer;font-size:11px;margin-left:8px;padding:0;text-decoration:underline}.kpi-chart-size-reset-all:hover{color:#1e3a5f}.kpi-charts-grid{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:12px;overflow-x:auto}.kpi-charts-grid--single .kpi-chart-card--auto-width{flex:1 1 100%;min-width:min(100%,720px)}.kpi-chart-card{background:#fafbfc;border:1px solid #e2e8f0;border-radius:10px;box-sizing:border-box;padding:12px 14px 8px;position:relative}.kpi-chart-card--auto-width{flex:1 1 400px;max-width:100%;min-width:min(400px,100%)}.kpi-chart-card--fixed-width{flex:0 0 auto;max-width:100%}.kpi-chart-title{color:#334155;font-size:14px;font-weight:600;margin:0 0 4px}.kpi-chart-subtitle{color:#64748b;font-size:12px;line-height:1.4;margin:0 0 8px}.kpi-period-summary{align-items:baseline;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;display:flex;flex-wrap:wrap;font-size:13px;gap:8px 14px;line-height:1.45;margin:0 0 12px;padding:10px 12px}.kpi-period-summary-label{color:#1e3a5f;font-weight:600}.kpi-period-summary-value{color:#334155;font-weight:600}.kpi-period-summary-note{color:#64748b;flex:1 1 100%;font-size:12px}.kpi-charts-legend-tip{color:#94a3b8;font-size:11px;line-height:1.4;margin:0 0 10px}.kpi-chart-canvas{position:relative;width:100%}.kpi-chart-resize-handle--height{align-items:center;border-radius:0 0 8px 8px;cursor:ns-resize;display:flex;height:14px;justify-content:center;margin-top:4px;touch-action:none;-webkit-user-select:none;user-select:none}.kpi-chart-resize-handle--height:focus-visible,.kpi-chart-resize-handle--height:hover{background:#e2e8f0}.kpi-chart-resize-handle--width{align-items:center;border-radius:0 8px 8px 0;bottom:8px;cursor:ew-resize;display:flex;justify-content:center;position:absolute;right:0;top:8px;touch-action:none;-webkit-user-select:none;user-select:none;width:12px;z-index:1}.kpi-chart-resize-handle--width:focus-visible,.kpi-chart-resize-handle--width:hover{background:#e2e8f0}.kpi-chart-resize-grip--horizontal{background:#94a3b8;border-radius:2px;display:block;height:4px;width:36px}.kpi-chart-resize-grip--vertical{background:#94a3b8;border-radius:2px;display:block;height:36px;width:4px}.kpi-chart-resize-handle--height:focus-visible .kpi-chart-resize-grip--horizontal,.kpi-chart-resize-handle--height:hover .kpi-chart-resize-grip--horizontal,.kpi-chart-resize-handle--width:focus-visible .kpi-chart-resize-grip--vertical,.kpi-chart-resize-handle--width:hover .kpi-chart-resize-grip--vertical{background:#4a6fa5}.kpi-chart-canvas .recharts-legend-item{cursor:pointer}.kpi-chart-canvas .recharts-legend-item:hover{opacity:.85}.kpi-chart-legend-inactive{color:#94a3b8;opacity:.55;text-decoration:line-through}.kpi-chart-legend-active{cursor:pointer}.kpi-glossary{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin-top:24px;padding:16px 18px}.kpi-glossary-title{color:#334155;font-size:15px;font-weight:600;margin:0 0 6px}.kpi-glossary-intro{color:#64748b;font-size:12px;line-height:1.5;margin:0 0 16px}.kpi-glossary-themes{display:flex;flex-direction:column;gap:16px}.kpi-glossary-theme{border-top:1px solid #e2e8f0;padding-top:14px}.kpi-glossary-theme:first-child{border-top:none;padding-top:0}.kpi-glossary-theme-title{color:#1e293b;font-size:14px;font-weight:600;margin:0 0 6px}.kpi-glossary-theme-desc{color:#475569;font-size:12px;line-height:1.5;margin:0 0 10px}.kpi-glossary-metrics{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.kpi-glossary-metric{grid-gap:8px 12px;display:grid;font-size:12px;gap:8px 12px;grid-template-columns:minmax(120px,200px) 1fr;line-height:1.45}@media (max-width:560px){.kpi-glossary-metric{gap:2px;grid-template-columns:1fr}}.kpi-glossary-metric-name{color:#334155;font-weight:600}.kpi-glossary-metric-desc{color:#64748b}.kpi-glossary-metric-desc--muted{color:#94a3b8;font-style:italic}.kpi-table-section{margin-top:8px}.kpi-table-toggle{align-items:center;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;color:#475569;cursor:pointer;display:inline-flex;font-size:13px;gap:6px;margin-bottom:10px;padding:8px 12px}.kpi-table-toggle:hover{background:#e2e8f0;color:#1e293b}.kpi-md-report{border:1px solid #e2e8f0;border-radius:8px;margin-top:16px;overflow:hidden}.kpi-md-report-toggle{background:#f1f5f9;border:none;color:#334155;cursor:pointer;display:block;font-size:13px;font-weight:500;padding:10px 12px;text-align:left;width:100%}.kpi-md-report-toggle:hover{background:#e2e8f0}.kpi-md-report-body{background:#fff;color:#334155;font-size:12px;line-height:1.5;margin:0;max-height:360px;overflow:auto;padding:12px;white-space:pre-wrap;word-break:break-word}.kpi-trend-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.kpi-trend-table{border-collapse:collapse;font-size:13px;min-width:100%;width:-webkit-max-content;width:max-content}.kpi-trend-table td,.kpi-trend-table th{border:1px solid #e2e8f0;padding:8px 10px;text-align:right;white-space:nowrap}.kpi-trend-table td:first-child,.kpi-trend-table th:first-child{text-align:left;white-space:nowrap}.kpi-trend-table thead th{background:#f1f5f9;color:#334155;font-weight:600}.knowledge-auth-card{max-width:520px;text-align:center}.knowledge-auth-error{color:#b42318;margin:12px 0}.allowlist-add-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.allowlist-add-row input{border:1px solid #cbd5e1;border-radius:8px;flex:1 1;font-size:14px;min-width:140px;padding:8px 10px}.allowlist-add-row button{background:#4a6fa5;border:none;border-radius:8px;color:#fff;cursor:pointer;padding:8px 16px}.allowlist-remove-btn{background:#fee2e2;border:1px solid #fecaca;border-radius:6px;color:#b42318;cursor:pointer;font-size:12px;padding:4px 10px}.allowlist-remove-btn:disabled{cursor:not-allowed;opacity:.5}.allowlist-section{border-bottom:1px solid #e2e8f0;margin-bottom:24px;padding-bottom:16px}.allowlist-section h3{color:#334155;font-size:16px;margin:0 0 8px}.allowlist-search-results{list-style:none;margin:0 0 12px;padding:0}.allowlist-search-hit{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;color:#1e293b;cursor:pointer;display:block;font-size:14px;line-height:1.45;margin-bottom:6px;padding:10px 12px;text-align:left;width:100%}.allowlist-search-hit:hover{background:#eef2ff;border-color:#c7d2fe;color:#0f172a}.allowlist-search-hit.selected{background:#dbeafe;border-color:#4a6fa5;color:#0f172a}.allowlist-invite-row{justify-content:flex-start}.allowlist-invite-row button{flex:0 0 auto}.allowlist-confirm-box{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;color:#14532d;margin-bottom:12px;padding:12px 14px}.allowlist-confirm-box p{color:#14532d;margin:0}.allowlist-confirm-actions button:not(.allowlist-remove-btn){background:#4a6fa5;color:#fff}.allowlist-confirm-actions{display:flex;gap:10px;margin-top:10px}.allowlist-invite-url{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px;padding:10px}.allowlist-invite-url code{color:#334155;flex:1 1;font-size:12px;min-width:200px;word-break:break-all}.allowlist-invite-table-wrap{margin-top:8px}.chatlog-section{border-bottom:none}.chatlog-layout{grid-gap:20px;align-items:start;display:grid;gap:20px;grid-template-columns:minmax(0,1fr) minmax(220px,280px)}.chatlog-main{min-width:0}.chatlog-recent-users{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:flex;flex-direction:column;max-height:calc(100vh - 120px);min-height:0;padding:12px;position:-webkit-sticky;position:sticky;top:12px}.chatlog-recent-users-header{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:4px}.chatlog-recent-users-header h3{font-size:15px;margin:0}.chatlog-recent-users-hint{font-size:12px;margin:0 0 10px}.chatlog-recent-users-sort{color:#475569;display:flex;flex-direction:column;font-size:12px;gap:4px;margin:0 0 8px}.chatlog-recent-users-sort select{background:#fff;border:1px solid #cbd5e1;border-radius:6px;color:#1e293b;font-size:13px;min-height:34px;padding:6px 8px}.chatlog-recent-users-list{display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;overflow-y:auto;padding:0}.chatlog-recent-user-btn{align-items:flex-start;background:#fff;border:1px solid #e2e8f0;border-radius:6px;color:#1e293b;cursor:pointer;display:flex;flex-direction:column;gap:2px;line-height:1.35;padding:8px 10px;text-align:left;width:100%;word-break:break-word}.chatlog-recent-user-name{font-size:13px;font-weight:600}.chatlog-recent-user-date{color:#64748b;font-size:11px;font-weight:500}.chatlog-recent-user-btn:hover{background:#eef2ff;border-color:#c7d2fe}.chatlog-recent-user-btn.is-selected{background:#eef2ff;border-color:#4a6fa5;box-shadow:inset 0 0 0 1px #4a6fa5}@media (max-width:900px){.chatlog-layout{grid-template-columns:1fr}.chatlog-recent-users{max-height:320px;order:-1;position:static}}.chatlog-section-header{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-bottom:12px}.chatlog-section-header h3{margin:0}.chatlog-section-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.chatlog-jump-date{align-items:center;color:#475569;display:inline-flex;font-size:13px;gap:8px}.chatlog-jump-date input[type=date]{background:#fff;border:1px solid #cbd5e1;border-radius:6px;color:#1e293b;font-size:13px;min-height:36px;padding:6px 10px}.chatlog-jump-hint{color:#b45309;margin:0 0 10px}.chatlog-refresh-btn{background:#eef2ff;border-color:#c7d2fe;color:#4a6fa5}.chatlog-messages{background:#fff;border:1px solid #e2e8f0;gap:14px;margin-top:16px;padding:12px 14px}.chatlog-message-pair,.chatlog-messages{border-radius:8px;display:flex;flex-direction:column}.chatlog-message-pair{gap:6px;transition:background-color .3s ease,box-shadow .3s ease}.chatlog-message-pair--highlight{background:#fff7ed;box-shadow:inset 0 0 0 1px #fdba74;margin:-8px;padding:8px}.chatlog-date-tag{align-self:flex-start;background:#334155;border-radius:999px;color:#fff;font-size:12px;font-weight:600;letter-spacing:.02em;line-height:1.4;margin:4px 0 2px;padding:3px 10px}.chatlog-message{border-radius:8px;font-size:13px;line-height:1.5;padding:8px 12px}.chatlog-message p{margin:4px 0 0;white-space:pre-wrap;word-break:break-word}.chatlog-message--user{align-self:flex-end;background:#dbeafe;border:1px solid #93c5fd;max-width:92%}.chatlog-message--user .chatlog-message-role{color:#1d4ed8}.chatlog-message--assistant{align-self:flex-start;background:#dcfce7;border:1px solid #86efac;max-width:92%}.chatlog-message--assistant .chatlog-message-role{color:#15803d}.chatlog-message-meta{align-items:center;display:flex;gap:8px}.chatlog-message-role{color:#334155;font-size:12px;font-weight:600}.chatlog-message-time{color:#64748b;font-size:11px}.kg-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.kg-toolbar button{align-items:center;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;box-sizing:border-box;color:#334155;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;justify-content:center;line-height:1.4;min-height:40px;padding:10px 18px}.kg-toolbar button:hover:not(:disabled){background:#eef3fa;border-color:#94a3b8;color:#1e293b}.kg-toolbar button.kg-toolbar-btn-primary{background-color:#4a6fa5;border-color:#4a6fa5;color:#fff}.kg-toolbar button.kg-toolbar-btn-primary:hover:not(:disabled){background-color:#3d5d8a;border-color:#3d5d8a;color:#fff}.kg-toolbar button:disabled{cursor:not-allowed;opacity:.65}.kg-summary-grid{margin-bottom:20px}.kg-metric-time{font-size:1rem;line-height:1.35}.kg-history-title{font-size:16px;font-weight:600;margin:0 0 10px}.kg-history-table .kg-history-note{color:#475467;font-size:13px;max-width:280px;word-break:break-word}.news-form-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:12px}.news-field{display:flex;flex-direction:column;font-size:14px;gap:6px}.news-field input,.news-field select,.news-field textarea{border:1px solid #d0d5dd;border-radius:8px;font-size:14px;padding:8px 10px}.news-field-full,.news-upload-row{margin-bottom:12px}.news-table .news-preview-cell{color:#475467;font-size:13px;max-width:280px;white-space:pre-wrap;word-break:break-word}.quality-table{border-collapse:collapse;font-size:13px;width:100%}.quality-table td,.quality-table th{border-bottom:1px solid #e2e8f0;padding:8px 10px;text-align:left;vertical-align:top}.quality-table button.linkish,.quality-turn-meta button.linkish{background:none;border:none;color:#2563eb;cursor:pointer;font:inherit;padding:0;text-decoration:underline}.quality-issue-chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 16px}.quality-sync-toolbar{align-items:center;flex-wrap:wrap;gap:10px 12px}.quality-sync-btn{background:#4a6fa5;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:8px 14px}.quality-sync-btn:hover:not(:disabled){background:#3d5d8a}.quality-sync-btn:disabled{cursor:not-allowed;opacity:.65}.quality-sync-meta{flex:1 1 240px;margin:0}.quality-rerun-date input{margin-left:6px}.quality-rerun-btn{background:#6b5344}.quality-rerun-btn:hover:not(:disabled){background:#574336}.quality-stat-strip{align-items:stretch;display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 16px}.quality-stat{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex:0 0 auto;min-width:5.5rem;padding:8px 12px}.quality-stat-label{color:#64748b;display:block;font-size:12px;margin-bottom:2px;white-space:nowrap}.quality-stat-value{font-feature-settings:"tnum";color:#0f172a;display:block;font-size:18px;font-variant-numeric:tabular-nums;font-weight:650;line-height:1.2}.quality-issue-chip{background:#f2f4f7;border-radius:999px;color:#344054;font-size:12px;padding:4px 10px}.quality-turn-list{display:flex;flex-direction:column;gap:12px}.quality-turn-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px;transition:box-shadow .2s,border-color .2s}.quality-turn-card.is-highlighted{border-color:#1570ef;box-shadow:0 0 0 3px #1570ef40}.quality-turn-meta{align-items:center;color:#667085;display:flex;font-size:12px;gap:12px;margin-bottom:8px}.quality-turn-body{grid-gap:14px;display:grid;gap:14px;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}@media (max-width:900px){.quality-turn-body{grid-template-columns:1fr}}.quality-turn-dialogue{max-height:380px;overflow-y:auto}.quality-turn-pair{border-bottom:1px solid #eef2f6;margin-bottom:10px;padding-bottom:8px}.quality-turn-pair:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.quality-turn-pair-ts{color:#98a2b3;font-size:11px;margin-bottom:4px}.quality-turn-problem-text{white-space:pre-wrap}.quality-turn-problem-details{color:#667085;font-size:12px;margin-top:8px}.quality-turn-problem-details summary{color:#b54708;cursor:pointer;font-weight:600;list-style:none}.quality-turn-problem-details summary::-webkit-details-marker{display:none}.quality-turn-problem-details summary:before{content:"▸ "}.quality-turn-problem-details[open] summary:before{content:"▾ "}.quality-grader-by-rule{display:flex;flex-direction:column;gap:2px;margin-top:6px}.quality-grader-by-rule .quality-turn-problem-details{margin-top:0}.quality-grader-by-rule summary{color:#344054}.quality-grader-violated{color:#d92d20;font-weight:600}.quality-grader-ok{color:#667085;font-weight:400}.quality-turn-problem-detail-text{color:#475467;line-height:1.5;margin:8px 0 0;white-space:pre-wrap;word-break:break-word}.quality-turn-dialogue p,.quality-turn-problem p{color:#1d2939;font-size:13px;line-height:1.5;margin:0 0 8px;white-space:pre-wrap;word-break:break-word}.quality-turn-dialogue strong{color:#667085;display:inline-block;font-weight:600;margin-right:6px;min-width:52px}.quality-turn-problem{background:#fff6ed;border-radius:8px;padding:10px 12px}.quality-turn-problem-label{color:#b54708;font-size:11px;font-weight:600;letter-spacing:.02em;margin-bottom:6px}.quality-init-btn{background:#eff8ff;border:1px solid #b2ddff;border-radius:6px;color:#175cd3;cursor:pointer;font-size:12px;margin-left:auto;padding:4px 10px}.quality-init-panel{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-top:10px;padding:10px 12px}.quality-init-section-label{color:#475467;font-size:12px;font-weight:600;margin:0 0 6px}.quality-init-missing{color:#667085;font-size:13px;margin:0 0 10px}.quality-init-injection{background:#fff;border:1px solid #e2e8f0;border-radius:6px;color:#1d2939;font-size:12px;line-height:1.5;margin:0 0 12px;max-height:min(70vh,720px);overflow:auto;padding:10px 12px;white-space:pre-wrap;word-break:break-word}.quality-init-panel dl{margin:0}.quality-init-row{grid-gap:8px;border-bottom:1px solid #eef2f6;display:grid;font-size:13px;gap:8px;grid-template-columns:140px minmax(0,1fr);padding:4px 0}.quality-init-row:last-child{border-bottom:none}.quality-init-row dt{color:#667085;font-weight:600}.quality-init-row dd{color:#1d2939;margin:0;white-space:pre-wrap;word-break:break-word}.quality-top-cluster{align-items:baseline;-webkit-appearance:none;appearance:none;background:#fff8f0;border:1px solid #f0c9a8;border-left:4px solid #d97706;border-radius:8px;cursor:pointer;display:flex;font:inherit;gap:.5rem;margin:.6rem 0;padding:.55rem .85rem;text-align:left;width:100%}.quality-top-cluster:hover{background:#fef1e2}.quality-top-cluster-label{color:#92400e;flex:0 0 auto;font-size:.78rem;white-space:nowrap}.quality-top-cluster-title{color:#1d2939;flex:1 1 auto;font-size:.92rem;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quality-top-cluster-count{color:#92400e;flex:0 0 auto;font-size:.86rem;font-weight:600;white-space:nowrap}.quality-cluster-tags{display:flex;flex-wrap:wrap;gap:.45rem;margin:.85rem 0 .65rem}.quality-cluster-tag{align-items:center;-webkit-appearance:none;appearance:none;background:#f7f8fa;border:1px solid #c8cdd4;border-radius:4px;color:#2c333d;cursor:pointer;display:inline-flex;font:inherit;font-size:.86rem;gap:.4rem;line-height:1.2;max-width:100%;padding:.35rem .65rem}.quality-cluster-tag:hover{background:#eef1f4;border-color:#9aa3ae}.quality-cluster-tag.is-active{background:#e7f1ed;border-color:#2f5d50;color:#1d3d34}.quality-cluster-tag-count{font-feature-settings:"tnum";color:#5b6570;font-size:.78rem;font-variant-numeric:tabular-nums}.quality-cluster-tag.is-active .quality-cluster-tag-count{color:#2f5d50}.quality-cluster-chip{-webkit-appearance:none;appearance:none;background:#eef5f2;border:1px solid #c5d4ce;border-radius:3px;color:#2a4a40;cursor:pointer;font:inherit;font-size:.78rem;padding:.15rem .45rem}.quality-cluster-chip:hover{border-color:#2f5d50}.quality-cluster-summary{background:linear-gradient(180deg,#f4f7f6,#fafbfb);border-left:3px solid #2f5d50;margin:.35rem 0 1rem;padding:.85rem 1rem}.quality-cluster-summary-title{color:#1d2a26;font-size:1rem;font-weight:650;margin-bottom:.35rem}.quality-cluster-summary-how{color:#3a4450;font-size:.92rem;line-height:1.55;margin:0 0 .55rem}.quality-cluster-summary-block{margin-bottom:.45rem}.quality-cluster-summary-label{color:#5b6570;font-size:.78rem;letter-spacing:.02em;margin-bottom:.2rem}.quality-cluster-summary-block ul{color:#2c333d;font-size:.88rem;line-height:1.45;margin:0;padding-left:1.1rem}.quality-cluster-summary-hint{color:#4a5560;font-size:.86rem;margin:.4rem 0 0}.quality-cluster-tag.is-fixed{opacity:.72}.quality-cluster-tag-fixed{border:1px solid #b7cfc6;border-radius:3px;color:#2f5d50;font-size:.72rem;padding:.05rem .3rem}.quality-cluster-tag.is-recurrence{background:#fff8e6;border-color:#d4a017;opacity:1}.quality-cluster-tag.is-recurrence.is-active{background:#fff3cd;border-color:#b5820a}.quality-case-recurrence,.quality-cluster-tag-recurrence,.quality-repair-item-recurrence{background:#fff3cd;border:1px solid #e3c56b;border-radius:3px;color:#7a5a06;font-size:.72rem;font-weight:650;padding:.05rem .3rem}.quality-repair-item-recurrence{margin-left:.35rem;vertical-align:middle}.quality-cluster-summary-recurrence{color:#7a5a06;font-size:.86rem;margin:0 0 .5rem}.quality-turn-card.is-recurrence{background:#fffdf5;border-color:#e3c56b}.quality-layout{display:block;margin-top:.75rem}.quality-layout.has-sidebar{grid-gap:1rem;align-items:start;display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) minmax(260px,320px)}.quality-layout-main{min-width:0}.quality-layout-side{display:flex;flex-direction:column;gap:.75rem;max-height:calc(100vh - 1.5rem);min-height:0;position:-webkit-sticky;position:sticky;top:.75rem}.quality-repair-board{background:#fbfcfd;border:1px solid #d9dee5;flex:1 1;margin:0;min-height:0;overflow:auto}.quality-repair-board-head{align-items:baseline;background:#fbfcfd;border-bottom:1px solid #e6eaef;display:flex;gap:.5rem;justify-content:space-between;padding:.65rem .75rem;position:-webkit-sticky;position:sticky;top:0;z-index:1}.quality-repair-board-title{color:#1d2a26;font-size:.95rem;font-weight:650}.quality-repair-list{list-style:none;margin:0;padding:0}.quality-repair-item{grid-gap:.45rem;align-items:start;border-bottom:1px solid #eef1f4;display:grid;gap:.45rem;grid-template-columns:1fr;padding:.65rem .75rem}.quality-repair-item:last-child{border-bottom:none}.quality-repair-item.is-fixed{background:#f3f7f5}.quality-repair-item.is-recurrence{background:#fff8e6}.quality-repair-item-main{-webkit-appearance:none;appearance:none;background:#0000;border:0;color:inherit;cursor:pointer;font:inherit;margin:0;min-width:0;padding:0;text-align:left}.quality-repair-item-title{color:#1d2939;display:block;font-size:.86rem;font-weight:600;line-height:1.4}.quality-repair-item-meta{color:#667085;display:block;font-size:.74rem;margin-top:.2rem}.quality-repair-item-how{display:none}.quality-repair-item-actions{display:inline-flex;flex-shrink:0;gap:.3rem}.quality-repair-status-btn-sub{color:#667085;display:block;font-size:.68rem;font-weight:400;margin-top:.12rem}.quality-theme-phases{grid-gap:.6rem;display:grid;gap:.6rem;grid-template-columns:1fr 1fr;margin-bottom:.9rem}@media (max-width:720px){.quality-theme-phases{grid-template-columns:1fr}}.quality-theme-phase{background:#fafbfc;border:1px solid #e6e9ee;border-radius:6px;display:flex;flex-direction:column;gap:.35rem;padding:.55rem .65rem}.quality-theme-phase-label{color:#475467;font-size:.74rem;font-weight:600;letter-spacing:.03em}.quality-theme-phase-body{align-items:center;display:flex;flex-wrap:wrap;gap:.4rem}.quality-theme-phase-status{color:#667085;font-size:.75rem}.quality-theme-case-actions{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.35rem}.quality-theme-case-head{align-items:center;display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.3rem}.quality-regression-chip.is-confirmed_red{background:#ecfdf3;color:#067647}.quality-regression-chip.is-unreproduced{background:#f2f4f7;color:#475467}.quality-regression-chip.is-excluded{background:#fef3f2;color:#b42318}.quality-regression-chip.is-pass{background:#ecfdf3;color:#067647}.quality-regression-chip.is-fail{background:#fef3f2;color:#b42318}.quality-flow-case{border-bottom:1px solid #eef1f4;padding:.6rem 0}.quality-flow-case:last-child{border-bottom:none}.quality-flow-track{align-items:stretch;display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.35rem}.quality-flow-arrow{align-self:center;color:#98a2b3;font-size:.8rem}.quality-flow-node,.quality-flow-stage{background:#fff;border:1px solid #d0d5dd;border-radius:6px;cursor:pointer;display:flex;flex-direction:column;font:inherit;gap:.1rem;min-width:92px;padding:.4rem .55rem;position:relative;text-align:left}.quality-flow-node.is-dim,.quality-flow-stage.is-dim{cursor:default;opacity:.4}.quality-flow-node.is-open,.quality-flow-stage.is-open{border-color:#1570ef;box-shadow:0 0 0 2px #1570ef26}.quality-flow-node-face{-webkit-appearance:none;appearance:none;background:#0000;border:0;cursor:default;display:flex;flex-direction:column;font:inherit;gap:.1rem;margin:0;padding:0;text-align:left}.quality-flow-node-title{color:#1d2939;font-size:.78rem;font-weight:600}.quality-flow-node-sub{color:#667085;font-size:.68rem}.quality-flow-node.is-repro{background:#f6fef9;border-color:#12b76a}.quality-flow-node.is-unrepro{background:#f9fafb;border-color:#98a2b3}.quality-flow-node.is-excluded{background:#fffbfa;border-color:#f04438}.quality-flow-stage.is-pass{background:#f6fef9;border-color:#12b76a}.quality-flow-stage.is-fail{background:#fef3f2;border-color:#f04438}.quality-flow-node.is-fixed{border-style:dashed}.quality-flow-replay{align-items:center;background:#0000;border:0;color:#1570ef;cursor:pointer;display:flex;font-size:.72rem;height:18px;justify-content:center;line-height:1;position:absolute;right:-6px;top:-7px;width:18px}.quality-flow-replay:disabled{cursor:default;opacity:.5}.quality-flow-detail{background:#f8fafc;border-left:3px solid #1570ef;border-radius:0 6px 6px 0;margin-top:.5rem;padding:.55rem .7rem}.quality-flow-pre{white-space:pre-wrap}.quality-flow-lens{align-items:center;background:#0000;border:0;cursor:pointer;display:flex;font-size:.72rem;height:18px;justify-content:center;line-height:1;position:absolute;right:16px;top:-7px;width:18px}.quality-flow-node>.quality-flow-lens:last-child,.quality-flow-stage>.quality-flow-lens:last-child{right:-6px}.quality-flow-dialogue{display:flex;flex-direction:column;gap:.5rem;margin-top:.4rem}.quality-flow-dlg-turn{background:#fff;border:1px solid #e6e9ee;border-radius:6px;padding:.4rem .55rem}.quality-flow-dlg-ts{color:#98a2b3;display:block;font-size:.68rem;margin-bottom:.2rem}.quality-flow-dlg-user{color:#1d2939;font-size:.82rem;margin:0 0 .25rem}.quality-flow-dlg-bot{color:#344054;font-size:.82rem;margin:0;white-space:pre-wrap}.quality-flow-dlg-tools{color:#98a2b3;font-size:.7rem;margin:.25rem 0 0}.quality-repair-status-btn{-webkit-appearance:none;appearance:none;background:#fff;border:1px solid #c8cdd4;border-radius:3px;color:#475467;cursor:pointer;font:inherit;font-size:.78rem;padding:.24rem .5rem}.quality-repair-status-btn:disabled{cursor:default}.quality-repair-status-btn.is-active.is-open{background:#fffaeb;border-color:#b54708;color:#93370d}.quality-repair-status-btn.is-active.is-fixed{background:#e7f1ed;border-color:#2f5d50;color:#1d3d34}.quality-repair-status-btn.is-recurrence{background:#fff3cd;border-color:#d4a017;color:#7a5a06}.quality-repair-status-btn.is-test.is-running{background:#fff8e6;border-color:#b5820a;color:#7a5a06;cursor:default}.quality-repair-status-btn.is-test.is-pass{background:#e7f1ed;border-color:#2f5d50;color:#1d3d34}.quality-repair-status-btn.is-test.is-fail{background:#fef3f2;border-color:#b42318;color:#912018}.quality-repair-status-btn.is-test.is-warn{background:#fff8e6;border-color:#b5820a;color:#7a5a06}.quality-repair-item-test-status{align-items:center;background:#f2f4f7;border-radius:4px;color:#667085;display:flex;font-size:.74rem;gap:.4rem;padding:.2rem .5rem;width:-webkit-fit-content;width:fit-content}.quality-repair-item-magnifier{-webkit-appearance:none;appearance:none;background:#0000;border:1px solid;border-radius:999px;color:inherit;cursor:pointer;font:inherit;font-size:.7rem;opacity:.85;padding:.06rem .4rem}.quality-repair-item-magnifier:hover{opacity:1}.quality-repair-item-test-status.is-none{background:#fef3f2;color:#912018}.quality-repair-item-test-status.is-running{background:#fff8e6;color:#7a5a06}.quality-repair-item-test-status.is-pass{background:#e7f1ed;color:#1d3d34}.quality-repair-item-test-status.is-fail{background:#fef3f2;color:#912018}.quality-repair-item-test-status.is-warn{background:#fff8e6;color:#7a5a06}.quality-regression-recent{background:#fbfcfd;border:1px solid #d9dee5;flex:1 1;min-height:0;overflow:auto;padding:0}.quality-regression-recent-list{list-style:none;margin:0;padding:.5rem .75rem}.quality-regression-recent-item{align-items:center;-webkit-appearance:none;appearance:none;background:#0000;border:0;border-bottom:1px dashed #eef1f4;color:inherit;cursor:pointer;display:flex;font:inherit;gap:.5rem;padding:.4rem .1rem;text-align:left;width:100%}.quality-regression-recent-item:hover{background:#f9fafb}.quality-regression-recent-title{color:#1d2939;flex:1 1;font-size:.78rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quality-regression-recent-meta{color:#98a2b3;font-size:.68rem;white-space:nowrap}.quality-regression-verdict-tag{border-radius:999px;flex-shrink:0;font-size:.68rem;font-weight:700;padding:.1rem .4rem}.quality-regression-verdict-tag.is-pass{background:#e7f1ed;color:#1d3d34}.quality-regression-verdict-tag.is-fail{background:#fef3f2;color:#912018}.quality-regression-verdict-tag.is-warn{background:#fff8e6;color:#7a5a06}.quality-regression-detail-label{color:#98a2b3;font-size:.7rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.quality-regression-chip{background:#f2f4f7;border-radius:4px;color:#475467;font-size:.7rem;padding:.15rem .4rem}.quality-turn-test-magnifier{-webkit-appearance:none;appearance:none;background:#fff;border:1px solid #c8cdd4;border-radius:999px;color:#475467;cursor:pointer;font:inherit;font-size:.74rem;padding:.18rem .5rem}.quality-turn-test-magnifier:disabled{cursor:default;opacity:.6}.quality-turn-test-magnifier.is-danger{border-color:#f0b4ae;color:#b42318}.quality-turn-test-magnifier.is-danger:hover{background:#fef3f2}.quality-turn-test-edit-panel{background:#f9fafb;border:1px solid #eef1f4;border-radius:8px;display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem;padding:.65rem .75rem}.quality-turn-test-textarea{border:1px solid #d0d5dd;border-radius:6px;box-sizing:border-box;font:inherit;font-size:.78rem;line-height:1.5;min-height:2.4rem;padding:.4rem .5rem;resize:vertical;width:100%}.quality-turn-test-save{-webkit-appearance:none;appearance:none;background:#e7f1ed;border:1px solid #2f5d50;border-radius:4px;color:#1d3d34;cursor:pointer;font:inherit;font-size:.78rem;font-weight:600;padding:.3rem .75rem}.quality-turn-test-save:disabled{cursor:default;opacity:.6}.quality-turn-card.is-highlighted{background:#fffbf0;outline:2px solid #b5820a;outline-offset:2px}.quality-theme-window{position:fixed;width:min(780px,calc(100vw - 40px));z-index:60}.quality-theme-modal{background:#fff;border:1px solid #d0d5dd;border-radius:12px;box-shadow:0 24px 60px #10182859;max-height:86vh;overflow-y:auto;padding:0 1.1rem 1.25rem}.quality-theme-modal-head{align-items:center;background:#fff;border-bottom:1px solid #eef1f4;cursor:move;display:flex;gap:.75rem;justify-content:space-between;margin-bottom:.75rem;padding:.7rem 0 .6rem;position:-webkit-sticky;position:sticky;top:0;-webkit-user-select:none;user-select:none;z-index:1}.quality-theme-modal-title{-webkit-appearance:none;appearance:none;background:#0000;border:0;color:#1d2939;cursor:pointer;font-family:inherit;font-size:.98rem;font-weight:700;line-height:1.4;margin:0;padding:0;text-align:left}.quality-theme-modal-title:hover{color:#1570ef;text-decoration:underline}.quality-theme-modal-close{-webkit-appearance:none;appearance:none;background:#fff;border:1px solid #c8cdd4;border-radius:6px;color:#475467;cursor:pointer;flex-shrink:0;font:inherit;font-size:.78rem;padding:.28rem .7rem}.quality-theme-modal-section{border:1px solid #e2e8f0;border-radius:10px;display:flex;flex-direction:column;gap:.65rem;margin-bottom:.75rem;padding:.75rem .85rem}.quality-theme-modal-section:last-child{margin-bottom:0}.quality-theme-modal-section-head{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.quality-theme-modal-section-label{color:#98a2b3;font-size:.7rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.quality-theme-case-row{grid-gap:.6rem;align-items:start;border-bottom:1px dashed #eef1f4;display:grid;gap:.6rem;grid-template-columns:minmax(0,90px) minmax(0,1.2fr) minmax(0,1fr);padding-bottom:.65rem}.quality-theme-case-row:last-child{border-bottom:0;padding-bottom:0}@media (max-width:640px){.quality-theme-case-row{grid-template-columns:1fr}}.quality-theme-case-id{-webkit-appearance:none;appearance:none;background:none;border:none;color:#2563eb;cursor:pointer;font:inherit;font-size:.72rem;font-weight:600;height:-webkit-fit-content;height:fit-content;padding:.2rem 0;text-align:left;text-decoration:underline;word-break:break-all}.quality-theme-case-messages{color:#344054;font-size:.78rem;line-height:1.5}.quality-theme-case-messages p{margin:0 0 .4rem;white-space:pre-wrap;word-break:break-word}.quality-theme-case-messages p:last-child{margin-bottom:0}.quality-theme-rule-row{border-bottom:1px dashed #eef1f4;padding-bottom:.65rem}.quality-theme-rule-row:last-child{border-bottom:0;padding-bottom:0}.quality-theme-rule-head{align-items:center;display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.35rem}.quality-theme-rule-label{color:#1d2939;font-size:.8rem;font-weight:700}.quality-theme-rule-list{color:#344054;font-size:.78rem;line-height:1.55;margin:0;padding-left:1.1rem}.quality-theme-result-pass{background:#e7f1ed;border-radius:6px;color:#1d3d34;font-size:.82rem;margin:0;padding:.5rem .65rem}.quality-theme-result-list{display:flex;flex-direction:column;gap:.5rem;list-style:none;margin:0;padding:0}.quality-theme-result-list li{background:#fef3f2;border-left:3px solid #b42318;border-radius:0 6px 6px 0;padding:.4rem .6rem}.quality-theme-case-id-inline{color:#912018;display:block;font-size:.72rem;font-weight:700;margin-bottom:.2rem}@media (max-width:980px){.quality-layout.has-sidebar{grid-template-columns:1fr}.quality-layout-side{max-height:none;position:static}}.spec-preview-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:10px 14px;margin:0 0 14px}.spec-preview-toggle{border:1px solid #cbd5e1;border-radius:8px;display:inline-flex;overflow:hidden}.spec-preview-toggle button{background:#f8fafc;border:0;color:#475569;cursor:pointer;font-size:14px;padding:7px 16px}.spec-preview-toggle button+button{border-left:1px solid #cbd5e1}.spec-preview-toggle button.active{background:#4a6fa5;color:#fff}.spec-preview-refresh{background:#fff;border:1px solid #cbd5e1;border-radius:8px;color:#334155;cursor:pointer;font-size:13px;padding:7px 12px}.spec-preview-refresh:disabled{cursor:default;opacity:.65}.spec-preview-mtime{color:#64748b;font-size:12px}.spec-preview-layout{display:block}.spec-preview-layout.has-toc{grid-gap:12px;align-items:start;display:grid;gap:12px;grid-template-columns:minmax(200px,260px) minmax(0,1fr)}.spec-preview-toc{border:1px solid #e2e8f0;border-radius:10px;max-height:calc(100vh - 280px);overflow:auto;top:.5rem}.spec-preview-toc,.spec-preview-toc-title{background:#f8fafc;position:-webkit-sticky;position:sticky}.spec-preview-toc-title{border-bottom:1px solid #e2e8f0;color:#1e3a5f;font-size:13px;font-weight:650;margin:0;padding:10px 12px 8px;top:0;z-index:1}.spec-preview-toc-list{list-style:none;margin:0;padding:6px 0 10px}.spec-preview-toc-item button{background:#0000;border:0;color:#334155;cursor:pointer;display:block;font:inherit;font-size:13px;line-height:1.4;padding:5px 12px;text-align:left;width:100%}.spec-preview-toc-item.level-3 button{color:#64748b;font-size:12px;padding-left:22px}.spec-preview-toc-item button:hover{background:#eef2f7;color:#1e3a5f}.spec-preview-toc-item.is-active button{background:#e8eef7;color:#1e3a5f;font-weight:600}.spec-preview-body{background:#fff;border:1px solid #e2e8f0;border-radius:10px;color:#1e293b;line-height:1.65;max-height:calc(100vh - 280px);overflow:auto;padding:16px 20px 28px}.spec-preview-body h1,.spec-preview-body h2,.spec-preview-body h3,.spec-preview-body h4{color:#1e3a5f;line-height:1.3;margin:1.4em 0 .5em;scroll-margin-top:12px}.spec-preview-body h1{font-size:1.55rem;margin-top:.2em}.spec-preview-body h2{font-size:1.28rem}.spec-preview-body h3{font-size:1.08rem}.spec-preview-body ol,.spec-preview-body p,.spec-preview-body ul{margin:.6em 0}.spec-preview-body table{border-collapse:collapse;font-size:13px;margin:.8em 0;width:100%}.spec-preview-body td,.spec-preview-body th{border:1px solid #e2e8f0;padding:6px 8px;text-align:left;vertical-align:top}.spec-preview-body th{background:#f1f5f9;font-weight:600}.spec-preview-body blockquote{background:#f8fafc;border-left:3px solid #94a3b8;color:#475569;margin:.8em 0;padding:2px 12px}.spec-preview-body pre{background:#0f172a;border-radius:8px;color:#e2e8f0;font-size:12px;overflow:auto;padding:10px 12px}.spec-preview-body code{font-size:.9em}.spec-preview-body :not(pre)>code{background:#eef2f7;border-radius:4px;padding:1px 5px}.spec-preview-inline-link{background:none;border:0;color:#2563eb;cursor:pointer;font:inherit;padding:0;text-decoration:underline}@media (max-width:900px){.spec-preview-layout.has-toc{grid-template-columns:1fr}.spec-preview-toc{max-height:220px;position:static}}.knowledge-page--embed{background:#fff;min-height:100%;padding:8px 10px 12px}.knowledge-page--embed .knowledge-card{border:0;border-radius:0;box-shadow:none;max-width:none;padding:4px 8px 12px}
/*# sourceMappingURL=main.694c5e13.css.map*/