body{margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.customer-list-container{margin:0;max-width:100%;padding:0}@media (max-width:768px){.customer-list-container{padding:0 10px}}.customer-list-header{align-items:center;display:flex;gap:20px;justify-content:space-between;margin-bottom:20px}.customer-list-header>div{display:flex;flex-direction:column;gap:10px}.customer-list-header h1{color:#333;font-size:28px;margin:0}.btn-link{background:none;border:none;color:#667eea;cursor:pointer;font-size:14px;padding:0;text-decoration:none;transition:color .2s}.btn-link:hover{color:#764ba2;text-decoration:underline}.btn-primary,.btn-secondary{max-width:300px}.btn-primary:hover{background-color:#0056b3}.customer-search{margin-bottom:20px}.customer-search form{display:flex;flex-wrap:wrap;gap:10px}.search-input{border:1px solid #ddd;border-radius:4px;flex:1 1;font-size:14px;min-width:300px;padding:10px}.customer-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow-x:auto}.customer-table{border-collapse:collapse;width:100%}.customer-table thead{background-color:#f8f9fa}.customer-table th{border-bottom:2px solid #dee2e6;color:#495057;font-weight:600;padding:12px;text-align:left}.customer-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.customer-table th.sortable:hover{background-color:#e9ecef}.customer-table td{border-bottom:1px solid #dee2e6;padding:12px}.customer-table tbody tr:hover{background-color:#f8f9fa}.address-cell{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actions-cell{display:flex;flex-wrap:wrap;gap:5px}.no-data{color:#6c757d;padding:40px!important;text-align:center}.modal-overlay{background-color:#00000080;padding:20px}.modal-content{animation:modalSlideIn .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:600px;width:100%}.modal-content.modal-large{max-width:800px}.modal-content-wide{max-width:1200px}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}.modal-header{border-bottom:1px solid #e9ecef;padding:20px 30px}.modal-header h2{color:#333;font-size:24px}.modal-close{color:#999;font-size:32px;line-height:1;transition:color .2s}.modal-close:hover{color:#333}.modal-body{flex:1 1;overflow-y:auto;padding:30px}.modal-footer{border-top:1px solid #e9ecef;gap:10px;padding:20px 30px}.detail-section{margin-bottom:30px}.detail-section:last-child{margin-bottom:0}.detail-section h3{border-bottom:2px solid #e9ecef;color:#495057;font-size:18px;margin-bottom:15px;padding-bottom:10px}.detail-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.detail-item{display:flex;flex-direction:column}.detail-item.full-width{grid-column:1/-1}.detail-item label{color:#6c757d;font-size:12px;font-weight:600;margin-bottom:5px;text-transform:uppercase}.detail-value{color:#212529;font-size:16px}.customer-detail-layout{align-items:flex-start;display:flex;gap:30px}.customer-detail-main{flex:1 1;min-width:0}.customer-detail-sidebar{flex:0 0 400px;position:sticky;top:20px;transition:flex .3s ease}.customer-detail-sidebar.sidebar-expanded{flex:0 0 66.67%;max-width:66.67%}.map-container{background:#fff;box-shadow:0 2px 8px #0000001a;transition:all .3s ease;width:100%}.map-container.map-expanded{box-shadow:0 4px 20px #0003}.interactive-map{border-radius:8px 8px 0 0;transition:height .3s ease}.map-controls{background-color:#f8f9fa;border-top:1px solid #e9ecef;display:flex;justify-content:flex-start;padding:10px 15px}.btn-map-expand{align-items:center;background-color:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:6px;padding:8px 14px;transition:all .2s ease}.btn-map-expand:hover{background-color:#545b62;box-shadow:0 2px 6px #00000026;transform:translateY(-1px)}.btn-map-expand:active{transform:translateY(0)}.location-map{display:block;height:auto;width:100%}.map-actions{background-color:#f8f9fa;display:flex;flex-direction:column;gap:10px;padding:15px}.btn-map-action{align-items:center;background-color:#17a2b8;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:8px;justify-content:center;padding:12px 16px;transition:all .2s ease;white-space:nowrap;width:100%}.btn-map-action:hover{background-color:#138496;box-shadow:0 4px 8px #00000026;transform:translateY(-1px)}.btn-map-action:active{box-shadow:0 2px 4px #0000001a;transform:translateY(0)}.map-icon{font-size:16px;line-height:1;opacity:.9}@media (max-width:1024px){.customer-detail-layout{flex-direction:column}.customer-detail-sidebar{flex:1 1;max-width:100%;position:static;width:100%}.customer-detail-sidebar.sidebar-expanded{flex:1 1;max-width:100%}.map-actions{flex-direction:row;flex-wrap:wrap}.btn-map-action{flex:1 1;min-width:150px}.map-controls{display:none}}@media (max-width:768px){.modal-content-wide{max-width:100%}.map-actions{flex-direction:column}.btn-map-action{width:100%}}.customer-form-container{margin:0 auto;max-width:800px;padding:20px}.customer-form-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.customer-form-header h1{color:#333;margin:0}.customer-form{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:30px}.form-section{margin-bottom:25px}.form-section:last-of-type{margin-bottom:0}.form-section h3{border-bottom:2px solid #e9ecef;color:#495057;font-size:16px;margin-bottom:15px;padding-bottom:10px}.form-group label{color:#495057;font-weight:600;margin-bottom:5px}.form-group input[type=email],.form-group input[type=tel],.form-group input[type=text],.form-group textarea{border:1px solid #ced4da;border-radius:4px;font-size:14px;padding:10px;transition:border-color .15s ease-in-out;width:100%}.form-group input:focus,.form-group textarea:focus{border-color:#80bdff;box-shadow:0 0 0 .2rem #007bff40;outline:none}.form-group input.error,.form-group textarea.error{border-color:#dc3545}.form-group textarea{min-height:80px;resize:vertical}.checkbox-group,.checkbox-group label{align-items:center;display:flex}.checkbox-group label{cursor:pointer;margin-bottom:0}.checkbox-group input[type=checkbox]{cursor:pointer;height:18px;margin-right:8px;width:18px}.checkbox-group span{font-weight:400}.error-text,.required{color:#dc3545}.error-text{display:block;font-size:12px;margin-top:5px}.loading{color:#6c757d;font-size:16px;padding:40px;text-align:center}.error-container{margin:40px auto;max-width:600px;padding:20px;text-align:center}.error-message{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;color:#721c24;padding:12px 20px}.pagination{align-items:center;display:flex;gap:15px;justify-content:center;margin-top:20px;padding:20px}.pagination-info{color:#6c757d;font-size:14px}.btn{border-radius:4px;display:inline-block;padding:8px 16px;text-decoration:none;transition:all .2s}.btn-primary{background-color:#007bff}.btn-primary:hover:not(:disabled){background-color:#0056b3}.btn-secondary{background-color:#6c757d;color:#fff}.btn-secondary:hover:not(:disabled){background-color:#545b62}.btn-warning{background-color:#ffc107;color:#212529}.btn-warning:hover:not(:disabled){background-color:#e0a800}.btn-danger{background-color:#dc3545;color:#fff}.btn-danger:hover:not(:disabled){background-color:#c82333}.btn-info{background-color:#17a2b8;color:#fff}.btn-info:hover:not(:disabled){background-color:#138496}.btn-sm{font-size:14px;font-weight:700;margin:0 5px;padding:12px 16px;text-transform:uppercase}.badge{border-radius:4px;font-size:12px;padding:4px 8px;text-align:center}.badge-success{background-color:#28a745;color:#fff}.badge-secondary{background-color:#6c757d;color:#fff}@media (max-width:768px){.customer-list-header{align-items:flex-start;flex-direction:column;gap:15px}.customer-list-header .btn,.customer-list-header>div{width:100%}.customer-search form{flex-direction:column}.search-input{min-width:100%}.customer-table-container{background:#0000;box-shadow:none}.customer-table thead{display:none}.customer-table,.customer-table tbody,.customer-table tr{display:block;width:100%}.customer-table tr{background:#fff;border:1px solid #e9ecef;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:15px;padding:15px}.customer-table tr:hover{background:#fff;box-shadow:0 4px 8px #00000026}.customer-table td{border:none;display:block;padding:8px 0;position:relative;text-align:left}.customer-table td:before{color:#6c757d;content:attr(data-label);font-size:12px;font-weight:600;left:0;padding-right:10px;position:absolute;text-transform:uppercase;width:45%}.customer-table td:first-child{border-bottom:1px solid #e9ecef;color:#333;font-size:18px;font-weight:600;margin-bottom:8px;padding-bottom:12px;padding-left:0}.customer-table td:first-child:before{display:none}.customer-table td:last-child{border-top:1px solid #e9ecef;margin-top:10px;padding-left:0;padding-top:15px}.customer-table td:last-child:before{display:none}.actions-cell{display:flex;flex-direction:row;gap:12px;justify-content:space-between}.actions-cell .btn{flex:1 1;font-size:15px;font-weight:600;min-width:0;padding:12px 16px}.address-cell{max-width:100%;white-space:normal}.detail-grid{grid-template-columns:1fr}.modal-content{border-radius:0;max-height:100vh;max-width:100%}.modal-body,.modal-footer,.modal-header{padding:15px 20px}.modal-footer{flex-direction:column-reverse}.modal-footer .btn{width:100%}}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,1fr);margin-bottom:30px;max-width:800px}.stat-card{align-items:center;background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;display:flex;flex-direction:column;gap:15px;justify-content:center;min-height:180px;overflow:hidden;padding:30px;position:relative;text-align:center;transition:transform .2s,box-shadow .2s}.stat-card:before{background:linear-gradient(90deg,#2196f3,#667eea);content:"";height:4px;left:0;position:absolute;right:0;top:0}.stat-card:hover{box-shadow:0 8px 16px #00000026;transform:translateY(-4px)}.stat-card-primary:before{background:linear-gradient(90deg,#2196f3,#42a5f5)}.stat-card-success:before{background:linear-gradient(90deg,#4caf50,#66bb6a)}.stat-card-warning:before{background:linear-gradient(90deg,#ff9800,#ffa726)}.stat-card-info:before{background:linear-gradient(90deg,#9c27b0,#ab47bc)}.stat-icon{font-size:3.5rem;margin-bottom:10px;opacity:.9}.stat-content{width:100%}.stat-value{color:#333;font-size:3rem;font-weight:700;line-height:1;margin-bottom:10px}.stat-label{color:#6c757d;font-size:.875rem;font-weight:600;letter-spacing:1px;text-transform:uppercase}.info-box{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.info-box h3{color:#333;font-size:1.25rem;margin:0 0 10px}.info-box p{color:#6c757d;margin:0}.devices-grid{grid-gap:15px;display:grid;gap:15px}.device-card{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;overflow:hidden}.device-card-header{align-items:center;background:#fff;border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;padding:12px 15px}.device-card-body{padding:15px}@media (max-width:768px){.stats-grid{grid-template-columns:1fr;max-width:100%}.customer-table-container{overflow-x:auto}.customer-table{min-width:90%}}.filters-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px;padding:20px}.filters-row{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:15px}.filter-group{display:flex;flex-direction:column;gap:5px}.filter-group label{color:#495057;font-size:.875rem;font-weight:600}.filter-input,.filter-select{border:1px solid #ced4da;border-radius:4px;font-size:.875rem;padding:8px 12px;transition:border-color .2s}.filter-input:focus,.filter-select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.filters-actions{display:flex;gap:10px;justify-content:flex-end}.logs-stats{align-items:center;color:#6c757d;display:flex;font-size:.875rem;justify-content:space-between;margin-bottom:15px;padding:10px 0}.loading-indicator{color:#667eea;font-style:italic}.logs-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.logs-list{display:flex;flex-direction:column}.log-entry{border-bottom:1px solid #e9ecef;padding:15px 20px;transition:background-color .2s}.log-entry:last-child{border-bottom:none}.log-entry:hover{background-color:#f8f9fa}.log-header{align-items:center;gap:10px;justify-content:space-between;margin-bottom:8px}.log-badges,.log-header{display:flex;flex-wrap:wrap}.log-badges{gap:8px}.badge{border-radius:12px;display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:4px 10px;text-transform:uppercase}.badge-auth{background-color:#e3f2fd;color:#1976d2}.badge-device{background-color:#f3e5f5;color:#7b1fa2}.badge-security{background-color:#fff3e0;color:#e65100}.badge-info{background-color:#e8f5e9;color:#2e7d32}.badge-warning{background-color:#fff9c4;color:#f57f17}.badge-error{background-color:#ffebee;color:#c62828}.badge-debug{background-color:#f5f5f5;color:#616161}.badge-default{background-color:#e0e0e0;color:#424242}.log-timestamp{color:#6c757d;font-family:Courier New,monospace;font-size:.875rem}.log-message{color:#212529;font-size:.9375rem;font-weight:500;margin-bottom:8px}.log-context{grid-gap:8px;background-color:#f8f9fa;border-radius:4px;display:grid;font-family:Courier New,monospace;font-size:.8125rem;gap:8px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));padding:10px}.log-context-item{display:flex;gap:8px}.log-context-key{color:#495057;font-weight:600}.log-context-value{color:#212529;word-break:break-all}.subtitle{color:#6c757d;font-size:.9375rem;margin-top:5px}@media (max-width:768px){.filters-row{grid-template-columns:1fr}.log-header{align-items:flex-start;flex-direction:column}.log-context{grid-template-columns:1fr}.filters-actions{justify-content:stretch}.filters-actions button{flex:1 1}}.truck-graphic-container{align-items:flex-start;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;gap:40px;justify-content:center;padding:32px}.vehicle-section{align-items:center;display:flex;flex:0 0 auto;flex-direction:column}.vehicle-label{color:#333;font-size:28px;font-weight:600;margin-bottom:16px}.truck-svg-wrapper{height:500px;position:relative;width:330px}.trailer-svg,.truck-svg{height:100%;width:100%}.trailer-body,.truck-body{fill:#f8f9fa;stroke:#666;stroke-width:2}.truck-cab{fill:#5c7cfa;stroke:#364fc7;stroke-width:2}.truck-wall{fill:#e9ecef;stroke:#666;stroke-width:1}.truck-label{fill:#333;text-anchor:middle;font-size:28px;font-weight:600}.truck-orientation-label{color:#666;font-size:12px;left:50%;position:absolute;top:0;transform:translateX(-50%)}.drop-zone-bg{fill:#f8f9fa;stroke:#dee2e6;stroke-width:2;rx:6;transition:all .2s ease}.drop-zone-bg.drag-over{fill:#e3f2fd;stroke:#1976d2;stroke-width:4}.drop-zone-bg.occupied{fill:#e8f5e9;stroke:#388e3c}.drop-zone-bg.heavy-trailer{fill:#ffcdd2;stroke:#d32f2f}.drop-zone-bg.medium-trailer{fill:#ffe0b2;stroke:#f57c00}.drop-zone-overlay{align-items:center;border-radius:6px;box-sizing:border-box;cursor:pointer;display:flex;justify-content:space-between;padding:4px 8px;position:absolute;transition:all .2s ease;z-index:10}.drop-zone-overlay.empty{background:#0000;border:2px dashed #ccc;cursor:default}.drop-zone-overlay.empty:hover{background:#1976d20d;border-color:#1976d2}.drop-zone-overlay.occupied{background:#e8f5e9;border:2px solid #388e3c;cursor:grab}.drop-zone-overlay.occupied:active{cursor:grabbing}.drop-zone-overlay.drag-over{background:#e3f2fd;border-color:#1976d2;transform:scale(1.02)}.drop-zone-overlay.dragging{opacity:.5}.drop-zone-overlay.heavy-trailer{background:#ffcdd2;border-color:#d32f2f}.drop-zone-overlay.medium-trailer{background:#ffe0b2;border-color:#f57c00}.overlay-content{display:flex;flex:1 1;flex-direction:column;gap:2px;overflow:hidden}.overlay-content .position-label{color:#333;font-size:14px;font-weight:700}.overlay-content .product-label{color:#388e3c;font-size:11px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overlay-content .customer-label{color:#666;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.heavy-trailer .overlay-content .product-label{color:#b71c1c}.medium-trailer .overlay-content .product-label{color:#e65100}.empty-label{color:#ccc;font-size:20px;font-weight:500;text-align:center;width:100%}.remove-btn-overlay{align-items:center;background:#f44;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:14px;font-weight:700;height:20px;justify-content:center;line-height:1;margin-left:4px;padding:0;width:20px}.remove-btn-overlay:hover{background:#c00}.scheduling-page{background:#fff;box-sizing:border-box;margin:0;max-width:100%;min-height:100%;padding:0;width:100%}.scheduling-wrapper{display:flex;flex-direction:column;gap:20px;min-height:100%;padding:24px}.page-header{margin:0}.page-header h1{color:#1a1a1a;font-size:28px;font-weight:600;margin:0 0 8px}.page-header p{color:#666;font-size:14px;margin:0}.scheduling-container{grid-gap:24px;display:grid;flex:1 1;gap:24px;grid-template-columns:3fr 6fr 3fr}.scheduling-sidebar{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;height:fit-content;padding:20px}.tool-bar{display:flex;flex-direction:column;gap:16px}.tool-bar .form-group{margin-bottom:0}.tool-bar label{color:#444;display:block;font-size:13px;font-weight:500;margin-bottom:6px}.tool-bar .form-control{background:#fff;border:1px solid #ddd;border-radius:6px;font-size:14px;padding:10px 12px;width:100%}.tool-bar .form-control:focus{border-color:#1976d2;box-shadow:0 0 0 2px #1976d21a;outline:none}.tool-bar .btn-block{margin-top:8px;width:100%}.selected-run-info{border-bottom:1px solid #eee;margin-top:24px;padding-top:20px}.selected-run-info h3{color:#333;font-size:14px;font-weight:600;margin:0 0 12px}.info-row{display:flex;font-size:13px;justify-content:space-between;padding:8px 0}.info-label{color:#666}.info-value{color:#333;font-weight:500}.scheduling-content{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;min-height:400px;padding:24px}.loading-state{align-items:center;color:#666;display:flex;flex-direction:column;height:300px;justify-content:center}.spinner{animation:spin 1s linear infinite;border:3px solid #f0f0f0;border-radius:50%;border-top-color:#1976d2;height:32px;width:32px}.error-state{color:#d32f2f}.empty-state,.error-state{align-items:center;display:flex;flex-direction:column;height:300px;justify-content:center}.empty-state{color:#666;text-align:center}.empty-state .hint{color:#999;font-size:13px;margin-top:8px}.run-details{animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.details-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.details-header h2{font-size:20px;font-weight:600;margin:0}.run-time{background:#f5f5f5;border-radius:4px;color:#666;font-size:16px;padding:6px 12px}.details-info{margin-bottom:24px}.info-card{background:#f9f9f9;border-radius:8px;padding:16px}.info-card h4{color:#333;font-size:14px;font-weight:600;margin:0 0 12px}.info-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,1fr)}.info-item{display:flex;flex-direction:column}.info-item .label{color:#666;font-size:12px;margin-bottom:4px}.info-item .value{color:#333;font-size:14px;font-weight:500}.deliveries-list{margin-top:24px}.deliveries-list h4{font-size:16px;font-weight:600;margin:0 0 12px}.empty-deliveries{background:#f9f9f9;border-radius:8px;color:#666;padding:40px;text-align:center}.empty-deliveries .hint{color:#999;font-size:13px;margin-top:8px}.modal-overlay{align-items:center;animation:fadeInOverlay .2s ease-out;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes fadeInOverlay{0%{opacity:0}to{opacity:1}}.modal{animation:slideUp .2s ease-out;background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;margin:16px;max-width:400px;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:16px 20px}.modal-header h2{font-size:18px;font-weight:600;margin:0}.modal-close{align-items:center;background:none;border:none;border-radius:4px;color:#666;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;padding:0;width:32px}.modal-close:hover{background:#f5f5f5}.modal-body{padding:20px}.modal-footer{border-top:1px solid #eee;display:flex;gap:12px;justify-content:flex-end;padding:16px 20px}.form-group{margin-bottom:16px}.form-group label{color:#444;font-size:13px;margin-bottom:6px}.form-control{background:#fff;border:1px solid #ddd;border-radius:6px;box-sizing:border-box;font-size:14px;padding:10px 12px;width:100%}.form-control:focus{border-color:#1976d2;box-shadow:0 0 0 2px #1976d21a;outline:none}.form-control:disabled{background:#f5f5f5;cursor:not-allowed}.hint{color:#999;display:block;font-size:12px;margin-top:4px}.time-quick-select{display:flex;gap:8px;margin-top:8px}.time-btn{background:#f9f9f9;border:1px solid #ddd;border-radius:6px;color:#333;cursor:pointer;flex:1 1;font-size:13px;font-weight:500;padding:8px 12px;transition:all .2s ease}.time-btn:hover{background:#e9e9e9;border-color:#ccc}.time-btn.selected{background:#1976d2;border-color:#1976d2;color:#fff}.btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;justify-content:center;padding:10px 20px;transition:all .2s ease}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary{background:#1976d2}.btn-primary:hover:not(:disabled){background:#1565c0}.btn-secondary{background:#f5f5f5;color:#333}.btn-secondary:hover:not(:disabled){background:#e0e0e0}.btn-block{width:100%}.pending-allocation{border-top:1px solid #eee;margin-top:24px;padding-top:20px}.pending-allocation h3{color:#333;font-size:14px;font-weight:600;margin:0 0 12px}.loading-small{align-items:center;display:flex;justify-content:center;padding:20px}.spinner-small{animation:spin 1s linear infinite;border:2px solid #f0f0f0;border-radius:50%;border-top-color:#1976d2;height:20px;width:20px}.empty-orders{color:#666;font-size:13px;padding:16px;text-align:center}.orders-list{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto}.order-item{background:#f9f9f9;border-radius:6px;cursor:pointer;padding:10px;transition:background .2s}.order-item:hover{background:#f0f0f0}.order-name{color:#333;font-size:13px;font-weight:500;margin-bottom:2px}.order-address{color:#666;font-size:12px}.order-products{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.product-tag{background:#e3f2fd;border-radius:3px;color:#1976d2;font-size:11px;padding:2px 6px}.order-product{color:#1976d2;font-size:12px;font-weight:500;margin-top:4px}.order-item.draggable{cursor:grab}.order-item.draggable:active{cursor:grabbing}.order-item{position:relative}.partial-badge{align-items:center;background:#ff9800;border-radius:50%;color:#fff;display:flex;font-size:12px;font-weight:700;height:18px;justify-content:center;position:absolute;right:8px;top:8px;width:18px}.drag-hint{color:#999;font-size:10px;margin-top:4px;text-align:right}.truck-section{margin:20px 0;position:relative}.truck-section h4{color:#333;font-size:14px;font-weight:600;margin:0 0 8px}.truck-section .hint{color:#999;font-size:12px;margin-bottom:12px}.truck-section .loading-overlay{align-items:center;background:#fffc;border-radius:8px;bottom:0;display:flex;gap:8px;justify-content:center;left:0;position:absolute;right:0;top:0}.deliveries-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}.delivery-card{background:#f9f9f9;border:1px solid #eee;border-radius:6px;padding:12px}.delivery-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.delivery-customer{color:#333;font-size:13px;font-weight:600}.delivery-position{background:#1976d2;border-radius:10px;color:#fff;font-size:11px;font-weight:600;padding:2px 8px}.delivery-address{color:#666;font-size:12px;margin-bottom:8px}.delivery-items{display:flex;flex-wrap:wrap;gap:4px}.item-tag{background:#e3f2fd;border-radius:3px;color:#1976d2;font-size:10px;padding:2px 6px}.error-message{background:#ffebee;color:#d32f2f;margin-bottom:16px}@media (max-width:1024px){.scheduling-container{grid-template-columns:1fr}.scheduling-sidebar{order:1}.scheduling-content{order:2}.scheduling-itinerary{order:3}}.scheduling-itinerary{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;gap:16px;height:fit-content;padding:20px}.map-container{background:#f5f5f5;border-radius:8px;min-height:200px;overflow:hidden}.map-placeholder{align-items:center;color:#666;display:flex;flex-direction:column;height:200px;justify-content:center;padding:20px;text-align:center}.map-icon{font-size:48px;margin-bottom:8px;opacity:.5}.map-placeholder p{font-size:14px;font-weight:500;margin:0}.map-placeholder .hint{color:#999;font-size:12px;margin-top:4px}.itinerary-list{display:flex;flex:1 1;flex-direction:column}.itinerary-list h4{color:#333;font-size:14px;font-weight:600;margin:0 0 12px}.empty-itinerary{align-items:center;background:#f9f9f9;border-radius:8px;color:#666;display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:24px;text-align:center}.empty-itinerary p{font-size:14px;margin:0}.empty-itinerary .hint{color:#999;font-size:12px;margin-top:4px}.itinerary-deliveries{display:flex;flex-direction:column;gap:8px}.itinerary-item{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;display:flex;gap:10px;padding:10px 12px}.itinerary-position{color:#5c7cfa;font-size:14px;font-weight:700;min-width:28px}.itinerary-details{display:flex;flex:1 1;flex-direction:column;gap:2px}.itinerary-customer{color:#333;font-size:13px;font-weight:500}.itinerary-product{color:#666;font-size:11px}@media (max-width:600px){.scheduling-page{padding:16px}.info-grid{grid-template-columns:1fr}.details-header{align-items:flex-start;flex-direction:column;gap:12px}}.navigation-drawer{background:linear-gradient(180deg,#667eea,#764ba2);box-shadow:2px 0 10px #0000001a;display:flex;flex-direction:column;height:100vh;left:0;overflow:hidden;position:fixed;top:0;transition:width .3s ease;z-index:1000}.navigation-drawer.open{width:280px}.navigation-drawer.closed{width:70px}.drawer-header{align-items:center;border-bottom:1px solid #fff3;display:flex;gap:15px;min-height:70px;padding:20px}.drawer-header h2{color:#fff;font-size:20px;margin:0;white-space:nowrap}.drawer-toggle{align-items:center;background:#fff3;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:16px;height:30px;justify-content:center;transition:background .3s;width:30px}.drawer-toggle:hover{background:#ffffff4d}.drawer-nav{flex:1 1;overflow-x:hidden;overflow-y:auto;padding:20px 10px}.nav-item{align-items:center;background:#0000;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;gap:15px;margin-bottom:8px;padding:12px 15px;position:relative;text-align:left;transition:all .3s;width:100%}.nav-item:hover:not(.disabled){background:#ffffff26;transform:translateX(5px)}.nav-item.active{background:#ffffff40;box-shadow:0 2px 8px #0000001a}.nav-item.active:before{background:#fff;border-radius:0 4px 4px 0;content:"";height:70%;left:0;position:absolute;top:50%;transform:translateY(-50%);width:4px}.nav-item.disabled{cursor:not-allowed;opacity:.5}.nav-icon{flex-shrink:0;font-size:24px;text-align:center;width:30px}.nav-text{display:flex;flex-direction:column;gap:2px;overflow:hidden}.nav-label{font-size:15px;font-weight:600;white-space:nowrap}.nav-description{font-size:12px;opacity:.8;white-space:nowrap}.nav-divider{border-top:1px solid #fff3;color:#fff9;font-size:11px;font-weight:600;letter-spacing:1px;margin-top:10px;padding:15px 15px 8px;text-transform:uppercase}.drawer-footer{border-top:1px solid #19191933;padding:20px}.user-profile{background:#ffffff1a;border-radius:8px;gap:12px;margin-bottom:15px;padding:10px}.user-avatar,.user-profile{align-items:center;display:flex}.user-avatar{background:#fff;border-radius:50%;color:#667eea;flex-shrink:0;font-size:18px;font-weight:700;height:40px;justify-content:center;width:40px}.user-details{background:#19191933;flex:1 1;overflow:hidden}.user-details p{color:#fffc;font-size:12px;margin:0;padding:0}.user-name{color:#fff;font-size:14px;font-weight:600}.user-email,.user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-email{color:#fffc;font-size:12px}.logout-button{align-items:center;background:#fff3;border:1px solid #ffffff4d;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-weight:600;gap:10px;justify-content:center;padding:10px 15px;transition:all .3s;width:100%}.logout-button:hover{background:#ffffff4d;transform:translateY(-2px)}.logout-icon{font-size:18px}.drawer-overlay{display:none}.drawer-nav::-webkit-scrollbar{width:6px}.drawer-nav::-webkit-scrollbar-track{background:#ffffff1a;border-radius:3px}.drawer-nav::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:3px}.drawer-nav::-webkit-scrollbar-thumb:hover{background:#fff6}@media (max-width:768px){.navigation-drawer{transform:translateX(-100%)}.navigation-drawer.open{transform:translateX(0);width:280px}.navigation-drawer.closed{transform:translateX(-100%)}.drawer-overlay{background:#00000080;bottom:0;display:block;left:0;position:fixed;right:0;top:0;z-index:999}}.app-main-content,.app-with-drawer{display:flex;min-height:100vh}.app-main-content{flex:1 1;flex-direction:column;transition:margin-left .3s ease}.app-main-content.drawer-open{margin-left:280px}.app-main-content.drawer-closed{margin-left:70px}@media (max-width:768px){.app-main-content.drawer-closed,.app-main-content.drawer-open{margin-left:0}}.mobile-menu-toggle{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;box-shadow:0 4px 12px #0003;cursor:pointer;display:none;flex-direction:column;gap:6px;height:50px;justify-content:center;left:20px;position:fixed;top:20px;transition:all .3s;width:50px;z-index:1001}.mobile-menu-toggle:hover{box-shadow:0 6px 16px #0000004d;transform:scale(1.05)}.mobile-menu-toggle span{background:#fff;border-radius:2px;display:block;height:3px;transition:all .3s;width:25px}@media (max-width:768px){.mobile-menu-toggle{display:flex}}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#36454f;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.App,body{min-height:100vh}.App{align-items:flex-start;display:flex;flex-direction:column;justify-content:flex-start;padding:0;width:100%}.App.centered{align-items:center;justify-content:center}.App.app-with-drawer{display:flex;flex-direction:row}.loading-container{align-items:center;color:#fff;display:flex;flex-direction:column;justify-content:center;min-height:100vh}.spinner,.spinner-large{animation:spin 1s linear infinite;border:3px solid #ffffff4d;border-radius:50%;border-top-color:#fff}.spinner{height:30px;width:30px}.spinner-large{height:50px;width:50px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.login-container,.register-container,.verification-container,.verify-device-container{margin:0;max-width:500px;min-width:400px;padding:20px;width:100%}.login-card,.register-card,.verification-card,.verify-device-card{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;padding:40px}.login-card h2,.register-card h2,.verification-card h2,.verify-device-card h2{color:#333;margin-bottom:30px;text-align:center}.form-group{margin-bottom:20px}.form-group label{color:#555;display:block;font-weight:500;margin-bottom:8px}.form-group input{border:2px solid #e0e0e0;border-radius:6px;font-size:14px;padding:12px;transition:border-color .3s;width:100%}.form-group input:focus{border-color:#667eea;outline:none}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.form-hint{color:#888;display:block;font-size:12px;margin-top:5px}.btn-primary,.btn-secondary{border:none;border-radius:6px;cursor:pointer;font-size:16px;font-weight:600;padding:12px;transition:all .3s;width:100%}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover:not(:disabled){box-shadow:0 5px 15px #667eea66;transform:translateY(-2px)}.btn-primary:disabled{cursor:not-allowed;opacity:.6}.btn-secondary{background:#fff;border:2px solid #667eea;color:#667eea}.btn-secondary:hover:not(:disabled){background:#667eea;color:#fff}.error-message{background:#fee;border-radius:6px;color:#c33;font-size:14px;margin-bottom:20px;padding:12px}.success-message{background:#efe;border-radius:6px;color:#3c3;padding:20px;text-align:center}.success-message h2{color:#2a2;margin-bottom:10px}.message{border-radius:6px;font-size:14px;margin-top:15px;padding:12px}.message.success{background:#efe;color:#3c3}.message.error{background:#fee;color:#c33}.login-footer,.register-footer{color:#666;margin-top:20px;text-align:center}.login-footer a,.register-footer a{color:#667eea;font-weight:600;text-decoration:none}.login-footer a:hover,.register-footer a:hover{text-decoration:underline}.error-icon,.success-icon,.verification-icon{color:#667eea;margin-bottom:20px;text-align:center}.success-icon{color:#2a2}.error-icon{color:#c33}.verification-message{background:#f0f4ff;border-radius:6px;margin-bottom:20px;padding:15px;text-align:center}.verification-instructions{margin:20px 0}.verification-instructions h3{color:#555;font-size:16px;margin-bottom:15px}.verification-instructions ol{color:#666;padding-left:20px}.verification-instructions li{margin-bottom:10px}.checking-status{align-items:center;color:#667eea;display:flex;gap:10px;justify-content:center;margin:20px 0}.verification-actions{margin:20px 0}.verification-footer{border-top:1px solid #e0e0e0;margin-top:20px;padding-top:20px}.help-text{color:#888;font-size:13px;text-align:center}.redirect-message{color:#888;font-style:italic;margin-top:15px}.dashboard-container{display:flex;flex:1 1;flex-direction:column;width:100%}.dashboard-main-wrapper{display:flex;flex:1 1;min-height:100vh;width:100%}.dashboard-content{background:#fff;border-radius:0;flex:1 1;min-height:100vh;overflow-y:auto;padding:30px}.dashboard-card h2{color:#333;margin-bottom:20px}.user-details{border-radius:8px;margin:30px 0;padding:20px}.user-details h3{color:#555;margin-bottom:15px}.user-details dl{grid-gap:10px;display:grid;gap:10px;grid-template-columns:120px 1fr}.user-details dt{color:#666;font-weight:600}.user-details dd{color:#333}.info-box{background:#e8f4f8;border-left:4px solid #667eea;border-radius:6px;margin-top:30px;padding:20px}.info-box h3{color:#555;margin-bottom:10px}.info-box p{color:#666;line-height:1.6}.dashboard-modules{margin-bottom:30px}.dashboard-modules h3{color:#555;font-size:18px;margin-bottom:20px}.module-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.module-card{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;gap:10px;padding:25px;text-align:center;transition:all .3s}.module-card:hover:not(.disabled){border-color:#667eea;box-shadow:0 5px 15px #667eea33;transform:translateY(-5px)}.module-card.disabled{cursor:not-allowed;opacity:.5}.module-icon{font-size:48px;margin-bottom:10px}.module-card h4{color:#333;font-size:18px;margin:0}.module-card p{color:#666;font-size:14px;margin:0}@media (max-width:768px){.app-main-content{padding-top:80px}.dashboard-content{padding:20px}.module-grid,.user-details dl{grid-template-columns:1fr}.user-details dl{gap:5px}.user-details dt{margin-top:10px}}
/*# sourceMappingURL=main.f18e680c.css.map*/