*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;background:linear-gradient(180deg,#eef3f8 0%,#f7f9fc 100%);color:#333;line-height:1.8;font-size:14px}
.wrap{max-width:1480px;margin:0 auto;padding:20px}
.app-shell{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:start}
.sidebar{position:sticky;top:20px;background:linear-gradient(180deg,#10243f 0%,#183b63 52%,#1d4c78 100%);color:#fff;border-radius:24px;padding:22px 18px;box-shadow:0 18px 40px rgba(14,36,61,.22)}
.sidebar-brand{padding:6px 6px 18px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:18px}
.sidebar-brand h1{font-size:20px;line-height:1.3;margin-bottom:6px}
.sidebar-brand p{font-size:12px;opacity:.72;line-height:1.7}
.sidebar-group-title{font-size:11px;letter-spacing:.08em;text-transform:uppercase;opacity:.55;margin:18px 6px 10px}
.topbar{background:linear-gradient(135deg,#142944 0%,#1b446b 56%,#2a6e9f 100%);color:#fff;padding:32px 28px;border-radius:22px;margin-bottom:20px;box-shadow:0 16px 36px rgba(20,41,68,.14)}
.topbar h1{font-size:28px;margin-bottom:8px}
.topbar .subtitle{opacity:.78;font-size:14px}
.pills{display:grid;gap:10px;margin-bottom:8px}
.pill{background:rgba(255,255,255,.08);border-radius:16px;padding:14px 16px;border:1px solid rgba(255,255,255,.12);display:flex;align-items:center;gap:12px;backdrop-filter:blur(8px)}
.pill.active{border-color:#4169e1;box-shadow:0 2px 8px rgba(65,105,225,.15)}
.pill.done{border-color:rgba(126,211,33,.55);background:rgba(126,211,33,.16)}
.pill-num{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.12);color:#d0dbeb;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}
.pill.active .pill-num{background:#4169e1;color:#fff}
.pill.done .pill-num{background:#52c41a;color:#fff}
.pill strong,.pill span{color:#fff}
.pill span{opacity:.7}
.main-panel{min-width:0;overflow:hidden}
.nav-list{display:flex;flex-direction:column;gap:8px}
.nav-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:none;border-radius:14px;background:transparent;color:#dbe7f5;cursor:pointer;font:inherit;text-align:left;transition:all .2s}
.nav-btn:hover{background:rgba(255,255,255,.08);color:#fff}
.nav-btn.active{background:#fff;color:#17324f;box-shadow:0 8px 20px rgba(0,0,0,.16)}
.nav-btn-main{display:flex;align-items:center;gap:10px;min-width:0}
.nav-icon{width:34px;height:34px;border-radius:12px;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.nav-btn.active .nav-icon{background:#edf4ff}
.nav-label{font-weight:700;font-size:14px;line-height:1.3}
.nav-desc{font-size:11px;opacity:.7;line-height:1.4}
.card{background:#fff;border-radius:14px;padding:28px;margin-bottom:20px;border:1px solid #e8e8e8}
.card-title{font-size:17px;font-weight:700;margin-bottom:20px;display:flex;align-items:center;gap:8px;padding-bottom:14px;border-bottom:2px solid #f0f0f0}
.accordion-item{border:1px solid #e8e8e8;border-radius:10px;margin-bottom:10px;overflow:hidden}
.accordion-header{padding:14px 18px;background:#fafafa;cursor:pointer;display:flex;align-items:center;justify-content:space-between;font-weight:600;font-size:14px;user-select:none}
.accordion-header:hover{background:#f0f5ff}
.accordion-header.active{background:#e8f0fe;color:#1a73e8}
.accordion-icon{font-size:12px;transition:transform .2s;color:#999}
.accordion-header.active .accordion-icon{transform:rotate(180deg);color:#1a73e8}
.accordion-body{max-height:0;overflow:hidden;transition:max-height .3s,padding .3s}
.accordion-body.open{max-height:2000px;padding:18px}
.form-group{margin-bottom:18px}
.form-group label{display:block;font-weight:600;font-size:13px;margin-bottom:6px;color:#444}
.form-group input,.form-group textarea,.form-group select{width:100%;padding:10px 14px;border:1.5px solid #d9d9d9;border-radius:8px;font-size:14px;transition:border-color .2s;font-family:inherit;background:#fff}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#4169e1}
.hint{font-size:12px;color:#888;margin-top:5px;line-height:1.6}
.btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit}
.btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.1)}
.btn:active{transform:translateY(0)}
.btn-blue{background:#4169e1;color:#fff}
.btn-green{background:#52c41a;color:#fff}
.btn-orange{background:#fa8c16;color:#fff}
.btn-red{background:#ff4d4f;color:#fff}
.btn-gray{background:#f5f5f5;color:#666;border:1px solid #d9d9d9}
.btn-sm{padding:6px 14px;font-size:12px}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}
.switch-control{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none}
.switch-control input{position:absolute;opacity:0;pointer-events:none}
.switch-track{position:relative;width:42px;height:24px;border-radius:999px;background:#d9d9d9;transition:background .2s;box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)}
.switch-track::after{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.25);transition:transform .2s}
.switch-control input:checked + .switch-track{background:#52c41a}
.switch-control input:checked + .switch-track::after{transform:translateX(18px)}
.switch-state{font-size:12px;font-weight:600;color:#666;min-width:72px}
.status-box{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600}
.status-wait{background:#fff7e6;color:#d48806;border:1px solid #ffd591}
.status-ok{background:#f6ffed;color:#389e0d;border:1px solid #b7eb8f}
.status-bad{background:#fff1f0;color:#cf1322;border:1px solid #ffa39e}
.result{background:#f8f9fa;border:1px solid #e8e8e8;border-radius:8px;padding:14px;margin-top:12px;font-family:Consolas,Monaco,monospace;font-size:12px;white-space:pre-wrap;word-break:break-all;max-height:350px;overflow:auto;line-height:1.6}
.result.good{background:#f6ffed;border-color:#b7eb8f}
.result.bad{background:#fff1f0;border-color:#ffa39e}
.api-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:768px){.api-grid{grid-template-columns:1fr}}
.api-card{border:1.5px solid #e8e8e8;border-radius:10px;padding:14px;transition:all .2s;cursor:pointer}
.api-card:hover{border-color:#4169e1;box-shadow:0 2px 8px rgba(0,0,0,.06);transform:translateY(-1px)}
.api-card .api-name{font-weight:700;font-size:13px;margin-bottom:4px}
.api-card .api-desc{font-size:12px;color:#888}
.api-endpoint{font-family:Consolas,monospace;font-size:11px;color:#666;background:#f5f5f5;padding:4px 8px;border-radius:4px;margin-top:8px;display:inline-block}
.tabs{display:flex;gap:4px;background:#f5f5f5;padding:4px;border-radius:10px;margin-bottom:16px}
.tab{flex:1;padding:10px;border:none;background:transparent;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;color:#888;transition:all .2s;font-family:inherit;white-space:nowrap}
.tab.active{background:#fff;color:#333;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.tab-panel{display:none}
.tab-panel.active{display:block}
.sub-tab-panel{display:none}
.sub-tab-panel.active{display:block}
.log-entry{padding:8px 12px;border-radius:6px;margin-bottom:5px;font-size:12px}
.notebox{background:#e6f7ff;border-left:4px solid #1890ff;padding:14px 18px;border-radius:0 8px 8px 0;margin:14px 0;font-size:13px}
.notebox.warn{background:#fff7e6;border-left-color:#faad14}
.notebox.success{background:#f6ffed;border-left-color:#52c41a}
.font-mono{font-family:Consolas,Monaco,monospace;font-size:12px;background:#f5f5f5;padding:2px 6px;border-radius:4px}
.hidden{display:none!important}
.mt-2{margin-top:16px}
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}
@media(max-width:1100px){
  .app-shell{grid-template-columns:1fr}
  .sidebar{position:static}
}
@media(max-width:768px){
  .wrap{padding:14px}
  .topbar{padding:24px 20px}
  .topbar h1{font-size:22px}
  .card{padding:18px}
}

/* ===== 端口选择器样式 ===== */
.port-selector{display:flex;gap:8px;margin-bottom:16px;padding:12px 16px;background:#f8f9fa;border-radius:10px;align-items:center;flex-wrap:wrap;border:1px solid #e8e8e8}
.port-selector-label{font-size:13px;font-weight:700;color:#333;margin-right:6px;white-space:nowrap}
.port-pill{padding:6px 16px;border-radius:20px;border:1.5px solid #d9d9d9;background:#fff;cursor:pointer;font-size:12px;font-weight:600;color:#666;transition:all .2s;font-family:inherit;display:inline-flex;align-items:center;gap:5px}
.port-pill:hover{border-color:#4169e1;color:#4169e1}
.port-pill.active{border-color:#4169e1;background:#4169e1;color:#fff;box-shadow:0 2px 6px rgba(65,105,225,.25)}
.port-pill .port-badge{font-size:10px;margin-left:3px;padding:1px 6px;border-radius:8px;background:rgba(0,0,0,.08);font-weight:700}
.port-pill.active .port-badge{background:rgba(255,255,255,.3);color:#fff}
.port-pill.merge-btn{border-color:#fa8c16;color:#fa8c16}
.port-pill.merge-btn:hover{background:#fff7e6}
.port-pill.merge-btn.active{background:#fa8c16;color:#fff;border-color:#fa8c16}
.port-config-status{font-size:11px;color:#888;margin-left:auto;font-weight:600}
.port-config-status .dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:3px}
.port-config-status .dot.ok{background:#52c41a}
.port-config-status .dot.miss{background:#d9d9d9}

/* ===== 可视化展示样式 ===== */
.viz-container{margin-top:16px}
.viz-table{width:100%;border-collapse:collapse;font-size:13px}
.viz-table th{background:#f5f7fa;padding:10px 12px;text-align:left;font-weight:600;color:#555;border-bottom:2px solid #e8e8e8;position:sticky;top:0;z-index:2;cursor:pointer;user-select:none;white-space:nowrap}
.viz-table th:hover{background:#e8ecf1}
.viz-table th .sort-icon{margin-left:4px;color:#999;font-size:10px}
.viz-table td{padding:10px 12px;border-bottom:1px solid #f0f0f0;color:#444}
.viz-table tr:hover td{background:#f8fbff}
.viz-table-wrap{max-height:450px;overflow:auto;border:1px solid #e8e8e8;border-radius:8px}
.viz-pagination{display:flex;gap:6px;align-items:center;justify-content:center;margin-top:12px;font-size:13px}
.viz-pagination button{padding:4px 10px;border:1px solid #d9d9d9;background:#fff;border-radius:6px;cursor:pointer;font-size:12px;font-family:inherit}
.viz-pagination button:hover{background:#f0f5ff;border-color:#4169e1}
.viz-pagination button:disabled{opacity:.4;cursor:not-allowed}
.viz-pagination .page-info{color:#888;font-size:12px}
.business-table-page-size{display:inline-flex;align-items:center;gap:6px;color:#667085;font-size:12px;font-weight:700;white-space:nowrap}
.business-table-page-size select{height:34px;padding:0 28px 0 10px;border:1px solid #d9e3f0;border-radius:8px;background:#fff;color:#344054;font:inherit;cursor:pointer;outline:none}
.business-table-page-size select:hover,.business-table-page-size select:focus{border-color:#2f6bff;box-shadow:0 0 0 2px rgba(47,107,255,.08)}
.viz-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600}
.badge-green{background:#f6ffed;color:#389e0d;border:1px solid #b7eb8f}
.badge-red{background:#fff1f0;color:#cf1322;border:1px solid #ffa39e}
.badge-blue{background:#e6f7ff;color:#096dd9;border:1px solid #91d5ff}
.badge-orange{background:#fff7e6;color:#d48806;border:1px solid #ffd591}
.badge-gray{background:#f5f5f5;color:#666;border:1px solid #d9d9d9}
.badge-localad{background:#f6ffed;color:#389e0d;border:1px solid #b7eb8f}
.viz-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:12px}
.viz-card-item{background:#fafbfc;border:1px solid #e8e8e8;border-radius:10px;padding:16px}
.viz-card-item .card-key{font-size:12px;color:#888;margin-bottom:2px}
.viz-card-item .card-val{font-size:14px;font-weight:600;color:#333;word-break:break-all}
.viz-card-item .card-val.money{color:#cf1322;font-family:Consolas,monospace}
.viz-card-item .card-val.number{color:#096dd9;font-family:Consolas,monospace}
.viz-empty{text-align:center;padding:40px;color:#bbb;font-size:14px}
.risk-disposal-time{display:inline-flex;flex-direction:column;gap:2px;white-space:nowrap;line-height:1.25}
.risk-disposal-time .time-clock{font-size:12px;color:#667085}
.viz-count{color:#888;font-size:12px;margin-bottom:8px}
.audit-workbench-table{min-width:1900px}
.audit-workbench-table th{overflow:visible}
.audit-filter-trigger{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;margin-left:6px;vertical-align:middle;border:1px solid #cfcfcf;border-radius:5px;background:#fff;color:#666;cursor:pointer;font-size:12px;box-shadow:0 1px 1px rgba(0,0,0,.04)}
.audit-filter-trigger:hover{border-color:#7aa7ff;color:#1677ff;background:#f8fbff}
.audit-filter-trigger.active{background:#e6f4ff;border-color:#1677ff;color:#1677ff}
.audit-filter-panel{position:fixed!important;z-index:2147483647!important;width:330px;box-sizing:border-box;padding:0;background:#fff;border:1px solid #c8c8c8;border-radius:4px;box-shadow:0 12px 34px rgba(0,0,0,.22);font-weight:400;color:#222;display:block!important;visibility:visible!important;opacity:1!important;isolation:isolate;font-size:13px}
.audit-filter-title{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #e6e6e6;background:#f7f7f7;font-weight:700;font-size:13px}
.audit-filter-title button{border:none;background:transparent;cursor:pointer;color:#777;font-size:17px;line-height:1}
.audit-filter-sort{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px 12px;border-bottom:1px solid #f0f0f0}
.audit-filter-sort button{padding:7px 8px;border:1px solid #d9d9d9;border-radius:3px;background:#fff;cursor:pointer;font-size:12px;text-align:left}
.audit-filter-sort button:hover{background:#f3f8ff;border-color:#8bbcff}
.audit-filter-search-wrap{padding:10px 12px 6px}
.audit-filter-search{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid #bfbfbf;border-radius:3px;font-size:13px}
.audit-filter-search:focus{outline:none;border-color:#1677ff;box-shadow:0 0 0 2px rgba(22,119,255,.12)}
.audit-filter-select-row{display:flex;gap:8px;align-items:center;padding:6px 12px 8px;color:#555;font-size:12px}
.audit-filter-select-row button{padding:2px 4px;border:none;background:transparent;color:#1677ff;cursor:pointer;font-size:12px}
.audit-filter-options{max-height:260px;overflow:auto;border-top:1px solid #f0f0f0;border-bottom:1px solid #f0f0f0;padding:6px 0;background:#fff}
.audit-filter-option{display:flex;align-items:center;gap:8px;padding:5px 12px;font-size:13px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.audit-filter-option input{width:14px;height:14px;margin:0;flex-shrink:0}
.audit-filter-option span{overflow:hidden;text-overflow:ellipsis}
.audit-filter-option:hover{background:#edf4ff}
.audit-filter-footer{display:flex;justify-content:flex-end;gap:8px;padding:10px 12px;background:#fafafa;border-top:1px solid #e6e6e6}
.audit-filter-footer button{min-width:72px;padding:6px 12px;border:1px solid #d9d9d9;border-radius:3px;background:#fff;cursor:pointer;font-size:13px}
.audit-filter-footer .primary{background:#1677ff;border-color:#1677ff;color:#fff}
.audit-filter-footer button:hover{filter:brightness(.98);border-color:#1677ff}
.audit-time-stats{display:grid;grid-template-columns:1fr;gap:8px;margin:12px 0}
/* 图表样式 */
.viz-chart{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.chart-row{display:flex;align-items:center;gap:10px;font-size:12px}
.chart-label{width:80px;text-align:right;color:#888;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chart-bar{flex:1;height:28px;background:#f0f5ff;border-radius:6px;overflow:hidden;position:relative}
.chart-bar-inner{height:100%;background:linear-gradient(90deg,#4169e1,#6495ed);border-radius:6px;transition:width .4s ease;display:flex;align-items:center;padding-left:8px;color:#fff;font-size:11px;font-weight:600;min-width:30px}
.chart-bar-inner.localad{background:linear-gradient(90deg,#52c41a,#95de64)}
.chart-bar-inner.qianchuan{background:linear-gradient(90deg,#fa8c16,#ffc069)}
.chart-val{width:70px;text-align:right;color:#555;font-family:Consolas,monospace;font-size:12px;flex-shrink:0}
.viz-summary{display:flex;gap:16px;flex-wrap:wrap;margin:16px 0}
.summary-box{flex:1;min-width:0;background:linear-gradient(135deg,#f5f7fa,#fff);border:1px solid #e8e8e8;border-radius:10px;padding:12px 8px;text-align:center}
.summary-box .sum-label{font-size:12px;color:#000;margin-bottom:2px;font-weight:500}
.summary-box .sum-pct{font-size:13px;color:#000;margin-top:2px;font-family:Consolas,monospace}
.summary-box .sum-value{font-size:18px;font-weight:700;color:#333;font-family:Consolas,monospace;white-space:nowrap;word-break:normal;overflow:visible;line-height:1.08}
.summary-box .sum-value.sum-cost{color:#cf1322}
.summary-box .sum-value.sum-show{color:#4169e1}
.summary-box .sum-value.sum-click{color:#52c41a}
.port-source-header{display:flex;align-items:center;gap:8px;margin:16px 0 10px;padding:8px 12px;background:#f0f5ff;border-radius:8px;border-left:3px solid #4169e1;font-size:13px;font-weight:600}
.port-source-header.localad{background:#f6ffed;border-left-color:#52c41a}
.port-source-header.qianchuan{background:#fff7e6;border-left-color:#fa8c16}
/* ===== v3.4.2 Excel式表格筛选样式 ===== */
.filter-row td{background:#fafbfc;padding:4px 6px;border-bottom:2px solid #e8e8e8;vertical-align:top}
.filter-cell{position:relative}
.filter-mode{display:block;width:100%;padding:2px 4px;border:1px solid #e8e8e8;border-radius:4px;font-size:10px;color:#888;background:#fff;margin-bottom:2px;cursor:pointer}
.filter-input{width:100%;padding:4px 6px;border:1.5px solid #d9d9d9;border-radius:6px;font-size:12px;font-family:inherit;background:#fff;transition:border-color .2s}
.filter-input:focus{outline:none;border-color:#4169e1}
.filter-select{width:100%;padding:4px 6px;border:1.5px solid #d9d9d9;border-radius:6px;font-size:12px;font-family:inherit;background:#fff;cursor:pointer;transition:border-color .2s}
.filter-select:focus{outline:none;border-color:#4169e1}
.filter-multi{display:block;max-height:80px;overflow-y:auto;border:1.5px solid #d9d9d9;border-radius:6px;padding:4px;font-size:11px;background:#fff}
.filter-multi label{display:block;padding:2px 0;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.filter-multi label:hover{background:#f0f5ff}
.filter-multi input{margin-right:4px}
.filter-tags{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0;padding:4px 0}
.filter-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:#e8f0fe;color:#1a73e8;border-radius:10px;font-size:11px;font-weight:600}
.filter-tag .close{cursor:pointer;font-weight:700;color:#666}
.filter-tag .close:hover{color:#ff4d4f}
.merge-summary{background:linear-gradient(135deg,#f0f5ff,#f6ffed,#fff7e6);border:2px solid #4169e1;border-radius:12px;padding:20px;margin-bottom:16px;text-align:center}
.merge-summary-title{font-size:15px;font-weight:700;margin-bottom:12px;color:#333}

/* 结果弹窗 */
.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.45);z-index:1000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s}
.modal-overlay.active{opacity:1;pointer-events:all}
.modal-content{background:#fff;border-radius:16px;width:92%;max-width:900px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.2);transform:translateY(20px);transition:transform .2s}
.modal-overlay.active .modal-content{transform:translateY(0)}
.modal-header{padding:16px 24px;border-bottom:2px solid #f0f0f0;display:flex;justify-content:space-between;align-items:center}
.modal-header h3{font-size:16px;margin:0}
.modal-close{background:none;border:none;font-size:20px;cursor:pointer;color:#999;padding:4px;line-height:1}
.modal-close:hover{color:#333}
.modal-body{padding:20px 24px;overflow:auto;flex:1}
.modal-footer{padding:12px 24px;border-top:1px solid #f0f0f0;display:flex;justify-content:flex-end;gap:8px}
.update-modal-overlay{z-index:3200}
.update-modal-overlay.is-mandatory{background:rgba(10,20,40,.68)}
.update-modal-content{max-width:520px;overflow:hidden}
.update-modal-body{display:grid;gap:14px}
.update-modal-status{display:flex;gap:12px;align-items:flex-start}
.update-modal-icon{width:42px;height:42px;border-radius:8px;background:#eef4ff;color:#2f6bff;display:flex;align-items:center;justify-content:center;font-size:22px;flex:0 0 auto}
.update-modal-title{font-size:18px;font-weight:700;color:#111827;margin:0 0 4px}
.update-modal-subtitle{font-size:12px;color:#7b8da8;line-height:1.6}
.update-version-row{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;padding:12px 14px;background:#f6f9ff;border:1px solid #dbe8ff;border-radius:8px}
.update-version-cell span{display:block;color:#8b9ab0;font-size:11px;margin-bottom:3px}
.update-version-cell strong{display:block;color:#172033;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.update-version-arrow{color:#2f6bff;font-weight:700}
.update-release-notes{max-height:150px;overflow:auto;white-space:pre-wrap;word-break:break-word;padding:12px 14px;border:1px solid #e5eaf2;border-radius:8px;background:#fff;color:#46546a;font-size:12px;line-height:1.65}
.update-progress-track{height:8px;border-radius:4px;background:#e7edf7;overflow:hidden}
.update-progress-fill{height:100%;width:0;background:#2f6bff;transition:width .2s}
.update-progress-label{margin-top:6px;text-align:right;color:#6d7d95;font-size:11px}
.update-error{display:none;padding:10px 12px;border-radius:8px;background:#fff1f0;border:1px solid #ffccc7;color:#cf1322;font-size:12px;line-height:1.5}
.update-error.is-visible{display:block}
.update-mandatory-note{display:none;padding:10px 12px;border-radius:8px;background:#fff7e6;border-left:4px solid #fa8c16;color:#ad4e00;font-size:12px}
.update-modal-overlay.is-mandatory .update-mandatory-note{display:block}
@media(max-width:640px){.update-version-row{grid-template-columns:1fr}.update-version-arrow{display:none}.update-modal-content{width:94%}}

/* ===== UI Redesign Phase 1: visual shell, tokens, component polish ===== */
body{
  background:
    radial-gradient(circle at 8% 0%, rgba(37,99,235,.11), transparent 30%),
    radial-gradient(circle at 92% 6%, rgba(8,145,178,.10), transparent 28%),
    var(--ds-page);
  color:var(--ds-text);
  line-height:1.72;
}
.wrap{max-width:1520px;padding:24px}
.topbar{
  position:relative;
  overflow:visible;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-height:108px;
  padding:24px 28px;
  background:linear-gradient(135deg,#0f172a 0%,#1e3a8a 58%,#0e7490 100%);
  border-radius:26px;
  box-shadow:var(--ds-shadow-float);
}
.topbar::after{
  content:'';
  position:absolute;
  width:360px;
  height:360px;
  right:-150px;
  top:-210px;
  background:rgba(255,255,255,.12);
  border-radius:999px;
}
.topbar h1{position:relative;z-index:1;margin:0 0 8px;font-size:26px;letter-spacing:-.02em}
.topbar .subtitle{position:relative;z-index:1;max-width:760px;opacity:.82}
.ui-topbar-status{position:relative;z-index:1;display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.advanced-mode-toggle{
  position:relative;
  z-index:1;
  min-height:34px;
  padding:7px 12px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.10);
  color:#fff;
  font:inherit;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
}
.advanced-mode-toggle:hover{background:rgba(255,255,255,.18)}
.advanced-mode-toggle.on{background:rgba(249,115,22,.26);border-color:rgba(253,186,116,.55)}
.advanced-only{display:none!important}
body.advanced-mode .advanced-only{display:revert!important}
body.advanced-mode .advanced-only.notebox,
body.advanced-mode .advanced-only.card{display:block!important}
body.advanced-mode .audit-config-grid.advanced-only{display:grid!important}
body.advanced-mode .form-group.advanced-only,
body.advanced-mode .hint.advanced-only{display:block!important}
[hidden]{display:none!important}
body:not(.advanced-mode) .api-endpoint{display:none!important}
.advanced-summary-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  border:1px solid var(--ds-border);
  border-radius:16px;
  background:linear-gradient(135deg,#f8fafc 0%,#fff 100%);
  margin-bottom:14px;
}
.advanced-summary-card strong{font-size:13px;color:var(--ds-text)}
.advanced-summary-card span{font-size:12px;color:var(--ds-text-secondary)}
.advanced-summary-status{
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
  background:var(--ds-warning-soft);
  color:#c2410c;
  border:1px solid #fed7aa;
}
.advanced-summary-status.ok{
  background:var(--ds-success-soft);
  color:var(--ds-success);
  border-color:#bbf7d0;
}
.pills{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin:18px 0;
}
.pill{
  min-height:74px;
  background:rgba(255,255,255,.78);
  border:1px solid var(--ds-border);
  box-shadow:var(--ds-shadow-card);
  color:var(--ds-text);
  backdrop-filter:blur(12px);
}
.pill strong{color:var(--ds-text)}
.pill span{color:var(--ds-text-secondary);opacity:1}
.pill-num{background:var(--ds-brand-soft);color:var(--ds-brand)}
.ui-quick-nav{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:10px;
  margin:0 0 18px;
}
.ui-quick-nav button{
  border:1px solid var(--ds-border);
  background:rgba(255,255,255,.86);
  color:var(--ds-text);
  border-radius:16px;
  padding:12px 10px;
  font-family:inherit;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
  box-shadow:var(--ds-shadow-card);
  transition:.18s ease;
}
.ui-quick-nav button:hover{
  transform:translateY(-1px);
  border-color:#bfdbfe;
  background:#fff;
  color:var(--ds-brand);
}
.card{
  border:1px solid var(--ds-border);
  border-radius:var(--ds-radius-section);
  box-shadow:var(--ds-shadow-card);
}
.card{
  padding:24px;
  margin-bottom:18px;
}
.card-title{
  margin-bottom:18px;
  padding-bottom:14px;
  border-bottom:1px solid var(--ds-border);
  color:var(--ds-text);
  font-size:18px;
}
.form-group label,
label[style*="font-size:12px"]{
  color:var(--ds-text)!important;
  font-weight:800!important;
}
.form-group input,.form-group textarea,.form-group select,
input[type="text"],input[type="password"],input[type="number"],input[type="date"],input[type="datetime-local"],select,textarea{
  min-height:42px;
  border:1.5px solid var(--ds-border-strong)!important;
  border-radius:12px!important;
  background:#fff;
  color:var(--ds-text);
}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus,
input:focus,select:focus,textarea:focus{
  outline:none!important;
  border-color:var(--ds-brand)!important;
  box-shadow:0 0 0 4px rgba(37,99,235,.10);
}
.hint{color:var(--ds-text-secondary)}
.btn{
  min-height:40px;
  border-radius:12px;
  font-weight:800;
  box-shadow:none;
}
.btn:hover{box-shadow:var(--ds-shadow-card)}
.btn-blue{background:var(--ds-brand);color:#fff}
.btn-green{background:var(--ds-success);color:#fff}
.btn-orange{background:var(--ds-warning);color:#fff}
.btn-red{background:var(--ds-danger);color:#fff}
.btn-gray{background:#fff;color:var(--ds-text);border:1px solid var(--ds-border-strong)}
.notebox{
  background:var(--ds-brand-soft);
  border-left-color:var(--ds-brand);
  border-radius:12px;
  color:var(--ds-text);
}
.notebox.warn{background:var(--ds-warning-soft);border-left-color:var(--ds-warning)}
.notebox.success{background:var(--ds-success-soft);border-left-color:var(--ds-success)}
.accordion-item{
  border:1px solid var(--ds-border);
  border-radius:14px;
}
.accordion-header{
  background:var(--ds-surface-subtle);
  border-radius:14px;
}
.accordion-header:hover,.accordion-header.active{
  background:var(--ds-brand-soft);
  color:var(--ds-brand);
}
.tabs{
  gap:8px;
  padding:8px;
  background:var(--ds-surface-subtle);
  border:1px solid var(--ds-border);
  border-radius:18px;
}
.tab{
  border-radius:13px;
  color:var(--ds-text-secondary);
  font-weight:800;
}
.tab.active{
  background:#fff;
  color:var(--ds-brand);
  box-shadow:0 6px 16px rgba(15,23,42,.08);
}
.api-grid{
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:14px;
}
.api-card{
  background:#fff;
  border:1px solid var(--ds-border);
  border-radius:16px;
  padding:16px;
  box-shadow:0 8px 20px rgba(15,23,42,.04);
}
.api-card:hover{
  border-color:#bfdbfe;
  box-shadow:var(--ds-shadow-card);
}
.api-card .api-name{font-size:14px;color:var(--ds-text)}
.api-card .api-desc{color:var(--ds-text-secondary)}
.api-endpoint{
  background:var(--ds-surface-subtle);
  color:var(--ds-text-secondary);
  border:1px solid var(--ds-border);
  border-radius:8px;
}
.port-selector{
  background:var(--ds-surface-subtle);
  border:1px solid var(--ds-border);
  border-radius:16px;
}
.port-pill{
  border-radius:999px;
  padding:8px 14px;
}
.port-pill.active{
  background:var(--ds-brand);
  border-color:var(--ds-brand);
  box-shadow:none;
}
.viz-table-wrap,.audit-filter-panel,.result{
  border-color:var(--ds-border);
  border-radius:14px;
}
.viz-table th{
  background:var(--ds-surface-subtle);
  color:var(--ds-text);
}
.viz-table td{color:var(--ds-text)}
.summary-box{
  border-color:var(--ds-border);
  border-radius:14px;
}
.modal-content{
  border-radius:22px!important;
  overflow:hidden;
}
.modal-header{
  background:var(--ds-surface-subtle);
  border-bottom:1px solid var(--ds-border);
}
@media(max-width:1100px){
  .ui-quick-nav{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pills{grid-template-columns:1fr}
}
@media(max-width:768px){
  .wrap{padding:14px}
  .topbar{display:block}
  .ui-topbar-status{justify-content:flex-start;margin-top:16px}
  .ui-quick-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ===== UI Redesign Phase 2: 素材预审工作台 ===== */
.audit-workbench-shell{
  display:grid;
  gap:16px;
}
.audit-subscribe-guide,
.audit-risk-guide,
.audit-config-card,
.audit-main-card,
.audit-table-shell{
  border:1px solid var(--ds-border)!important;
  border-radius:20px!important;
  box-shadow:var(--ds-shadow-card);
}
.audit-subscribe-guide,
.audit-risk-guide{
  margin:0!important;
  padding:18px 20px!important;
  border-left-width:0!important;
}
.audit-subscribe-guide{
  background:linear-gradient(135deg,#eff6ff 0%,#fff 100%)!important;
}
.audit-risk-guide{
  background:linear-gradient(135deg,#ecfeff 0%,#fff 100%)!important;
}
.audit-config-card,
.audit-main-card{
  margin:0!important;
  padding:20px!important;
  background:#fff;
}
.audit-config-grid{
  display:grid!important;
  grid-template-columns:1fr 1fr;
  gap:14px!important;
}
.audit-auto-fetch-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:14px 0 12px!important;
  padding:14px 16px!important;
  border:1px solid #bfdbfe!important;
  border-radius:18px!important;
  background:linear-gradient(135deg,#eff6ff 0%,#fff 100%)!important;
}
.audit-date-range{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  flex-wrap:wrap;
  margin:0!important;
  padding:10px 12px;
  background:var(--ds-surface-subtle);
  border:1px solid var(--ds-border);
  border-radius:16px;
}
.audit-date-range label{
  margin:0;
  color:var(--ds-text);
}
.audit-date-range input{
  min-height:36px!important;
  padding:7px 10px!important;
}
.audit-time-stats{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:16px 0 8px;
}
.audit-time-stat-card{
  border:1px solid var(--ds-border);
  border-radius:18px;
  padding:14px;
  background:#fff;
  box-shadow:0 8px 20px rgba(15,23,42,.04);
}
.audit-time-stat-card.today{
  border-color:#bbf7d0;
  background:linear-gradient(135deg,#f0fdf4 0%,#fff 100%);
}
.audit-time-stat-card.range{
  border-color:#bfdbfe;
  background:linear-gradient(135deg,#eff6ff 0%,#fff 100%);
}
.audit-stat-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}
.audit-stat-card-head .label{
  color:var(--ds-text-secondary);
  font-size:12px;
  font-weight:800;
}
.audit-stat-card-head .total{
  color:var(--ds-text);
  font-size:20px;
  font-weight:900;
  line-height:1.25;
}
.audit-stat-card-head .rate{
  color:var(--ds-brand);
  font-size:13px;
  font-weight:900;
  white-space:nowrap;
}
.audit-stat-metrics{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.audit-stat-metric{
  padding:8px;
  border-radius:12px;
  background:var(--ds-surface-subtle);
  border:1px solid var(--ds-border);
}
.audit-stat-metric span{
  display:block;
  color:var(--ds-text-secondary);
  font-size:11px;
  line-height:1.2;
}
.audit-stat-metric strong{
  display:block;
  margin-top:4px;
  color:var(--ds-text);
  font-size:14px;
}
.audit-table-shell{
  background:#fff;
  padding:16px;
}
.audit-table-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
  margin-bottom:12px;
}
.audit-table-title{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.audit-table-title strong{
  font-size:16px;
  color:var(--ds-text);
}
.audit-table-title span{
  font-size:12px;
  color:var(--ds-text-secondary);
}
.audit-table-meta{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  color:var(--ds-text-secondary);
  font-size:12px;
}
.audit-table-meta .meta-chip{
  padding:6px 10px;
  border-radius:999px;
  background:var(--ds-surface-subtle);
  border:1px solid var(--ds-border);
  color:var(--ds-text);
  font-weight:800;
}
.audit-workbench-table{
  min-width:1960px;
}
.audit-workbench-table th{
  padding:12px 14px;
  font-size:12px;
}
.audit-workbench-table td{
  padding:12px 14px;
  vertical-align:middle;
}
.audit-workbench-table .font-mono{
  background:transparent;
  padding:0;
}
.audit-filter-trigger{
  border-radius:8px;
}
.audit-filter-panel{
  border-radius:14px!important;
  overflow:hidden;
}
.audit-filter-title{
  background:var(--ds-surface-subtle);
}
.audit-filter-footer .primary{
  background:var(--ds-brand);
  border-color:var(--ds-brand);
}

/* ===== UI Redesign Phase 2.1: 素材预审工作台收口 ===== */
.figma-audit-layout{
  display:grid;
  gap:18px;
  min-width:0;
}
.figma-audit-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:26px 28px;
  border-radius:30px;
  background:
    radial-gradient(circle at 88% 12%,rgba(47,107,255,.14),transparent 34%),
    linear-gradient(135deg,#ffffff 0%,#f4f8ff 100%);
  border:1px solid rgba(47,107,255,.12);
  box-shadow:0 22px 60px rgba(16,24,40,.08);
  min-width:0;
}
.figma-audit-hero h2{
  margin:12px 0 8px;
  color:var(--ds-text);
  font-size:30px;
  line-height:1.08;
  letter-spacing:-.04em;
}
.figma-audit-hero p{
  margin:0;
  max-width:560px;
  color:var(--ds-text-secondary);
  font-size:13px;
  line-height:1.7;
}
.figma-audit-hero.compact{
  align-items:center;
  justify-content:space-between;
  padding:24px 30px;
  min-height:128px;
}
.figma-audit-hero.compact h2{
  margin:0 0 10px;
  font-size:28px;
  line-height:1.12;
  letter-spacing:0;
}
.figma-audit-hero-actions{
  display:grid;
  grid-template-columns:minmax(150px,188px);
  gap:8px;
  min-width:188px;
  width:188px;
  justify-content:end;
}
.figma-audit-hero > *,
.figma-audit-hero-actions > *,
.figma-audit-panel > *{
  min-width:0;
}
.figma-audit-hero-actions .btn,
.figma-audit-hero-actions #unresolvedMaterialButton{
  width:100%;
  min-width:0!important;
  height:34px!important;
  min-height:34px!important;
  padding:0 14px!important;
  border-radius:10px!important;
  font-size:12px!important;
  line-height:1!important;
  justify-content:center;
}
.figma-audit-panel{
  border:1px solid rgba(215,226,241,.95)!important;
  border-radius:28px!important;
  background:#fff!important;
  box-shadow:0 18px 46px rgba(16,24,40,.07)!important;
  padding:22px!important;
  min-width:0;
}
.figma-audit-panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding-bottom:16px;
  margin-bottom:18px;
  border-bottom:1px solid #edf2f8;
}
.figma-audit-panel-title{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
.figma-audit-panel-title strong{
  color:#101828;
  font-size:18px;
  line-height:1.2;
  letter-spacing:-.02em;
}
.figma-audit-panel-title span{
  color:#667085;
  font-size:12px;
  line-height:1.5;
  white-space:normal;
  overflow-wrap:anywhere;
}
.audit-workbench-top-grid{
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:16px;
  align-items:start;
  min-width:0;
}
.figma-audit-setup-collapse{
  border:1px solid rgba(215,226,241,.95);
  border-radius:28px;
  background:#fff;
  box-shadow:0 18px 46px rgba(16,24,40,.06);
  overflow:hidden;
}
.figma-audit-setup-summary{
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:18px 22px;
  user-select:none;
}
.figma-audit-setup-summary-title{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.figma-audit-setup-summary-title strong{
  color:#101828;
  font-size:17px;
  letter-spacing:-.02em;
}
.figma-audit-setup-summary-title span{
  color:#667085;
  font-size:12px;
}
.figma-audit-setup-chevron{
  min-width:86px;
  text-align:center;
  padding:8px 12px;
  border-radius:999px;
  color:#2f6bff;
  background:#eef4ff;
  border:1px solid #dbe8ff;
  font-weight:900;
  font-size:12px;
}
.figma-audit-setup-collapse.is-open .figma-audit-setup-chevron::before{
  content:"收起";
}
.figma-audit-setup-collapse:not(.is-open) .figma-audit-setup-chevron::before{
  content:"展开";
}
.figma-audit-setup-body{
  padding:0 22px 22px;
}
.figma-audit-setup-collapse:not(.is-open){
  box-shadow:0 10px 28px rgba(16,24,40,.04);
}
.figma-audit-setup-collapse:not(.is-open) .figma-audit-setup-body{
  display:none!important;
}
.log-collapse-card .card-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.log-collapse-card .card-title-main{
  display:flex;
  align-items:center;
  gap:8px;
}
.log-toggle-btn{
  min-height:36px!important;
  padding:7px 14px!important;
  border-radius:999px!important;
  font-size:12px!important;
}
.log-entry{
  border-radius:12px;
  padding:12px 14px;
  margin-bottom:8px;
  color:#101828;
  line-height:1.55;
}
.log-entry:last-child{
  margin-bottom:0;
}
.utility-collapse-card{
  margin-top:16px;
  border:1px solid rgba(215,226,241,.95);
  border-radius:24px;
  background:#fff;
  box-shadow:0 10px 28px rgba(16,24,40,.04);
  overflow:hidden;
}
.utility-collapse-summary{
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:16px 20px;
  user-select:none;
}
.utility-collapse-summary-title{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.utility-collapse-summary-title strong{
  color:#101828;
  font-size:16px;
  letter-spacing:-.02em;
}
.utility-collapse-summary-title span{
  color:#667085;
  font-size:12px;
}
.utility-collapse-chevron{
  min-width:86px;
  text-align:center;
  padding:8px 12px;
  border-radius:999px;
  color:#2f6bff;
  background:#eef4ff;
  border:1px solid #dbe8ff;
  font-weight:900;
  font-size:12px;
}
.utility-collapse-card.is-open .utility-collapse-chevron::before{content:"收起"}
.utility-collapse-card:not(.is-open) .utility-collapse-chevron::before{content:"展开"}
.utility-collapse-body{
  padding:0 20px 20px;
}
.utility-collapse-card:not(.is-open) .utility-collapse-body{
  display:none!important;
}
.audit-workbench-top-grid .audit-subscribe-guide,
.audit-workbench-top-grid .audit-config-card{
  min-height:auto;
}
.audit-subscribe-guide{
  position:relative;
  overflow:hidden;
}
.audit-subscribe-guide::after{
  content:"SPI";
  position:absolute;
  right:18px;
  top:16px;
  color:rgba(47,107,255,.08);
  font-size:58px;
  font-weight:1000;
  letter-spacing:-.06em;
  pointer-events:none;
}
.audit-subscribe-guide > div:first-child{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--ds-text);
  font-size:17px!important;
}
.audit-subscribe-guide > div:last-child{
  position:relative;
  z-index:1;
  line-height:2.05;
  color:var(--ds-text-secondary)!important;
}
.audit-subscribe-guide .font-mono{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:4px 10px;
  border-radius:10px;
  background:#fff;
  border:1px solid var(--ds-border);
  color:#344054;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
}
.audit-subscribe-guide .btn-sm{
  min-height:34px!important;
  padding:6px 13px!important;
  border-radius:13px!important;
}
#callbackSecret{
  width:min(460px,100%);
  min-width:0!important;
  min-height:42px!important;
  border-radius:14px!important;
  border:1.5px solid var(--ds-border)!important;
  background:#fff!important;
}
.audit-config-card .advanced-summary-card{
  margin-bottom:14px;
  padding:14px 16px;
  border-radius:18px;
  background:linear-gradient(135deg,#f8fbff 0%,#fff 100%);
  border:1px solid var(--ds-border);
}
.audit-config-card .advanced-summary-card strong{
  font-size:15px;
}
.audit-config-card .advanced-summary-card span{
  display:block;
  margin-top:4px;
  line-height:1.45;
}
.audit-config-card .btns,
.audit-main-card .btns{
  gap:10px!important;
}
.audit-main-card{
  overflow:hidden;
}
#unresolvedMaterialButton{
  min-width:138px;
  justify-content:center;
}
.audit-time-stats{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  min-width:0;
  overflow:hidden;
}
.audit-time-stat-card{
  min-height:168px;
  min-width:0;
}
.audit-time-stat-card.month{
  border-color:#c7d2fe;
  background:linear-gradient(135deg,#eef2ff 0%,#fff 100%);
}
.audit-stat-card-head .total{
  font-size:24px;
  letter-spacing:-.03em;
}
.audit-stat-metric{
  text-align:center;
}
#auditWalkResult{
  display:block!important;
  min-width:0;
}
#auditResultTable{
  min-width:0;
}
#auditResultTable .audit-table-shell{
  margin-top:0;
  max-width:100%;
  overflow:hidden;
}
#auditResultTable .viz-table-wrap{
  max-width:100%;
  overflow:auto;
  border-radius:18px!important;
  background:#fff;
}
#auditResultTable .viz-pagination,
#unresolvedMaterialBody .viz-pagination{
  justify-content:center;
  padding-top:14px;
}
.figma-audit-table-card #auditWalkResult{
  margin-top:0;
}
.figma-audit-table-card .viz-empty{
  border:1px dashed #c9d8ef;
  border-radius:20px;
  background:#f8fbff;
}
@media(max-width:1280px){
  .audit-workbench-top-grid{
    grid-template-columns:1fr;
  }
  .figma-audit-hero{
    align-items:flex-start;
    flex-direction:column;
  }
  .figma-audit-hero-actions{
    width:100%;
  }
  .figma-audit-hero.compact{
    align-items:center!important;
    flex-direction:row!important;
  }
  .figma-audit-hero.compact .figma-audit-hero-actions{
    width:188px!important;
    min-width:188px!important;
    flex:0 0 188px!important;
  }
}
@media(max-width:1180px){
  .audit-config-grid,
  .audit-time-stats{grid-template-columns:1fr}
  .audit-date-range{width:100%}
}

/* ===== UI Redesign Phase 4: 全局业务页统一 ===== */
.tabs{
  position:sticky;
  top:12px;
  z-index:20;
  overflow:auto;
}
.tabs::-webkit-scrollbar{height:0}
.tab-panel{
  border:1px solid var(--ds-border);
  border-radius:22px;
  background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);
  padding:20px;
  box-shadow:var(--ds-shadow-card);
}
.tab-panel:not(.active){display:none}
.phase4-page-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:18px 20px;
  margin-bottom:16px;
  border:1px solid var(--ds-border);
  border-radius:20px;
  background:linear-gradient(135deg,#f8fafc 0%,#fff 100%);
}
.phase4-page-head .title{
  font-size:18px;
  font-weight:900;
  color:var(--ds-text);
  letter-spacing:-.01em;
}
.phase4-page-head .desc{
  margin-top:4px;
  font-size:13px;
  color:var(--ds-text-secondary);
}
.phase4-page-head .tag{
  flex-shrink:0;
  padding:7px 11px;
  border-radius:999px;
  border:1px solid #bbf7d0;
  background:var(--ds-success-soft);
  color:var(--ds-success);
  font-size:12px;
  font-weight:900;
}
.phase4-page-head.fund .tag{border-color:#fed7aa;background:var(--ds-warning-soft);color:#c2410c}
.phase4-page-head.report .tag{border-color:#bfdbfe;background:var(--ds-brand-soft);color:var(--ds-brand)}
.phase4-page-head.risk .tag{border-color:#ddd6fe;background:var(--ds-purple-soft);color:var(--ds-purple)}
.phase4-page-head.rebate .tag{border-color:#bbf7d0;background:var(--ds-success-soft);color:var(--ds-success)}
.api-grid{
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:14px;
}
.api-card{
  position:relative;
  min-height:112px;
  background:#fff;
  border:1px solid var(--ds-border)!important;
  border-radius:18px!important;
  padding:18px!important;
  box-shadow:0 8px 22px rgba(15,23,42,.04);
}
.api-card::after{
  content:'›';
  position:absolute;
  right:16px;
  top:16px;
  width:26px;
  height:26px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:var(--ds-surface-subtle);
  color:var(--ds-text-secondary);
  font-size:22px;
  line-height:1;
}
.api-card:hover{
  border-color:#bfdbfe!important;
  box-shadow:var(--ds-shadow-card);
}
.api-card .api-name{
  padding-right:32px;
  font-size:15px;
  font-weight:900;
}
.api-card .api-desc{
  margin-top:6px;
  color:var(--ds-text-secondary);
  line-height:1.65;
}
.api-endpoint{
  margin-top:12px;
  border:1px solid var(--ds-border);
}
.phase4-form-strip{
  display:flex!important;
  gap:12px!important;
  align-items:flex-end!important;
  flex-wrap:wrap!important;
  padding:14px;
  margin-bottom:14px!important;
  border:1px solid var(--ds-border);
  border-radius:18px;
  background:var(--ds-surface-subtle);
}
.phase4-form-strip > div{
  min-width:160px;
}
.phase4-form-strip label{
  color:var(--ds-text)!important;
  font-weight:800!important;
}
.risk-score-tabs{
  padding:8px;
  border:1px solid var(--ds-border);
  border-radius:18px;
  background:var(--ds-surface-subtle);
}
#riskScorePanel,
#rebateResult{
  border:1px solid var(--ds-border);
  border-radius:20px;
  background:#fff;
  padding:18px;
  box-shadow:0 8px 22px rgba(15,23,42,.04);
}
.phase4-result-card{
  margin-top:18px!important;
  padding:18px!important;
  border:1px solid var(--ds-border)!important;
  border-radius:20px!important;
  background:#fff;
  box-shadow:var(--ds-shadow-card);
}
.phase4-result-card > div:first-child{
  margin-bottom:10px!important;
}
#apiResult,
#vizResult{
  border-radius:16px;
}

/* ===== Dashboard card style: 参考数据看板大数字卡片 ===== */
#rebateSummary{
  padding:10px;
  border-radius:20px;
  background:var(--ds-surface-subtle);
}
.viz-summary{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:12px!important;
  margin:0!important;
}
.summary-box{
  min-width:0;
  height:126px;
  padding:16px 12px!important;
  overflow:hidden;
  border:1px solid #e2ebf7!important;
  border-radius:var(--ds-radius-card)!important;
  background:#fff!important;
  box-shadow:none!important;
  display:grid;
  grid-template-rows:36px 18px 28px;
  align-content:center;
  align-items:center;
  text-align:center;
}
.summary-box .sum-value{
  order:1;
  width:100%;
  min-width:0;
  padding:0 2px;
  box-sizing:border-box;
  font-family:"PingFang SC","Microsoft YaHei",sans-serif!important;
  font-size:28px!important;
  line-height:1.15!important;
  font-weight:800!important;
  letter-spacing:0;
  color:var(--ds-brand)!important;
  white-space:nowrap;
  overflow:hidden!important;
}
.summary-box .sum-label{
  order:3;
  margin:0!important;
  font-family:"PingFang SC","Microsoft YaHei",sans-serif;
  font-size:14px!important;
  line-height:20px;
  font-weight:700!important;
  color:var(--ds-text)!important;
}
.summary-box .sum-pct,
.summary-box.dash-blue .sum-value,
.summary-box.dash-blue .sum-pct{color:var(--ds-brand)!important}
.summary-box.dash-green .sum-value,
.summary-box.dash-green .sum-pct{color:var(--ds-success)!important}
.summary-box.dash-orange .sum-value,
.summary-box.dash-orange .sum-pct{color:var(--ds-warning)!important}
.summary-box .sum-value.sum-cost,
.summary-box .sum-value.total{color:var(--ds-warning)!important}
.summary-box .sum-value.sum-show{color:var(--ds-brand)!important}
.summary-box .sum-value.sum-click{color:var(--ds-success)!important}
.viz-cards{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr))!important;
  gap:12px!important;
  padding:10px;
  border-radius:20px;
  background:var(--ds-surface-subtle);
}
.viz-card-item{
  min-height:150px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:22px 16px!important;
  border:none!important;
  border-radius:12px!important;
  background:#fff!important;
  box-shadow:none!important;
  text-align:center;
}
.viz-card-item[style*="grid-column"]{
  min-height:96px;
}
.viz-card-item .card-key{
  order:2;
  margin:0!important;
  color:var(--ds-brand)!important;
  font-family:"PingFang SC","Microsoft YaHei",sans-serif;
  font-size:18px!important;
  line-height:1.25;
  font-weight:900!important;
}
.viz-card-item .card-val{
  order:1;
  max-width:100%;
  color:var(--ds-brand)!important;
  font-family:"DIN Alternate","Arial Rounded MT Bold","PingFang SC",sans-serif!important;
  font-size:38px!important;
  line-height:1!important;
  font-weight:900!important;
  letter-spacing:-.04em;
  white-space:nowrap;
  word-break:normal;
  overflow:hidden;
}
.viz-card-item .card-val.money,
.viz-card-item .card-val.money *{
  color:var(--ds-warning)!important;
}
.viz-card-item .card-val.number,
.viz-card-item .card-val.number *{
  color:var(--ds-success)!important;
}
.viz-card-item.dash-blue .card-key,
.viz-card-item.dash-blue .card-val,
.viz-card-item.dash-blue .card-val *{color:var(--ds-brand)!important}
.viz-card-item.dash-green .card-key,
.viz-card-item.dash-green .card-val,
.viz-card-item.dash-green .card-val *{color:var(--ds-success)!important}
.viz-card-item.dash-orange .card-key,
.viz-card-item.dash-orange .card-val,
.viz-card-item.dash-orange .card-val *{color:var(--ds-warning)!important}
.advertiser-summary-cards{
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
}
.advertiser-summary-cards .viz-card-item{
  grid-column:span 2;
}
.advertiser-summary-cards .viz-card-item:nth-child(4),
.advertiser-summary-cards .viz-card-item:nth-child(5){
  grid-column:span 3;
}
.viz-card-item .card-val .viz-badge,
.viz-card-item .card-val .font-mono{
  font-family:"PingFang SC","Microsoft YaHei",sans-serif!important;
  font-size:18px!important;
  letter-spacing:0;
}
.viz-card-item:nth-child(3n+1) .card-key,
.viz-card-item:nth-child(3n+1) .card-val:not(.money):not(.number){color:var(--ds-brand)!important}
.viz-card-item:nth-child(3n+2) .card-key,
.viz-card-item:nth-child(3n+2) .card-val:not(.money):not(.number){color:var(--ds-success)!important}
.viz-card-item:nth-child(3n) .card-key,
.viz-card-item:nth-child(3n) .card-val:not(.money):not(.number){color:var(--ds-warning)!important}
.audit-time-stats{
  padding:10px;
  border-radius:20px;
  background:var(--ds-surface-subtle);
}
.audit-time-stat-card{
  min-height:210px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border:none!important;
  border-radius:12px!important;
  background:#fff!important;
  box-shadow:none!important;
  text-align:center;
}
.audit-stat-card-head{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin:0 0 16px!important;
}
.audit-stat-card-head .label{
  order:2;
  color:var(--ds-brand);
  font-size:22px!important;
  line-height:1.15;
  font-weight:900!important;
}
.audit-stat-card-head .total{
  order:1;
  color:var(--ds-brand);
  font-family:"DIN Alternate","Arial Rounded MT Bold","PingFang SC",sans-serif;
  font-size:46px!important;
  line-height:1!important;
  font-weight:900!important;
  letter-spacing:-.04em;
}
.audit-stat-card-head .rate{
  order:3;
  color:#8b95a1!important;
  font-size:12px!important;
  font-weight:700!important;
}
.audit-time-stat-card.today .label,
.audit-time-stat-card.today .total{color:var(--ds-success)!important}
.audit-time-stat-card.range .label,
.audit-time-stat-card.range .total{color:var(--ds-warning)!important}
.audit-stat-metrics{
  width:100%;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.audit-stat-metric{
  border:none!important;
  background:#f7f8fa!important;
  border-radius:10px!important;
}
.audit-stat-metric span{
  color:#8b95a1!important;
  font-size:11px!important;
}
.audit-stat-metric strong{
  color:#3f4652!important;
  font-family:"DIN Alternate","PingFang SC",sans-serif;
  font-size:16px!important;
}

/* ===== UI Redesign Phase 5: 左侧导航工作台 ===== */
.app-shell{
  display:grid;
  grid-template-columns:260px minmax(0,1fr);
  gap:20px;
  align-items:start;
}
.sidebar{
  position:sticky;
  top:18px;
  background:#fff;
  color:var(--ds-text);
  border:1px solid var(--ds-border);
  border-radius:26px;
  padding:18px;
  box-shadow:var(--ds-shadow-card);
}
.sidebar-brand{
  padding:4px 6px 16px;
  margin-bottom:14px;
  border-bottom:1px solid var(--ds-border);
}
.sidebar-brand h1{
  margin:0 0 6px;
  color:var(--ds-text);
  font-size:18px;
  line-height:1.25;
  letter-spacing:-.02em;
}
.sidebar-brand p{
  margin:0;
  color:var(--ds-text-secondary);
  font-size:12px;
  line-height:1.55;
}
.sidebar-group-title{
  margin:16px 6px 8px;
  color:#94a3b8;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
}
.nav-list{display:flex;flex-direction:column;gap:8px}
.nav-btn{
  width:100%;
  border:none;
  border-radius:16px;
  background:transparent;
  color:var(--ds-text-secondary);
  cursor:pointer;
  font:inherit;
  text-align:left;
  padding:11px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  transition:background .18s,color .18s,box-shadow .18s,transform .18s;
}
.nav-btn:hover{
  background:var(--ds-surface-subtle);
  color:var(--ds-text);
  transform:translateX(2px);
}
.nav-btn.active{
  background:var(--ds-brand-soft);
  color:var(--ds-brand);
  box-shadow:inset 3px 0 0 var(--ds-brand), 0 8px 20px rgba(37,99,235,.08);
}
.nav-btn-main{display:flex;align-items:center;gap:10px;min-width:0}
.nav-icon{
  width:34px;
  height:34px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--ds-surface-subtle);
  color:inherit;
  flex-shrink:0;
}
.nav-btn.active .nav-icon{background:#fff}
.nav-label{display:block;font-size:14px;font-weight:900;line-height:1.25}
.nav-desc{display:block;margin-top:2px;font-size:11px;color:currentColor;opacity:.62;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.main-panel{min-width:0}
.pills{display:none!important}
.main-tabs{display:none!important}
.ui-quick-nav{display:none!important}
.ui-topbar-status{display:flex!important;align-items:stretch;gap:12px;justify-content:flex-end}
.topbar-spend-mini,
.topbar-audit-mini{
  position:relative;
  z-index:1;
  padding:12px 14px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:18px;
  background:rgba(255,255,255,.10);
  backdrop-filter:blur(10px);
  color:#fff;
}
.topbar-spend-mini{
  min-width:210px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  text-align:center;
}
.topbar-audit-mini{
  min-width:420px;
  max-width:720px;
}
.topbar-spend-mini-title{
  font-size:13px;
  font-weight:900;
  opacity:.86;
}
.topbar-spend-mini-total{
  margin-top:4px;
  min-height:34px;
  font-family:"DIN Alternate","Arial Rounded MT Bold","PingFang SC",sans-serif;
  font-size:34px;
  line-height:1;
  font-weight:900;
  letter-spacing:-.04em;
  color:#ffb86b;
}
.topbar-spend-mini-meta{
  margin-top:6px;
}
.topbar-spend-refresh{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:26px;
  padding:0 14px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:999px;
  background:rgba(255,255,255,.10);
  color:#fff;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
  transition:background .18s,transform .18s;
}
.topbar-spend-refresh:hover{
  background:rgba(255,255,255,.18);
  transform:translateY(-1px);
}
.topbar-audit-mini-head{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  margin-bottom:12px;
  text-align:center;
}
.topbar-audit-mini-title{
  font-size:13px;
  font-weight:900;
  opacity:.86;
}
.topbar-audit-mini-total{
  font-family:"DIN Alternate","Arial Rounded MT Bold","PingFang SC",sans-serif;
  font-size:24px;
  line-height:1;
  font-weight:900;
  letter-spacing:-.03em;
}
.topbar-audit-mini-rate{
  color:#dbeafe;
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
  text-align:center;
}
.topbar-audit-mini-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:6px;
  align-items:center;
  justify-content:center;
}
.topbar-audit-mini-item{
  min-height:44px;
  padding:6px 8px;
  border-radius:10px;
  background:rgba(255,255,255,.10);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.topbar-audit-mini-item span{
  display:block;
  font-size:10px;
  opacity:.72;
  line-height:1.15;
}
.topbar-audit-mini-item strong{
  display:block;
  margin-top:3px;
  font-size:14px;
  line-height:1;
}
.topbar-action-stack{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:center;
  justify-content:center;
}
.topbar-action-item,
.advanced-mode-toggle{
  display:inline-flex!important;
  position:relative;
  z-index:1;
  align-items:center;
  justify-content:center;
  text-align:center;
  white-space:nowrap;
}
.topbar-action-item{
  align-items:center;
  justify-content:center;
  min-height:42px;
  width:132px;
  padding:0 14px;
  box-sizing:border-box;
  border:1px solid rgba(255,255,255,.26);
  border-radius:18px;
  background:rgba(255,255,255,.10);
  color:#fff;
  font-size:14px;
  line-height:1;
  font-weight:900;
  text-align:center;
}

#advancedAccessTokenBox[hidden],
body:not(.advanced-mode) #advancedAccessTokenBox{
  display:none!important;
}

body.advanced-mode #advancedAccessTokenBox:not([hidden]){
  display:inline-flex!important;
}
.topbar-token-validity{
  cursor:default;
  color:#dbeafe;
}
.topbar-refresh-auth{
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 14px;
  border:1px solid rgba(255,255,255,.26);
  border-radius:18px;
  background:rgba(255,255,255,.10);
  color:#fff;
  font-weight:900;
  font-size:14px;
  line-height:1;
  cursor:pointer;
  white-space:nowrap;
  transition:background .18s,transform .18s,box-shadow .18s;
}
.topbar-action-stack .topbar-refresh-auth,
.topbar-action-stack .advanced-mode-toggle{
  width:132px;
  min-height:42px;
  padding:0 14px;
  box-sizing:border-box;
  border-radius:18px;
  font-size:14px;
  line-height:1;
  justify-content:center;
}
.topbar-refresh-auth:hover{
  background:rgba(255,255,255,.18);
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(15,23,42,.18);
}
.nav-section-anchor{scroll-margin-top:24px}
.workspace-view{display:none}
.workspace-view.active{display:block}
#authRuntimePanel,
#tokenDisplayBox{display:none!important}
.business-card > .card-title,
.business-card > .notebox{display:none}
.business-card,
.tab-panel,
.sub-tab-panel,
.audit-workbench-shell,
.audit-main-card,
#auditWalkResult,
#auditResultTable,
.audit-table-shell{
  max-width:100%;
  min-width:0;
}
.business-card,
.tab-panel,
.audit-main-card,
.audit-table-shell{
  overflow:hidden;
}
.audit-table-shell .viz-table-wrap{
  max-width:100%;
  overflow-x:auto;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.audit-config-card,
.audit-main-card{
  width:100%;
  box-sizing:border-box;
}
.audit-config-grid{
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr))!important;
}
.audit-date-range{
  flex:1;
  min-width:260px;
}
.audit-date-range input{
  max-width:180px;
}
.audit-main-card .figma-audit-panel-head{
  align-items:center!important;
  flex-wrap:nowrap!important;
}
.audit-main-card .figma-audit-panel-title{
  flex:1 1 auto;
  min-width:0;
  max-width:100%;
}
.audit-main-card .figma-audit-panel-title span{
  display:block;
  max-width:100%;
  white-space:normal!important;
  overflow-wrap:anywhere;
}
.audit-main-card .audit-date-range{
  flex:0 0 auto!important;
  width:auto!important;
  min-width:0!important;
  flex-wrap:nowrap!important;
  white-space:nowrap;
  padding:8px 10px!important;
  border-radius:18px!important;
}
.audit-main-card .audit-date-range label{
  flex:0 0 auto;
  font-size:13px!important;
}
.audit-main-card .audit-date-range input{
  width:150px!important;
  min-width:150px!important;
  max-width:150px!important;
  min-height:42px!important;
  padding:8px 10px!important;
  flex:0 0 auto;
}
.audit-main-card .audit-date-range button{
  flex:0 0 auto;
  min-width:92px;
  min-height:42px!important;
  white-space:nowrap;
}
.audit-config-card .result{
  max-width:100%;
}
@media(max-width:1180px){
  .audit-main-card .figma-audit-panel-head{align-items:center!important}
  .audit-main-card .audit-date-range{flex-wrap:nowrap!important}
}
@media(max-width:1100px){
  .app-shell{grid-template-columns:1fr}
  .sidebar{position:static}
  .nav-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .topbar{align-items:flex-start}
  .ui-topbar-status{width:100%;justify-content:flex-start}
  .topbar-spend-mini,.topbar-audit-mini{min-width:0;width:100%;max-width:none}
  .topbar-action-stack{flex-direction:row}
  .topbar-refresh-auth,.advanced-mode-toggle{min-height:42px}
}
@media(max-width:640px){
  .nav-list{grid-template-columns:1fr}
  .topbar-audit-mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .topbar-action-stack{width:100%;flex-direction:column}
  .topbar-action-stack .topbar-refresh-auth,
  .topbar-action-stack .advanced-mode-toggle{width:100%}
  .advertiser-summary-cards{grid-template-columns:1fr!important}
  .phase4-page-head{display:block}
  .phase4-page-head .tag{display:inline-flex;margin-top:10px}
  .tab-panel{padding:14px}
}
@media(min-width:641px) and (max-width:900px){
  .phase4-page-head{display:block}
  .phase4-page-head .tag{display:inline-flex;margin-top:10px}
  .tab-panel{padding:14px}
  .advertiser-summary-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .advertiser-summary-cards .viz-card-item,
  .advertiser-summary-cards .viz-card-item:nth-child(4),
  .advertiser-summary-cards .viz-card-item:nth-child(5){grid-column:span 1}
}

/* ===== Figma Redesign Phase 1: 全局视觉、Logo、导航基础 ===== */
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",Inter,Arial,sans-serif;
  background:var(--ds-page)!important;
  color:var(--ds-text);
  -webkit-font-smoothing:antialiased;
  text-rendering:geometricPrecision;
}
.wrap{
  max-width:1520px;
  padding:26px;
}
.app-shell{
  grid-template-columns:260px minmax(0,1fr);
  gap:24px;
}
.sidebar{
  background:var(--ds-surface)!important;
  border:none!important;
  border-radius:var(--ds-radius-section)!important;
  padding:18px!important;
  box-shadow:var(--ds-shadow-card)!important;
}
.sidebar-brand{
  display:flex;
  align-items:center;
  gap:12px;
  padding:8px 8px 20px!important;
  margin-bottom:16px!important;
  border-bottom:1px solid var(--ds-border-soft)!important;
}
.sidebar-logo{
  width:42px;
  height:42px;
  flex:0 0 42px;
  object-fit:contain;
  display:block;
}
.sidebar-brand-copy{
  min-width:0;
}
.sidebar-brand h1{
  font-size:20px!important;
  line-height:1.15!important;
  letter-spacing:-.03em!important;
  color:var(--ds-text)!important;
}
.sidebar-brand p{
  margin-top:4px!important;
  color:var(--ds-text-secondary)!important;
  font-size:11px!important;
  line-height:1.35!important;
  white-space:nowrap;
}
.sidebar-group-title{
  margin:10px 8px 10px!important;
  color:#b4c0d2!important;
  letter-spacing:.09em!important;
}
.nav-list{
  gap:8px!important;
}
.nav-item{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.nav-btn{
  min-height:58px;
  padding:11px 12px!important;
  border-radius:17px!important;
  color:var(--ds-text)!important;
}
.nav-btn:hover{
  background:#f4f8ff!important;
  transform:translateX(2px);
}
.nav-btn.active{
  background:#eaf2ff!important;
  color:var(--ds-brand)!important;
  box-shadow:inset 3px 0 0 var(--ds-brand),0 10px 24px rgba(47,107,255,.10)!important;
}
.nav-icon{
  width:36px!important;
  height:36px!important;
  border-radius:13px!important;
  background:#f6f9fe!important;
}
.nav-btn.active .nav-icon{
  background:#fff!important;
}
.nav-label{
  font-size:14px!important;
  font-weight:900!important;
}
.nav-desc{
  color:var(--ds-text-secondary)!important;
  opacity:.86!important;
}
.nav-btn.active .nav-desc{
  color:var(--ds-brand)!important;
  opacity:.72!important;
}
.nav-sub-list{
  display:none;
  flex-direction:column;
  gap:6px;
  margin:0 8px 4px 26px;
  padding:2px 0 2px 8px;
  border-left:1px solid rgba(47,107,255,.16);
}
.nav-item.expanded .nav-sub-list{
  display:flex;
}
.nav-sub-btn{
  width:100%;
  border:0;
  background:transparent;
  color:#64748b;
  border-radius:12px;
  padding:8px 10px;
  text-align:left;
  cursor:pointer;
  font-size:12px;
  font-weight:800;
  line-height:1.2;
  transition:background .16s,color .16s,transform .16s;
}
.nav-sub-btn:hover{
  background:#f4f8ff;
  color:var(--ds-brand);
  transform:translateX(2px);
}
.nav-sub-btn.active{
  background:#eef5ff;
  color:var(--ds-brand);
  box-shadow:inset 2px 0 0 var(--ds-brand);
}
.topbar{
  border-radius:var(--ds-radius-section)!important;
  min-height:250px;
  padding:34px 36px!important;
  background:linear-gradient(135deg,#101b45 0%,#1f4095 56%,#07879a 100%)!important;
  box-shadow:var(--ds-shadow-float)!important;
}
.topbar h1{
  font-size:34px!important;
  line-height:1.1!important;
  margin-bottom:12px!important;
}
.topbar .subtitle{
  font-size:15px!important;
  opacity:.84!important;
}
.topbar-spend-mini,
.topbar-audit-mini,
.topbar-action-item,
.topbar-refresh-auth,
.advanced-mode-toggle{
  border-radius:22px!important;
  border-color:rgba(255,255,255,.28)!important;
  background:rgba(255,255,255,.10)!important;
}
.topbar-spend-mini-total{
  color:#ffbd6a!important;
}
.topbar-audit-mini-item{
  border-radius:14px!important;
  background:rgba(255,255,255,.13)!important;
}
.card,.audit-config-card,.audit-main-card,.audit-table-shell{
  border:none!important;
  border-radius:var(--ds-radius-section)!important;
  box-shadow:var(--ds-shadow-card)!important;
  background:var(--ds-surface)!important;
}
.card-title{
  border-bottom:1px solid var(--ds-border-soft)!important;
  font-size:20px!important;
  color:var(--ds-text)!important;
}
.btn{
  min-height:44px!important;
  border-radius:16px!important;
  padding:10px 22px!important;
  font-weight:900!important;
}
.btn-blue{background:var(--ds-brand)!important}
.btn-green{background:var(--ds-success)!important}
.btn-orange{background:var(--ds-warning)!important}
.btn-red{background:var(--ds-danger)!important}
.btn-gray{
  background:#fff!important;
  color:var(--ds-text)!important;
  border:1px solid var(--ds-border)!important;
}
.form-group input,.form-group textarea,.form-group select,
input[type="text"],input[type="password"],input[type="number"],input[type="date"],input[type="datetime-local"],select,textarea{
  min-height:48px!important;
  border-radius:16px!important;
  border:1.5px solid var(--ds-border)!important;
}
.viz-card-item{
  border:none!important;
  border-radius:22px!important;
  background:#fff!important;
  box-shadow:var(--ds-shadow-card)!important;
}
.viz-table-wrap{
  border:1px solid var(--ds-border-soft)!important;
  border-radius:22px!important;
}
.viz-table th{
  background:#f4f7fb!important;
  color:var(--ds-text-secondary)!important;
}
.viz-table td{
  color:var(--ds-text)!important;
}
.status-box,.viz-badge{
  border-radius:999px!important;
}
@media(max-width:1100px){
  .topbar{min-height:auto}
}
