.app{min-height:100vh}.input-group{display:flex;flex-direction:column;gap:6px}.input-label{color:#2d3748;font-size:.9rem;font-weight:600}.input-wrap{position:relative}.input-field{background:#ebf4f5;border:1px solid #e2e8f0;border-radius:8px;color:#2d3748;font-family:inherit;font-size:.95rem;padding:10px 14px;transition:border-color .2s,box-shadow .2s;width:100%}.input-field::placeholder{color:#718096}.input-field:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633;outline:none}.input-field--error{border-color:#e74c3c}.input-field--with-icon{padding-right:44px}.input-icon-btn{background:none;border:none;color:#64748b;cursor:pointer;font-size:.9rem;padding:4px;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.input-icon-btn:hover{color:#334155}.input-error-msg{color:#e74c3c;font-size:.85rem}.login-page{align-items:center;background:#1a202c;color:#2d3748;display:flex;flex-direction:column;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;justify-content:center;min-height:100vh;padding:40px 20px}.logo-block{margin-bottom:32px;text-align:center}.logo-block img{display:block;height:auto;margin:0 auto 12px;max-width:280px}.system-title{color:#a0aec0;font-size:.95rem;font-weight:500}.login-card{background:#fff;border-radius:12px;box-shadow:0 10px 40px #00000040;max-width:420px;padding:32px;width:100%}.login-card h1{color:#1a202c;font-size:1.5rem;font-weight:700;margin-bottom:24px}.login-form-group{margin-bottom:20px}.login-submit{background:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:inherit;font-size:1rem;font-weight:600;margin-bottom:24px;margin-top:8px;padding:14px;transition:background .2s;width:100%}.login-submit:hover{background:#2563eb}.login-error{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#b91c1c;font-size:.9rem;margin-bottom:16px;padding:12px}.help-text{color:#4a5568;font-size:.9rem;margin-bottom:4px}.help-link{color:#3b82f6;display:inline-block;font-size:.9rem;margin-bottom:20px;text-decoration:none}.help-link:hover{text-decoration:underline}.info-box{align-items:flex-start;background:#dbeafe;border:1px solid #93c5fd;border-radius:8px;display:flex;gap:12px;margin-bottom:16px;padding:14px 16px}.info-box-icon{align-items:center;background:#3b82f6;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.75rem;font-weight:700;height:24px;justify-content:center;width:24px}.info-box-content strong{color:#1e3a5f;display:block;font-size:.9rem;margin-bottom:4px}.info-box-content span{color:#1e40af;font-size:.85rem;line-height:1.4}.demo-credentials{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;font-size:.9rem;padding:14px 16px}.demo-credentials strong{color:#166534;display:block;font-size:.85rem;margin-bottom:8px}.demo-credentials div{color:#15803d;margin-top:4px}.demo-credentials code{background:#0000000f;border-radius:4px;font-family:ui-monospace,monospace;padding:2px 6px}.login-footer{border-top:1px solid #ffffff14;color:#718096;font-size:.85rem;margin-top:40px;padding:20px;text-align:center}.login-footer a{color:#a0aec0;text-decoration:none}.login-footer a:hover{text-decoration:underline}.login-footer .footer-links{margin-top:8px}.login-footer .footer-links span{color:#4a5568;margin:0 8px}.kpi-grid{grid-gap:20px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.charts-grid,.kpi-grid{display:grid;gap:20px;margin-bottom:20px}.charts-grid{grid-gap:20px;grid-template-columns:1fr 1fr}@media (max-width:1024px){.charts-grid{grid-template-columns:1fr}}.chart-container{background:#fff;border-radius:10px;box-shadow:0 2px 10px #00000014;padding:24px}.chart-header{align-items:center;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:20px}.chart-header h3{color:#2c3e50;font-size:1rem;margin:0}.chart-filters{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.chart-select{background:#fff;border:1px solid #ddd;border-radius:5px;cursor:pointer;font-family:inherit;font-size:.9rem;padding:8px 12px}.chart-select:focus{border-color:#3498db;outline:none}.custom-date-range{align-items:center;display:flex;gap:8px}.custom-date-range input[type=date]{border:1px solid #ddd;border-radius:5px;font-family:inherit;font-size:.9rem;padding:8px 12px}.custom-date-range span{color:#7f8c8d}.chart-wrapper{height:280px;position:relative}.table-container{background:#fff;border-radius:10px;box-shadow:0 2px 10px #00000014;margin-bottom:20px;overflow-x:auto;padding:24px}.table-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:20px}.table-header h3{color:#2c3e50;margin:0}.search-box{display:flex;gap:8px}.search-box input{border:1px solid #ddd;border-radius:6px;font-family:inherit;font-size:.9rem;min-width:200px;padding:8px 14px}.search-box input:focus{border-color:#3498db;outline:none}.btn-filter{background:#3498db;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 14px}.btn-filter:hover{background:#2980b9}.data-table{border-collapse:collapse;font-size:.9rem;width:100%}.data-table th{background:#f8f9fa;border-bottom:2px solid #e8e8e8;color:#2c3e50;font-weight:600;text-align:left}.data-table td,.data-table th{padding:12px 14px;white-space:nowrap}.data-table td{border-bottom:1px solid #f0f0f0;color:#555}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:#fafafa}.time-badge{border-radius:12px;display:inline-block;font-size:.82rem;font-weight:600;padding:3px 10px}.time-badge.normal{background:#d4edda;color:#155724}.time-badge.late{background:#fff3cd;color:#856404}.time-badge.early{background:#d1ecf1;color:#0c5460}.overtime-badge{border-radius:12px;display:inline-block;font-size:.82rem;font-weight:600;padding:3px 10px}.overtime-badge.none{background:#d4edda;color:#155724}.overtime-badge.low{background:#fff3cd;color:#856404}.overtime-badge.high{background:#f8d7da;color:#721c24}.action-btn{background:none;border:1px solid #ddd;border-radius:4px;color:#3498db;cursor:pointer;font-size:.85rem;margin-right:4px;padding:5px 8px;transition:all .2s}.action-btn:hover{background:#3498db;border-color:#3498db;color:#fff}.pagination{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:20px}.pagination button{background:#fff;border:1px solid #ddd;border-radius:6px;color:#2c3e50;cursor:pointer;font-family:inherit;font-size:.9rem;padding:8px 14px;transition:all .2s}.pagination button.active,.pagination button:hover{background:#3498db;border-color:#3498db;color:#fff}.pagination button:disabled{cursor:not-allowed;opacity:.5}.poi-filter-label{color:#7f8c8d;font-size:.85rem;font-weight:400;margin-left:8px}.poi-filter-label a{color:#3498db;cursor:pointer;margin-left:6px;text-decoration:none}.poi-filter-label a:hover{text-decoration:underline}.export-section{align-items:center;background:#fff;border-radius:10px;box-shadow:0 2px 10px #00000014;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px;padding:24px}.export-section h3{color:#2c3e50;margin-bottom:4px;width:100%}.btn-export{align-items:center;border:none;border-radius:6px;cursor:pointer;display:inline-flex;font-family:inherit;font-size:.9rem;font-weight:600;gap:8px;padding:10px 18px;transition:opacity .2s}.btn-export:hover{opacity:.85}.btn-export.pdf{background:#e74c3c;color:#fff}.btn-export.excel{background:#27ae60;color:#fff}.btn-export.csv{background:#3498db;color:#fff}.btn-export.hist{background:#9b59b6;color:#fff}.dashboard-page-title{color:#2c3e50;font-size:1.8rem;font-weight:700}.loader{align-items:center;display:flex;justify-content:center;padding:20px}.loader__spinner{animation:spin .8s linear infinite;border:3px solid #e8e8e8;border-radius:50%;border-top-color:#3498db;height:36px;width:36px}.loader__spinner--sm{border-width:2px;height:20px;width:20px}.loader__spinner--lg{border-width:4px;height:56px;width:56px}@keyframes spin{to{transform:rotate(1turn)}}.sync-overlay{background:#ffffffe6;inset:0;justify-content:center;position:fixed;z-index:9999}.sync-complete,.sync-loading,.sync-overlay{align-items:center;display:flex;flex-direction:column;gap:20px}.sync-text{color:#2c3e50;font-size:1.1rem;font-weight:600}.sync-check-wrap{align-items:center;animation:pop .45s ease-out;background:linear-gradient(135deg,#27ae60,#2ecc71);border-radius:50%;box-shadow:0 4px 20px #27ae6066;color:#fff;display:flex;font-size:28px;height:64px;justify-content:center;width:64px}@keyframes pop{0%{opacity:0;transform:scale(0)}55%{transform:scale(1.12)}to{opacity:1;transform:scale(1)}}.vehicles-page-title{color:#2c3e50;font-size:1.8rem;font-weight:700}.vf-bar{background:#fff;border-radius:10px;box-shadow:0 2px 10px #00000014;flex-wrap:wrap;gap:12px;margin-bottom:20px;padding:14px 20px}.vf-bar,.vf-field{align-items:center;display:flex}.vf-field{position:relative}.vf-icon{color:#95a5a6;font-size:.85rem;left:10px;pointer-events:none;position:absolute}.vf-input,.vf-select{background:#fafafa;border:1px solid #ddd;border-radius:6px;color:#2c3e50;font-family:inherit;font-size:.88rem;outline:none;padding:8px 12px 8px 32px;transition:border-color .2s}.vf-input{width:220px}.vf-select{cursor:pointer;width:160px}.vf-input:focus,.vf-select:focus{background:#fff;border-color:#8e44ad}.vf-reset{align-items:center;background:#f0f0f0;border:none;border-radius:6px;color:#555;cursor:pointer;display:flex;font-family:inherit;font-size:.85rem;gap:6px;padding:8px 14px;transition:background .2s}.vf-reset:hover{background:#e0e0e0}.vf-count{color:#95a5a6;font-size:.85rem;font-weight:500;margin-left:auto}.team-cards-list{display:flex;flex-direction:column;gap:14px}.team-card{border-radius:12px;box-shadow:0 4px 16px #0000001a;overflow:hidden}.team-card-header{align-items:center;background:linear-gradient(135deg,#a855f7,#7c3aed);cursor:pointer;display:flex;justify-content:space-between;padding:18px 24px;transition:filter .2s;-webkit-user-select:none;user-select:none}.team-card-header:hover{filter:brightness(1.08)}.team-card-left{align-items:center;display:flex;gap:14px}.team-card-icon{color:#ffffffd9;font-size:1.3rem}.team-card-name{color:#fff;font-size:1rem;font-weight:700;letter-spacing:.04em}.team-card-badge{background:#fff3;border:1px solid #ffffff59;border-radius:20px;color:#fff;font-size:.78rem;font-weight:600;padding:3px 10px}.team-card-chevron{color:#fffc;font-size:.9rem;transition:transform .25s ease}.team-card-chevron.open{transform:rotate(90deg)}.team-card-body{background:#fff;border-top:none}.vehicles-table{border-collapse:collapse;font-size:.9rem;width:100%}.vehicles-table thead tr{background:#f8f9fa;border-bottom:2px solid #e8e8e8}.vehicles-table th{color:#2c3e50;font-weight:600;padding:11px 20px;text-align:left;white-space:nowrap}.vehicles-table tbody tr{border-bottom:1px solid #f0f0f0;transition:background .15s}.vehicles-table tbody tr:last-child{border-bottom:none}.vehicles-table tbody tr:hover{background:#faf5ff}.vehicles-table td{color:#4a5568;padding:11px 20px;white-space:nowrap}.vt-index{color:#bdc3c7;font-size:.82rem;width:40px}.vt-reg{color:#2c3e50;font-weight:500}.vehicles-state-box{align-items:center;border-radius:10px;display:flex;font-size:1rem;font-weight:500;gap:12px;justify-content:center;padding:48px 24px}.vehicles-error{background:#fff5f5;border:1px solid #fbd0d0;color:#c0392b}.vehicles-error i{font-size:1.4rem}.vehicles-empty{background:#f8f9fa;border:1px solid #e8e8e8;color:#7f8c8d}.vehicles-empty i{color:#bdc3c7;font-size:1.4rem}.team-card-actions{align-items:center;display:flex;gap:14px}.team-card-add-btn{align-items:center;background:#ffffff2e;border:1px solid #ffffff73;border-radius:20px;color:#fff;cursor:pointer;display:flex;font-family:inherit;font-size:.8rem;font-weight:600;gap:6px;padding:6px 14px;transition:background .2s;white-space:nowrap}.team-card-add-btn:hover{background:#ffffff52}.vehicles-toast{align-items:center;animation:toast-in .3s ease;background:#2ecc71;border-radius:8px;bottom:32px;box-shadow:0 6px 20px #2ecc7159;color:#fff;display:flex;font-size:.9rem;font-weight:600;gap:10px;padding:12px 22px;position:fixed;right:32px;z-index:99999}@keyframes toast-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.avt-backdrop{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:10000}.avt-modal{background:#fff;border-radius:14px;box-shadow:0 24px 64px #0003;max-width:460px;overflow:hidden;width:100%}.avt-header{background:linear-gradient(135deg,#a855f7,#7c3aed);justify-content:space-between;padding:20px 24px}.avt-header,.avt-header-left{align-items:center;display:flex}.avt-header-left{gap:14px}.avt-header-icon{color:#ffffffd9;font-size:1.5rem}.avt-title{color:#fff;font-size:1rem;font-weight:700;margin:0 0 2px}.avt-subtitle{color:#ffffffbf;font-size:.82rem;margin:0}.avt-close{align-items:center;background:#ffffff2e;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:.9rem;height:32px;justify-content:center;transition:background .2s;width:32px}.avt-close:hover{background:#ffffff52}.avt-body{display:flex;flex-direction:column;gap:18px;padding:24px}.avt-error{align-items:center;background:#fff5f5;border:1px solid #fbd0d0;border-radius:6px;color:#c0392b;display:flex;font-size:.88rem;gap:8px;padding:10px 14px}.avt-field{display:flex;flex-direction:column;gap:6px}.avt-label{color:#2c3e50;font-size:.85rem;font-weight:600}.avt-required{color:#e74c3c}.avt-input,.avt-select{border:1px solid #ddd;border-radius:8px;color:#2c3e50;font-family:inherit;font-size:.9rem;outline:none;padding:10px 14px;transition:border-color .2s}.avt-input--readonly{background:#f8f9fa;color:#7f8c8d;cursor:default}.avt-input:focus,.avt-select:focus{border-color:#a855f7}.avt-select{cursor:pointer}.avt-footer{display:flex;gap:10px;justify-content:flex-end;padding-top:4px}.avt-btn-cancel{background:#fff;border:1px solid #ddd;border-radius:8px;color:#555;cursor:pointer;font-family:inherit;font-size:.9rem;padding:9px 20px;transition:background .2s}.avt-btn-cancel:hover:not(:disabled){background:#f8f9fa}.avt-btn-save{align-items:center;background:linear-gradient(135deg,#a855f7,#7c3aed);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-family:inherit;font-size:.9rem;font-weight:600;gap:7px;padding:9px 22px;transition:filter .2s}.avt-btn-save:hover:not(:disabled){filter:brightness(1.1)}.avt-btn-cancel:disabled,.avt-btn-save:disabled{cursor:not-allowed;opacity:.6}.vt-no-results{color:#95a5a6;font-size:.9rem;padding:28px!important;text-align:center}.sidebar{background:#2c3e50;color:#fff;height:100vh;left:0;overflow-x:hidden;overflow-y:auto;padding:20px 0;position:fixed;top:0;transition:width .3s;width:250px;z-index:1000}.sidebar.collapsed{width:70px}.sidebar-header{align-items:center;border-bottom:1px solid #34495e;display:flex;justify-content:space-between;padding:0 20px 20px}.sidebar-logo{display:block;max-height:40px;width:auto}.sidebar.collapsed .menu-text,.sidebar.collapsed .sidebar-logo{display:none}.toggle-btn{background:none;border:none;color:#fff;cursor:pointer;flex-shrink:0;font-size:1.2rem}.sidebar-menu{list-style:none;padding:20px 0}.sidebar-menu li{align-items:center;color:#ecf0f1;cursor:pointer;display:flex;gap:15px;padding:15px 20px;text-decoration:none;transition:background .2s}.sidebar-menu li:hover{background:#34495e}.sidebar-menu li.active{background:#3498db;border-left:4px solid #2980b9}.sidebar-menu i{font-size:1.2rem;min-width:20px;text-align:center}.menu-text{font-size:.95rem;white-space:nowrap}.main-content{display:flex;flex-direction:column;margin-left:250px;min-height:100vh;padding:20px;transition:margin-left .3s}.main-content.expanded{margin-left:70px}.page-header{align-items:center;background:#fff;border-radius:10px;box-shadow:0 2px 10px #00000014;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:20px;padding:20px}.page-header h1{color:#2c3e50;font-size:1.8rem}.header-user-trigger{position:relative}.user-info{align-items:center;cursor:pointer;display:flex;gap:16px;-webkit-user-select:none;user-select:none}.header-datetime{font-feature-settings:"tnum";color:#5a6c7d;font-size:.95rem;font-variant-numeric:tabular-nums;font-weight:500;letter-spacing:.02em}.header-datetime .date-part{color:#2c3e50;font-weight:600}.header-datetime .time-part{color:#3498db;font-weight:600}.user-avatar{align-items:center;background:linear-gradient(135deg,#3498db,#2980b9);border-radius:50%;box-shadow:0 2px 8px #3498db59;color:#fff;display:flex;flex-shrink:0;font-size:.9rem;font-weight:700;height:42px;justify-content:center;width:42px}.header-username{color:#2c3e50;font-size:.95rem;font-weight:600}.user-dropdown{background:#fff;border:1px solid #0000000f;border-radius:8px;box-shadow:0 4px 20px #0000001f;min-width:180px;overflow:hidden;position:absolute;right:0;top:calc(100% + 8px);z-index:1000}.user-dropdown-error{background:#fff5f5;border-bottom:1px solid #fde8e8;color:#e74c3c;font-size:.82rem;padding:8px 16px}.user-dropdown-item{align-items:center;background:none;border:none;color:#2c3e50;cursor:pointer;display:flex;font-family:inherit;font-size:.95rem;gap:10px;padding:12px 16px;text-align:left;transition:background .2s;width:100%}.user-dropdown-item:hover{background:#f5f6f8}.user-dropdown-item i{color:#3498db;width:20px}.user-dropdown-item.logout i{color:#e74c3c}.session-warning-backdrop{align-items:center;background:#0000008c;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:10001}.session-warning-card{background:#fff;border-radius:12px;box-shadow:0 20px 60px #00000040;max-width:380px;padding:36px 32px;text-align:center;width:100%}.session-warning-icon{color:#f39c12;font-size:2.4rem;margin-bottom:16px}.session-warning-card h3{color:#2c3e50;font-size:1.25rem;font-weight:700;margin-bottom:8px}.session-warning-card p{color:#7f8c8d;font-size:.95rem;line-height:1.5;margin-bottom:16px}.session-countdown{font-feature-settings:"tnum";color:#e74c3c;font-size:2.8rem;font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:.05em;margin-bottom:28px}.logout-modal-backdrop{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:10000}.logout-modal-card{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0003;max-width:380px;padding:28px 32px;text-align:center;width:100%}.logout-icon{align-items:center;background:#e74c3c1f;border-radius:50%;color:#e74c3c;display:flex;font-size:1.4rem;height:52px;justify-content:center;margin:0 auto 20px;width:52px}.logout-modal-card h3{color:#2c3e50;font-size:1.2rem;font-weight:600;margin-bottom:10px}.logout-modal-card p{color:#7f8c8d;font-size:.95rem;line-height:1.5;margin-bottom:24px}.logout-modal-actions{display:flex;gap:12px;justify-content:center}.logout-modal-actions button{border:none;border-radius:8px;cursor:pointer;font-family:inherit;font-size:.95rem;font-weight:600;padding:12px 24px;transition:all .2s}.btn-logout-cancel{background:#ecf0f1;color:#2c3e50}.btn-logout-cancel:hover{background:#bdc3c7}.btn-logout-confirm{background:#e74c3c;color:#fff}.btn-logout-confirm:hover{background:#c0392b}.app-footer{border-top:1px solid #e8e8e8;color:#718096;font-size:.85rem;margin-top:auto;padding:20px;text-align:center}.app-footer a{color:#3498db;text-decoration:none}.app-footer a:hover{text-decoration:underline}.footer-links{margin-top:8px}.footer-links span{color:#bdc3c7;margin:0 8px}@media (max-width:768px){.main-content{margin-left:70px}}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f7fa;color:#333;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}code{font-family:ui-monospace,Cascadia Code,Source Code Pro,Menlo,Consolas,DejaVu Sans Mono,monospace}
/*# sourceMappingURL=main.9280a6ad.css.map*/