
@import url('https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@400;500;600;700&display=swap');

/* ===========================
   Master365 UI Starter (single CSS)
   Accessibility included (font scaling)
   =========================== */

:root{
  --m365-white:#ffffff;
  --m365-gray-50:#f8f9fb;
  --m365-gray-100:#f3f4f6;
  --m365-gray-200:#e6e9ef;
  --m365-gray-300:#c1c9d2;
  --m365-gray-400:#9aa4af;
  --m365-gray-500:#6b7280;
  --m365-gray-700:#1f2a37;
  --m365-dark-900:#0f1419;
  --m365-dark-800:#151b22;
  --m365-dark-700:#20262e;
  --m365-dark-600:#232a32;
  --m365-dark-500:#273039;
  --m365-dark-400:#1f2328;
  --m365-dark-300:#2b3138;
  --m365-blue-500:#3b82f6;
  --m365-blue-600:#2f76e5;
  --m365-blue-700:#0b5fc0;
  --m365-blue-200:#dbe7ff;
  --m365-blue-100:#eef4ff;
  --m365-indigo-100:#eef3f8;
  --m365-muted-2:#e5ecf4;
  --m365-text-dark:#111827;
  --m365-danger:#ef4444;
  --m365-auth-left-bg-1:#f8fafc;
  --m365-auth-left-bg-2:#eef2f7;
  --m365-bg:#f6f7f9;
  --m365-surface:var(--m365-white);
  --m365-border:#e5e7eb;
  --m365-text:#1f2937;
  --m365-muted:#6b7280;
  --m365-primary:#1aa36b;
  --m365-radius:10px;
}

/* Accessibility: font scaling */
html[data-font="sm"]{font-size:14px;}
html[data-font="md"]{font-size:16px;}
html[data-font="lg"]{font-size:18px;}
html[data-font="xl"]{font-size:20px;}

body{
  background:var(--m365-bg);
  color:var(--m365-text);
  font-family:"Source Sans 3","IBM Plex Sans","Segoe UI",sans-serif;
  margin:0;
}

/* Layout basics */
.m365-shell{min-height:100vh;display:grid;grid-template-columns:var(--m365-sidebar-w) 1fr;}
.m365-sidebar{background:var(--m365-surface);border-right:1px solid var(--m365-border);padding:0;}
.m365-header{background:var(--m365-surface);border-bottom:1px solid var(--m365-border);padding:.6rem 1rem;}
.m365-main{padding:1rem;}

/* Components */
.m365-card{background:var(--m365-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius);padding:1rem;}
.m365-kpi{border-left:4px solid var(--m365-primary);margin-bottom:1rem;}
.btn,.form-control,.form-select{border-radius:8px;}
.btn-primary{
  background:var(--m365-primary);
  border-color:var(--m365-primary);
}
.btn-primary:hover{
  background:#148a59;
  border-color:#148a59;
}
.m365-stat-card .card-body{
  display:flex;
  align-items:center;
  gap:12px;
}
.m365-stat-icon{
  width:42px;
  height:42px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.1rem;
  background:rgba(26,163,107,0.16);
  color:var(--m365-primary);
}
.m365-stat-icon.is-blue{background:rgba(59,130,246,0.16);color:#2563eb;}
.m365-stat-icon.is-teal{background:rgba(20,184,166,0.16);color:#0f766e;}
.m365-stat-icon.is-amber{background:rgba(245,158,11,0.2);color:#b45309;}
.m365-stat-label{
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.72rem;
  color:var(--m365-muted);
}
.m365-stat-value{
  font-size:1.6rem;
  font-weight:700;
  line-height:1.1;
}
.m365-stat-sub{font-size:.78rem;color:var(--m365-muted);}
.m365-card-title{
  font-weight:600;
  font-size:1rem;
  margin-bottom:.75rem;
}
.m365-card-footer{
  background:transparent;
  border-top:1px solid var(--m365-border);
  font-size:.85rem;
}
.m365-link{
  color:var(--m365-primary);
  text-decoration:none;
  font-weight:600;
}
.m365-link:hover{color:#148a59;}
.m365-status-grid{display:grid;gap:.6rem;}
.m365-planned-list{display:grid;gap:.6rem;}
.m365-status-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:.9rem;
}
.m365-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.2rem .6rem;
  border-radius:999px;
  font-size:.72rem;
  font-weight:600;
  min-width:42px;
}
.m365-pill-success{background:rgba(26,163,107,0.15);color:#148a59;}
.m365-pill-warning{background:rgba(245,158,11,0.2);color:#b45309;}
.m365-pill-info{background:rgba(59,130,246,0.16);color:#2563eb;}
.m365-pill-danger{background:rgba(239,68,68,0.18);color:#b91c1c;}
.m365-pill-muted{background:rgba(148,163,184,0.2);color:#475569;}
.m365-quick-actions{display:flex;flex-wrap:wrap;gap:.5rem;}
.table{
  background:#ffffff;
  border:1px solid var(--m365-border);
  border-radius:12px;
  border-collapse:separate;
  border-spacing:0;
  overflow:visible;
}
.table-responsive{
  overflow-x:auto;
  overflow-y:visible;
  position:relative;
}
.table-responsive .dropdown-menu{
  z-index:1080;
}
.table thead th{
  background:var(--m365-gray-50);
  color:var(--m365-muted);
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.table > :not(caption) > * > *{background:transparent;}
.dropdown-menu{
  border-radius:12px;
  border:1px solid var(--m365-border);
  box-shadow:0 16px 30px rgba(15,23,41,0.12);
}
.dropdown-item{font-weight:500;}
.dropdown-header{color:var(--m365-muted);font-weight:600;}
.card{
  border-radius:12px;
  border:1px solid var(--m365-border);
  box-shadow:none;
}
.m365-action-menu{
  width:34px;
  height:34px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.m365-action-menu:hover,
.m365-action-menu:focus-visible{
  background:var(--m365-gray-100);
  border-color:var(--m365-gray-300);
  color:var(--m365-text);
}
.m365-action-menu:focus-visible{
  outline:2px solid var(--m365-blue-200);
  outline-offset:2px;
}
.m365-card-link{
  display:block;
  color:inherit;
  text-decoration:none;
}
.m365-card-link .card{
  transition:transform .15s ease, box-shadow .15s ease;
}
.m365-card-link:hover .card{
  transform:translateY(-1px);
  box-shadow:var(--m365-shadow-sm);
}
.m365-filter-chips{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
}
.m365-filter-chips--tabs{
  background:var(--m365-white);
  border:1px solid var(--m365-border);
  border-radius:14px;
  padding:.5rem;
  box-shadow:var(--m365-shadow-sm);
}
.m365-filter-chip{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.25rem .6rem;
  border-radius:999px;
  border:1px solid var(--m365-border);
  background:var(--m365-gray-50);
  color:var(--m365-muted);
  font-size:.78rem;
  text-decoration:none;
}
.m365-filter-chips--tabs .m365-filter-chip{
  padding:.45rem .9rem;
  border-radius:12px;
  background:var(--m365-white);
  font-size:.85rem;
  font-weight:600;
  color:var(--m365-text);
}
.m365-filter-chip.is-active{
  background:rgba(26,163,107,0.15);
  border-color:rgba(26,163,107,0.35);
  color:#148a59;
}
.m365-filter-chips--tabs .m365-filter-chip.is-active{
  background:var(--m365-blue-100);
  border-color:var(--m365-blue-200);
  color:var(--m365-blue-700);
}
.m365-filter-chip .m365-chip-count{
  background:var(--m365-white);
  border:1px solid var(--m365-border);
  border-radius:999px;
  padding:0 .35rem;
  font-size:.7rem;
  color:var(--m365-muted);
}
.m365-filter-chips--tabs .m365-chip-count{
  padding:.05rem .45rem;
  font-weight:600;
}
.m365-filter-chip:hover{
  color:var(--m365-text);
}
.m365-chipbar-card{border-radius:14px;}
.m365-chip-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
}
.m365-chip-tab{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.5rem .85rem;
  border-radius:12px;
  border:1px solid var(--m365-border);
  background:var(--m365-white);
  color:var(--m365-text);
  font-weight:600;
  font-size:.9rem;
  text-decoration:none;
}
.m365-chip-tab i{font-size:1rem;}
.m365-chip-tab .m365-chip-count{
  min-width:24px;
  height:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  font-size:.75rem;
  font-weight:700;
  color:var(--m365-white);
}
.m365-chip-tab--neutral .m365-chip-count{background:#3b82f6;}
.m365-chip-tab--success .m365-chip-count{background:#22c55e;}
.m365-chip-tab--danger .m365-chip-count{background:#ef4444;}
.m365-chip-tab--warning .m365-chip-count{background:#f59e0b;}
.m365-chip-tab--success{color:#16a34a;}
.m365-chip-tab--danger{color:#dc2626;}
.m365-chip-tab--warning{color:#d97706;}
.m365-chip-tab.is-active{
  border-color:var(--m365-blue-200);
  background:var(--m365-blue-100);
  color:var(--m365-blue-700);
}
.m365-chip-tab:hover{color:var(--m365-text);}
.m365-filter-card{border-radius:14px;}
.m365-input-icon{
  position:relative;
}
.m365-input-icon i{
  position:absolute;
  left:12px;
  top:50%;
  transform:translateY(-50%);
  color:var(--m365-muted);
}
.m365-input-icon .form-control{
  padding-left:2.4rem;
}
.m365-view-toggle .btn{
  width:40px;
  height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.m365-view-toggle .btn.active{
  background:var(--m365-blue-100);
  border-color:var(--m365-blue-200);
  color:var(--m365-blue-700);
}
.m365-vehicle-cell{
  display:flex;
  align-items:center;
  gap:12px;
}
.m365-vehicle-icon-tile{
  width:44px;
  height:44px;
  border-radius:10px;
  background:var(--m365-gray-100);
  border:1px solid var(--m365-border);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--m365-muted);
  font-size:20px;
}
.m365-driver-line,
.m365-fuel-line{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:.9rem;
}
.m365-fuel-line{color:var(--m365-text);}
.m365-fuel-label{
  margin-left:auto;
  font-size:.75rem;
  color:var(--m365-muted);
}
.m365-status-pill{
  display:inline-flex;
  align-items:center;
  padding:.2rem .65rem;
  border-radius:999px;
  font-size:.75rem;
  font-weight:700;
}
.m365-status-pill--success{
  background:#dcfce7;
  color:#166534;
}
.m365-status-pill--danger{
  background:#fee2e2;
  color:#b91c1c;
}
.m365-expiry-line{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:.82rem;
}
.m365-action-btns .m365-action-btn{
  width:34px;
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  border:1px solid transparent;
  background:var(--m365-white);
}
.m365-action-btn--view{
  background:#eff6ff;
  border-color:#dbe7ff;
  color:#2563eb;
}
.m365-action-btn--edit{
  background:#fff7ed;
  border-color:#fed7aa;
  color:#ea580c;
}
.m365-action-btn--delete{
  background:#fee2e2;
  border-color:#fecaca;
  color:#dc2626;
}
.m365-sticky-save{
  position:sticky;
  bottom:0;
  background:var(--m365-surface);
  border-top:1px solid var(--m365-border);
  padding:.75rem 0;
  z-index:2;
}
.m365-skeleton{
  position:relative;
  overflow:hidden;
  background:var(--m365-gray-100);
}
.m365-skeleton::after{
  content:"";
  position:absolute;
  inset:0;
  transform:translateX(-100%);
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.6), transparent);
  animation:m365-skeleton 1.2s ease-in-out infinite;
}
.m365-skeleton-line{
  height:12px;
  border-radius:8px;
}
@keyframes m365-skeleton{
  100%{transform:translateX(100%);}
}

/* ===========================
   [CORE: layout]
   =========================== */
:root{
  --m365-topbar-h:56px;
  --m365-sidebar-w:232px;
  --m365-sidebar-bg:#242628;
  --m365-sidebar-bg-2:#202224;
  --m365-sidebar-border:#2e3236;
  --m365-sidebar-text:#e7eaee;
  --m365-sidebar-muted:#a5aebb;
  --m365-sidebar-hover:#2e3236;
  --m365-sidebar-active:#343a40;
  --m365-sidebar-sub-bg:transparent;
  --m365-sidebar-sub-hover:#2f353b;
  --m365-sidebar-sub-active:#30363d;
  --m365-sidebar-sub-text:#cfd6df;
  --m365-sidebar-accent:#1aa36b;
  --m365-header-bg:#0f1729;
  --m365-header-text:#e8edf2;
  --m365-shadow-sm:0 8px 18px rgba(15,23,41,0.12);
}

.m365-header{
  background:var(--m365-header-bg);
  color:var(--m365-header-text);
  border-bottom:1px solid var(--m365-border);
  box-shadow:0 1px 0 rgba(17,24,39,0.08);
  min-height:var(--m365-topbar-h);
  padding:0 1rem;
  display:flex;
  align-items:center;
}
.m365-header .m365-icon-btn{
  background:rgba(255,255,255,0.08);
  border-color:rgba(255,255,255,0.16);
  color:var(--m365-header-text);
}
.m365-header .m365-icon-btn:hover{
  background:rgba(255,255,255,0.14);
  color:#ffffff;
}
.m365-header .m365-topbar-search{
  background:#ffffff;
  border-color:rgba(255,255,255,0.3);
}
.m365-header .m365-topbar-search .bi{color:#9aa4af;}
.m365-header .m365-topbar-search .form-control{
  color:#111827;
}
.m365-header .m365-topbar-search .form-control::placeholder{color:#9aa4af;}
.m365-header .m365-search-filter{
  background:#eef2f7;
  color:#111827;
}
.m365-topbar{
  display:flex;
  align-items:center;
  gap:1rem;
  justify-content:space-between;
  flex-wrap:wrap;
  width:100%;
}
.m365-topbar-left{
  display:flex;
  align-items:center;
  gap:.75rem;
}
.m365-topbar-actions{
  display:flex;
  align-items:center;
  gap:.5rem;
  flex-wrap:wrap;
}
.m365-topbar-search{
  display:flex;
  align-items:center;
  gap:.5rem;
  flex:1;
  max-width:560px;
  min-width:220px;
  background:#ffffff;
  border:1px solid var(--m365-border);
  border-radius:999px;
  padding:.35rem .6rem;
  margin:0 auto;
}
.m365-topbar-search .bi{color:var(--m365-muted);font-size:.95rem;}
.m365-topbar-search .form-control{
  border:0;
  background:transparent;
  padding:.2rem .4rem;
  box-shadow:none;
  min-width:0;
}
.m365-topbar-search .form-control:focus{box-shadow:none;}
.m365-topbar-search .form-control::placeholder{color:var(--m365-muted);}
.m365-search-filter{
  border:0;
  background:var(--m365-gray-100);
  border-radius:999px;
  font-size:.78rem;
  padding:.25rem .6rem;
  color:var(--m365-text);
}
.m365-icon-btn{
  border:1px solid var(--m365-border);
  background:#ffffff;
  color:var(--m365-muted);
  width:34px;
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  padding:0;
}
.m365-icon-btn.dropdown-toggle::after,
.m365-user-chip.dropdown-toggle::after{
  display:none;
}
.m365-user-chip{
  border:1px solid rgba(255,255,255,0.2);
  background:rgba(255,255,255,0.08);
  border-radius:8px;
  padding:4px 10px 4px 4px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--m365-header-text);
}
.m365-user-chip:hover{
  background:rgba(255,255,255,0.14);
  color:#ffffff;
}
.m365-user-meta{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  line-height:1.1;
}
.m365-user-name{
  font-weight:600;
  font-size:.85rem;
  color:var(--m365-header-text);
}
.m365-user-role{
  font-size:.72rem;
  color:rgba(232,237,242,0.7);
}
.m365-user-chip .m365-user-avatar-img{
  width:28px;
  height:28px;
  border-radius:8px;
  border:1px solid rgba(255,255,255,0.2);
}
.m365-icon-btn:hover{
  color:var(--m365-text);
  background:var(--m365-gray-50);
}
.m365-btn-pill{
  border-radius:999px;
  padding:.35rem .85rem;
  font-weight:600;
}
.m365-topbar-panel{
  min-width:220px;
  border-radius:12px;
  box-shadow:0 16px 30px rgba(15,23,41,0.18);
}
.m365-avatar-btn{
  border:1px solid var(--m365-border);
  background:#ffffff;
  border-radius:999px;
  padding:2px;
  width:36px;
  height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.m365-avatar-btn:hover{background:var(--m365-gray-50);}
.m365-user-avatar-img{
  width:28px;
  height:28px;
  border-radius:50%;
  object-fit:cover;
  border:1px solid var(--m365-border);
  background:var(--m365-white);
}
.m365-font-toggle .btn{
  padding:2px 6px;
  font-size:.75rem;
}
.m365-logo{
  width:150px;
  height:30px;
  object-fit:contain;
}

.m365-shell{
  min-height:calc(100vh - var(--m365-topbar-h));
  display:grid;
  grid-template-columns:var(--m365-sidebar-w) 1fr;
}
.m365-sidebar-col{min-width:var(--m365-sidebar-w);min-height:100%;}
.m365-sidebar{min-height:100%;height:100%;}
.m365-sidebar .offcanvas-body{
  flex:1;
  display:flex;
  flex-direction:column;
  min-height:0;
  overflow-y:auto;
}
.m365-sidebar-footer{margin-top:auto;}
.m365-sidebar{
  background:linear-gradient(180deg,var(--m365-sidebar-bg) 0%, var(--m365-sidebar-bg-2) 100%);
  border-right:1px solid var(--m365-sidebar-border);
  color:var(--m365-sidebar-text);
  display:flex;
  flex-direction:column;
}
.m365-sidebar .list-group{display:flex;flex-direction:column;gap:2px;padding:10px 8px 12px;}
.m365-nav-item{
  position:relative;
  border:0;
  border-radius:8px;
  padding:8px 12px;
  background:transparent;
  color:var(--m365-sidebar-text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-weight:600;
  font-size:.9rem;
  text-decoration:none;
  text-align:left;
  transition:background .2s ease,border-color .2s ease,color .2s ease;
}
.m365-nav-item i{width:18px;text-align:center;color:var(--m365-sidebar-muted);}
.m365-nav-item .bi-chevron-down{transition:transform .2s ease;}
.m365-nav-item.is-open .bi-chevron-down{transform:rotate(180deg);}
.m365-nav-item:hover{
  background:var(--m365-sidebar-hover);
  border-color:transparent;
  color:var(--m365-white);
}
.m365-nav-item:hover i{color:var(--m365-sidebar-text);}
.m365-nav-item.is-active{
  background:var(--m365-sidebar-active);
  border-color:transparent;
  color:var(--m365-white);
}
.m365-nav-item.is-active::before{
  content:'';
  position:absolute;
  left:6px;
  top:6px;
  bottom:6px;
  width:4px;
  background:var(--m365-sidebar-accent);
  border-radius:4px;
}
.m365-nav-item.is-active i{color:var(--m365-sidebar-accent);}
.m365-sidebar .collapse .list-group{padding:4px 6px 6px;}
.m365-sidebar .collapse .list-group-item{
  font-size:.86rem;
  font-weight:500;
  padding:6px 12px 6px 30px;
  color:var(--m365-sidebar-sub-text);
  background:var(--m365-sidebar-sub-bg);
  border:0;
  border-radius:6px;
}
.m365-sidebar .collapse .list-group-item:hover{
  background:var(--m365-sidebar-sub-hover);
  color:var(--m365-sidebar-text);
}
.m365-sidebar .collapse .list-group-item.is-active{
  background:var(--m365-sidebar-sub-active);
  color:var(--m365-sidebar-text);
}
.m365-sidebar .collapse .list-group-item i{color:var(--m365-sidebar-muted);}
.m365-sidebar .collapse .list-group-item:hover i,
.m365-sidebar .collapse .list-group-item.is-active i{color:var(--m365-sidebar-text);}
.m365-sidebar .collapse{
  transition:max-height .25s ease, opacity .2s ease;
  max-height:0;
  opacity:0;
  overflow:hidden;
}
.m365-sidebar .collapse.show{
  max-height:720px;
  opacity:1;
}
.m365-badge-soft{
  background:rgba(26,163,107,0.18);
  color:#b8f3d4;
  border:1px solid rgba(26,163,107,0.35);
  font-weight:600;
}
.m365-workspace-card{
  background:var(--m365-surface);
  border:1px solid var(--m365-sidebar-border);
  border-radius:8px;
  padding:12px;
  margin:8px 6px 12px;
  color:var(--m365-sidebar-text);
}
.m365-workspace-card::after{
  content:'';
  display:block;
  margin-top:10px;
  height:1px;
  background:var(--m365-sidebar-border);
}
.m365-workspace-meta{color:var(--m365-sidebar-muted);font-size:.78rem;}
.m365-license-card{
  background:#1e2227;
  border:1px solid var(--m365-sidebar-border);
  border-radius:8px;
  padding:12px;
  color:var(--m365-sidebar-text);
  display:grid;
  gap:8px;
  box-shadow:0 8px 16px rgba(12,16,22,0.28);
}
.m365-license-meta{color:var(--m365-sidebar-muted);font-size:.78rem;}
.m365-license-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:6px 10px;
  border-radius:6px;
  background:var(--m365-sidebar-accent);
  color:var(--m365-white);
  font-weight:600;
  text-decoration:none;
  border:1px solid rgba(26,163,107,0.2);
}
.m365-license-btn:hover{background:#148a59;color:var(--m365-white);}

.m365-main{padding:1rem;background:var(--m365-bg);}
.m365-page-head{
  background:transparent;
  border:0;
  padding:0;
  margin-bottom:1rem;
}
.m365-breadcrumb{
  color:var(--m365-muted);
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.m365-page-title{
  font-size:1.5rem;
  font-weight:700;
  color:var(--m365-text);
}
.m365-content{min-height:60vh;}
.m365-footer{
  border-top:1px solid var(--m365-border);
  padding-top:1rem;
  color:var(--m365-muted);
  font-size:.9rem;
  display:flex;
  justify-content:space-between;
}

body.m365-topbar-fixed .m365-header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:1030;
}
body.m365-topbar-fixed .m365-shell{margin-top:var(--m365-topbar-h);}

@media (max-width: 991.98px){
  .m365-shell{grid-template-columns:1fr;}
  .m365-topbar{gap:.6rem;}
  .m365-topbar-search{
    order:3;
    width:100%;
    max-width:none;
    margin:0;
  }
  .m365-topbar-actions{order:2;}
}
@media (max-width: 575.98px){
  .m365-search-filter{display:none;}
}

/* ===========================
   [PAGE: resources-details]
   =========================== */
.m365-dropzone{
  border:1px dashed var(--m365-border);
  border-radius:10px;
  padding:14px;
  background:var(--m365-gray-50);
  cursor:pointer;
}
.m365-dropzone.is-dragover{
  border-color:var(--m365-primary);
  background:var(--m365-blue-100);
}
.m365-thumb{
  width:84px;
  height:84px;
  object-fit:cover;
  border-radius:10px;
}
.m365-image-placeholder{
  height:220px;
  border:1px solid var(--m365-border);
  border-radius:12px;
  background:var(--m365-gray-100);
  color:var(--m365-muted);
}

/* ===========================
   [PAGE: vehicle-details]
   =========================== */
.m365-kpi-card{
  display:flex;
  align-items:center;
  flex-direction:row;
  gap:16px;
  padding:16px;
  border:1px solid var(--m365-border);
  border-radius:14px;
}
.m365-kpi-content{
  display:flex;
  flex-direction:column;
  gap:2px;
  text-align:left;
}
.m365-kpi-icon{flex:0 0 auto;}
.m365-kpi-icon{
  width:52px;
  height:52px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--m365-white);
  font-size:22px;
}
.m365-vehicle-profile{border-radius:16px;}
.m365-vehicle-avatar{
  width:96px;
  height:96px;
  border-radius:50%;
  background:var(--m365-gray-100);
  border:2px solid var(--m365-blue-100);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:40px;
  color:var(--m365-blue-600);
}
.m365-profile-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 0;
  border-bottom:1px solid var(--m365-gray-100);
}
.m365-profile-row:last-child{border-bottom:0;}
.m365-vehicle-tabs .nav-link{
  display:flex;
  align-items:center;
  gap:8px;
}
.m365-vehicle-tabs .nav-link i{font-size:16px;}
.m365-spec-card{
  border:1px solid var(--m365-border);
  border-radius:14px;
  padding:16px;
  background:var(--m365-white);
  min-height:100%;
}
.m365-spec-card--teal{border-left:4px solid #14b8a6;}
.m365-spec-card--green{border-left:4px solid #22c55e;}
.m365-spec-card--yellow{border-left:4px solid #f59e0b;}
.m365-spec-card--slate{border-left:4px solid #64748b;}
.m365-spec-card--teal .m365-spec-title{color:#14b8a6;}
.m365-spec-card--green .m365-spec-title{color:#16a34a;}
.m365-spec-card--yellow .m365-spec-title{color:#ca8a04;}
.m365-spec-card--slate .m365-spec-title{color:#475569;}
.m365-spec-title{
  font-weight:600;
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:12px;
}
.m365-spec-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:currentColor;
  display:inline-block;
}
.m365-spec-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:6px 0;
  border-bottom:1px solid var(--m365-gray-100);
  font-size:0.92rem;
}
.m365-spec-row:last-child{border-bottom:0;}
.m365-spec-row span{color:var(--m365-muted);}

/* ===========================
   [PAGE: auth]
   =========================== */
.m365-auth-shell{background:var(--m365-bg);}
.m365-auth-card{border:0;border-radius:18px;max-width:920px;margin:0 auto;}
.m365-auth-left{
  background:linear-gradient(180deg,var(--m365-auth-left-bg-1) 0%, var(--m365-auth-left-bg-2) 100%);
  color:var(--m365-text-dark);
  border-radius:18px 0 0 18px;
  border-right:1px solid var(--m365-border);
}
.m365-auth-right{border-radius:0 18px 18px 0;}
.m365-brand-badge{
  width:48px;
  height:48px;
  border-radius:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--m365-danger);
  color:var(--m365-white);
  font-weight:700;
}
.m365-auth-carousel img{border-radius:14px;border:1px solid rgba(255,255,255,0.08);}
.m365-auth-metrics{background:var(--m365-white);border-radius:12px;}
.m365-auth-metrics .m365-metric{min-width:120px;}
.m365-carousel-indicators{position:static;margin-top:12px;}
.m365-carousel-indicators [data-bs-target]{width:28px;height:4px;border-radius:6px;}
@media (max-width: 991.98px){
  .m365-auth-left{border-radius:18px 18px 0 0;}
  .m365-auth-right{border-radius:0 0 18px 18px;}
}

/* ===========================
   [PAGE: errors]
   =========================== */
.m365-error-wrap{
  max-width:820px;
  margin:4rem auto;
  padding:2rem;
  background:var(--m365-white);
  border:1px solid var(--m365-border);
  border-radius:14px;
  text-align:center;
}
