.mobile-notice[data-v-3ad29754]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#fff;padding:24px}.notice-content[data-v-3ad29754]{text-align:center}.notice-emoji[data-v-3ad29754]{font-size:36px;margin-bottom:24px;color:#bfbfbf;font-weight:600}.notice-text[data-v-3ad29754]{font-size:36px;color:#bfbfbf;font-weight:600}[data-v-4e70cb0f]{box-sizing:border-box}html[data-v-4e70cb0f],body[data-v-4e70cb0f]{margin:0;padding:0;width:100%;height:100%}#app[data-v-4e70cb0f]{width:100%;height:100%;min-height:100vh}.login-container[data-v-294f81cb]{min-height:100vh;width:100vw;position:relative;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Microsoft YaHei,sans-serif;display:flex;align-items:center;justify-content:center;background:url(/assets/background-CYFonffI.jpg) center center/cover no-repeat}.login-card[data-v-294f81cb]{width:400px;background:#fff;border-radius:10px;padding:40px 40px 50px;box-shadow:0 8px 32px #0003;border:1px solid rgba(0,0,0,.1);z-index:2}.filter[data-v-294f81cb]{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1}.login-header[data-v-294f81cb]{margin-bottom:40px;text-align:center;font-size:22px;font-weight:500;color:#1f1f1f;letter-spacing:.2em}.login-form[data-v-294f81cb]{margin-bottom:40px}.brand-section[data-v-294f81cb]{flex:1;max-width:600px;padding-right:80px;color:#fff;z-index:2;text-shadow:0 2px 8px rgba(0,0,0,.4)}.brand-section .title[data-v-294f81cb]{font-size:60px}.form-group[data-v-294f81cb]{margin-bottom:24px}.form-label[data-v-294f81cb]{display:block;font-size:14px;font-weight:500;color:#1f1f1f;margin-bottom:8px}.form-input[data-v-294f81cb]{width:100%;height:44px;padding:0 16px;font-size:14px;border:1px solid #d1d5db;border-radius:4px;background:#fff;color:#1f1f1f;transition:all .3s ease}.form-input[data-v-294f81cb]:focus{outline:none;border-color:#1890ff;box-shadow:0 0 0 3px #1890ff1a}.form-input[data-v-294f81cb]::placeholder{color:#9ca3af}.error-message[data-v-294f81cb]{background:#ff4d4f1a;border:1px solid rgba(255,77,79,.3);color:#ff4d4f;padding:12px 16px;border-radius:4px;font-size:14px;margin-bottom:24px}.login-button[data-v-294f81cb]{width:100%;height:44px;font-size:16px;font-weight:500;color:#fff;background:#1890ff;border:none;border-radius:4px;cursor:pointer;transition:all .3s ease;margin-top:20px}.login-button[data-v-294f81cb]:hover:not(:disabled){background:#0070cc;transform:translateY(-1px);box-shadow:0 4px 12px #1890ff4d}.login-button[data-v-294f81cb]:disabled{background:#d1d5db;cursor:not-allowed;transform:none;box-shadow:none}.admin[data-v-a33ddb9f]{display:grid;grid-template-rows:auto 1fr;height:100vh}.admin-header[data-v-a33ddb9f]{height:64px;background:#1f1f1f;border-bottom:1px solid #333333;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 8px #00000026;position:sticky;top:0;z-index:100;padding-left:24px}.logo[data-v-a33ddb9f]{font-size:20px}.user-menu[data-v-a33ddb9f]{padding:14px 20px}.user-avatar[data-v-a33ddb9f]{width:36px;height:36px;border-radius:50%;background:#006eff;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:14px;cursor:pointer}.user-dropdown[data-v-a33ddb9f]{position:absolute;top:65px;right:20px;background:#fff;border:1px solid #e6e8eb;border-radius:3px;box-shadow:0 4px 16px #0000001f;min-width:160px;overflow:hidden}.user-info[data-v-a33ddb9f]{padding:12px 16px;border-bottom:1px solid #e6e8eb;background:#fff;font-size:14px;font-weight:600;color:#1c2438}.user-role[data-v-a33ddb9f]{font-size:12px;color:#1677ff;background:#f0f8ff;padding:2px 6px;border-radius:4px;margin-left:8px}.dropdown-item[data-v-a33ddb9f]{display:flex;align-items:center;padding:12px 16px;cursor:pointer;transition:background-color .2s;color:#1c2438;font-size:14px}.dropdown-item[data-v-a33ddb9f]:hover{background:#f5f6fa}.admin-body[data-v-a33ddb9f]{display:grid;grid-template-columns:auto 1fr;overflow:hidden}.admin-sidebar[data-v-a33ddb9f]{width:240px;background:#1f1f1f;height:100%;overflow-y:auto;flex-shrink:0}.sidebar-header[data-v-a33ddb9f]{height:54px;display:flex;align-items:center;padding:0 24px;border-bottom:1px solid #333333;color:#fff;font-size:16px;font-weight:600}.sidebar-nav[data-v-a33ddb9f]{padding:16px 0}.nav-item[data-v-a33ddb9f]{display:flex;align-items:center;padding:12px 24px;color:#ffffffbf;cursor:pointer;transition:all .3s;font-size:14px;font-weight:400}.nav-item[data-v-a33ddb9f]:hover{background:#ffffff14;color:#fff}.nav-item.active[data-v-a33ddb9f]{background:#1677ff;color:#fff}.admin-main[data-v-a33ddb9f]{overflow-y:auto;background:#f5f6fa;min-height:100%}.page-header[data-v-a33ddb9f]{background:#fff;padding:16px 24px;border-bottom:1px solid #e6e8eb;font-size:16px;font-weight:500;color:#1c2438}.page-header-content[data-v-a33ddb9f]{display:flex;align-items:center;gap:12px}.back-button[data-v-a33ddb9f]{position:absolute;height:55px;line-height:53px;width:55px;top:-16px;left:-24px;background:none;border:none;font-size:18px;color:#1677ff;cursor:pointer;border-radius:2px;transition:background-color .2s}.back-button[data-v-a33ddb9f]:hover{background:#f0f8ff}.page-content[data-v-a33ddb9f]{padding:24px;display:flex;flex-direction:column;gap:16px}.back-space[data-v-a33ddb9f]{width:40px}.toast-container[data-v-e241136e]{position:fixed;top:24px;right:24px;z-index:9999;pointer-events:none}.toast[data-v-e241136e]{display:flex;align-items:flex-start;background:#fff;border-radius:3px;box-shadow:0 8px 32px #00000026;padding:12px 16px 12px 12px;min-width:320px;max-width:480px;pointer-events:auto;border-left:4px solid #1677ff;transition:all .3s ease}.toast.success[data-v-e241136e]{border-left-color:#52c41a}.toast.error[data-v-e241136e]{border-left-color:#ff4d4f}.toast.warning[data-v-e241136e]{border-left-color:#faad14}.toast-content[data-v-e241136e]{flex:1 1 auto;min-width:0;margin-left:4px;margin-right:8px}.toast-title[data-v-e241136e]{font-size:14px;font-weight:600;color:#1c2438;margin-bottom:4px}.toast-message[data-v-e241136e]{font-size:13px;color:#8a8e99;line-height:1.4}.toast-close[data-v-e241136e]{background:none;border:none;font-size:26px;color:#8a8e99;cursor:pointer;padding:0;margin-left:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .2s}.toast-close[data-v-e241136e]:hover{color:#1c2438}.fade-in[data-v-e241136e]{animation:fadeInSlide-e241136e .3s ease}.fade-out[data-v-e241136e]{animation:fadeOutSlide-e241136e .3s ease}@keyframes fadeInSlide-e241136e{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes fadeOutSlide-e241136e{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.data-table[data-v-f76f05dc]{background:#fff;border-radius:2px;border:1px solid var(--border-color);overflow:hidden;color:var(--text-secondary)}.pagination[data-v-f76f05dc]{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-xl)}.pagination-info[data-v-f76f05dc]{display:flex;align-items:center;gap:var(--spacing-xs);font-size:14px;color:var(--text-secondary)}.pagination-info .select[data-v-f76f05dc]{height:32px;padding:6px var(--spacing-xs);font-size:14px;width:60px}.pagination-controls[data-v-f76f05dc]{display:flex;align-items:center;gap:var(--spacing-sm)}.page-info[data-v-f76f05dc]{font-size:14px;color:var(--text-secondary);white-space:nowrap}.admin-card[data-v-11617f18]{background:#fff;border-radius:2px;border:1px solid var(--border-color);overflow:hidden;padding:var(--spacing-md);font-size:14px;color:var(--text-secondary)}.card-header[data-v-11617f18]{font-size:16px;font-weight:500;color:var(--text-primary);margin-bottom:var(--spacing-md)}.toolbar[data-v-67789365]{display:flex;justify-content:space-between;align-items:end;gap:var(--spacing-md)}.toolbar-left[data-v-67789365],.toolbar-center[data-v-67789365],.toolbar-right[data-v-67789365]{display:flex;align-items:center;gap:var(--spacing-sm)}.toolbar-left[data-v-67789365]{flex:0 0 auto}.toolbar-center[data-v-67789365]{flex:1 1 auto;justify-content:center}.toolbar-right[data-v-67789365]{flex:0 0 auto}.toolbar:not(:has(.toolbar-left)) .toolbar-right[data-v-67789365]{margin-left:auto}.toolbar:not(:has(.toolbar-right)) .toolbar-left[data-v-67789365]{margin-right:auto}.detail-content[data-v-003a6f37]{display:flex;flex-direction:column;gap:var(--spacing-md)}.detail-grid[data-v-003a6f37]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-md)}.info-grid[data-v-003a6f37]{display:flex;flex-direction:column}.info-item[data-v-003a6f37]{display:flex;align-items:start;justify-content:space-between;padding:var(--spacing-sm) 0}.info-item label[data-v-003a6f37]{font-weight:400;min-width:80px;flex-shrink:0}.info-value[data-v-003a6f37]{color:#1c2438;text-align:left;width:50%;flex-shrink:0;justify-content:flex-end}.middle-card[data-v-2b23aac3]{grid-row:span 2}.overview-page[data-v-2b23aac3]{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:170px;gap:var(--spacing-md)}@media (max-width: 1400px){.overview-page[data-v-2b23aac3]{grid-template-columns:repeat(3,1fr)}}@media (max-width: 1000px){.overview-page[data-v-2b23aac3]{grid-template-columns:repeat(2,1fr)}}@media (max-width: 700px){.overview-page[data-v-2b23aac3]{grid-template-columns:1fr}}.device-status-content[data-v-2b23aac3]{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) 0;height:calc(100% - 40px);box-sizing:border-box}.device-info[data-v-2b23aac3]{display:flex;flex-direction:column;justify-content:center;flex-grow:1;margin-top:10px}.device-count[data-v-2b23aac3]{display:flex;flex-direction:column;justify-content:center;text-align:center}.count-main[data-v-2b23aac3]{font-size:36px;font-weight:700;color:#1677ff;line-height:1;margin-bottom:8px}.device-details[data-v-2b23aac3]{display:flex;gap:24px}.detail-item[data-v-2b23aac3]{display:flex;flex-direction:column;align-items:center}.detail-value[data-v-2b23aac3]{font-size:20px;font-weight:600;line-height:1;margin-bottom:4px}.detail-value.online[data-v-2b23aac3]{color:#52c41a}.detail-value.offline[data-v-2b23aac3]{color:#ff4d4f}.progress-circle[data-v-2b23aac3]{position:relative;display:flex;align-items:center;justify-content:center;flex-grow:1}.progress-text[data-v-2b23aac3]{position:absolute;font-size:22px;font-weight:700;color:#52c41a}.service-container[data-v-2b23aac3]{display:grid;grid-template-rows:1fr 1fr;gap:16px}.small-card[data-v-2b23aac3]{grid-row:span 1}.service-status[data-v-2b23aac3]{display:flex;flex-direction:column;position:absolute;bottom:0;left:0;margin:16px}.service-value-section[data-v-2b23aac3]{display:flex;align-items:baseline;gap:8px}.service-value[data-v-2b23aac3]{font-size:24px;font-weight:600;color:#1c2438;margin-top:8px}.service-value.running[data-v-2b23aac3]{color:#52c41a}.service-version[data-v-2b23aac3]{position:absolute;bottom:0;right:0;margin:16px}.big-card[data-v-2b23aac3]{grid-column:1 / -1;grid-row:span 2}.chart-container[data-v-2b23aac3]{width:100%;height:calc(100% - 50px)}.data-value.alert-high[data-v-2b23aac3]{color:#ff4d4f}.data-value.alert-total[data-v-2b23aac3],.data-value.alert-total-history[data-v-2b23aac3]{color:#1677ff}[data-v-e3b35822]:root{--primary-color: #1677ff;--primary-hover: #4096ff;--primary-active: #0958d9;--text-primary: #1c2438;--text-secondary: rgba(0, 0, 0, .5);--text-placeholder: #bfbfbf;--success-color: #52c41a;--danger-color: #ff4d4f;--danger-hover: #ff7875;--danger-active: #d9363e;--border-color: #f0f0f0;--bg-hover: #fafafa;--bg-modal: rgba(0, 0, 0, .5);--spacing-xs: 8px;--spacing-sm: 12px;--spacing-md: 16px;--spacing-lg: 20px;--spacing-xl: 24px}.container-base[data-v-e3b35822]{background:#fff;border-radius:2px;border:1px solid var(--border-color);overflow:hidden}.search-bar[data-v-e3b35822]{display:flex;gap:var(--spacing-sm);align-items:center}.search-bar .select[data-v-e3b35822]{width:130px}.table[data-v-e3b35822]{width:100%;border-collapse:collapse}table th[data-v-e3b35822],table td[data-v-e3b35822]{text-align:left;border-bottom:1px solid var(--border-color);font-size:14px}table td[data-v-e3b35822]{padding:22px var(--spacing-md)}table th[data-v-e3b35822]{font-weight:500;color:var(--text-primary);padding:var(--spacing-sm) var(--spacing-md)}table tbody tr[data-v-e3b35822]:hover{background:var(--bg-hover)}.bold[data-v-e3b35822]{font-weight:500}.blue[data-v-e3b35822]{color:var(--primary-color)!important}.black[data-v-e3b35822]{color:var(--text-primary)!important}.green[data-v-e3b35822]{color:var(--success-color)!important}.link[data-v-e3b35822]:hover{text-decoration:underline;cursor:pointer}.key-cell[data-v-e3b35822]{width:240px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.key-cell code[data-v-e3b35822]{width:160px;overflow-x:scroll;overflow-y:hidden;height:20px;font-family:Courier New,monospace;font-size:11px;background:#f8f9fa;padding:4px 6px;border-radius:2px;border:1px solid #e9ecef}.key-cell code[data-v-e3b35822]::-webkit-scrollbar{display:none}.key-hidden[data-v-e3b35822]{color:transparent;text-shadow:0 0 6px rgba(0,0,0,.5);-webkit-user-select:none;user-select:none}.btn[data-v-e3b35822]{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border-radius:2px;font-size:14px;font-weight:500;cursor:pointer;border:1px solid transparent;text-decoration:none;transition:all .3s;height:42px;white-space:nowrap}.btn[data-v-e3b35822]:disabled{opacity:.6;cursor:not-allowed}.btn-primary[data-v-e3b35822]{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.btn-primary[data-v-e3b35822]:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}.btn-primary[data-v-e3b35822]:active:not(:disabled){background:var(--primary-active);border-color:var(--primary-active)}.btn-secondary[data-v-e3b35822]{background:#fff;border-color:var(--border-color)}.btn-secondary[data-v-e3b35822]:hover:not(:disabled){color:var(--primary-color);border-color:var(--primary-color)}.btn-danger[data-v-e3b35822]{background:var(--danger-color);color:#fff;border-color:var(--danger-color)}.btn-danger[data-v-e3b35822]:hover:not(:disabled){background:var(--danger-hover);border-color:var(--danger-hover)}.btn-danger[data-v-e3b35822]:active:not(:disabled){background:var(--danger-active);border-color:var(--danger-active)}.btn-small[data-v-e3b35822]{height:32px;padding:6px var(--spacing-sm);font-size:14px}.input[data-v-e3b35822]{width:100%;height:42px;padding:10px var(--spacing-sm);border:1px solid var(--border-color);border-radius:2px;font-size:14px;color:var(--text-primary);background:#fff}.input[type=date][data-v-e3b35822]{width:130px}.input[data-v-e3b35822]:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #1677ff1a}.input[data-v-e3b35822]::placeholder{color:var(--text-placeholder)}.select[data-v-e3b35822]{width:100%;height:42px;padding:10px var(--spacing-sm);border:1px solid var(--border-color);border-radius:2px;font-size:14px;color:var(--text-primary);background:#fff;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%23bfbfbf' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:calc(100% - var(--spacing-sm)) center;background-size:var(--spacing-sm);line-height:22px}.select[data-v-e3b35822]:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #1677ff1a}.form-group[data-v-e3b35822]{margin-bottom:var(--spacing-lg)}.form-group label[data-v-e3b35822]{display:block;margin-bottom:var(--spacing-xs);font-size:14px;font-weight:500;color:var(--text-primary)}.required[data-v-e3b35822]{color:var(--danger-color)}.modal-overlay[data-v-e3b35822]{width:100vw;height:100vh;background:var(--bg-modal);position:fixed;top:0;left:0;z-index:999}.modal-content[data-v-e3b35822]{width:520px;overflow-y:auto;background:#fff;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);padding:0;box-shadow:0 4px var(--spacing-sm) #00000026;border-radius:2px;padding:var(--spacing-xl)}.modal-header[data-v-e3b35822]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl)}.modal-header h3[data-v-e3b35822]{margin:0;font-size:var(--spacing-md);font-weight:500;color:var(--text-primary)}.close-btn[data-v-e3b35822]{background:none;border:none;font-size:var(--spacing-xl);cursor:pointer;padding:0;width:var(--spacing-xl);height:var(--spacing-xl);display:flex;align-items:center;justify-content:center;border-radius:2px}.close-btn[data-v-e3b35822]:hover{background:#f5f5f5}.loading[data-v-e3b35822],.empty-state[data-v-e3b35822]{text-align:center;padding:60px}.empty-text[data-v-e3b35822]{font-size:var(--spacing-md);color:var(--text-primary);margin-bottom:var(--spacing-xs)}.empty-desc[data-v-e3b35822]{font-size:14px}.data-item[data-v-e3b35822]{display:flex;flex-direction:column}.data-label[data-v-e3b35822]{font-size:14px;margin-bottom:var(--spacing-xs)}.data-value-section[data-v-e3b35822]{display:flex;align-items:baseline;gap:var(--spacing-xs)}.data-value[data-v-e3b35822]{font-size:32px;font-weight:700;color:var(--text-primary)}.data-value.highlight[data-v-e3b35822]{color:var(--primary-color)}.data-unit[data-v-e3b35822]{font-size:14px;font-weight:400}.data-divider[data-v-e3b35822]{height:1px;background:var(--border-color);margin:var(--spacing-sm) 0}.action-buttons[data-v-e3b35822]{display:flex;gap:var(--spacing-md)}.setting-group[data-v-11974be5]{display:flex;flex-direction:column;gap:var(--spacing-md)}.setting-item[data-v-11974be5]{display:flex;justify-content:space-between;align-items:center;min-height:40px}.setting-label[data-v-11974be5]{min-width:120px}.setting-control[data-v-11974be5]{display:flex;align-items:center;gap:var(--spacing-xs);flex:1;max-width:300px}.setting-link[data-v-11974be5]{margin:0 6px}.unit[data-v-11974be5]{margin:0 6px;white-space:nowrap}.toggle-switch[data-v-11974be5]{position:relative;display:inline-block;width:48px;height:24px}.toggle-input[data-v-11974be5]{opacity:0;width:0;height:0}.toggle-label[data-v-11974be5]{position:absolute;cursor:pointer;inset:0;background-color:#ccc;border-radius:24px;transition:.2s}.toggle-label[data-v-11974be5]:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:.2s}.toggle-input:checked+.toggle-label[data-v-11974be5]{background-color:#007aff}.toggle-input:checked+.toggle-label[data-v-11974be5]:before{transform:translate(24px)}:root{--primary-color: #1677ff;--primary-hover: #4096ff;--primary-active: #0958d9;--text-primary: #1c2438;--text-secondary: rgba(0, 0, 0, .5);--text-placeholder: #bfbfbf;--success-color: #52c41a;--danger-color: #ff4d4f;--danger-hover: #ff7875;--danger-active: #d9363e;--border-color: #f0f0f0;--bg-hover: #fafafa;--bg-modal: rgba(0, 0, 0, .5);--spacing-xs: 8px;--spacing-sm: 12px;--spacing-md: 16px;--spacing-lg: 20px;--spacing-xl: 24px}.container-base{background:#fff;border-radius:2px;border:1px solid var(--border-color);overflow:hidden}.search-bar{display:flex;gap:var(--spacing-sm);align-items:center}.search-bar .select{width:130px}.table{width:100%;border-collapse:collapse}table th,table td{text-align:left;border-bottom:1px solid var(--border-color);font-size:14px}table td{padding:22px var(--spacing-md)}table th{font-weight:500;color:var(--text-primary);padding:var(--spacing-sm) var(--spacing-md)}table tbody tr:hover{background:var(--bg-hover)}.bold{font-weight:500}.blue{color:var(--primary-color)!important}.black{color:var(--text-primary)!important}.green{color:var(--success-color)!important}.link:hover{text-decoration:underline;cursor:pointer}.key-cell{width:240px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.key-cell code{width:160px;overflow-x:scroll;overflow-y:hidden;height:20px;font-family:Courier New,monospace;font-size:11px;background:#f8f9fa;padding:4px 6px;border-radius:2px;border:1px solid #e9ecef}.key-cell code::-webkit-scrollbar{display:none}.key-hidden{color:transparent;text-shadow:0 0 6px rgba(0,0,0,.5);-webkit-user-select:none;user-select:none}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border-radius:2px;font-size:14px;font-weight:500;cursor:pointer;border:1px solid transparent;text-decoration:none;transition:all .3s;height:42px;white-space:nowrap}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.btn-primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}.btn-primary:active:not(:disabled){background:var(--primary-active);border-color:var(--primary-active)}.btn-secondary{background:#fff;border-color:var(--border-color)}.btn-secondary:hover:not(:disabled){color:var(--primary-color);border-color:var(--primary-color)}.btn-danger{background:var(--danger-color);color:#fff;border-color:var(--danger-color)}.btn-danger:hover:not(:disabled){background:var(--danger-hover);border-color:var(--danger-hover)}.btn-danger:active:not(:disabled){background:var(--danger-active);border-color:var(--danger-active)}.btn-small{height:32px;padding:6px var(--spacing-sm);font-size:14px}.input{width:100%;height:42px;padding:10px var(--spacing-sm);border:1px solid var(--border-color);border-radius:2px;font-size:14px;color:var(--text-primary);background:#fff}.input[type=date]{width:130px}.input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #1677ff1a}.input::placeholder{color:var(--text-placeholder)}.select{width:100%;height:42px;padding:10px var(--spacing-sm);border:1px solid var(--border-color);border-radius:2px;font-size:14px;color:var(--text-primary);background:#fff;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%23bfbfbf' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:calc(100% - var(--spacing-sm)) center;background-size:var(--spacing-sm);line-height:22px}.select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #1677ff1a}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;margin-bottom:var(--spacing-xs);font-size:14px;font-weight:500;color:var(--text-primary)}.required{color:var(--danger-color)}.modal-overlay{width:100vw;height:100vh;background:var(--bg-modal);position:fixed;top:0;left:0;z-index:999}.modal-content{width:520px;overflow-y:auto;background:#fff;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);padding:0;box-shadow:0 4px var(--spacing-sm) #00000026;border-radius:2px;padding:var(--spacing-xl)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl)}.modal-header h3{margin:0;font-size:var(--spacing-md);font-weight:500;color:var(--text-primary)}.close-btn{background:none;border:none;font-size:var(--spacing-xl);cursor:pointer;padding:0;width:var(--spacing-xl);height:var(--spacing-xl);display:flex;align-items:center;justify-content:center;border-radius:2px}.close-btn:hover{background:#f5f5f5}.loading,.empty-state{text-align:center;padding:60px}.empty-text{font-size:var(--spacing-md);color:var(--text-primary);margin-bottom:var(--spacing-xs)}.empty-desc{font-size:14px}.data-item{display:flex;flex-direction:column}.data-label{font-size:14px;margin-bottom:var(--spacing-xs)}.data-value-section{display:flex;align-items:baseline;gap:var(--spacing-xs)}.data-value{font-size:32px;font-weight:700;color:var(--text-primary)}.data-value.highlight{color:var(--primary-color)}.data-unit{font-size:14px;font-weight:400}.data-divider{height:1px;background:var(--border-color);margin:var(--spacing-sm) 0}.action-buttons{display:flex;gap:var(--spacing-md)}.top-bar[data-v-d15361f4]{height:64px;background:#1f1f1f;position:relative;display:flex;align-items:center;justify-content:space-between;padding:0 24px;z-index:100}.top-bar-left[data-v-d15361f4]{flex:1}.top-bar h2[data-v-d15361f4]{text-align:left;margin:0;height:100%;color:#fff;font-weight:lighter;font-style:normal;line-height:64px}.title[data-v-d15361f4]{transform:skew(-6deg) scaleY(1.2) translateY(-.5px);display:inline-block;font-family:PangMenZhengDao,Microsoft YaHei,sans-serif}.user-menu[data-v-d15361f4]{padding:14px 20px;position:fixed;z-index:1000;top:0;right:0}.user-avatar[data-v-d15361f4]{width:36px;height:36px;border-radius:50%;background:#006eff;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:14px;cursor:pointer}.user-dropdown[data-v-d15361f4]{position:absolute;top:65px;right:20px;background:#fff;border:1px solid #e6e8eb;border-radius:3px;box-shadow:0 4px 16px #0000001f;min-width:160px;overflow:hidden;z-index:1001}.user-info[data-v-d15361f4]{padding:12px 16px;border-bottom:1px solid #e6e8eb;background:#fff;font-size:14px;font-weight:600;color:#1c2438}.user-role[data-v-d15361f4]{font-size:12px;color:#1677ff;background:#f0f8ff;padding:2px 6px;border-radius:4px;margin-left:8px}.dropdown-item[data-v-d15361f4]{display:flex;align-items:center;padding:12px 16px;cursor:pointer;transition:background-color .2s;color:#1c2438;font-size:14px}.dropdown-item[data-v-d15361f4]:hover{background:#f5f6fa}.traffic-overview[data-v-ca9558cc]{height:100px;color:#fff}.overview-row[data-v-ca9558cc]{display:flex;justify-content:space-between;align-items:center;height:100%;gap:15px}.metric-item[data-v-ca9558cc]{display:flex;flex-direction:column;align-items:center;flex:1;text-align:center}.metric-value[data-v-ca9558cc]{font-size:1.8em;font-weight:700;margin-bottom:5px}.metric-label[data-v-ca9558cc]{font-size:.75em;color:var(--tech-text-secondary);text-transform:uppercase;letter-spacing:.5px}.status-white[data-v-ca9558cc]{color:var(--tech-text-primary);text-shadow:0 0 8px rgba(255,255,255,.5)}.status-primary[data-v-ca9558cc]{color:var(--tech-primary-color);text-shadow:0 0 8px rgba(24,144,255,.5)}.status-danger[data-v-ca9558cc]{color:var(--tech-danger-color);text-shadow:0 0 8px rgba(255,68,68,.5)}.traffic-wave[data-v-d43b0f08]{position:relative;width:100%;height:100%}.custom-legend[data-v-d43b0f08]{position:absolute;top:10px;right:42px;z-index:10;display:flex;gap:20px}.legend-item[data-v-d43b0f08]{display:flex;align-items:center;cursor:pointer;transition:all .3s ease}.legend-color[data-v-d43b0f08]{width:10px;height:10px;border-radius:50%;flex-shrink:0;margin-right:4px}.legend-color.upstream[data-v-d43b0f08]{background:var(--tech-primary-color, #1890ff)}.legend-color.downstream[data-v-d43b0f08]{background:#ffffff80}.legend-text[data-v-d43b0f08]{font-size:12px;color:#fff}.legend-item:not(.active) .legend-text[data-v-d43b0f08]{opacity:.5}.legend-item:not(.active) .legend-color[data-v-d43b0f08]{opacity:.3}.chart[data-v-d43b0f08]{width:100%;height:100%}.traffic-radar-container[data-v-d6502534]{position:relative;width:100%;height:100%;background:transparent}.chart-container[data-v-d6502534]{width:100%;height:100%;min-height:400px}.traffic-radar-container[data-v-d6502534] .echarts{background:transparent!important}@media (max-width: 768px){.chart-container[data-v-d6502534]{min-height:300px}}.container-header[data-v-9df69fdf]{height:30px;line-height:30px;color:#fff;align-items:center;display:flex}.header-icon[data-v-9df69fdf]{color:var(--tech-primary-color);flex-shrink:0;filter:drop-shadow(0 0 4px rgba(24,144,255,.6));transition:all .3s ease;flex:0 0 36px}.header-icon[data-v-9df69fdf]:hover{color:#40a9ff;filter:drop-shadow(0 0 8px rgba(24,144,255,.8));transform:scale(1.1) rotate(-30deg)}.container[data-v-9df69fdf]{height:100%;width:100%;overflow:hidden}.container-content[data-v-9df69fdf]{height:calc(100% - 30px);width:100%}.header-line[data-v-9df69fdf]{height:13px;background:linear-gradient(90deg,#ffffff4d,#fff0);flex-shrink:0;flex-grow:1;margin-left:3px;transform:skew(-7deg) translateY(-.5px)}.header-title[data-v-9df69fdf]{flex-shrink:0}.title[data-v-9df69fdf]{transform:skew(-6deg) scaleY(1.2) translateY(-.5px);display:inline-block;font-family:PangMenZhengDao,Microsoft YaHei,sans-serif}.left-sidebar[data-v-a3cba77b]{width:400px;height:100%;overflow:hidden;position:absolute;top:0;left:0;z-index:2;padding:20px;display:grid;grid-template-rows:auto 2fr 3fr;grid-row-gap:20px;background:linear-gradient(to right,#000000e6,#000000b3 80%,#000000a6 85%,#0000008c 91%,#00000073 95%,#0000004d);box-shadow:0 0 50px 20px #00000061}.chat-container[data-v-83115b03]{position:relative;height:100%;border:none;border-radius:8px;padding:20px;color:#fff;overflow:hidden}.chat-messages[data-v-83115b03]{flex:1;overflow-y:scroll;padding:10px;margin-bottom:8px;height:calc(100% - 60px);scrollbar-width:none;-ms-overflow-style:none}.chat-messages[data-v-83115b03]::-webkit-scrollbar{display:none}.message[data-v-83115b03]{margin-bottom:12px;display:flex;flex-direction:column}.message.user[data-v-83115b03]{align-items:flex-end}.message.assistant[data-v-83115b03]{align-items:flex-start}.message-content[data-v-83115b03]{max-width:80%;padding:12px;font-size:13px;line-height:1.4;word-wrap:break-word;border:none;position:relative;border-radius:0}.message.user .message-content[data-v-83115b03]{border-right:4px solid #3b82f6;padding-right:20px;padding-left:8px}.message.assistant .message-content[data-v-83115b03]{border-left:4px solid rgba(59,130,246,.8);padding-left:20px;padding-right:8px}.message-text[data-v-83115b03]{margin-bottom:4px;color:#fff}.message-time[data-v-83115b03]{font-size:10px;opacity:.5;color:#fff9}.message-text[data-v-83115b03]{color:#fff}.chat-input-area[data-v-83115b03]{margin-top:auto;height:40px}.chat-input-child-area[data-v-83115b03]{position:absolute;bottom:0;width:100%}.quick-questions[data-v-83115b03]{opacity:1;transition:opacity .3s ease;pointer-events:auto;position:relative;margin-bottom:8px;width:300px;padding:0 10px}.quick-questions.questions-hidden[data-v-83115b03]{opacity:0;pointer-events:none}.question-buttons[data-v-83115b03]{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}.question-btn[data-v-83115b03]{background:#ffffff1a;border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:6px;font-size:11px;cursor:pointer;transition:all .2s ease;white-space:nowrap;flex-shrink:0;height:24px;display:flex;align-items:center;padding:4px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.question-btn[data-v-83115b03]:hover{background:#fff3;border-color:#ffffff80}.question-btn[data-v-83115b03]:disabled{opacity:.5;cursor:not-allowed}.chat-input[data-v-83115b03]{display:flex;flex-direction:column;gap:0}.input-row[data-v-83115b03]{display:flex;gap:8px;align-items:center;width:100%}.input-field[data-v-83115b03]{flex:1;background:#ffffff1a;border:1px solid rgba(255,255,255,.3);border-radius:4px;padding:6px 12px;color:#fff;font-size:13px;outline:none;height:32px}.input-field[data-v-83115b03]::placeholder{color:#fff9}.send-btn[data-v-83115b03]{background:#3b82f6;border:none;color:#fff;min-width:50px;height:32px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;padding:0 12px;white-space:nowrap;font-size:13px}.send-btn[data-v-83115b03]:hover{background:#2563eb}.send-btn[data-v-83115b03]:disabled{opacity:.5;cursor:not-allowed}.alert-container[data-v-4f65d226]{background:transparent;padding:16px;height:100%;display:flex;flex-direction:column}.alert-list[data-v-4f65d226]{display:flex;flex-direction:column;gap:12px;padding-left:10px}.alert-record[data-v-4f65d226]{position:relative;background:transparent;border-radius:6px;padding:4px;display:flex;align-items:stretch;min-width:300px}.alert-record:hover .alert-indicator[data-v-4f65d226]{background:#ffffff80}.alert-indicator[data-v-4f65d226]{position:absolute;left:0;top:0;bottom:0;width:4px;background:#fff0;border-radius:2px;margin:10px 0;transition:all .1s ease}.alert-content[data-v-4f65d226]{flex:1;margin-left:12px;display:flex;flex-direction:column;gap:8px}.alert-header[data-v-4f65d226]{display:flex;justify-content:space-between;align-items:flex-start}.alert-footer[data-v-4f65d226]{display:flex;justify-content:space-between;align-items:center;gap:12px}.alert-left[data-v-4f65d226]{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.alert-right[data-v-4f65d226]{display:flex;align-items:center;flex-shrink:0}.alert-name[data-v-4f65d226]{color:#fff;font-size:14px;font-weight:500}.alert-time[data-v-4f65d226]{color:#fff9;font-size:12px;flex-shrink:0}.road-name[data-v-4f65d226]{color:var(--df142b0c);font-size:13px;font-weight:500;flex-shrink:0;white-space:nowrap}.trigger-value[data-v-4f65d226]{color:var(--df142b0c);font-size:12px;font-weight:400;flex-shrink:0;white-space:nowrap}.alert-level[data-v-4f65d226]{background:#ff572233;color:#ff5722;border:1px solid rgba(255,87,34,.3);padding:2px 4px;border-radius:12px;font-size:11px;font-weight:500;flex-shrink:0;white-space:nowrap}.alert-level.high[data-v-4f65d226]{background:#ff572233;color:#ff5722;border-color:#ff57224d}.alert-level.medium[data-v-4f65d226]{background:#ff980033;color:#ff9800;border-color:#ff98004d}.alert-level.low[data-v-4f65d226]{background:#4caf5033;color:#4caf50;border-color:#4caf504d}.no-alerts[data-v-4f65d226]{flex:1;display:flex;align-items:center;justify-content:center;opacity:.6}.no-alerts-text[data-v-4f65d226]{color:#fff9;font-size:14px}.right-sidebar[data-v-7d34f7fb]{width:400px;height:100%;overflow:hidden;position:absolute;top:0;right:0;z-index:2;padding:20px;display:grid;grid-template-rows:auto 1fr;grid-row-gap:20px;background:linear-gradient(to left,#000000e6,#000000b3 80%,#000000a6 85%,#0000008c 91%,#00000073 95%,#0000004d);box-shadow:0 0 50px 20px #00000061}.map-container[data-v-99398889]{width:100%;height:100%;position:fixed}.amap-wrapper[data-v-99398889]{width:100%;height:100%;min-height:400px}.map-container[data-v-99398889] .amap-polyline-path{opacity:.6!important;z-index:5!important}.map-container[data-v-99398889] .amap-polyline-path:hover{opacity:.9!important;z-index:15!important}.map-container[data-v-99398889] .amap-marker,.map-container[data-v-99398889] .amap-info-window,.map-container[data-v-99398889] .amap-copyright,.map-container[data-v-99398889] .amap-logo{z-index:100!important}.map-container[data-v-99398889] .amap-toolbar,.map-container[data-v-99398889] .amap-scale{z-index:200!important}.app[data-v-2382d9d5]{height:100vh;width:100%;display:grid;grid-template-rows:auto 1fr;-webkit-user-select:none;user-select:none}.not-found[data-v-e15303ef]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f5f6fa;padding:24px}.error-content[data-v-e15303ef]{text-align:center;max-width:600px}.error-code[data-v-e15303ef]{font-size:120px;font-weight:300;color:#1677ff;margin:0;line-height:1;letter-spacing:-2px}.error-message[data-v-e15303ef]{font-size:32px;font-weight:500;color:#1c2438;margin:24px 0 16px}.error-description[data-v-e15303ef]{font-size:16px;color:#8a8e99;margin:0 0 48px;line-height:1.5}.error-actions[data-v-e15303ef]{display:flex;justify-content:center;gap:16px;flex-wrap:wrap}.btn[data-v-e15303ef]{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border-radius:2px;font-size:14px;font-weight:500;cursor:pointer;border:1px solid transparent;text-decoration:none;transition:all .3s;height:42px;white-space:nowrap}.btn[data-v-e15303ef]:disabled{opacity:.6;cursor:not-allowed}.btn-primary[data-v-e15303ef]{background:#1677ff;color:#fff;border-color:#1677ff}.btn-primary[data-v-e15303ef]:hover:not(:disabled){background:#4096ff;border-color:#4096ff}.btn-primary[data-v-e15303ef]:active:not(:disabled){background:#0958d9;border-color:#0958d9}.btn-secondary[data-v-e15303ef]{background:#fff;color:#595959;border-color:#d9d9d9}.btn-secondary[data-v-e15303ef]:hover:not(:disabled){color:#1677ff;border-color:#1677ff}@media (max-width: 768px){.error-code[data-v-e15303ef]{font-size:80px}.error-message[data-v-e15303ef]{font-size:24px}.error-description[data-v-e15303ef]{font-size:14px}.error-actions[data-v-e15303ef]{flex-direction:column;align-items:center}.btn[data-v-e15303ef]{width:200px}}@font-face{font-family:PangMenZhengDao;src:url(/assets/PangMenZhengDaoBiaoTiTiMianFeiBan-2-tnsIjXDm.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}*{position:relative;box-sizing:border-box}body{margin:0;top:0}.title{transform:skew(-6deg) scaleY(1.2);display:inline-block;font-family:PangMenZhengDao,Microsoft YaHei,sans-serif;font-weight:500;color:#fff}:root{--tech-primary-color: #1890ff;--tech-secondary-color: rgba(255, 255, 255, .3);--tech-text-primary: #ffffff;--tech-text-secondary: rgba(255, 255, 255, .8);--tech-danger-color: #ff4444}
