.sidebar[data-v-38282e27]{width:240px;height:100vh;background-color:var(--card-background);display:flex;flex-direction:column;transition:width var(--transition-normal),transform var(--transition-normal);box-shadow:0 0 10px var(--shadow-color);z-index:20;overflow:hidden}.sidebar-collapsed[data-v-38282e27]{width:64px}.sidebar-header[data-v-38282e27]{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-4);border-bottom:1px solid var(--border-color)}.logo-container[data-v-38282e27]{display:flex;align-items:center;height:40px;overflow:hidden}.app-logo[data-v-38282e27]{background-color:var(--primary-color);color:#fff;padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-md);font-weight:700;font-size:1.25rem}.app-logo-small[data-v-38282e27]{background-color:var(--primary-color);color:#fff;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);font-weight:700;font-size:1rem}.collapse-btn[data-v-38282e27]{background:none;border:none;cursor:pointer;height:32px;width:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--text-color);transition:background-color var(--transition-fast)}.collapse-btn[data-v-38282e27]:hover{background-color:var(--neutral-200)}.dark-mode .collapse-btn[data-v-38282e27]:hover{background-color:var(--neutral-700)}.sidebar-nav[data-v-38282e27]{flex:1;overflow-y:auto;padding:var(--spacing-4) 0}.sidebar-nav ul[data-v-38282e27]{list-style:none;padding:0;margin:0}.nav-item[data-v-38282e27]{display:flex;align-items:center;padding:var(--spacing-3) var(--spacing-4);cursor:pointer;transition:background-color var(--transition-fast);border:none;background:none;width:100%;text-align:left;color:var(--text-color);font-size:1rem;border-radius:0}.nav-item[data-v-38282e27]:hover{background-color:var(--neutral-100)}.dark-mode .nav-item[data-v-38282e27]:hover{background-color:var(--neutral-800)}.nav-item.active[data-v-38282e27]{background-color:var(--neutral-200);color:var(--primary-color);font-weight:600;border-left:3px solid var(--primary-color)}.dark-mode .nav-item.active[data-v-38282e27]{background-color:var(--neutral-800)}.nav-item fa-icon[data-v-38282e27]{width:20px;text-align:center;margin-right:var(--spacing-3)}.sidebar-collapsed .nav-item[data-v-38282e27]{justify-content:center;padding:var(--spacing-3) 0}.sidebar-collapsed .nav-item fa-icon[data-v-38282e27]{margin-right:0}.sidebar-footer[data-v-38282e27]{padding:var(--spacing-4);border-top:1px solid var(--border-color);text-align:center;font-size:.75rem;color:var(--text-secondary)}@media (max-width: 768px){.sidebar[data-v-38282e27]{position:fixed;transform:translate(0)}.sidebar-collapsed[data-v-38282e27]{transform:translate(-100%)}}.app-header[data-v-061a877c]{height:64px;display:flex;justify-content:space-between;align-items:center;padding:0 var(--spacing-6);background-color:var(--card-background);box-shadow:0 2px 4px var(--shadow-color);z-index:10}.header-left[data-v-061a877c]{display:flex;align-items:center;gap:var(--spacing-4)}.header-right[data-v-061a877c]{display:flex;align-items:center;gap:var(--spacing-6)}h1[data-v-061a877c]{font-size:1.25rem;margin:0}.menu-button[data-v-061a877c],.theme-toggle[data-v-061a877c]{background:none;border:none;cursor:pointer;height:40px;width:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--text-color);transition:background-color var(--transition-fast)}.menu-button[data-v-061a877c]:hover,.theme-toggle[data-v-061a877c]:hover{background-color:var(--neutral-200)}.dark-mode .menu-button[data-v-061a877c]:hover,.dark-mode .theme-toggle[data-v-061a877c]:hover{background-color:var(--neutral-700)}.connection-status[data-v-061a877c]{display:flex;align-items:center;padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-full);font-size:.875rem;font-weight:600}.connection-status.connected[data-v-061a877c]{background-color:#34c75926;color:var(--accent-color)}.connection-status.disconnected[data-v-061a877c]{background-color:#ff3b3026;color:var(--error-color)}.connection-status.connecting[data-v-061a877c]{background-color:#ff950026;color:var(--warn-color)}@media (max-width: 640px){.connection-status span[data-v-061a877c]:last-child{display:none}.connection-status[data-v-061a877c]{padding:var(--spacing-2)}}.app-container{display:flex;height:100vh;width:100vw;overflow:hidden;background-color:var(--background-color);color:var(--text-color);transition:background-color .3s ease,color .3s ease}.main-content{flex:1;display:flex;flex-direction:column;transition:margin-left .3s ease;overflow:hidden}.main-content.expanded{margin-left:0}main{flex:1;overflow:hidden;padding:0;position:relative}.dark-mode{--background-color: #121212;--text-color: #f5f5f5}.status-card[data-v-16162380]{display:flex;align-items:center;gap:var(--spacing-4);padding:var(--spacing-4);background-color:var(--card-background);border-radius:var(--radius-md);box-shadow:0 2px 8px var(--shadow-color);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.status-card[data-v-16162380]:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-color)}.status-icon[data-v-16162380]{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-full);font-size:1.25rem;flex-shrink:0}.status-content[data-v-16162380]{flex:1}.status-value[data-v-16162380]{font-size:1.5rem;font-weight:700;line-height:1.2}.status-label[data-v-16162380]{font-size:.875rem;color:var(--text-secondary)}.status-card-primary .status-icon[data-v-16162380]{background-color:#0f52ba26;color:var(--primary-color)}.status-card-accent .status-icon[data-v-16162380]{background-color:#34c75926;color:var(--accent-color)}.status-card-warn .status-icon[data-v-16162380]{background-color:#ff950026;color:var(--warn-color)}.status-card-error .status-icon[data-v-16162380]{background-color:#ff3b3026;color:var(--error-color)}.status-chart[data-v-b484f209]{padding:var(--spacing-4)}.status-bars[data-v-b484f209]{display:flex;flex-direction:column;gap:var(--spacing-4)}.status-bar[data-v-b484f209]{display:flex;align-items:center;gap:var(--spacing-3)}.bar-label[data-v-b484f209]{width:60px;font-size:.875rem;color:var(--text-secondary)}.bar-container[data-v-b484f209]{flex:1;height:24px;background-color:var(--neutral-100);border-radius:var(--radius-full);overflow:hidden}.bar[data-v-b484f209]{height:100%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.875rem;font-weight:600;transition:width var(--transition-normal)}.bar-moving[data-v-b484f209]{background-color:var(--accent-color)}.bar-idle[data-v-b484f209]{background-color:var(--warn-color)}.bar-stopped[data-v-b484f209]{background-color:var(--primary-color)}.bar-offline[data-v-b484f209]{background-color:var(--error-color)}.events-card[data-v-a9d0261d]{display:flex;flex-direction:column;height:100%}.events-list[data-v-a9d0261d]{flex:1;overflow-y:auto}.event-item[data-v-a9d0261d]{display:flex;align-items:flex-start;padding:var(--spacing-3);border-bottom:1px solid var(--border-color);gap:var(--spacing-3)}.event-icon[data-v-a9d0261d]{width:32px;height:32px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;flex-shrink:0}.event-geofence .event-icon[data-v-a9d0261d]{background-color:#0f52ba26;color:var(--primary-color)}.event-sensor .event-icon[data-v-a9d0261d]{background-color:#ff950026;color:var(--warn-color)}.event-status .event-icon[data-v-a9d0261d]{background-color:#ff3b3026;color:var(--error-color)}.event-content[data-v-a9d0261d]{flex:1;min-width:0}.event-header[data-v-a9d0261d]{display:flex;justify-content:space-between;margin-bottom:var(--spacing-1)}.event-vehicle[data-v-a9d0261d]{font-weight:600}.event-time[data-v-a9d0261d]{font-size:.75rem;color:var(--text-secondary)}.event-message[data-v-a9d0261d]{font-size:.875rem;color:var(--text-secondary)}.events-footer[data-v-a9d0261d]{padding:var(--spacing-3);border-top:1px solid var(--border-color);text-align:center}.mini-map[data-v-ab166657]{height:100%;width:100%;border-radius:var(--radius-md);overflow:hidden;position:relative}.map-placeholder[data-v-ab166657]{height:100%;width:100%;background-color:#e5e7eb;position:relative}.map-overlay[data-v-ab166657]{position:absolute;top:0;left:0;width:100%;height:100%}.marker[data-v-ab166657]{position:absolute;transform:translate(-50%,-50%);width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0003;background-color:#fff;z-index:2}.marker.status-moving[data-v-ab166657]{color:var(--accent-color)}.marker.status-idle[data-v-ab166657]{color:var(--warn-color)}.marker.status-offline[data-v-ab166657]{color:var(--error-color)}.dashboard-container[data-v-32d3e284]{padding:var(--spacing-4)}.loading-container[data-v-32d3e284]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:400px}.loading-spinner[data-v-32d3e284]{width:40px;height:40px;border:4px solid var(--neutral-200);border-top-color:var(--primary-color);border-radius:50%;animation:spin-32d3e284 1s linear infinite;margin-bottom:var(--spacing-4)}@keyframes spin-32d3e284{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.map-controls[data-v-f3c1399a]{position:absolute;top:var(--spacing-4);right:var(--spacing-4);display:flex;flex-direction:column;gap:var(--spacing-2);z-index:4}.control-button[data-v-f3c1399a]{width:40px;height:40px;border-radius:var(--radius-md);background-color:#fff;border:none;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0003;cursor:pointer;transition:all var(--transition-fast)}.control-button[data-v-f3c1399a]:hover{background-color:var(--neutral-100)}.control-button[data-v-f3c1399a]:active{transform:translateY(1px);box-shadow:0 1px 2px #0003}.vehicle-info-card[data-v-f29cc549]{background-color:var(--card-background);box-shadow:0 4px 12px #00000026;border-radius:var(--radius-md);width:240px;overflow:hidden}.info-header[data-v-f29cc549]{padding:var(--spacing-3) var(--spacing-4);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-color)}.vehicle-name[data-v-f29cc549]{font-weight:600}.vehicle-status[data-v-f29cc549]{padding:2px 8px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.status-moving[data-v-f29cc549]{background-color:#34c75926;color:var(--accent-color)}.status-idle[data-v-f29cc549]{background-color:#ff950026;color:var(--warn-color)}.status-stopped[data-v-f29cc549]{background-color:#0f52ba26;color:var(--primary-color)}.status-offline[data-v-f29cc549]{background-color:#ff3b3026;color:var(--error-color)}.info-body[data-v-f29cc549]{padding:var(--spacing-3) var(--spacing-4)}.info-section[data-v-f29cc549]{margin-bottom:var(--spacing-3)}.info-row[data-v-f29cc549]{display:flex;justify-content:space-between;margin-bottom:var(--spacing-2)}.info-label[data-v-f29cc549]{color:var(--text-secondary);font-size:.75rem}.info-value[data-v-f29cc549]{font-weight:600;font-size:.875rem}.sensor-section[data-v-f29cc549]{margin-top:var(--spacing-3)}.sensor-label[data-v-f29cc549]{color:var(--text-secondary);font-size:.75rem;margin-bottom:var(--spacing-2)}.sensor-items[data-v-f29cc549]{display:flex;gap:var(--spacing-2)}.sensor-item[data-v-f29cc549]{padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-full);font-size:.75rem;font-weight:600;display:flex;align-items:center;gap:4px}.sensor-normal[data-v-f29cc549]{background-color:#34c75926;color:var(--accent-color)}.sensor-warning[data-v-f29cc549]{background-color:#ff950026;color:var(--warn-color)}.sensor-critical[data-v-f29cc549]{background-color:#ff3b3026;color:var(--error-color)}.info-footer[data-v-f29cc549]{padding:var(--spacing-3) var(--spacing-4);border-top:1px solid var(--border-color);display:flex;justify-content:space-between}.close-button[data-v-f29cc549]{background:none;border:none;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--text-color);cursor:pointer}.btn-sm[data-v-f29cc549]{padding:var(--spacing-1) var(--spacing-2);font-size:.75rem}.layer-panel[data-v-fd097607]{position:absolute;top:var(--spacing-4);right:calc(40px + var(--spacing-4) * 2);background-color:#fff;border-radius:var(--radius-md);box-shadow:0 4px 12px #00000026;width:220px;overflow:hidden;z-index:5}.layer-panel-header[data-v-fd097607]{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-4);border-bottom:1px solid var(--border-color)}.layer-panel-header h3[data-v-fd097607]{margin:0;font-size:1rem;color:var(--primary-dark)}.close-button[data-v-fd097607]{background:none;border:none;cursor:pointer;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.layer-items[data-v-fd097607]{padding:var(--spacing-2)}.layer-item[data-v-fd097607]{padding:var(--spacing-2) var(--spacing-4)}.layer-label[data-v-fd097607]{display:flex;align-items:center;gap:var(--spacing-3);cursor:pointer;color:var(--primary-dark)}input[type=checkbox][data-v-fd097607]{width:16px;height:16px}.map-container[data-v-0b7e64ea]{width:100%;height:100%;min-height:400px}.vehicle-label{color:#000;background-color:#fff;padding:2px 5px;border-radius:3px;font-size:12px;font-weight:700;border:1px solid #ccc;white-space:nowrap;transform:translateY(-100%);margin-top:-15px}.vehicle-navigator[data-v-a86ca45b]{position:absolute;top:var(--spacing-4);left:var(--spacing-4);background-color:var(--card-background);border-radius:var(--radius-md);box-shadow:0 2px 12px var(--shadow-color);width:300px;max-height:calc(100% - var(--spacing-8));display:flex;flex-direction:column;overflow:hidden;z-index:5}.navigator-header[data-v-a86ca45b]{padding:var(--spacing-3) var(--spacing-4);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-color)}.navigator-header h3[data-v-a86ca45b]{margin:0;font-size:1rem}.close-button[data-v-a86ca45b]{background:none;border:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.close-button[data-v-a86ca45b]:hover{background-color:var(--error-color);color:#fff}.dark-mode .close-button[data-v-a86ca45b]:hover{background-color:var(--error-color)}.vehicle-list[data-v-a86ca45b]{flex:1;overflow-y:auto;max-height:400px}.vehicle-list[data-v-a86ca45b]::-webkit-scrollbar{width:8px}.vehicle-list[data-v-a86ca45b]::-webkit-scrollbar-track{background:var(--neutral-100);border-radius:4px}.vehicle-list[data-v-a86ca45b]::-webkit-scrollbar-thumb{background:var(--neutral-400);border-radius:4px;border:2px solid var(--neutral-100)}.vehicle-list[data-v-a86ca45b]::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}.dark-mode .vehicle-list[data-v-a86ca45b]::-webkit-scrollbar-track{background:var(--neutral-800)}.dark-mode .vehicle-list[data-v-a86ca45b]::-webkit-scrollbar-thumb{background:var(--neutral-600);border-color:var(--neutral-800)}.dark-mode .vehicle-list[data-v-a86ca45b]::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}.search-bar[data-v-a86ca45b]{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--border-color)}.search-bar .search-icon[data-v-a86ca45b]{color:var(--text-secondary)}.search-bar input[data-v-a86ca45b]{flex:1;border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:6px 8px;outline:none;background:var(--background-color);color:var(--text-color)}.vehicle-item[data-v-a86ca45b]{display:flex;align-items:center;padding:var(--spacing-3) var(--spacing-4);transition:background-color var(--transition-fast);cursor:pointer;border-bottom:1px solid var(--border-color)}.vehicle-item[data-v-a86ca45b]:hover{background-color:var(--neutral-100)}.dark-mode .vehicle-item[data-v-a86ca45b]:hover{background-color:var(--neutral-800)}.vehicle-item.selected[data-v-a86ca45b]{background-color:var(--primary-50)}.dark-mode .vehicle-item.selected[data-v-a86ca45b]{background-color:var(--primary-900)}.vehicle-icon[data-v-a86ca45b]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-full);background-color:var(--neutral-100);color:var(--primary-color);margin-right:var(--spacing-3);flex-shrink:0}.dark-mode .vehicle-icon[data-v-a86ca45b]{background-color:var(--neutral-800)}.vehicle-info[data-v-a86ca45b]{flex:1;min-width:0}.vehicle-name[data-v-a86ca45b]{font-weight:600;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vehicle-type[data-v-a86ca45b]{font-size:.75rem;color:var(--text-secondary)}.vehicle-status[data-v-a86ca45b]{display:flex;flex-direction:column;align-items:flex-end;margin-right:var(--spacing-3)}.status-indicator[data-v-a86ca45b]{width:8px;height:8px;border-radius:50%;margin-bottom:4px}.status-moving[data-v-a86ca45b]{background-color:var(--accent-color)}.status-idle[data-v-a86ca45b]{background-color:var(--warn-color)}.status-stopped[data-v-a86ca45b]{background-color:var(--primary-color)}.status-offline[data-v-a86ca45b]{background-color:var(--error-color)}.status-time[data-v-a86ca45b]{font-size:.75rem;color:var(--text-secondary)}.navigate-action[data-v-a86ca45b]{color:var(--primary-color);font-size:1rem;flex-shrink:0;position:relative}.visibility-toggle[data-v-a86ca45b]{margin-right:var(--spacing-3);flex-shrink:0}.qh-menu[data-v-a86ca45b]{position:absolute;top:28px;right:0;background:var(--card-background);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:0 2px 8px var(--shadow-color);padding:4px;z-index:20;min-width:150px}.qh-item[data-v-a86ca45b]{width:100%;display:block;text-align:left;padding:6px 10px;background:none;border:none;color:var(--text-color);border-radius:var(--radius-sm);cursor:pointer}.qh-item+.qh-item[data-v-a86ca45b]{margin-top:2px}.qh-item[data-v-a86ca45b]:hover{background-color:var(--neutral-100)}.dark-mode .qh-item[data-v-a86ca45b]:hover{background-color:var(--neutral-700)}.switch[data-v-a86ca45b]{position:relative;display:inline-block;width:36px;height:20px}.switch input[data-v-a86ca45b]{opacity:0;width:0;height:0}.slider[data-v-a86ca45b]{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--neutral-300);transition:.2s;border-radius:9999px}.slider[data-v-a86ca45b]:before{position:absolute;content:"";height:16px;width:16px;left:2px;top:2px;background-color:#fff;transition:.2s;border-radius:50%;box-shadow:0 1px 2px #0003}.switch input:checked+.slider[data-v-a86ca45b]{background-color:var(--primary-color)}.switch input:checked+.slider[data-v-a86ca45b]:before{transform:translate(16px)}.empty-list[data-v-a86ca45b]{padding:var(--spacing-6);text-align:center;color:var(--text-secondary)}.vehicle-timeline[data-v-a3d1b699]{background:var(--card-background);border-radius:var(--radius-md);box-shadow:0 2px 8px var(--shadow-color);padding:var(--spacing-3);width:100%;max-width:100%}.vehicle-timeline.compact[data-v-a3d1b699]{padding:8px;max-width:100%;box-shadow:none;background:transparent}.timeline-header[data-v-a3d1b699]{display:flex;gap:var(--spacing-6);align-items:center;justify-content:center;margin-bottom:var(--spacing-2)}.vehicle-timeline.compact .timeline-header[data-v-a3d1b699]{gap:var(--spacing-3);margin-bottom:4px}.metric[data-v-a3d1b699]{display:flex;gap:var(--spacing-2);align-items:baseline}.metric .k[data-v-a3d1b699]{color:var(--text-secondary);font-size:.8rem}.metric .v[data-v-a3d1b699]{font-weight:600}.sparkline[data-v-a3d1b699]{display:flex;flex-direction:column;align-items:stretch;gap:6px;margin-bottom:var(--spacing-2);width:100%}.sparkline-container[data-v-a3d1b699]{position:relative;width:100%}.zoom-controls[data-v-a3d1b699]{position:absolute;top:-6px;right:8px;display:flex;flex-direction:column;align-items:center;gap:2px;background:#fffffff2;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:3px 2px;z-index:10;box-shadow:0 2px 8px #00000026;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dark-mode .zoom-controls[data-v-a3d1b699]{background:#1e1e1ef2}.zoom-btn[data-v-a3d1b699]{background:transparent;border:none;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-color);cursor:pointer;transition:all var(--transition-fast);font-size:.75rem}.zoom-btn[data-v-a3d1b699]:hover:not(:disabled){background:var(--primary-color);color:#fff}.zoom-btn[data-v-a3d1b699]:disabled{opacity:.3;cursor:not-allowed}.zoom-level[data-v-a3d1b699]{font-size:.65rem;color:var(--text-secondary);text-align:center;font-weight:600;padding:2px 0;line-height:1}.sparkline-wrap[data-v-a3d1b699]{position:relative;width:100%;overflow-x:auto;overflow-y:hidden;min-height:85px;padding:4px 0;-webkit-user-select:none;user-select:none}.vehicle-timeline.compact .sparkline-wrap[data-v-a3d1b699]{min-height:65px}.sparkline-wrap.panning[data-v-a3d1b699],.sparkline-wrap.panning[data-v-a3d1b699] *{cursor:grabbing!important}.sparkline-wrap[data-v-a3d1b699]::-webkit-scrollbar{height:8px}.sparkline-wrap[data-v-a3d1b699]::-webkit-scrollbar-track{background:var(--neutral-100);border-radius:4px}.sparkline-wrap[data-v-a3d1b699]::-webkit-scrollbar-thumb{background:var(--neutral-400);border-radius:4px;border:2px solid var(--neutral-100)}.sparkline-wrap[data-v-a3d1b699]::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}.dark-mode .sparkline-wrap[data-v-a3d1b699]::-webkit-scrollbar-track{background:var(--neutral-800)}.dark-mode .sparkline-wrap[data-v-a3d1b699]::-webkit-scrollbar-thumb{background:var(--neutral-600);border-color:var(--neutral-800)}.dark-mode .sparkline-wrap[data-v-a3d1b699]::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}.sparkline-svg[data-v-a3d1b699]{height:auto;display:block;position:relative;z-index:1;padding-top:0}.sparkline-overlay[data-v-a3d1b699]{position:absolute;left:0;right:0;top:0;bottom:0;display:flex;align-items:flex-end;padding-bottom:4px;z-index:5;pointer-events:none}.sparkline-overlay[data-v-a3d1b699] *{pointer-events:auto}.sparkline-input[data-v-a3d1b699]{width:100%;background:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:20px;cursor:pointer}.sparkline-input[data-v-a3d1b699]::-webkit-slider-runnable-track{height:6px;background:transparent}.sparkline-input[data-v-a3d1b699]::-moz-range-track{height:0;background:transparent}.sparkline-input[data-v-a3d1b699]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--primary-color);border:2px solid #fff;box-shadow:0 1px 3px #0003;cursor:grab}.sparkline-input[data-v-a3d1b699]::-webkit-slider-thumb:active{cursor:grabbing}.sparkline-input[data-v-a3d1b699]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--primary-color);border:2px solid #fff;box-shadow:0 1px 3px #0003;cursor:grab}.sparkline-input[data-v-a3d1b699]::-moz-range-thumb:active{cursor:grabbing}.timeline-labels-wrap[data-v-a3d1b699]{width:100%;overflow-x:auto;overflow-y:hidden;padding-bottom:2px}.timeline-labels-wrap[data-v-a3d1b699]::-webkit-scrollbar{height:6px}.timeline-labels-wrap[data-v-a3d1b699]::-webkit-scrollbar-track{background:var(--neutral-100);border-radius:4px}.timeline-labels-wrap[data-v-a3d1b699]::-webkit-scrollbar-thumb{background:var(--neutral-400);border-radius:4px;border:2px solid var(--neutral-100)}.dark-mode .timeline-labels-wrap[data-v-a3d1b699]::-webkit-scrollbar-track{background:var(--neutral-800)}.dark-mode .timeline-labels-wrap[data-v-a3d1b699]::-webkit-scrollbar-thumb{background:var(--neutral-600);border-color:var(--neutral-800)}.timeline-labels[data-v-a3d1b699]{display:flex;align-items:center;min-width:100%;font-size:.8rem;color:var(--text-secondary)}.timeline-labels .t-spacer[data-v-a3d1b699]{flex:1}.timeline-labels .t-current[data-v-a3d1b699]{font-weight:600;color:var(--text-color);white-space:nowrap}.timeline-labels .t-start[data-v-a3d1b699],.timeline-labels .t-end[data-v-a3d1b699]{white-space:nowrap}.vehicle-timeline.compact .sparkline[data-v-a3d1b699]{margin-bottom:4px}.trip-summary[data-v-a3d1b699]{display:flex;justify-content:center;align-items:center;gap:6px;color:var(--text-secondary);font-size:.85rem;margin-bottom:var(--spacing-2)}.trip-summary .idx[data-v-a3d1b699]{font-weight:600;color:var(--text-color)}.trip-summary .sep[data-v-a3d1b699]{opacity:.6}.sensors[data-v-a3d1b699]{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--spacing-2)}.sensor[data-v-a3d1b699]{display:flex;justify-content:space-between;background:var(--neutral-50);padding:6px 8px;border-radius:var(--radius-sm)}.vehicle-timeline.compact .sensors[data-v-a3d1b699]{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px}.vehicle-timeline.compact .sensor[data-v-a3d1b699]{padding:4px 6px}.dark-mode .sensor[data-v-a3d1b699]{background:var(--neutral-800)}.sensor .k[data-v-a3d1b699]{color:var(--text-secondary);font-size:.8rem}.sensor .v[data-v-a3d1b699]{font-weight:600}.map-view[data-v-99c891ce]{position:relative;height:100%;width:100%;overflow:hidden}.loading-overlay[data-v-99c891ce]{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--background-color);z-index:10}.loading-spinner[data-v-99c891ce]{width:40px;height:40px;border:4px solid var(--neutral-200);border-top-color:var(--primary-color);border-radius:50%;animation:spin-99c891ce 1s linear infinite;margin-bottom:var(--spacing-4)}@keyframes spin-99c891ce{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.map-container[data-v-99c891ce]{height:100%;width:100%;position:relative}.vehicle-info-panel[data-v-99c891ce]{position:absolute;bottom:var(--spacing-4);right:var(--spacing-4);z-index:5}.sheet[data-v-99c891ce]{position:fixed;left:0;right:0;background:var(--card-background);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);box-shadow:0 -4px 16px #0003;z-index:20;max-height:60vh;display:flex;flex-direction:column}.sheet-bottom[data-v-99c891ce]{bottom:0}.route-history-panel[data-v-99c891ce]{position:absolute;top:var(--spacing-4);left:var(--spacing-4);background-color:var(--card-background);border-radius:var(--radius-md);box-shadow:0 2px 12px var(--shadow-color);width:380px;max-width:calc(100vw - var(--spacing-8));max-height:calc(100% - var(--spacing-8));display:flex;flex-direction:column;overflow:hidden;z-index:6}.panel-header[data-v-99c891ce]{padding:var(--spacing-3) var(--spacing-4);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-color);flex-shrink:0}.panel-header h3[data-v-99c891ce]{margin:0;font-size:1rem;font-weight:600;color:var(--text-color)}.panel-header .close-button[data-v-99c891ce]{background:none;border:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.panel-header .close-button[data-v-99c891ce]:hover{background-color:var(--error-color);color:#fff}.dark-mode .panel-header .close-button[data-v-99c891ce]:hover{background-color:var(--error-color)}.panel-body[data-v-99c891ce]{flex:1;overflow-y:auto;overflow-x:hidden;padding:var(--spacing-3);display:flex;flex-direction:column;gap:var(--spacing-3)}.panel-body[data-v-99c891ce]::-webkit-scrollbar{width:8px}.panel-body[data-v-99c891ce]::-webkit-scrollbar-track{background:var(--neutral-100);border-radius:4px}.panel-body[data-v-99c891ce]::-webkit-scrollbar-thumb{background:var(--neutral-400);border-radius:4px;border:2px solid var(--neutral-100)}.panel-body[data-v-99c891ce]::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}.dark-mode .panel-body[data-v-99c891ce]::-webkit-scrollbar-track{background:var(--neutral-800)}.dark-mode .panel-body[data-v-99c891ce]::-webkit-scrollbar-thumb{background:var(--neutral-600);border-color:var(--neutral-800)}.dark-mode .panel-body[data-v-99c891ce]::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}.sheet-header[data-v-99c891ce]{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--border-color)}.sheet-header .close-button[data-v-99c891ce]{background:none;border:none;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer}.sheet-header .close-button[data-v-99c891ce]:hover{background-color:var(--neutral-100)}.dark-mode .sheet-header .close-button[data-v-99c891ce]:hover{background-color:var(--neutral-800)}.sheet-body[data-v-99c891ce]{padding:var(--spacing-4);overflow-y:auto;overflow-x:hidden}.sheet-footer[data-v-99c891ce]{padding:var(--spacing-3) var(--spacing-4);border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:var(--spacing-2)}.details-pre[data-v-99c891ce]{white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;background:var(--neutral-50);padding:var(--spacing-3);border-radius:var(--radius-sm)}.route-body[data-v-99c891ce]{display:flex;flex-direction:column;gap:var(--spacing-3)}.route-mini[data-v-99c891ce]{display:flex;flex-direction:column;align-items:stretch;gap:var(--spacing-2);padding:var(--spacing-2) 0}.mini-controls[data-v-99c891ce]{display:flex;align-items:center;justify-content:center;gap:var(--spacing-2)}.section-header[data-v-99c891ce]{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-2) 0;border-bottom:1px solid var(--border-color);margin-bottom:var(--spacing-2)}.section-header h4[data-v-99c891ce]{margin:0;font-size:.9rem;font-weight:600;color:var(--text-color)}.trip-nav-btns[data-v-99c891ce]{display:flex;gap:4px}.nav-btn[data-v-99c891ce]{background:var(--neutral-100);border:1px solid var(--border-color);width:28px;height:28px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-color);transition:all var(--transition-fast)}.nav-btn[data-v-99c891ce]:hover{background:var(--neutral-200)}.dark-mode .nav-btn[data-v-99c891ce]{background:var(--neutral-800)}.dark-mode .nav-btn[data-v-99c891ce]:hover{background:var(--neutral-700)}.playback-main[data-v-99c891ce]{display:flex;align-items:center;justify-content:center;gap:var(--spacing-2)}.route-controls[data-v-99c891ce]{display:flex;flex-direction:column;gap:var(--spacing-4)}.route-controls.centered[data-v-99c891ce]{align-items:center;justify-content:center}.date-time-inputs[data-v-99c891ce]{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-4);align-items:end}.date-time-group[data-v-99c891ce]{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-3)}.date-input[data-v-99c891ce],.time-input[data-v-99c891ce]{display:flex;flex-direction:column}.date-input label[data-v-99c891ce],.time-input label[data-v-99c891ce]{font-size:.875rem;margin-bottom:var(--spacing-1);color:var(--text-secondary)}.date-input input[data-v-99c891ce],.time-input input[data-v-99c891ce]{width:240px;padding:var(--spacing-2);border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:var(--background-color);color:var(--text-color)}.date-selector-container[data-v-99c891ce]{background-color:var(--card-background);border-radius:var(--radius-md);box-shadow:0 2px 8px var(--shadow-color);padding:var(--spacing-4);width:100%;max-width:720px;margin:0 auto}.date-selector-container h3[data-v-99c891ce]{margin-bottom:var(--spacing-4);font-size:1rem}.snap-to-road-toggle[data-v-99c891ce]{display:flex;align-items:center;gap:var(--spacing-2)}.snap-to-road-toggle label[data-v-99c891ce]{display:flex;align-items:center;cursor:pointer;font-size:.875rem}.snap-to-road-toggle input[data-v-99c891ce]{margin-right:var(--spacing-2)}.load-button[data-v-99c891ce]{width:auto;min-width:220px}.route-map[data-v-99c891ce]{height:60vh;min-height:360px}.playback-controls[data-v-99c891ce]{display:flex;flex-direction:column;gap:var(--spacing-3)}.playback-row[data-v-99c891ce]{display:flex;align-items:center;gap:var(--spacing-3)}.playback-row.centered[data-v-99c891ce]{justify-content:center}.slider-wrap[data-v-99c891ce]{width:300px}.slider-wrap input[data-v-99c891ce]{width:100%}.speed-wrap[data-v-99c891ce]{display:flex;align-items:center;gap:var(--spacing-2)}.playback-time[data-v-99c891ce]{font-size:.875rem;color:var(--text-secondary)}.route-toolbar[data-v-99c891ce]{display:flex;flex-direction:column;gap:var(--spacing-3)}.dt-inline[data-v-99c891ce]{display:grid;grid-template-columns:1fr;gap:var(--spacing-2)}.inline-field[data-v-99c891ce]{display:flex;flex-direction:column}.inline-field label[data-v-99c891ce]{font-size:.75rem;color:var(--text-secondary);margin-bottom:4px;font-weight:500}.inline-field input[data-v-99c891ce]{width:100%;padding:8px;border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:var(--background-color);color:var(--text-color);font-size:.875rem}.input-with-icon[data-v-99c891ce]{position:relative}.input-with-icon .field-icon[data-v-99c891ce]{position:absolute;left:8px;top:50%;transform:translateY(-50%);color:var(--text-secondary);pointer-events:none}.input-with-icon input[data-v-99c891ce]{padding-left:32px}.route-toolbar .load-button[data-v-99c891ce]{display:flex;align-items:center;justify-content:center;width:100%;padding:10px;font-weight:600}.route-toolbar .load-button.compact[data-v-99c891ce]{width:100%;padding:10px}.btn-clear[data-v-99c891ce]{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:8px;background:var(--neutral-100);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--error-color);font-size:.875rem;cursor:pointer;transition:all var(--transition-fast)}.btn-clear[data-v-99c891ce]:hover:not(:disabled){background:var(--error-color);color:#fff;border-color:var(--error-color)}.btn-clear[data-v-99c891ce]:disabled{opacity:.5;cursor:not-allowed}.dark-mode .btn-clear[data-v-99c891ce]{background:var(--neutral-800)}.hint-text[data-v-99c891ce]{display:flex;align-items:center;gap:8px;padding:var(--spacing-2);background:var(--neutral-50);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.85rem;color:var(--text-secondary)}.dark-mode .hint-text[data-v-99c891ce]{background:var(--neutral-800)}.hint-text .error-text[data-v-99c891ce]{color:var(--error-color);font-weight:500}.playback-inline[data-v-99c891ce]{display:flex;align-items:center;gap:var(--spacing-2);flex-wrap:nowrap}.divider[data-v-99c891ce]{width:1px;height:22px;background:var(--border-color);margin:0 6px}.control-button[data-v-99c891ce]{background:none;border:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--text-color);cursor:pointer;transition:all var(--transition-fast)}.control-button[data-v-99c891ce]:hover{background-color:var(--neutral-100)}.dark-mode .control-button[data-v-99c891ce]:hover{background-color:var(--neutral-700)}.play-button[data-v-99c891ce]{width:36px;height:36px;font-size:1rem;color:var(--primary-color)}.play-button-lg[data-v-99c891ce]{width:56px;height:56px;font-size:1.6rem;color:var(--primary-color);border-radius:var(--radius-full)}.speed-buttons[data-v-99c891ce]{display:flex;align-items:center}.speed-button[data-v-99c891ce]{padding:2px 6px;border:1px solid var(--border-color);background:none;font-size:.7rem;cursor:pointer}.speed-button[data-v-99c891ce]:first-child{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.speed-button[data-v-99c891ce]:last-child{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.speed-button.active[data-v-99c891ce]{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.slider-wrap.compact[data-v-99c891ce],.slider-wrap.compact input[data-v-99c891ce]{width:100%}.trip-summary[data-v-99c891ce]{display:flex;align-items:center;justify-content:center;gap:6px;color:var(--text-secondary);font-size:.85rem;padding:4px 0;flex-wrap:wrap}.trip-summary .idx[data-v-99c891ce]{font-weight:600;color:var(--text-color)}.trip-summary .sep[data-v-99c891ce]{opacity:.6}.trip-row[data-v-99c891ce]{display:flex;flex-direction:column;gap:var(--spacing-2)}.trip-cards[data-v-99c891ce]{display:flex;flex-direction:column;gap:var(--spacing-2);max-height:300px;overflow-y:auto;padding:0}.trip-cards[data-v-99c891ce]::-webkit-scrollbar{width:8px}.trip-cards[data-v-99c891ce]::-webkit-scrollbar-track{background:var(--neutral-100);border-radius:4px}.trip-cards[data-v-99c891ce]::-webkit-scrollbar-thumb{background:var(--neutral-400);border-radius:4px;border:2px solid var(--neutral-100)}.trip-cards[data-v-99c891ce]::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}.dark-mode .trip-cards[data-v-99c891ce]::-webkit-scrollbar-track{background:var(--neutral-800)}.dark-mode .trip-cards[data-v-99c891ce]::-webkit-scrollbar-thumb{background:var(--neutral-600);border-color:var(--neutral-800)}.dark-mode .trip-cards[data-v-99c891ce]::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}.trip-card[data-v-99c891ce]{width:100%;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:10px 12px;background:var(--card-background);cursor:pointer;box-shadow:0 1px 4px var(--shadow-color)}.trip-card.active[data-v-99c891ce]{outline:2px solid var(--primary-color);box-shadow:0 2px 8px var(--shadow-color)}.trip-card .row1[data-v-99c891ce],.trip-card .row2[data-v-99c891ce]{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;justify-content:center}.trip-card .row1[data-v-99c891ce]{margin-bottom:6px}.trip-card .badge[data-v-99c891ce]{font-size:.7rem;padding:2px 6px;border-radius:10px;background:var(--neutral-100);color:var(--text-secondary)}.dark-mode .trip-card .badge[data-v-99c891ce]{background:var(--neutral-800)}.trip-card .badge.start[data-v-99c891ce]{color:#0f52ba}.trip-card .badge.end[data-v-99c891ce]{color:#ff3b30}.trip-card .time[data-v-99c891ce]{font-weight:600}.trip-card .dist[data-v-99c891ce],.trip-card .dur[data-v-99c891ce],.trip-card .idx[data-v-99c891ce]{color:var(--text-secondary);font-size:.9rem}.timeline-wrap[data-v-99c891ce]{display:flex;flex-direction:column;gap:var(--spacing-2);align-items:stretch}.timeline-controls[data-v-99c891ce]{display:flex;flex-direction:column;gap:var(--spacing-2);padding:0;align-items:stretch}.timeline-canvas[data-v-99c891ce]{width:100%;display:flex;justify-content:center;padding:0}.timeline-canvas[data-v-99c891ce] svg{width:100%}.timeline-canvas[data-v-99c891ce] .vehicle-timeline{width:100%;max-width:none;padding:var(--spacing-2)}.slider-wrap[data-v-99c891ce],.slider-wrap input[data-v-99c891ce]{width:100%}.full-bleed[data-v-99c891ce]{position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;width:100vw}.vehicle-list-container[data-v-750757b5]{background-color:var(--card-background);border-radius:var(--radius-md);box-shadow:0 2px 8px var(--shadow-color);height:100%;display:flex;flex-direction:column;overflow:hidden}.list-header[data-v-750757b5]{padding:var(--spacing-4);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-color)}.list-header h3[data-v-750757b5]{margin:0;font-size:1rem}.filter-button[data-v-750757b5]{background:none;border:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--text-color);cursor:pointer;transition:background-color var(--transition-fast)}.filter-button[data-v-750757b5]:hover{background-color:var(--neutral-100)}.dark-mode .filter-button[data-v-750757b5]:hover{background-color:var(--neutral-700)}.vehicle-list[data-v-750757b5]{flex:1;overflow-y:auto}.vehicle-item[data-v-750757b5]{display:flex;align-items:center;padding:var(--spacing-3) var(--spacing-4);transition:background-color var(--transition-fast);cursor:pointer;border-bottom:1px solid var(--border-color)}.vehicle-item[data-v-750757b5]:hover{background-color:var(--neutral-100)}.dark-mode .vehicle-item[data-v-750757b5]:hover{background-color:var(--neutral-800)}.vehicle-item.selected[data-v-750757b5]{background-color:var(--neutral-200)}.dark-mode .vehicle-item.selected[data-v-750757b5]{background-color:var(--neutral-700)}.vehicle-icon[data-v-750757b5]{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-full);background-color:var(--neutral-100);color:var(--primary-color);margin-right:var(--spacing-3);flex-shrink:0}.dark-mode .vehicle-icon[data-v-750757b5]{background-color:var(--neutral-800)}.vehicle-info[data-v-750757b5]{flex:1;min-width:0}.vehicle-name[data-v-750757b5]{font-weight:600;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vehicle-type[data-v-750757b5]{font-size:.75rem;color:var(--text-secondary)}.vehicle-status[data-v-750757b5]{text-align:right;display:flex;flex-direction:column;align-items:flex-end}.status-indicator[data-v-750757b5]{width:8px;height:8px;border-radius:50%;margin-bottom:4px}.status-moving[data-v-750757b5]{background-color:var(--accent-color)}.status-idle[data-v-750757b5]{background-color:var(--warn-color)}.status-stopped[data-v-750757b5]{background-color:var(--primary-color)}.status-offline[data-v-750757b5]{background-color:var(--error-color)}.status-time[data-v-750757b5]{font-size:.75rem;color:var(--text-secondary)}.empty-list[data-v-750757b5]{padding:var(--spacing-6);text-align:center;color:var(--text-secondary)}.vehicle-detail[data-v-7416b96d]{background-color:var(--card-background);border-radius:var(--radius-md);box-shadow:0 2px 8px var(--shadow-color);height:100%;display:flex;flex-direction:column;overflow:hidden}.detail-header[data-v-7416b96d]{padding:var(--spacing-6);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.vehicle-basic-info[data-v-7416b96d]{display:flex;align-items:center;gap:var(--spacing-4)}.vehicle-header-icon[data-v-7416b96d]{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-full);background-color:var(--primary-light);color:#fff;font-size:1.25rem}.vehicle-subheader[data-v-7416b96d]{display:flex;align-items:center;gap:var(--spacing-3);color:var(--text-secondary);font-size:.875rem}.status-badge[data-v-7416b96d]{padding:2px 8px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.status-moving[data-v-7416b96d]{background-color:#34c75926;color:var(--accent-color)}.status-idle[data-v-7416b96d]{background-color:#ff950026;color:var(--warn-color)}.status-stopped[data-v-7416b96d]{background-color:#0f52ba26;color:var(--primary-color)}.status-offline[data-v-7416b96d]{background-color:#ff3b3026;color:var(--error-color)}.detail-actions[data-v-7416b96d]{display:flex;gap:var(--spacing-3)}.detail-nav[data-v-7416b96d]{display:flex;border-bottom:1px solid var(--border-color)}.tab-button[data-v-7416b96d]{padding:var(--spacing-3) var(--spacing-4);border:none;background:none;font-size:.875rem;cursor:pointer;display:flex;align-items:center;gap:var(--spacing-2);color:var(--text-secondary);transition:all var(--transition-fast);border-bottom:2px solid transparent}.tab-button[data-v-7416b96d]:hover{color:var(--text-color)}.tab-button.active[data-v-7416b96d]{color:var(--primary-color);border-bottom-color:var(--primary-color);font-weight:600}.detail-content[data-v-7416b96d]{flex:1;overflow-y:auto;padding:var(--spacing-6)}.info-section[data-v-7416b96d]{margin-bottom:var(--spacing-6)}.info-section h4[data-v-7416b96d]{margin-bottom:var(--spacing-4);color:var(--text-secondary);font-weight:600;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.info-grid[data-v-7416b96d]{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-4)}.info-item[data-v-7416b96d]{padding:var(--spacing-4);background-color:var(--background-color);border-radius:var(--radius-md)}.info-label[data-v-7416b96d]{font-size:.75rem;color:var(--text-secondary);margin-bottom:var(--spacing-2)}.info-value[data-v-7416b96d]{font-weight:600;display:flex;align-items:center;gap:var(--spacing-2)}.sensor-items[data-v-7416b96d]{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-4)}.sensor-card[data-v-7416b96d]{display:flex;align-items:center;gap:var(--spacing-4);padding:var(--spacing-4);background-color:var(--background-color);border-radius:var(--radius-md)}.sensor-icon[data-v-7416b96d]{width:48px;height:48px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.sensor-normal[data-v-7416b96d]{background-color:#34c75926;color:var(--accent-color)}.sensor-warning[data-v-7416b96d]{background-color:#ff950026;color:var(--warn-color)}.sensor-critical[data-v-7416b96d]{background-color:#ff3b3026;color:var(--error-color)}.sensor-info[data-v-7416b96d]{display:flex;flex-direction:column}.sensor-name[data-v-7416b96d]{font-weight:600;margin-bottom:2px}.sensor-value[data-v-7416b96d]{font-size:1.25rem;font-weight:700;margin-bottom:2px}.sensor-status[data-v-7416b96d]{font-size:.75rem;font-weight:600}.status-normal[data-v-7416b96d]{color:var(--accent-color)}.status-warning[data-v-7416b96d]{color:var(--warn-color)}.status-critical[data-v-7416b96d]{color:var(--error-color)}.history-placeholder[data-v-7416b96d],.maintenance-placeholder[data-v-7416b96d]{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;height:300px}.history-placeholder h4[data-v-7416b96d],.maintenance-placeholder h4[data-v-7416b96d]{margin-top:var(--spacing-4);margin-bottom:var(--spacing-2)}.history-placeholder p[data-v-7416b96d],.maintenance-placeholder p[data-v-7416b96d]{color:var(--text-secondary);max-width:300px}.vehicles-view[data-v-be5dbda4]{height:100%;display:flex;flex-direction:column}.view-header[data-v-be5dbda4]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-6);padding:0 var(--spacing-4)}.search-container[data-v-be5dbda4]{position:relative;display:flex;align-items:center}.search-input[data-v-be5dbda4]{padding:var(--spacing-2) var(--spacing-4);padding-right:var(--spacing-10);border-radius:var(--radius-full);border:1px solid var(--border-color);background-color:var(--card-background);color:var(--text-color);width:300px}.search-button[data-v-be5dbda4]{position:absolute;right:var(--spacing-2);top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-secondary);cursor:pointer}.search-clear[data-v-be5dbda4]{position:absolute;right:var(--spacing-8);top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-secondary);cursor:pointer}.loading-container[data-v-be5dbda4]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.loading-spinner[data-v-be5dbda4]{width:40px;height:40px;border:4px solid var(--neutral-200);border-top-color:var(--primary-color);border-radius:50%;animation:spin-be5dbda4 1s linear infinite;margin-bottom:var(--spacing-4)}@keyframes spin-be5dbda4{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.vehicles-container[data-v-be5dbda4]{display:grid;grid-template-columns:300px 1fr;gap:var(--spacing-6);height:calc(100% - 60px);padding:0 var(--spacing-4)}.no-selection[data-v-be5dbda4]{background-color:var(--card-background);border-radius:var(--radius-md);box-shadow:0 2px 8px var(--shadow-color);display:flex;align-items:center;justify-content:center}.no-selection-content[data-v-be5dbda4]{text-align:center;max-width:300px;padding:var(--spacing-6)}.no-selection-content h3[data-v-be5dbda4]{margin-top:var(--spacing-4);margin-bottom:var(--spacing-2)}.no-selection-content p[data-v-be5dbda4]{color:var(--text-secondary)}@media (max-width: 768px){.vehicles-container[data-v-be5dbda4]{grid-template-columns:1fr}.search-input[data-v-be5dbda4]{width:100%;max-width:250px}}.geofence-list-container[data-v-59079658]{background-color:var(--card-background);border-radius:var(--radius-md);box-shadow:0 2px 8px var(--shadow-color);height:100%;display:flex;flex-direction:column;overflow:hidden}.list-header[data-v-59079658]{padding:var(--spacing-4);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-color)}.list-header h3[data-v-59079658]{margin:0;font-size:1rem}.filter-button[data-v-59079658]{background:none;border:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--text-color);cursor:pointer;transition:background-color var(--transition-fast)}.filter-button[data-v-59079658]:hover{background-color:var(--neutral-100)}.dark-mode .filter-button[data-v-59079658]:hover{background-color:var(--neutral-700)}.geofence-list[data-v-59079658]{flex:1;overflow-y:auto}.geofence-item[data-v-59079658]{display:flex;align-items:center;padding:var(--spacing-3) var(--spacing-4);transition:background-color var(--transition-fast);cursor:pointer;border-bottom:1px solid var(--border-color)}.geofence-item[data-v-59079658]:hover{background-color:var(--neutral-100)}.dark-mode .geofence-item[data-v-59079658]:hover{background-color:var(--neutral-800)}.geofence-item.selected[data-v-59079658]{background-color:var(--neutral-200)}.dark-mode .geofence-item.selected[data-v-59079658]{background-color:var(--neutral-700)}.geofence-icon[data-v-59079658]{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-full);margin-right:var(--spacing-3);flex-shrink:0}.geofence-info[data-v-59079658]{flex:1;min-width:0}.geofence-name[data-v-59079658]{font-weight:600;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.geofence-type[data-v-59079658]{font-size:.75rem;color:var(--text-secondary);text-transform:capitalize}.geofence-status[data-v-59079658]{text-align:right}.status-badge[data-v-59079658]{padding:2px 8px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.status-active[data-v-59079658]{background-color:#34c75926;color:var(--accent-color)}.status-inactive[data-v-59079658]{background-color:#64748b26;color:var(--text-secondary)}.empty-list[data-v-59079658]{padding:var(--spacing-6);text-align:center;color:var(--text-secondary)}.geofence-detail[data-v-199823a2]{background-color:var(--card-background);border-radius:var(--radius-md);box-shadow:0 2px 8px var(--shadow-color);height:100%;display:flex;flex-direction:column;overflow:hidden}.detail-header[data-v-199823a2]{padding:var(--spacing-6);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.geofence-basic-info[data-v-199823a2]{display:flex;align-items:center;gap:var(--spacing-4)}.geofence-header-icon[data-v-199823a2]{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-full);font-size:1.25rem}.geofence-subheader[data-v-199823a2]{display:flex;align-items:center;gap:var(--spacing-3);color:var(--text-secondary);font-size:.875rem}.geofence-type[data-v-199823a2]{text-transform:capitalize}.status-badge[data-v-199823a2]{padding:2px 8px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.status-active[data-v-199823a2]{background-color:#34c75926;color:var(--accent-color)}.status-inactive[data-v-199823a2]{background-color:#64748b26;color:var(--text-secondary)}.detail-actions[data-v-199823a2]{display:flex;gap:var(--spacing-3)}.detail-nav[data-v-199823a2]{display:flex;border-bottom:1px solid var(--border-color)}.tab-button[data-v-199823a2]{padding:var(--spacing-3) var(--spacing-4);border:none;background:none;font-size:.875rem;cursor:pointer;display:flex;align-items:center;gap:var(--spacing-2);color:var(--text-secondary);transition:all var(--transition-fast);border-bottom:2px solid transparent}.tab-button[data-v-199823a2]:hover{color:var(--text-color)}.tab-button.active[data-v-199823a2]{color:var(--primary-color);border-bottom-color:var(--primary-color);font-weight:600}.detail-content[data-v-199823a2]{flex:1;overflow-y:auto;padding:var(--spacing-6)}.info-section[data-v-199823a2]{margin-bottom:var(--spacing-6)}.info-section h4[data-v-199823a2]{margin-bottom:var(--spacing-4);color:var(--text-secondary);font-weight:600;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.info-grid[data-v-199823a2]{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-4)}.info-item[data-v-199823a2]{padding:var(--spacing-4);background-color:var(--background-color);border-radius:var(--radius-md)}.info-label[data-v-199823a2]{font-size:.75rem;color:var(--text-secondary);margin-bottom:var(--spacing-2)}.info-value[data-v-199823a2]{font-weight:600;display:flex;align-items:center;gap:var(--spacing-2)}.text-capitalize[data-v-199823a2]{text-transform:capitalize}.status-indicator[data-v-199823a2]{width:8px;height:8px;border-radius:50%}.color-swatch[data-v-199823a2]{width:16px;height:16px;border-radius:4px}.description-box[data-v-199823a2]{padding:var(--spacing-4);background-color:var(--background-color);border-radius:var(--radius-md)}.coordinates-box[data-v-199823a2]{background-color:var(--background-color);border-radius:var(--radius-md);overflow:hidden}.coordinate-item[data-v-199823a2]{display:flex;align-items:center;padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--border-color)}.coordinate-item[data-v-199823a2]:last-child{border-bottom:none}.coordinate-number[data-v-199823a2]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background-color:var(--primary-color);color:#fff;font-weight:600;margin-right:var(--spacing-3);flex-shrink:0}.coordinate-value[data-v-199823a2]{font-family:monospace;font-size:.875rem}.events-placeholder[data-v-199823a2],.settings-placeholder[data-v-199823a2]{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;height:300px}.events-placeholder h4[data-v-199823a2],.settings-placeholder h4[data-v-199823a2]{margin-top:var(--spacing-4);margin-bottom:var(--spacing-2)}.events-placeholder p[data-v-199823a2],.settings-placeholder p[data-v-199823a2]{color:var(--text-secondary);max-width:300px}.geofences-view[data-v-23b81dac]{height:100%;display:flex;flex-direction:column}.view-header[data-v-23b81dac]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-6);padding:0 var(--spacing-4)}.loading-container[data-v-23b81dac]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.loading-spinner[data-v-23b81dac]{width:40px;height:40px;border:4px solid var(--neutral-200);border-top-color:var(--primary-color);border-radius:50%;animation:spin-23b81dac 1s linear infinite;margin-bottom:var(--spacing-4)}@keyframes spin-23b81dac{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.geofences-container[data-v-23b81dac]{display:grid;grid-template-columns:300px 1fr;gap:var(--spacing-6);height:calc(100% - 60px);padding:0 var(--spacing-4)}.no-selection[data-v-23b81dac]{background-color:var(--card-background);border-radius:var(--radius-md);box-shadow:0 2px 8px var(--shadow-color);display:flex;align-items:center;justify-content:center}.no-selection-content[data-v-23b81dac]{text-align:center;max-width:300px;padding:var(--spacing-6)}.no-selection-content h3[data-v-23b81dac]{margin-top:var(--spacing-4);margin-bottom:var(--spacing-2)}.no-selection-content p[data-v-23b81dac]{color:var(--text-secondary)}@media (max-width: 768px){.geofences-container[data-v-23b81dac]{grid-template-columns:1fr}}.history-controls[data-v-60bf86ca]{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-3) var(--spacing-6);border-top:1px solid var(--border-color);background-color:var(--card-background)}.playback-buttons[data-v-60bf86ca]{display:flex;align-items:center;gap:var(--spacing-2)}.control-button[data-v-60bf86ca]{background:none;border:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--text-color);cursor:pointer;transition:all var(--transition-fast)}.control-button[data-v-60bf86ca]:hover{background-color:var(--neutral-100)}.dark-mode .control-button[data-v-60bf86ca]:hover{background-color:var(--neutral-700)}.play-button[data-v-60bf86ca]{width:40px;height:40px;font-size:1.25rem;color:var(--primary-color)}.speed-controls[data-v-60bf86ca]{display:flex;align-items:center;gap:var(--spacing-3)}.speed-label[data-v-60bf86ca]{font-size:.875rem;color:var(--text-secondary)}.speed-buttons[data-v-60bf86ca]{display:flex;align-items:center}.speed-button[data-v-60bf86ca]{padding:var(--spacing-1) var(--spacing-2);border:1px solid var(--border-color);background:none;font-size:.75rem;cursor:pointer;transition:all var(--transition-fast)}.speed-button[data-v-60bf86ca]:first-child{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.speed-button[data-v-60bf86ca]:last-child{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.speed-button.active[data-v-60bf86ca]{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.time-display[data-v-60bf86ca]{font-family:monospace;font-size:1rem;font-weight:600}.vehicle-selector[data-v-3b5e0a9b]{background-color:var(--card-background);border-radius:var(--radius-md);box-shadow:0 2px 8px var(--shadow-color);overflow:hidden}.selector-header[data-v-3b5e0a9b]{padding:var(--spacing-4);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-color)}.selector-header h3[data-v-3b5e0a9b]{margin:0;font-size:1rem}.clear-button[data-v-3b5e0a9b]{background:none;border:none;color:var(--primary-color);font-size:.875rem;cursor:pointer}.vehicle-list[data-v-3b5e0a9b]{max-height:300px;overflow-y:auto}.vehicle-item[data-v-3b5e0a9b]{display:flex;align-items:center;padding:var(--spacing-3) var(--spacing-4);transition:background-color var(--transition-fast);cursor:pointer;border-bottom:1px solid var(--border-color)}.vehicle-item[data-v-3b5e0a9b]:hover{background-color:var(--neutral-100)}.dark-mode .vehicle-item[data-v-3b5e0a9b]:hover{background-color:var(--neutral-800)}.vehicle-item.selected[data-v-3b5e0a9b]{background-color:var(--neutral-200)}.dark-mode .vehicle-item.selected[data-v-3b5e0a9b]{background-color:var(--neutral-700)}.checkbox[data-v-3b5e0a9b]{margin-right:var(--spacing-3)}.vehicle-icon[data-v-3b5e0a9b]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-full);background-color:var(--neutral-100);color:var(--primary-color);margin-right:var(--spacing-3);flex-shrink:0;font-size:.75rem}.dark-mode .vehicle-icon[data-v-3b5e0a9b]{background-color:var(--neutral-800)}.vehicle-name[data-v-3b5e0a9b]{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-indicator[data-v-3b5e0a9b]{width:8px;height:8px;border-radius:50%;margin-left:var(--spacing-3)}.status-moving[data-v-3b5e0a9b]{background-color:var(--accent-color)}.status-idle[data-v-3b5e0a9b]{background-color:var(--warn-color)}.status-stopped[data-v-3b5e0a9b]{background-color:var(--primary-color)}.status-offline[data-v-3b5e0a9b]{background-color:var(--error-color)}.timeline-container[data-v-c35ff795]{padding:var(--spacing-3) var(--spacing-6);border-top:1px solid var(--border-color);background-color:var(--card-background)}.timeline[data-v-c35ff795]{height:8px;background-color:var(--neutral-200);border-radius:var(--radius-full);position:relative;cursor:pointer}.dark-mode .timeline[data-v-c35ff795]{background-color:var(--neutral-700)}.timeline-progress[data-v-c35ff795]{height:100%;background-color:var(--primary-color);border-radius:var(--radius-full);width:0%}.timeline-handle[data-v-c35ff795]{position:absolute;top:50%;transform:translate(-50%,-50%);width:16px;height:16px;background-color:#fff;border:2px solid var(--primary-color);border-radius:50%;left:0%;cursor:grab}.timeline-handle[data-v-c35ff795]:active{cursor:grabbing}.timeline-time-markers[data-v-c35ff795]{display:flex;justify-content:space-between;margin-top:var(--spacing-2);font-size:.75rem;color:var(--text-secondary)}.history-map-container[data-v-e7efda16]{width:100%;height:100%;position:relative}.map-overlay[data-v-e7efda16]{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#ffffffb3;z-index:1;display:flex;justify-content:center;align-items:center}.map-message[data-v-e7efda16]{text-align:center;background-color:var(--card-background);padding:var(--spacing-6);border-radius:var(--radius-md);box-shadow:0 2px 8px var(--shadow-color)}.history-view[data-v-58d03adb]{height:100%;display:flex;flex-direction:column}.view-header[data-v-58d03adb]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-6);padding:0 var(--spacing-4)}.error-message[data-v-58d03adb]{display:flex;align-items:center;gap:var(--spacing-2);color:var(--error-color);font-size:.875rem}.loading-container[data-v-58d03adb]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.loading-spinner[data-v-58d03adb]{width:40px;height:40px;border:4px solid var(--neutral-200);border-top-color:var(--primary-color);border-radius:50%;animation:spin-58d03adb 1s linear infinite;margin-bottom:var(--spacing-4)}@keyframes spin-58d03adb{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.history-container[data-v-58d03adb]{display:grid;grid-template-columns:300px 1fr;gap:var(--spacing-6);height:calc(100% - 60px);padding:0 var(--spacing-4)}.side-panel[data-v-58d03adb]{display:flex;flex-direction:column;gap:var(--spacing-6)}.date-selector-container[data-v-58d03adb]{background-color:var(--card-background);border-radius:var(--radius-md);box-shadow:0 2px 8px var(--shadow-color);padding:var(--spacing-4)}.date-selector-container h3[data-v-58d03adb]{margin-bottom:var(--spacing-4);font-size:1rem}.date-inputs[data-v-58d03adb]{display:grid;gap:var(--spacing-3);margin-bottom:var(--spacing-4)}.date-input label[data-v-58d03adb]{display:block;font-size:.875rem;margin-bottom:var(--spacing-1);color:var(--text-secondary)}.date-input input[data-v-58d03adb]{width:100%;padding:var(--spacing-2);border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:var(--background-color);color:var(--text-color)}.load-button[data-v-58d03adb]{width:100%}.load-button[data-v-58d03adb]:disabled{opacity:.7;cursor:not-allowed}.map-container[data-v-58d03adb]{background-color:var(--card-background);border-radius:var(--radius-md);box-shadow:0 2px 8px var(--shadow-color);overflow:hidden;position:relative;display:flex;flex-direction:column}@media (max-width: 768px){.history-container[data-v-58d03adb]{grid-template-columns:1fr}}.date-time-inputs[data-v-58d03adb]{display:grid;gap:var(--spacing-3);margin-bottom:var(--spacing-4)}.date-time-group[data-v-58d03adb]{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-3)}.date-input[data-v-58d03adb],.time-input[data-v-58d03adb]{display:flex;flex-direction:column}.date-input label[data-v-58d03adb],.time-input label[data-v-58d03adb]{display:block;font-size:.875rem;margin-bottom:var(--spacing-1);color:var(--text-secondary)}.date-input input[data-v-58d03adb],.time-input input[data-v-58d03adb]{width:100%;padding:var(--spacing-2);border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:var(--background-color);color:var(--text-color)}.snap-to-road-toggle[data-v-58d03adb]{margin:var(--spacing-4) 0;display:flex;align-items:center;gap:var(--spacing-2)}.snap-to-road-toggle label[data-v-58d03adb]{display:flex;align-items:center;cursor:pointer;font-size:.875rem}.snap-to-road-toggle input[data-v-58d03adb]{margin-right:var(--spacing-2)}.poi-view[data-v-4b5a4619]{height:100%;display:flex;flex-direction:column}.view-header[data-v-4b5a4619]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-6);padding:0 var(--spacing-4)}.loading-container[data-v-4b5a4619]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.loading-spinner[data-v-4b5a4619]{width:40px;height:40px;border:4px solid var(--neutral-200);border-top-color:var(--primary-color);border-radius:50%;animation:spin-4b5a4619 1s linear infinite;margin-bottom:var(--spacing-4)}@keyframes spin-4b5a4619{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.poi-container[data-v-4b5a4619]{flex:1;padding:var(--spacing-4)}.settings-view[data-v-7818db3a]{height:100%;display:flex;flex-direction:column}.view-header[data-v-7818db3a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-6);padding:0 var(--spacing-4)}.settings-container[data-v-7818db3a]{padding:0 var(--spacing-4);max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:var(--spacing-6);padding-bottom:var(--spacing-6)}.settings-card[data-v-7818db3a]{background-color:var(--card-background);border-radius:var(--radius-md);box-shadow:0 2px 8px var(--shadow-color);padding:var(--spacing-6)}.settings-card h3[data-v-7818db3a]{margin-top:0;margin-bottom:var(--spacing-2)}.settings-description[data-v-7818db3a]{color:var(--text-secondary);margin-bottom:var(--spacing-6)}.settings-form[data-v-7818db3a]{display:flex;flex-direction:column;gap:var(--spacing-4)}.form-group[data-v-7818db3a]{display:flex;flex-direction:column;gap:var(--spacing-2)}.form-row[data-v-7818db3a]{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-4)}.form-group label[data-v-7818db3a]{font-weight:500;font-size:.875rem}.form-group input[type=text][data-v-7818db3a],.form-group input[type=password][data-v-7818db3a],.form-group input[type=number][data-v-7818db3a]{padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:var(--background-color);color:var(--text-color)}.checkbox-label[data-v-7818db3a]{display:flex;align-items:center;gap:var(--spacing-2);font-weight:400;cursor:pointer}.connection-status-box[data-v-7818db3a]{background-color:var(--background-color);border-radius:var(--radius-md);padding:var(--spacing-4);margin-top:var(--spacing-2)}.status-box-header[data-v-7818db3a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-4)}.status-box-header h4[data-v-7818db3a]{margin:0;font-size:.875rem}.test-button[data-v-7818db3a]{background:none;border:none;color:var(--primary-color);font-size:.875rem;cursor:pointer}.status-display[data-v-7818db3a]{display:flex;align-items:center;gap:var(--spacing-4)}.status-indicator-large[data-v-7818db3a]{width:16px;height:16px;border-radius:50%;flex-shrink:0}.status-indicator-large.connected[data-v-7818db3a]{background-color:var(--accent-color)}.status-indicator-large.disconnected[data-v-7818db3a]{background-color:var(--error-color)}.status-indicator-large.connecting[data-v-7818db3a]{background-color:var(--warn-color);animation:pulse-7818db3a 1.5s infinite}@keyframes pulse-7818db3a{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}.status-details[data-v-7818db3a]{display:flex;flex-direction:column}.status-text[data-v-7818db3a]{font-weight:600}.status-meta[data-v-7818db3a]{font-size:.75rem;color:var(--text-secondary)}.form-actions[data-v-7818db3a]{display:flex;justify-content:flex-end;gap:var(--spacing-3);margin-top:var(--spacing-2)}.success-message[data-v-7818db3a]{display:flex;align-items:center;gap:var(--spacing-2);color:var(--accent-color);font-weight:600;margin-top:var(--spacing-2)}.settings-options[data-v-7818db3a]{display:flex;flex-direction:column;gap:var(--spacing-4)}.option-item[data-v-7818db3a]{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-3) 0;border-bottom:1px solid var(--border-color)}.option-item[data-v-7818db3a]:last-child{border-bottom:none}.option-name[data-v-7818db3a]{font-weight:600;margin-bottom:var(--spacing-1)}.option-description[data-v-7818db3a]{font-size:.875rem;color:var(--text-secondary)}.theme-toggle-button[data-v-7818db3a]{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-md);background-color:var(--primary-color);color:#fff;border:none;cursor:pointer;transition:background-color var(--transition-fast)}.theme-toggle-button[data-v-7818db3a]:hover{background-color:var(--primary-light)}.select-control[data-v-7818db3a]{padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:var(--background-color);color:var(--text-color);min-width:150px}.switch[data-v-7818db3a]{position:relative;display:inline-block;width:50px;height:24px}.switch input[data-v-7818db3a]{opacity:0;width:0;height:0}.slider[data-v-7818db3a]{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--neutral-300);transition:var(--transition-fast);border-radius:34px}.slider[data-v-7818db3a]:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:var(--transition-fast);border-radius:50%}input:checked+.slider[data-v-7818db3a]{background-color:var(--primary-color)}input:focus+.slider[data-v-7818db3a]{box-shadow:0 0 1px var(--primary-color)}input:checked+.slider[data-v-7818db3a]:before{transform:translate(26px)}.about-content[data-v-7818db3a]{display:flex;flex-direction:column;gap:var(--spacing-6)}.app-info[data-v-7818db3a]{display:flex;align-items:center;gap:var(--spacing-4)}.app-logo[data-v-7818db3a]{width:60px;height:60px;background-color:var(--primary-color);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;border-radius:var(--radius-md);flex-shrink:0}.app-details h4[data-v-7818db3a]{margin:0;margin-bottom:var(--spacing-1)}.app-details p[data-v-7818db3a]{margin:0;font-size:.875rem;color:var(--text-secondary)}.about-description[data-v-7818db3a]{line-height:1.6}.about-links[data-v-7818db3a]{display:flex;flex-wrap:wrap;gap:var(--spacing-4)}.about-link[data-v-7818db3a]{display:flex;align-items:center;gap:var(--spacing-2);color:var(--primary-color);text-decoration:none}.about-link[data-v-7818db3a]:hover{text-decoration:underline}@media (max-width: 640px){.form-row[data-v-7818db3a]{grid-template-columns:1fr}.option-item[data-v-7818db3a]{flex-direction:column;align-items:flex-start;gap:var(--spacing-3)}.status-display[data-v-7818db3a]{flex-direction:column;align-items:flex-start}}.login-container[data-v-43b99894]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-4);background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary-color) 100%)}.login-card[data-v-43b99894]{background-color:var(--card-background);border-radius:var(--radius-lg);box-shadow:0 4px 24px #0003;padding:var(--spacing-8);width:100%;max-width:400px}.login-header[data-v-43b99894]{text-align:center;margin-bottom:var(--spacing-8)}.login-header h1[data-v-43b99894]{margin-bottom:var(--spacing-2);color:var(--primary-color)}.login-header p[data-v-43b99894]{color:var(--text-secondary)}.login-form[data-v-43b99894]{display:flex;flex-direction:column;gap:var(--spacing-4)}.form-group[data-v-43b99894]{display:flex;flex-direction:column;gap:var(--spacing-2)}.form-group label[data-v-43b99894]{font-weight:500;font-size:.875rem}.input-container[data-v-43b99894]{position:relative;display:flex;align-items:center}.input-icon[data-v-43b99894]{position:absolute;left:var(--spacing-3);color:var(--text-secondary)}.input-container input[data-v-43b99894]{width:100%;padding:var(--spacing-3) var(--spacing-3) var(--spacing-3) var(--spacing-8);border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--background-color);color:var(--text-color);transition:border-color var(--transition-fast)}.input-container input[data-v-43b99894]:focus{outline:none;border-color:var(--primary-color)}.password-toggle[data-v-43b99894]{position:absolute;right:var(--spacing-3);background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:0}.login-button[data-v-43b99894]{width:100%;padding:var(--spacing-3);display:flex;align-items:center;justify-content:center;gap:var(--spacing-2);margin-top:var(--spacing-2)}.error-message[data-v-43b99894]{background-color:#ff3b301a;color:var(--error-color);padding:var(--spacing-3);border-radius:var(--radius-md);font-size:.875rem;text-align:center}:root{--primary-color: #0F52BA;--primary-light: #4D7FD9;--primary-dark: #0A3580;--accent-color: #34C759;--accent-light: #5FD57C;--accent-dark: #28A046;--warn-color: #FF9500;--warn-light: #FFB04D;--warn-dark: #CC7600;--error-color: #FF3B30;--error-light: #FF6C64;--error-dark: #CC2F26;--neutral-50: #F8FAFC;--neutral-100: #F1F5F9;--neutral-200: #E2E8F0;--neutral-300: #CBD5E1;--neutral-400: #94A3B8;--neutral-500: #64748B;--neutral-600: #475569;--neutral-700: #334155;--neutral-800: #1E293B;--neutral-900: #0F172A;--background-color: var(--neutral-50);--card-background: white;--text-color: var(--neutral-900);--text-secondary: var(--neutral-600);--border-color: var(--neutral-200);--shadow-color: rgba(0, 0, 0, .1);font-family:SF Pro Display,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:16px;line-height:1.5;--spacing-1: 4px;--spacing-2: 8px;--spacing-3: 12px;--spacing-4: 16px;--spacing-5: 20px;--spacing-6: 24px;--spacing-8: 32px;--spacing-10: 40px;--spacing-12: 48px;--spacing-16: 64px;--transition-fast: .15s ease;--transition-normal: .3s ease;--transition-slow: .5s ease;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px}.dark-mode{--background-color: var(--neutral-900);--card-background: var(--neutral-800);--text-color: var(--neutral-50);--text-secondary: var(--neutral-300);--border-color: var(--neutral-700);--shadow-color: rgba(0, 0, 0, .5)}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;padding:0;overflow:hidden;background-color:var(--background-color);color:var(--text-color)}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;margin-bottom:var(--spacing-4)}h1{font-size:2rem}h2{font-size:1.75rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}p{margin-bottom:var(--spacing-4)}a{color:var(--primary-color);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--primary-light)}.card{background-color:var(--card-background);border-radius:var(--radius-md);box-shadow:0 2px 8px var(--shadow-color);padding:var(--spacing-6);margin-bottom:var(--spacing-6);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.card:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-color)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-md);font-weight:500;cursor:pointer;transition:all var(--transition-fast);border:none}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover{background-color:var(--primary-light)}.btn-accent{background-color:var(--accent-color);color:#fff}.btn-accent:hover{background-color:var(--accent-light)}.btn-warn{background-color:var(--warn-color);color:#fff}.btn-warn:hover{background-color:var(--warn-light)}.btn-error{background-color:var(--error-color);color:#fff}.btn-error:hover{background-color:var(--error-light)}.btn-outline{background-color:transparent;border:1px solid var(--border-color);color:var(--text-color)}.btn-outline:hover{background-color:var(--border-color)}.badge{display:inline-flex;align-items:center;padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.badge-primary{background-color:var(--primary-light);color:#fff}.badge-accent{background-color:var(--accent-light);color:#fff}.badge-warn{background-color:var(--warn-light);color:#fff}.badge-error{background-color:var(--error-light);color:#fff}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--spacing-1)}.gap-2{gap:var(--spacing-2)}.gap-4{gap:var(--spacing-4)}.gap-6{gap:var(--spacing-6)}.p-2{padding:var(--spacing-2)}.p-4{padding:var(--spacing-4)}.p-6{padding:var(--spacing-6)}.m-2{margin:var(--spacing-2)}.m-4{margin:var(--spacing-4)}.m-6{margin:var(--spacing-6)}.my-2{margin-top:var(--spacing-2);margin-bottom:var(--spacing-2)}.my-4{margin-top:var(--spacing-4);margin-bottom:var(--spacing-4)}.mx-2{margin-left:var(--spacing-2);margin-right:var(--spacing-2)}.mx-4{margin-left:var(--spacing-4);margin-right:var(--spacing-4)}.mt-4{margin-top:var(--spacing-4)}.mb-4{margin-bottom:var(--spacing-4)}.ml-2{margin-left:var(--spacing-2)}.mr-2{margin-right:var(--spacing-2)}.text-primary{color:var(--primary-color)}.text-accent{color:var(--accent-color)}.text-warn{color:var(--warn-color)}.text-error{color:var(--error-color)}.text-secondary{color:var(--text-secondary)}.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-medium{font-weight:500}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-center{text-align:center}.text-right{text-align:right}.rounded-full{border-radius:var(--radius-full)}.rounded{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.shadow{box-shadow:0 2px 4px var(--shadow-color)}.shadow-md{box-shadow:0 4px 6px var(--shadow-color)}.shadow-lg{box-shadow:0 10px 15px var(--shadow-color)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid{display:grid;gap:var(--spacing-4)}.grid-cols-1{grid-template-columns:1fr}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 640px){.sm\:grid-cols-1{grid-template-columns:1fr}.sm\:hidden{display:none}}@media (min-width: 641px) and (max-width: 1024px){.md\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.md\:hidden{display:none}}@media (min-width: 1025px){.lg\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.lg\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.lg\:hidden{display:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{transform:translate(30px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInLeft{0%{transform:translate(-30px);opacity:0}to{transform:translate(0);opacity:1}}.animate-fade-in{animation:fadeIn var(--transition-normal)}.animate-slide-in-right{animation:slideInRight var(--transition-normal)}.animate-slide-in-left{animation:slideInLeft var(--transition-normal)}.status-online{background-color:var(--accent-color)}.status-offline{background-color:var(--error-color)}.status-idle{background-color:var(--warn-color)}.status-indicator{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:var(--spacing-2)}.map-container{width:100%;height:100%;border-radius:var(--radius-md);overflow:hidden}
