*{margin:0;padding:0;box-sizing:border-box}html,body,#app{width:100%;height:100%;overflow:hidden;font-family:var(--font-base)}.admin-layout[data-v-56e83464]{display:flex;width:100vw;height:100vh;background:var(--bg-page);overflow:hidden}.sidebar[data-v-56e83464]{width:230px;height:100%;background:var(--bg-card);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;flex-shrink:0;animation:slideInLeft-56e83464 .5s var(--ease-out)}@keyframes slideInLeft-56e83464{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.sidebar-header[data-v-56e83464]{padding:var(--space-6) var(--space-5);border-bottom:1px solid var(--border-subtle)}.logo[data-v-56e83464]{display:flex;align-items:center;gap:var(--space-3)}.logo-img[data-v-56e83464]{width:44px;height:44px;object-fit:contain;border-radius:var(--radius-md)}.logo-subtitle[data-v-56e83464]{font-size:12px;color:var(--text-tertiary);margin-top:var(--space-2);letter-spacing:.5px}.sidebar-menu[data-v-56e83464]{flex:1;padding:var(--space-4) var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);overflow-y:auto}.menu-item[data-v-56e83464]{display:flex;align-items:center;gap:var(--space-3);padding:13px var(--space-4);border-radius:var(--radius-md);text-decoration:none;color:var(--text-secondary);font-size:14px;font-weight:500;transition:all var(--duration-normal) var(--ease-out);border:1px solid transparent}.menu-item[data-v-56e83464]:hover{background:var(--bg-elevated);color:var(--text-primary)}.menu-item.active[data-v-56e83464]{background:#3b82f61f;color:var(--brand-300);border-color:#3b82f640}.menu-icon[data-v-56e83464]{font-size:18px;width:22px;display:flex;align-items:center;justify-content:center}.sidebar-footer[data-v-56e83464]{padding:var(--space-4);border-top:1px solid var(--border-subtle)}.connection-status[data-v-56e83464]{display:flex;align-items:center;gap:var(--space-2);font-size:12px;color:var(--text-muted);transition:color var(--duration-normal) var(--ease-out)}.connection-status.connected[data-v-56e83464]{color:var(--text-secondary)}.connection-status .status-dot[data-v-56e83464]{width:8px;height:8px;border-radius:50%}.connection-status .status-dot.danger[data-v-56e83464]{background:var(--warn-red)}.connection-status .status-dot.running[data-v-56e83464]{background:#22c55e}.main-wrapper[data-v-56e83464]{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.top-header[data-v-56e83464]{height:64px;background:#111827d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-6);flex-shrink:0;animation:slideDown-56e83464 .45s var(--ease-out)}@keyframes slideDown-56e83464{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.breadcrumb[data-v-56e83464]{display:flex;align-items:center;gap:var(--space-2)}.current-page[data-v-56e83464]{font-size:18px;font-weight:600;color:var(--text-primary);position:relative}.current-page[data-v-56e83464]:after{content:"";position:absolute;left:0;bottom:-6px;width:24px;height:3px;background:var(--brand-500);border-radius:2px}.header-actions[data-v-56e83464]{display:flex;align-items:center;gap:var(--space-3)}.content-area[data-v-56e83464]{flex:1;padding:var(--space-5);overflow:auto;display:flex;flex-direction:column}.console-overlay[data-v-56e83464]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:9999}.console-panel[data-v-56e83464]{width:460px;max-width:92vw;background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden;animation:modalIn-56e83464 .35s var(--ease-out)}@keyframes modalIn-56e83464{0%{opacity:0;transform:translateY(-20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.console-header[data-v-56e83464]{height:54px;background:linear-gradient(90deg,var(--warn-red),#ef4444);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-5);color:#fff;font-weight:600;font-size:15px}.console-title[data-v-56e83464]{display:flex;align-items:center;gap:var(--space-3)}.close-btn[data-v-56e83464]{width:32px;height:32px;border:none;background:#ffffff26;color:#fff;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--duration-fast) var(--ease-out)}.close-btn[data-v-56e83464]:hover{background:#ffffff40}.console-body[data-v-56e83464]{padding:var(--space-6)}.input-group[data-v-56e83464]{margin-bottom:var(--space-5)}.input-group label[data-v-56e83464]{display:block;color:var(--text-tertiary);font-size:13px;margin-bottom:var(--space-2);font-weight:500}.console-input[data-v-56e83464],.console-select[data-v-56e83464]{width:100%;height:44px;background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:0 var(--space-4);color:var(--text-primary);font-size:14px;transition:border-color var(--duration-fast) var(--ease-out)}.console-input[data-v-56e83464]:focus,.console-select[data-v-56e83464]:focus{outline:none;border-color:var(--warn-red)}.console-input[data-v-56e83464]::placeholder{color:var(--text-muted)}.start-btn[data-v-56e83464]{width:100%;height:48px;background:linear-gradient(90deg,var(--warn-red),#ef4444);border:none;border-radius:var(--radius-md);color:#fff;font-size:15px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:var(--space-2);transition:all var(--duration-normal) var(--ease-out);margin-top:var(--space-5)}.start-btn[data-v-56e83464]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 22px #dc26264d}.start-btn[data-v-56e83464]:disabled{opacity:.65;cursor:not-allowed}.start-btn .is-loading[data-v-56e83464]{animation:spin 1s linear infinite}.console-hint[data-v-56e83464]{padding:var(--space-3) var(--space-6);background:#dc262614;border-top:1px solid rgba(220,38,38,.15);color:var(--text-tertiary);font-size:12px;display:flex;align-items:center;gap:var(--space-2)}.fade-enter-active[data-v-56e83464],.fade-leave-active[data-v-56e83464]{transition:opacity .25s var(--ease-out)}.fade-enter-from[data-v-56e83464],.fade-leave-to[data-v-56e83464]{opacity:0}.dashboard-container[data-v-a12e647e]{flex:1;display:flex;flex-wrap:wrap;gap:var(--space-5);height:100%;position:relative;animation:fadeIn .5s var(--ease-out)}.toolbar[data-v-a12e647e]{width:100%;display:flex;align-items:center;gap:var(--space-5);padding:var(--space-4) var(--space-5);flex-wrap:wrap;animation:slideDown .45s var(--ease-out)}.toolbar-section[data-v-a12e647e]{display:flex;align-items:center;gap:var(--space-4)}.toolbar-label[data-v-a12e647e]{font-size:12px;font-weight:600;color:var(--text-tertiary);white-space:nowrap}.slider-group[data-v-a12e647e]{display:flex;align-items:center;gap:var(--space-2);font-size:12px}.slider-group label[data-v-a12e647e]{color:var(--text-secondary);white-space:nowrap}.range-slider[data-v-a12e647e]{width:100px;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#94a3b826;border-radius:2px;outline:none}.range-slider[data-v-a12e647e]::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--brand-400);cursor:pointer;box-shadow:0 0 8px #3b82f666}.slider-value[data-v-a12e647e]{color:var(--brand-400);font-family:var(--font-mono);min-width:50px}.toolbar-divider[data-v-a12e647e]{width:1px;height:24px;background:var(--border-subtle)}.toolbar-select[data-v-a12e647e]{background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:6px 12px;color:var(--text-primary);font-size:12px;min-width:140px}.station-tags[data-v-a12e647e]{display:flex;gap:var(--space-2)}.station-tag[data-v-a12e647e]{display:flex;align-items:center;gap:4px;padding:4px 10px;background:#94a3b814;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-size:12px;color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.station-tag[data-v-a12e647e]:hover,.station-tag.active[data-v-a12e647e]{background:#3b82f61f;border-color:#3b82f64d;color:var(--brand-400)}.station-tag input[data-v-a12e647e]{display:none}.global-api-status[data-v-a12e647e]{position:absolute;top:-6px;right:0;display:flex;align-items:center;gap:var(--space-2);padding:8px 16px;background:#22c55e1a;border:1px solid rgba(34,197,94,.25);border-radius:var(--radius-full);z-index:100;animation:slideUp .5s var(--ease-out) .1s both}.global-api-status .status-dot[data-v-a12e647e]{width:8px;height:8px;border-radius:50%;background:#22c55e}.global-api-status .status-text[data-v-a12e647e]{font-size:12px;font-weight:500;color:#4ade80}.map-section[data-v-a12e647e]{flex:1.2;min-width:420px;display:flex;flex-direction:column;position:relative;animation:slideUp .5s var(--ease-out) .15s both}.section-header[data-v-a12e647e]{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.header-title[data-v-a12e647e]{display:flex;align-items:center;gap:var(--space-2);font-size:15px;font-weight:600;color:var(--text-primary)}.title-icon[data-v-a12e647e]{font-size:18px;color:var(--brand-400)}.warning-badge[data-v-a12e647e]{padding:4px 12px;border-radius:var(--radius-sm);font-size:12px;font-weight:700}.warning-badge.red[data-v-a12e647e]{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.3)}.warning-badge.orange[data-v-a12e647e]{background:#f9731626;color:#fb923c;border:1px solid rgba(249,115,22,.3)}.warning-badge.yellow[data-v-a12e647e]{background:#eab30826;color:#fde047;border:1px solid rgba(234,179,8,.3)}.map-container[data-v-a12e647e]{flex:1;min-height:0}.map-legend[data-v-a12e647e]{position:absolute;bottom:var(--space-4);left:var(--space-5);display:flex;gap:var(--space-4);background:#111827e6;padding:10px 16px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);box-shadow:var(--shadow-md)}.legend-item[data-v-a12e647e]{display:flex;align-items:center;gap:var(--space-2);font-size:12px;color:var(--text-secondary)}.legend-dot[data-v-a12e647e]{width:10px;height:10px;border-radius:50%}.legend-dot.residential[data-v-a12e647e]{background:#eab308}.legend-dot.highway[data-v-a12e647e]{background:#94a3b8;border-radius:2px}.legend-dot.pasture[data-v-a12e647e]{background:#22c55e;clip-path:polygon(50% 0%,0% 100%,100% 100%)}.point-drawer[data-v-a12e647e]{position:absolute;top:60px;right:var(--space-4);width:240px;background:#111827f2;border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.drawer-header[data-v-a12e647e]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle)}.drawer-title[data-v-a12e647e]{font-size:14px;font-weight:600;color:var(--text-primary)}.drawer-close[data-v-a12e647e]{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#94a3b81a;border:none;border-radius:var(--radius-sm);color:var(--text-tertiary);cursor:pointer}.drawer-body[data-v-a12e647e]{padding:var(--space-4) var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.drawer-row[data-v-a12e647e]{display:flex;justify-content:space-between;align-items:center;font-size:12px}.drawer-label[data-v-a12e647e]{color:var(--text-tertiary)}.drawer-value[data-v-a12e647e]{color:var(--text-primary);font-weight:500}.drawer-value.risk[data-v-a12e647e]{padding:2px 8px;background:#00000040;border-radius:var(--radius-sm);border:1px solid currentColor}.drawer-value.coords[data-v-a12e647e]{color:var(--text-tertiary);font-family:var(--font-mono);font-size:11px}[data-v-a12e647e] .map-tooltip{padding:12px 16px;min-width:180px}[data-v-a12e647e] .tooltip-header{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border-subtle)}[data-v-a12e647e] .tooltip-row{display:flex;align-items:center;gap:6px;margin:6px 0;font-size:12px}[data-v-a12e647e] .tooltip-label{color:var(--text-tertiary);font-size:11px}[data-v-a12e647e] .tooltip-value{color:var(--text-primary);font-weight:500}[data-v-a12e647e] .tooltip-value.risk-badge{font-weight:700;font-size:12px;padding:2px 8px;background:#00000040;border-radius:var(--radius-sm);border:1px solid currentColor}[data-v-a12e647e] .tooltip-value.coords{color:var(--text-tertiary);font-size:10px;font-family:var(--font-mono)}.chart-section[data-v-a12e647e]{flex:1;min-width:360px;display:flex;flex-direction:column;animation:slideUp .5s var(--ease-out) .2s both}.peak-value[data-v-a12e647e]{font-size:13px;color:var(--text-tertiary)}.peak-value strong[data-v-a12e647e]{color:var(--text-primary);font-size:17px;font-weight:700}.chart-container[data-v-a12e647e]{flex:1;min-height:0}.progress-row[data-v-a12e647e]{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-3);padding:var(--space-3) var(--space-4);background:#0f172a80;border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.progress-label[data-v-a12e647e]{font-size:11px;color:var(--text-tertiary);white-space:nowrap}.progress-track[data-v-a12e647e]{flex:1;height:6px;background:#94a3b81a;border-radius:3px;overflow:hidden}.progress-fill[data-v-a12e647e]{height:100%;background:linear-gradient(90deg,var(--brand-500),#60a5fa);border-radius:3px;transition:width .3s linear}.progress-actions[data-v-a12e647e]{display:flex;align-items:center;gap:var(--space-2)}.speed-btn[data-v-a12e647e]{padding:3px 8px;background:#94a3b814;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-tertiary);font-size:11px;cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.speed-btn.active[data-v-a12e647e],.speed-btn[data-v-a12e647e]:hover{background:#3b82f61f;border-color:#3b82f64d;color:var(--brand-400)}.pause-btn[data-v-a12e647e]{display:flex;align-items:center;gap:4px;padding:4px 10px;background:#3b82f61f;border:1px solid rgba(59,130,246,.25);border-radius:var(--radius-sm);color:var(--brand-400);font-size:11px;cursor:pointer}.metrics-row[data-v-a12e647e]{display:flex;gap:var(--space-4);margin-top:var(--space-4)}.metric-card[data-v-a12e647e]{flex:1;background:#0f172a80;border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4);text-align:center;transition:all var(--duration-normal) var(--ease-out)}.metric-card[data-v-a12e647e]:hover{border-color:var(--border-default);transform:translateY(-2px)}.metric-label[data-v-a12e647e]{font-size:11px;color:var(--text-tertiary);margin-bottom:var(--space-2);letter-spacing:.5px}.metric-value[data-v-a12e647e]{font-size:22px;font-weight:700;color:var(--text-primary);transition:color var(--duration-normal) var(--ease-out)}.metric-value .unit[data-v-a12e647e]{font-size:12px;color:var(--text-tertiary);margin-left:2px;font-weight:500}.metric-value.red[data-v-a12e647e]{color:#f87171}.metric-value.orange[data-v-a12e647e]{color:#fb923c}.metric-value.yellow[data-v-a12e647e]{color:#fde047}.metric-value.blue[data-v-a12e647e]{color:#38bdf8}.sensor-float[data-v-a12e647e]{position:absolute;top:70px;right:var(--space-4);width:220px;padding:var(--space-4);z-index:40;animation:slideLeft .5s var(--ease-out)}.sensor-header[data-v-a12e647e]{display:flex;align-items:center;gap:var(--space-2);font-size:12px;font-weight:600;color:var(--text-primary);margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-subtle)}.sensor-time[data-v-a12e647e]{margin-left:auto;font-size:11px;color:var(--text-muted);font-family:var(--font-mono)}.sensor-grid[data-v-a12e647e]{display:flex;flex-direction:column;gap:var(--space-2)}.sensor-item[data-v-a12e647e]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) 0;border-bottom:1px solid rgba(148,163,184,.06)}.sensor-item[data-v-a12e647e]:last-child{border-bottom:none}.sensor-name[data-v-a12e647e]{font-size:12px;color:var(--text-secondary)}.sensor-value[data-v-a12e647e]{font-size:13px;font-weight:700;color:#22c55e;font-family:var(--font-mono)}.sensor-value.warning[data-v-a12e647e]{color:#f87171}.sensor-flow[data-v-a12e647e]{font-size:11px;color:var(--text-muted);font-family:var(--font-mono)}.data-source-panel[data-v-a12e647e]{width:100%;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5);animation:slideUp .5s var(--ease-out) .25s both}.panel-header[data-v-a12e647e]{display:flex;align-items:center;gap:var(--space-2);font-size:14px;font-weight:600;color:var(--text-primary)}.panel-icon[data-v-a12e647e]{font-size:18px;color:var(--brand-400)}.data-source-grid[data-v-a12e647e]{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4)}.data-source-item[data-v-a12e647e]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);background:#0f172a66;border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:all var(--duration-normal) var(--ease-out)}.data-source-item[data-v-a12e647e]:hover{border-color:var(--border-default);background:#0f172a99;transform:translateY(-2px)}.source-info[data-v-a12e647e]{display:flex;flex-direction:column;gap:4px}.source-name[data-v-a12e647e]{font-size:13px;font-weight:500;color:var(--text-secondary)}.source-detail[data-v-a12e647e]{font-size:11px;color:var(--text-muted)}.source-status[data-v-a12e647e]{display:flex;align-items:center;gap:6px}.source-status .status-dot[data-v-a12e647e]{width:8px;height:8px;border-radius:50%;animation:pulse-dot-a12e647e 2s cubic-bezier(.4,0,.6,1) infinite}.source-status .status-dot.running[data-v-a12e647e]{background:#22c55e}.source-status .status-dot.ready[data-v-a12e647e]{background:#38bdf8}.source-status .status-text[data-v-a12e647e]{font-size:11px;color:var(--text-tertiary);font-weight:500}@keyframes pulse-dot-a12e647e{0%,to{opacity:1;transform:scale(1)}50%{opacity:.65;transform:scale(.85)}}.report-modal-overlay[data-v-a12e647e]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:9999}.report-modal-content[data-v-a12e647e]{width:210mm;min-height:297mm;max-height:90vh;background:#fff;box-shadow:0 20px 60px #00000080;display:flex;flex-direction:column;overflow-y:auto;position:relative}.report-header[data-v-a12e647e]{padding:60px 60px 20px;text-align:center}.report-title[data-v-a12e647e]{font-family:SimSun,宋体,serif;font-size:32px;font-weight:700;color:#c00;letter-spacing:4px;margin:0;line-height:1.4}.report-red-line[data-v-a12e647e]{width:100%;height:3px;background:#c00;margin-top:20px}.report-body[data-v-a12e647e]{flex:1;padding:40px 60px;font-family:SimSun,宋体,serif;font-size:16px;line-height:1.8;color:#333;text-align:justify}.report-text[data-v-a12e647e]{margin-bottom:24px;text-indent:2em}.highlight-value[data-v-a12e647e]{color:#c00;font-weight:700;font-size:18px;padding:0 4px}.report-list[data-v-a12e647e]{margin:0 0 24px 2em;padding:0}.report-list li[data-v-a12e647e]{margin-bottom:12px;line-height:1.6}.report-footer[data-v-a12e647e]{padding:20px 60px 40px;display:flex;justify-content:center;gap:20px;border-top:1px solid #eee}.print-btn[data-v-a12e647e]{padding:12px 32px;background:#c00;border:none;border-radius:4px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all var(--duration-normal) var(--ease-out)}.print-btn[data-v-a12e647e]:hover{background:#a00;transform:translateY(-2px);box-shadow:0 4px 12px #cc00004d}.report-footer .close-btn[data-v-a12e647e]{padding:12px 32px;background:#f5f5f5;border:1px solid #ddd;border-radius:4px;color:#666;font-size:16px;cursor:pointer;transition:all var(--duration-normal) var(--ease-out)}.report-footer .close-btn[data-v-a12e647e]:hover{background:#e8e8e8;color:#333}@media print{.report-modal-overlay[data-v-a12e647e]{background:#fff;position:static;width:auto;height:auto}.report-modal-content[data-v-a12e647e]{width:100%;max-height:none;box-shadow:none}.report-footer[data-v-a12e647e]{display:none}}.fade-enter-active[data-v-a12e647e],.fade-leave-active[data-v-a12e647e]{transition:opacity .25s var(--ease-out)}.fade-enter-from[data-v-a12e647e],.fade-leave-to[data-v-a12e647e]{opacity:0}.slide-right-enter-active[data-v-a12e647e],.slide-right-leave-active[data-v-a12e647e]{transition:all .35s var(--ease-out)}.slide-right-enter-from[data-v-a12e647e],.slide-right-leave-to[data-v-a12e647e]{opacity:0;transform:translate(20px)}.slide-left-enter-active[data-v-a12e647e],.slide-left-leave-active[data-v-a12e647e]{transition:all .45s var(--ease-out)}.slide-left-enter-from[data-v-a12e647e],.slide-left-leave-to[data-v-a12e647e]{opacity:0;transform:translate(20px)}@media (max-width: 1200px){.data-source-grid[data-v-a12e647e]{grid-template-columns:repeat(2,1fr)}.toolbar[data-v-a12e647e]{flex-direction:column;align-items:flex-start}.toolbar-divider[data-v-a12e647e]{width:100%;height:1px}}@media (max-width: 900px){.dashboard-container[data-v-a12e647e]{flex-direction:column}.map-section[data-v-a12e647e],.chart-section[data-v-a12e647e]{flex:none;min-height:360px}}.data-hub-container[data-v-3ca9c7de]{flex:1;display:flex;flex-direction:column;gap:var(--space-5);height:100%;overflow-y:auto;padding-right:4px;animation:fadeIn .5s var(--ease-out)}.stats-row[data-v-3ca9c7de]{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5)}.stat-card[data-v-3ca9c7de]{padding:var(--space-5) var(--space-6);display:flex;align-items:center;gap:var(--space-4);position:relative;overflow:hidden;animation:slideUp .5s var(--ease-out) both}.stat-card[data-v-3ca9c7de]:nth-child(1){animation-delay:.05s}.stat-card[data-v-3ca9c7de]:nth-child(2){animation-delay:.1s}.stat-card[data-v-3ca9c7de]:nth-child(3){animation-delay:.15s}.stat-icon[data-v-3ca9c7de]{width:52px;height:52px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:26px;background:#ffffff0d}.stat-icon.blue[data-v-3ca9c7de]{background:#3b82f61f;color:#60a5fa;border:1px solid rgba(59,130,246,.2)}.stat-icon.cyan[data-v-3ca9c7de]{background:#06b6d41f;color:#22d3ee;border:1px solid rgba(6,182,212,.2)}.stat-icon.purple[data-v-3ca9c7de]{background:#8b5cf61f;color:#a78bfa;border:1px solid rgba(139,92,246,.2)}.stat-content[data-v-3ca9c7de]{flex:1}.stat-value[data-v-3ca9c7de]{font-size:30px;font-weight:700;color:var(--text-primary);line-height:1;margin-bottom:6px}.stat-label[data-v-3ca9c7de]{font-size:13px;color:var(--text-tertiary)}.stat-trend[data-v-3ca9c7de]{display:flex;align-items:center;gap:4px;font-size:12px;color:#4ade80;background:#4ade8014;padding:4px 10px;border-radius:var(--radius-full);border:1px solid rgba(74,222,128,.15)}.storage-bar[data-v-3ca9c7de]{position:absolute;bottom:0;left:0;right:0;height:3px;background:#94a3b81a}.storage-fill[data-v-3ca9c7de]{height:100%;background:linear-gradient(90deg,#8b5cf6,#a78bfa);transition:width .6s ease}.upload-section[data-v-3ca9c7de]{min-height:190px;cursor:pointer;position:relative;overflow:hidden;transition:all var(--duration-normal) var(--ease-out);display:flex;align-items:center;justify-content:center;border-style:dashed;animation:slideUp .5s var(--ease-out) .1s both}.upload-section[data-v-3ca9c7de]:hover:not(.is-uploading):not(.is-success){border-color:var(--brand-500);background:var(--bg-elevated)}.upload-section.is-dragover[data-v-3ca9c7de]{border-color:var(--brand-500);background:#3b82f614;transform:scale(1.01)}.upload-section.is-uploading[data-v-3ca9c7de]{border-style:solid;border-color:var(--border-default);cursor:default}.upload-section.is-success[data-v-3ca9c7de]{border-color:#22c55e;background:#22c55e0d}.upload-idle[data-v-3ca9c7de]{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-8)}.upload-icon-wrapper[data-v-3ca9c7de]{width:60px;height:60px;border-radius:50%;background:#3b82f614;border:1px solid rgba(59,130,246,.2);display:flex;align-items:center;justify-content:center;transition:all var(--duration-normal) var(--ease-out)}.upload-section:hover .upload-icon-wrapper[data-v-3ca9c7de]{transform:scale(1.08);background:#3b82f61f}.upload-icon[data-v-3ca9c7de]{font-size:28px;color:var(--brand-400)}.upload-text[data-v-3ca9c7de]{text-align:center}.upload-text h3[data-v-3ca9c7de]{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.upload-text p[data-v-3ca9c7de]{font-size:13px;color:var(--text-tertiary)}.upload-formats[data-v-3ca9c7de]{display:flex;gap:var(--space-2);margin-top:2px}.format-tag[data-v-3ca9c7de]{padding:4px 10px;background:#94a3b81a;border-radius:var(--radius-sm);font-size:11px;color:var(--text-tertiary)}.security-badge[data-v-3ca9c7de]{display:flex;align-items:center;gap:6px;margin-top:2px;padding:6px 14px;background:#f59e0b14;border:1px solid rgba(245,158,11,.15);border-radius:var(--radius-full);font-size:12px;color:#fbbf24}.upload-progress[data-v-3ca9c7de]{width:100%;max-width:640px;padding:var(--space-6) var(--space-8)}.progress-header[data-v-3ca9c7de]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.file-info[data-v-3ca9c7de]{display:flex;align-items:center;gap:10px}.file-icon[data-v-3ca9c7de]{font-size:22px;color:var(--brand-400)}.file-name[data-v-3ca9c7de]{font-size:14px;font-weight:500;color:var(--text-secondary)}.progress-percent[data-v-3ca9c7de]{font-size:18px;font-weight:700;color:var(--brand-400);font-family:var(--font-mono)}.progress-bar-wrapper[data-v-3ca9c7de]{margin-bottom:var(--space-5)}.progress-bar[data-v-3ca9c7de]{height:8px;background:#94a3b81a;border-radius:4px;overflow:hidden}.progress-fill[data-v-3ca9c7de]{height:100%;background:var(--brand-500);border-radius:4px;transition:width .1s linear}.progress-fill.is-success[data-v-3ca9c7de]{background:#22c55e}.progress-steps[data-v-3ca9c7de]{display:flex;justify-content:space-between;margin-bottom:var(--space-4)}.step-item[data-v-3ca9c7de]{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;position:relative}.step-item[data-v-3ca9c7de]:not(:last-child):after{content:"";position:absolute;top:6px;left:50%;width:100%;height:2px;background:#94a3b81a}.step-dot[data-v-3ca9c7de]{width:14px;height:14px;border-radius:50%;background:#94a3b81a;border:2px solid rgba(148,163,184,.2);position:relative;z-index:1;transition:all var(--duration-normal) var(--ease-out)}.step-item.is-active .step-dot[data-v-3ca9c7de]{background:var(--brand-500);border-color:var(--brand-400);animation:pulse-dot-3ca9c7de 1.5s infinite}@keyframes pulse-dot-3ca9c7de{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.step-item.is-completed .step-dot[data-v-3ca9c7de]{background:#22c55e;border-color:#4ade80}.step-text[data-v-3ca9c7de]{font-size:11px;color:var(--text-muted);text-align:center;transition:all var(--duration-normal) var(--ease-out)}.step-item.is-active .step-text[data-v-3ca9c7de]{color:var(--brand-400);font-weight:500}.current-status[data-v-3ca9c7de]{display:flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:13px;color:var(--brand-400)}.is-loading[data-v-3ca9c7de]{animation:spin 1s linear infinite}.upload-success[data-v-3ca9c7de]{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);animation:fadeIn .5s var(--ease-out)}.success-icon[data-v-3ca9c7de]{width:56px;height:56px;border-radius:50%;background:#22c55e;display:flex;align-items:center;justify-content:center;font-size:28px;color:#fff}.upload-success h3[data-v-3ca9c7de]{font-size:18px;font-weight:600;color:#4ade80}.upload-success p[data-v-3ca9c7de]{font-size:13px;color:var(--text-tertiary)}.success-actions[data-v-3ca9c7de]{display:flex;gap:var(--space-3);margin-top:4px}.data-table-section[data-v-3ca9c7de]{flex:1;display:flex;flex-direction:column;overflow:hidden;animation:slideUp .5s var(--ease-out) .15s both}.table-header[data-v-3ca9c7de]{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle)}.header-title[data-v-3ca9c7de]{display:flex;align-items:center;gap:var(--space-2);font-size:15px;font-weight:600;color:var(--text-primary)}.title-icon[data-v-3ca9c7de]{font-size:18px;color:var(--brand-400)}.live-tag[data-v-3ca9c7de]{padding:2px 8px;background:#22c55e1f;border-radius:var(--radius-sm);font-size:10px;font-weight:700;color:#4ade80;animation:live-pulse-3ca9c7de 2s infinite}@keyframes live-pulse-3ca9c7de{0%,to{opacity:1}50%{opacity:.6}}.header-actions[data-v-3ca9c7de]{display:flex;gap:var(--space-2)}.table-content[data-v-3ca9c7de]{flex:1;overflow:auto}.data-table[data-v-3ca9c7de]{width:100%;border-collapse:collapse;font-size:14px}.data-table th[data-v-3ca9c7de]{text-align:left;padding:var(--space-3) var(--space-4);font-size:12px;font-weight:600;color:var(--text-tertiary);letter-spacing:.3px;border-bottom:1px solid var(--border-subtle);background:#0f172a80}.data-table td[data-v-3ca9c7de]{padding:var(--space-4);color:var(--text-secondary);border-bottom:1px solid var(--border-subtle)}.data-table tbody tr[data-v-3ca9c7de]{transition:background var(--duration-fast) var(--ease-out)}.data-table tbody tr[data-v-3ca9c7de]:hover{background:#94a3b80a}.col-source[data-v-3ca9c7de]{width:30%}.col-method[data-v-3ca9c7de]{width:25%}.col-sync[data-v-3ca9c7de]{width:20%}.col-status[data-v-3ca9c7de]{width:15%}.col-action[data-v-3ca9c7de]{width:10%;text-align:right}.source-cell[data-v-3ca9c7de]{display:flex;align-items:center;gap:14px}.source-icon[data-v-3ca9c7de]{width:42px;height:42px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;color:var(--text-primary)}.source-info[data-v-3ca9c7de]{display:flex;flex-direction:column;gap:4px}.source-name[data-v-3ca9c7de]{font-size:14px;font-weight:600;color:var(--text-secondary)}.source-desc[data-v-3ca9c7de]{font-size:12px;color:var(--text-muted)}.method-cell[data-v-3ca9c7de]{display:flex;flex-direction:column;gap:4px}.method-tag[data-v-3ca9c7de]{width:fit-content;padding:3px 10px;border-radius:var(--radius-sm);font-size:11px;font-weight:600}.method-tag.blue[data-v-3ca9c7de]{background:#3b82f61f;color:#60a5fa}.method-tag.green[data-v-3ca9c7de]{background:#22c55e1f;color:#4ade80}.method-tag.yellow[data-v-3ca9c7de]{background:#f59e0b1f;color:#fbbf24}.method-detail[data-v-3ca9c7de]{font-size:11px;color:var(--text-muted)}.sync-cell[data-v-3ca9c7de]{display:flex;flex-direction:column;gap:2px}.sync-time[data-v-3ca9c7de]{font-size:13px;color:var(--text-secondary);font-family:var(--font-mono)}.sync-ago[data-v-3ca9c7de]{font-size:11px;color:var(--text-muted)}.status-cell[data-v-3ca9c7de]{display:flex;align-items:center;gap:8px}.status-cell .status-dot[data-v-3ca9c7de]{width:8px;height:8px;border-radius:50%;background:#22c55e}.status-cell .status-dot.running[data-v-3ca9c7de]{animation:pulse-ring 2s infinite}.status-cell .status-text[data-v-3ca9c7de]{font-size:13px;font-weight:500;color:#4ade80}.table-footer[data-v-3ca9c7de]{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-5);background:#0f172a80;border-top:1px solid var(--border-subtle)}.footer-info[data-v-3ca9c7de]{font-size:13px;color:var(--text-muted)}.footer-stats[data-v-3ca9c7de]{display:flex;gap:var(--space-5)}.footer-stats .stat-item[data-v-3ca9c7de]{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-tertiary)}.footer-stats .stat-dot[data-v-3ca9c7de]{width:6px;height:6px;border-radius:50%}.footer-stats .stat-dot.green[data-v-3ca9c7de]{background:#22c55e}.footer-stats .stat-dot.yellow[data-v-3ca9c7de]{background:#eab308}.history-section[data-v-3ca9c7de]{flex:1;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5);animation:slideUp .5s var(--ease-out) .2s both}.history-header[data-v-3ca9c7de]{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--space-3);border-bottom:1px solid var(--border-subtle)}.history-header .header-title[data-v-3ca9c7de]{display:flex;align-items:center;gap:var(--space-2);font-size:15px;font-weight:600;color:var(--text-primary)}.history-header .title-icon[data-v-3ca9c7de]{font-size:18px;color:var(--brand-400)}.history-stats[data-v-3ca9c7de]{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4)}.history-stat[data-v-3ca9c7de]{padding:var(--space-4);background:#0f172a66;border:1px solid var(--border-subtle);border-radius:var(--radius-md);text-align:center}.history-stat .stat-value[data-v-3ca9c7de]{font-size:24px;font-weight:700;color:var(--text-primary);font-family:var(--font-mono)}.history-stat .stat-value.red[data-v-3ca9c7de]{color:#f87171}.history-stat .stat-value.orange[data-v-3ca9c7de]{color:#fb923c}.history-stat .stat-value.yellow[data-v-3ca9c7de]{color:#fde047}.history-stat .stat-value.blue[data-v-3ca9c7de]{color:#38bdf8}.history-stat .stat-label[data-v-3ca9c7de]{font-size:12px;color:var(--text-tertiary);margin-top:var(--space-2)}.compare-chart-wrapper[data-v-3ca9c7de]{padding:var(--space-4);background:#0f172a4d;border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.compare-title[data-v-3ca9c7de]{display:flex;align-items:center;gap:var(--space-2);font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:var(--space-3)}.compare-chart[data-v-3ca9c7de]{width:100%;height:260px}.history-table-wrapper[data-v-3ca9c7de]{flex:1;overflow:auto}.history-table th[data-v-3ca9c7de],.history-table td[data-v-3ca9c7de]{text-align:center}.history-table td[data-v-3ca9c7de]:first-child{width:50px}.scenario-tag[data-v-3ca9c7de]{padding:2px 8px;border-radius:var(--radius-sm);font-size:11px;background:#3b82f61a;color:#60a5fa}.level-badge[data-v-3ca9c7de]{padding:2px 8px;border-radius:var(--radius-sm);font-size:11px;font-weight:600}.level-badge.red[data-v-3ca9c7de]{background:#ef44441f;color:#f87171}.level-badge.orange[data-v-3ca9c7de]{background:#f973161f;color:#fb923c}.level-badge.yellow[data-v-3ca9c7de]{background:#eab3081f;color:#fde047}.level-badge.blue[data-v-3ca9c7de]{background:#38bdf81f;color:#38bdf8}.empty-history[data-v-3ca9c7de]{padding:var(--space-8);text-align:center;color:var(--text-muted);font-size:13px}@media (max-width: 1100px){.stats-row[data-v-3ca9c7de]{grid-template-columns:1fr}.data-table[data-v-3ca9c7de]{min-width:900px}.history-stats[data-v-3ca9c7de]{grid-template-columns:repeat(2,1fr)}}.sms-dispatch-container[data-v-09280500]{flex:1;display:flex;flex-direction:column;gap:var(--space-5);height:100%;overflow-y:auto;animation:fadeIn .5s var(--ease-out)}.stats-dashboard[data-v-09280500]{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-5)}.stat-card[data-v-09280500]{display:flex;align-items:center;gap:var(--space-5);padding:var(--space-6);position:relative;overflow:hidden;animation:slideUp .5s var(--ease-out) both}.stat-card[data-v-09280500]:nth-child(1){animation-delay:.05s}.stat-card[data-v-09280500]:nth-child(2){animation-delay:.1s}.stat-card.primary[data-v-09280500]{border-left:3px solid var(--brand-500)}.stat-card.success[data-v-09280500]{border-left:3px solid #22c55e}.stat-icon[data-v-09280500]{font-size:24px;width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border-radius:var(--radius-md)}.stat-card.primary .stat-icon[data-v-09280500]{background:#3b82f61f;color:#60a5fa}.stat-card.success .stat-icon[data-v-09280500]{background:#22c55e1f;color:#4ade80}.stat-content[data-v-09280500]{flex:1}.stat-value[data-v-09280500]{font-size:38px;font-weight:700;line-height:1;margin-bottom:8px;color:var(--text-primary)}.stat-label[data-v-09280500]{font-size:14px;color:var(--text-tertiary);letter-spacing:.5px}.stat-unit[data-v-09280500]{font-size:16px;font-weight:600;color:var(--text-muted);margin-left:4px}.stat-badge[data-v-09280500]{padding:5px 14px;background:#22c55e1a;border:1px solid rgba(34,197,94,.2);border-radius:var(--radius-full);font-size:12px;font-weight:600;color:#4ade80}.emergency-action-section[data-v-09280500]{padding:var(--space-6);display:flex;justify-content:center;animation:slideUp .5s var(--ease-out) .1s both}.action-wrapper[data-v-09280500]{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);width:100%;max-width:640px}.emergency-btn[data-v-09280500]{display:flex;align-items:center;justify-content:center;gap:var(--space-3);width:100%;padding:22px 40px;background:linear-gradient(90deg,#b91c1c,#dc2626,#b91c1c);background-size:200% 100%;border:none;border-radius:var(--radius-lg);color:#fff;font-size:17px;font-weight:700;cursor:pointer;position:relative;overflow:hidden;box-shadow:0 8px 28px #dc262640;transition:all var(--duration-normal) var(--ease-out);animation:emergencyPulse-09280500 2.5s infinite}@keyframes emergencyPulse-09280500{0%,to{box-shadow:0 8px 28px #dc262640}50%{box-shadow:0 10px 36px #dc262659}}.emergency-btn[data-v-09280500]:hover:not(:disabled){transform:translateY(-2px);background-position:100% 0}.emergency-btn[data-v-09280500]:active:not(:disabled){transform:translateY(0)}.emergency-btn.sending[data-v-09280500]{background:#7f1d1d;animation:none;cursor:not-allowed}.btn-icon[data-v-09280500]{font-size:22px}.btn-text[data-v-09280500]{letter-spacing:1px}.btn-spinner[data-v-09280500]{font-size:18px;animation:spin 1s linear infinite}.action-hint[data-v-09280500]{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-muted)}.hint-icon[data-v-09280500]{font-size:14px;color:#fbbf24}.dispatch-records-section[data-v-09280500]{flex:1;display:flex;flex-direction:column;overflow:hidden;animation:slideUp .5s var(--ease-out) .15s both}.section-header[data-v-09280500]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle)}.section-title[data-v-09280500]{display:flex;align-items:center;gap:var(--space-2);font-size:15px;font-weight:600;color:var(--text-primary)}.title-icon[data-v-09280500]{font-size:18px;color:var(--brand-400)}.section-actions[data-v-09280500]{display:flex;align-items:center;gap:var(--space-3)}.filter-select[data-v-09280500]{padding:8px 32px 8px 14px;background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);font-size:13px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.filter-select[data-v-09280500]:focus{outline:none;border-color:var(--border-active)}.filter-select option[data-v-09280500]{background:var(--bg-card);color:var(--text-primary)}.table-wrapper[data-v-09280500]{flex:1;overflow:auto;padding:0 var(--space-5)}.records-table[data-v-09280500]{width:100%;border-collapse:collapse;font-size:14px}.records-table th[data-v-09280500]{text-align:left;padding:var(--space-3) var(--space-3);font-weight:600;color:var(--text-tertiary);border-bottom:1px solid var(--border-subtle);white-space:nowrap}.records-table td[data-v-09280500]{padding:var(--space-3);color:var(--text-secondary);border-bottom:1px solid var(--border-subtle)}.records-table tbody tr[data-v-09280500]{transition:background var(--duration-fast) var(--ease-out)}.records-table tbody tr[data-v-09280500]:hover{background:#94a3b80a}.col-time[data-v-09280500]{width:18%}.col-area[data-v-09280500]{width:22%}.col-manager[data-v-09280500]{width:25%}.col-level[data-v-09280500]{width:17%}.col-status[data-v-09280500]{width:18%}.time-text[data-v-09280500]{color:var(--text-tertiary);font-family:var(--font-mono);font-size:13px}.area-info[data-v-09280500]{display:flex;align-items:center;gap:8px}.area-icon[data-v-09280500]{font-size:16px;color:var(--brand-400)}.area-name[data-v-09280500]{font-weight:500;color:var(--text-secondary)}.manager-info[data-v-09280500]{display:flex;align-items:center;gap:12px}.manager-avatar[data-v-09280500]{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:50%;font-size:13px;font-weight:600;color:#60a5fa}.manager-detail[data-v-09280500]{display:flex;flex-direction:column;gap:2px}.manager-name[data-v-09280500]{font-weight:500;color:var(--text-secondary)}.manager-phone[data-v-09280500]{font-size:12px;color:var(--text-muted)}.level-tag[data-v-09280500]{display:inline-flex;align-items:center;padding:4px 12px;border-radius:var(--radius-sm);font-size:12px;font-weight:600}.level-tag.red[data-v-09280500]{background:#ef44441a;color:#f87171;border:1px solid rgba(239,68,68,.2)}.level-tag.orange[data-v-09280500]{background:#f973161a;color:#fb923c;border:1px solid rgba(249,115,22,.2)}.level-tag.yellow[data-v-09280500]{background:#eab3081a;color:#fde047;border:1px solid rgba(234,179,8,.2)}.status-tag[data-v-09280500]{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:var(--radius-full);font-size:12px;font-weight:600}.status-tag.delivered[data-v-09280500]{background:#22c55e1a;color:#4ade80;border:1px solid rgba(34,197,94,.2)}.status-icon[data-v-09280500]{font-size:12px}.table-footer[data-v-09280500]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-top:1px solid var(--border-subtle);background:#0f172a80}.pagination-info[data-v-09280500]{font-size:13px;color:var(--text-muted)}.pagination[data-v-09280500]{display:flex;align-items:center;gap:var(--space-4)}.page-btn[data-v-09280500]{padding:6px 14px;font-size:13px}.page-number[data-v-09280500]{font-size:13px;color:var(--text-tertiary)}.modal-overlay[data-v-09280500]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:9999}.confirm-modal[data-v-09280500]{width:460px;max-width:92vw;animation:modalIn-09280500 .3s var(--ease-out)}@keyframes modalIn-09280500{0%{opacity:0;transform:scale(.97) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header[data-v-09280500]{display:flex;align-items:center;gap:12px;padding:var(--space-6);background:linear-gradient(90deg,rgba(220,38,38,.12),transparent);border-bottom:1px solid rgba(220,38,38,.15)}.warning-icon[data-v-09280500]{font-size:26px;color:#f87171}.modal-header h3[data-v-09280500]{font-size:17px;font-weight:700;color:#f87171}.modal-body[data-v-09280500]{padding:var(--space-6)}.modal-body p[data-v-09280500]{font-size:14px;color:var(--text-secondary);line-height:1.6;margin-bottom:var(--space-4)}.modal-body strong[data-v-09280500]{color:#f87171}.confirm-list[data-v-09280500]{list-style:none;display:flex;flex-direction:column;gap:10px}.confirm-list li[data-v-09280500]{font-size:13px;color:var(--text-tertiary);padding-left:10px;border-left:2px solid rgba(34,197,94,.4)}.modal-footer[data-v-09280500]{display:flex;gap:var(--space-3);padding:0 var(--space-6) var(--space-6)}.btn-cancel[data-v-09280500],.btn-confirm[data-v-09280500]{flex:1;padding:12px 24px;font-size:14px}.btn-cancel[data-v-09280500]{justify-content:center}.success-toast[data-v-09280500]{position:fixed;bottom:40px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:14px 28px;background:#22c55ef2;border-radius:var(--radius-md);color:#fff;font-size:14px;font-weight:600;box-shadow:0 8px 32px #22c55e40;z-index:10000}.toast-icon[data-v-09280500]{font-size:18px}.fade-enter-active[data-v-09280500],.fade-leave-active[data-v-09280500]{transition:opacity .25s var(--ease-out)}.fade-enter-from[data-v-09280500],.fade-leave-to[data-v-09280500]{opacity:0}.slide-up-enter-active[data-v-09280500],.slide-up-leave-active[data-v-09280500]{transition:all .4s var(--ease-out)}.slide-up-enter-from[data-v-09280500],.slide-up-leave-to[data-v-09280500]{opacity:0;transform:translate(-50%) translateY(20px)}@media (max-width: 900px){.stats-dashboard[data-v-09280500]{grid-template-columns:1fr}}.model-manage-container[data-v-dc373f48]{flex:1;display:grid;grid-template-columns:360px 1fr;gap:var(--space-5);height:100%;overflow:hidden;animation:fadeIn .5s var(--ease-out)}.left-panel[data-v-dc373f48]{display:flex;flex-direction:column;gap:var(--space-5);overflow-y:auto;padding-right:4px}.model-status-card[data-v-dc373f48]{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-5);animation:slideUp .5s var(--ease-out) .05s both}.card-header[data-v-dc373f48]{display:flex;align-items:center;justify-content:space-between}.status-indicator[data-v-dc373f48]{display:flex;align-items:center;gap:8px}.status-dot[data-v-dc373f48]{width:10px;height:10px;border-radius:50%;background:#22c55e}.status-dot.running[data-v-dc373f48]{animation:pulse-ring 2s infinite}.status-text[data-v-dc373f48]{font-size:13px;font-weight:600;color:#4ade80}.model-version[data-v-dc373f48]{padding:4px 12px;background:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:var(--radius-full);font-size:12px;color:#60a5fa}.card-body[data-v-dc373f48]{display:flex;flex-direction:column;gap:var(--space-3)}.model-title[data-v-dc373f48]{font-size:20px;font-weight:700;color:var(--text-primary);line-height:1.4}.model-subtitle[data-v-dc373f48]{font-size:12px;color:var(--text-muted);font-style:italic;font-family:var(--font-mono)}.environment-badge[data-v-dc373f48]{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;background:#f59e0b14;border:1px solid rgba(245,158,11,.15);border-radius:var(--radius-md);margin-top:4px;width:fit-content}.badge-icon[data-v-dc373f48]{font-size:16px;color:#fbbf24}.badge-text[data-v-dc373f48]{font-size:13px;font-weight:600;color:#fbbf24}.model-metrics[data-v-dc373f48]{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-top:var(--space-2);padding-top:var(--space-5);border-top:1px solid var(--border-subtle)}.metric-item[data-v-dc373f48]{display:flex;flex-direction:column;gap:6px}.metric-label[data-v-dc373f48]{font-size:11px;color:var(--text-muted);letter-spacing:.3px}.metric-value[data-v-dc373f48]{font-size:20px;font-weight:700;color:var(--brand-400)}.card-footer[data-v-dc373f48]{padding-top:var(--space-4);border-top:1px solid var(--border-subtle)}.deployment-info[data-v-dc373f48]{display:flex;flex-direction:column;gap:10px}.info-item[data-v-dc373f48]{display:flex;justify-content:space-between;align-items:center;font-size:13px}.info-label[data-v-dc373f48]{color:var(--text-muted)}.info-value[data-v-dc373f48]{color:var(--text-secondary);font-weight:500}.architecture-card[data-v-dc373f48]{padding:var(--space-5);flex:1;animation:slideUp .5s var(--ease-out) .1s both}.architecture-card .card-title[data-v-dc373f48]{display:flex;align-items:center;gap:var(--space-2);font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:var(--space-5)}.architecture-diagram[data-v-dc373f48]{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;justify-content:center}.layer[data-v-dc373f48]{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 10px;background:#3b82f60d;border:1px solid rgba(59,130,246,.15);border-radius:var(--radius-md);min-width:70px}.layer-name[data-v-dc373f48]{font-size:12px;font-weight:600;color:var(--brand-400)}.layer-nodes[data-v-dc373f48]{display:flex;flex-direction:column;gap:4px}.node[data-v-dc373f48]{font-size:10px;color:var(--text-tertiary);padding:3px 8px;background:#3b82f60f;border-radius:var(--radius-sm);white-space:nowrap}.arrow[data-v-dc373f48]{font-size:18px;color:var(--text-muted)}.right-panel[data-v-dc373f48]{display:flex;flex-direction:column;gap:var(--space-5);overflow-y:auto;padding-right:4px}.shap-analysis-card[data-v-dc373f48]{flex:1;padding:var(--space-6);display:flex;flex-direction:column;min-height:380px;animation:slideUp .5s var(--ease-out) .15s both}.shap-analysis-card .card-header[data-v-dc373f48]{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6)}.shap-analysis-card .card-title[data-v-dc373f48]{display:flex;align-items:center;gap:var(--space-2);font-size:15px;font-weight:600;color:var(--text-primary)}.title-icon[data-v-dc373f48]{font-size:18px;color:var(--brand-400)}.chart-legend[data-v-dc373f48]{display:flex;align-items:center;gap:8px}.legend-item[data-v-dc373f48]{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-tertiary)}.legend-bar[data-v-dc373f48]{width:16px;height:8px;border-radius:2px}.legend-bar.positive[data-v-dc373f48]{background:linear-gradient(90deg,var(--brand-500),#60a5fa)}.chart-container[data-v-dc373f48]{flex:1;display:flex;gap:var(--space-4);min-height:260px}.y-axis[data-v-dc373f48]{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;padding-bottom:40px;padding-top:10px}.y-label[data-v-dc373f48]{font-size:11px;color:var(--text-muted);font-family:var(--font-mono)}.chart-area[data-v-dc373f48]{flex:1;position:relative;display:flex;flex-direction:column}.grid-lines[data-v-dc373f48]{position:absolute;top:0;left:0;right:0;bottom:40px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}.grid-line[data-v-dc373f48]{width:100%;height:1px;background:#94a3b814}.bars-container[data-v-dc373f48]{flex:1;display:flex;align-items:flex-end;justify-content:space-around;padding-bottom:40px;padding-top:10px;gap:var(--space-8)}.bar-item[data-v-dc373f48]{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-3);max-width:120px}.bar-wrapper[data-v-dc373f48]{width:100%;height:100%;display:flex;align-items:flex-end;justify-content:center}.bar[data-v-dc373f48]{width:56px;background:linear-gradient(180deg,var(--brand-500) 0%,rgba(59,130,246,.25) 100%);border-radius:6px 6px 0 0;position:relative;transition:all .6s var(--ease-out);animation:bar-grow .8s var(--ease-out) both;transform-origin:bottom}.bar[data-v-dc373f48]:hover{filter:brightness(1.15)}.bar-value[data-v-dc373f48]{position:absolute;top:-24px;left:50%;transform:translate(-50%);font-size:14px;font-weight:700;color:var(--brand-400);font-family:var(--font-mono)}.bar-label[data-v-dc373f48]{font-size:13px;color:var(--text-secondary);text-align:center;font-weight:500}.x-axis-title[data-v-dc373f48]{text-align:center;font-size:12px;color:var(--text-muted);margin-top:-24px;margin-bottom:var(--space-5);letter-spacing:1px}.analysis-note[data-v-dc373f48]{display:flex;flex-direction:column;gap:10px;padding:var(--space-4);background:#3b82f60d;border-radius:var(--radius-md);border-left:3px solid rgba(59,130,246,.3)}.note-item[data-v-dc373f48]{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--text-tertiary)}.note-bullet[data-v-dc373f48]{font-size:12px;color:var(--brand-400);margin-top:2px}.feature-ranking-card[data-v-dc373f48]{padding:var(--space-5);animation:slideUp .5s var(--ease-out) .2s both}.feature-ranking-card .card-title[data-v-dc373f48]{display:flex;align-items:center;gap:var(--space-2);font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:var(--space-4)}.ranking-list[data-v-dc373f48]{display:flex;flex-direction:column;gap:var(--space-3)}.ranking-item[data-v-dc373f48]{display:flex;align-items:center;gap:var(--space-3);padding:12px var(--space-4);background:#3b82f60a;border:1px solid rgba(59,130,246,.08);border-radius:var(--radius-md);transition:all var(--duration-normal) var(--ease-out)}.ranking-item[data-v-dc373f48]:hover{background:#3b82f614;border-color:#3b82f626}.ranking-item.top[data-v-dc373f48]{background:#3b82f61a;border-color:#3b82f633}.rank-number[data-v-dc373f48]{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#3b82f61f;border-radius:var(--radius-sm);font-size:13px;font-weight:700;color:var(--brand-400)}.ranking-item.top .rank-number[data-v-dc373f48]{background:var(--brand-500);color:#fff}.rank-info[data-v-dc373f48]{flex:1;display:flex;flex-direction:column;gap:6px}.rank-name[data-v-dc373f48]{font-size:13px;font-weight:500;color:var(--text-secondary)}.rank-bar[data-v-dc373f48]{height:6px;background:#3b82f61a;border-radius:3px;overflow:hidden}.rank-fill[data-v-dc373f48]{height:100%;background:linear-gradient(90deg,var(--brand-500),#60a5fa);border-radius:3px;transition:width .6s ease}.rank-value[data-v-dc373f48]{font-size:14px;font-weight:700;color:var(--brand-400);font-family:var(--font-mono);min-width:40px;text-align:right}@media (max-width: 1200px){.model-manage-container[data-v-dc373f48]{grid-template-columns:1fr;grid-template-rows:auto 1fr;overflow-y:auto}.left-panel[data-v-dc373f48]{flex-direction:row;overflow-x:auto;overflow-y:hidden}.model-status-card[data-v-dc373f48],.architecture-card[data-v-dc373f48]{min-width:330px}}:root{--brand-50: #eff6ff;--brand-100: #dbeafe;--brand-200: #bfdbfe;--brand-300: #93c5fd;--brand-400: #60a5fa;--brand-500: #3b82f6;--brand-600: #2563eb;--brand-700: #1d4ed8;--brand-800: #1e40af;--brand-900: #1e3a8a;--warn-red: #dc2626;--warn-red-light: #fee2e2;--warn-red-dark: #7f1d1d;--warn-orange: #ea580c;--warn-orange-light: #ffedd5;--warn-orange-dark: #7c2d12;--warn-yellow: #ca8a04;--warn-yellow-light: #fef9c3;--warn-yellow-dark: #713f12;--warn-blue: #0284c7;--warn-blue-light: #e0f2fe;--warn-blue-dark: #075985;--bg-page: #0b1120;--bg-card: #111827;--bg-card-hover: #1f2937;--bg-elevated: #1a2236;--bg-input: #0f172a;--border-subtle: rgba(148, 163, 184, .12);--border-default: rgba(148, 163, 184, .2);--border-active: rgba(59, 130, 246, .5);--text-primary: #f8fafc;--text-secondary: #cbd5e1;--text-tertiary: #94a3b8;--text-muted: #64748b;--font-base: "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", "WenQuanYi Micro Hei", sans-serif;--font-mono: "SF Mono", "Fira Code", "Consolas", "Monaco", monospace;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .25);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .35);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .4s}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#94a3b82e;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b859}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideLeft{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}@keyframes pulse-ring{0%{box-shadow:0 0 #22c55e59}70%{box-shadow:0 0 0 6px #22c55e00}to{box-shadow:0 0 #22c55e00}}@keyframes pulse-ring-red{0%{box-shadow:0 0 #dc262659}70%{box-shadow:0 0 0 6px #dc262600}to{box-shadow:0 0 #dc262600}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bar-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:border-color var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out),transform var(--duration-normal) var(--ease-out)}.card:hover{border-color:var(--border-default);box-shadow:var(--shadow-md);transform:translateY(-1px)}.card-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle)}.card-title{display:flex;align-items:center;gap:var(--space-3);font-size:15px;font-weight:600;color:var(--text-primary)}.card-title .el-icon,.card-title .title-icon{color:var(--brand-400);font-size:18px}.card-body{padding:var(--space-5)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:9px 18px;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--duration-fast) var(--ease-out);border:1px solid transparent;outline:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand-600);color:#fff;border-color:var(--brand-600)}.btn-primary:hover:not(:disabled){background:var(--brand-500);border-color:var(--brand-500);box-shadow:0 4px 14px #2563eb40}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:var(--border-default)}.btn-ghost:hover:not(:disabled){background:var(--bg-elevated);border-color:var(--border-active);color:var(--text-primary)}.btn-danger{background:var(--warn-red);color:#fff;border-color:var(--warn-red)}.btn-danger:hover:not(:disabled){background:#ef4444;border-color:#ef4444;box-shadow:0 4px 14px #dc262640}.tag{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-sm);font-size:12px;font-weight:600}.tag-red{background:var(--warn-red-light);color:var(--warn-red-dark)}.tag-orange{background:var(--warn-orange-light);color:var(--warn-orange-dark)}.tag-yellow{background:var(--warn-yellow-light);color:var(--warn-yellow-dark)}.tag-blue{background:var(--warn-blue-light);color:var(--warn-blue-dark)}.tag-green{background:#dcfce7;color:#14532d}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table th{text-align:left;padding:var(--space-3) var(--space-4);font-size:12px;font-weight:600;color:var(--text-tertiary);background:#0f172a80;border-bottom:1px solid var(--border-subtle)}.data-table td{padding:var(--space-3) var(--space-4);color:var(--text-secondary);border-bottom:1px solid var(--border-subtle)}.data-table tbody tr{transition:background var(--duration-fast) var(--ease-out)}.data-table tbody tr:hover{background:#94a3b80d}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted);display:inline-block}.status-dot.running{background:#22c55e;animation:pulse-ring 2s infinite}.status-dot.warning{background:var(--warn-orange)}.status-dot.danger{background:var(--warn-red);animation:pulse-ring-red 2s infinite}.status-text{font-size:13px;color:var(--text-secondary)}.form-select,.form-input{background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:14px;outline:none;transition:border-color var(--duration-fast) var(--ease-out)}.form-select:focus,.form-input:focus{border-color:var(--border-active)}.form-select option{background:var(--bg-card);color:var(--text-primary)}.progress-bar{height:6px;background:#94a3b81f;border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:var(--brand-500);border-radius:3px;transition:width var(--duration-normal) var(--ease-out)}.metric-value{font-size:28px;font-weight:700;color:var(--text-primary);line-height:1.2}.metric-label{font-size:13px;color:var(--text-tertiary);margin-top:var(--space-1)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:9999}.modal-panel{background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:480px;max-width:90vw;overflow:hidden}.chart-container{width:100%;height:100%;min-height:220px}
