/* MASAR 360 — P20.2A Unified Design System (tokens + shared components). Additive, namespaced ds-*, loaded last. */
:root{
  --ds-font:"IBM Plex Sans Arabic","Noto Sans Arabic","Segoe UI",Tahoma,Arial,sans-serif;
  --ds-font-mono:Consolas,"Courier New",monospace;
  --ds-fs-page-title:22px; --ds-fs-section-title:17px; --ds-fs-card-title:15px;
  --ds-fs-body:14px; --ds-fs-secondary:13px; --ds-fs-label:12.5px; --ds-fs-caption:11.5px;
  --ds-lh-tight:1.25; --ds-lh-normal:1.55; --ds-lh-loose:1.8;
  --ds-fw-regular:400; --ds-fw-medium:500; --ds-fw-semibold:600; --ds-fw-bold:700;

  --ds-space-1:4px; --ds-space-2:8px; --ds-space-3:12px; --ds-space-4:16px;
  --ds-space-5:20px; --ds-space-6:24px; --ds-space-8:32px; --ds-space-10:40px;
  --ds-gap-component:var(--ds-space-2); --ds-card-padding:var(--ds-space-4);
  --ds-section-spacing:var(--ds-space-6); --ds-form-spacing:var(--ds-space-4);
  --ds-modal-padding:var(--ds-space-5); --ds-cell-padding-y:10px; --ds-cell-padding-x:var(--ds-space-3);

  --ds-input-h:42px; --ds-btn-h:40px; --ds-btn-h-sm:32px; --ds-icon-btn:38px;
  --ds-touch-min:44px; --ds-modal-w:560px; --ds-modal-w-lg:760px; --ds-drawer-w:380px;
  --ds-card-min-w:220px; --ds-row-h:48px;

  --ds-radius-sm:6px; --ds-radius-md:10px; --ds-radius-lg:14px;
  --ds-border-w:1px; --ds-focus-ring:0 0 0 3px rgba(37,99,235,.28);

  --ds-shadow-card:0 1px 2px rgba(16,24,40,.05), 0 1px 3px rgba(16,24,40,.06);
  --ds-shadow-modal:0 10px 15px -3px rgba(16,24,40,.12), 0 4px 6px -4px rgba(16,24,40,.10);
  --ds-shadow-dropdown:0 4px 6px -2px rgba(16,24,40,.08), 0 10px 15px -3px rgba(16,24,40,.10);
  --ds-shadow-hover:0 4px 12px rgba(16,24,40,.10);

  --ds-primary:#0f6cbd; --ds-primary-dark:#0a5aa0; --ds-primary-hover:#0a5aa0;
  --ds-secondary:#334155; --ds-surface:#ffffff; --ds-bg:#f5f8fb; --ds-border:#dbe7ef;
  --ds-text:#16324f; --ds-text-muted:#5b7186; --ds-success:#1f9d55; --ds-success-bg:#e7f7ee;
  --ds-warning:#b7791f; --ds-warning-bg:#fdf3d9; --ds-danger:#c0362c; --ds-danger-bg:#fbe7e5;
  --ds-info:#2563eb; --ds-info-bg:#eaf2ff; --ds-disabled:#a7b3bf; --ds-hover:#eef5fb;
}
@media (prefers-color-scheme: light){:root{--ds-primary-dark:#0a5aa0;}}

*{box-sizing:border-box;}
.ds-scope{font-family:var(--ds-font);}

/* ---- Buttons ---- */
.ds-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--ds-space-2);
  height:var(--ds-btn-h);min-height:var(--ds-touch-min);padding-inline:var(--ds-space-4);
  border-radius:var(--ds-radius-sm);border:var(--ds-border-w) solid transparent;font-family:var(--ds-font);
  font-size:var(--ds-fs-body);font-weight:var(--ds-fw-semibold);cursor:pointer;white-space:nowrap;
  transition:background-color .15s ease, box-shadow .15s ease; line-height:1;}
.ds-btn:focus-visible{outline:none;box-shadow:var(--ds-focus-ring);}
.ds-btn[disabled],.ds-btn.ds-disabled{opacity:.55;cursor:not-allowed;pointer-events:none;}
.ds-btn-sm{height:var(--ds-btn-h-sm);padding-inline:var(--ds-space-3);font-size:var(--ds-fs-secondary);}
.ds-btn-primary{background:var(--ds-primary);color:#fff;}
.ds-btn-primary:hover{background:var(--ds-primary-hover);}
.ds-btn-secondary{background:var(--ds-secondary);color:#fff;}
.ds-btn-outline{background:transparent;border-color:var(--ds-border);color:var(--ds-text);}
.ds-btn-outline:hover{background:var(--ds-hover);}
.ds-btn-text{background:transparent;color:var(--ds-primary);padding-inline:var(--ds-space-2);}
.ds-btn-success{background:var(--ds-success);color:#fff;}
.ds-btn-warning{background:var(--ds-warning);color:#fff;}
.ds-btn-danger{background:var(--ds-danger);color:#fff;}
.ds-btn-icon{width:var(--ds-icon-btn);height:var(--ds-icon-btn);padding:0;border-radius:50%;background:transparent;color:var(--ds-text-muted);}
.ds-btn-icon:hover{background:var(--ds-hover);color:var(--ds-text);}
.ds-btn-icon.ds-danger-icon:hover{background:var(--ds-danger-bg);color:var(--ds-danger);}
.ds-btn.ds-loading{position:relative;color:transparent!important;pointer-events:none;}
.ds-btn.ds-loading::after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;
  border:2px solid rgba(255,255,255,.5);border-top-color:#fff;animation:ds-spin .7s linear infinite;}
.ds-btn-outline.ds-loading::after{border-color:rgba(15,108,189,.35);border-top-color:var(--ds-primary);}
@keyframes ds-spin{to{transform:rotate(360deg);}}
@media (prefers-reduced-motion:reduce){.ds-btn.ds-loading::after{animation-duration:1.4s;}}

/* ---- Form fields ---- */
.ds-field{display:flex;flex-direction:column;gap:6px;margin-block-end:var(--ds-form-spacing);}
.ds-field label{font-size:var(--ds-fs-label);font-weight:var(--ds-fw-medium);color:var(--ds-text-muted);}
.ds-field .ds-required{color:var(--ds-danger);margin-inline-start:2px;}
.ds-input,.ds-select,.ds-textarea{height:var(--ds-input-h);border:var(--ds-border-w) solid var(--ds-border);
  border-radius:var(--ds-radius-sm);padding-inline:var(--ds-space-3);font-family:var(--ds-font);
  font-size:16px;background:var(--ds-surface);color:var(--ds-text);width:100%;}
.ds-textarea{height:auto;min-height:96px;padding-block:var(--ds-space-2);resize:vertical;}
.ds-input:focus,.ds-select:focus,.ds-textarea:focus{outline:none;border-color:var(--ds-primary);box-shadow:var(--ds-focus-ring);}
.ds-input[disabled],.ds-select[disabled]{background:#f1f5f9;color:var(--ds-disabled);cursor:not-allowed;}
.ds-input[readonly]{background:#f8fafc;}
.ds-field.ds-error .ds-input,.ds-field.ds-error .ds-select,.ds-field.ds-error .ds-textarea{border-color:var(--ds-danger);}
.ds-helper{font-size:var(--ds-fs-caption);color:var(--ds-text-muted);}
.ds-error-text{font-size:var(--ds-fs-caption);color:var(--ds-danger);}

/* ---- Cards ---- */
.ds-card{background:var(--ds-surface);border:var(--ds-border-w) solid var(--ds-border);
  border-radius:var(--ds-radius-md);padding:var(--ds-card-padding);box-shadow:var(--ds-shadow-card);}
.ds-card-title{font-size:var(--ds-fs-card-title);font-weight:var(--ds-fw-semibold);color:var(--ds-text);margin-block-end:var(--ds-space-2);}
.ds-stat-card{display:flex;flex-direction:column;gap:4px;min-width:var(--ds-card-min-w);}
.ds-stat-card .ds-stat-value{font-size:24px;font-weight:var(--ds-fw-bold);color:var(--ds-text);}
.ds-stat-card .ds-stat-label{font-size:var(--ds-fs-label);color:var(--ds-text-muted);}
.ds-action-card{display:flex;align-items:center;justify-content:space-between;gap:var(--ds-space-3);}

/* ---- Table ---- */
.ds-table-wrap{overflow-x:auto;border:var(--ds-border-w) solid var(--ds-border);border-radius:var(--ds-radius-md);}
table.ds-table{width:100%;border-collapse:collapse;font-size:var(--ds-fs-body);}
.ds-table th{position:sticky;top:0;background:var(--ds-bg);font-weight:var(--ds-fw-semibold);
  font-size:var(--ds-fs-label);color:var(--ds-text-muted);text-align:start;padding:var(--ds-cell-padding-y) var(--ds-cell-padding-x);
  border-block-end:var(--ds-border-w) solid var(--ds-border);white-space:nowrap;}
.ds-table td{padding:var(--ds-cell-padding-y) var(--ds-cell-padding-x);border-block-end:var(--ds-border-w) solid var(--ds-border);vertical-align:middle;}
.ds-table tbody tr:hover{background:var(--ds-hover);}
.ds-table td.ds-truncate{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ds-table .ds-actions-cell{display:flex;gap:6px;justify-content:flex-end;}
.ds-cards-list{display:none;flex-direction:column;gap:var(--ds-space-3);}

/* ---- Modal / Drawer ---- */
.ds-modal-overlay{position:fixed;inset:0;background:rgba(15,24,38,.5);display:flex;align-items:center;
  justify-content:center;z-index:200;padding:var(--ds-space-4);}
.ds-modal{width:100%;max-width:var(--ds-modal-w);max-height:min(88vh,760px);display:flex;flex-direction:column;
  background:var(--ds-surface);border-radius:var(--ds-radius-lg);box-shadow:var(--ds-shadow-modal);overflow:hidden;}
.ds-modal.ds-modal-lg{max-width:var(--ds-modal-w-lg);}
.ds-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ds-space-3);
  padding:var(--ds-modal-padding);border-block-end:var(--ds-border-w) solid var(--ds-border);flex:none;}
.ds-modal-title{font-size:var(--ds-fs-section-title);font-weight:var(--ds-fw-semibold);color:var(--ds-text);}
.ds-modal-desc{font-size:var(--ds-fs-secondary);color:var(--ds-text-muted);margin-block-start:4px;}
.ds-modal-body{padding:var(--ds-modal-padding);overflow-y:auto;flex:1;}
.ds-modal-footer{display:flex;justify-content:flex-end;gap:var(--ds-space-2);padding:var(--ds-modal-padding);
  border-block-start:var(--ds-border-w) solid var(--ds-border);flex:none;flex-wrap:wrap;}
.ds-modal-close{width:var(--ds-icon-btn);height:var(--ds-icon-btn);border-radius:50%;border:none;
  background:transparent;font-size:18px;cursor:pointer;color:var(--ds-text-muted);flex:none;}
.ds-modal-close:hover{background:var(--ds-hover);}
body.ds-modal-open{overflow:hidden;}

/* ---- Badges ---- */
.ds-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;
  font-size:var(--ds-fs-caption);font-weight:var(--ds-fw-semibold);white-space:nowrap;}
.ds-badge-active{background:var(--ds-success-bg);color:var(--ds-success);}
.ds-badge-suspended{background:var(--ds-warning-bg);color:var(--ds-warning);}
.ds-badge-archived{background:#eef1f5;color:#51606f;}
.ds-badge-soft_deleted{background:var(--ds-danger-bg);color:var(--ds-danger);}
.ds-badge-success{background:var(--ds-success-bg);color:var(--ds-success);}
.ds-badge-warning{background:var(--ds-warning-bg);color:var(--ds-warning);}
.ds-badge-expired{background:var(--ds-danger-bg);color:var(--ds-danger);}
.ds-badge-pending{background:var(--ds-info-bg);color:var(--ds-info);}
.ds-badge-rejected{background:var(--ds-danger-bg);color:var(--ds-danger);}
.ds-badge-info{background:var(--ds-info-bg);color:var(--ds-info);}

/* ---- Tabs ---- */
.ds-tabs{display:flex;gap:4px;border-block-end:var(--ds-border-w) solid var(--ds-border);flex-wrap:wrap;overflow-x:auto;}
.ds-tab{padding:var(--ds-space-2) var(--ds-space-4);font-size:var(--ds-fs-body);font-weight:var(--ds-fw-medium);
  color:var(--ds-text-muted);background:transparent;border:none;border-block-end:2px solid transparent;
  cursor:pointer;white-space:nowrap;min-height:var(--ds-touch-min);}
.ds-tab.ds-active{color:var(--ds-primary);border-block-end-color:var(--ds-primary);font-weight:var(--ds-fw-semibold);}
.ds-tab:focus-visible{outline:none;box-shadow:var(--ds-focus-ring);}

/* ---- Alerts / toasts ---- */
.ds-alert{display:flex;gap:var(--ds-space-2);align-items:flex-start;padding:var(--ds-space-3) var(--ds-space-4);
  border-radius:var(--ds-radius-sm);font-size:var(--ds-fs-body);border:var(--ds-border-w) solid transparent;}
.ds-alert-success{background:var(--ds-success-bg);color:#166534;border-color:#bbf0cf;}
.ds-alert-warning{background:var(--ds-warning-bg);color:#92600f;border-color:#f4dfa3;}
.ds-alert-danger{background:var(--ds-danger-bg);color:#8f261e;border-color:#f2c6c1;}
.ds-alert-info{background:var(--ds-info-bg);color:#1e3a8a;border-color:#c8dcfb;}
.ds-toast{position:fixed;inset-block-end:var(--ds-space-5);inset-inline-end:var(--ds-space-5);z-index:400;
  min-width:260px;max-width:360px;box-shadow:var(--ds-shadow-hover);}

/* ---- Loading / empty states ---- */
.ds-skeleton{background:linear-gradient(90deg,#eef2f6 25%,#e4eaf1 37%,#eef2f6 63%);background-size:400% 100%;
  animation:ds-shimmer 1.4s ease infinite;border-radius:var(--ds-radius-sm);height:16px;}
@keyframes ds-shimmer{0%{background-position:100% 0;}100%{background-position:0 0;}}
@media (prefers-reduced-motion:reduce){.ds-skeleton{animation-duration:2.5s;}}
.ds-spinner{width:22px;height:22px;border-radius:50%;border:3px solid var(--ds-border);
  border-top-color:var(--ds-primary);animation:ds-spin .7s linear infinite;}
.ds-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--ds-space-2);
  padding:var(--ds-space-8) var(--ds-space-4);color:var(--ds-text-muted);text-align:center;}
.ds-empty-state .ds-empty-title{font-size:var(--ds-fs-body);font-weight:var(--ds-fw-semibold);color:var(--ds-text);}

/* ---- Icons ---- */
.ds-icon{width:18px;height:18px;flex:none;stroke:currentColor;stroke-width:1.8;fill:none;}
[data-ds-tooltip]{position:relative;}
[data-ds-tooltip]::after{content:attr(data-ds-tooltip);position:absolute;inset-block-end:calc(100% + 6px);
  inset-inline-start:50%;transform:translateX(-50%);background:#1a2433;color:#fff;font-size:11px;
  padding:4px 8px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s ease;z-index:50;}
[dir="rtl"] [data-ds-tooltip]::after{transform:translateX(50%);}
[data-ds-tooltip]:hover::after,[data-ds-tooltip]:focus-visible::after{opacity:1;}

/* ---- Toolbar / page heading ---- */
.ds-page-heading{font-size:var(--ds-fs-page-title);font-weight:var(--ds-fw-bold);color:var(--ds-text);margin-block-end:var(--ds-space-1);}
.ds-page-sub{font-size:var(--ds-fs-secondary);color:var(--ds-text-muted);margin-block-end:var(--ds-section-spacing);}
.ds-toolbar{display:flex;flex-wrap:wrap;gap:var(--ds-space-3);align-items:center;margin-block-end:var(--ds-space-4);}
.ds-toolbar .ds-search{flex:1;min-width:200px;}

/* ---- Login sizing foundation ---- */
.login-shell{max-width:1040px;}
.login-panel{padding-inline:var(--ds-space-8);}
.login-form input,#owner-username,#owner-password{min-height:var(--ds-input-h);font-size:16px;}
.owner-login-card{max-width:420px;margin-inline:auto;padding:var(--ds-space-8) var(--ds-space-6);}

/* ---- Responsive ---- */
@media (max-width:1024px){
  .ds-modal{max-width:92vw;}
}
@media (max-width:768px){
  .ds-table-wrap{display:none;}
  .ds-cards-list{display:flex;}
  .ds-toolbar{flex-direction:column;align-items:stretch;}
  .login-panel{padding-inline:var(--ds-space-5);}
}
@media (max-width:430px){
  .ds-modal-overlay{padding:0;align-items:flex-end;}
  .ds-modal{max-width:100%;max-height:94vh;border-radius:var(--ds-radius-lg) var(--ds-radius-lg) 0 0;}
  .ds-btn{padding-inline:var(--ds-space-3);}
  .owner-login-card{padding:var(--ds-space-6) var(--ds-space-4);}
}
@supports (padding: max(0px)){
  .ds-modal-overlay{padding-block-end:max(var(--ds-space-4), env(safe-area-inset-bottom));}
}

/* ============================================================
   PROGRESSIVE ADOPTION — bind design tokens onto the existing,
   already-shared classes used by the 5 representative screens
   (Owner company list, lifecycle modal, both login pages,
   vehicles view) without rewriting markup. Additive only.
   ============================================================ */

/* Owner Console shell + typography */
#owner-app,.owner-shell,body{font-family:var(--ds-font);}

/* Owner company list: .panel / .tabs / .tab / status tabs bar / table */
.panel{background:var(--ds-surface);border:var(--ds-border-w) solid var(--ds-border);
  border-radius:var(--ds-radius-md);padding:var(--ds-card-padding);box-shadow:var(--ds-shadow-card);}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--ds-space-3);margin-block-end:var(--ds-space-3);}
.panel-head h3{font-size:var(--ds-fs-section-title);font-weight:var(--ds-fw-semibold);color:var(--ds-text);margin:0;}
.tabs{display:flex;gap:4px;flex-wrap:wrap;overflow-x:auto;}
.tabs .tab{padding:var(--ds-space-2) var(--ds-space-4);font-size:var(--ds-fs-secondary);font-weight:var(--ds-fw-medium);
  color:var(--ds-text-muted);background:transparent;border:var(--ds-border-w) solid var(--ds-border);
  border-radius:999px;cursor:pointer;white-space:nowrap;min-height:38px;transition:background-color .15s ease,color .15s ease;}
.tabs .tab.active{color:#fff;background:var(--ds-primary);border-color:var(--ds-primary);font-weight:var(--ds-fw-semibold);}
.tabs .tab:focus-visible{outline:none;box-shadow:var(--ds-focus-ring);}
.panel table{width:100%;border-collapse:collapse;font-size:var(--ds-fs-body);}
.panel table th{background:var(--ds-bg);font-weight:var(--ds-fw-semibold);font-size:var(--ds-fs-label);
  color:var(--ds-text-muted);text-align:start;padding:var(--ds-cell-padding-y) var(--ds-cell-padding-x);
  border-block-end:var(--ds-border-w) solid var(--ds-border);white-space:nowrap;}
.panel table td{padding:var(--ds-cell-padding-y) var(--ds-cell-padding-x);border-block-end:var(--ds-border-w) solid var(--ds-border);vertical-align:middle;}
.panel table tbody tr:hover{background:var(--ds-hover);}
.panel .empty{padding:var(--ds-space-8) var(--ds-space-4);text-align:center;color:var(--ds-text-muted);font-size:var(--ds-fs-body);}

/* Shared mini/status/badge (already used by company list + lifecycle modal) */
.mini{display:inline-flex;align-items:center;justify-content:center;height:var(--ds-btn-h-sm);
  min-height:34px;padding-inline:var(--ds-space-3);border-radius:var(--ds-radius-sm);border:var(--ds-border-w) solid var(--ds-border);
  background:var(--ds-surface);color:var(--ds-text);font-family:var(--ds-font);font-size:var(--ds-fs-secondary);
  font-weight:var(--ds-fw-medium);cursor:pointer;white-space:nowrap;transition:background-color .15s ease;}
.mini:hover{background:var(--ds-hover);}
.mini:focus-visible{outline:none;box-shadow:var(--ds-focus-ring);}
.mini.warn{border-color:#f4dfa3;color:var(--ds-warning);}
.mini.warn:hover{background:var(--ds-warning-bg);}
.mini.danger{border-color:#f2c6c1;color:var(--ds-danger);}
.mini.danger:hover{background:var(--ds-danger-bg);}
.status{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;
  font-size:var(--ds-fs-caption);font-weight:var(--ds-fw-semibold);white-space:nowrap;}
.status.active{background:var(--ds-success-bg);color:var(--ds-success);}
.status.suspended{background:var(--ds-warning-bg);color:var(--ds-warning);}
.status.archived{background:#eef1f5;color:#51606f;}
.status.soft_deleted{background:var(--ds-danger-bg);color:var(--ds-danger);}

/* Lifecycle modal: .modal-head/.modal-foot/.lc-* */
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--ds-space-3);
  padding-block-end:var(--ds-space-3);margin-block-end:var(--ds-space-3);border-block-end:var(--ds-border-w) solid var(--ds-border);}
.modal-head h3{font-size:var(--ds-fs-section-title);font-weight:var(--ds-fw-semibold);color:var(--ds-text);margin:0;}
.modal-head .close{width:var(--ds-icon-btn);height:var(--ds-icon-btn);border-radius:50%;border:none;
  background:transparent;font-size:16px;cursor:pointer;color:var(--ds-text-muted);}
.modal-head .close:hover{background:var(--ds-hover);}
.modal-foot{display:flex;justify-content:flex-end;gap:var(--ds-space-2);padding-block-start:var(--ds-space-3);
  margin-block-start:var(--ds-space-3);border-block-start:var(--ds-border-w) solid var(--ds-border);}
.lc-section{margin-block-end:var(--ds-space-4);}
.lc-section h4{font-size:var(--ds-fs-label);font-weight:var(--ds-fw-semibold);color:var(--ds-text-muted);margin-block-end:var(--ds-space-2);}
.lc-rows{display:flex;flex-direction:column;gap:1px;border:var(--ds-border-w) solid var(--ds-border);border-radius:var(--ds-radius-sm);overflow:hidden;}
.lc-row{display:flex;justify-content:space-between;gap:var(--ds-space-3);padding:var(--ds-space-2) var(--ds-space-3);
  background:var(--ds-surface);font-size:var(--ds-fs-body);}
.lc-row:nth-child(even){background:var(--ds-bg);}
.lc-event{padding:var(--ds-space-2) var(--ds-space-3);border:var(--ds-border-w) solid var(--ds-border);
  border-radius:var(--ds-radius-sm);margin-block-end:6px;font-size:var(--ds-fs-secondary);}
.lc-event small{color:var(--ds-text-muted);}
.lc-actions{display:flex;flex-wrap:wrap;gap:var(--ds-space-2);}
.lc-reason{margin-block-start:var(--ds-space-2);display:flex;flex-direction:column;gap:6px;}
.lc-reason textarea{width:100%;border:var(--ds-border-w) solid var(--ds-border);border-radius:var(--ds-radius-sm);
  padding:var(--ds-space-2);font-family:var(--ds-font);font-size:16px;}
.lc-reason-buttons{display:flex;justify-content:flex-end;gap:var(--ds-space-2);}
.lc-status-badge{font-size:var(--ds-fs-secondary);padding:5px 14px;}

/* Vehicles view (internal data page): page-head / cards-toolbar / entity-card / badges */
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ds-space-4);
  margin-block-end:var(--ds-section-spacing);flex-wrap:wrap;}
.page-head h3{font-size:var(--ds-fs-page-title);font-weight:var(--ds-fw-bold);color:var(--ds-text);margin:0 0 4px;}
.page-head p{font-size:var(--ds-fs-secondary);color:var(--ds-text-muted);margin:0;}
.cards-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--ds-space-3);
  padding:var(--ds-space-3) var(--ds-card-padding);margin-block-end:var(--ds-section-spacing);flex-wrap:wrap;}
.cards-toolbar input,.cards-toolbar select{height:var(--ds-input-h);border:var(--ds-border-w) solid var(--ds-border);
  border-radius:var(--ds-radius-sm);padding-inline:var(--ds-space-3);font-family:var(--ds-font);font-size:16px;}
.entity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--ds-space-4);}
.entity-card{background:var(--ds-surface);border:var(--ds-border-w) solid var(--ds-border);
  border-radius:var(--ds-radius-md);box-shadow:var(--ds-shadow-card);transition:box-shadow .15s ease;}
.entity-card:hover{box-shadow:var(--ds-shadow-hover);}
.card-actions{display:flex;gap:var(--ds-space-2);flex-wrap:wrap;}
.mini-button{display:inline-flex;align-items:center;justify-content:center;height:var(--ds-btn-h-sm);
  min-height:34px;padding-inline:var(--ds-space-3);border-radius:var(--ds-radius-sm);border:var(--ds-border-w) solid var(--ds-border);
  background:var(--ds-surface);color:var(--ds-text);font-family:var(--ds-font);font-size:var(--ds-fs-secondary);
  font-weight:var(--ds-fw-medium);cursor:pointer;white-space:nowrap;}
.mini-button:hover{background:var(--ds-hover);}
.mini-button:focus-visible{outline:none;box-shadow:var(--ds-focus-ring);}
.badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:999px;background:var(--ds-info-bg);
  color:var(--ds-info);font-size:var(--ds-fs-caption);font-weight:var(--ds-fw-semibold);}

/* tenant app status badges (vehicles/employees/etc) — token sizing only, existing brand colors kept */
.status.success,.status.warning,.status.danger,.status.info{
  padding:3px 10px;border-radius:999px;font-size:var(--ds-fs-caption);font-weight:var(--ds-fw-semibold);}
.v16-vehicle-doc,.v16-vehicle-card,.v16-vehicle-data,.meta-item{font-family:var(--ds-font);}

@media (max-width:768px){
  .entity-grid{grid-template-columns:1fr;}
  .page-head{flex-direction:column;align-items:stretch;}
  .cards-toolbar{flex-direction:column;align-items:stretch;}
}
