:root{
    --page-bg:#f4f7fb;
    --card-bg:#fff;
    --border:#e7ecf3;
    --text:#101828;
    --muted:#667085;
    --shadow:0 8px 28px rgba(16,24,40,.06);
    --radius:18px;
}

*{box-sizing:border-box}
html,body{min-height:100%;background:var(--page-bg);color:var(--text)}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Tahoma,Arial,sans-serif}
body.menu-open{overflow:hidden}
button,input,select,textarea{font:inherit}

.app-shell{display:flex;min-height:100vh}
.sidebar{width:270px;background:var(--brand-secondary,#101828);color:#fff;position:fixed;inset-block:0;inset-inline-start:0;z-index:1045;padding:14px;overflow-y:auto;box-shadow:0 0 30px rgba(16,24,40,.12)}
.sidebar-head{display:flex;align-items:center;gap:8px;min-height:56px}
.brand{font-weight:800;font-size:16px;display:flex;gap:10px;align-items:center;padding:6px;min-width:0;flex:1}
.brand img{width:38px;height:38px;object-fit:contain;border-radius:10px;background:#fff;padding:3px;flex:0 0 auto}
.brand-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:color-mix(in srgb,var(--brand) 18%,transparent);color:var(--brand);font-size:21px}
.brand-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-close{display:none;width:40px;height:40px;border:0;border-radius:10px;background:rgba(255,255,255,.08);color:#fff}
.sidebar nav{display:flex;flex-direction:column;gap:4px;padding-bottom:20px}
.sidebar nav a{color:#d0d5dd;text-decoration:none;padding:11px 12px;border-radius:11px;display:flex;gap:11px;align-items:center;font-size:14px;transition:.18s ease}
.sidebar nav a i{width:20px;text-align:center;font-size:16px}
.sidebar nav a:hover{background:color-mix(in srgb,var(--brand) 22%,transparent);color:#fff;transform:translateY(-1px)}
.nav-caption{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#98a2b3;padding:18px 10px 5px}

.sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(15,23,42,.48);backdrop-filter:blur(2px);z-index:1040}
.sidebar-backdrop.show{display:block}

.main{width:calc(100% - 270px);margin-inline-start:270px;min-height:100vh;padding-bottom:0}
.topbar{height:66px;background:rgba(255,255,255,.95);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);padding:0 22px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:1030}
.topbar-start,.topbar-actions{display:flex;align-items:center;gap:8px}
.mobile-menu{display:none;width:44px;height:44px;border:1px solid var(--border);background:#fff;border-radius:12px;color:var(--text);font-size:22px;align-items:center;justify-content:center}
.mobile-brand{display:none;align-items:center;gap:9px;font-weight:800;min-width:0}
.mobile-brand img{width:32px;height:32px;object-fit:contain;border-radius:8px;background:#fff}
.mobile-brand>i{color:var(--brand);font-size:22px}
.mobile-brand span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:190px}
.topbar-action{height:38px;min-width:38px;border-radius:10px;border:1px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:center;gap:5px;color:var(--text)}
.topbar-action:hover{background:#f8fafc}
.logout-btn{color:#dc3545;border-color:#fecdd3}
.language-btn{padding-inline:10px}

.content{padding:26px;max-width:1480px;margin:0 auto;width:100%}
.app-alert{border-radius:14px;border:0;box-shadow:var(--shadow)}

.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}
.page-eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--brand);margin-bottom:5px}
.page-title{font-weight:850;font-size:30px;line-height:1.2;margin:0;color:var(--text)}

.btn{border-radius:11px;font-weight:650}
.btn-primary{background:var(--brand);border-color:var(--brand)}
.btn-primary:hover,.btn-primary:focus{filter:brightness(.94);background:var(--brand);border-color:var(--brand)}

.panel,.stat-card,.form-section,.trip-filter-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.panel{padding:22px}

.dashboard-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.stat-card{padding:18px;display:flex;align-items:center;gap:14px;min-width:0}
.stat-card-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:21px;flex:0 0 auto;background:#eff6ff;color:#2563eb}
.stat-card-indigo .stat-card-icon{background:#eef2ff;color:#4f46e5}
.stat-card-orange .stat-card-icon{background:#fff7ed;color:#ea580c}
.stat-card-green .stat-card-icon{background:#ecfdf3;color:#16a34a}
.stat-card-teal .stat-card-icon{background:#ecfeff;color:#0891b2}
.stat-card-purple .stat-card-icon{background:#faf5ff;color:#9333ea}
.stat-card-body{min-width:0}
.stat-value{font-size:27px;line-height:1;font-weight:850;color:var(--text);margin-bottom:6px}
.stat-label{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-new-trip{display:inline-flex;align-items:center;gap:8px;padding:11px 17px}
.quick-actions-panel{margin-top:18px}
.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.panel-heading>div{display:flex;align-items:center;gap:10px}
.panel-heading h2{font-size:18px;font-weight:800;margin:0}
.panel-icon{width:36px;height:36px;border-radius:11px;background:color-mix(in srgb,var(--brand) 12%,white);color:var(--brand);display:grid;place-items:center}
.quick-actions-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.quick-action{text-decoration:none;color:var(--text);border:1px solid var(--border);border-radius:14px;min-height:64px;padding:13px 15px;display:flex;align-items:center;gap:11px;background:#fff;font-weight:700;position:relative;transition:.18s ease}
.quick-action:hover{color:var(--text);border-color:color-mix(in srgb,var(--brand) 35%,var(--border));transform:translateY(-2px);box-shadow:0 8px 18px rgba(16,24,40,.06)}
.quick-action-primary{background:color-mix(in srgb,var(--brand) 7%,white)}
.quick-action-icon{width:38px;height:38px;border-radius:11px;background:color-mix(in srgb,var(--brand) 12%,white);color:var(--brand);display:grid;place-items:center;font-size:17px}
.quick-action-arrow{margin-inline-start:auto;color:#98a2b3;font-size:13px}

.trip-form{max-width:1040px}
.form-section{padding:22px;margin-bottom:16px}
.form-section-heading{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.form-section-icon{width:42px;height:42px;border-radius:13px;background:color-mix(in srgb,var(--brand) 10%,white);color:var(--brand);display:grid;place-items:center;font-size:18px;flex:0 0 auto}
.form-section-heading h2{font-size:17px;font-weight:800;margin:0 0 2px}
.form-section-heading small{color:var(--muted);font-size:12px}
.form-label{font-size:13px;font-weight:700;color:#344054;margin-bottom:7px}
.required-mark{color:#dc3545}
.form-control,.form-select,.input-group-text{min-height:49px;border-color:#d9e0ea;border-radius:11px;background:#fff}
.form-control,.form-select{font-size:15px;padding:10px 13px}
.form-control:focus,.form-select:focus{border-color:color-mix(in srgb,var(--brand) 55%,#d9e0ea);box-shadow:0 0 0 .22rem color-mix(in srgb,var(--brand) 12%,transparent)}
textarea.form-control{min-height:105px}
.field-with-icon{position:relative}
.field-with-icon>i{position:absolute;inset-inline-start:14px;top:50%;transform:translateY(-50%);color:#98a2b3;z-index:2}
.field-with-icon .form-control{padding-inline-start:42px}
.app-input-group .form-control{border-start-end-radius:0;border-end-end-radius:0}
.app-input-group .input-group-text{border-start-start-radius:0;border-end-start-radius:0;color:var(--muted);font-size:13px;background:#f8fafc}
.validation-summary:empty{display:none}
.validation-summary{background:#fff1f2;border:1px solid #fecdd3;border-radius:12px;padding:12px 16px;margin-bottom:16px}

.route-editor{position:relative}
.route-point{display:flex;gap:13px;align-items:flex-start;position:relative}
.route-point:not(:last-child):before{content:"";position:absolute;inset-inline-start:17px;top:36px;bottom:-18px;width:2px;background:#e2e8f0}
.route-dot{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#eef2ff;color:var(--brand);flex:0 0 36px;margin-top:30px;z-index:2;border:4px solid #fff;box-shadow:0 0 0 1px #dbe4ef}
.route-point-end .route-dot{background:#ecfdf3;color:#16a34a}
.route-dot-stop{background:#fff7ed;color:#ea580c;font-size:12px;font-weight:800}
.route-field{flex:1;min-width:0}
.route-stops{display:flex;flex-direction:column;gap:12px;margin-top:12px}
.add-stop-btn{margin:12px 49px 14px;border:1px dashed color-mix(in srgb,var(--brand) 45%,#d9e0ea);background:color-mix(in srgb,var(--brand) 4%,white);color:var(--brand);border-radius:11px;min-height:44px;padding:9px 14px;font-weight:700;display:inline-flex;align-items:center;gap:8px}
.stop-fields{display:grid;grid-template-columns:minmax(0,1fr) 130px 44px;gap:8px;align-items:end}
.remove-stop-btn{height:49px;width:44px;border-radius:11px;border:1px solid #fecdd3;background:#fff1f2;color:#e11d48}

.stepper{display:grid;grid-template-columns:46px minmax(0,1fr) 46px;border:1px solid #d9e0ea;border-radius:11px;overflow:hidden;background:#fff;height:49px}
.stepper button{border:0;background:#f8fafc;color:var(--text);font-size:17px}
.stepper input{border:0!important;border-radius:0!important;text-align:center;min-height:47px;box-shadow:none!important;padding:8px}
.price-field-wrap{max-width:520px}
.price-field{position:relative}
.price-field>i{position:absolute;inset-inline-start:15px;top:50%;transform:translateY(-50%);font-size:20px;color:var(--brand)}
.price-field .form-control{height:58px;padding-inline-start:48px;font-size:22px;font-weight:850;color:var(--text)}
.notes-field{resize:vertical}
.desktop-form-actions{display:flex;padding:3px 0 20px}
.save-trip-btn{min-height:52px;padding-inline:24px;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.mobile-form-actions{display:none}

.trip-filter-card{padding:12px;margin-bottom:15px;display:flex;align-items:center;gap:9px;max-width:520px}
.trip-filter-field{position:relative;flex:1}
.trip-filter-field>i{position:absolute;inset-inline-start:14px;top:50%;transform:translateY(-50%);color:#98a2b3;z-index:2}
.trip-filter-field input{padding-inline-start:42px}
.trips-new-btn{display:flex;align-items:center;gap:7px}
.table-card{background:#fff;border-radius:var(--radius);border:1px solid var(--border);overflow:hidden;box-shadow:var(--shadow)}
.table-card table{margin:0}
.table-card thead th{font-size:12px;color:#667085;background:#f8fafc;border-bottom-color:var(--border);padding:13px 14px;white-space:nowrap}
.table-card tbody td{padding:14px;border-bottom-color:#eef2f6;font-size:13px}
.table-date{display:block;color:var(--muted);font-size:11px}
.table-time{display:block;margin-top:2px}
.trip-number-link{font-weight:800;text-decoration:none;color:var(--brand)}
.table-route{display:flex;gap:7px;align-items:center;max-width:320px}
.table-route span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.table-route i{color:#98a2b3;flex:0 0 auto}
.status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:5px 10px;border-radius:999px;background:#f2f4f7;color:#344054;font-size:11px;font-weight:800;white-space:nowrap}
.mobile-trips-list{display:none}

.mobile-bottom-nav{display:none}
.auth-page{min-height:100vh;display:grid;place-items:center;padding:20px}
.auth-card{width:min(420px,100%);background:#fff;border-radius:20px;padding:28px;border:1px solid var(--border);box-shadow:var(--shadow)}
.branding-preview{max-width:180px;max-height:80px;object-fit:contain;background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;padding:8px}
.audit-json{direction:ltr;text-align:left;background:#111827;color:#e5e7eb;padding:14px;border-radius:12px;white-space:pre-wrap;word-break:break-word;max-height:340px;overflow:auto}
.route-line{border-inline-start:3px solid var(--brand);padding-inline-start:12px}
.text-brand{color:var(--brand)!important}

@media(max-width:1280px){
    .dashboard-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(max-width:991.98px){
    body{padding-bottom:76px}
    .sidebar{width:min(86vw,320px);transform:translateX(calc(-100% - 24px));transition:transform .25s ease;padding-bottom:90px}
    [dir=rtl] .sidebar{transform:translateX(calc(100% + 24px))}
    .sidebar.open,[dir=rtl] .sidebar.open{transform:none}
    .sidebar-close{display:grid;place-items:center}
    .main{width:100%;margin-inline-start:0;padding-bottom:0}
    .topbar{height:60px;padding:0 12px}
    .mobile-menu{display:inline-flex}
    .mobile-brand{display:flex}
    .content{padding:16px 14px 24px}
    .page-heading{align-items:center;margin-bottom:15px}
    .page-eyebrow{font-size:12px}
    .page-title{font-size:24px}
    .dashboard-new-trip{display:none}
    .dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
    .stat-card{padding:14px 12px;gap:10px;border-radius:15px;box-shadow:0 5px 18px rgba(16,24,40,.045)}
    .stat-card-icon{width:40px;height:40px;border-radius:12px;font-size:18px}
    .stat-value{font-size:23px}
    .stat-label{font-size:12px}
    .quick-actions-panel{padding:16px;margin-top:14px}
    .quick-actions-grid{grid-template-columns:1fr}
    .quick-action{min-height:58px}

    .trip-form{max-width:none}
    .form-section{padding:16px 14px;border-radius:16px;margin-bottom:12px;box-shadow:0 4px 16px rgba(16,24,40,.04)}
    .form-section-heading{margin-bottom:14px}
    .form-section-icon{width:38px;height:38px;border-radius:12px}
    .form-section-heading h2{font-size:16px}
    .form-control,.form-select,.input-group-text{min-height:52px;font-size:16px}
    .stepper{height:52px;grid-template-columns:46px minmax(0,1fr) 46px}
    .stepper input{min-height:50px}
    .price-field .form-control{height:60px;font-size:23px}
    .stop-fields{grid-template-columns:minmax(0,1fr) 92px 44px}
    .route-dot{margin-top:33px}
    .add-stop-btn{margin-inline:49px 0;width:calc(100% - 49px);justify-content:center}
    .desktop-form-actions{display:none}
    .mobile-form-actions{display:block;position:fixed;inset-inline:0;bottom:72px;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-top:1px solid var(--border);padding:10px 14px calc(10px + env(safe-area-inset-bottom));z-index:1025}
    .mobile-form-actions .save-trip-btn{width:100%;min-height:52px;font-size:16px}
    .trip-form{padding-bottom:76px}

    .trips-new-btn{width:44px;height:44px;border-radius:12px;padding:0;justify-content:center}
    .trips-new-btn span{display:none}
    .trip-filter-card{max-width:none;padding:9px;box-shadow:none;border-radius:14px}
    .trip-filter-card .btn{height:52px;min-width:52px;padding-inline:14px}
    .trip-filter-card .btn span{display:none}
    .desktop-trips-table{display:none}
    .mobile-trips-list{display:grid;gap:12px}
    .trip-mobile-card{position:relative;background:#fff;border:1px solid var(--border);border-radius:17px;padding:15px;box-shadow:0 5px 18px rgba(16,24,40,.05);overflow:hidden}
    .trip-card-link{position:absolute;inset:0;z-index:1}
    .trip-mobile-top,.trip-mobile-route,.trip-mobile-meta,.trip-mobile-footer,.trip-mobile-number{position:relative;z-index:2;pointer-events:none}
    .trip-mobile-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
    .trip-mobile-time{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--muted)}
    .trip-mobile-time i{color:var(--brand)}
    .trip-mobile-time strong{font-size:16px;color:var(--text)}
    .trip-mobile-number{font-size:12px;font-weight:800;color:var(--brand);margin-top:7px}
    .trip-mobile-route{margin:15px 0 13px}
    .mobile-route-point{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:750}
    .mobile-route-icon{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#eef2ff;color:var(--brand);flex:0 0 auto}
    .mobile-route-icon.end{background:#ecfdf3;color:#16a34a}
    .mobile-route-line{width:2px;height:18px;background:#e2e8f0;margin-inline-start:14px}
    .trip-mobile-meta{display:flex;flex-wrap:wrap;gap:7px}
    .trip-mobile-meta span{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border-radius:9px;background:#f8fafc;color:#475467;font-size:11px}
    .trip-mobile-meta i{color:#98a2b3}
    .trip-mobile-footer{display:flex;align-items:center;justify-content:space-between;margin-top:13px;padding-top:11px;border-top:1px solid #eef2f6;color:var(--muted);font-size:11px}
    .trip-open-icon{width:28px;height:28px;border-radius:8px;background:#f8fafc;display:grid;place-items:center;color:var(--brand)}

    .mobile-bottom-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;inset-inline:0;bottom:0;height:72px;padding:7px 10px calc(6px + env(safe-area-inset-bottom));background:rgba(255,255,255,.98);backdrop-filter:blur(14px);border-top:1px solid var(--border);z-index:1035;box-shadow:0 -7px 20px rgba(16,24,40,.06)}
    .mobile-bottom-nav>a,.mobile-bottom-nav>button{position:relative;border:0;background:transparent;text-decoration:none;color:#667085;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10px;font-weight:700;min-width:0}
    .mobile-bottom-nav i{font-size:19px}
    .mobile-primary-action{color:var(--brand)!important}
    .mobile-primary-icon{width:42px;height:42px;margin-top:-25px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;border:4px solid #fff;box-shadow:0 7px 16px color-mix(in srgb,var(--brand) 28%,transparent)}
    .mobile-primary-icon i{font-size:20px}
}

@media(max-width:480px){
    .content{padding-inline:10px}
    .dashboard-stats{gap:8px}
    .stat-card{padding:12px 10px;align-items:flex-start;flex-direction:column;gap:8px}
    .stat-card-icon{width:36px;height:36px}
    .stat-value{font-size:22px}
    .stat-label{white-space:normal;line-height:1.25}
    .form-section{padding-inline:12px}
    .stop-fields{grid-template-columns:minmax(0,1fr) 82px 42px}
    .remove-stop-btn{width:42px}
}

/* ==========================================================
   Accounting-style responsive UI v2
   Desktop: compact business system layout
   Mobile: true off-canvas navigation + touch-first controls
   ========================================================== */
:root{
    --page-bg:#f5f7fb;
    --card-bg:#ffffff;
    --border:#e2e8f0;
    --border-strong:#d5dce8;
    --text:#172033;
    --muted:#64748b;
    --sidebar-bg:#111827;
    --sidebar-hover:#1b2638;
    --sidebar-text:#e5e7eb;
    --sidebar-muted:#94a3b8;
    --shadow:0 2px 9px rgba(15,23,42,.045);
    --shadow-md:0 9px 30px rgba(15,23,42,.08);
    --radius:12px;
}

html,body{font-family:"Cairo","Segoe UI",Tahoma,Arial,sans-serif}
body{font-size:14px;background:var(--page-bg);overflow-x:hidden}
.btn,.form-control,.form-select,.input-group-text{font-family:inherit}

/* Desktop shell – dense like accounting software */
.sidebar{
    width:248px;
    background:var(--sidebar-bg);
    border-inline-end:1px solid rgba(255,255,255,.055);
    box-shadow:none;
    padding:0;
    scrollbar-width:thin;
    scrollbar-color:#334155 transparent;
}
.sidebar-head{
    min-height:66px;
    padding:0 15px;
    border-bottom:1px solid rgba(255,255,255,.07);
    position:sticky;
    top:0;
    background:var(--sidebar-bg);
    z-index:3;
}
.brand{padding:0;font-size:15px;gap:9px}
.brand img{width:34px;height:34px;border-radius:8px}
.brand-icon{width:34px;height:34px;border-radius:8px;font-size:18px}
.sidebar nav{gap:1px;padding:10px 9px 28px}
.sidebar nav a{
    min-height:42px;
    padding:9px 11px;
    border-radius:8px;
    color:var(--sidebar-text);
    font-size:13px;
    font-weight:600;
    border:1px solid transparent;
    transform:none!important;
}
.sidebar nav a i{width:22px;font-size:15px;color:#a9b5c6}
.sidebar nav a:hover{background:var(--sidebar-hover);color:#fff;box-shadow:none}
.sidebar nav a.active{
    background:color-mix(in srgb,var(--brand) 22%,#162033);
    color:#fff;
    border-color:color-mix(in srgb,var(--brand) 34%,transparent);
}
.sidebar nav a.active i{color:var(--brand)}
.nav-caption{
    padding:18px 11px 6px;
    color:var(--sidebar-muted);
    font-size:10px;
    font-weight:700;
    letter-spacing:0;
    text-transform:none;
}

.main{width:calc(100% - 248px);margin-inline-start:248px}
.topbar{
    height:62px;
    padding:0 18px;
    background:#fff;
    backdrop-filter:none;
    box-shadow:0 1px 0 var(--border);
    border-bottom:0;
}
.topbar-action{height:36px;min-width:36px;border-radius:8px}
.content{max-width:1600px;padding:20px 22px 32px}

/* Page headers */
.page-heading{margin-bottom:16px;align-items:center}
.page-eyebrow{font-size:11px;margin-bottom:2px;color:#64748b}
.page-title{font-size:24px;font-weight:800;letter-spacing:-.15px}
.btn{border-radius:8px;font-weight:700;min-height:38px}
.btn-primary{box-shadow:0 1px 2px color-mix(in srgb,var(--brand) 20%,transparent)}

/* Accounting cards – less rounded, more information-dense */
.panel,.stat-card,.form-section,.trip-filter-card,.table-card{
    border-radius:11px;
    border-color:var(--border);
    box-shadow:var(--shadow);
}
.dashboard-stats{gap:10px}
.stat-card{padding:14px 15px;gap:12px;min-height:88px}
.stat-card-icon{width:42px;height:42px;border-radius:9px;font-size:18px}
.stat-value{font-size:24px;margin-bottom:5px}
.stat-label{font-size:12px;font-weight:600}
.quick-actions-panel{padding:17px;margin-top:13px}
.panel-heading{margin-bottom:12px}
.panel-heading h2{font-size:16px}
.panel-icon{width:32px;height:32px;border-radius:8px}
.quick-actions-grid{gap:9px}
.quick-action{min-height:54px;padding:10px 12px;border-radius:9px;font-size:13px}
.quick-action:hover{transform:none;box-shadow:var(--shadow)}
.quick-action-icon{width:34px;height:34px;border-radius:8px}

/* Forms – desktop ERP/accounting look */
.trip-form{max-width:1180px}
.form-section{padding:17px 18px;margin-bottom:12px}
.form-section-heading{gap:10px;margin-bottom:14px;padding-bottom:11px;border-bottom:1px solid #edf1f6}
.form-section-icon{width:35px;height:35px;border-radius:8px;font-size:15px}
.form-section-heading h2{font-size:15px}
.form-section-heading small{font-size:11px}
.form-label{font-size:12px;margin-bottom:5px}
.form-control,.form-select,.input-group-text{min-height:43px;border-radius:8px;border-color:var(--border-strong)}
.form-control,.form-select{font-size:13px;padding:8px 11px}
textarea.form-control{min-height:90px}
.stepper{height:43px;border-radius:8px;grid-template-columns:42px minmax(0,1fr) 42px}
.stepper input{min-height:41px}
.price-field .form-control{height:48px;font-size:18px}
.add-stop-btn{min-height:39px;border-radius:8px;font-size:12px}
.remove-stop-btn{height:43px;border-radius:8px}
.desktop-form-actions{position:sticky;bottom:0;background:linear-gradient(to top,var(--page-bg) 74%,transparent);padding:14px 0 5px;z-index:10}
.save-trip-btn{min-height:44px}

/* Tables */
.table-card{border-radius:10px}
.table-card thead th{font-size:11px;font-weight:800;padding:10px 12px;background:#f8fafc;color:#475569}
.table-card tbody td{padding:11px 12px;font-size:12px}
.table-card tbody tr:hover{background:#fbfdff}
.status-pill{min-height:25px;padding:4px 8px;border-radius:6px;font-size:10px}
.trip-filter-card{padding:9px;gap:8px;max-width:560px}

/* Backdrop is always mounted so it can animate and always receive clicks. */
.sidebar-backdrop{
    display:block;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .2s ease,visibility .2s ease;
    background:rgba(15,23,42,.56);
    backdrop-filter:blur(2px);
}
.sidebar-backdrop.show{opacity:1;visibility:visible;pointer-events:auto}

@media(min-width:992px){
    .sidebar-close{display:none!important}
    .mobile-menu,.mobile-brand,.mobile-bottom-nav{display:none!important}
}

/* Tablet + mobile */
@media(max-width:991.98px){
    body{padding-bottom:68px}
    body.menu-open{overflow:hidden;touch-action:none}

    .sidebar{
        width:min(88vw,340px);
        max-width:340px;
        padding:0;
        box-shadow:0 16px 50px rgba(2,6,23,.28);
        transition:transform .22s cubic-bezier(.2,.8,.2,1);
        will-change:transform;
    }
    [dir=ltr] .sidebar{left:0;right:auto;transform:translate3d(-105%,0,0)}
    [dir=rtl] .sidebar{right:0;left:auto;transform:translate3d(105%,0,0)}
    [dir=ltr] .sidebar.open,[dir=rtl] .sidebar.open{transform:translate3d(0,0,0)}

    .sidebar-head{
        min-height:64px;
        padding:0 13px;
        box-shadow:0 1px 0 rgba(255,255,255,.06);
    }
    .sidebar-close{
        display:grid!important;
        place-items:center;
        width:38px;
        height:38px;
        border-radius:8px;
        background:#202b3c;
        flex:0 0 38px;
        font-size:18px;
    }
    .sidebar nav{padding:8px 8px 90px}
    .sidebar nav a{min-height:44px;font-size:13px}

    .main{width:100%;margin-inline-start:0}
    .topbar{height:58px;padding:0 10px;box-shadow:0 1px 0 var(--border)}
    .mobile-menu{display:inline-flex;width:40px;height:40px;border-radius:8px;font-size:20px}
    .mobile-brand{display:flex;font-size:13px}
    .mobile-brand span{max-width:145px}
    .topbar-actions{gap:5px}
    .topbar-action{height:36px;min-width:36px}
    .language-btn{padding-inline:8px}

    .content{padding:14px 11px 22px;max-width:none}
    .page-heading{margin-bottom:12px;align-items:center}
    .page-title{font-size:21px}
    .page-eyebrow{font-size:10px}

    .dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
    .stat-card{min-height:84px;padding:12px;gap:9px;border-radius:10px}
    .stat-card-icon{width:38px;height:38px;border-radius:8px}
    .stat-value{font-size:21px}
    .stat-label{font-size:11px;line-height:1.35;white-space:normal}
    .quick-actions-panel{padding:12px;margin-top:10px}
    .quick-actions-grid{grid-template-columns:1fr;gap:7px}
    .quick-action{min-height:50px;border-radius:8px}

    .form-section{padding:13px 12px;border-radius:10px;margin-bottom:9px;box-shadow:var(--shadow)}
    .form-section-heading{margin-bottom:11px;padding-bottom:9px}
    .form-section-icon{width:33px;height:33px}
    .form-section-heading h2{font-size:14px}
    .form-control,.form-select,.input-group-text{min-height:48px;font-size:15px;border-radius:8px}
    .stepper{height:48px;border-radius:8px}
    .stepper input{min-height:46px}
    .price-field .form-control{height:52px;font-size:20px}
    .route-dot{margin-top:31px}
    .stop-fields{grid-template-columns:minmax(0,1fr) 84px 42px}
    .add-stop-btn{margin-inline:49px 0;width:calc(100% - 49px);justify-content:center}

    .desktop-form-actions{display:none}
    .mobile-form-actions{
        display:block;
        position:fixed;
        inset-inline:0;
        bottom:68px;
        padding:8px 10px calc(8px + env(safe-area-inset-bottom));
        background:rgba(255,255,255,.97);
        border-top:1px solid var(--border);
        box-shadow:0 -6px 20px rgba(15,23,42,.06);
        backdrop-filter:blur(10px);
        z-index:1025;
    }
    .mobile-form-actions .save-trip-btn{width:100%;min-height:48px;font-size:14px;border-radius:8px}
    .trip-form{padding-bottom:70px}

    .trip-filter-card{max-width:none;padding:7px;border-radius:9px;box-shadow:var(--shadow)}
    .trip-filter-card .btn{height:48px;min-width:48px}
    .desktop-trips-table{display:none}
    .mobile-trips-list{display:grid;gap:8px}
    .trip-mobile-card{border-radius:10px;padding:12px;box-shadow:var(--shadow)}
    .trip-mobile-time strong{font-size:15px}
    .trip-mobile-route{margin:12px 0 10px}
    .mobile-route-point{font-size:13px}
    .trip-mobile-meta span{border-radius:6px;font-size:10px;padding:5px 7px}
    .trip-mobile-footer{margin-top:10px;padding-top:9px}

    .mobile-bottom-nav{
        height:68px;
        padding:6px 7px calc(5px + env(safe-area-inset-bottom));
        background:#fff;
        backdrop-filter:none;
        border-top:1px solid var(--border);
        box-shadow:0 -3px 14px rgba(15,23,42,.07);
    }
    .mobile-bottom-nav>a,.mobile-bottom-nav>button{font-size:9px;gap:2px;font-weight:700}
    .mobile-bottom-nav i{font-size:18px}
    .mobile-primary-icon{width:40px;height:40px;margin-top:-22px;border-width:3px;box-shadow:0 5px 13px color-mix(in srgb,var(--brand) 25%,transparent)}
}

@media(max-width:575.98px){
    .content{padding-inline:9px}
    .page-title{font-size:20px}
    .dashboard-stats{grid-template-columns:1fr 1fr}
    .stat-card{flex-direction:row;align-items:center;padding:10px;min-height:78px}
    .stat-card-icon{width:35px;height:35px;flex:0 0 35px}
    .stat-value{font-size:20px}
    .stat-label{font-size:10px}
    .form-section{padding-inline:10px}
    .route-point{gap:9px}
    .route-dot{width:32px;height:32px;flex-basis:32px}
    .route-point:not(:last-child):before{inset-inline-start:15px}
    .add-stop-btn{margin-inline-start:41px;width:calc(100% - 41px)}
    .stop-fields{grid-template-columns:minmax(0,1fr) 76px 40px;gap:6px}
    .remove-stop-btn{width:40px}
}

/* ==========================================================
   Limo Accounting UI v3
   Desktop: collapsible accounting sidebar
   Mobile: app-like bottom navigation + bottom sheet
   ========================================================== */

/* ---- Desktop accounting shell ---- */
@media (min-width: 992px) {
    .sidebar{
        width:252px;
        background:#111827;
        border-inline-end:1px solid rgba(255,255,255,.055);
        transition:width .22s ease;
    }
    .main{
        margin-inline-start:252px;
        width:calc(100% - 252px);
        transition:margin-inline-start .22s ease,width .22s ease;
    }
    .sidebar-head{min-height:64px;padding-inline:14px}
    .brand-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .desktop-sidebar-toggle{
        display:inline-grid;
        place-items:center;
        width:38px;height:38px;
        border:1px solid var(--border);
        border-radius:9px;
        background:#fff;
        color:#475569;
        transition:.18s ease;
    }
    .desktop-sidebar-toggle:hover{background:#f8fafc;color:var(--brand);border-color:#cbd5e1}
    body.sidebar-collapsed .sidebar{width:76px}
    body.sidebar-collapsed .main{margin-inline-start:76px;width:calc(100% - 76px)}
    body.sidebar-collapsed .sidebar .brand-name,
    body.sidebar-collapsed .sidebar .nav-caption,
    body.sidebar-collapsed .sidebar nav a span{display:none}
    body.sidebar-collapsed .sidebar-head{padding-inline:10px;justify-content:center}
    body.sidebar-collapsed .brand{justify-content:center;width:100%}
    body.sidebar-collapsed .sidebar nav{padding-inline:10px}
    body.sidebar-collapsed .sidebar nav a{justify-content:center;padding-inline:0}
    body.sidebar-collapsed .sidebar nav a i{width:auto;font-size:18px}
    body.sidebar-collapsed .sidebar nav a{position:relative}
    body.sidebar-collapsed .sidebar nav a:hover:after{
        content:attr(title);
    }
    .mobile-more-sheet,.mobile-sheet-backdrop,.mobile-bottom-nav{display:none!important}
}

/* ---- Top bar ---- */
.topbar{
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(12px);
    border-bottom:1px solid #e8edf4;
}
.mobile-brand-text{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.mobile-brand-text strong{font-size:14px;color:#172033;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.mobile-brand-text small{font-size:10px;color:#94a3b8;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.mobile-brand-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:color-mix(in srgb,var(--brand) 12%,#fff);color:var(--brand)}

/* ---- Mobile app navigation ---- */
@media (max-width: 991.98px) {
    html,body{min-height:100%;background:#f5f7fb}
    body{padding-bottom:calc(78px + env(safe-area-inset-bottom))}
    body.mobile-sheet-open{overflow:hidden}

    /* Desktop/sidebar menu is not used on mobile */
    .sidebar{display:none!important}
    .main{width:100%!important;margin:0!important;min-height:100vh}
    .desktop-sidebar-toggle{display:none!important}

    .topbar{
        position:sticky;
        top:0;
        z-index:1015;
        height:60px;
        padding:0 12px;
        box-shadow:0 1px 8px rgba(15,23,42,.035);
    }
    .topbar-start{min-width:0;flex:1}
    .mobile-brand{display:flex!important;align-items:center;gap:9px;min-width:0}
    .mobile-brand img{width:36px;height:36px;border-radius:10px;object-fit:contain;background:#fff;border:1px solid #e5e7eb;padding:3px}
    .topbar-actions{gap:5px}
    .topbar-action{width:38px;height:38px;border-radius:10px}
    .language-btn span{font-size:11px}

    .content{padding:14px 12px 22px}

    .mobile-bottom-nav{
        display:grid!important;
        grid-template-columns:repeat(4,minmax(0,1fr));
        position:fixed;
        left:0;right:0;bottom:0;
        height:calc(72px + env(safe-area-inset-bottom));
        padding:6px 8px calc(6px + env(safe-area-inset-bottom));
        background:rgba(255,255,255,.97);
        backdrop-filter:blur(18px);
        -webkit-backdrop-filter:blur(18px);
        border-top:1px solid #e5eaf1;
        box-shadow:0 -8px 28px rgba(15,23,42,.07);
        z-index:1050;
    }
    .mobile-nav-item{
        appearance:none;
        border:0;
        background:transparent;
        color:#7b8798;
        text-decoration:none;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap:3px;
        min-width:0;
        border-radius:13px;
        font-family:"Cairo",sans-serif;
        transition:color .16s ease,background .16s ease,transform .16s ease;
        -webkit-tap-highlight-color:transparent;
    }
    .mobile-nav-item i{font-size:20px;line-height:1}
    .mobile-nav-item span{font-size:10px;font-weight:700;line-height:1.25;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
    .mobile-nav-item.active{color:var(--brand)}
    .mobile-nav-item.active i{transform:translateY(-1px)}
    .mobile-nav-item.active:before{
        content:"";
        position:absolute;
        top:3px;
        width:24px;height:3px;
        border-radius:999px;
        background:var(--brand);
    }
    .mobile-nav-item{position:relative}
    .mobile-nav-item:active{transform:scale(.96);background:#f8fafc}

    .mobile-sheet-backdrop{
        display:block;
        position:fixed;
        inset:0;
        background:rgba(15,23,42,.42);
        opacity:0;
        visibility:hidden;
        transition:.22s ease;
        z-index:1060;
    }
    .mobile-sheet-backdrop.show{opacity:1;visibility:visible}

    .mobile-more-sheet{
        display:block;
        position:fixed;
        left:0;right:0;bottom:0;
        max-height:min(78vh,680px);
        overflow:auto;
        background:#fff;
        border-radius:24px 24px 0 0;
        box-shadow:0 -22px 60px rgba(15,23,42,.2);
        transform:translateY(105%);
        transition:transform .28s cubic-bezier(.22,.8,.25,1);
        z-index:1070;
        padding:8px 14px calc(18px + env(safe-area-inset-bottom));
    }
    .mobile-more-sheet.open{transform:translateY(0)}
    .mobile-sheet-handle{width:44px;height:5px;border-radius:999px;background:#d7dde6;margin:2px auto 12px}
    .mobile-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:3px 2px 14px;border-bottom:1px solid #edf0f5}
    .mobile-sheet-head>div{display:flex;flex-direction:column}
    .mobile-sheet-head strong{font-size:18px;color:#172033}
    .mobile-sheet-head small{font-size:11px;color:#94a3b8;margin-top:2px}
    .mobile-sheet-head>button{width:38px;height:38px;border:0;border-radius:11px;background:#f1f5f9;color:#475569;display:grid;place-items:center}

    .mobile-more-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:15px 0}
    .mobile-more-grid>a{
        min-height:86px;
        border:1px solid #e7ecf3;
        border-radius:16px;
        background:#fff;
        text-decoration:none;
        color:#334155;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap:8px;
        padding:9px 5px;
        box-shadow:0 3px 12px rgba(15,23,42,.03);
        -webkit-tap-highlight-color:transparent;
    }
    .mobile-more-grid>a:active{transform:scale(.97);background:#f8fafc}
    .mobile-more-grid>a>span{width:38px;height:38px;border-radius:12px;background:color-mix(in srgb,var(--brand) 10%,#fff);color:var(--brand);display:grid;place-items:center;font-size:18px}
    .mobile-more-grid>a>b{font-size:11px;font-weight:700;text-align:center;line-height:1.35}

    .mobile-sheet-footer{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding-top:12px;border-top:1px solid #edf0f5}
    .mobile-sheet-footer form{margin:0}
    .mobile-sheet-footer button{width:100%;height:46px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;color:#475569;display:flex;align-items:center;justify-content:center;gap:8px;font:700 12px "Cairo",sans-serif}
    .mobile-sheet-footer .mobile-logout{color:#b42318;background:#fff7f6;border-color:#fecdca}

    /* accounting cards on phones */
    .card,.table-card,.form-section,.quick-actions-panel{border-radius:15px!important;box-shadow:0 3px 14px rgba(15,23,42,.04)!important}
    .btn{border-radius:11px}
    .form-control,.form-select{border-radius:11px}
}

@media (max-width: 390px) {
    .mobile-more-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
    .mobile-more-grid>a{min-height:80px}
    .mobile-nav-item span{font-size:9px}
    .content{padding-inline:10px}
}

/* ==========================================================
   Booking lifecycle + Driver mobile flow
   ========================================================== */
.booking-page-heading,.booking-details-heading{align-items:flex-start}
.booking-form{max-width:1060px}
.route-editor{max-width:880px}
.route-editor-row,.route-stop-row{display:flex;align-items:flex-end;gap:12px;position:relative}
.route-stops{display:grid;gap:12px;margin:12px 0}
.route-pin{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;flex:0 0 auto;margin-bottom:6px;background:#eef2ff;color:var(--brand);font-size:16px}
.route-pin.end{background:#ecfdf3;color:#16a34a}
.route-pin.stop{background:#fff7ed;color:#ea580c}
.route-stop-row:before{content:"";position:absolute;inset-inline-start:18px;top:-12px;height:12px;border-inline-start:2px dashed #d9e0ea}
.booking-status-badge{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 12px;border-radius:999px;background:#f2f4f7;color:#344054;font-size:12px;font-weight:800;white-space:nowrap;border:1px solid #e4e7ec}
.status-new{background:#f8fafc;color:#475467}.status-confirmed{background:#eff6ff;color:#1d4ed8}.status-assigned{background:#eef2ff;color:#4338ca}.status-driveronway{background:#fff7ed;color:#c2410c}.status-arrived{background:#fefce8;color:#a16207}.status-inprogress{background:#ecfeff;color:#0f766e}.status-completed,.status-collected{background:#ecfdf3;color:#15803d}.status-cancelled{background:#fff1f2;color:#be123c}
.booking-alert{display:flex;align-items:center;gap:9px;border-radius:14px}
.booking-flow-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:14px;margin-bottom:16px;box-shadow:var(--shadow)}
.booking-flow-scroll{display:grid;grid-template-columns:repeat(8,minmax(90px,1fr));align-items:start;overflow-x:auto;scrollbar-width:thin;padding:4px 2px 8px}
.booking-flow-step{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px;color:#98a2b3;font-size:11px;font-weight:700;min-width:90px}
.booking-flow-step:not(:last-child):after{content:"";position:absolute;top:18px;inset-inline-start:calc(50% + 22px);width:calc(100% - 44px);height:2px;background:#e4e7ec}
.booking-flow-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#f2f4f7;border:2px solid #e4e7ec;z-index:2}
.booking-flow-step.done{color:#15803d}.booking-flow-step.done .booking-flow-icon{background:#dcfce7;border-color:#86efac;color:#15803d}.booking-flow-step.done:not(:last-child):after{background:#86efac}
.booking-flow-step.active{color:var(--brand)}.booking-flow-step.active .booking-flow-icon{background:color-mix(in srgb,var(--brand) 10%,white);border-color:var(--brand);color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 8%,transparent)}
.accounting-card{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 6px 18px rgba(16,24,40,.045)}
.accounting-card-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid #eef2f6}
.accounting-card-header h2{font-size:16px;font-weight:800;margin:0;display:flex;align-items:center;gap:8px}.accounting-card-header h2 i{color:var(--brand)}
.accounting-card-header p{margin:4px 0 0;color:var(--muted);font-size:12px}
.booking-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#eef2f6;border-bottom:1px solid #eef2f6}
.booking-info-item{background:#fff;padding:16px 18px;min-height:93px;display:flex;flex-direction:column;gap:4px}
.booking-info-item>span{font-size:11px;color:#667085}.booking-info-item>strong{font-size:14px;color:var(--text)}.booking-info-item>small{font-size:11px;color:#98a2b3}.small-link{font-size:11px;text-decoration:none;color:var(--brand)}.money-value{font-size:19px!important}
.booking-route-card{margin:18px;border:1px solid #eef2f6;background:#fbfcfe;border-radius:14px;padding:16px}
.booking-route-point{display:flex;align-items:flex-start;gap:12px}.booking-route-point>div{display:flex;flex-direction:column;gap:2px}.booking-route-point small{font-size:11px;color:#98a2b3}.booking-route-point strong{font-size:14px}.route-node{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:0 0 auto;background:#eef2ff;color:var(--brand)}.route-node.stop{background:#fff7ed;color:#ea580c}.route-node.end{background:#ecfdf3;color:#16a34a}.booking-route-line{height:18px;border-inline-start:2px dashed #d5dce8;margin-inline-start:16px}.route-wait{font-size:10px;color:#b45309;background:#fffbeb;border-radius:999px;padding:3px 7px;width:max-content;margin-top:3px}.booking-note{margin:0 18px 18px;padding:12px 14px;border-radius:12px;background:#f8fafc;color:#475467;font-size:13px;display:flex;gap:9px;align-items:flex-start}
.booking-action-card{padding-bottom:16px}.next-step-box{display:flex;gap:12px;padding:18px}.next-step-number{width:38px;height:38px;border-radius:12px;background:var(--brand);color:white;display:grid;place-items:center;font-weight:800;flex:0 0 auto}.next-step-box strong{font-size:14px}.next-step-box p{font-size:12px;color:var(--muted);margin:3px 0 0}.booking-action-card>form,.booking-action-card>a,.booking-action-card>hr,.booking-action-card>.execution-summary,.booking-action-card>.driver-link-card,.booking-action-card>.alert{margin-inline:16px}.execution-summary{display:grid;gap:10px;padding:16px 0}.execution-summary>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:9px;border-bottom:1px dashed #e4e7ec}.execution-summary span{font-size:12px;color:#667085}.execution-summary strong{font-size:13px;text-align:end}.driver-link-card{border:1px solid #dbeafe;background:#f8fbff;border-radius:14px;padding:14px}.driver-link-title{font-size:12px;font-weight:800;color:#1d4ed8;margin-bottom:8px}.driver-link-input-group{display:flex;gap:7px}.driver-link-input-group input{font-size:11px;direction:ltr}.driver-link-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.driver-link-actions .btn{font-size:12px;padding:8px}
.assignment-trip-summary{padding:14px 16px}.assignment-summary-route{display:flex;flex-wrap:wrap;gap:14px}.assignment-summary-route span{display:flex;align-items:center;gap:6px;color:#475467;font-size:12px}.assignment-summary-route i{color:var(--brand)}.assignment-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.assignment-card{padding:20px}.assignment-card-icon{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;font-size:22px;margin-bottom:12px}.assignment-card-icon.internal{background:#eef2ff;color:var(--brand)}.assignment-card-icon.supplier{background:#f3f4f6;color:#111827}.assignment-card-copy h2{font-size:18px;font-weight:850;margin:0 0 4px}.assignment-card-copy p{font-size:12px;color:var(--muted);margin:0}.optional-fields{border:1px dashed #d5dce8;border-radius:12px;padding:10px 12px}.optional-fields summary{cursor:pointer;color:#475467;font-size:12px;font-weight:700}
.empty-state{padding:38px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:9px;color:#667085}.empty-state i{font-size:30px;color:#98a2b3}

/* Driver trip app */
.driver-trip-hero{background:linear-gradient(135deg,var(--brand),color-mix(in srgb,var(--brand) 68%,#111827));color:#fff;border-radius:0 0 24px 24px;padding:18px 16px 20px;margin:-14px -14px 14px;box-shadow:0 10px 24px color-mix(in srgb,var(--brand) 18%,transparent)}
.driver-trip-topline{display:flex;align-items:center;justify-content:space-between;gap:10px}.driver-trip-number{font-size:12px;font-weight:800;opacity:.9}.driver-status{display:inline-flex;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.16);font-size:10px;font-weight:800}.driver-trip-time{font-size:24px;font-weight:850;margin-top:10px;display:flex;align-items:center;gap:8px}.driver-balance{margin-top:12px;display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.12)}.driver-balance span{font-size:11px;opacity:.85}.driver-balance strong{font-size:16px}
.driver-alert{border-radius:14px;display:flex;gap:8px;align-items:center}
.driver-route-card{padding:16px}.driver-route-point{display:flex;gap:11px;align-items:flex-start}.driver-route-point>div{display:flex;flex-direction:column}.driver-route-point small{font-size:10px;color:#98a2b3}.driver-route-point strong{font-size:14px}.driver-route-node{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;flex:0 0 auto;background:#eef2ff;color:var(--brand)}.driver-route-node.stop{background:#fff7ed;color:#ea580c}.driver-route-node.end{background:#ecfdf3;color:#16a34a}.driver-route-line{height:20px;border-inline-start:2px dashed #d5dce8;margin-inline-start:16px}.driver-wait{font-size:10px;color:#b45309;margin-top:3px}.driver-customer-box{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid #eef2f6}.driver-customer-box>div:first-child{display:flex;flex-direction:column}.driver-customer-box small{font-size:10px;color:#98a2b3}.driver-contact-actions{display:flex;gap:8px}.driver-circle-action{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;text-decoration:none;background:#f2f4f7;color:var(--brand);font-size:16px}
.driver-action-card{padding:16px}.driver-section-title{font-size:13px;font-weight:850;margin-bottom:13px;display:flex;gap:7px;align-items:center}.driver-section-title i{color:var(--brand)}.driver-main-action{width:100%;min-height:54px;border-radius:14px;font-size:15px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:8px}.driver-odometer-form{display:grid;gap:10px}.driver-camera-field{position:relative;display:block;cursor:pointer}.driver-camera-field input{position:absolute;opacity:0;width:1px;height:1px}.driver-camera-field span{min-height:50px;border:1px dashed #b8c1ce;border-radius:13px;background:#f8fafc;display:flex;align-items:center;justify-content:center;gap:8px;color:#475467;font-size:13px;font-weight:700}.driver-camera-field.compact span{min-height:46px}.driver-start-reading{display:flex;justify-content:space-between;align-items:center;background:#f8fafc;border-radius:11px;padding:10px 12px;font-size:12px}.driver-complete-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px;padding:18px;color:#15803d}.driver-complete-state i{font-size:34px}.driver-complete-state span{font-size:12px;color:#667085}.driver-wait-state{text-align:center;padding:18px;color:#667085;font-size:13px}.driver-expense-details>summary{list-style:none;cursor:pointer;font-size:13px;font-weight:800;display:flex;align-items:center;gap:8px}.driver-expense-details>summary::-webkit-details-marker{display:none}.driver-expense-details>summary i{color:var(--brand)}

@media(max-width:991.98px){
    .booking-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .assignment-choice-grid{grid-template-columns:1fr}
    .booking-flow-card{padding:10px;margin-inline:-2px}.booking-flow-scroll{grid-template-columns:repeat(8,88px)}
    .booking-details-heading{align-items:center}.booking-details-heading .page-subtitle{font-size:11px}
    .accounting-card-header{padding:14px}.booking-route-card{margin:14px}.booking-note{margin:0 14px 14px}
    .driver-link-actions{grid-template-columns:1fr}
}
@media(max-width:575.98px){
    .booking-info-grid{grid-template-columns:1fr 1fr}.booking-info-item{padding:13px 12px;min-height:82px}.booking-info-item:nth-child(1),.booking-info-item:nth-child(2){grid-column:span 2}
    .booking-status-badge{font-size:10px;min-height:30px;padding:5px 9px}
    .route-editor-row,.route-stop-row{gap:8px}.route-pin{width:34px;height:34px;border-radius:10px}.stop-fields{grid-template-columns:minmax(0,1fr) 82px 42px}
    .assignment-card{padding:16px}.assignment-summary-route{gap:8px 12px}
}

/* ==========================================================
   Master data forms: Customers / Drivers / Vehicles
   ========================================================== */
.entity-page{max-width:1120px;margin:0 auto}
.entity-heading{align-items:center}
.entity-record-hint{margin-top:4px;color:var(--muted);font-size:12px;font-weight:600}
.entity-back-btn{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--border);background:#fff}
.entity-form{width:100%}
.entity-form-card{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:20px}
.entity-section-title{display:flex;align-items:center;gap:10px;padding-bottom:13px;margin-bottom:17px;border-bottom:1px solid #edf1f6;font-weight:800;font-size:15px;color:var(--text)}
.entity-section-icon{width:36px;height:36px;border-radius:10px;background:color-mix(in srgb,var(--brand) 10%,#fff);color:var(--brand);display:grid;place-items:center;font-size:16px}
.entity-notes{min-height:105px!important;resize:vertical}
.entity-form-actions{display:flex;justify-content:flex-end;align-items:center;gap:9px;margin-top:14px;padding-bottom:8px}
.entity-form-actions>.btn-light{width:44px;min-width:44px}
.entity-save-btn{min-width:150px;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.entity-switch-row{min-height:49px;border:1px solid var(--border-strong);border-radius:8px;background:#fff;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.entity-switch-row>div:first-child{display:flex;flex-direction:column;gap:2px}
.entity-switch-row strong{font-size:12px;color:#344054}
.entity-switch-row small{font-size:10px;color:#98a2b3}
.entity-switch-row .form-check-input{width:2.4em;height:1.25em;margin:0;cursor:pointer}

/* Validation: visible directly under the related field. */
.field-validation-message{display:block;min-height:18px;margin-top:5px;font-size:11px;line-height:1.35;color:#dc2626;font-weight:600}
.field-validation-message:empty{min-height:0;margin-top:0}
.field-validation-error{display:block!important;color:#dc2626!important}
.input-validation-error,.form-control.input-validation-error,.form-select.input-validation-error{
    border-color:#ef4444!important;
    background-color:#fffafa;
    box-shadow:0 0 0 .18rem rgba(239,68,68,.08)!important;
}
.input-validation-valid:not(:placeholder-shown){border-color:#cbd5e1}
.validation-summary-validation-errors{background:#fff5f5!important;border:1px solid #fecaca!important;color:#b91c1c!important}
.validation-summary-validation-errors ul{margin:0;padding-inline-start:18px}
.validation-summary-validation-errors li{margin:2px 0;font-size:12px}

@media(max-width:991.98px){
    .entity-page{max-width:none}
    .entity-form-card{padding:14px 12px;border-radius:13px}
    .entity-section-title{margin-bottom:14px;padding-bottom:11px}
    .entity-form-actions{
        position:sticky;
        bottom:76px;
        z-index:20;
        background:rgba(245,247,251,.96);
        backdrop-filter:blur(8px);
        margin-inline:-2px;
        padding:9px 2px 10px;
    }
    .entity-save-btn{flex:1;min-height:49px;font-size:14px}
    .entity-form-actions>.btn-light{height:49px;width:49px}
    .field-validation-message{font-size:11px}
}

@media(max-width:575.98px){
    .entity-form-card{padding:13px 11px}
    .entity-heading .page-title{font-size:20px}
    .entity-back-btn{width:40px;height:40px}
    .entity-switch-row{min-height:52px;border-radius:11px}
}

/* ==========================================================
   Driver Management Profile / Finance / Mobile cards
   ========================================================== */
.driver-list-page,.driver-profile-page{max-width:1280px;margin:0 auto}
.driver-list-heading{align-items:flex-end}
.driver-filter-bar{display:grid;grid-template-columns:minmax(280px,1fr) 210px 46px;gap:10px;margin:14px 0 16px}
.driver-search-box{position:relative}.driver-search-box>i{position:absolute;inset-inline-start:14px;top:50%;transform:translateY(-50%);color:#98a2b3;z-index:2}.driver-search-box .form-control{padding-inline-start:42px}
.driver-filter-submit{width:46px;height:46px;display:grid;place-items:center}
.driver-table-person,.driver-mobile-person{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;min-width:0}.driver-table-person>span:last-child,.driver-mobile-person>span:last-child{display:flex;flex-direction:column;min-width:0}.driver-table-person strong,.driver-mobile-person strong{font-size:13px;color:#172033;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.driver-table-person small,.driver-mobile-person small{font-size:10px;color:#98a2b3;margin-top:2px}
.driver-mini-avatar,.driver-mobile-avatar{width:42px;height:42px;border-radius:13px;background:#eef2ff;color:var(--brand);display:grid;place-items:center;overflow:hidden;flex:0 0 auto;font-size:18px}.driver-mini-avatar img,.driver-mobile-avatar img{width:100%;height:100%;object-fit:cover}
.driver-status-pill{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:28px;padding:5px 9px;border-radius:999px;border:1px solid transparent;font-size:10px;font-weight:800;white-space:nowrap}.driver-status-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.driver-status-pill.is-available{background:#ecfdf3;color:#15803d;border-color:#d1fadf}.driver-status-pill.is-trip{background:#eff6ff;color:#1d4ed8;border-color:#dbeafe}.driver-status-pill.is-leave{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.driver-status-pill.is-suspended{background:#fff1f2;color:#be123c;border-color:#fecdd3}
.driver-vehicle-label{display:inline-flex;align-items:center;gap:6px;color:#475467;font-size:11px;font-weight:700}
.driver-license-pill{display:inline-flex;align-items:center;padding:5px 8px;border-radius:8px;font-size:10px;font-weight:800}.driver-license-pill.ok{background:#ecfdf3;color:#15803d}.driver-license-pill.warning{background:#fff7ed;color:#b45309}.driver-license-pill.expired{background:#fff1f2;color:#be123c}
.driver-mobile-list{display:grid;gap:11px}.driver-mobile-card{background:#fff;border:1px solid var(--border);border-radius:17px;padding:14px;box-shadow:0 4px 16px rgba(15,23,42,.04)}.driver-mobile-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.driver-mobile-person{flex:1}.driver-mobile-avatar{width:48px;height:48px;border-radius:15px}.driver-mobile-person strong{font-size:14px}.driver-mobile-vehicle{display:flex;align-items:center;gap:7px;margin:12px 0 0;padding:9px 10px;background:#f8fafc;border-radius:11px;color:#475467;font-size:11px;font-weight:700}.driver-mobile-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:10px}.driver-mobile-metrics>div{background:#f8fafc;border-radius:11px;padding:9px 8px;display:flex;flex-direction:column;gap:3px;min-width:0}.driver-mobile-metrics small{font-size:9px;color:#98a2b3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.driver-mobile-metrics strong{font-size:13px;color:#172033}.driver-mobile-alert{margin-top:10px;padding:9px 10px;border-radius:11px;display:flex;align-items:center;gap:7px;font-size:10px;font-weight:700}.driver-mobile-alert.warning{background:#fff7ed;color:#b45309}.driver-mobile-alert.danger{background:#fff1f2;color:#be123c}.driver-open-profile{margin-top:11px;width:100%;display:flex;align-items:center;justify-content:center;gap:8px;min-height:43px}

/* Driver editor */
.driver-form-grid{display:grid;gap:18px}.entity-subsection{border-bottom:1px solid #edf1f6;padding-bottom:18px}.entity-subsection:last-child{border-bottom:0}.driver-file-field{position:relative;min-height:48px;border:1px dashed #b8c1ce;border-radius:12px;background:#f8fafc;color:#475467;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;cursor:pointer;font-size:11px;font-weight:700;overflow:hidden}.driver-file-field:hover{border-color:var(--brand);color:var(--brand);background:color-mix(in srgb,var(--brand) 4%,#fff)}.driver-file-field input{position:absolute;inset:0;opacity:0;cursor:pointer}.driver-file-field.wide{min-height:52px}.driver-upload-preview{width:92px;height:92px;border-radius:18px;overflow:hidden;border:1px solid var(--border);background:#f8fafc;margin-bottom:9px}.driver-upload-preview img{width:100%;height:100%;object-fit:cover}.driver-document-link{display:inline-flex;align-items:center;gap:7px;text-decoration:none;padding:8px 10px;border-radius:10px;background:#f8fafc;color:var(--brand);font-size:11px;font-weight:700;margin-bottom:8px}.driver-compensation-help{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:11px;background:#f8fafc;color:#667085;font-size:10px;line-height:1.6}.driver-compensation-help i{color:var(--brand);margin-top:2px}

/* Driver profile */
.driver-profile-hero{background:#fff;border:1px solid var(--border);border-radius:18px;padding:18px 20px;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.driver-profile-main{display:flex;align-items:center;gap:14px;min-width:0}.driver-profile-avatar{width:76px;height:76px;border-radius:22px;background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 13%,#fff),#f8fafc);border:1px solid #e7ecf3;color:var(--brand);display:grid;place-items:center;overflow:hidden;flex:0 0 auto;font-size:32px}.driver-profile-avatar img{width:100%;height:100%;object-fit:cover}.driver-profile-name{display:flex;flex-direction:column;gap:5px;min-width:0}.driver-profile-name h1{font-size:22px;font-weight:850;margin:0;color:#172033}.driver-profile-name>a,.driver-profile-name>span{font-size:11px;color:#667085;text-decoration:none;display:flex;align-items:center;gap:6px}.driver-profile-name>a:hover{color:var(--brand)}.driver-profile-actions{display:flex;gap:8px;flex:0 0 auto}.driver-profile-actions .btn{display:flex;align-items:center;gap:6px}
.driver-license-alert{border-radius:13px;padding:10px 13px;margin-bottom:14px;display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700}.driver-license-alert.warning{background:#fff7ed;color:#b45309;border:1px solid #fed7aa}.driver-license-alert.danger{background:#fff1f2;color:#be123c;border:1px solid #fecdd3}
.driver-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}.driver-stat-card{background:#fff;border:1px solid var(--border);border-radius:15px;padding:13px 14px;box-shadow:0 3px 12px rgba(15,23,42,.035);display:flex;flex-direction:column;gap:8px;min-width:0}.driver-stat-card>span{display:flex;align-items:center;gap:6px;color:#7b8798;font-size:10px;font-weight:700}.driver-stat-card>span i{color:var(--brand)}.driver-stat-card>strong{font-size:20px;color:#172033;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.driver-stat-card strong small{font-size:9px;color:#98a2b3;font-weight:700}.driver-stat-card.highlight{background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 8%,#fff),#fff);border-color:color-mix(in srgb,var(--brand) 24%,#e5e7eb)}
.driver-profile-panel{background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}.driver-profile-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;border-bottom:1px solid #edf1f6;padding:0 12px;scrollbar-width:none}.driver-profile-tabs::-webkit-scrollbar{display:none}.driver-profile-tabs .nav-item{flex:0 0 auto}.driver-profile-tabs .nav-link{border:0;background:transparent;color:#7b8798;border-bottom:2px solid transparent;border-radius:0;padding:14px 13px 12px;font:700 11px "Cairo",sans-serif;display:flex;align-items:center;gap:6px;white-space:nowrap}.driver-profile-tabs .nav-link i{font-size:14px}.driver-profile-tabs .nav-link.active{color:var(--brand);border-bottom-color:var(--brand);background:transparent}.driver-profile-content{padding:18px}.driver-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.driver-info-card{border:1px solid #edf1f6;border-radius:14px;padding:15px}.driver-info-card h2{font-size:13px;font-weight:850;margin:0 0 12px;display:flex;align-items:center;gap:7px;color:#344054}.driver-info-card h2 i{color:var(--brand)}.driver-info-list{margin:0;display:grid;gap:0}.driver-info-list>div{display:grid;grid-template-columns:minmax(120px,.85fr) 1.15fr;gap:12px;padding:9px 0;border-bottom:1px dashed #edf1f6}.driver-info-list>div:last-child{border-bottom:0}.driver-info-list dt{font-size:10px;color:#98a2b3;font-weight:700}.driver-info-list dd{margin:0;font-size:11px;color:#344054;font-weight:700;overflow-wrap:anywhere}.driver-info-list code{font-size:9px;color:#475467;overflow-wrap:anywhere}.driver-note-card{margin-top:14px;background:#f8fafc;border-radius:13px;padding:13px 14px}.driver-note-card strong{display:flex;align-items:center;gap:7px;font-size:11px}.driver-note-card p{margin:7px 0 0;color:#667085;font-size:11px;line-height:1.8;white-space:pre-wrap}
.driver-tab-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.driver-tab-toolbar>div{display:flex;flex-direction:column;gap:3px}.driver-tab-toolbar h2{font-size:14px;font-weight:850;margin:0}.driver-tab-toolbar span{font-size:10px;color:#98a2b3}.driver-tab-toolbar .btn{font-size:10px;display:flex;align-items:center;gap:5px}.driver-tab-empty{padding:34px 12px;text-align:center;color:#98a2b3;font-size:11px;background:#f8fafc;border-radius:13px}.driver-responsive-table{overflow-x:auto;border:1px solid #edf1f6;border-radius:13px}.driver-responsive-table table{min-width:720px}.driver-responsive-table thead th{font-size:9px;color:#7b8798;background:#f8fafc;border-bottom-color:#edf1f6;white-space:nowrap}.driver-responsive-table tbody td{font-size:10px;color:#475467;vertical-align:middle}.driver-route-text{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;max-width:320px;overflow:hidden;text-overflow:ellipsis}.driver-finance-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:16px}.driver-finance-summary>div{border:1px solid #edf1f6;border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:5px;background:#fff}.driver-finance-summary span{font-size:9px;color:#98a2b3}.driver-finance-summary strong{font-size:13px}.driver-finance-summary .total{background:color-mix(in srgb,var(--brand) 6%,#fff);border-color:color-mix(in srgb,var(--brand) 20%,#e5e7eb)}
.driver-documents-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.driver-document-card{border:1px solid #edf1f6;border-radius:14px;padding:14px}.driver-document-card h3{font-size:12px;font-weight:850;margin:0 0 10px}.driver-document-card>a{display:block;height:270px;border-radius:12px;overflow:hidden;background:#f8fafc}.driver-document-card img{width:100%;height:100%;object-fit:contain}.driver-document-empty{height:200px;border-radius:12px;background:#f8fafc;color:#98a2b3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.driver-document-empty i{font-size:28px}.driver-document-empty span{font-size:10px}.driver-modal{border:0;border-radius:18px;overflow:hidden}.driver-modal .modal-header,.driver-modal .modal-footer{border-color:#edf1f6}.driver-modal .modal-title{font-size:14px;font-weight:850}

@media(max-width:1199.98px){.driver-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.driver-finance-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:991.98px){
    .driver-filter-bar{grid-template-columns:1fr 150px 44px}.driver-profile-hero{padding:14px}.driver-profile-avatar{width:62px;height:62px;border-radius:18px}.driver-profile-name h1{font-size:18px}.driver-profile-actions .btn-primary{font-size:0;width:42px;height:42px;display:grid;place-items:center}.driver-profile-actions .btn-primary i{font-size:14px}.driver-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.driver-stat-card.highlight{grid-column:span 2}.driver-profile-content{padding:13px}.driver-overview-grid{grid-template-columns:1fr}.driver-finance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.driver-documents-grid{grid-template-columns:1fr}.driver-document-card>a{height:220px}
}
@media(max-width:575.98px){
    .driver-list-heading{align-items:center}.driver-list-heading .page-subtitle{display:none}.driver-list-heading .btn{width:42px;height:42px;font-size:0;display:grid;place-items:center;padding:0}.driver-list-heading .btn i{font-size:17px}.driver-filter-bar{grid-template-columns:1fr 44px}.driver-filter-bar>.form-select{grid-column:1/-1;grid-row:2}.driver-filter-submit{grid-column:2;grid-row:1}.driver-mobile-card{border-radius:15px}.driver-profile-hero{align-items:flex-start}.driver-profile-main{align-items:flex-start;gap:10px}.driver-profile-avatar{width:54px;height:54px;border-radius:16px}.driver-profile-name h1{font-size:16px;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.driver-profile-name>a,.driver-profile-name>span{font-size:9px}.driver-profile-actions{gap:5px}.driver-profile-actions>.btn-light{display:none}.driver-stat-grid{gap:8px}.driver-stat-card{padding:11px}.driver-stat-card>strong{font-size:17px}.driver-profile-tabs{padding:0 5px}.driver-profile-tabs .nav-link{padding:12px 10px}.driver-profile-tabs .nav-link span{font-size:9px}.driver-profile-content{padding:11px}.driver-info-card{padding:12px}.driver-info-list>div{grid-template-columns:1fr;gap:3px;padding:8px 0}.driver-tab-toolbar{align-items:flex-start}.driver-tab-toolbar .btn{min-height:40px}.driver-finance-summary{grid-template-columns:1fr 1fr;gap:6px}.driver-finance-summary>div{padding:9px}.driver-finance-summary .total{grid-column:span 2}.driver-document-card>a{height:190px}.driver-form-grid{gap:13px}.entity-subsection{padding-bottom:13px}
}

/* ==========================================================
   ERP / Accounting dashboard pattern v3
   Pattern inspired by modern accounting systems, while keeping
   each limousine company's own branding colors.
   ========================================================== */
.erp-shell{background:#f7f9fc}
.erp-sidebar{width:238px;background:#fff;color:#334155;border-inline-end:1px solid #e8edf4;box-shadow:none;padding:0;overflow:visible}
.erp-sidebar-brand{height:84px;display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid #edf1f6;background:#fff}
.erp-brand-logo{width:46px;height:46px;display:grid;place-items:center;flex:0 0 46px}
.erp-brand-logo img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}
.erp-brand-logo span{width:42px;height:42px;border-radius:10px;background:color-mix(in srgb,var(--brand) 10%,#fff);color:var(--brand);display:grid;place-items:center;font-size:20px}
.erp-brand-copy{min-width:0;display:flex;flex-direction:column;line-height:1.3}
.erp-brand-copy strong{font-size:15px;font-weight:800;color:#172033;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.erp-brand-copy small{font-size:9px;color:#98a2b3;margin-top:2px}
.erp-sidebar-nav{padding:10px 9px 30px!important;gap:2px!important;overflow-y:auto;height:calc(100vh - 84px)}
.erp-nav-caption{font-size:9px!important;color:#98a2b3!important;font-weight:700!important;padding:15px 11px 6px!important;margin:0!important}
.erp-sidebar-nav a{min-height:38px!important;border-radius:6px!important;color:#667085!important;background:transparent!important;font-size:12px!important;font-weight:600!important;padding:8px 10px!important;border:0!important;box-shadow:none!important}
.erp-sidebar-nav a i{font-size:14px!important;color:#98a2b3!important;width:22px!important}
.erp-sidebar-nav a:hover{background:#f5f8fc!important;color:#344054!important}
.erp-sidebar-nav a.active{background:var(--brand)!important;color:#fff!important;box-shadow:0 4px 12px color-mix(in srgb,var(--brand) 22%,transparent)!important}
.erp-sidebar-nav a.active i{color:#fff!important}
.erp-sidebar-collapse{position:absolute;inset-inline-end:-15px;top:48%;width:32px;height:32px;border-radius:50%;border:1px solid #e2e8f0;background:#fff;color:#667085;display:grid;place-items:center;box-shadow:0 4px 14px rgba(15,23,42,.10);z-index:10}
.erp-main{width:calc(100% - 238px)!important;margin-inline-start:238px!important;background:#f7f9fc;min-height:100vh}
.erp-topbar{height:72px!important;background:#fff!important;border-bottom:1px solid #e9eef5!important;box-shadow:none!important;padding:0 20px!important;display:flex;align-items:center;justify-content:flex-start}
.erp-topbar-mobile-brand{display:none}
.erp-topbar-tools{display:flex;align-items:center;gap:10px;margin-inline-start:auto}
.erp-menu-search{width:230px;height:40px;border:1px solid #e4eaf2;border-radius:8px;align-items:center;gap:7px;padding:0 10px;background:#fbfcfe;color:#98a2b3}
.erp-menu-search input{border:0;outline:0;background:transparent;width:100%;font-family:inherit;font-size:12px;color:#344054}
.erp-icon-button{width:40px;height:40px;border:1px solid #e4eaf2;border-radius:8px;background:#fff;color:#667085;display:grid;place-items:center;text-decoration:none;position:relative}
.erp-icon-button>span{position:absolute;width:7px;height:7px;border-radius:50%;background:#ef4444;top:6px;inset-inline-end:6px;border:2px solid #fff}
.erp-user-chip{height:44px;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e4eaf2;border-radius:8px;padding:4px 9px;color:#344054;min-width:150px}
.erp-user-chip.dropdown-toggle:after{margin-inline-start:auto}
.erp-user-avatar{width:31px;height:31px;border-radius:50%;background:color-mix(in srgb,var(--brand) 10%,#fff);color:var(--brand);display:grid;place-items:center}
.erp-user-copy{display:flex;flex-direction:column;text-align:start;min-width:0;line-height:1.25}
.erp-user-copy strong{font-size:11px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.erp-user-copy small{font-size:9px;color:#98a2b3}
.erp-user-menu{min-width:190px;border:1px solid #e6ebf2;box-shadow:0 12px 30px rgba(15,23,42,.10);border-radius:9px;padding:6px}
.erp-user-menu .dropdown-item{border-radius:6px;font-size:12px;padding:8px 9px;display:flex;align-items:center;gap:8px}
.erp-content{max-width:none!important;padding:24px 28px 36px!important}

.erp-page-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}
.erp-page-heading h1{font-size:25px;font-weight:800;color:#172033;margin:0 0 5px}
.erp-page-heading p{font-size:11px;color:#98a2b3;margin:0}
.erp-heading-action{height:40px;border-radius:7px!important;padding:0 14px!important;display:inline-flex;align-items:center;gap:7px;font-size:12px!important}
.erp-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.erp-kpi-card{background:#fff;border:1px solid #e8edf4;border-radius:11px;padding:17px 18px;display:flex;align-items:flex-start;gap:14px;min-height:120px;box-shadow:0 3px 12px rgba(15,23,42,.035)}
.erp-kpi-icon{width:44px;height:44px;border-radius:9px;background:color-mix(in srgb,var(--brand) 8%,#fff);color:var(--brand);display:grid;place-items:center;font-size:18px;flex:0 0 auto}
.erp-kpi-body{display:flex;flex-direction:column;min-width:0}
.erp-kpi-body>span{font-size:10px;color:var(--brand);font-weight:700;margin-bottom:7px}
.erp-kpi-body strong{font-size:24px;line-height:1.1;color:#202939;font-weight:800;white-space:nowrap}
.erp-kpi-body strong em{font-style:normal;font-size:12px;font-weight:700;color:#667085}
.erp-kpi-body small{font-size:9px;color:#98a2b3;margin-top:8px}
.erp-dashboard-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,.82fr);gap:14px;align-items:start}
.erp-card{background:#fff;border:1px solid #e8edf4;border-radius:11px;box-shadow:0 3px 12px rgba(15,23,42,.03);overflow:hidden}
.erp-card-head{min-height:66px;padding:15px 18px;border-bottom:1px solid #eef2f6;display:flex;align-items:center;justify-content:space-between;gap:12px}
.erp-card-head.compact{min-height:auto;padding-bottom:10px}
.erp-card-head h2{font-size:14px;font-weight:800;color:#344054;margin:0 0 3px}
.erp-card-head p{font-size:9px;color:#98a2b3;margin:0}
.erp-link-btn{height:30px;border:1px solid color-mix(in srgb,var(--brand) 28%,#dbe3ee);color:var(--brand);border-radius:6px;padding:0 9px;display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:700;text-decoration:none;background:#fff}
.erp-table-wrap{overflow-x:auto}
.erp-table{width:100%;border-collapse:collapse;min-width:760px}
.erp-table th{height:38px;padding:8px 14px;background:#fbfcfe;color:#98a2b3;font-size:9px;font-weight:700;border-bottom:1px solid #eef2f6;white-space:nowrap}
.erp-table td{padding:12px 14px;border-bottom:1px solid #f0f3f7;color:#475467;font-size:10px;vertical-align:middle}
.erp-table tbody tr:last-child td{border-bottom:0}
.erp-table tbody tr:hover{background:#fbfdff}
.erp-table td>b{display:block;color:#475467;font-size:10px;font-weight:700}
.erp-table td small{display:block;color:#98a2b3;font-size:8px;margin-top:3px}
.erp-trip-number{display:inline-block;padding:4px 7px;border-radius:10px;background:color-mix(in srgb,var(--brand) 9%,#fff);color:var(--brand);font-weight:800;font-size:9px;text-decoration:none}
.erp-route-text{display:flex;align-items:center;gap:5px;max-width:270px}
.erp-route-text span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:115px}
.erp-route-text i{color:#c0c8d4;font-size:10px;flex:0 0 auto}
.erp-fulfillment{display:inline-flex;align-items:center;gap:5px;font-size:9px;color:#667085}
.erp-status{display:inline-flex;align-items:center;justify-content:center;min-height:23px;padding:3px 8px;border-radius:12px;font-size:8px;font-weight:800;white-space:nowrap}
.erp-status.is-success{color:#15803d;background:#ecfdf3}
.erp-status.is-warning{color:#b54708;background:#fffaeb}
.erp-status.is-danger{color:#b42318;background:#fef3f2}
.erp-status.is-info{color:#175cd3;background:#eff8ff}
.erp-status.is-neutral{color:#475467;background:#f2f4f7}
.erp-row-action{width:26px;height:26px;border:1px solid #e4eaf2;border-radius:6px;display:grid;place-items:center;color:#667085;text-decoration:none;background:#fff}
.erp-empty{text-align:center!important;padding:34px!important;color:#98a2b3!important}
.erp-dashboard-side{display:grid;gap:14px}
.erp-summary-card{padding-bottom:6px}
.erp-summary-card .erp-card-head{border-bottom:0}
.erp-progress-item{padding:9px 18px 12px}
.erp-progress-item>div:first-child{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#667085;margin-bottom:7px}
.erp-progress-item>div:first-child b{color:var(--brand);font-size:10px}
.erp-progress{height:6px;border-radius:10px;background:#eef2f6;overflow:hidden}
.erp-progress i{display:block;height:100%;border-radius:10px;background:var(--brand)}
.erp-progress-item small{display:block;margin-top:6px;color:#98a2b3;font-size:8px}
.erp-mini-stats{padding:4px 14px}
.erp-mini-stats a{min-height:52px;border-bottom:1px solid #eef2f6;display:flex;align-items:center;justify-content:space-between;color:#475467;text-decoration:none;font-size:10px}
.erp-mini-stats a:last-child{border-bottom:0}
.erp-mini-stats a span{display:flex;align-items:center;gap:8px}
.erp-mini-stats a span i{width:30px;height:30px;border-radius:7px;background:#f4f7fb;color:var(--brand);display:grid;place-items:center}
.erp-mini-stats a b{font-size:13px;color:#344054}
.erp-quick-card .erp-card-head{border-bottom:0}
.erp-quick-list{padding:0 14px 8px}
.erp-quick-list a{min-height:43px;border-top:1px solid #eef2f6;display:flex;align-items:center;justify-content:space-between;text-decoration:none;color:#667085;font-size:10px}
.erp-quick-list a span{display:flex;align-items:center;gap:8px}
.erp-quick-list a span i{color:var(--brand)}
.erp-mobile-trip-list{display:none}

body.sidebar-collapsed .erp-sidebar{width:72px}
body.sidebar-collapsed .erp-main{width:calc(100% - 72px)!important;margin-inline-start:72px!important}
body.sidebar-collapsed .erp-brand-copy,body.sidebar-collapsed .erp-nav-caption,body.sidebar-collapsed .erp-sidebar-nav a span{display:none!important}
body.sidebar-collapsed .erp-sidebar-brand{justify-content:center;padding-inline:10px}
body.sidebar-collapsed .erp-sidebar-nav a{justify-content:center!important;padding-inline:0!important}
body.sidebar-collapsed .erp-sidebar-nav a i{width:auto!important;font-size:17px!important}
body.sidebar-collapsed .erp-sidebar-collapse i{transform:rotate(180deg)}

@media(max-width:1199.98px){
    .erp-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .erp-dashboard-grid{grid-template-columns:1fr}
    .erp-dashboard-side{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(max-width:991.98px){
    .erp-sidebar{display:none!important}
    .erp-main{width:100%!important;margin-inline-start:0!important}
    .erp-topbar{height:60px!important;padding:0 14px!important;justify-content:space-between}
    .erp-topbar-mobile-brand{display:flex;align-items:center;gap:8px;min-width:0}
    .erp-mobile-logo{width:34px;height:34px;border-radius:8px;background:color-mix(in srgb,var(--brand) 9%,#fff);color:var(--brand);display:grid;place-items:center;overflow:hidden;flex:0 0 34px}
    .erp-mobile-logo img{width:100%;height:100%;object-fit:contain}
    .erp-topbar-mobile-brand strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}
    .erp-user-chip{min-width:0;width:40px;height:40px;padding:0;justify-content:center;border:0;background:#f7f9fc}
    .erp-user-copy,.erp-user-chip.dropdown-toggle:after{display:none}
    .erp-icon-button{width:38px;height:38px}
    .erp-content{padding:16px 13px 96px!important}
    .erp-page-heading{margin-bottom:14px}
    .erp-page-heading h1{font-size:22px}
    .erp-page-heading p{font-size:10px;line-height:1.6}
    .erp-heading-action{width:42px;height:42px;padding:0!important;justify-content:center;border-radius:10px!important}
    .erp-heading-action span{display:none}
    .erp-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
    .erp-kpi-card{min-height:106px;padding:13px 12px;gap:10px;flex-direction:column}
    .erp-kpi-icon{width:38px;height:38px;font-size:16px}
    .erp-kpi-body>span{font-size:9px;margin-bottom:3px}
    .erp-kpi-body strong{font-size:20px}
    .erp-kpi-body small{font-size:8px;margin-top:4px}
    .erp-dashboard-grid{display:block}
    .erp-dashboard-side{display:grid;grid-template-columns:1fr;margin-top:11px}
    .erp-table-wrap{display:none}
    .erp-mobile-trip-list{display:grid;padding:0 12px 12px;gap:9px}
    .erp-mobile-trip{border:1px solid #edf1f6;border-radius:9px;padding:11px;text-decoration:none;color:#475467;background:#fff}
    .erp-mobile-trip-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
    .erp-mobile-trip-top>strong{color:var(--brand);font-size:10px}
    .erp-mobile-route{display:grid;gap:4px;margin:11px 0;color:#344054;font-size:11px;font-weight:700}
    .erp-mobile-route i{color:#c0c8d4;font-size:9px}
    .erp-mobile-trip-meta{display:flex;flex-wrap:wrap;gap:8px;color:#98a2b3;font-size:8px}
    .erp-mobile-trip-meta span{display:flex;align-items:center;gap:4px}
    .erp-card-head{min-height:58px;padding:13px}
    .erp-card-head h2{font-size:13px}
}

@media(max-width:480px){
    .erp-kpi-grid{grid-template-columns:1fr 1fr}
    .erp-kpi-card{min-height:102px}
    .erp-kpi-body strong{font-size:18px}
}

/* ==========================================================
   Full Vehicle Management
   ========================================================== */
.vehicle-edit-page{max-width:1180px}
.vehicle-form-sections{display:grid;gap:14px}
.vehicle-form-block{background:#fff;border:1px solid var(--border);border-radius:15px;box-shadow:var(--shadow);padding:18px}
.vehicle-form-block .entity-section-title>div{display:flex;flex-direction:column;gap:2px}
.vehicle-form-block .entity-section-title small{font-size:10px;font-weight:500;color:#98a2b3}
.vehicle-photo-upload{min-height:100px;border:1.5px dashed #cbd5e1;border-radius:14px;background:#f8fafc;display:flex;align-items:center;justify-content:center;gap:13px;padding:18px;cursor:pointer;color:#475467;transition:.18s ease}
.vehicle-photo-upload:hover{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 4%,#fff)}
.vehicle-photo-upload input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.vehicle-photo-upload-icon{width:46px;height:46px;border-radius:14px;background:color-mix(in srgb,var(--brand) 10%,#fff);color:var(--brand);display:grid;place-items:center;font-size:21px}
.vehicle-photo-upload>span:last-child{display:flex;flex-direction:column;gap:3px}
.vehicle-photo-upload strong{font-size:13px}.vehicle-photo-upload small{font-size:10px;color:#98a2b3}

.vehicle-list-page{max-width:1450px;margin:0 auto}
.vehicle-list-heading{align-items:center}
.vehicle-filter-bar{display:grid;grid-template-columns:minmax(260px,1fr) 220px 44px;gap:9px;background:#fff;border:1px solid var(--border);border-radius:14px;padding:10px;margin-bottom:14px;box-shadow:0 3px 14px rgba(15,23,42,.035)}
.vehicle-search-field{position:relative}.vehicle-search-field>i{position:absolute;inset-inline-start:13px;top:50%;transform:translateY(-50%);color:#98a2b3;z-index:2}.vehicle-search-field .form-control{padding-inline-start:38px}
.vehicle-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.vehicle-list-card{display:block;background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden;text-decoration:none!important;color:var(--text)!important;box-shadow:0 4px 15px rgba(15,23,42,.04);transition:.18s ease}
.vehicle-list-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(15,23,42,.08);border-color:#dbe2ec}
.vehicle-card-media{height:150px;background:#f3f6fa;position:relative;overflow:hidden}.vehicle-card-media img{width:100%;height:100%;object-fit:cover}.vehicle-card-placeholder{width:100%;height:100%;display:grid;place-items:center;color:#94a3b8;font-size:50px;background:linear-gradient(135deg,#f8fafc,#eef2f7)}
.vehicle-status-pill{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;font-size:10px;font-weight:800;white-space:nowrap;background:#f2f4f7;color:#475467;border:1px solid rgba(0,0,0,.04)}
.vehicle-card-media>.vehicle-status-pill{position:absolute;top:10px;inset-inline-end:10px;box-shadow:0 3px 12px rgba(15,23,42,.08)}
.vehicle-status-pill.status-available{background:#ecfdf3;color:#15803d}.vehicle-status-pill.status-ontrip{background:#eff6ff;color:#1d4ed8}.vehicle-status-pill.status-maintenance{background:#fff7ed;color:#c2410c}.vehicle-status-pill.status-suspended{background:#fff1f2;color:#be123c}
.vehicle-card-body{padding:14px}.vehicle-card-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.vehicle-card-title-row>div{display:flex;flex-direction:column;gap:2px}.vehicle-card-title-row strong{font-size:17px}.vehicle-card-title-row small{font-size:11px;color:#667085}.vehicle-type-chip{font-size:9px;font-weight:800;padding:5px 8px;border-radius:8px;background:#f2f4f7;color:#475467}
.vehicle-card-metrics{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:13px;padding-top:12px;border-top:1px solid #eef2f6}.vehicle-card-metrics span{display:flex;align-items:center;gap:5px;color:#667085;font-size:10px}.vehicle-card-metrics i{color:var(--brand);font-size:12px}.vehicle-card-metrics b{color:#344054;font-size:11px}
.vehicle-card-alerts{display:grid;gap:5px;margin-top:10px}.vehicle-card-alerts span{display:flex;align-items:center;gap:5px;font-size:9px;font-weight:700;padding:5px 7px;border-radius:8px}.vehicle-card-alerts .warning{background:#fffaeb;color:#b54708}.vehicle-card-alerts .danger{background:#fef3f2;color:#b42318}

.vehicle-profile-page{max-width:1450px;margin:0 auto}.vehicle-profile-hero{padding:16px;display:flex;gap:16px;align-items:center}.vehicle-profile-photo{width:150px;height:105px;border-radius:14px;overflow:hidden;background:#f2f4f7;flex:0 0 auto}.vehicle-profile-photo img{width:100%;height:100%;object-fit:cover}.vehicle-profile-placeholder{width:100%;height:100%;display:grid;place-items:center;color:#94a3b8;font-size:42px}.vehicle-profile-main{flex:1;min-width:0}.vehicle-profile-title-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.vehicle-profile-kicker{font-size:10px;color:var(--brand);font-weight:800;margin-bottom:2px}.vehicle-profile-title-row h1{font-size:26px;margin:0;font-weight:900;color:#172033}.vehicle-profile-title-row p{margin:3px 0 0;color:#667085;font-size:12px}.vehicle-profile-actions{display:flex;gap:8px;margin-top:14px}.vehicle-profile-actions .btn{display:flex;gap:7px;align-items:center}
.vehicle-alert{display:flex;align-items:center;gap:8px;margin-top:10px;padding:9px 12px;border-radius:11px;font-size:11px;font-weight:700}.vehicle-alert.warning{background:#fffaeb;color:#b54708;border:1px solid #fedf89}.vehicle-alert.danger{background:#fef3f2;color:#b42318;border:1px solid #fecdca}
.vehicle-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:12px}.vehicle-stat-card{background:#fff;border:1px solid var(--border);border-radius:13px;padding:13px;box-shadow:0 3px 12px rgba(15,23,42,.03);display:flex;flex-direction:column;gap:8px}.vehicle-stat-card>span{font-size:10px;color:#667085;display:flex;align-items:center;gap:6px}.vehicle-stat-card>span i{color:var(--brand)}.vehicle-stat-card>strong{font-size:15px;color:#101828}.vehicle-stat-card small{font-size:9px;color:#98a2b3}
.vehicle-profile-section{padding:16px}.vehicle-section-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #eef2f6;padding-bottom:11px;margin-bottom:13px}.vehicle-section-head h2{font-size:14px;font-weight:850;margin:0;display:flex;align-items:center;gap:7px}.vehicle-section-head h2 i{color:var(--brand)}.vehicle-section-head p{font-size:9px;color:#98a2b3;margin:3px 0 0}
.vehicle-data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid #eef2f6;border-radius:12px;overflow:hidden}.vehicle-data-grid>div{padding:11px 12px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #eef2f6}.vehicle-data-grid>div:nth-child(odd){border-inline-end:1px solid #eef2f6}.vehicle-data-grid>div:nth-last-child(-n+2){border-bottom:0}.vehicle-data-grid span{font-size:10px;color:#667085}.vehicle-data-grid strong{font-size:11px;color:#344054;text-align:end;overflow-wrap:anywhere}
.vehicle-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.vehicle-gallery-item{height:130px;border-radius:12px;overflow:hidden;position:relative;background:#f2f4f7;border:2px solid transparent}.vehicle-gallery-item.primary{border-color:var(--brand)}.vehicle-gallery-item img{width:100%;height:100%;object-fit:cover}.primary-photo-badge{position:absolute;top:7px;inset-inline-start:7px;background:rgba(15,23,42,.8);color:#fff;border-radius:7px;padding:4px 6px;font-size:8px;display:flex;gap:4px;align-items:center}.vehicle-gallery-actions{position:absolute;bottom:7px;inset-inline-end:7px;display:flex;gap:5px}.vehicle-gallery-actions form{margin:0}.vehicle-gallery-actions button{width:30px;height:30px;border:0;border-radius:8px;background:rgba(255,255,255,.92);color:#475467;display:grid;place-items:center}.vehicle-gallery-actions button.danger{color:#b42318}.vehicle-gallery-empty{grid-column:1/-1;min-height:100px;border:1px dashed #d0d5dd;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#98a2b3;font-size:11px}.vehicle-gallery-empty i{font-size:24px}
.vehicle-inline-upload{display:flex;align-items:center;gap:8px}.vehicle-inline-upload label{flex:1;min-height:40px;border:1px dashed #cbd5e1;border-radius:10px;display:flex;align-items:center;padding:0 12px;cursor:pointer;background:#f8fafc}.vehicle-inline-upload label input{position:absolute;opacity:0;width:1px;height:1px}.vehicle-inline-upload label span{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:700;color:#475467}.vehicle-inline-upload label i{color:var(--brand)}
.vehicle-care-links{display:grid;gap:7px}.vehicle-care-links>a{min-height:44px;border:1px solid #eef2f6;border-radius:10px;padding:0 11px;display:flex;align-items:center;justify-content:space-between;text-decoration:none;color:#344054;background:#fff}.vehicle-care-links>a>span{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700}.vehicle-care-links>a>span i{width:30px;height:30px;border-radius:9px;background:color-mix(in srgb,var(--brand) 8%,#fff);color:var(--brand);display:grid;place-items:center}.vehicle-care-links>a>i{font-size:10px;color:#98a2b3}
.vehicle-timeline{display:grid;gap:0}.vehicle-timeline-item{position:relative;display:flex;gap:9px;padding:5px 0 12px}.vehicle-timeline-item:not(:last-child):before{content:"";position:absolute;inset-inline-start:5px;top:16px;bottom:-2px;border-inline-start:1px solid #e4e7ec}.vehicle-timeline-dot{width:11px;height:11px;border-radius:50%;background:var(--brand);margin-top:3px;z-index:1;flex:0 0 auto}.vehicle-timeline-item>div{display:flex;flex-direction:column}.vehicle-timeline-item strong{font-size:11px}.vehicle-timeline-item small{font-size:8px;color:#98a2b3;margin-top:2px}.vehicle-notes-text{margin:0;color:#475467;font-size:11px;line-height:1.9;white-space:pre-wrap}.vehicle-profile-table{font-size:10px}.vehicle-profile-table thead th{font-size:9px;color:#667085;font-weight:750;background:#f8fafc}.vehicle-profile-table td{padding-block:9px}.vehicle-route-text{max-width:300px;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vehicle-route-text i{font-size:9px;margin:0 4px;color:#98a2b3}

@media(max-width:1199.98px){.vehicle-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vehicle-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:767.98px){
    .vehicle-filter-bar{grid-template-columns:1fr 135px 42px;padding:8px}.vehicle-card-grid{grid-template-columns:1fr}.vehicle-card-media{height:135px}.vehicle-profile-hero{align-items:flex-start}.vehicle-profile-photo{width:105px;height:85px}.vehicle-profile-title-row h1{font-size:21px}.vehicle-profile-actions{flex-wrap:wrap}.vehicle-profile-actions .btn{font-size:10px}.vehicle-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vehicle-data-grid{grid-template-columns:1fr}.vehicle-data-grid>div:nth-child(odd){border-inline-end:0}.vehicle-data-grid>div:nth-last-child(-n+2){border-bottom:1px solid #eef2f6}.vehicle-data-grid>div:last-child{border-bottom:0}.vehicle-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.vehicle-gallery-item{height:115px}.vehicle-inline-upload{align-items:stretch}.vehicle-inline-upload label{min-height:44px}
}
@media(max-width:575.98px){
    .vehicle-list-heading{align-items:center}.vehicle-list-heading .btn{font-size:10px;padding:8px 10px}.vehicle-filter-bar{grid-template-columns:1fr 42px}.vehicle-filter-bar select{grid-column:1/2;grid-row:2}.vehicle-filter-bar>button{grid-column:2;grid-row:2}.vehicle-profile-hero{padding:12px;gap:11px}.vehicle-profile-photo{width:88px;height:76px;border-radius:11px}.vehicle-profile-title-row{display:block}.vehicle-profile-title-row>.vehicle-status-pill{margin-top:7px}.vehicle-profile-title-row h1{font-size:19px}.vehicle-profile-title-row p{font-size:10px}.vehicle-stat-card{padding:11px}.vehicle-stat-card>strong{font-size:13px}.vehicle-profile-section{padding:12px}.vehicle-gallery{grid-template-columns:1fr 1fr}.vehicle-gallery-item{height:105px}.vehicle-form-block{padding:13px 11px}.vehicle-photo-upload{min-height:88px;padding:12px}.vehicle-photo-upload-icon{width:40px;height:40px}
}

/* ==========================================================
   Finance & Fleet screens – accounting/ERP pattern
   ========================================================== */
.erp-screen{display:flex;flex-direction:column;gap:14px}
.erp-screen-header{display:flex;align-items:center;justify-content:space-between;gap:14px}
.erp-screen-title-wrap{display:flex;align-items:center;gap:12px;min-width:0}
.erp-screen-icon{width:44px;height:44px;border-radius:10px;background:color-mix(in srgb,var(--brand) 10%,white);color:var(--brand);display:grid;place-items:center;font-size:19px;border:1px solid color-mix(in srgb,var(--brand) 14%,var(--border));flex:0 0 auto}
.erp-screen-title{font-size:23px;font-weight:850;margin:0;color:var(--text)}
.erp-screen-subtitle{font-size:12px;color:var(--muted);margin-top:3px}
.erp-screen-action{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding-inline:14px}
.erp-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.erp-summary-card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:14px 15px;box-shadow:var(--shadow);display:flex;align-items:center;gap:11px;min-width:0}
.erp-summary-icon{width:39px;height:39px;border-radius:9px;display:grid;place-items:center;background:#eff6ff;color:#2563eb;font-size:17px;flex:0 0 auto}
.erp-summary-card.success .erp-summary-icon{background:#ecfdf3;color:#15803d}
.erp-summary-card.warning .erp-summary-icon{background:#fff7ed;color:#c2410c}
.erp-summary-card.danger .erp-summary-icon{background:#fff1f2;color:#be123c}
.erp-summary-card.purple .erp-summary-icon{background:#faf5ff;color:#7e22ce}
.erp-summary-value{font-size:21px;font-weight:850;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.erp-summary-label{font-size:11px;color:var(--muted);font-weight:650;margin-top:4px}
.erp-toolbar{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--border);border-radius:10px;padding:9px;box-shadow:var(--shadow)}
.erp-search{position:relative;flex:1;min-width:180px}
.erp-search i{position:absolute;inset-inline-start:12px;top:50%;transform:translateY(-50%);color:#94a3b8;font-size:14px;pointer-events:none}
.erp-search .form-control{padding-inline-start:36px;min-height:40px;background:#fbfcfe}
.erp-toolbar-meta{font-size:11px;color:var(--muted);white-space:nowrap;padding-inline:7px}
.erp-data-card{background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);overflow:hidden}
.erp-data-card .table{margin:0}
.erp-data-card thead th{background:#f8fafc;color:#475569;font-size:11px;font-weight:800;padding:11px 13px;border-bottom:1px solid var(--border);white-space:nowrap}
.erp-data-card tbody td{font-size:12px;padding:12px 13px;vertical-align:middle;border-color:#eef2f7}
.erp-data-card tbody tr:last-child td{border-bottom:0}
.erp-data-card tbody tr:hover{background:#fbfdff}
.erp-record-primary{font-weight:800;color:#1e293b}
.erp-record-secondary{font-size:10px;color:#94a3b8;margin-top:2px}
.erp-money{font-weight:850;font-variant-numeric:tabular-nums;white-space:nowrap}
.erp-actions{display:flex;align-items:center;gap:5px;justify-content:flex-end;white-space:nowrap}
.erp-icon-btn{width:32px;height:32px;min-height:32px!important;padding:0!important;border-radius:7px!important;display:inline-grid!important;place-items:center}
.erp-empty{padding:50px 20px;text-align:center;color:var(--muted)}
.erp-empty i{display:block;font-size:34px;color:#cbd5e1;margin-bottom:8px}
.erp-mobile-list{display:none}
.erp-mobile-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:13px;box-shadow:var(--shadow)}
.erp-mobile-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:11px}
.erp-mobile-card-title{font-size:14px;font-weight:850;color:#1e293b}
.erp-mobile-card-subtitle{font-size:10px;color:var(--muted);margin-top:2px}
.erp-mobile-amount{font-size:16px;font-weight:850;color:var(--text);white-space:nowrap}
.erp-mobile-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}
.erp-mobile-info-item{background:#f8fafc;border-radius:8px;padding:8px 9px;min-width:0}
.erp-mobile-info-item span{display:block;font-size:9px;color:#94a3b8;margin-bottom:2px}
.erp-mobile-info-item strong{display:block;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#334155}
.erp-mobile-actions{display:flex;gap:7px;padding-top:10px;border-top:1px solid #eef2f7}
.erp-mobile-actions .btn{flex:1;min-height:36px;font-size:11px}

.erp-form-shell{max-width:1050px;margin:0 auto}
.erp-form-card{background:#fff;border:1px solid var(--border);border-radius:11px;box-shadow:var(--shadow);overflow:hidden}
.erp-form-head{padding:15px 18px;border-bottom:1px solid #edf1f6;display:flex;align-items:center;gap:10px;background:#fbfcfe}
.erp-form-head-icon{width:36px;height:36px;border-radius:8px;display:grid;place-items:center;background:color-mix(in srgb,var(--brand) 10%,white);color:var(--brand)}
.erp-form-head h2{font-size:15px;font-weight:850;margin:0}
.erp-form-body{padding:18px}
.erp-form-body .row{--bs-gutter-x:14px;--bs-gutter-y:14px}
.erp-form-body label{display:block;font-size:11px;font-weight:750;color:#475569;margin-bottom:5px}
.erp-form-body .form-control,.erp-form-body .form-select{min-height:43px}
.erp-form-body textarea.form-control{min-height:92px}
.erp-field-validation{display:block;font-size:10px;color:#dc2626;margin-top:4px;min-height:0}
.erp-field-validation:empty{display:none}
.erp-form-actions{display:flex;justify-content:flex-end;gap:8px;padding:13px 18px;border-top:1px solid #edf1f6;background:#fbfcfe;position:sticky;bottom:0;z-index:5}
.erp-form-actions .btn{min-width:100px}
.erp-validation-summary{border:1px solid #fecdd3;background:#fff1f2;color:#9f1239;border-radius:8px;padding:9px 12px;margin-bottom:14px;font-size:11px}
.erp-validation-summary:empty,.erp-validation-summary.validation-summary-valid{display:none}
.erp-delete-card{max-width:620px;margin:35px auto;background:#fff;border:1px solid #fecdd3;border-radius:12px;box-shadow:var(--shadow-md);padding:22px}
.erp-delete-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#fff1f2;color:#e11d48;font-size:22px;margin-bottom:12px}
.erp-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.erp-detail-item{background:#f8fafc;border:1px solid #eef2f7;border-radius:9px;padding:11px}
.erp-detail-item span{display:block;font-size:10px;color:var(--muted);margin-bottom:4px}
.erp-detail-item strong{font-size:13px;color:#1e293b}

.custody-driver-card{background:#fff;border:1px solid var(--border);border-radius:11px;box-shadow:var(--shadow);padding:14px}
.custody-driver-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:11px;border-bottom:1px solid #eef2f7;margin-bottom:11px}
.custody-driver-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--brand) 10%,white);color:var(--brand);font-weight:850}
.custody-driver-name{font-size:13px;font-weight:850}
.custody-balance{font-size:18px;font-weight:900;white-space:nowrap}
.custody-balance.negative{color:#dc2626}
.custody-quick-form{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(130px,1fr) minmax(130px,1fr) 42px;gap:7px;align-items:end}
.custody-quick-form .form-control,.custody-quick-form .form-select{min-height:39px;font-size:11px}
.custody-quick-form .btn{height:39px;min-height:39px;padding:0}

.report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.report-card{background:#fff;border:1px solid var(--border);border-radius:11px;box-shadow:var(--shadow);padding:18px}
.report-card-head{display:flex;align-items:center;gap:11px;padding-bottom:13px;margin-bottom:14px;border-bottom:1px solid #edf1f6}
.report-card-icon{width:42px;height:42px;border-radius:9px;display:grid;place-items:center;background:color-mix(in srgb,var(--brand) 10%,white);color:var(--brand);font-size:18px}
.report-card h2{font-size:16px;font-weight:850;margin:0}
.report-export-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}
.report-export-actions .btn{min-height:42px}

@media(max-width:1199.98px){.erp-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767.98px){
    .erp-screen{gap:10px}
    .erp-screen-header{align-items:flex-start}
    .erp-screen-icon{width:39px;height:39px;border-radius:9px}
    .erp-screen-title{font-size:19px}
    .erp-screen-subtitle{font-size:10px}
    .erp-screen-action{width:40px;height:40px;min-height:40px;padding:0;justify-content:center;border-radius:9px}
    .erp-screen-action .action-text{display:none}
    .erp-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
    .erp-summary-card{padding:11px;gap:8px;align-items:flex-start}
    .erp-summary-icon{width:34px;height:34px;font-size:15px}
    .erp-summary-value{font-size:17px}
    .erp-summary-label{font-size:9px;line-height:1.25}
    .erp-toolbar{padding:7px;flex-wrap:wrap}
    .erp-search{flex-basis:100%}
    .erp-toolbar-meta{display:none}
    .erp-data-card{display:none}
    .erp-mobile-list{display:grid;gap:8px}
    .erp-form-shell{margin:0}
    .erp-form-body{padding:13px}
    .erp-form-head{padding:12px 13px}
    .erp-form-actions{padding:10px 13px;bottom:72px}
    .erp-form-actions .btn{flex:1;min-width:0}
    .erp-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .custody-quick-form{grid-template-columns:1fr 1fr}
    .custody-quick-form .custody-notes{grid-column:1/-1}
    .custody-quick-form .btn{width:100%;grid-column:1/-1}
    .report-grid{grid-template-columns:1fr}
}
@media(max-width:420px){
    .erp-summary-grid{grid-template-columns:1fr 1fr}
    .erp-summary-card{flex-direction:column}
    .erp-detail-grid{grid-template-columns:1fr}
    .erp-mobile-info{grid-template-columns:1fr 1fr}
}
/* =========================================================
   Dispatch Board
   ========================================================= */
.dispatch-page{--dispatch-border:#e7edf4;--dispatch-muted:#98a2b3}
.dispatch-heading{margin-bottom:14px}
.dispatch-datebar{display:flex;align-items:center;gap:8px;padding:8px 10px;margin-bottom:12px;max-width:520px}
.dispatch-date-nav,.dispatch-today-btn{height:36px;border:1px solid var(--dispatch-border);border-radius:8px;background:#fff;color:#667085;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;padding:0 11px;font-size:10px;font-weight:700}
.dispatch-date-nav{width:36px;padding:0}
.dispatch-date-form{height:36px;flex:1;display:flex;align-items:center;gap:8px;border:1px solid var(--dispatch-border);border-radius:8px;padding:0 10px;background:#fbfcfe;color:#98a2b3}
.dispatch-date-form input{border:0;outline:0;background:transparent;width:100%;font:inherit;font-size:11px;color:#344054}
.dispatch-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-bottom:12px}
.dispatch-kpi{background:#fff;border:1px solid var(--dispatch-border);border-radius:9px;padding:10px 13px;text-align:start;display:flex;align-items:center;justify-content:space-between;color:#667085;transition:.16s ease;min-height:52px}
.dispatch-kpi span{font-size:9px;font-weight:700}
.dispatch-kpi strong{font-size:17px;color:#344054}
.dispatch-kpi:hover,.dispatch-kpi.is-active{border-color:color-mix(in srgb,var(--brand) 40%,#e7edf4);box-shadow:0 3px 12px color-mix(in srgb,var(--brand) 7%,transparent)}
.dispatch-kpi.is-active{background:color-mix(in srgb,var(--brand) 5%,#fff);color:var(--brand)}
.dispatch-kpi.is-active strong{color:var(--brand)}
.dispatch-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;align-items:start}
.dispatch-section-head{min-height:62px}
.dispatch-legend{align-items:center;gap:6px;font-size:9px;color:#98a2b3}
.dispatch-legend i{width:8px;height:8px;border-radius:50%;background:var(--brand);display:block}
.dispatch-trip-list{padding:8px 12px 12px}
.dispatch-trip-card{display:grid;grid-template-columns:74px minmax(0,1fr);border-bottom:1px solid #eef2f6;position:relative;padding:13px 3px}
.dispatch-trip-card:last-child{border-bottom:0}
.dispatch-time-rail{padding:4px 12px 0 4px;border-inline-end:1px dashed #dce3ec;display:flex;flex-direction:column;gap:2px;align-items:flex-start}
.dispatch-time-rail strong{font-size:17px;color:#344054;line-height:1}
.dispatch-time-rail span{font-size:9px;color:#98a2b3}
.dispatch-trip-main{padding-inline-start:15px;min-width:0}
.dispatch-trip-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.dispatch-trip-top>div{display:flex;align-items:center;gap:7px;min-width:0}
.dispatch-trip-number{font-size:10px;font-weight:800;color:var(--brand);text-decoration:none;background:color-mix(in srgb,var(--brand) 8%,#fff);border-radius:12px;padding:4px 8px;white-space:nowrap}
.dispatch-status{font-size:11px;font-weight:800;padding:7px 12px;min-height:30px;border-radius:999px;background:#f2f4f7;color:#667085;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;line-height:1.1}
.dispatch-status.status-assigned{background:#eff8ff;color:#175cd3}.dispatch-status.status-inprogress,.dispatch-status.status-driveronway,.dispatch-status.status-arrived{background:#fff6ed;color:#c4320a}.dispatch-status.status-completed,.dispatch-status.status-collected{background:#ecfdf3;color:#15803d}.dispatch-status.status-cancelled{background:#fef3f2;color:#b42318}.dispatch-status.status-new,.dispatch-status.status-confirmed{background:#fffaeb;color:#b54708}
.dispatch-assign-button{height:30px;border:1px solid #dde5ef;background:#fff;border-radius:7px;color:#475467;padding:0 9px;display:inline-flex;align-items:center;gap:5px;font-size:9px;font-weight:700;white-space:nowrap}
.dispatch-assign-button:hover{border-color:color-mix(in srgb,var(--brand) 35%,#dde5ef);color:var(--brand)}
.dispatch-route{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);align-items:center;gap:5px;margin:13px 0 8px}
.dispatch-route>div{display:flex;align-items:center;gap:6px;min-width:0;font-size:10px;color:#344054;font-weight:700}.dispatch-route>div span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dispatch-route>div i{color:var(--brand)}.dispatch-route>b{text-align:center;color:#c0c8d4;font-size:10px}
.dispatch-customer-row{display:flex;flex-wrap:wrap;gap:12px;color:#98a2b3;font-size:8px;margin-bottom:10px}.dispatch-customer-row span{display:flex;align-items:center;gap:4px}
.dispatch-resources{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.dispatch-dropzone{min-height:52px;border:1px dashed #ced7e3;border-radius:8px;padding:8px 10px;display:flex;align-items:center;gap:8px;background:#fbfcfe;transition:.15s ease}.dispatch-dropzone>i{width:30px;height:30px;border-radius:7px;background:#eef2f7;display:grid;place-items:center;color:#667085}.dispatch-dropzone div{display:flex;flex-direction:column;min-width:0}.dispatch-dropzone small{font-size:8px;color:#98a2b3}.dispatch-dropzone strong{font-size:9px;color:#667085;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dispatch-dropzone.has-value{border-style:solid;border-color:#dfe7ef;background:#fff}.dispatch-dropzone.has-value>i{background:color-mix(in srgb,var(--brand) 8%,#fff);color:var(--brand)}.dispatch-dropzone.has-value strong{color:#344054}.dispatch-dropzone.drag-over{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 6%,#fff);box-shadow:inset 0 0 0 1px var(--brand)}
.dispatch-external-banner{min-height:48px;border-radius:8px;background:#f9fafb;border:1px solid #eaecf0;padding:8px 10px;display:flex;align-items:center;gap:7px;font-size:9px;color:#667085}.dispatch-external-banner i{color:var(--brand)}.dispatch-external-banner strong{margin-inline-start:auto;color:#344054}
.dispatch-pools{display:grid;gap:12px;position:sticky;top:78px}.dispatch-pool-card{overflow:visible}.dispatch-pool-count{min-width:27px;height:27px;border-radius:14px;background:#f2f4f7;display:grid;place-items:center;font-size:9px;font-weight:800;color:#667085}.dispatch-pool-list{padding:8px;display:grid;gap:6px;max-height:315px;overflow:auto}.dispatch-resource-card{min-height:50px;border:1px solid #e7edf4;border-radius:8px;background:#fff;padding:7px 8px;display:flex;align-items:center;gap:8px;cursor:grab;user-select:none}.dispatch-resource-card:active{cursor:grabbing}.dispatch-resource-card.dragging{opacity:.5}.dispatch-resource-icon{width:32px;height:32px;border-radius:8px;background:#eff8ff;color:#175cd3;display:grid;place-items:center;flex:0 0 32px}.dispatch-resource-icon.vehicle{background:#ecfdf3;color:#15803d}.dispatch-resource-card>div{display:flex;flex-direction:column;min-width:0;flex:1}.dispatch-resource-card strong{font-size:9px;color:#344054;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dispatch-resource-card small{font-size:8px;color:#98a2b3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dispatch-grip{color:#c4ccd7;font-size:12px}.dispatch-pool-empty{padding:22px;text-align:center;color:#98a2b3;font-size:9px}.dispatch-empty{padding:60px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;color:#98a2b3}.dispatch-empty i{font-size:30px;color:#cfd7e2;margin-bottom:8px}.dispatch-empty strong{font-size:12px;color:#667085}.dispatch-empty span{font-size:9px;margin-top:3px}
#dispatchAntiForgery{display:none}.dispatch-modal-content{border:0;border-radius:12px;box-shadow:0 18px 50px rgba(15,23,42,.18)}.dispatch-modal-content .modal-header{border-bottom:1px solid #eef2f6;padding:15px 17px}.dispatch-modal-content .modal-header small{font-size:8px;color:#98a2b3}.dispatch-modal-content .modal-title{font-size:14px;font-weight:800;color:#344054}.dispatch-modal-content .modal-body{padding:17px}.dispatch-modal-content .modal-footer{border-top:1px solid #eef2f6}.dispatch-modal-hint{display:flex;align-items:center;gap:5px;color:#98a2b3;font-size:8px}.dispatch-modal-hint i{color:#15803d}.dispatch-toast{position:fixed;z-index:1085;inset-inline-end:24px;bottom:24px;max-width:390px;background:#7a271a;color:#fff;border-radius:9px;padding:11px 13px;display:flex;align-items:flex-start;gap:8px;font-size:10px;font-weight:700;box-shadow:0 12px 32px rgba(122,39,26,.25);opacity:0;transform:translateY(15px);pointer-events:none;transition:.2s}.dispatch-toast.show{opacity:1;transform:translateY(0)}

@media(max-width:1199.98px){.dispatch-layout{grid-template-columns:minmax(0,1fr) 260px}.dispatch-kpis{grid-template-columns:repeat(5,minmax(100px,1fr));overflow-x:auto;padding-bottom:3px}}
@media(max-width:991.98px){.dispatch-datebar{max-width:none}.dispatch-kpis{display:flex;overflow-x:auto;gap:7px;scrollbar-width:none}.dispatch-kpis::-webkit-scrollbar{display:none}.dispatch-kpi{min-width:112px;flex:0 0 112px}.dispatch-layout{display:block}.dispatch-pools{display:none}.dispatch-trip-list{padding:4px 10px 10px}.dispatch-trip-card{grid-template-columns:62px minmax(0,1fr);padding:12px 0}.dispatch-trip-main{padding-inline-start:11px}.dispatch-time-rail{padding-inline-end:9px}.dispatch-time-rail strong{font-size:15px}.dispatch-route{grid-template-columns:1fr;gap:5px;margin:10px 0}.dispatch-route>b{display:none}.dispatch-route>div{font-size:10px}.dispatch-route>div:last-child:before{content:'↓';color:#c0c8d4;margin-inline-end:2px}.dispatch-resources{grid-template-columns:1fr}.dispatch-dropzone{min-height:46px}.dispatch-assign-button{width:32px;padding:0;justify-content:center}.dispatch-assign-button span{display:none}.dispatch-customer-row{gap:7px}.dispatch-toast{inset-inline:12px;bottom:90px;max-width:none}.dispatch-heading p{max-width:250px}}
@media(max-width:480px){.dispatch-datebar{gap:5px;padding:7px}.dispatch-today-btn{padding:0 8px}.dispatch-trip-top>div{gap:6px;flex-wrap:wrap}.dispatch-status{font-size:10px;padding:7px 11px;min-height:29px}.dispatch-trip-number{font-size:10px;padding:5px 9px}}

/* Final merged override: larger, clearer Dispatch status badge. */
.dispatch-status{
    font-size:11px;
    font-weight:800;
    padding:7px 12px;
    min-height:30px;
    border-radius:999px;
    line-height:1.1;
}
@media(max-width:480px){
    .dispatch-status{font-size:10px;padding:7px 11px;min-height:29px}
    .dispatch-trip-number{font-size:10px;padding:5px 9px}
}

/* ==========================================================
   Dynamic company branding for navigation
   Primary   = active/navigation action color
   Secondary = sidebar background
   Accent    = indicators/highlights
   ========================================================== */
.erp-sidebar{
    background:var(--brand-secondary)!important;
    color:var(--brand-secondary-contrast)!important;
    border-inline-end:1px solid color-mix(in srgb,var(--brand-secondary-contrast) 14%,transparent)!important;
}
.erp-sidebar-brand{
    background:var(--brand-secondary)!important;
    border-bottom-color:color-mix(in srgb,var(--brand-secondary-contrast) 13%,transparent)!important;
}
.erp-brand-copy strong{
    color:var(--brand-secondary-contrast)!important;
}
.erp-brand-copy small,
.erp-nav-caption{
    color:color-mix(in srgb,var(--brand-secondary-contrast) 60%,transparent)!important;
}
.erp-brand-logo span{
    background:color-mix(in srgb,var(--brand) 22%,transparent)!important;
    color:var(--brand-secondary-contrast)!important;
    border-color:color-mix(in srgb,var(--brand-secondary-contrast) 12%,transparent)!important;
}
.erp-sidebar-nav{
    scrollbar-color:color-mix(in srgb,var(--brand-secondary-contrast) 28%,transparent) transparent;
}
.erp-sidebar-nav a{
    color:color-mix(in srgb,var(--brand-secondary-contrast) 88%,transparent)!important;
}
.erp-sidebar-nav a i{
    color:color-mix(in srgb,var(--brand-secondary-contrast) 70%,transparent)!important;
}
.erp-sidebar-nav a:hover{
    background:color-mix(in srgb,var(--brand) 22%,var(--brand-secondary))!important;
    color:var(--brand-secondary-contrast)!important;
}
.erp-sidebar-nav a:hover i{
    color:var(--brand-secondary-contrast)!important;
}
.erp-sidebar-nav a.active{
    background:color-mix(in srgb,var(--brand) 86%,white 14%)!important;
    color:var(--brand-contrast)!important;
    box-shadow:0 5px 14px color-mix(in srgb,var(--brand) 25%,transparent)!important;
    position:relative;
}
.erp-sidebar-nav a.active::before{
    content:"";
    position:absolute;
    inset-block:7px;
    inset-inline-start:0;
    width:3px;
    border-radius:4px;
    background:var(--brand-accent);
}
.erp-sidebar-nav a.active i{
    color:var(--brand-contrast)!important;
}
.erp-sidebar-collapse{
    background:var(--brand)!important;
    color:var(--brand-contrast)!important;
    border-color:color-mix(in srgb,var(--brand) 65%,white)!important;
}

/* company-branded mobile navigation without losing app-style behavior */
@media(max-width:991.98px){
    .mobile-more-sheet .sheet-head{
        border-bottom-color:color-mix(in srgb,var(--brand) 18%,#e5e7eb)!important;
    }
    .mobile-more-sheet .sheet-brand-icon{
        background:var(--brand-secondary)!important;
        color:var(--brand-secondary-contrast)!important;
    }
    .mobile-bottom-nav .mobile-primary-icon{
        background:var(--brand)!important;
        color:var(--brand-contrast)!important;
    }
    .mobile-bottom-nav>a.active,
    .mobile-bottom-nav>button.active{
        color:var(--brand)!important;
    }
}

/* ==========================================================
   PLATFORM ADMIN ISOLATION
   SuperAdmin uses a fixed LimoFlow theme and never inherits
   tenant/company branding.
   ========================================================== */
body.platform-admin{
    --brand:#1677ff;
    --brand-secondary:#101828;
    --brand-accent:#06b6d4;
    --brand-contrast:#ffffff;
    --brand-secondary-contrast:#ffffff;
    --brand-accent-contrast:#ffffff;
}
body.platform-admin .erp-sidebar,
body.platform-admin .sidebar,
body.platform-admin .sidebar-head{
    background:#101828 !important;
}
body.platform-admin .erp-sidebar-brand{
    background:#101828 !important;
    border-bottom-color:rgba(255,255,255,.08) !important;
}
body.platform-admin .erp-brand-logo,
body.platform-admin .brand-icon{
    background:#1677ff !important;
    color:#fff !important;
}
body.platform-admin .erp-sidebar-nav a.active,
body.platform-admin .sidebar nav a.active{
    background:#1677ff !important;
    color:#fff !important;
    border-color:#1677ff !important;
}
body.platform-admin .erp-sidebar-nav a.active i,
body.platform-admin .sidebar nav a.active i{
    color:#fff !important;
}
body.platform-admin .erp-sidebar-nav a:hover,
body.platform-admin .sidebar nav a:hover{
    background:#1d2939 !important;
}
body.platform-admin .erp-brand-copy strong,
body.platform-admin .erp-brand-copy small{
    color:#fff !important;
}

/* Tenant/company accounts keep dynamic branding from CSS variables. */
body.tenant-company .erp-sidebar,
body.tenant-company .sidebar,
body.tenant-company .sidebar-head,
body.tenant-company .erp-sidebar-brand{
    background:var(--brand-secondary) !important;
}


/* =========================================================
   Mobile bilingual text input compatibility
   Arabic + English IME / keyboard support
   ========================================================= */
.multilang-text-input,
input[type="text"]:not([dir="ltr"]),
input[type="search"]:not([dir="ltr"]),
textarea:not([dir="ltr"]) {
    text-transform: none !important;
    unicode-bidi: plaintext;
    -webkit-user-select: text;
    user-select: text;
    caret-color: currentColor;
}

html[dir="rtl"] .multilang-text-input,
html[dir="rtl"] input[type="text"]:not([dir="ltr"]),
html[dir="rtl"] input[type="search"]:not([dir="ltr"]),
html[dir="rtl"] textarea:not([dir="ltr"]) {
    text-align: start;
}

@media (max-width: 991.98px) {
    .multilang-text-input,
    input[type="text"]:not([dir="ltr"]),
    input[type="search"]:not([dir="ltr"]),
    textarea:not([dir="ltr"]) {
        font-family: "Cairo", "Segoe UI", Tahoma, Arial, sans-serif !important;
        font-size: 16px !important; /* prevents iOS zoom and improves IME behavior */
        line-height: 1.5;
    }
}
