/* ===== Design Tokens ===================================================
   Vazirmatn | Green identity | RTL-first | 4px grid
   ===================================================================== */

/* ---- Font ---- */
@font-face {
    font-family: "Vazirmatn";
    src: url("../fonts/Vazirmatn-Regular.cdc140628f11.woff2") format("woff2");
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "Vazirmatn";
    src: url("../fonts/Vazirmatn-Medium.dd2193b32cbe.woff2") format("woff2");
    font-weight: 500;
    font-display: swap;
}
@font-face {
    font-family: "Vazirmatn";
    src: url("../fonts/Vazirmatn-SemiBold.9260c1927872.woff2") format("woff2");
    font-weight: 600;
    font-display: swap;
}
@font-face {
    font-family: "Vazirmatn";
    src: url("../fonts/Vazirmatn-Bold.7958481fe611.woff2") format("woff2");
    font-weight: 700;
    font-display: swap;
}

/* ---- Typography Scale ---- */
/* Page / main title       : 18px 700 1.3 */
/* Card / section title    : 15px 600 1.4 */
/* Body / label            : 13px 500 1.5 */
/* Input                   : 13px 400 1.5 */
/* Helper / meta / sub     : 11px 400 1.4 */
/* KPI digit               : 22px 700 1.2 */

:root {
    --font-family: "Vazirmatn", sans-serif;

    /* Palette */
    --color-primary-500: #1F8A5B;
    --color-danger-500: #B5473D;
    --color-warning-500: #B27A2A;
    --color-success-500: #267A4D;
    --bg-page:          #F4F6F5;
    --bg-card:          #FFFFFF;
    --border:           #E6EBE8;
    --ink-primary:      #12201B;
    --ink-secondary:    #5B6B64;
    --sidebar-bg:       #10241C;
    --sidebar-text:     #D5E3DC;
    --sidebar-active:   #1F8A5B;
    --accent:           #1F8A5B;
    --accent-hover:     #18734A;
    --danger:           #C4473A;
    --warning:          #C4852A;
    --success:          #1F8A5B;

    /* Shadows — never heavy */
    --shadow-sm: 0 1px 2px rgba(16,36,28,.06);
    --shadow-md: 0 2px 6px rgba(16,36,28,.08);
    --shadow-lg: 0 4px 12px rgba(16,36,28,.10);

    /* Radii */
    --radius-card:   12px;
    --radius-input:  10px;
    --radius-btn:    10px;
    --radius-badge:  4px;
    --radius-nav:    8px;

    /* Spacing (4px unit) */
    --space-1:  4px;
    --space-2:  8px;
    --space-3:  12px;
    --space-4:  16px;
    --space-5:  20px;
    --space-6:  24px;
    --space-8:  32px;
    --space-10: 40px;

    /* Icon sizing */
    --icon-nav:   20px;
    --icon-btn:   20px;
    --icon-badge: 22px;
    --icon-empty: 32px;

    /* Component sizing */
    --nav-height:   40px;
    --btn-height:   40px;
    --input-height: 40px;
    --focus-ring: 0 0 0 3px rgba(31,138,91,.28);
}

/* ---- Typography classes ---- */
.title-page    { font-size:18px; font-weight:700; line-height:1.3; color:var(--ink-primary); }
.title-card    { font-size:15px; font-weight:600; line-height:1.4; color:var(--ink-primary); }
.body-label    { font-size:13px; font-weight:500; line-height:1.6; color:var(--ink-primary); }
.body-input    { font-size:13px; font-weight:400; line-height:1.5; }
.text-meta     { font-size:11px; font-weight:400; line-height:1.5; color:var(--ink-secondary); }
.kpi-number    { font-size:22px; font-weight:700; line-height:1.2; color:var(--ink-primary); }

/* ---- Base ---- */
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body {
    margin:0;
    font-family:var(--font-family);
    font-size:13px;
    font-weight:500;
    background:var(--bg-page);
    color:var(--ink-primary);
    -webkit-font-smoothing:antialiased;
    font-synthesis:none;
    text-rendering:optimizeLegibility;
}
input, select, textarea, button { font-family:inherit; }
a { color:var(--accent); text-decoration:none; }
a:hover { text-decoration:underline; }

/* ---- Shell / Layout ---- */
.shell { display:flex; min-height:100vh; }
.mobile-menu-toggle { display:none; }
.sidebar-overlay { display:none; }

/* ---- Sidebar ---- */
.sidebar {
    width:220px;
    background:var(--sidebar-bg);
    color:var(--sidebar-text);
    padding:var(--space-6) var(--space-4);
    display:flex;
    flex-direction:column;
    flex-shrink:0;
}
.brand {
    font-size:16px;
    font-weight:700;
    letter-spacing:-.03em;
    border-bottom:1px solid #2A4239;
    padding:0 var(--space-1) var(--space-4);
    display:flex;
    align-items:center;
    gap:var(--space-3);
}
.brand-logo {
    width:42px;
    height:42px;
    flex:0 0 42px;
    object-fit:cover;
    border-radius:12px;
    filter:hue-rotate(-90deg) saturate(1.12);
}
.brand > div {
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:var(--space-1);
}
.brand small { font-size:11px; font-weight:400; color:#89A197; }
.sidebar nav { display:flex; flex-direction:column; gap:2px; margin-top:var(--space-5); }
.sidebar nav a[href="/"] { order:1; }
.sidebar nav a[href="/loads/"] { order:2; }
.sidebar nav a[href="/drivers/"] { order:3; }
.sidebar nav a[href="/inquiries/"] { order:4; }
.sidebar nav a[href="/waybills/"] { order:5; }
.sidebar nav a[href="/reports/"] { order:6; }
.sidebar nav a[href="/notifications/"] { order:7; }
.sidebar nav a[href="/blacklist/"] { order:8; }
.sidebar nav a[href^="/settings/operators"] { order:9; }
.sidebar nav a[href="/admin/"] { order:10; }
.sidebar nav a, .sidebar nav .nav-link {
    display:flex;
    align-items:center;
    gap:var(--space-3);
    color:#BCCFC5;
    padding:var(--space-2) var(--space-3);
    border-radius:var(--radius-nav);
    font-size:13px;
    font-weight:500;
    text-decoration:none;
    transition:background .12s, color .12s;
    min-height:var(--nav-height);
}
.sidebar nav a:hover, .sidebar nav a:focus {
    background:rgba(255,255,255,.06);
    color:#fff;
    text-decoration:none;
}
.sidebar nav a.active {
    background:var(--sidebar-active);
    color:#fff;
    box-shadow:0 6px 16px rgba(31,138,91,.22);
}
.sidebar nav a.active .mi { color:#fff; }
.sidebar nav a .mi {
    width:var(--icon-nav);
    height:var(--icon-nav);
    color:#89A197;
    vertical-align:middle;
    flex-shrink:0;
}
.sidebar nav a:hover .mi, .sidebar nav a:focus .mi { color:#fff; }
.nav-badge {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:22px;
    height:22px;
    padding:0 6px;
    border-radius:11px;
    background:var(--danger);
    color:#fff;
    font-size:11px;
    font-weight:700;
    line-height:1;
    margin-right:auto;
}
.disabled-link { color:#6D8C7E !important; opacity:.5; cursor:not-allowed; }
.disabled-link:hover { background:transparent !important; }

/* ---- Operator in Sidebar ---- */
.operator {
    margin-top:auto;
    border-top:1px solid #2A4239;
    padding:var(--space-4) var(--space-1) 0;
    display:flex;
    align-items:center;
    gap:var(--space-3);
}
.op-avatar {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:32px;
    height:32px;
    border-radius:50%;
    background:rgba(255,255,255,.08);
    color:var(--sidebar-text);
    font-size:13px;
    font-weight:700;
    flex-shrink:0;
}
.op-info { flex:1; min-width:0; }
.op-name { display:block; font-size:13px; font-weight:600; color:var(--sidebar-text); }
.op-role { display:block; font-size:11px; color:#89A197; margin-top:2px; }
.logout { display:block; background:none; border:0; color:#89A197; padding:var(--space-2) 0 0; cursor:pointer; font-size:13px; }
.logout:hover { color:#fff; }

/* ---- Content ---- */
.content {
    flex:1;
    padding:var(--space-6) var(--space-8);
    max-width:none;
    min-width:0;
    width:100%;
}

/* ---- Topbar ---- */
.topbar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding-bottom:var(--space-6);
    margin-bottom:var(--space-5);
    border-bottom:1px solid var(--border);
}
.topbar-start { display:flex; align-items:center; gap:var(--space-2); }
.topbar-home { color:var(--ink-secondary); display:flex; }
.topbar-home .mi { width:var(--icon-btn); height:var(--icon-btn); }
.topbar-end { display:flex; align-items:center; gap:var(--space-4); }
.topbar-user {
    font-size:13px;
    font-weight:500;
    color:var(--ink-primary);
    display:flex;
    align-items:center;
    gap:var(--space-2);
}
.topbar-user-icon { display:flex; color:var(--ink-secondary); }
.topbar-user-icon .mi { width:var(--icon-btn); height:var(--icon-btn); }

/* ---- Bell Dropdown ---- */
.bell-dropdown { position:relative; }
.bell-btn {
    background:none; border:0; cursor:pointer;
    color:var(--ink-secondary); padding:var(--space-1);
    position:relative; display:flex;
}
.bell-btn, .copy-button, .topbar-home, .logout { min-width:44px; min-height:44px; align-items:center; justify-content:center; }
.bell-btn .mi { width:var(--icon-btn); height:var(--icon-btn); }
.bell-btn:hover { color:var(--accent); }
.bell-badge {
    position:absolute; top:-2px; right:-2px;
    width:18px; height:18px; border-radius:50%;
    background:var(--danger); color:#fff;
    font-size:10px; font-weight:700;
    display:flex; align-items:center; justify-content:center;
}
.bell-panel {
    position:fixed !important;
    left:12px !important;
    right:auto !important;
    top:var(--space-2);
    width:min(280px, calc(100vw - 24px)) !important;
    max-height:calc(100vh - 24px);
    overflow:auto;
    background:var(--bg-card);
    border:1px solid var(--border); border-radius:var(--radius-card);
    box-shadow:var(--shadow-lg); z-index:100; display:none;
}
.bell-panel.open { display:block; }
.bell-panel-head { padding:var(--space-3) var(--space-4); border-bottom:1px solid var(--border); font-size:13px; font-weight:600; }
.bell-item {
    display:block; padding:var(--space-3) var(--space-4);
    border-bottom:1px solid var(--border); color:var(--ink-primary); font-size:13px;
}
.bell-item:hover { background:var(--bg-page); text-decoration:none; }
.bell-item-label { display:block; }
.bell-item-meta { font-size:11px; color:var(--ink-secondary); }
.bell-all {
    display:block; text-align:center; padding:var(--space-2);
    color:var(--accent); font-size:12px; font-weight:600;
}
.bell-empty { padding:var(--space-6); text-align:center; color:var(--ink-secondary); font-size:13px; }

/* ---- Notice / Messages ---- */
.notice {
    background:#E8F5ED;
    color:#166534;
    border:1px solid #B8E6CD;
    border-radius:var(--radius-input);
    padding:var(--space-3) var(--space-4);
    font-size:13px;
    margin-bottom:var(--space-4);
}
.notice-error { background:#FFF1EF; color:#8F2F26; border-color:#E7BDB7; }
:where(a, button, input, select, textarea):focus-visible {
    outline:3px solid rgba(31,138,91,.35);
    outline-offset:2px;
}

/* ---- PageHeader ---- */
.page-head {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:var(--space-4);
    margin-bottom:var(--space-6);
}
.page-head h1 {
    font-size:18px; font-weight:700; line-height:1.3;
    color:var(--ink-primary); margin:0;
}
.page-head p { margin:var(--space-1) 0 0; font-size:13px; color:var(--ink-secondary); }
.page-actions { display:flex; align-items:center; gap:var(--space-3); }

/* ---- Btn ---- */
.btn {
    display:inline-flex;
    align-items:center;
    gap:var(--space-2);
    min-height:var(--btn-height);
    padding:0 var(--space-4);
    border-radius:var(--radius-btn);
    font-size:13px; font-weight:500; line-height:1;
    cursor:pointer;
    transition:background .12s, border-color .12s, color .12s;
    border:1px solid var(--border);
    background:var(--bg-card);
    color:var(--ink-primary);
    white-space:nowrap;
    text-decoration:none;
}
.btn:hover { border-color:var(--accent); text-decoration:none; }
.btn-primary {
    background:var(--accent);
    border-color:var(--accent);
    color:#fff;
}
.btn-primary:hover { background:var(--accent-hover); }
.btn-danger {
    background:var(--danger);
    border-color:var(--danger);
    color:#fff;
}
.btn-danger:hover { background:#A83A2E; }
.btn-ghost {
    background:transparent;
    border-color:transparent;
    color:var(--ink-secondary);
}
.btn-ghost:hover { background:var(--bg-page); color:var(--ink-primary); }
.btn-sm { min-height:32px; font-size:12px; padding:0 var(--space-3); }
.btn:disabled, .btn.disabled { opacity:.5; cursor:not-allowed; pointer-events:none; }
.btn .mi { width:var(--icon-btn); height:var(--icon-btn); }

/* ---- KpiRow ---- */
.kpi-row {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:var(--space-4);
    margin-bottom:var(--space-6);
}
.kpi-card {
    background:var(--bg-card);
    border:1px solid var(--border);
    border-radius:var(--radius-card);
    box-shadow:var(--shadow-sm);
    padding:var(--space-5) var(--space-6);
    text-align:center;
}
.kpi-card .kpi-number { display:block; margin-bottom:var(--space-1); }
.kpi-label { font-size:13px; color:var(--ink-secondary); font-weight:500; }
.kpi-icon { width:var(--icon-badge); height:var(--icon-badge); color:var(--ink-secondary); margin-bottom:var(--space-2); }

/* ---- Card / Section ---- */
.card {
    background:var(--bg-card);
    border:1px solid var(--border);
    border-radius:var(--radius-card);
    box-shadow:var(--shadow-sm);
    padding:var(--space-5) var(--space-6);
    margin-bottom:var(--space-4);
}
.card-header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--space-3);
    margin-bottom:var(--space-4);
}
.card-header h2 { font-size:15px; font-weight:600; line-height:1.4; color:var(--ink-primary); margin:0; }
.card-header .text-meta { font-size:12px; }

/* ---- Field (Form) ---- */
.field {
    display:flex;
    flex-direction:column;
    gap:var(--space-1);
}
.field-label {
    font-size:13px;
    font-weight:500;
    line-height:1.6;
    color:var(--ink-primary);
}
.field input,
.field select,
.field textarea {
    width:100%;
    min-height:var(--input-height);
    border:1px solid var(--border);
    border-radius:var(--radius-input);
    padding:var(--space-2) var(--space-3);
    font:inherit;
    font-size:13px;
    font-weight:400;
    color:var(--ink-primary);
    background:var(--bg-card);
    transition:border-color .12s, box-shadow .12s;
}
.field input:focus,
.field select:focus,
.field textarea:focus {
    outline:none;
    border-color:var(--accent);
    box-shadow:0 0 0 3px rgba(31,138,91,.15);
}
.field textarea { min-height:84px; resize:vertical; }
.field .help-text { font-size:12px; color:var(--ink-secondary); }
.field .error-text { font-size:12px; color:var(--danger); }
.field-select-control {
    position:relative;
    display:block;
}
.field-select-control select {
    appearance:none;
    -webkit-appearance:none;
    padding-left:38px;
    cursor:pointer;
}
.field-select-control > svg {
    position:absolute;
    left:12px;
    top:50%;
    width:16px;
    height:16px;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
    transform:translateY(-50%);
    pointer-events:none;
}
.field-select-control:focus-within { color:var(--accent); }
.field-check-control {
    display:inline-flex;
    align-items:center;
    width:max-content;
    cursor:pointer;
}
.field-check-control input {
    position:absolute;
    inline-size:1px;
    block-size:1px;
    opacity:0;
}
.field-check-box {
    display:grid;
    place-items:center;
    width:18px;
    height:18px;
    border:1.5px solid #9AA9A2;
    border-radius:5px;
    color:#fff;
    background:#fff;
    transition:border-color .15s, background .15s;
}
.field-check-box svg {
    width:13px;
    height:13px;
    fill:none;
    stroke:currentColor;
    stroke-width:2.5;
    stroke-linecap:round;
    stroke-linejoin:round;
    opacity:0;
}
.field-check-control:has(input:focus-visible) .field-check-box {
    outline:3px solid rgba(31,138,91,.18);
    outline-offset:2px;
}
.field-check-control:has(input:checked) .field-check-box {
    border-color:var(--accent);
    background:var(--accent);
}
.field-check-control input:checked + .field-check-box svg { opacity:1; }

/* ---- Form Grid (2-col RTL) ---- */
.form-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:var(--space-4);
}
.form-grid .field-full { grid-column:1/-1; }

/* ---- Form Sections ---- */
.form-sections { display:grid; gap:var(--space-4); }
.form-section {
    background:var(--bg-card);
    border:1px solid var(--border);
    border-radius:var(--radius-card);
    box-shadow:var(--shadow-sm);
    padding:var(--space-5) var(--space-6);
}
.form-section h3 {
    font-size:15px; font-weight:600; line-height:1.4;
    color:var(--accent);
    margin:0 0 var(--space-4);
    padding-bottom:var(--space-3);
    border-bottom:1px solid var(--border);
}

/* ---- Table ---- */
.table-wrap {
    background:var(--bg-card);
    border:1px solid var(--border);
    border-radius:var(--radius-card);
    overflow:auto;
    overscroll-behavior-x:contain;
}
table {
    border-collapse:collapse;
    width:100%;
    min-width:600px;
}
th {
    text-align:right;
    padding:var(--space-3) var(--space-4);
    font-size:12px;
    font-weight:600;
    color:var(--ink-secondary);
    background:#FBFCFC;
    border-bottom:1px solid var(--border);
    white-space:nowrap;
}
td {
    text-align:right;
    padding:var(--space-3) var(--space-4);
    border-bottom:1px solid #EFF1F0;
    font-size:13px;
    font-weight:400;
    white-space:nowrap;
}
tr:last-child td { border-bottom:0; }
.table-empty { text-align:center; color:var(--ink-secondary); padding:var(--space-10) var(--space-4); }
.driver-list-page .table-wrap {
    max-height:420px;
    overflow:auto;
}
.driver-list-page .table-wrap thead th {
    position:sticky;
    top:0;
    z-index:1;
}
.load-driver-list-page .assignment-list,
.load-driver-list-page .table-wrap {
    max-height:420px;
    overflow:auto;
}
.load-driver-list-page .history.driver-list-scroll {
    max-height:420px;
    overflow:auto;
}
.content > .filters + .metrics + .table-wrap {
    max-height:520px;
    overflow:auto;
}
.content > .filters + .metrics + .table-wrap thead th {
    position:sticky;
    top:0;
    z-index:1;
}

/* ---- Badge ---- */
.badge {
    display:inline-flex;
    align-items:center;
    padding:2px 8px;
    border-radius:var(--radius-badge);
    font-size:11px;
    font-weight:600;
    line-height:1.5;
}
.badge-success { background:#E8F5ED; color:#166534; }
.badge-danger  { background:#FBEAE8; color:#A1382E; }
.badge-warning { background:#FCF3E1; color:#A46D23; }
.badge-neutral { background:#F2F4F3; color:#4D5C56; }
.badge-info    { background:#E3F0FC; color:#1E5F80; }

/* ---- Detail List ---- */
.detail-list {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:var(--space-2);
}
.detail-list > span {
    display:flex;
    justify-content:space-between;
    padding:var(--space-2) var(--space-3);
    background:var(--bg-page);
    border-radius:6px;
    font-size:13px;
    color:var(--ink-secondary);
}
.detail-list > span > strong {
    color:var(--ink-primary);
    font-weight:600;
    margin-right:var(--space-3);
}

/* ---- History Row ---- */
.history-list { display:grid; gap:var(--space-2); }
.history-item {
    display:grid;
    grid-template-columns:auto auto auto auto 1fr auto;
    gap:var(--space-3) var(--space-4);
    padding:var(--space-3) var(--space-4);
    background:var(--bg-page);
    border-radius:6px;
    font-size:13px;
    align-items:center;
}
.report-scroll-list {
    max-height:560px;
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
    padding-inline-end:4px;
}
.report-scroll-list:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }

/* ---- Empty State ---- */
.empty-state {
    text-align:center;
    padding:var(--space-10) var(--space-4);
    color:var(--ink-secondary);
}
.empty-state .mi {
    width:var(--icon-empty);
    height:var(--icon-empty);
    margin:0 auto var(--space-3);
    display:block;
    color:var(--border);
}

/* ---- Filters Row ---- */
.filters {
    display:flex;
    gap:var(--space-3);
    margin-bottom:var(--space-4);
    flex-wrap:wrap;
    align-items:center;
}
.dashboard-filters { align-items:flex-end; }
.filters > input {
    min-height:var(--input-height);
    border:1px solid var(--border);
    border-radius:var(--radius-input);
    padding:var(--space-2) var(--space-3);
    font:inherit;
    font-size:13px;
    background:var(--bg-card);
    color:var(--ink-primary);
}
.filters > input:focus {
    outline:none;
    border-color:var(--accent);
    box-shadow:0 0 0 3px rgba(31,138,91,.15);
}

.filters > input { min-width:200px; flex:1; }

.select-control {
    position:relative;
    display:inline-flex;
    min-width:180px;
    color:var(--ink-secondary);
}
.select-control select {
    width:100%;
    min-height:var(--input-height);
    appearance:none;
    -webkit-appearance:none;
    border:1px solid var(--border);
    border-radius:var(--radius-input);
    padding:var(--space-2) var(--space-3) var(--space-2) 38px;
    font:inherit;
    color:var(--ink-primary);
    background:var(--bg-card);
    cursor:pointer;
    transition:border-color .15s, box-shadow .15s;
}
.select-control > svg {
    position:absolute;
    left:12px;
    top:50%;
    width:16px;
    height:16px;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
    transform:translateY(-50%);
    pointer-events:none;
}
.select-control:hover select { border-color:#B7C5BF; }
.select-control select:focus {
    outline:none;
    border-color:var(--accent);
    box-shadow:0 0 0 3px rgba(31,138,91,.15);
}
.select-control:focus-within { color:var(--accent); }

.filter-toggle {
    display:inline-flex;
    align-items:center;
    gap:var(--space-2);
    min-height:var(--input-height);
    padding:0 var(--space-3);
    border:1px solid var(--border);
    border-radius:var(--radius-input);
    background:var(--bg-card);
    color:var(--ink-secondary);
    font-size:13px;
    cursor:pointer;
    user-select:none;
    transition:border-color .15s, background .15s, color .15s;
}
.filter-toggle:hover { border-color:#B7C5BF; color:var(--ink-primary); }
.filter-toggle input {
    position:absolute;
    inline-size:1px;
    block-size:1px;
    opacity:0;
}
.filter-toggle-box {
    display:grid;
    place-items:center;
    width:18px;
    height:18px;
    flex:0 0 18px;
    border:1.5px solid #9AA9A2;
    border-radius:5px;
    color:#fff;
    background:#fff;
    transition:border-color .15s, background .15s;
}
.filter-toggle-box svg {
    width:13px;
    height:13px;
    fill:none;
    stroke:currentColor;
    stroke-width:2.5;
    stroke-linecap:round;
    stroke-linejoin:round;
    opacity:0;
}
.filter-toggle:has(input:focus-visible) {
    outline:3px solid rgba(31,138,91,.18);
    outline-offset:2px;
}
.filter-toggle:has(input:checked) {
    border-color:var(--accent);
    color:var(--ink-primary);
    background:#F2FAF6;
}
.filter-toggle input:checked + .filter-toggle-box {
    border-color:var(--accent);
    background:var(--accent);
}
.filter-toggle input:checked + .filter-toggle-box svg { opacity:1; }

/* ---- Report Filters ---- */
.report-filters {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(240px,1.3fr) auto auto auto;
    align-items:end;
    gap:var(--space-4);
    margin-bottom:var(--space-4);
    background:var(--bg-card);
    border:1px solid var(--border);
    border-radius:var(--radius-card);
    padding:var(--space-4) var(--space-5);
    box-shadow:var(--shadow-sm);
}

/* ---- KPI Dashboard ---- */
.kpi-live-status { display:inline-flex; align-items:center; gap:var(--space-2); color:var(--ink-secondary); font-size:11px; white-space:nowrap; }
.kpi-live-status i { width:8px; height:8px; border-radius:50%; background:var(--success); box-shadow:0 0 0 4px rgba(31,138,91,.12); }
.kpi-hero-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--space-4); margin-bottom:var(--space-4); }
.kpi-hero-card { min-height:142px; display:flex; flex-direction:column; justify-content:space-between; gap:var(--space-3); padding:var(--space-5); background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-card); box-shadow:var(--shadow-sm); }
.kpi-hero-label { color:var(--ink-secondary); font-size:12px; }
.kpi-hero-card strong { color:var(--accent); font-size:32px; line-height:1; letter-spacing:-.04em; }
.kpi-hero-card small { color:var(--ink-secondary); font-size:11px; }
.kpi-hero-card small b { color:var(--ink-primary); font-weight:700; }
.kpi-chart-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); gap:var(--space-4); margin-bottom:var(--space-4); }
.kpi-panel { min-width:0; }
.kpi-rejection-list { display:grid; gap:var(--space-4); }
.kpi-rejection-row > div:first-child { display:flex; justify-content:space-between; gap:var(--space-3); font-size:12px; margin-bottom:var(--space-2); }
.kpi-rejection-row strong { color:var(--accent); }
.kpi-rejection-row small { display:block; margin-top:var(--space-1); color:var(--ink-secondary); font-size:11px; }
.kpi-track { height:9px; overflow:hidden; background:#E8EFEB; border-radius:8px; direction:ltr; }
.kpi-track i { display:block; height:100%; background:var(--accent); border-radius:8px; }
.kpi-rank { display:inline-flex; min-width:30px; justify-content:center; padding:4px 8px; color:#166534; background:#E8F5ED; border-radius:var(--radius-badge); font-weight:700; }
@media (max-width:900px) {
    .kpi-hero-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .kpi-chart-grid { grid-template-columns:1fr; }
}
@media (max-width:600px) {
    .kpi-hero-grid { grid-template-columns:1fr; }
    .kpi-hero-card { min-height:120px; }
}
.report-date-field { display:grid; gap:var(--space-1); min-width:0; }
.report-date-field label { font-size:12px; color:var(--ink-secondary); }
.report-date-field .select-control { min-width:0; width:100%; }
.report-date-field input[type="date"],
.report-date-field input.jalali-date-input {
    width:100%;
    min-height:var(--input-height);
    border:1px solid var(--border);
    border-radius:var(--radius-input);
    padding:var(--space-2) var(--space-3);
    font:inherit;
    font-weight:400;
    color:var(--ink-primary);
    background:var(--bg-card);
    direction:ltr;
    text-align:right;
}
.report-date-field input[type="date"]:focus,
.report-date-field input.jalali-date-input:focus {
    outline:none;
    border-color:var(--accent);
    box-shadow:0 0 0 3px rgba(31,138,91,.15);
}

/* ---- Jalali date-range picker (analytics filters) ---- */
.jalali-range {
    grid-column:1 / span 2;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:var(--space-1) var(--space-4);
    align-items:end;
    position:relative;
}
.filters .jalali-range {
    flex:1 1 360px;
    min-width:min(100%, 360px);
}
.jalali-range .report-date-field { min-width:0; }
.jalali-range > .error-text {
    grid-column:1 / -1;
    margin:0;
    font-size:12px;
    color:var(--danger);
}
.jalali-calendar {
    position:absolute;
    top:calc(100% + var(--space-2));
    right:0;
    width:min(360px, calc(100vw - 32px));
    max-height:min(430px, 70vh);
    overflow:auto;
    margin-top:0;
    padding:var(--space-3);
    background:var(--bg-card);
    border:1px solid var(--border);
    border-radius:var(--radius-card);
    box-shadow:var(--shadow-md);
    z-index:5;
}
.jalali-calendar[hidden] { display:none; }
.jalali-cal-header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--space-1);
    margin-bottom:var(--space-2);
}
.jalali-cal-header .jalali-nav { padding:0 var(--space-2); }
.jalali-cal-title {
    flex:1;
    text-align:center;
    font-size:13px;
    font-weight:600;
    color:var(--ink-primary);
    white-space:nowrap;
}
.jalali-weekdays {
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:2px;
    margin-bottom:var(--space-1);
}
.jalali-weekdays span {
    text-align:center;
    font-size:11px;
    font-weight:600;
    color:var(--ink-secondary);
    padding:var(--space-1) 0;
}
.jalali-days {
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:2px;
}
.jalali-day-empty { padding:0; }
.jalali-day {
    min-height:36px;
    border:1px solid transparent;
    border-radius:8px;
    background:transparent;
    color:var(--ink-primary);
    font:inherit;
    font-size:13px;
    cursor:pointer;
    transition:background .1s, color .1s, border-color .1s;
}
.jalali-day:hover { background:var(--bg-page); }
.jalali-day:focus-visible { outline:3px solid rgba(31,138,91,.25); outline-offset:1px; }
.jalali-day.is-today { border-color:var(--accent); }
.jalali-day.is-start,
.jalali-day.is-end {
    background:var(--accent);
    border-color:var(--accent);
    color:#fff;
    font-weight:700;
}
.jalali-day.is-in-range { background:#E8F5ED; border-radius:0; }
.jalali-day.is-start.is-in-range { border-radius:0 8px 8px 0; }
.jalali-day.is-end.is-in-range { border-radius:8px 0 0 8px; }
.jalali-cal-footer {
    display:flex;
    justify-content:flex-end;
    margin-top:var(--space-2);
}

@media (max-width:900px) {
    .jalali-range { grid-column:1 / -1; }
}
@media (max-width:600px) {
    .jalali-range {
        grid-column:1 / -1;
        grid-template-columns:1fr;
    }
    .filters .jalali-range { flex-basis:100%; }
}

/* ---- Report Grid ---- */
.report-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-4); margin-top:var(--space-4); }

/* ---- Detail Page Grid ---- */
.driver-profile-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-4); }

/* ---- Call Info Card ---- */
.call-info {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:var(--space-2) var(--space-4);
    padding:var(--space-3) 0;
}
.call-info > span {
    display:flex;
    flex-direction:column;
    gap:2px;
}
.call-info > span > strong {
    font-size:13px;
    font-weight:500;
    color:var(--ink-primary);
}
.call-info > span > small {
    font-size:11px;
    color:var(--ink-secondary);
}

/* ---- Responsive ---- */
@media (max-width:900px) {
    .sidebar { width:180px; padding:var(--space-4) var(--space-3); }
    .content { padding:var(--space-4); }
    .kpi-row { grid-template-columns:repeat(2,1fr); }
    .form-grid { grid-template-columns:1fr; }
    .report-grid { grid-template-columns:1fr; }
    .report-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .report-filters .btn { width:100%; justify-content:center; }
    .driver-profile-grid { grid-template-columns:1fr; }
    .detail-list { grid-template-columns:1fr; }
    .call-info { grid-template-columns:1fr 1fr; }
    .history-item { grid-template-columns:1fr 1fr; gap:var(--space-2); }
    .sidebar nav a { font-size:13px; min-height:36px; }
}
@media (max-width:600px) {
    .shell { display:block; }
    .mobile-menu-toggle { display:inline-flex; }
    .sidebar {
        position:fixed;
        inset-block:0;
        inset-inline-end:0;
        z-index:110;
        width:min(300px, calc(100vw - 48px));
        transform:translateX(110%);
        transition:transform .2s ease;
        overflow-y:auto;
        box-shadow:-12px 0 28px rgba(16,36,28,.18);
    }
    .sidebar.is-open { transform:translateX(0); }
    .sidebar-overlay {
        position:fixed;
        inset:0;
        z-index:100;
        display:block;
        background:rgba(16,36,28,.4);
    }
    .sidebar-overlay[hidden] { display:none; }
    .content { padding:var(--space-4) var(--space-3); }
    .page-head { align-items:flex-start; flex-direction:column; }
    .page-actions { width:100%; }
    .page-actions .btn, .page-head > a.button, .page-head > a.btn { width:100%; justify-content:center; }
    .form-panel, .card, .form-section { padding:var(--space-4); }
    .form-grid, .driver-profile-grid, .report-grid { grid-template-columns:1fr; }
    .filters > input, .filters .select-control, .filters .filter-toggle, .filters .button, .filters .btn { width:100%; }
    .btn, .button { min-height:44px; }
    table[data-mobile-cards], table[data-mobile-cards] tbody, table[data-mobile-cards] tr, table[data-mobile-cards] td { display:block; width:100%; }
    table[data-mobile-cards] thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
    table[data-mobile-cards] tr { padding:var(--space-3); border-bottom:1px solid var(--border); }
    table[data-mobile-cards] tr:last-child { border-bottom:0; }
    table[data-mobile-cards] td { display:flex; align-items:baseline; justify-content:space-between; gap:var(--space-3); padding:var(--space-2) 0; border:0; white-space:normal; text-align:left; }
    table[data-mobile-cards] td::before { content:attr(data-label); color:var(--ink-secondary); font-size:11px; font-weight:600; flex:0 0 34%; text-align:right; }
    table[data-mobile-cards] td.table-empty { display:block; text-align:center; }
    table[data-mobile-cards] td.table-empty::before { content:none; }
    .confirm-dialog-actions { flex-direction:column; }
    .confirm-dialog-actions .btn { width:100%; justify-content:center; }
}
@media (prefers-reduced-motion:reduce) {
    *, *::before, *::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; }
}
@media (max-width:600px) {
    .kpi-row { grid-template-columns:repeat(2,1fr); gap:var(--space-3); }
    .kpi-card { padding:var(--space-4); }
    .call-info { grid-template-columns:1fr; }
    .report-filters { grid-template-columns:1fr; }
}

/* =====================================================================
   LEGACY COMPAT — aliases for templates not yet migrated from old classes
   ===================================================================== */

/* ---- .button → .btn ---- */
.button {
    display:inline-flex;
    align-items:center;
    gap:var(--space-2);
    min-height:var(--btn-height);
    padding:0 var(--space-4);
    border-radius:var(--radius-btn);
    font-size:13px; font-weight:500; line-height:1;
    cursor:pointer;
    transition:background .12s, border-color .12s, color .12s;
    border:1px solid var(--border);
    background:var(--bg-card);
    color:var(--ink-primary);
    white-space:nowrap;
    text-decoration:none;
}
.button:hover { border-color:var(--accent); text-decoration:none; }
.button.primary { background:var(--accent); border-color:var(--accent); color:#fff; }
.button.primary:hover { background:var(--accent-hover); }
.button.danger { background:var(--danger); border-color:var(--danger); color:#fff; }
.button.danger:hover { background:#A83A2E; }
.button.small { min-height:32px; font-size:12px; padding:0 var(--space-3); }
.button:disabled, .button.disabled { opacity:.5; cursor:not-allowed; pointer-events:none; }

/* ---- .metrics → .kpi-row ---- */
.metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-4); margin-bottom:var(--space-6); }
.metrics > div { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-card); box-shadow:var(--shadow-sm); padding:var(--space-5) var(--space-6); text-align:center; }
.metrics strong { display:block; font-size:22px; font-weight:700; line-height:1.2; color:var(--ink-primary); margin-bottom:var(--space-1); }
.metrics > div > span:last-child { display:block; font-size:13px; color:var(--ink-secondary); font-weight:500; }
@media (max-width:900px) { .metrics { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .metrics { grid-template-columns:repeat(2,1fr); } }

/* ---- .status → .badge ---- */
.status { display:inline-flex; align-items:center; padding:2px 8px; border-radius:var(--radius-badge); font-size:11px; font-weight:600; line-height:1.5; }
.status.active, .status.waybill, .status.waybill_followup, .status.waybill_issued, .status.accepted, .status.issued, .status.answered, .status.open { background:#E8F5ED; color:#166534; }
.status.rejected, .status.blacklisted, .status.lost, .status.closed { background:#FBEAE8; color:#A1382E; }
.status.callback, .status.in_progress, .status.pending, .status.awaiting_supervisor, .status.awaiting, .status.unread { background:#FCF3E1; color:#A46D23; }
.status.no_answer, .status.excluded_today { background:#F2F4F3; color:#4D5C56; }
.status.invalid_number, .status.invalid { background:#FBEAE8; color:#A1382E; }
.status.unassigned, .status.waiting, .status.filled { background:#E3F0FC; color:#1E5F80; }
.status.paused { background:#FCF3E1; color:#A46D23; }
.status.draft, .status.created { background:#F2F4F3; color:#4D5C56; }
.status.expired, .status.cancelled, .status.deleted { background:#FBEAE8; color:#A1382E; }

/* ---- .form-panel ---- */
.form-panel { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-card); box-shadow:var(--shadow-sm); padding:var(--space-5) var(--space-6); margin-bottom:var(--space-4); }
.form-panel > p, .form-panel > div:not(.assignment-list) { margin:0 0 var(--space-4); }
.form-panel > p:last-child { margin-bottom:0; }
.form-panel label { display:flex; flex-direction:column; gap:var(--space-1); margin-bottom:var(--space-4); }
.form-panel label:last-of-type { margin-bottom:var(--space-4); }
.form-panel input, .form-panel select, .form-panel textarea { width:100%; min-height:var(--input-height); border:1px solid var(--border); border-radius:var(--radius-input); padding:var(--space-2) var(--space-3); font:inherit; font-size:13px; font-weight:400; color:var(--ink-primary); background:var(--bg-card); }
.form-panel input:focus, .form-panel select:focus, .form-panel textarea:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(31,138,91,.15); }
.form-panel.compact { padding:var(--space-4); }
.form-panel.compact h2 { font-size:15px; font-weight:600; margin:0 0 var(--space-3); }
.form-panel.compact label { font-size:13px; }
.form-panel .help-text, .form-panel small.muted { font-size:11px; color:var(--ink-secondary); }
.form-panel .error-text, .form-panel .error { font-size:11px; color:var(--danger); }
#proposed-fare-field[hidden] { display:none; }
.form-actions {
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:var(--space-3);
    margin-top:var(--space-4);
}
@media (max-width:600px) {
    .form-actions { flex-direction:column; align-items:stretch; }
    .form-actions .btn, .form-actions .button { width:100%; justify-content:center; }
}

/* ---- Operator form ---- */
.operator-form .operator-checks {
    display:flex;
    align-items:center;
    gap:var(--space-4);
    min-height:var(--input-height);
}
.operator-form .form-check {
    display:inline-flex;
    flex-direction:row;
    align-items:center;
    gap:var(--space-2);
    min-height:40px;
    margin:0;
    padding:0 var(--space-3);
    border:1px solid var(--border);
    border-radius:var(--radius-input);
    color:var(--ink-secondary);
    cursor:pointer;
}
.operator-form .form-check input {
    width:auto;
    min-height:auto;
    accent-color:var(--accent);
}
.operator-form .form-check:has(input:checked) {
    border-color:var(--accent);
    color:var(--ink-primary);
    background:#F2FAF6;
}
.operator-form .form-actions {
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:var(--space-3);
    margin-top:var(--space-1);
}

/* ---- .check ---- */
.check { display:flex !important; flex-direction:row !important; align-items:center; gap:var(--space-2); font-size:13px; font-weight:400; color:var(--ink-primary); cursor:pointer; }
.check input[type="checkbox"] { width:auto; min-height:auto; margin:0; }

/* ---- .assignment-list ---- */
.assignment-list { display:flex; flex-direction:column; gap:var(--space-1); margin:var(--space-3) 0; }
.assignment-list strong { font-size:13px; color:var(--ink-secondary); display:block; margin-bottom:var(--space-1); }

/* ---- .history / .history-row ---- */
.history { margin-bottom:var(--space-4); }
.history h2 { font-size:15px; font-weight:600; margin:0 0 var(--space-3); color:var(--ink-primary); }
.history-row { display:flex; flex-wrap:wrap; gap:var(--space-3); padding:var(--space-3) 0; border-bottom:1px solid var(--border); font-size:13px; align-items:center; }

/* ---- .field-textarea ---- */
.field-textarea { width:100%; min-height:84px; border:1px solid var(--border); border-radius:var(--radius-input); padding:var(--space-2) var(--space-3); font:inherit; font-size:13px; font-weight:400; color:var(--ink-primary); resize:vertical; }
.field-textarea:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(31,138,91,.15); }

/* ---- .btn-lg ---- */
.btn-lg { min-height:48px; font-size:16px; padding:0 var(--space-5); }

/* ---- waybill followup ---- */
.waybill-followup-form .followup-field { display:flex; flex-direction:column; gap:var(--space-1); margin-bottom:var(--space-4); }
.waybill-followup-form .followup-field label { margin:0; }
.waybill-followup-form .followup-field input,
.waybill-followup-form .followup-field select,
.waybill-followup-form .followup-field textarea { width:100%; min-height:var(--input-height); border:1px solid var(--border); border-radius:var(--radius-input); padding:var(--space-2) var(--space-3); font:inherit; font-size:13px; color:var(--ink-primary); }
.waybill-followup-form .followup-field input:focus,
.waybill-followup-form .followup-field select:focus,
.waybill-followup-form .followup-field textarea:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(31,138,91,.15); }
.waybill-followup-form .radio-group { display:flex; gap:var(--space-4); }
.waybill-followup-form .radio-group label { display:flex; flex-direction:row; align-items:center; gap:var(--space-1); font-weight:400; font-size:13px; }
.form-field { display:grid; gap:var(--space-1); margin-bottom:var(--space-4); }
.form-field label { display:block; margin:0; }
.form-field .required { color:var(--danger); }
.form-field .help-text { color:var(--ink-secondary); font-size:12px; }
.form-field .error-text { color:var(--danger); font-size:12px; }
.confirm-dialog {
    width:min(100% - 32px, 420px);
    border:1px solid var(--border);
    border-radius:var(--radius-card);
    padding:0;
    color:var(--ink-primary);
    box-shadow:var(--shadow-lg);
}
.confirm-dialog::backdrop { background:rgba(16,36,28,.42); }
.confirm-dialog-content { padding:var(--space-6); }
.confirm-dialog h2 { margin:0 0 var(--space-2); font-size:17px; }
.confirm-dialog p { margin:0 0 var(--space-5); color:var(--ink-secondary); line-height:1.8; }
.confirm-dialog-actions { display:flex; justify-content:flex-start; gap:var(--space-3); }

/* ---- .disabled-form ---- */
.disabled-form { opacity:.65; pointer-events:none; }

/* ---- report sections ---- */
.report-section { margin-bottom:var(--space-6); }
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:var(--space-3); margin-bottom:var(--space-3); }
.section-heading h2 { font-size:15px; font-weight:600; margin:0; color:var(--ink-primary); }
.section-heading p { margin:var(--space-1) 0 0; }
.chart-total { font-size:13px; font-weight:600; color:var(--ink-secondary); white-space:nowrap; }
.suggestion-section { margin-top:var(--space-6); }



/* ---- Driver assignment ---- */
.load-actions { margin-bottom:var(--space-5); }
.assignment-panel {
    margin:var(--space-6) 0;
    padding:var(--space-5);
    background:var(--bg-card);
    border:1px solid var(--border);
    border-radius:var(--radius-card);
}
.assignment-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:var(--space-4);
    margin-bottom:var(--space-4);
}
.assignment-head h2 { margin:0 0 var(--space-1); font-size:15px; }
.assignment-head p { margin:0; }
.assignment-count {
    flex:none;
    padding:4px 8px;
    border-radius:6px;
    color:var(--ink-secondary);
    background:var(--bg-page);
    font-size:12px;
}
.assignment-search {
    width:100%;
    min-height:var(--input-height);
    margin-bottom:var(--space-3);
    border:1px solid var(--border);
    border-radius:var(--radius-input);
    padding:var(--space-2) var(--space-3);
    font:inherit;
    color:var(--ink-primary);
    background:var(--bg-card);
}
.assignment-search:focus {
    outline:none;
    border-color:var(--accent);
    box-shadow:0 0 0 3px rgba(31,138,91,.15);
}
.assignment-bulkbar {
    display:flex;
    align-items:center;
    gap:var(--space-2);
    flex-wrap:wrap;
    padding:var(--space-2);
    margin-bottom:var(--space-2);
    border-radius:10px;
    background:var(--bg-page);
}
.assignment-specialist { min-width:220px; }
.assignment-list {
    max-height:420px;
    overflow:auto;
    margin:0;
    border-top:1px solid var(--border);
}
.assignment-item {
    display:grid;
    grid-template-columns:24px minmax(160px,1fr) auto minmax(110px,auto) minmax(135px,auto) minmax(220px,auto);
    align-items:center;
    gap:var(--space-3);
    min-height:58px;
    padding:var(--space-2);
    border-bottom:1px solid var(--border);
}
.assignment-item:hover { background:#FAFCFB; }
.assignment-item[hidden] { display:none; }
.assignment-check {
    display:grid;
    place-items:center;
    cursor:pointer;
}
.assignment-check input {
    appearance:none;
    inline-size:20px;
    block-size:20px;
    margin:0;
    border:1.5px solid #9AA9A2;
    border-radius:5px;
    background:#fff;
    cursor:pointer;
    position:relative;
}
.assignment-check input::after {
    content:"";
    position:absolute;
    width:5px;
    height:10px;
    left:6px;
    top:2px;
    border:solid #fff;
    border-width:0 2px 2px 0;
    transform:rotate(45deg);
    opacity:0;
}
.assignment-check input:checked {
    border-color:var(--accent);
    background:var(--accent);
}
.assignment-check input:checked::after { opacity:1; }
.assignment-check input:focus-visible {
    outline:3px solid rgba(31,138,91,.18);
    outline-offset:2px;
}
.assignment-check .filter-toggle-box { display:none; }
.assignment-driver { min-width:0; }
.assignment-driver {
    display:flex;
    align-items:center;
    gap:var(--space-3);
}
.assignment-driver strong,
.assignment-driver span {
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.assignment-driver span,
.assignment-current { color:var(--ink-secondary); font-size:12px; }
.assignment-driver strong { flex:0 1 auto; min-width:0; }
.assignment-driver span { flex:0 0 auto; }
.assignment-current { white-space:nowrap; }
.assignment-sync-time { color:var(--ink-secondary); font-size:12px; white-space:nowrap; }
.assignment-single {
    display:flex;
    align-items:center;
    gap:var(--space-2);
}
.assignment-single .select-control { min-width:170px; }

@media (max-width:900px) {
    .assignment-item {
        grid-template-columns:24px minmax(140px,1fr) auto;
    }
    .assignment-current { display:none; }
    .assignment-sync-time { display:none; }
    .assignment-single { grid-column:2 / -1; }
    .assignment-single .select-control { flex:1; }
}

@media (max-width:600px) {
    .filters > input,
    .filters .select-control,
    .filters .filter-toggle,
    .filters .button { width:100%; }
    .assignment-panel { padding:var(--space-4); }
    .assignment-head { align-items:center; }
    .assignment-bulkbar { align-items:stretch; }
    .assignment-bulkbar > * { width:100%; }
    .assignment-item {
        grid-template-columns:24px minmax(0,1fr) auto;
        gap:var(--space-2);
    }
    .assignment-single { grid-column:1 / -1; }
}

@media (max-width:600px) {
    .operator-form .operator-checks {
        align-items:stretch;
        flex-direction:column;
        gap:var(--space-2);
    }
    .operator-form .form-check { width:100%; }
    .operator-form .form-actions { justify-content:stretch; }
    .operator-form .form-actions .btn { flex:1; }
    .driver-history .history-item { grid-template-columns:1fr 1fr; }
    .driver-history .history-item > span:last-child { grid-column:1 / -1; }
}
