:root{--primary:#169bd5;--primary-light:#009dd9;--primary-dark:#0d7eb5;--bg:#f0f2f5;--surface:#fff;--border:#e2e8f0;--text:#333;--text-muted:#606266;--success:#2e7d32;--warning:#ef6c00;--danger:#c62828;--sidebar-width:220px;--header-height:52px;color:var(--text);background:var(--bg);font-family:PingFang SC,Microsoft YaHei,sans-serif;font-size:13px;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{min-height:100vh}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,select,textarea{font-family:inherit}.menu-shell{flex-direction:column;height:100vh;display:flex;overflow:hidden}.menu-topbar{z-index:100;height:var(--header-height);min-height:var(--header-height);background:var(--primary-dark);color:#fff;flex-wrap:nowrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:0 16px;display:flex;position:sticky;top:0;overflow:hidden}.menu-brand{white-space:nowrap;flex-shrink:0;font-size:16px;font-weight:600}.app-notice{color:#ffffffeb;white-space:nowrap;margin:0;padding:0;font-size:12px;line-height:1.6}.menu-top-notice{text-align:center;flex:1;min-width:0}.menu-top-actions{flex-shrink:0;justify-content:flex-end;align-items:center;gap:12px;min-width:0;display:flex}.todo-toggle{color:#fff;align-items:center;gap:6px;font-size:13px;display:flex}.todo-toggle:hover{color:#ffffffd9}.header-link{color:#ffffffe6;align-items:center;gap:4px;font-size:13px;display:flex}.assistant-entry{background:#ffffff24;border-radius:4px;padding:4px 10px;font-weight:500}.assistant-entry:hover{color:#fff;background:#ffffff38}.assistant-overlay{z-index:200;background:#00000059;justify-content:flex-end;display:flex;position:fixed;inset:0}.assistant-panel{background:var(--surface);flex-direction:column;width:min(420px,100vw);height:100%;display:flex;box-shadow:-8px 0 24px #0000001f}.assistant-head{border-bottom:1px solid var(--border);background:#f8fbfd;flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.assistant-head-main{color:var(--primary-dark);align-items:center;gap:10px;display:flex}.assistant-head-main h2{margin:0;font-size:15px}.assistant-head-main p{color:var(--text-muted);margin-top:2px;font-size:11px}.assistant-close{width:32px;height:32px;color:var(--text-muted);border-radius:4px;justify-content:center;align-items:center;display:flex}.assistant-close:hover{background:var(--bg)}.assistant-suggestions{border-bottom:1px solid var(--border);background:#fafbfc;flex-wrap:wrap;flex-shrink:0;gap:6px;padding:10px 12px;display:flex}.assistant-chip{border:1px solid var(--border);color:var(--text-muted);background:#fff;border-radius:999px;padding:4px 10px;font-size:11px}.assistant-chip:hover{border-color:var(--primary);color:var(--primary)}.assistant-messages{flex-direction:column;flex:1;gap:12px;min-height:0;padding:12px;display:flex;overflow-y:auto}.assistant-msg{align-items:flex-start;gap:8px;display:flex}.assistant-msg-user{flex-direction:row-reverse}.assistant-avatar{width:28px;height:28px;color:var(--primary);background:#169bd51f;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.assistant-bubble{border:1px solid var(--border);background:#f5f7fa;border-radius:8px;max-width:calc(100% - 40px);padding:10px 12px}.assistant-msg-user .assistant-bubble{background:#169bd51a;border-color:#169bd533}.assistant-text{white-space:pre-wrap;word-break:break-word;color:var(--text);margin:0;font-family:inherit;font-size:12px;line-height:1.6}.assistant-bubble-loading{color:var(--text-muted);font-size:12px}.assistant-sources{border-top:1px dashed var(--border);margin-top:10px;padding-top:10px}.assistant-sources-title{color:var(--text-muted);margin-bottom:8px;font-size:11px}.assistant-source-item{border:1px solid var(--border);background:#fff;border-radius:6px;margin-bottom:8px;padding:8px}.assistant-source-item:last-child{margin-bottom:0}.assistant-source-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px;font-size:11px;display:flex}.assistant-source-type{color:var(--primary-dark);background:#169bd51f;border-radius:3px;padding:1px 6px}.assistant-source-score{margin-left:auto}.assistant-source-title{margin-bottom:6px;font-size:12px;font-weight:600}.assistant-foot{border-top:1px solid var(--border);flex-shrink:0;align-items:flex-end;gap:8px;padding:12px;display:flex}.assistant-input{resize:none;border:1px solid var(--border);border-radius:4px;flex:1;padding:8px 10px;font-size:12px}.assistant-config-page{min-height:0;padding:16px 20px 24px;overflow:auto}.assistant-config-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.assistant-config-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.assistant-config-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:16px}.assistant-config-card-wide{margin-bottom:16px}.assistant-config-card-title{align-items:center;gap:8px;margin:0 0 12px;font-size:14px;font-weight:600;display:flex}.assistant-config-card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.assistant-config-card-head .assistant-config-card-title{margin-bottom:0}.assistant-config-form{flex-direction:column;gap:12px;display:flex}.assistant-config-row{justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.assistant-config-row input[type=number]{border:1px solid var(--border);border-radius:4px;width:88px;padding:6px 8px}.assistant-config-field{flex-direction:column;gap:6px;font-size:12px;display:flex}.assistant-config-field textarea{border:1px solid var(--border);resize:vertical;border-radius:4px;padding:8px 10px;font-size:12px}.assistant-config-stats{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px;display:grid}.assistant-config-stats div{border:1px solid var(--border);text-align:center;background:#f8fbfd;border-radius:6px;padding:10px}.assistant-config-stats strong{color:var(--primary-dark);font-size:20px;display:block}.assistant-config-stats span{color:var(--text-muted);font-size:11px}.assistant-config-meta{color:var(--text-muted);margin:0 0 12px;font-size:12px}.assistant-config-filters{flex-wrap:wrap;gap:6px;display:flex}.assistant-config-filter{border:1px solid var(--border);background:#fff;border-radius:999px;padding:4px 10px;font-size:11px}.assistant-config-filter.active{border-color:var(--primary);color:var(--primary-dark);background:#169bd51a}.assistant-config-table-scroll{border:1px solid var(--border);border-radius:6px;max-height:360px;overflow:auto}.assistant-config-table{margin:0}.assistant-config-doc-title{margin-bottom:4px;font-weight:600}.assistant-config-doc-summary{color:var(--text-muted);font-size:11px;line-height:1.5}.assistant-config-keywords{color:var(--text-muted);max-width:220px;font-size:11px}.assistant-config-questions{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.assistant-config-question-item{border:1px solid var(--border);background:#fafbfc;border-radius:999px;align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:flex}.assistant-config-question-item button{width:18px;height:18px;color:var(--text-muted);border-radius:50%;line-height:1}.assistant-config-question-item button:hover{color:var(--danger,#e74c3c);background:#0000000f}.assistant-config-add-question{gap:8px;display:flex}.assistant-config-add-question input{border:1px solid var(--border);border-radius:4px;flex:1;padding:8px 10px;font-size:12px}.assistant-config-tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:16px;display:flex}.assistant-config-tab{color:var(--text-muted);border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 16px;font-size:13px}.assistant-config-tab.active{color:var(--primary-dark);border-bottom-color:var(--primary);font-weight:600}.kb-mgmt-stats{grid-template-columns:repeat(8,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.kb-mgmt-stats div{border:1px solid var(--border);text-align:center;background:#f8fbfd;border-radius:6px;padding:10px 8px}.kb-mgmt-stats strong{color:var(--primary-dark);font-size:18px;display:block}.kb-mgmt-stats span{color:var(--text-muted);font-size:11px}.kb-mgmt-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.kb-mgmt-toolbar-left,.kb-mgmt-toolbar-right{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.kb-mgmt-toolbar-left select{border:1px solid var(--border);background:#fff;border-radius:4px;padding:6px 8px;font-size:12px}.kb-mgmt-search{border:1px solid var(--border);background:#fff;border-radius:4px;align-items:center;gap:6px;padding:0 10px;display:flex}.kb-mgmt-search input{border:none;width:200px;padding:7px 0;font-size:12px}.kb-mgmt-table-wrap{max-height:420px}.kb-mgmt-col-title{width:32%;min-width:320px}.kb-mgmt-table tbody tr.kb-mgmt-row-disabled{opacity:.55}.kb-mgmt-title-link{text-align:left;width:100%}.kb-mgmt-title-link:hover .assistant-config-doc-title{color:var(--primary)}.kb-source-tag{border-radius:999px;padding:2px 8px;font-size:11px;display:inline-block}.kb-source-builtin{color:var(--primary-dark);background:#169bd51a}.kb-source-custom{color:#c77700;background:#ff98001f}.kb-mgmt-time{color:var(--text-muted);white-space:nowrap;font-size:11px}.kb-mgmt-actions{gap:4px;display:flex}.kb-mgmt-actions button{width:28px;height:28px;color:var(--text-muted);border-radius:4px;justify-content:center;align-items:center;display:flex}.kb-mgmt-actions button:hover{color:var(--primary);background:#f0f4f8}.kb-mgmt-empty{text-align:center;color:var(--text-muted);padding:24px!important}.kb-mgmt-test{border:1px solid var(--border);background:#fafbfc;border-radius:8px;margin-top:16px;padding:16px}.kb-mgmt-test-head{align-items:baseline;gap:10px;margin-bottom:10px;display:flex}.kb-mgmt-test-head h3{align-items:center;gap:6px;margin:0;font-size:14px;display:flex}.kb-mgmt-test-head span{color:var(--text-muted);font-size:11px}.kb-mgmt-test-input{gap:8px;margin-bottom:12px;display:flex}.kb-mgmt-test-input input{border:1px solid var(--border);border-radius:4px;flex:1;padding:8px 10px;font-size:12px}.kb-mgmt-test-results{flex-direction:column;gap:8px;display:flex}.kb-mgmt-test-item{border:1px solid var(--border);background:#fff;border-radius:6px;padding:10px 12px}.kb-mgmt-test-item-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.kb-mgmt-test-item-head strong{font-size:13px}.kb-mgmt-test-item p{color:var(--text-muted);margin:0;font-size:12px;line-height:1.5}.kb-mgmt-test-empty{color:var(--text-muted);margin:0;font-size:12px}.kb-doc-form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.kb-doc-field{flex-direction:column;gap:6px;font-size:12px;display:flex}.kb-doc-field-wide{grid-column:span 2}.kb-doc-field input,.kb-doc-field select,.kb-doc-field textarea{border:1px solid var(--border);border-radius:4px;padding:8px 10px;font-size:12px}.kb-doc-readonly-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;display:grid}.kb-doc-readonly-grid label,.kb-doc-readonly-block label{color:var(--text-muted);margin-bottom:4px;font-size:11px;display:block}.kb-doc-readonly-block{margin-bottom:14px}.kb-doc-readonly-block p,.kb-doc-readonly-block ol{margin:0;padding-left:18px;font-size:12px;line-height:1.6}.kb-doc-keyword-tags{flex-wrap:wrap;gap:6px;display:flex}.spin-icon{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.menu-body{flex:1;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.menu-sidebar{width:var(--sidebar-width);color:#ffffffd9;background:#304156;flex-shrink:0;height:100%;transition:width .2s;overflow:hidden auto}.menu-body.is-sidebar-collapsed .menu-sidebar{width:0}.sidebar-collapse-toggle{left:var(--sidebar-width);color:#ffffffd9;z-index:30;background:#304156;border:1px solid #ffffff1f;border-left:none;border-radius:0 4px 4px 0;justify-content:center;align-items:center;width:16px;height:56px;transition:left .2s,background .15s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.sidebar-collapse-toggle:hover{color:#fff;background:#3a4d63}.menu-body.is-sidebar-collapsed .sidebar-collapse-toggle{left:0}.menu-sidebar-title{opacity:.6;padding:14px 16px 8px;font-size:12px}.menu-group{padding-top:6px}.menu-nav{padding:0 0 12px}.menu-group-head{text-align:left;color:#ffffffe6;align-items:center;gap:6px;width:100%;padding:10px 16px;font-size:13px;font-weight:500;display:flex}.menu-group-head:hover{background:#ffffff0f}.menu-item{color:#ffffffbf;border-left:3px solid #0000;padding:10px 16px;font-size:13px;text-decoration:none;display:block}.menu-item-nested{padding:8px 16px 8px 34px;font-size:12px}.menu-item:hover{color:#fff;background:#ffffff0f;text-decoration:none}.menu-item.active{color:#fff;border-left-color:var(--primary);background:#169bd540;font-weight:500;text-decoration:none}.menu-content{background:var(--bg);flex-direction:column;flex:1;min-width:0;min-height:0;padding:0;display:flex;overflow:hidden}.page-tab-bar{border-bottom:1px solid var(--border);background:#fff;flex-shrink:0;align-items:stretch;gap:4px;min-height:36px;padding:0 8px 0 10px;display:flex}.page-tab-list{scrollbar-width:thin;flex:1;align-items:stretch;gap:2px;min-width:0;display:flex;overflow:auto hidden}.page-tab-list::-webkit-scrollbar{height:4px}.page-tab{max-width:180px;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;border-bottom:none;border-radius:4px 4px 0 0;flex-shrink:0;align-items:center;gap:4px;margin-top:4px;padding:0 6px 0 10px;font-size:12px;display:inline-flex}.page-tab:hover{background:var(--bg);color:var(--text)}.page-tab.is-active{background:var(--bg);color:var(--primary);border-color:var(--border);border-bottom-color:var(--bg);margin-bottom:-1px;font-weight:500}.page-tab-label{text-overflow:ellipsis;white-space:nowrap;line-height:28px;overflow:hidden}.page-tab-close{width:18px;height:18px;color:var(--text-muted);border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.page-tab-close:hover{color:var(--text);background:#0000000f}.page-tab-actions{flex-shrink:0;align-items:center;padding-left:4px;display:flex;position:relative}.page-tab-menu-btn{width:28px;height:28px;color:var(--text-muted);border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.page-tab-menu-btn:hover{background:var(--bg);color:var(--text)}.page-tab-menu{z-index:50;border:1px solid var(--border);background:#fff;border-radius:4px;min-width:120px;padding:4px 0;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 4px 12px #0000001a}.page-tab-menu button{text-align:left;width:100%;color:var(--text);padding:8px 12px;font-size:13px;display:block}.page-tab-menu button:hover:not(:disabled){background:var(--bg)}.page-tab-menu button:disabled{color:var(--text-secondary);cursor:not-allowed;opacity:.6}.page-scroll{flex-direction:column;flex:1;min-width:0;min-height:0;padding:8px 10px;display:flex;overflow:auto}.page-scroll:has(>.doc-page-compact){overflow:hidden}.list-page{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.list-page-header{flex-shrink:0;margin-bottom:8px}.list-page-header>div{margin-bottom:0!important}.list-page-tabs{flex-shrink:0;margin-bottom:8px}.list-card{flex-direction:column;flex:1;min-height:0;margin-bottom:0;display:flex}.list-card .card-body{flex-direction:column;flex:1;min-height:0;padding:0;display:flex}.list-card-toolbar{flex-shrink:0;padding:10px 10px 0}.list-card-toolbar .search-bar{margin-bottom:8px}.list-table-scroll{border-top:1px solid var(--border);flex:1;min-height:0;overflow:auto}.list-table-scroll .data-table th{z-index:3;background:#fafafa;position:sticky;top:0}.list-card .table-footer{border-top:1px solid var(--border);background:#fff;flex-shrink:0;padding:10px}.table-footer-left{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.page-size-control{align-items:center;gap:6px;display:inline-flex}.page-size-input{text-align:center;border:1px solid #dcdfe6;border-radius:4px;width:56px;height:28px;padding:0 6px;font-size:13px}.page-size-presets{gap:4px;display:inline-flex}.page-size-preset{border:1px solid var(--border);min-width:32px;height:28px;color:var(--text-muted);background:#fff;border-radius:4px;padding:0 8px;font-size:12px}.page-size-preset:hover{border-color:var(--primary);color:var(--primary)}.page-size-preset.active{background:var(--primary);color:#fff;border-color:var(--primary)}.page-title{margin-bottom:4px;font-size:18px;font-weight:600}.page-desc{color:var(--text-muted);font-size:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:2px;margin-bottom:8px;overflow:hidden}.card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;min-height:32px;padding:6px 10px;display:flex}.card-header h3{font-size:13px;font-weight:600}.card-body{padding:10px}.card-compact{margin-bottom:6px}.card-compact .card-header{min-height:28px;padding:5px 10px}.card-compact .card-body{padding:6px 8px}.btn{border-radius:4px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:500;display:inline-flex}.btn-sm{border-radius:3px;gap:4px;padding:4px 10px;font-size:12px;line-height:1.2}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-light)}.btn-secondary{color:var(--text);background:#fff;border:1px solid #dcdfe6}.btn-secondary:hover{border-color:var(--primary);color:var(--primary)}.btn-danger{background:var(--danger);color:#fff}.btn-ghost{color:var(--text-muted)}.btn:disabled{opacity:.5;cursor:not-allowed}.tag{border-radius:3px;padding:2px 8px;font-size:12px;display:inline-block}.tag-green{color:#2e7d32;background:#e8f5e9}.tag-blue{color:#1565c0;background:#e3f2fd}.tag-orange{color:#ef6c00;background:#fff3e0}.tag-gray{color:#64748b;background:#f1f5f9}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;background:#fafafa;padding:8px 10px;font-weight:500;position:relative}.data-table td{border-bottom:1px solid var(--border);padding:8px 10px}.data-table tr:hover td{background:#f5f7fa}.list-table-topbar{border-bottom:1px solid var(--border);background:#fafbfc;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.list-table-topbar-left,.list-table-topbar-right{align-items:center;gap:8px;display:flex}.list-table-topbar-right{margin-left:auto}.compact-route-tabs{align-items:center;gap:4px;margin-right:8px;display:flex}.tab-btn-sm{padding:4px 10px;font-size:12px}.sortable-th span{cursor:pointer}.sortable-th span:hover{color:var(--primary)}.search-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.search-input{border:1px solid #dcdfe6;border-radius:4px;min-width:130px;padding:7px 10px;font-size:13px}.full-width{width:100%}textarea.full-width{resize:vertical;border:1px solid #dcdfe6;border-radius:4px;min-height:72px;padding:8px 10px}.cell-input{background:#fff;border:1px solid #dcdfe6;border-radius:2px;width:100%;min-width:56px;height:22px;padding:0 4px;font-size:12px}.cell-input:focus{border-color:var(--primary);outline:none}.link-btn{color:var(--primary);font-size:inherit}.link-btn:hover{text-decoration:underline}.link-btn.danger{color:var(--danger)}.status-tabs,.detail-tabs{flex-wrap:wrap;gap:4px;margin-bottom:12px;display:flex}.tab-btn{color:var(--text-muted);border:1px solid #0000;border-radius:4px;padding:7px 14px;font-size:13px}.tab-btn.active{background:var(--primary);color:#fff}.tab-btn:hover:not(.active){color:var(--primary);background:#ecf5ff}.table-wrap{overflow-x:auto}.table-footer{color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.pagination{gap:4px;display:flex}.page-btn{border:1px solid var(--border);border-radius:4px;min-width:32px;height:32px;padding:0 8px;font-size:13px}.page-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.page-btn:disabled{opacity:.4;cursor:not-allowed}.empty-cell{text-align:center;color:var(--text-muted);padding:40px!important}.batch-bar{background:#ecf5ff;border-radius:4px;align-items:center;gap:12px;margin-bottom:12px;padding:8px 12px;font-size:13px;display:flex}.scheduling-body{flex:1;gap:8px;min-height:0;display:flex;overflow:hidden}.scheduling-sidebar{border:1px solid var(--border);background:#fff;border-radius:2px;flex-direction:column;flex-shrink:0;width:160px;padding:6px 0;display:flex;overflow-y:auto}.scheduling-sidebar-nav{flex-direction:column;display:flex}.scheduling-sidebar-item{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;border-left:3px solid #0000;padding:10px 12px;font-size:13px;line-height:1.4;display:block}.scheduling-sidebar-item:hover{color:var(--primary);background:#f5f7fa}.scheduling-sidebar-item.active{border-left-color:var(--primary);color:var(--primary);background:#e6f4ff;font-weight:500}.scheduling-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.scheduling-action-bar{flex-wrap:wrap;gap:8px;padding:0 0 12px;display:flex}.scheduling-form{gap:12px;display:grid}.scheduling-field{gap:6px;font-size:13px;display:grid}.scheduling-field select,.scheduling-field input{border:1px solid var(--border);background:#fff;border-radius:4px;padding:8px 10px}.scheduling-modal-table-wrap{max-height:420px;overflow:auto}.form-grid{grid-template-columns:1fr 1fr 1fr;gap:14px 16px;display:grid}.form-group label{color:var(--text-muted);margin-bottom:4px;font-size:12px;display:block}.doc-toolbar{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.doc-page-compact{flex-direction:column;height:100%;min-height:0;font-size:12px;line-height:1.3;display:flex;overflow:hidden}.doc-page-head{border:1px solid var(--border);background:#fff;border-radius:2px;flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:6px;margin-bottom:4px;padding:4px 8px;display:flex}.doc-page-head-main{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.doc-page-title{white-space:nowrap;margin:0;font-size:13px;font-weight:600}.doc-meta-sep{color:#dcdfe6;-webkit-user-select:none;user-select:none}.doc-meta-inline{color:var(--text-muted);white-space:nowrap;font-size:11px}.doc-panel{border:1px solid var(--border);background:#fff;border-radius:2px;overflow:hidden}.doc-panel-main{flex:1;min-height:0;overflow:auto}.doc-log-footer{border:1px solid var(--border);background:#fff;border-radius:2px;flex-shrink:0;margin-top:4px;overflow:hidden}.doc-log-toggle{text-align:left;width:100%;color:inherit;cursor:pointer;background:#fafbfc;border:none;align-items:center;gap:4px;padding:6px 8px;font-size:12px;font-weight:600;display:flex}.doc-log-toggle:hover{background:#f5f7fa}.doc-log-body{border-top:1px solid #eef1f5;max-height:180px;overflow:auto}.doc-log-body .compact-table{margin:0}.doc-log-body .compact-table th{z-index:1;position:sticky;top:0}.doc-section{border-top:1px solid #eef1f5;padding:4px 8px 6px}.doc-section:first-child{border-top:none}.doc-section-head{min-height:24px;color:var(--text);justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;font-size:12px;font-weight:600;display:flex}.doc-section-toggle{text-align:left;width:100%;color:inherit;background:#fafbfc;border-bottom:1px solid #0000;align-items:center;gap:4px;margin:-4px -8px 0;padding:4px 8px;font-size:12px;font-weight:600;display:flex}.doc-section-toggle:hover{background:#f5f7fa}.doc-section-collapsible .doc-section-toggle{margin-bottom:0}.doc-section-collapsible .compact-table{margin-top:4px}.doc-section-meta{color:var(--text-muted);margin-left:4px;font-size:11px;font-style:normal;font-weight:400}.doc-section-actions{flex-wrap:wrap;gap:4px;display:flex}.doc-form-grid{grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;gap:2px 8px;display:grid}.doc-field{grid-template-columns:72px minmax(0,1fr);align-items:center;gap:4px;min-height:24px;display:grid}.doc-field-wide{grid-column:span 2}.doc-field-block{grid-column:1/-1;grid-template-columns:72px minmax(0,1fr);align-items:start;min-height:auto}.doc-field-block .doc-field-label{padding-top:3px}.doc-field-label{color:var(--text-muted);text-align:right;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.doc-field-control{min-width:0}.doc-input,.doc-textarea,.doc-field-control select{width:100%;color:var(--text);background:#fff;border:1px solid #dcdfe6;border-radius:2px;font-size:12px}.doc-input,.doc-field-control select{height:24px;padding:0 5px;line-height:22px}.doc-textarea{resize:vertical;min-height:36px;padding:3px 5px;line-height:1.35}.doc-input:focus,.doc-textarea:focus,.doc-field-control select:focus{border-color:var(--primary);outline:none}.doc-readonly{text-overflow:ellipsis;white-space:nowrap;min-height:24px;padding:0 2px;line-height:24px;display:block;overflow:hidden}.compact-table{font-size:12px}.compact-table th{white-space:nowrap;background:#f5f7fa;border-bottom:1px solid #ebeef5;padding:3px 4px;font-size:11px;font-weight:500}.compact-table td{vertical-align:middle;border-bottom:1px solid #ebeef5;padding:1px 3px}.compact-table tr:hover td{background:#fafcff}.detail-table .col-index{text-align:center;width:28px;color:var(--text-muted);font-size:11px}.detail-table .col-actions{text-align:center;width:68px}.cell-text{text-overflow:ellipsis;white-space:nowrap;padding:0 2px;line-height:22px;display:block;overflow:hidden}.detail-line-wrap{margin-top:0}.line-actions{justify-content:center;gap:1px;display:inline-flex}.icon-action{width:20px;height:20px;color:var(--text-muted);background:#fff;border:1px solid #dcdfe6;border-radius:2px;justify-content:center;align-items:center;display:inline-flex}.icon-action:hover{border-color:var(--primary);color:var(--primary)}.icon-action.danger:hover{border-color:var(--danger);color:var(--danger)}.icon-action:disabled{opacity:.35;cursor:not-allowed}.req-mark{color:var(--danger);margin-right:2px}.quote-settings-page{font-size:12px}.quote-settings-panel .doc-section{padding:6px 8px 8px}.quote-section-tag{color:var(--text);background:#f5f7fa;border:1px solid #e4e7ed;border-radius:2px;margin-bottom:6px;padding:4px 12px;font-size:12px;font-weight:600;display:inline-block}.quote-ref-table th,.quote-ref-table td{background:#fafbfc}.quote-formula-note{color:var(--text-muted);background:#f5f7fa;padding:6px 10px;font-size:11px;line-height:1.6}.quote-formula-note p+p{margin-top:2px}.quote-settings-table .col-index{width:52px}.line-index-cell{flex-direction:column;align-items:center;gap:2px;display:flex}.line-index-cell .line-actions{flex-direction:column}.cell-formula-btn{text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%;padding:0 4px;line-height:22px;overflow:hidden}.quote-global-params-section{padding-top:4px}.quote-global-params-block{border:1px solid var(--border);background:#fafbfc;border-radius:4px;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 16px;padding:10px 12px;display:grid}.quote-global-param-field{flex-direction:column;gap:4px;min-width:0;display:flex}.quote-global-param-label{color:var(--text-muted);white-space:nowrap;font-size:12px;line-height:1.4}.quote-global-param-field .doc-input{background:#fff;width:100%;height:28px}.quote-settings-form{flex-direction:column;gap:10px;display:flex}.quote-settings-row{grid-template-columns:110px minmax(0,1fr);align-items:center;gap:8px;font-size:13px;display:grid}.quote-settings-row span{text-align:right;color:var(--text-muted)}.quote-formula-modal{flex-direction:column;gap:12px;display:flex}.formula-editor{grid-template-columns:72px minmax(0,1fr);align-items:center;gap:8px;display:grid}.formula-editor-label{color:var(--text);text-align:right;white-space:nowrap;font-size:13px}.formula-input{width:100%;height:32px;color:var(--text);background:#fff;border:1px solid #dcdfe6;border-radius:3px;padding:0 10px;font-family:Menlo,Monaco,Consolas,monospace;font-size:14px}.formula-input:focus{border-color:var(--primary);outline:none}.formula-token-panel{border:1px solid var(--border);background:#fafbfc;border-radius:4px;flex-direction:column;gap:10px;padding:10px 12px;display:flex}.formula-token-group{grid-template-columns:40px minmax(0,1fr);align-items:center;gap:8px;display:grid}.formula-token-group-label{color:var(--text-muted);text-align:right;font-size:12px}.formula-token-list{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.formula-token-btn{border-radius:4px;min-width:36px;height:30px;padding:0 10px;font-size:13px;font-weight:500}.formula-token-btn--var{color:#1565c0;background:#ecf5ff;border:1px solid #b3d8ff}.formula-token-btn--var:hover{border-color:var(--primary);background:#d9ecff}.formula-token-btn--op{min-width:30px;color:var(--text);background:#fff;border:1px solid #dcdfe6;font-family:Menlo,Monaco,Consolas,monospace}.formula-token-btn--op:hover{border-color:var(--primary);color:var(--primary)}@media (width<=900px){.quote-global-params-block{grid-template-columns:repeat(2,minmax(0,1fr))}.formula-editor{grid-template-columns:1fr}.formula-editor-label{text-align:left}.formula-token-group{grid-template-columns:1fr}.formula-token-group-label{text-align:left}}.tag{border-radius:2px;padding:1px 6px;font-size:11px;line-height:1.4;display:inline-block}.timeline{flex-direction:column;gap:12px;display:flex}.timeline-item{border-left:2px solid var(--primary);padding-left:12px}.timeline-time{color:var(--text-muted);font-size:12px}.timeline-content{margin-top:4px;font-size:13px}.drawer-overlay{z-index:200;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-panel{background:#fff;border-radius:4px;flex-direction:column;width:560px;max-width:94vw;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 8px 32px #00000026}.drawer-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.drawer-header h3{font-size:15px;font-weight:600}.modal-subtitle{color:var(--text-muted);margin-top:4px;font-size:12px}.drawer-body{flex:1;padding:16px;overflow-y:auto}.drawer-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.confirm-message{font-size:14px;line-height:1.6}.header-icon-btn{border-radius:4px;padding:6px}.column-config-list{flex-direction:column;gap:8px;max-height:360px;display:flex;overflow-y:auto}.column-config-item{border:1px solid var(--border);background:#fafafa;border-radius:4px;align-items:center;gap:8px;padding:8px 10px;display:flex}.column-config-item.dragging{opacity:.6;border-color:var(--primary)}.drag-handle{color:var(--text-muted)}.checkbox-label{white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:flex}.col-name-input{flex:1;min-width:100px}.col-width-input{width:72px}.icon-toggle{border:1px solid var(--border);border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.icon-toggle.active{border-color:var(--primary);color:var(--primary);background:#ecf5ff}.move-btns{gap:4px;display:flex}.filter-config-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.filter-config-item{border:1px solid var(--border);border-radius:4px;align-items:center;gap:8px;padding:8px;font-size:13px;display:flex}.config-section{margin-bottom:12px}.config-section-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.config-label{color:var(--text-muted);margin-bottom:4px;font-size:12px;display:block}.config-hint{color:var(--text-muted);margin-top:10px;font-size:12px}.toast-container{z-index:300;flex-direction:column;gap:8px;display:flex;position:fixed;top:20px;right:20px}.toast{border-radius:4px;padding:10px 16px;font-size:13px;box-shadow:0 4px 12px #0000001f}.toast-success{color:#2e7d32;background:#e8f5e9}.toast-warning{color:#ef6c00;background:#fff3e0}.toast-info{color:#1565c0;background:#e3f2fd}.login-page{min-height:100vh;display:flex}.login-left{background:linear-gradient(135deg, var(--primary-dark), var(--primary));color:#fff;flex-direction:column;flex:1;justify-content:center;padding:60px;display:flex}.login-left h1{margin-bottom:16px;font-size:28px}.login-desc-block{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.login-right{background:#fff;justify-content:center;align-items:center;width:420px;display:flex}.login-form{width:300px}.login-form h2{margin-bottom:4px;font-size:22px}.login-form .subtitle{color:var(--text-muted);margin-bottom:24px;font-size:13px}.form-group{margin-bottom:16px}.form-group input{border:1px solid #dcdfe6;border-radius:4px;width:100%;padding:9px 12px;font-size:14px}.login-submit{background:var(--primary);color:#fff;border-radius:4px;width:100%;padding:11px;font-size:14px;font-weight:600}.permission-matrix-page{min-height:0}.permission-matrix-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.permission-matrix-desc{color:var(--text-muted);margin-top:4px;font-size:12px}.permission-matrix-actions{flex-shrink:0;gap:8px;display:flex}.role-mgmt-page{background:var(--surface);height:100%;min-height:0;display:flex}.role-mgmt-sidebar{border-right:1px solid var(--border);background:#fafbfc;flex-direction:column;flex-shrink:0;width:200px;display:flex}.role-mgmt-platform-tabs{border-bottom:1px solid var(--border);flex-shrink:0;display:flex}.role-mgmt-platform-btn{text-align:center;color:var(--text-muted);border-bottom:2px solid #0000;flex:1;padding:10px 8px;font-size:12px}.role-mgmt-platform-btn.active{color:var(--primary);border-bottom-color:var(--primary);background:var(--surface);font-weight:600}.role-mgmt-sidebar-head{justify-content:space-between;align-items:center;padding:12px 12px 8px;font-size:13px;font-weight:600;display:flex}.role-mgmt-add-btn{width:24px;height:24px;color:var(--primary);border-radius:4px;justify-content:center;align-items:center;display:flex}.role-mgmt-add-btn:hover{background:#169bd51a}.role-mgmt-search{border:1px solid var(--border);background:var(--surface);border-radius:4px;align-items:center;gap:6px;margin:0 10px 8px;padding:6px 8px;display:flex}.role-mgmt-search input{background:0 0;border:none;outline:none;flex:1;font-size:12px}.role-mgmt-role-list{flex:1;min-height:0;padding:0 6px 8px;list-style:none;overflow-y:auto}.role-mgmt-role-item{border-radius:4px;align-items:center;margin-bottom:2px;display:flex}.role-mgmt-role-item.active{background:#169bd51f}.role-mgmt-role-name{text-align:left;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;padding:8px 8px 8px 10px;font-size:13px;overflow:hidden}.role-mgmt-role-item.active .role-mgmt-role-name{color:var(--primary);font-weight:600}.role-mgmt-role-more{color:var(--text-muted);opacity:0;border-radius:4px;padding:6px}.role-mgmt-role-item:hover .role-mgmt-role-more,.role-mgmt-role-item.active .role-mgmt-role-more{opacity:1}.role-mgmt-role-more:hover{background:#0000000f}.role-mgmt-role-menu-wrap{flex-shrink:0;position:relative}.role-mgmt-context-menu{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:4px;min-width:88px;padding:4px 0;position:absolute;top:100%;right:0;box-shadow:0 4px 12px #0000001a}.role-mgmt-context-menu button{text-align:left;width:100%;padding:8px 14px;font-size:12px;display:block}.role-mgmt-context-menu button:hover{background:#f5f7fa}.role-mgmt-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.role-mgmt-main-head{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.role-mgmt-table-scroll{flex:1;min-height:0;padding:0;overflow:auto}.role-mgmt-table{width:100%}.role-mgmt-table .perm-col-module{text-align:center;vertical-align:middle;min-width:56px}.role-mgmt-table .perm-col-menu{text-align:left;min-width:120px}.role-mgmt-table .perm-module-cell{background:#fafbfc;font-weight:600}.role-mgmt-table thead th{z-index:2;background:#f5f7fa;position:sticky;top:0}.role-mgmt-rename-form{padding:8px 0}.role-mgmt-rename-actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.perm-amount-col{color:var(--text-muted);min-width:48px;font-size:11px}.perm-amount-col em{font-size:10px;font-style:normal}.perm-amount-col input:disabled{opacity:.35;cursor:not-allowed}.permission-role-bar{border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;padding:8px 0;display:flex}.permission-role-label,.permission-module-label{color:var(--text-muted);flex-shrink:0;margin-right:4px;font-size:12px}.permission-role-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:4px;padding:4px 14px;font-size:12px}.permission-role-btn:hover{border-color:var(--primary);color:var(--primary)}.permission-role-btn.active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.permission-channel-tabs,.permission-module-tabs{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;padding:8px 0;display:flex}.permission-module-tabs{border-top:1px solid var(--border);margin-top:8px}.permission-matrix-scroll{background:var(--surface);border:1px solid var(--border);border-radius:4px;flex:1;min-height:0;overflow:auto}.permission-matrix-table{border-collapse:separate;border-spacing:0;width:100%;min-width:max-content}.permission-matrix-table th,.permission-matrix-table td{white-space:nowrap;border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:8px 10px;font-size:12px}.permission-matrix-table thead th{z-index:2;text-align:center;background:#f5f7fa;position:sticky;top:0}.permission-matrix-table-role .perm-col-menu{text-align:left;background:var(--surface);z-index:3;min-width:140px;position:sticky;left:0}.permission-matrix-table-role thead .perm-col-menu{z-index:4;background:#f5f7fa}.perm-action-head{min-width:52px}.perm-action-head-label,.perm-menu-label{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;display:inline-flex}.perm-check-cell{text-align:center}.perm-check-cell input,.perm-action-head-label input,.perm-menu-label input{cursor:pointer;width:14px;height:14px}@media (width<=1400px){.doc-form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=1200px){.doc-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.doc-field-wide{grid-column:span 1}}@media (width<=900px){.menu-body{flex-direction:column}.assistant-config-grid{grid-template-columns:1fr}.kb-mgmt-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.kb-doc-form-grid,.kb-doc-readonly-grid{grid-template-columns:1fr}.kb-doc-field-wide{grid-column:span 1}.menu-body.is-sidebar-collapsed .menu-sidebar{width:100%;max-height:0;overflow:hidden}.menu-sidebar{width:100%;max-height:200px}.sidebar-collapse-toggle{border-left:1px solid #ffffff1f;border-radius:0;width:100%;height:32px;position:static;transform:none}.menu-body.is-sidebar-collapsed .sidebar-collapse-toggle{left:auto}.form-grid{grid-template-columns:1fr 1fr}.doc-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
