@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Inter:wght@400;500;600;700&display=swap";.app-layout{min-height:100vh;display:flex}.mobile-menu-btn{z-index:1001;background:var(--primary);color:#fff;border-radius:var(--btn-radius);cursor:pointer;border:none;width:40px;height:40px;font-size:1.5rem;display:none;position:fixed;top:1rem;left:1rem}.sidebar{background:var(--sidebar-bg);width:240px;color:var(--text-warm);z-index:1000;border-right:1px solid var(--sidebar-border);flex-direction:column;flex-shrink:0;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.sidebar-header{border-bottom:1px solid var(--border);padding:1.5rem 1.25rem 1rem}.brand-name{font-family:var(--heading-font);color:var(--text-warm);letter-spacing:-.02em;margin:0;font-size:1.35rem;font-weight:700}.brand-tagline{color:var(--text-muted);text-transform:uppercase;letter-spacing:1.5px;margin-top:2px;font-size:.65rem;display:block}.nav-sections{flex:1;padding:.5rem 0}.nav-section{margin-bottom:.25rem}.nav-section-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1.5px;padding:.75rem 1.25rem .25rem;font-size:.65rem;font-weight:600;display:block}.nav-links{margin:0;padding:0;list-style:none}.nav-link{color:var(--text-muted);border-left:3px solid #0000;border-radius:0;align-items:center;gap:.6rem;padding:.55rem 1.25rem;font-size:.88rem;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.nav-link:hover{color:var(--text-warm);background:var(--primary-glow)}.nav-link.active{color:var(--primary);background:var(--primary-glow);border-left-color:var(--primary);font-weight:600}.nav-icon{text-align:center;width:1.2rem;font-size:.9rem}.sidebar-footer{border-top:1px solid var(--border);padding:.75rem 0}.main-content{background:var(--bg);flex:1;min-height:100vh;margin-left:240px;padding:2rem}.page-content{max-width:1400px}.page-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.empty-state{text-align:center;color:var(--text-muted);padding:3rem 1rem}.empty-state h3{color:var(--text-warm);margin-bottom:.5rem}.empty-state p{margin-bottom:1rem}.muted-text{color:var(--text-muted);font-size:.85rem}.btn{background:var(--primary);color:var(--primary-text);border-radius:var(--btn-radius);cursor:pointer;letter-spacing:.01em;box-shadow:var(--shadow-sm);border:none;padding:.6rem 1.2rem;font-size:.88rem;font-weight:600;transition:all .15s}.btn:hover{filter:brightness(1.08);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn:active{box-shadow:var(--shadow-sm);transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--primary);color:var(--primary-text)}.btn-secondary{background:var(--secondary);color:var(--secondary-text);box-shadow:var(--shadow-sm)}.btn-secondary:hover{box-shadow:var(--shadow-md)}.btn-success{background:var(--success);color:#fff;box-shadow:var(--shadow-sm)}.btn-danger{background:var(--danger);color:#fff;box-shadow:var(--shadow-sm)}.btn-info{background:var(--info);color:#fff;box-shadow:var(--shadow-sm)}.btn-sm{padding:.3rem .7rem;font-size:.78rem}.form-card,.card{background:var(--panel-dark);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-sm);margin-bottom:1.25rem;padding:1.25rem}.data-table{border-collapse:collapse;background:var(--panel-dark);border-radius:var(--card-radius);border:1px solid var(--border);width:100%;box-shadow:var(--shadow-sm);overflow:hidden}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);padding:.7rem 1rem;font-size:.85rem}.data-table th{background:var(--table-header-bg);color:var(--table-header-color);text-transform:uppercase;letter-spacing:.5px;font-size:.72rem;font-weight:600}.data-table tbody tr{cursor:pointer;transition:background .1s}.data-table tbody tr:hover{background:var(--table-row-hover)}.data-table .row-selected{background:var(--primary-glow)!important}.empty-cell{text-align:center;color:var(--text-muted);font-style:italic;padding:2rem!important}input,select,textarea{background:var(--surface);border:1px solid var(--border);color:var(--text-warm);border-radius:8px;padding:.6rem .8rem;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);outline:none}input::placeholder{color:var(--text-muted)}.form-row{flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem;display:flex}.form-row input,.form-row select{flex:1;min-width:120px}.form-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem;display:grid}.form-group{flex-direction:column;gap:.3rem;display:flex}.form-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:.78rem;font-weight:500}.form-group.full-width{grid-column:1/-1}.form-actions{gap:.75rem;margin-top:1rem;display:flex}.inline-select{border:1px solid var(--border);color:var(--text-warm);cursor:pointer;background:0 0;border-radius:6px;padding:.2rem .4rem;font-size:.8rem}.mini-form{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.mini-form input,.mini-form select{padding:.4rem .6rem;font-size:.85rem}.status-badge{text-transform:uppercase;letter-spacing:.3px;vertical-align:middle;border-radius:100px;margin-left:.3rem;padding:.15rem .55rem;font-size:.72rem;font-weight:600;display:inline-block}.badge-active,.badge-completed,.badge-delivered,.badge-paid{background:var(--success-bg);color:var(--success)}.badge-cancelled,.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-warning,.badge-maintenance{background:var(--badge-warning-bg);color:var(--primary)}.badge-draft,.badge-planned,.badge-pending,.badge-default{background:var(--badge-muted-bg);color:var(--text-muted)}.badge-info,.badge-invoiced,.badge-fuel{background:var(--info-bg);color:var(--info)}.badge-available{background:var(--success-bg);color:var(--success)}.badge-in_transit,.badge-in_progress,.badge-picked_up{background:var(--badge-warning-active-bg);color:var(--primary)}.badge-inactive,.badge-out_of_service,.badge-suspended{background:var(--danger-bg);color:var(--danger)}.badge-critical{background:var(--danger-bg);color:var(--danger);font-weight:700}.badge-notice{background:var(--info-bg);color:var(--info)}.badge-ok,.badge-insurance{background:var(--success-bg);color:var(--success)}.badge-tolls,.badge-permits{background:var(--badge-muted-bg);color:var(--text-muted)}.badge-repairs,.badge-tires{background:var(--danger-bg);color:var(--danger)}.badge-salary{background:var(--badge-salary-bg);color:var(--badge-salary)}.badge-other{background:var(--badge-muted-bg);color:var(--text-muted)}.tabs{border-bottom:1px solid var(--border);gap:0;margin-bottom:1.5rem;display:flex}.tab{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.7rem 1.5rem;font-size:.9rem;font-weight:500;transition:all .15s}.tab:hover{color:var(--text-warm)}.tab-active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.filter-bar{flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:1.5rem;display:flex}.filter-bar.inline{margin-bottom:0}.filter-bar select,.filter-bar input{min-width:160px}.filter-bar .form-group{flex-direction:column;gap:4px;margin-bottom:0;display:flex}.filter-bar .form-group label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:.72rem}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.kpi-card{background:var(--panel-dark);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-sm);flex-direction:column;gap:.3rem;padding:1.25rem;display:flex}.kpi-cards-row{grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem;display:grid}.kpi-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:.72rem;font-weight:500}.kpi-value{letter-spacing:-.02em;font-size:1.6rem;font-weight:700}.kpi-revenue{color:var(--success)}.kpi-expenses{color:var(--danger)}.kpi-driver-pay{color:var(--warning,#f59e0b)}.kpi-profit{color:var(--success)}.dashboard-section{margin-bottom:1.5rem}.dashboard-row{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem;display:grid}.dashboard-card{background:var(--panel-dark);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-sm);padding:1.25rem}.fuel-price-display{align-items:baseline;gap:.3rem;margin-bottom:.5rem;display:flex}.fuel-price{color:var(--text-warm);font-size:2rem;font-weight:700}.fuel-label{color:var(--text-muted);font-size:.85rem}.fuel-trend{margin-left:.5rem;font-size:.85rem;font-weight:700}.trend-up{color:var(--danger)}.trend-down{color:var(--success)}.trend-stable{color:var(--text-muted)}.fuel-spend{color:var(--text-muted);font-size:.85rem}.availability-grid{gap:2rem;display:flex}.avail-stat{flex-direction:column;align-items:center;gap:.25rem;display:flex}.avail-number{font-size:2rem;font-weight:700}.avail-green{color:var(--success)}.avail-amber{color:var(--primary)}.dispatch-bar{gap:1rem;padding-bottom:.5rem;display:flex;overflow-x:auto}.dispatch-mini-card{background:var(--panel-dark);border:1px solid var(--border);border-radius:var(--card-radius);min-width:200px;box-shadow:var(--shadow-sm);flex-shrink:0;padding:.75rem 1rem;transition:border-color .2s,transform .15s}.clickable{cursor:pointer;transition:all .2s}.clickable:hover{transform:translateY(-2px)}.kpi-card.clickable:hover{border-color:var(--primary);box-shadow:var(--shadow-md)}.dispatch-mini-card.clickable{cursor:pointer}.dispatch-mini-card.clickable:hover{border-color:var(--primary);transform:translateY(-2px)}.dispatch-mini-header{justify-content:space-between;align-items:center;margin-bottom:.4rem;display:flex}.truck-tag{background:var(--surface);color:var(--text-muted);border-radius:4px;padding:.1rem .4rem;font-size:.72rem}.alert-list{flex-direction:column;gap:.5rem;display:flex}.alert-card{background:var(--panel-dark);border:1px solid var(--border);border-radius:8px;align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:.85rem;display:flex}.dispatch-progress{align-items:center;gap:.5rem;display:flex}.progress-bar{background:var(--surface);border-radius:3px;flex:1;height:6px;overflow:hidden}.progress-fill{background:var(--primary);border-radius:3px;height:100%;transition:width .3s}.progress-label{color:var(--text-muted);white-space:nowrap;font-size:.75rem}.content-with-panel{gap:1.5rem;display:flex}.content-main{flex:1;min-width:0;overflow-x:auto}.side-panel{background:var(--panel-dark);border:1px solid var(--border);border-radius:var(--card-radius);width:340px;max-height:calc(100vh - 6rem);box-shadow:var(--shadow-sm);flex-shrink:0;padding:1.25rem;position:sticky;top:2rem;overflow-y:auto}.panel-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.panel-header h3{margin:0;font-size:1rem}.panel-section{border-bottom:1px solid var(--border);margin-bottom:1rem;padding-bottom:1rem}.panel-section:last-child{border-bottom:none}.panel-section-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.panel-row{justify-content:space-between;padding:.25rem 0;font-size:.85rem;display:flex}.detail-info-grid{background:var(--panel-dark);border:1px solid var(--border);border-radius:var(--card-radius);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;margin-bottom:1.5rem;padding:1rem;display:grid}.maint-list{flex-direction:column;gap:.5rem;display:flex}.maint-item{flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.82rem;display:flex}.maint-date{color:var(--text-muted);margin-left:auto;font-size:.75rem}.schedule-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.schedule-card{background:var(--panel-dark);border:1px solid var(--border);border-radius:var(--card-radius);cursor:pointer;box-shadow:var(--shadow-sm);padding:1rem;transition:all .15s}.schedule-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md)}.schedule-card-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.schedule-id{color:var(--primary);font-size:.85rem;font-weight:600}.schedule-card-body{flex-direction:column;gap:.25rem;margin-bottom:.75rem;font-size:.85rem;display:flex}.schedule-card-actions{gap:.5rem;display:flex}.schedule-builder{max-width:900px;margin:0 auto}.builder-steps{justify-content:center;align-items:center;gap:0;margin-bottom:2rem;display:flex}.builder-step{color:var(--text-muted);border-radius:20px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.85rem;display:flex}.builder-step.step-active{color:var(--primary)}.step-number{background:var(--surface);width:28px;height:28px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:flex}.step-active .step-number{background:var(--primary);color:#fff}.step-label{font-weight:600}.step-connector{background:var(--border);width:40px;height:2px}.builder-panel{background:var(--panel-dark);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-sm);padding:1.5rem}.builder-header{flex-wrap:wrap;justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.builder-info{color:var(--text-muted);gap:1rem;font-size:.82rem;display:flex}.builder-actions{justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}.add-leg-buttons{gap:.75rem;margin:1rem 0;display:flex}.add-leg-form{background:var(--surface);border-radius:10px;margin:1rem 0;padding:1.25rem}.add-leg-actions{gap:.75rem;margin-top:1rem;display:flex}.route-preview{background:var(--primary-glow);color:var(--primary);border-radius:8px;gap:1.5rem;margin-top:.75rem;padding:.75rem 1rem;font-size:.85rem;font-weight:600;display:flex}.review-summary{background:var(--surface);border-radius:10px;margin-bottom:1rem;padding:1rem}.review-row{justify-content:space-between;padding:.3rem 0;font-size:.9rem;display:flex}.schedule-timeline{margin:1rem 0}.timeline-summary{background:var(--surface);border-radius:10px;flex-wrap:wrap;gap:1.5rem;margin-bottom:1.5rem;padding:.75rem 1rem;display:flex}.timeline-stat{flex-direction:column;align-items:center;display:flex}.timeline-stat-value{color:var(--primary);font-size:1.2rem;font-weight:700}.timeline-stat-label{color:var(--text-muted);text-transform:uppercase;font-size:.7rem}.timeline-road{position:relative}.timeline-leg{gap:1rem;margin-bottom:0;display:flex}.road-stop{flex-direction:column;align-items:center;min-width:40px;display:flex}.road-marker{background:var(--surface);width:32px;height:32px;color:var(--text-muted);border:2px solid var(--border);z-index:1;border-radius:50%;justify-content:center;align-items:center;font-size:.7rem;font-weight:700;display:flex}.marker-active{background:var(--primary);color:#fff;border-color:var(--primary-deep)}.marker-completed{background:var(--success);color:#fff;border-color:var(--success)}.marker-planned{background:var(--surface);color:var(--text-muted);border-color:var(--border)}.marker-finish{background:0 0;border:none;font-size:1.2rem}.road-connector{flex-direction:column;flex:1;align-items:center;min-height:20px;display:flex;position:relative}.road-line{border-left:3px dashed var(--border);flex:1;width:3px;min-height:20px}.mile-marker{color:var(--primary);background:var(--bg);border-radius:3px;margin:.2rem 0;padding:.1rem .4rem;font-size:.65rem;font-weight:600}.timeline-leg-content{flex:1;padding-bottom:.75rem}.timeline-empty{text-align:center;color:var(--text-muted);padding:2rem}.timeline-empty-icon{margin-bottom:.5rem;font-size:3rem}.leg-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:.5rem;padding:1rem}.leg-card.leg-deadhead{border-left:3px solid var(--text-muted)}.leg-card.leg-load{border-left:3px solid var(--primary)}.leg-card.leg-finish{border:1px dashed var(--border);background:0 0;padding:.75rem}.leg-compact{padding:.7rem}.leg-card-header{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.leg-number{color:var(--text-muted);font-size:.7rem;font-weight:600}.leg-type-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:100px;padding:.1rem .5rem;font-size:.65rem;font-weight:700}.type-load{background:var(--primary-glow);color:var(--primary)}.type-deadhead{background:var(--badge-muted-bg);color:var(--text-muted)}.leg-card-route{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.leg-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.origin-dot{background:var(--primary)}.dest-dot{background:var(--success)}.leg-location{font-size:.85rem}.leg-arrow{color:var(--text-muted);font-size:1.2rem}.finish-label{color:var(--text-muted);font-size:.85rem;font-style:italic}.leg-card-stats{flex-wrap:wrap;gap:1rem;margin-bottom:.5rem;display:flex}.leg-stat{flex-direction:column;display:flex}.stat-label{color:var(--text-muted);text-transform:uppercase;font-size:.65rem}.stat-value{color:var(--text-warm);font-size:.85rem;font-weight:600}.leg-card-dates{color:var(--text-muted);gap:1rem;margin-bottom:.5rem;font-size:.8rem;display:flex}.leg-card-actions{gap:.5rem;margin-top:.5rem;display:flex}.location-input{background:var(--surface);border:1px solid var(--border);width:100%;color:var(--text-warm);border-radius:8px;padding:.6rem .8rem}.location-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);outline:none}.map-placeholder{background:var(--surface);border:1px dashed var(--border);border-radius:var(--card-radius);justify-content:center;align-items:center;height:250px;display:flex}.map-placeholder-text{color:var(--text-muted);text-align:center;font-size:.85rem;line-height:1.8}.map-route-container{border-radius:var(--card-radius);position:relative;overflow:hidden}.map-route-info{background:var(--overlay-bg);color:#fff;border-radius:6px;gap:1rem;padding:.4rem .8rem;font-size:.8rem;font-weight:600;display:flex;position:absolute;bottom:10px;left:10px}.dispatch-layout{gap:1.5rem;min-height:calc(100vh - 8rem);display:flex}.dispatch-sidebar{flex-shrink:0;width:320px}.dispatch-main{flex:1}.dispatch-card{background:var(--panel-dark);border:1px solid var(--border);border-radius:var(--card-radius);cursor:pointer;box-shadow:var(--shadow-sm);margin-bottom:.75rem;padding:1rem;transition:all .15s}.dispatch-card:hover{border-color:var(--primary)}.dispatch-card-selected{border-color:var(--primary);background:var(--primary-glow)}.dispatch-card-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.dispatch-card-body{font-size:.85rem}.dispatch-empty{height:400px;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;display:flex}.dispatch-empty-icon{margin-bottom:1rem;font-size:4rem}.expense-summary{background:var(--panel-dark);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-sm);margin-bottom:1.5rem;padding:1.25rem}.expense-summary-total{margin-bottom:1rem}.summary-label{color:var(--text-muted);text-transform:uppercase;font-size:.72rem;font-weight:500;display:block}.summary-value{color:var(--text-warm);font-size:2rem;font-weight:700}.expense-categories{flex-wrap:wrap;gap:.5rem;display:flex}.category-chip{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:100px;gap:.5rem;padding:.3rem .8rem;font-size:.8rem;transition:all .15s;display:flex}.category-chip:hover{border-color:var(--primary)}.category-name{text-transform:capitalize;color:var(--text-muted)}.category-amount{color:var(--primary);font-weight:600}.settings-section{margin-bottom:2rem}.status-cards{flex-wrap:wrap;gap:1rem;display:flex}.status-card{background:var(--panel-dark);border:1px solid var(--border);border-radius:var(--card-radius);min-width:200px;box-shadow:var(--shadow-sm);align-items:center;gap:.75rem;padding:1rem;display:flex}.status-dot{border-radius:50%;width:12px;height:12px}.dot-green{background:var(--success)}.dot-red{background:var(--danger)}.status-label{color:var(--text-muted);margin-left:auto;font-size:.8rem}.toast-container{z-index:2000;flex-direction:column;gap:.5rem;display:flex;position:fixed;top:1rem;right:1rem}.toast{background:var(--panel-dark);border:1px solid var(--border);border-radius:var(--card-radius);min-width:280px;max-width:420px;box-shadow:var(--shadow-lg);align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.88rem;animation:.3s ease-out slideIn;display:flex}.toast-success{border-left:4px solid var(--success)}.toast-error{border-left:4px solid var(--danger)}.toast-info{border-left:4px solid var(--primary)}.toast-icon{font-size:1rem;font-weight:700}.toast-success .toast-icon{color:var(--success)}.toast-error .toast-icon{color:var(--danger)}.toast-info .toast-icon{color:var(--primary)}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.confirm-overlay{background:var(--overlay-bg);z-index:3000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--panel-dark);border:1px solid var(--border);border-radius:var(--card-radius);width:90%;max-width:400px;box-shadow:var(--shadow-lg);padding:1.5rem}.confirm-message{margin-bottom:1.25rem;font-size:.95rem;line-height:1.5}.confirm-actions{justify-content:flex-end;gap:.75rem;display:flex}.modal-overlay{background:var(--overlay-bg);z-index:2500;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--panel-dark);border:1px solid var(--border);border-radius:var(--card-radius);width:92%;max-width:600px;max-height:85vh;box-shadow:var(--shadow-lg);padding:1.5rem;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.modal-header h3{margin:0}.modal-body .form-group{margin-bottom:.75rem}.modal-body .form-group label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.25rem;font-size:.78rem;display:block}.modal-body .form-group input,.modal-body .form-group select{width:100%}.modal-actions{gap:.5rem;margin-top:1rem;display:flex}.btn-warning{color:#1c1917;background:#f59e0b;font-weight:600}.btn-warning:hover{filter:brightness(1.08)}.time-breakdown{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.time-breakdown-row{justify-content:space-between;padding:6px 0;font-size:.9rem;display:flex}.time-breakdown-row.total{border-top:1px solid var(--border);margin-top:4px;padding-top:10px;font-size:1rem;font-weight:600}.photo-capture{margin:16px 0}.photo-capture-buttons{gap:8px;margin-bottom:10px;display:flex}.leg-card-photo-indicator{background:var(--surface);border:1px solid var(--border);border-radius:6px;justify-content:space-between;align-items:center;margin-top:8px;padding:6px 10px;display:flex}.leg-card-photo-indicator.has-photo{cursor:pointer}.leg-card-photo-indicator.has-photo:hover{border-color:var(--primary)}.photo-badge{align-items:center;gap:5px;font-size:.78rem;font-weight:600;display:inline-flex}.photo-badge:before{content:"";border-radius:50%;width:8px;height:8px;display:inline-block}.photo-badge.photo-added{color:var(--success)}.photo-badge.photo-added:before{background:var(--success)}.photo-badge.photo-missing{color:var(--text-muted)}.photo-badge.photo-missing:before{background:var(--text-muted);opacity:.5}.photo-preview{border:1px solid var(--border);border-radius:8px;max-width:100%;position:relative;overflow:hidden}.photo-preview img{object-fit:cover;width:100%;max-height:250px;display:block}.photo-timestamp{color:#fff;background:#000000bf;border-radius:4px;padding:4px 10px;font-family:monospace;font-size:.75rem;position:absolute;bottom:8px;right:8px}.haul-summary-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.haul-summary-item{text-align:center;background:var(--surface);border-radius:8px;padding:14px 10px}.haul-summary-item .summary-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.72rem}.haul-summary-item .summary-value{margin-top:4px;font-size:1.25rem;font-weight:700}.skeleton-pulse{background:linear-gradient(90deg, var(--surface) 25%, var(--border) 50%, var(--surface) 75%);background-size:200% 100%;border-radius:6px;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-table{flex-direction:column;gap:.5rem;display:flex}.skeleton-row{gap:.75rem;height:40px;display:flex}.skeleton-cell{border-radius:6px;height:100%}.skeleton-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.skeleton-card{border-radius:var(--card-radius);background:var(--panel-dark);padding:1.25rem}.skeleton-card-title{width:60%;height:20px;margin-bottom:.75rem}.skeleton-card-body{width:100%;height:40px;margin-bottom:.5rem}.skeleton-card-footer{width:40%;height:16px}.skeleton-text{flex-direction:column;gap:.5rem;display:flex}.skeleton-line{height:16px}.breadcrumbs{align-items:center;gap:.25rem;margin-bottom:1rem;font-size:.82rem;display:flex}.breadcrumb-link{color:var(--text-muted)}.breadcrumb-link:hover{color:var(--primary)}.breadcrumb-sep{color:var(--text-muted);margin:0 .25rem}.breadcrumb-current{color:var(--primary);font-weight:600}.error-banner{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger);border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem;font-size:.88rem}.table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}.leg-card-customer{background:var(--customer-highlight-bg);border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0;padding:6px 12px;font-size:.85rem;display:flex}.leg-card-customer .customer-label{color:var(--text-muted)}.leg-card-customer .load-rate{color:var(--success);margin-left:auto;font-weight:600}@media (width<=1024px){.main-content{padding:1.5rem}.side-panel{width:300px}.dispatch-sidebar{width:260px}.kpi-value{font-size:1.3rem}.fuel-price,.avail-number{font-size:1.6rem}.schedule-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}}@media (width<=768px){.mobile-menu-btn{justify-content:center;align-items:center;display:flex}.sidebar{width:280px;transition:transform .3s;transform:translate(-100%)}.sidebar-open{transform:translate(0)}.main-content{margin-left:0;padding:4rem 1rem 1rem}.page-content h2{font-size:1.3rem}.kpi-grid,.kpi-cards-row{grid-template-columns:repeat(2,1fr);gap:.75rem}.kpi-card{padding:1rem}.kpi-value{font-size:1.1rem}.kpi-label{font-size:.65rem}.dashboard-row{grid-template-columns:1fr}.fuel-price,.avail-number{font-size:1.5rem}.availability-grid{gap:1.5rem}.dispatch-bar{gap:.75rem}.dispatch-mini-card{min-width:170px;padding:.6rem .8rem}.data-table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}.data-table th,.data-table td{white-space:nowrap;padding:.5rem .7rem;font-size:.8rem}.content-with-panel{flex-direction:column}.side-panel{width:100%;max-height:none;position:static}.form-row{flex-direction:column}.form-row input,.form-row select{min-width:100%}.form-grid{grid-template-columns:1fr}.form-card{padding:1rem}.filter-bar{flex-direction:column;align-items:stretch}.filter-bar select,.filter-bar input{width:100%;min-width:100%}.dispatch-layout{flex-direction:column;min-height:auto}.dispatch-sidebar{width:100%}.dispatch-sidebar h3{font-size:1rem}.dispatch-main{min-height:300px}.schedule-builder{max-width:100%}.builder-steps{flex-wrap:wrap;gap:.5rem}.step-connector{width:20px}.builder-panel{padding:1rem}.builder-header{flex-direction:column;gap:.5rem}.builder-info{flex-wrap:wrap;gap:.5rem}.builder-actions{flex-wrap:wrap}.add-leg-buttons{flex-direction:column}.add-leg-actions{flex-wrap:wrap}.timeline-summary{gap:.75rem}.timeline-stat-value{font-size:1rem}.road-stop{min-width:32px}.road-marker{width:28px;height:28px;font-size:.6rem}.leg-card-route{font-size:.8rem}.leg-card-stats{gap:.5rem}.leg-card-dates{flex-direction:column;gap:.25rem}.leg-card-actions{flex-wrap:wrap}.leg-card-customer{flex-wrap:wrap;gap:4px;font-size:.8rem}.leg-card-customer .load-rate{margin-left:0}.schedule-grid{grid-template-columns:1fr}.schedule-card-actions{flex-wrap:wrap}.route-preview{flex-wrap:wrap;gap:.75rem;font-size:.78rem}.map-placeholder{height:180px}.detail-info-grid{grid-template-columns:repeat(2,1fr);gap:.5rem;padding:.75rem;font-size:.85rem}.expense-summary{padding:1rem}.summary-value{font-size:1.5rem}.expense-categories{gap:.4rem}.status-cards{flex-direction:column}.status-card{min-width:auto}.toast-container{top:4.5rem;left:.5rem;right:.5rem}.toast{min-width:auto;max-width:100%;font-size:.82rem}.confirm-dialog{max-width:90%;padding:1rem}.page-actions{flex-direction:column;align-items:stretch}.page-actions .btn{text-align:center}.page-actions input{max-width:100%!important;margin-left:0!important}.planner-cards{grid-template-columns:1fr}.planner-card-metrics{grid-template-columns:repeat(2,1fr)}.kpi-mini-grid{grid-template-columns:repeat(3,1fr)}.search-input{min-width:unset;width:100%}.time-filter{flex-direction:column;align-items:stretch}.time-filter-presets{flex-wrap:wrap}.theme-grid{grid-template-columns:1fr}}@media (width<=480px){.main-content{padding:3.5rem .75rem .75rem}.kpi-grid,.kpi-cards-row{grid-template-columns:1fr 1fr;gap:.5rem}.kpi-card{padding:.75rem}.kpi-value{font-size:1rem}.detail-info-grid{grid-template-columns:1fr}.btn{padding:.5rem .8rem;font-size:.82rem}.btn-sm{padding:.25rem .5rem;font-size:.72rem}.brand-name{font-size:1.2rem}.nav-link{padding:.5rem 1rem;font-size:.82rem}.dispatch-mini-card{min-width:150px}.timeline-leg{gap:.5rem}.leg-card{padding:.75rem}}.kpi-mini-grid{text-align:center;grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.kpi-mini-grid>div{flex-direction:column;gap:2px;display:flex}.kpi-mini-grid .muted-text{text-transform:uppercase;letter-spacing:.5px;font-size:.72rem}.day-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 0;font-size:.88rem;display:flex}.day-row:last-child{border-bottom:none}.day-row.clickable{cursor:pointer;border-radius:6px;margin:0 -8px;padding:8px}.day-row.clickable:hover{background:var(--surface)}.search-input{background:var(--surface);border:1px solid var(--border);color:var(--text-warm);border-radius:8px;min-width:200px;padding:.5rem .75rem;font-size:.88rem}.search-input:focus{border-color:var(--primary);outline:none}.time-filter{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.time-filter-presets{gap:4px;display:flex}.time-filter-custom{align-items:center;gap:8px;display:flex}.theme-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.theme-card{background:var(--panel-dark);border:2px solid var(--border);border-radius:var(--card-radius);cursor:pointer;text-align:left;color:var(--text-warm);flex-direction:column;gap:.75rem;padding:1rem;font-family:inherit;transition:all .2s;display:flex;position:relative}.theme-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.theme-active{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow-strong), var(--shadow-md)}.theme-swatches{gap:6px;display:flex}.theme-swatch{border:1px solid #8080804d;border-radius:6px;width:32px;height:32px}.theme-card-info{flex-direction:column;gap:2px;display:flex}.theme-card-name{font-size:.95rem;font-weight:700}.theme-card-desc{color:var(--text-muted);font-size:.78rem}.theme-check{color:var(--primary);font-size:1.1rem;font-weight:700;position:absolute;top:.75rem;right:.75rem}.theme-toggle-btn{color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:none;border-left:3px solid #0000;align-items:center;gap:.6rem;width:100%;padding:.6rem 1.25rem;font-family:inherit;font-size:.88rem;font-weight:500;transition:all .15s;display:flex}.theme-toggle-btn:hover{color:var(--text-warm);background:var(--primary-glow)}@keyframes aiPulse{0%,to{opacity:1}50%{opacity:.4}}.ai-typing{animation:1.4s ease-in-out infinite aiPulse}.leg-card-duty{border-top:1px dashed var(--border);flex-wrap:wrap;gap:1rem;margin-bottom:.5rem;padding:.5rem 0;display:flex}.hos-warning{background:var(--danger-bg);color:var(--danger);border-left:3px solid var(--danger);border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem;font-size:.85rem;font-weight:600}.hos-warning-yellow{color:var(--warning);border-left-color:var(--warning);background:#f59e0b14}.plan-badge{background:var(--primary);color:#fff;text-align:center;letter-spacing:.05em;border-radius:100px;margin-bottom:.5rem;padding:.2rem .6rem;font-size:.7rem;font-weight:700}.plan-tag{background:var(--primary);color:#fff;vertical-align:middle;border-radius:100px;margin-left:.5rem;padding:.15rem .4rem;font-size:.6rem;font-weight:700}.planner-groups{flex-direction:column;gap:1.5rem;display:flex}.planner-group{background:var(--panel-dark);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-sm);padding:1.25rem}.planner-group-header{border-bottom:1px solid var(--border);align-items:center;gap:1rem;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.planner-group-header h3{color:var(--text-warm);margin:0}.planner-group-week{color:var(--text-muted);font-size:.85rem}.planner-group-count{color:var(--primary);background:var(--primary-glow);border-radius:100px;padding:.15rem .5rem;font-size:.75rem;font-weight:600}.planner-cards{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem;display:grid}.planner-card{background:var(--panel-dark);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-sm);padding:1rem;transition:border-color .2s}.planner-card:hover,.planner-card-expanded{border-color:var(--primary)}.planner-card-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.planner-card-label{color:var(--text-warm);font-size:1rem;font-weight:700}.plan-status-badge{text-transform:uppercase;border-radius:100px;padding:.15rem .5rem;font-size:.7rem;font-weight:600}.plan-status-badge.status-draft{background:var(--primary-glow);color:var(--primary)}.plan-status-badge.status-active{background:var(--success-bg);color:var(--success)}.planner-card-metrics{grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:.75rem;display:grid}.planner-metric{background:var(--surface);border-radius:8px;flex-direction:column;align-items:center;padding:.4rem;display:flex}.planner-metric.metric-best{background:var(--primary-glow);border:1px solid var(--primary)}.metric-value{color:var(--text-warm);font-size:.9rem;font-weight:700}.metric-label{color:var(--text-muted);text-transform:uppercase;font-size:.6rem}.planner-card-profit{border-top:1px solid var(--border);color:var(--text-muted);justify-content:space-between;align-items:center;margin-bottom:.5rem;padding:.5rem 0;font-size:.85rem;display:flex}.planner-card-legs{border-top:1px solid var(--border);margin-bottom:.5rem;padding-top:.5rem}.planner-leg-row{border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:.3rem 0;font-size:.8rem;display:flex}.planner-leg-row:last-child{border-bottom:none}.planner-leg-num{color:var(--text-muted);text-align:center;width:1.2rem;font-weight:700}.planner-leg-type{border-radius:100px;padding:.1rem .3rem;font-size:.65rem;font-weight:700}.planner-leg-type.type-load{background:var(--success-bg);color:var(--success)}.planner-leg-type.type-deadhead{color:var(--warning);background:#f59e0b1a}.planner-leg-route{color:var(--text-warm);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.planner-leg-miles,.planner-leg-time{color:var(--text-muted);font-size:.75rem}.planner-leg-cumulative{color:var(--text-muted);font-size:.7rem;font-style:italic}.planner-card-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:.5rem;padding-top:.5rem;display:flex}.loading-state{text-align:center;color:var(--text-muted);padding:2rem;font-style:italic}:root{--primary:#d97706;--primary-deep:#b45309;--primary-glow:#d9770614;--primary-glow-strong:#d977062e;--primary-shadow:#92400e;--primary-text:#fff;--amber:var(--primary);--amber-deep:var(--primary-deep);--amber-glow:var(--primary-glow);--amber-glow-strong:var(--primary-glow-strong);--gold:var(--primary);--secondary:#e7e5e4;--secondary-deep:#d6d3d1;--secondary-shadow:#a8a29e;--secondary-text:#1c1917;--panel-dark:#fff;--surface:#f5f5f4;--border:#e7e5e4;--bg:#fafaf8;--bg-elevated:#fff;--text-warm:#1c1917;--text-muted:#78716c;--success:#16a34a;--success-bg:#16a34a14;--danger:#dc2626;--danger-bg:#dc26260f;--info:#2563eb;--info-bg:#2563eb0f;--warning:#d97706;--overlay-bg:#0006;--inset-highlight:#fff9;--inset-highlight-subtle:#ffffff4d;--input-shadow:#0000000a;--badge-muted-bg:#78716c14;--badge-warning-bg:#d9770614;--badge-warning-active-bg:#d977061f;--badge-salary:#7c3aed;--badge-salary-bg:#7c3aed14;--customer-highlight-bg:#d977060d;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #00000012, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #0000000a;--sidebar-bg:#fff;--sidebar-border:#f0eeec;--table-header-bg:#fafaf8;--table-header-color:#78716c;--table-row-hover:#fafaf8;--btn-radius:8px;--card-radius:12px;--heading-font:"DM Sans", sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text-warm);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}#root{width:100%;min-height:100vh}h1,h2,h3{font-family:var(--heading-font);color:var(--text-warm);letter-spacing:-.02em;font-weight:700}h2{margin-bottom:1.25rem;font-size:1.5rem}h3{margin-bottom:.75rem;font-size:1.1rem}h4{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem;font-size:.78rem;font-weight:600}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-deep)}input,select,textarea{font-family:inherit;font-size:.9rem}input[type=date]{background:var(--surface);border:1px solid var(--border);color:var(--text-warm);cursor:pointer;border-radius:8px;padding:.5rem .75rem}input[type=date]:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);outline:none}[data-theme=dark] input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.8)}::selection{background:var(--primary);color:#fff}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}[data-theme=dark] .card,[data-theme=dark] .form-card,[data-theme=dark] .kpi-card,[data-theme=dark] .dashboard-card,[data-theme=dark] .dispatch-card,[data-theme=dark] .schedule-card,[data-theme=dark] .builder-panel,[data-theme=dark] .side-panel,[data-theme=dark] .planner-card,[data-theme=dark] .planner-group,[data-theme=dark] .expense-summary,[data-theme=dark] .modal-content,[data-theme=dark] .confirm-dialog,[data-theme=dark] .toast{-webkit-backdrop-filter:blur(12px)}[data-theme=dark] .sidebar{-webkit-backdrop-filter:blur(16px)}body,.sidebar,.main-content,.card,.form-card,.kpi-card,.btn,input,select,textarea{transition:background-color .2s,color .2s,border-color .2s}
