/* ================================================================
   CTECH SERVICE PLATFORM — REPORTS.CSS
   Bus/TVM Report görünüşü (rpt-*), Detail View (dv-*),
   Bus/TVM Dashboard (dash-*), busDetailView, tvmDetailView
   Dark mode: yalnız bu faylın elementlərinə aid hissələr
   ================================================================ */

/* ===== BUS REPORT VIEW ===== */
#busReportView {
  display:none;
  position:fixed;
  top:0; left:0; width:100%; height:100%;
  background:#F4F8FD;
  z-index:40;
  flex-direction:column;
}

/* ===== TVM REPORT VIEW ===== */
#tvmReportView {
  display:none;
  position:fixed;
  top:0; left:0; width:100%; height:100%;
  background:#F4F8FD;
  z-index:40;
  flex-direction:column;
}

/* ===== TVM DAVAM EDƏN SERVİS VIEW ===== */
#tvmOngoingView {
  display:none;
  position:fixed;
  top:0; left:0; width:100%; height:100%;
  background:#F4F8FD;
  z-index:40;
  flex-direction:column;
}
body.dark-mode #tvmOngoingView { background:#0F1826; }

/* ===== ÖZ SON SERVİSLƏRİM — mobil/app-a xas (v5.58) ===== */
#busMyRecentView, #tvmMyRecentView, #metroMyRecentView {
  display:none;
  position:fixed;
  top:0; left:0; width:100%; height:100%;
  background:#F4F8FD;
  z-index:40;
  flex-direction:column;
}
body.dark-mode #busMyRecentView,
body.dark-mode #tvmMyRecentView,
body.dark-mode #metroMyRecentView { background:#0F1826; }

.mrl-hint { padding:14px 18px 0; font-size:12.5px; color:#5C7089; }
.mrl-list { padding:14px 18px 24px; display:flex; flex-direction:column; gap:10px; }
.mrl-empty { text-align:center; padding:36px 12px; color:#8CA0BC; font-size:13px; }
.mrl-row {
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  background:#FFFFFF; border:1px solid #E1EAF6; border-radius:14px; padding:14px 16px;
  box-shadow:0 6px 16px rgba(30,68,130,.05);
}
.mrl-row-main { min-width:0; }
.mrl-row-id { font-family:'IBM Plex Mono',monospace; font-weight:700; font-size:13.5px; color:#12233B; }
.mrl-row-sub { font-size:12px; color:#5C7089; margin-top:3px; }
.mrl-edit-btn {
  flex-shrink:0; width:40px; height:40px; border-radius:11px; border:none;
  background:#EEF3FC; color:#2F6FED; display:flex; align-items:center; justify-content:center; cursor:pointer;
}
.mrl-edit-btn:active { transform:scale(.94); }
body.dark-mode .mrl-hint { color:#8CA0BC; }
body.dark-mode .mrl-empty { color:#5C7089; }
body.dark-mode .mrl-row { background:#16212E; border-color:#4A6182; box-shadow:none; }
body.dark-mode .mrl-row-id { color:#E8EEF5; }
body.dark-mode .mrl-row-sub { color:#8CA0BC; }
body.dark-mode .mrl-edit-btn { background:#1C2A3D; color:#8FB4EA; }

.rpt-header {
  position:sticky;
  top:0;
  background:#FFFFFF;
  border-bottom:1px solid #E1EAF6;
  display:grid;
  grid-template-columns:46px 1fr auto;
  align-items:center;
  padding:12px 16px;
  padding-top:calc(12px + env(safe-area-inset-top));
  gap:8px;
  flex-shrink:0;
  z-index:10;
}

.rpt-title {
  font-family:'Rajdhani',sans-serif;
  font-weight:700;
  font-size:18px;
  letter-spacing:.3px;
  color:#12233B;
  text-align:center;
}
.rpt-title span { color:#2F6FED; }

.rpt-header-btns { display:flex; align-items:center; gap:8px; justify-self:end; }

.rpt-btn {
  display:flex;
  align-items:center;
  gap:6px;
  padding:9px 16px;
  border-radius:10px;
  border:none;
  font-size:13px;
  font-weight:700;
  font-family:'Inter',sans-serif;
  cursor:pointer;
  transition:opacity .15s,transform .05s;
  white-space:nowrap;
}
.rpt-btn:active { transform:scale(.96); }
.rpt-btn-refresh { background:#E6F1FB; color:#1B4A8A; }
.rpt-btn-refresh:hover { background:#DDE9FB; }
/* v4.19: əl ilə təzələmə zamanı düymədə fırlanan ikonka */
.rpt-btn-refresh.spinning svg { animation:spin .7s linear infinite; }
.rpt-btn-refresh:disabled { opacity:.6; cursor:default; }
.rpt-btn-export  { background:#2F6FED; color:#FFFFFF; }
.rpt-btn-export:hover { background:#2560D6; }

/* v4.48: Real-Time Report başlıqlarındakı geriyə sayan vidjet — əsas menyu
   vidjeti ilə eyni vizual, amma başlıq düymələri ilə uyğun kiçik ölçüdə. */
.rpt-header-btns .ctd-refresh-widget{
  width:36px; height:36px;
}
.rpt-header-btns .ctd-refresh-widget .ctd-refresh-num{ font-size:12.5px; }
.rpt-header-btns .ctd-refresh-widget .ctd-refresh-ico svg{ width:15px; height:15px; }

/* v4.39: yumru "Yenilə" düyməsi (report / davam edən servis başlıqlarında) —
   əsas menyu təzələmə vidjeti ilə eyni göy yumru üslub, kiçik ölçüdə. */
.rpt-round-btn{
  width:36px; height:36px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#4E93FA,#2F6FED); color:#fff;
  border:none; cursor:pointer; padding:0;
  box-shadow:0 4px 12px rgba(47,111,237,.28);
  transition:transform .12s, box-shadow .15s;
  flex-shrink:0;
}
.rpt-round-btn svg{ width:16px; height:16px; }
.rpt-round-btn:hover{ transform:translateY(-2px); box-shadow:0 8px 18px rgba(47,111,237,.4); }
.rpt-round-btn:active{ transform:scale(.92); }
/* spinning = əl ilə təzələmə zamanı fırlanan ikonka (ongManualRefresh/tvmOngManualRefresh) */
.rpt-round-btn.spinning svg{ animation:spin .7s linear infinite; }
.rpt-round-btn:disabled{ opacity:.6; cursor:default; transform:none; box-shadow:none; }
body.dark-mode .rpt-round-btn{ box-shadow:0 4px 12px rgba(79,147,250,.25); }

/* v4.42: BUS/TVM dashboard vidjetləri istifadəçinin istəyi ilə YALNIZ desktop-dadır —
   mobil-də görünmür (dashboard başlığındakı yumru vidjet). Ana səhifə vidjeti onsuz
   yalnız desktop topbarındadır (ctd.css ≥901px). */
@media(max-width:900px){
  #busDashRefreshWidget, #tvmDashRefreshWidget{ display:none; }
  .ctd-refresh-widget{
    width:36px; height:36px; border-radius:50%;
    background:linear-gradient(135deg,#2563EB,#3B82F6);
    border:none; color:#FFFFFF; display:flex; align-items:center; justify-content:center;
    cursor:pointer; flex-shrink:0;
    font-family:'Space Grotesk','Inter',sans-serif;
    box-shadow:0 4px 12px rgba(37,99,235,.3);
    transition:transform .12s, box-shadow .15s;
  }
  .ctd-refresh-widget:hover{ transform:translateY(-2px); }
  .ctd-refresh-widget:active{ transform:scale(.92); }
  .ctd-refresh-widget .ctd-refresh-num{ font-size:12.5px; font-weight:700; line-height:1; }
  .ctd-refresh-widget .ctd-refresh-ico{ display:none; }
  .ctd-refresh-widget.refreshing .ctd-refresh-num{ display:none; }
  .ctd-refresh-widget.refreshing .ctd-refresh-ico{ display:flex; }
  .ctd-refresh-widget .ctd-refresh-ico svg{ width:15px; height:15px; animation:spin .8s linear infinite; }
  .ctd-refresh-widget.urgent{ background:linear-gradient(135deg,#DC2626,#EF4444); box-shadow:0 4px 12px rgba(220,38,38,.35); }
  .ctd-refresh-widget.fresh{ background:linear-gradient(135deg,#059669,#10B981); box-shadow:0 4px 12px rgba(16,185,129,.35); }
  .ctd-refresh-widget .ctd-refresh-num.pop{ animation:none; }
}

.rpt-toolbar {
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 16px;
  background:#FFFFFF;
  border-bottom:1px solid #E1EAF6;
  flex-shrink:0;
  flex-wrap:wrap;
}

.rpt-search-wrap { position:relative; flex:0 1 300px; min-width:160px; }
.rpt-search-wrap svg { position:absolute; left:12px; top:50%; transform:translateY(-50%); opacity:.5; pointer-events:none; }

.rpt-type-filter{ display:flex; gap:4px; background:#F0F4FB; border-radius:10px; padding:3px; flex-shrink:0; }

.rpt-oldhint{
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  padding:9px 20px; font-size:12.5px; font-weight:600; color:#8A6116;
  background:#FDF6E8; border-bottom:1px solid #F0DFAF;
}
.rpt-oldhint a{ color:#2F6FED; font-weight:700; cursor:pointer; text-decoration:underline; }
body.dark-mode .rpt-oldhint{ background:#2A2414; border-color:#5C4C1E; color:#E8C878; }
.rpt-type-btn{
  border:none; background:none; padding:7px 13px; border-radius:8px;
  font-family:'Inter',sans-serif; font-size:12.5px; font-weight:700; color:#5C7089;
  cursor:pointer; white-space:nowrap;
}
.rpt-type-btn:hover{ color:#12233B; }
.rpt-type-btn-active{ background:#FFFFFF; color:#2F6FED; box-shadow:0 2px 6px rgba(30,68,130,.1); }
body.dark-mode .rpt-type-filter{ background:#0F1826; }
body.dark-mode .rpt-type-btn{ color:#8CA0BC; }
body.dark-mode .rpt-type-btn-active{ background:#1C2A3D; color:#8FB4EA; }
.rpt-search {
  width:100%;
  padding:9px 10px 9px 36px;
  border:2.5px solid #C7D6EE;
  border-radius:10px;
  font-size:13px;
  font-family:'Inter',sans-serif;
  color:#12233B;
  background:#F8FAFD;
  outline:none;
  box-sizing:border-box;
  transition:border-color .15s;
}
.rpt-search:focus { border-color:#4E93FA; background:#fff; }
.rpt-search::placeholder { color:#9AACC4; }

.rpt-date-box {
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 14px;
  height:36px;
  background:#F0F5FC;
  border:1.5px solid #DCE6F5;
  border-radius:10px;
  font-family:'IBM Plex Mono',monospace;
  font-weight:600;
  font-size:13px;
  color:#12233B;
  white-space:nowrap;
  flex-shrink:0;
  margin-left:26px;
}
.rpt-date-box .status-dot { position:static; margin:0; }
.rpt-date-sep { color:#B9C6DA; font-weight:400; }

.rpt-info {
  font-size:12px;
  color:#8CA0BC;
  white-space:nowrap;
  font-weight:600;
  margin-left:auto;
}

.rpt-body-scroll {
  flex:1;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  display:flex;
  flex-direction:column;
}

.rpt-table-wrap {
  flex:1;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  padding:0 18px;
}

.rpt-table {
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  font-family:'Inter',sans-serif;
  border-left:2px solid #D7E3F5;
  border-right:2px solid #D7E3F5;
}

.rpt-table col.col-id      { width:14%; }
.rpt-table col.col-date    { width:10%; }
.rpt-table col.col-plate   { width:13%; }
.rpt-table col.col-bus     { width:9%; }
.rpt-table col.col-carrier { width:18%; }
.rpt-table col.col-status  { width:14%; }
.rpt-table col.col-act     { width:22%; }

.rpt-table thead th {
  position:sticky;
  top:0;
  z-index:2;
  background:#E6F1FB;
  color:#1B4A8A;
  font-size:11.5px;
  font-weight:700;
  letter-spacing:.1px;
  padding:11px 10px;
  border-bottom:3px solid #B9D2F5;
  border-right:1.5px solid #D2E2F7;
  text-align:left;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.rpt-table thead th:last-child { border-right:none; }
.rpt-table thead th.col-act,
.rpt-table td.col-act { text-align:right; }

.rpt-table tbody td {
  padding:10px 10px;
  font-size:12.5px;
  color:#12233B;
  border-bottom:1.5px solid #E1EAF6;
  border-right:1.5px solid #EDF2FA;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  vertical-align:middle;
}
.rpt-table tbody td:last-child { border-right:none; }
.rpt-table tbody tr:nth-child(even) td { background:#F8FAFD; }
.rpt-table tbody tr:hover td { background:#EEF6FF; }

.rpt-td-id {
  font-family:'IBM Plex Mono',monospace;
  font-weight:700;
  color:#2F6FED;
}
.rpt-td-plate { font-weight:600; }

.rpt-row-actions { display:flex; align-items:center; justify-content:flex-end; gap:6px; padding-right:6px; }
.rpt-icon-btn {
  width:28px; height:28px;
  border-radius:8px;
  border:1.5px solid #DCE6F5;
  background:#F8FAFD;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  color:#5C7089;
  transition:background .15s,color .15s,border-color .15s;
  flex-shrink:0;
  padding:0;
}
.rpt-icon-btn svg { width:14px; height:14px; }
.rpt-icon-btn:hover { background:#E6F1FB; color:#1B4A8A; border-color:#CFE0F7; }
.rpt-icon-btn:active { transform:scale(.92); }
.rpt-icon-btn.rpt-edit-btn:hover { background:#FDF1E3; color:#B45309; border-color:#F5D9A8; }

.rpt-empty {
  text-align:center;
  padding:60px 20px;
  color:#8CA0BC;
  font-size:14px;
}

.rpt-loading {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:60px;
  gap:16px;
  color:#5C7089;
  font-size:14px;
}

.rpt-loadmore-wrap { display:flex; justify-content:center; padding:12px 0; flex-shrink:0; border-top:1px solid #E1EAF6; background:#FFFFFF; }
.rpt-loadmore-btn {
  background:#E6F1FB;
  color:#1B4A8A;
  border:1.5px solid #CFE0F7;
  padding:9px 26px;
  border-radius:10px;
  font-size:12.5px;
  font-weight:700;
  font-family:'Inter',sans-serif;
  cursor:pointer;
  transition:background .15s;
}
.rpt-loadmore-btn:hover { background:#DDE9FB; }
@media(max-width:600px){
  .dv-status-chip{ padding:2px 8px; font-size:10.5px; white-space:nowrap; }
}

.rpt-loadmore-btn:active { transform:scale(.97); }

@media(max-width:600px){
  /* Bütün sütunlar görünür — üfüqi sürüşdürmə + mətn sarma ilə heç bir yazı
     kəsilmir və sütunlar üst-üstə düşmür. */
  .rpt-table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .rpt-table { min-width:600px; }
  .rpt-table tbody td { white-space:normal; overflow:visible; text-overflow:clip; word-break:break-word; }
  .rpt-table tbody td.col-act { white-space:nowrap; }
  .rpt-table thead th { overflow:visible; text-overflow:clip; }
}

@media(max-width:480px){
  .rpt-title { font-size:14px; letter-spacing:.5px; }
  .rpt-btn { padding:8px 10px; font-size:11px; gap:4px; }
  .rpt-btn svg { width:12px; height:12px; }
  .rpt-search-wrap { flex:1 1 auto; min-width:0; }
  .rpt-date-box { display:none; }
  .rpt-info { display:none; }
  .rpt-table-wrap { padding:0 4px; }
  .rpt-table thead th { padding:9px 4px; font-size:10.5px; }
  .rpt-table tbody td { padding:12px 4px; font-size:12px; }
  .rpt-td-id { font-size:11.5px; }
  .rpt-table td.col-act { padding-right:10px; }
/* ═══════════════════════════════════════════════════════════════
   v4.82: METRO TICKET TAM OXU MODALI (real-time report göz düyməsi)
   ═══════════════════════════════════════════════════════════════ */
.mtd-overlay{ position:fixed; inset:0; background:rgba(13,27,45,.55); z-index:120; display:flex; align-items:center; justify-content:center; padding:20px; }
.mtd-modal{ background:#FFFFFF; border-radius:18px; width:min(680px,100%); max-height:88vh; display:flex; flex-direction:column; box-shadow:0 24px 60px -20px rgba(6,14,26,.5); animation:mtdIn .22s ease; }
@keyframes mtdIn{ from{ transform:translateY(14px); opacity:0; } to{ transform:none; opacity:1; } }
.mtd-top{ display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-bottom:1px solid #E3EAF3; flex-shrink:0; }
.mtd-top-title{ font-family:'Rajdhani',sans-serif; font-size:16px; font-weight:700; letter-spacing:1px; color:#12233B; text-transform:uppercase; }
.mtd-close{ width:32px; height:32px; border-radius:10px; border:1px solid #DCE6F5; background:#F5F8FD; color:#5C7089; font-size:16px; cursor:pointer; line-height:1; }
.mtd-close:hover{ background:#EAF1FE; color:#2F6FED; }
.mtd-body{ padding:18px 20px 22px; overflow-y:auto; }
.mtd-head{ display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.mtd-title{ font-family:'IBM Plex Mono',monospace; font-size:20px; font-weight:700; color:#12233B; }
.mtd-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px 16px; }
.mtd-cell{ padding:10px 12px; background:#F5F8FD; border:1px solid #E3EAF3; border-radius:10px; min-width:0; }
.mtd-label{ font-size:10px; font-weight:700; color:#8CA0BC; text-transform:uppercase; letter-spacing:.4px; margin-bottom:3px; }
.mtd-value{ font-size:13px; font-weight:600; color:#12233B; line-height:1.45; word-break:break-word; white-space:pre-wrap; }
.mtd-photos-title{ font-size:13px; font-weight:800; color:#12233B; margin:16px 0 10px; }
.mtd-photos{ display:flex; flex-wrap:wrap; gap:10px; }
.mtd-photos .svc-photo-tile{ width:92px; height:92px; }
.mtd-photos .svc-photo-thumb{ width:100%; height:100%; object-fit:cover; border-radius:10px; cursor:zoom-in; }
@media(max-width:600px){ .mtd-grid{ grid-template-columns:1fr; } }
body.dark-mode .mtd-modal{ background:#16212E; }
body.dark-mode .mtd-top{ border-color:#2C3B4F; }
body.dark-mode .mtd-top-title{ color:#E8EEF5; }
body.dark-mode .mtd-close{ background:#1C2A3D; border-color:#3E5578; color:#8CA0BC; }
body.dark-mode .mtd-cell{ background:#1C2A3D; border-color:#2C3B4F; }
body.dark-mode .mtd-value{ color:#E8EEF5; }
body.dark-mode .mtd-photos-title{ color:#E8EEF5; }
body.dark-mode .mtd-photos .svc-photo-thumb{ border-color:#2C3B4F; }

  .rpt-icon-btn { width:32px; height:32px; border-radius:9px; }
  .rpt-icon-btn svg { width:15px; height:15px; }
}

/* Dark mode - Report view */
body.dark-mode #busReportView { background:#0F1826; }
body.dark-mode #tvmReportView { background:#0F1826; }
body.dark-mode .rpt-header,
body.dark-mode .rpt-toolbar { background:#141F30; border-color:#4A6182; }
body.dark-mode .rpt-title { color:#E8EEF5; }
body.dark-mode .rpt-btn-refresh { background:#1C2A3D; color:#8FB4EA; }
body.dark-mode .rpt-btn-refresh:hover { background:#25374F; }
body.dark-mode .rpt-search { background:#1C2A3D; border-color:#4A6182; color:#E8EEF5; }
body.dark-mode .rpt-search::placeholder { color:#5C7089; }
body.dark-mode .rpt-date-box { background:#1C2A3D; border-color:#4A6182; color:#E8EEF5; }
body.dark-mode .rpt-date-sep { color:#5C7089; }
body.dark-mode .rpt-info { color:#5C7089; }
body.dark-mode .rpt-table { border-left-color:#4A6182; border-right-color:#4A6182; }
body.dark-mode .rpt-table thead th { background:#1C2A3D; color:#8FB4EA; border-bottom-color:#4A6182; border-right-color:#25374F; }
body.dark-mode .rpt-table tbody td { color:#E8EEF5; border-bottom-color:#2A3B52; border-right-color:#233248; }
body.dark-mode .rpt-table tbody tr:nth-child(even) td { background:#16212E; }
body.dark-mode .rpt-table tbody tr:hover td { background:#25374F; }
body.dark-mode .rpt-td-id { color:#8FB4EA; }
body.dark-mode .rpt-icon-btn { background:#1C2A3D; border-color:#4A6182; color:#93A4BC; }
body.dark-mode .rpt-icon-btn:hover { background:#25374F; color:#8FB4EA; }
body.dark-mode .rpt-icon-btn.rpt-edit-btn:hover { background:#3A2E1C; color:#F0B860; }
body.dark-mode .rpt-loadmore-wrap { background:#141F30; border-top-color:#4A6182; }
body.dark-mode .rpt-loadmore-btn { background:#1C2A3D; border-color:#4A6182; color:#8FB4EA; }
body.dark-mode .rpt-loadmore-btn:hover { background:#25374F; }

/* ===== BUS DASHBOARD ===== */
#busDashboardView {
  display:none;
  position:fixed;
  top:0; left:0; width:100%; height:100%;
  background:#EEF3FB;
  z-index:42;
  flex-direction:column;
}
/* Arxa fon banneri — TVM ilə eyni pattern */
#busDashboardView::before{
  content:'';
  position:fixed;
  top:0; left:0; width:100%; height:100%;
  background-image:url('../service_dashboards_bunner.webp');
  background-size:cover;
  background-position:center bottom;
  background-repeat:no-repeat;
  opacity:0.18;
  z-index:0;
  pointer-events:none;
}
body.dark-mode #busDashboardView { background:#0F1826; }
body.dark-mode #busDashboardView::before{ opacity:0.09; }

/* Header, body z-index üstdə olsun */
.dash-header{ position:sticky; top:0; z-index:11; }
.dash-body{ position:relative; z-index:1; }

.dash-header {
  background:#FFFFFF; border-bottom:1px solid #E1EAF6;
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 20px; padding-top:calc(12px + env(safe-area-inset-top));
  flex-wrap:wrap; gap:10px; flex-shrink:0;
}
body.dark-mode .dash-header { background:#141F30; border-color:#4A6182; }
.dash-title { font-family:'Rajdhani',sans-serif; font-weight:700; font-size:19px; letter-spacing:1.5px; color:#12233B; text-transform:uppercase; display:flex; align-items:center; gap:10px; }
.dash-title span { color:#2F6FED; }
body.dark-mode .dash-title { color:#E8EEF5; }
.dash-right { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.dash-tabs { display:flex; gap:4px; background:#F0F5FC; border-radius:10px; padding:3px; }
.dash-type-filter-row{ padding:12px 16px 0; display:flex; justify-content:center; }
body.dark-mode .dash-type-filter-row{ background:transparent; }
body.dark-mode .dash-tabs { background:#1C2A3D; }
.dash-tab { padding:6px 13px; border-radius:8px; font-size:12px; font-weight:700; color:#5C7089; cursor:pointer; }
body.dark-mode .dash-tab { color:#8FA0B8; }
.dash-tab.active { background:linear-gradient(135deg,#4E93FA,#2F6FED); color:#fff; }
.dash-excel-btn { display:flex; align-items:center; gap:6px; padding:8px 14px; border-radius:9px; background:#2F6FED; color:#fff; font-size:12px; font-weight:700; border:none; cursor:pointer; }

.dash-body { flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch; }
.dash-container { max-width:1120px; margin:0 auto; padding:20px 20px 50px; }

.dash-top-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:16px; }
.dash-metric { background:#FFFFFF; border:1px solid #E1EAF6; border-radius:14px; padding:18px 20px; display:flex; align-items:center; justify-content:space-between; box-shadow:0 10px 24px rgba(30,68,130,.06); }
body.dark-mode .dash-metric { background:#16212E; border-color:#4A6182; box-shadow:none; }
.dash-metric-label { font-size:12px; font-weight:700; color:#8CA0BC; letter-spacing:.2px; margin-bottom:8px; }
body.dark-mode .dash-metric-label { color:#8FA0B8; }
.dash-metric-value { font-family:'Rajdhani',sans-serif; font-size:32px; font-weight:700; color:#12233B; }
body.dark-mode .dash-metric-value { color:#E8EEF5; }
.dash-metric-icon { width:38px; height:38px; border-radius:10px; background:#F0F5FC; color:#2F6FED; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
body.dark-mode .dash-metric-icon { background:#1C2A3D; color:#4E93FA; }
.dash-range-btn { background:linear-gradient(135deg,#EAF2FE,#E6F1FB); border:1.5px solid #CFE0F7; border-radius:12px; padding:0 16px; display:flex; align-items:center; justify-content:center; gap:14px; cursor:pointer; }
body.dark-mode .dash-range-btn { background:linear-gradient(135deg,#1C2A3D,#16212E); border-color:#4A6182; }
.dash-range-btn .ic { width:34px; height:34px; border-radius:9px; background:#FFFFFF; color:#2F6FED; display:flex; align-items:center; justify-content:center; }
body.dark-mode .dash-range-btn .ic { background:#16212E; color:#4E93FA; }

.dash-section-title { font-size:14px; font-weight:700; color:#12233B; letter-spacing:.1px; margin:24px 0 12px; }
body.dark-mode .dash-section-title { color:#E8EEF5; }

.dash-radial-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.dash-radial-card { background:#FFFFFF; border:1px solid #E1EAF6; border-radius:14px; padding:18px; text-align:center; box-shadow:0 10px 24px rgba(30,68,130,.06); }
body.dark-mode .dash-radial-card { background:#16212E; border-color:#4A6182; box-shadow:none; }
.dash-radial-textbox { background:#F7FAFD; border:1px solid #EEF3FB; border-radius:10px; padding:10px 12px; font-size:14px; color:#12233B; font-weight:600; margin-top:12px; line-height:1.45; text-align:left; }
body.dark-mode .dash-radial-textbox { background:#1C2A3D; border-color:#233248; color:#E8EEF5; }
.dash-radial-count { display:inline-flex; align-items:center; gap:5px; background:#F0F5FC; color:#1B4A8A; font-size:12.5px; font-weight:700; padding:5px 12px; border-radius:20px; margin-top:10px; }
body.dark-mode .dash-radial-count { background:#1C2A3D; color:#8FB4EA; }

.dash-ranklist-wrap { border:1px solid #E1EAF6; border-radius:14px; overflow:hidden; box-shadow:0 10px 24px rgba(30,68,130,.06); }
body.dark-mode .dash-ranklist-wrap { border-color:#4A6182; box-shadow:none; }
.dash-ranklist { width:100%; border-collapse:collapse; background:#FFFFFF; table-layout:fixed; }
body.dark-mode .dash-ranklist { background:#16212E; }
.dash-ranklist th, .dash-ranklist td { border:1px solid #E1EAF6; padding:12px 14px; }
body.dark-mode .dash-ranklist th, body.dark-mode .dash-ranklist td { border-color:#4A6182; }
.dash-ranklist th { background:#F7FAFD; font-size:11.5px; font-weight:700; color:#8CA0BC; letter-spacing:.2px; text-align:left; }
body.dark-mode .dash-ranklist th { background:#1C2A3D; color:#8FA0B8; }
.dash-ranklist th.dr-count-col, .dash-ranklist td.dr-count-col { text-align:right; width:110px; }
.dash-ranklist th.dr-num-col, .dash-ranklist td.dr-num-col { width:40px; text-align:center; }
.dash-ranklist td { font-size:14.5px; color:#12233B; vertical-align:middle; }
body.dark-mode .dash-ranklist td { color:#E8EEF5; }
.dash-ranklist tbody tr:nth-child(even) td { background:#FAFBFE; }
body.dark-mode .dash-ranklist tbody tr:nth-child(even) td { background:#18222F; }
.dash-rank-num span { width:24px; height:24px; border-radius:7px; background:#F0F5FC; color:#2F6FED; font-weight:700; font-size:12.5px; display:inline-flex; align-items:center; justify-content:center; }
body.dark-mode .dash-rank-num span { background:#1C2A3D; color:#4E93FA; }
.dash-rank-count-val { font-family:'Rajdhani',sans-serif; font-size:19px; font-weight:700; color:#12233B; }
body.dark-mode .dash-rank-count-val { color:#E8EEF5; }

.dash-tile-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.dash-tile { background:#FFFFFF; border:1px solid #E1EAF6; border-radius:14px; padding:18px 14px; display:flex; flex-direction:column; align-items:center; gap:10px; box-shadow:0 10px 24px rgba(30,68,130,.06); }
body.dark-mode .dash-tile { background:#16212E; border-color:#4A6182; box-shadow:none; }
.dash-tile-icon { width:42px; height:42px; border-radius:11px; background:#FDF1E3; color:#B45309; display:flex; align-items:center; justify-content:center; }
body.dark-mode .dash-tile-icon { background:#3A2E1C; color:#F0B860; }
.dash-tile-name { font-size:13.5px; color:#12233B; font-weight:600; text-align:center; line-height:1.35; }
body.dark-mode .dash-tile-name { color:#E8EEF5; }
.dash-tile-count { font-family:'Rajdhani',sans-serif; font-size:24px; font-weight:700; color:#12233B; }
body.dark-mode .dash-tile-count { color:#E8EEF5; }

.dash-lead-card { background:#FFFFFF; border:1px solid #E1EAF6; border-radius:14px; padding:0 18px; box-shadow:0 10px 24px rgba(30,68,130,.06); }
body.dark-mode .dash-lead-card { background:#16212E; border-color:#4A6182; box-shadow:none; }
.dash-lead-row { display:flex; align-items:center; gap:14px; padding:13px 0; border-bottom:1px solid #F0F5FC; }
body.dark-mode .dash-lead-row { border-bottom-color:#1C2A3D; }
.dash-lead-row:last-child { border-bottom:none; }
.dash-avatar { width:38px; height:38px; border-radius:50%; background:linear-gradient(135deg,#4E93FA,#2F6FED); color:#fff; font-size:13px; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.dash-lead-name { flex:1; font-size:15px; color:#12233B; font-weight:500; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body.dark-mode .dash-lead-name { color:#E8EEF5; }
.dash-lead-bar-wrap { width:90px; height:7px; background:#F0F5FC; border-radius:4px; overflow:hidden; flex-shrink:0; }
body.dark-mode .dash-lead-bar-wrap { background:#1C2A3D; }
.dash-lead-bar { height:100%; background:linear-gradient(90deg,#4E93FA,#2F6FED); }
.dash-lead-count { font-family:'Rajdhani',sans-serif; font-size:17px; font-weight:700; color:#12233B; width:24px; text-align:right; flex-shrink:0; }
body.dark-mode .dash-lead-count { color:#E8EEF5; }

.dash-alert-panel { background:#FFFFFF; border:1.5px solid #FCA5A5; border-radius:14px; padding:0 18px; box-shadow:0 10px 24px rgba(30,68,130,.06); overflow:hidden; }
body.dark-mode .dash-alert-panel { background:#16212E; border-color:#7F2A2A; box-shadow:none; }
.dash-empty-txt { padding:16px 4px; font-size:13.5px; color:#8CA0BC; line-height:1.5; }
body.dark-mode .dash-empty-txt { color:#8FA0B8; }

.dash-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }

/* Modal */
.dash-modal-overlay { display:none; position:fixed; inset:0; background:rgba(18,35,59,.5); align-items:center; justify-content:center; z-index:200; padding:20px; }
.dash-modal-overlay.open { display:flex !important; }
.dash-modal { background:#fff; border-radius:18px; width:min(960px,94vw); height:min(500px,86vh); box-shadow:0 30px 70px rgba(0,0,0,.25); display:flex; flex-direction:column; overflow:hidden; }
body.dark-mode .dash-modal { background:#16212E; }
.dash-modal-head { display:flex; align-items:center; justify-content:space-between; padding:14px 18px; border-bottom:1px solid #E1EAF6; flex-shrink:0; }
body.dark-mode .dash-modal-head { border-bottom-color:#4A6182; }
.dash-modal-head-title { font-family:'Rajdhani',sans-serif; font-weight:700; font-size:15px; color:#12233B; letter-spacing:.3px; }
body.dark-mode .dash-modal-head-title { color:#E8EEF5; }
.dash-modal-head-btns { display:flex; align-items:center; gap:6px; background:#F0F5FC; border-radius:11px; padding:4px; }
body.dark-mode .dash-modal-head-btns { background:#1C2A3D; }
.dash-reset-btn { padding:6px 12px; border-radius:8px; border:none; background:transparent; color:#5C7089; font-size:12px; font-weight:600; cursor:pointer; }
.dash-close-btn { width:28px; height:28px; border-radius:8px; background:#2F6FED; color:#fff; border:none; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.dash-modal-body { flex:1; display:flex; overflow:hidden; }
.dash-modal-results { flex:1; display:none; overflow-y:auto; padding:20px 22px; }
.dash-modal-results.open { display:block; }
.dash-modal-left { width:42%; border-right:1px solid #E1EAF6; padding:16px 18px; display:flex; flex-direction:column; overflow-y:auto; }
body.dark-mode .dash-modal-left { border-right-color:#4A6182; }
.dash-modal-right { width:58%; padding:16px 18px; display:flex; flex-direction:column; overflow-y:auto; }

.dcal-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.dcal-nav { width:26px; height:26px; border-radius:7px; border:1px solid #E1EAF6; background:#F8FAFD; display:flex; align-items:center; justify-content:center; cursor:pointer; color:#12233B; }
.dcal-label { font-family:'Rajdhani',sans-serif; font-weight:700; font-size:14px; color:#12233B; }
.dcal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.dcal-dow { font-size:9.5px; color:#8CA0BC; text-align:center; font-weight:700; padding-bottom:4px; }
.dcal-day { font-size:11.5px; text-align:center; padding:6px 0; border-radius:6px; cursor:pointer; color:#12233B; }
.dcal-day:hover { background:#EEF6FF; }
.dcal-day.muted { color:#C7D3E5; }
.dcal-day.in-range { background:#E6F1FB; border-radius:0; }
.dcal-day.range-start { background:#2F6FED; color:#fff; border-radius:6px 0 0 6px; }
.dcal-day.range-end { background:#2F6FED; color:#fff; border-radius:0 6px 6px 0; }
.dcal-day.range-start.range-end { border-radius:6px; }
.dcal-selected-txt { margin-top:10px; padding-top:10px; border-top:1px solid #EEF3FB; font-size:11px; font-family:'IBM Plex Mono',monospace; color:#5C7089; }

.dash-chip-row { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px; }
.dash-chip { padding:6px 12px; border-radius:20px; border:1.5px solid #DCE6F5; font-size:11px; font-weight:600; color:#5C7089; cursor:pointer; background:#F8FAFD; }
.dash-chip.active { background:#2F6FED; border-color:#2F6FED; color:#fff; }
.dash-subfilter { border:1px solid #E1EAF6; border-radius:10px; padding:10px 12px; margin-bottom:8px; }
.dash-subfilter-title { font-size:11.5px; font-weight:700; color:#8CA0BC; margin-bottom:7px; }
.dash-subfilter-opts { display:flex; flex-wrap:wrap; gap:5px; }
.dash-opt-chip { padding:4px 10px; border-radius:14px; border:1px solid #DCE6F5; font-size:10.5px; color:#12233B; cursor:pointer; background:#fff; }
.dash-opt-chip.sel { background:#E6F1FB; border-color:#2F6FED; color:#0C447C; font-weight:600; }
.dash-subfilter input { width:100%; padding:7px 10px; border:1.5px solid #DCE6F5; border-radius:8px; font-size:12.5px; outline:none; font-family:'Inter',sans-serif; }
.dash-search-warn { display:flex; align-items:center; gap:8px; background:#FEF3E2; border:1px solid #F6D9A0; color:#8A5A00; font-size:12.5px; font-weight:600; padding:10px 12px; border-radius:10px; margin-bottom:10px; line-height:1.4; }
body.dark-mode .dash-search-warn { background:#3A2E1C; border-color:#5C4522; color:#F0C060; }
.dash-search-btn { margin-top:auto; background:linear-gradient(135deg,#4E93FA,#2F6FED); color:#fff; border:none; padding:11px; border-radius:10px; font-size:13px; font-weight:700; cursor:pointer; }

.dash-loading-overlay { display:none; position:fixed; inset:0; background:rgba(244,248,253,.85); align-items:center; justify-content:center; z-index:300; flex-direction:column; gap:14px; }
.dash-loading-overlay.open { display:flex !important; }
body.dark-mode .dash-loading-overlay { background:rgba(15,24,38,.88); }
.dash-loading-text { font-size:14px; font-weight:600; color:#2F4C6E; }
body.dark-mode .dash-loading-text { color:#8FB4EA; }

/* Mobil sadə görünüş */
.dash-mobile-view { display:none; padding:16px 16px 40px; }
.dash-m-section { margin-bottom:20px; }
.dash-m-title { font-size:13px; font-weight:700; color:#12233B; margin-bottom:10px; }
body.dark-mode .dash-m-title { color:#E8EEF5; }
.dash-m-card-empty { background:#FFFFFF; border:1px solid #E1EAF6; border-radius:14px; padding:14px; font-size:13px; color:#8CA0BC; }
body.dark-mode .dash-m-card-empty { background:#16212E; border-color:#4A6182; color:#8FA0B8; }
.dash-m-metrics { font-size:15px; color:#12233B; line-height:2.1; font-weight:500; }
body.dark-mode .dash-m-metrics { color:#E8EEF5; }
.dash-m-metrics b { font-family:'Rajdhani',sans-serif; font-size:18px; }

@media(max-width:600px){
  .dash-desktop-view { display:none !important; }
  .dash-mobile-view { display:block; }
  .dash-excel-btn { display:none !important; }
  .dash-title { font-size:15px; }
  .dash-tab { padding:6px 10px; font-size:11px; }
}


#busDetailView {
  display:none;
  position:fixed;
  top:0; left:0; width:100%; height:100%;
  background:#F4F8FD;
  z-index:45;
  flex-direction:column;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
#tvmDetailView {
  display:none;
  position:fixed;
  top:0; left:0; width:100%; height:100%;
  background:#F4F8FD;
  z-index:45;
  flex-direction:column;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
/* ===== BUS DETAIL VIEW (görüntüləmə) ===== */
.dv-body { max-width:560px; margin:0 auto; padding:18px 16px calc(24px + env(safe-area-inset-bottom)); width:100%; box-sizing:border-box; }
.dv-section {
  background:#FFFFFF;
  border:1px solid #E1EAF6;
  border-radius:16px;
  padding:16px;
  margin-bottom:12px;
}
.dv-section-title {
  font-size:12.5px;
  font-weight:700;
  color:#5C7089;
  letter-spacing:.2px;
  margin-bottom:12px;
}
.dv-row { display:flex; justify-content:space-between; gap:14px; padding:8px 0; border-bottom:1px solid #F0F5FC; }
.dv-row:last-child { border-bottom:none; }
.dv-label { font-size:12px; color:#8CA0BC; font-weight:600; flex-shrink:0; }
.dv-value { font-size:13px; color:#12233B; font-weight:500; text-align:right; word-break:break-word; }
.dv-status-chip {
  display:inline-block;
  padding:2px 12px;
  background:#D1FAE5;
  color:#065F46;
  border-radius:6px;
  font-size:11px;
  font-weight:700;
  border:1px solid #6EE7B7;
}

/* ═══ v4.79: DAVAM EDƏN SERVİS ÇİPLƏRİ — GECƏ REJİMİNDƏ PARLAQ PASTELLƏR QALMASIN ═══
   Status çipləri JS-də inline stillə çəkilir (gündüz rəngləri). Gecə rejimində
   !important ilə tünd variant üstələnir — rəng kodu (mavi/sarı/yaşıl/boz) qorunur. */
body.dark-mode .dv-status-chip{
  background:#1C2A3C !important;
  color:#9CB2CE !important;
  border-color:#3E5578 !important;
}
/* Qiymətləndirilir — mavi */
body.dark-mode .dv-status-chip[style*="1B4A8A"]{
  background:#12324E !important; border-color:#2E6FA5 !important; color:#8FB4EA !important;
}
/* Texnik Tamamladı / Açıq (sarı-larınca) */
body.dark-mode .dv-status-chip[style*="B45309"],
body.dark-mode .dv-status-chip[style*="B8730A"]{
  background:#3A2E17 !important; border-color:#8A6A1E !important; color:#F0C36D !important;
}
/* Açıq / Servis Bağlandı — yaşıl */
body.dark-mode .dv-status-chip[style*="188A4B"]{
  background:#14352E !important; border-color:#2E7D55 !important; color:#7FDBC9 !important;
}
/* Yaşıl "tamamla/bağla" düymələri — gecə rejimində oxunaqlı ton */
body.dark-mode .rpt-icon-btn[style*="188A4B"]{
  color:#4FC38B !important; border-color:#2E7D55 !important;
}
/* Davam edən servis view-ları — gecə fonu */
body.dark-mode #busOngoingView{ background:#0F1826; }
body.dark-mode #metroOngoingView{ background:#0F1826; }
body.dark-mode #busDetailView { background:#0F1826; }
body.dark-mode #tvmDetailView { background:#0F1826; }
body.dark-mode .dv-section { background:#16212E; border-color:#4A6182; }
body.dark-mode .dv-section-title { color:#5C7089; }
body.dark-mode .dv-row { border-bottom-color:#1C2A3D; }
body.dark-mode .dv-label { color:#5C7089; }
body.dark-mode .dv-value { color:#E8EEF5; }

/* Bulk Service banner düyməsi (BUS Service içində) */
.bs-bulk-banner-btn {
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  background:linear-gradient(135deg,#4E93FA,#2F6FED);
  color:#fff;
  border:none;
  padding:13px 16px;
  border-radius:14px;
  font-size:14px;
  font-weight:700;
  font-family:'Inter',sans-serif;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(47,111,237,.28);
  transition:transform .05s,box-shadow .15s;
}
.bs-bulk-banner-btn:hover { box-shadow:0 12px 28px rgba(47,111,237,.38); }
.bs-bulk-banner-btn:active { transform:scale(.98); }

/* ══════════════════════════════════════════════════════════════
   TVM DASHBOARD — YENİ DİZAYN (tvmd-* prefiksi)
   ══════════════════════════════════════════════════════════════ */

#tvmDashboardView{
  display:none;
  position:fixed; top:0; left:0; width:100%; height:100%;
  background:#F0F4FB;
  z-index:40;
  flex-direction:column;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}

/* Arxa fon banneri */
#tvmDashboardView::before{
  content:'';
  position:fixed;
  top:0; left:0; width:100%; height:100%;
  background-image:url('../service_dashboards_bunner.webp');
  background-size:cover;
  background-position:center bottom;
  background-repeat:no-repeat;
  opacity:0.22;
  z-index:0;
  pointer-events:none;
}
body.dark-mode #tvmDashboardView::before{ opacity:0.10; }

/* Header, body z-index üstdə olsun */
.tvmd-header{ position:sticky; top:0; z-index:11; }
.tvmd-body{ position:relative; z-index:1; }

body.dark-mode #tvmDashboardView{ background:#0D1420; }

/* ── HEADER ── */
.tvmd-header{
  position:sticky; top:0; z-index:11;
  display:grid; grid-template-columns:48px 1fr auto;
  align-items:center; gap:12px;
  padding:13px 28px;
  background:#FFFFFF;
  border-bottom:1px solid #E1EAF6;
  box-shadow:0 2px 8px rgba(30,68,130,.06);
}
body.dark-mode .tvmd-header{ background:#141F30; border-color:#2A3B52; }
.tvmd-home-btn{
  width:36px; height:36px; border-radius:10px; border:1px solid #E1EAF6;
  background:#F7FAFE; display:flex; align-items:center; justify-content:center;
  color:#12233B; cursor:pointer;
}
body.dark-mode .tvmd-home-btn{ background:#1C2A3D; border-color:#3E5578; color:#E8EEF5; }
.tvmd-home-btn:active{ transform:scale(.95); }
.tvmd-title{
  font-family:'Rajdhani',sans-serif; font-weight:700; font-size:22px;
  letter-spacing:1.5px; color:#12233B; text-transform:uppercase;
  text-align:center; white-space:nowrap;
}
body.dark-mode .tvmd-title{ color:#E8EEF5; }
.tvmd-title span{ color:#2F6FED; }
.tvmd-header-right{ display:flex; align-items:center; gap:10px; }
.tvmd-tabs{ display:flex; gap:2px; background:#EEF3FB; border-radius:10px; padding:3px; }
body.dark-mode .tvmd-tabs{ background:#1C2A3D; }
.tvmd-tab{
  padding:7px 14px; border-radius:8px; font-size:12.5px; font-weight:700;
  color:#5C7089; cursor:pointer; white-space:nowrap;
  transition:background .12s, color .12s;
}
.tvmd-tab:hover{ color:#12233B; }
body.dark-mode .tvmd-tab:hover{ color:#E8EEF5; }
.tvmd-tab.active{ background:#FFFFFF; color:#2F6FED; box-shadow:0 2px 6px rgba(30,68,130,.1); }
body.dark-mode .tvmd-tab.active{ background:#141F30; color:#8FB4EA; }
.tvmd-excel-btn{
  display:flex; align-items:center; gap:7px;
  background:linear-gradient(135deg,#4E93FA,#2F6FED); color:#fff; border:none;
  padding:9px 16px; border-radius:10px; font-family:'Inter',sans-serif;
  font-size:13px; font-weight:700; cursor:pointer; white-space:nowrap;
  box-shadow:0 6px 16px rgba(47,111,237,.24);
}
.tvmd-excel-btn:active{ transform:scale(.97); }

/* ── BODY & CONTAINER ── */
.tvmd-body{ flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch; }
.tvmd-container{ max-width:1360px; margin:0 auto; padding:24px 28px 48px; }

/* ── METRİKA KARTLAR ── */
.tvmd-metrics-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:20px; }
.tvmd-metric-card{
  background:rgba(255,255,255,0.82); border:2px solid #A8C6EC; border-radius:16px;
  padding:18px 20px 14px; box-shadow:0 4px 20px rgba(30,68,130,.10);
  display:flex; flex-direction:column; gap:4px;
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
}
body.dark-mode .tvmd-metric-card{ background:rgba(22,33,46,0.82); border-color:#2A4A72; }
.tvmd-metric-top{ display:flex; align-items:center; gap:10px; margin-bottom:6px; }
.tvmd-metric-icon-wrap{
  width:36px; height:36px; border-radius:10px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
}
.tvmd-ic-blue { background:#E6F1FB; color:#2F6FED; }
.tvmd-ic-teal { background:#E0F5F0; color:#0E8C7A; }
.tvmd-ic-orange{ background:#FDF1E3; color:#D97706; }
.tvmd-ic-green { background:#E5F6ED; color:#188A4B; }
.tvmd-metric-label{ font-size:12.5px; font-weight:700; color:#8CA0BC; }
body.dark-mode .tvmd-metric-label{ color:#6B84A0; }
.tvmd-metric-value{ font-size:30px; font-weight:800; color:#12233B; line-height:1; font-family:'Rajdhani',sans-serif; }
body.dark-mode .tvmd-metric-value{ color:#E8EEF5; }
.tvmd-metric-trend{ font-size:10.5px; font-weight:600; color:#8CA0BC; min-height:15px; line-height:1.3; }
.tvmd-metric-trend.up{ color:#188A4B; }
.tvmd-metric-trend.down{ color:#D97706; }
.tvmd-sparkline-wrap{ margin-top:8px; height:36px; }
.tvmd-sparkline{ width:100%; height:36px; display:block; border-radius:4px; }

/* Filtr kartı */
.tvmd-filter-card{ cursor:pointer; border:2px dashed #A8C6EC; justify-content:center; gap:10px; }
.tvmd-filter-card:hover{ background:#F7FAFE; border-color:#2F6FED; }
body.dark-mode .tvmd-filter-card{ border-color:#3E5578; }
.tvmd-filter-date-row{ display:flex; align-items:center; gap:8px; }
.tvmd-filter-date-txt{ font-size:13px; font-weight:700; color:#2F6FED; }
body.dark-mode .tvmd-filter-date-txt{ color:#7FB0F5; }
.tvmd-filter-search-row{
  display:flex; align-items:center; gap:8px;
  background:#F0F4FB; border-radius:8px; padding:8px 12px;
}
body.dark-mode .tvmd-filter-search-row{ background:#1C2A3D; }
.tvmd-filter-search-ph{ font-size:12.5px; color:#9AACC4; }

/* ── LOKASİYA TİPİ ── */
.tvmd-section-label{
  font-size:13.5px; font-weight:700; color:#12233B; margin:20px 0 10px;
  letter-spacing:.2px;
}
body.dark-mode .tvmd-section-label{ color:#E8EEF5; }
.tvmd-loc-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:20px; }
/* Köhnə tvm-loc-* class-larını saxlayırıq — JS render edir */
.tvm-loc-card{
  background:rgba(255,255,255,0.82); border:2px solid #A8C6EC; border-radius:14px;
  padding:16px 20px; box-shadow:0 4px 14px rgba(30,68,130,.10);
  display:flex; align-items:center; gap:14px;
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
}
body.dark-mode .tvm-loc-card{ background:rgba(22,33,46,0.82); border-color:#2A4A72; }
.tvm-loc-card-icon{
  width:36px; height:36px; border-radius:10px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
}
.tvm-loc-card-body{ flex:1; }
.tvm-loc-card-top{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:8px; font-size:13.5px; font-weight:600; color:#33445E;
}
body.dark-mode .tvm-loc-card-top{ color:#C7D5E8; }
.tvm-loc-card-top b{ font-weight:800; color:#12233B; font-size:15px; }
body.dark-mode .tvm-loc-card-top b{ color:#E8EEF5; }
.tvm-loc-bar-track{ height:8px; background:#EEF2FA; border-radius:4px; overflow:hidden; }
body.dark-mode .tvm-loc-bar-track{ background:#1C2A3D; }
.tvm-loc-bar-fill{ height:100%; border-radius:4px; width:0; transition:width 1.1s cubic-bezier(.2,.7,.3,1); }

/* ── PROBLEMLƏR BÖLÜMÜ ── */
.tvmd-problems-row{ margin-bottom:20px; }
.tvmd-donut-card{
  background:rgba(255,255,255,0.82); border:2px solid #A8C6EC; border-radius:16px;
  box-shadow:0 4px 20px rgba(30,68,130,.10);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
}
body.dark-mode .tvmd-donut-card{ background:rgba(22,33,46,0.82); border-color:#2A4A72; }

/* Donut panel içi — Sol siyahı | Donut | Sağ legend */
/* Donut panel: sol siyahi | donut SVG (orta, boyuk) | [diger panel] */
.tvm-donut-panel-new{
  display:grid;
  align-items:center;
  min-height:230px;
  gap:0;
}
@media (max-width:900px){ .tvm-donut-panel-new{ grid-template-columns:1fr !important; } }

/* Donut ortada - sabit en */
.tvmd-donut-mid{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:14px 8px; gap:10px;
}

/* Sağ "Digər" sütunu — sol siyahı ilə EYNİ sətir stili, statik (düymə yoxdur) */
.tvm-donut-diger-col{
  border-left:1.5px solid #EEF3FB;
  height:100%;
  max-height:280px;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
body.dark-mode .tvm-donut-diger-col{ border-left-color:#1C2A3D; }
.tvm-donut-diger-title{
  font-size:10.5px; font-weight:800; color:#8CA0BC; letter-spacing:.6px;
  text-transform:uppercase; padding:12px 14px 6px;
}
.tvm-donut-diger-title span{ color:#B5C4D8; font-weight:700; }
body.dark-mode .tvm-donut-diger-title{ color:#5C7089; }
.tvm-donut-diger-rows{ display:flex; flex-direction:column; }

/* Muted (gray) versiyalar — Digər sətirlərində rəngli deyil, neytral */
.tvm-donut-row-muted{ border-left-color:transparent !important; }
.tvm-donut-rank-muted{ background:#EEF3FB !important; color:#8CA0BC !important; }
body.dark-mode .tvm-donut-rank-muted{ background:#1C2A3D !important; color:#6B84A0 !important; }
.tvm-donut-row-icon-muted{ background:#EEF3FB !important; color:#8CA0BC !important; }
body.dark-mode .tvm-donut-row-icon-muted{ background:#1C2A3D !important; color:#6B84A0 !important; }
.tvmd-badge-pct-muted{ background:#EEF3FB !important; color:#8CA0BC !important; border:1.5px solid #DCE6F5 !important; }
body.dark-mode .tvmd-badge-pct-muted{ background:#1C2A3D !important; color:#6B84A0 !important; border-color:#2A3B52 !important; }

/* Sol siyahı badge */
.tvmd-row-badge{
  display:flex; align-items:center; gap:4px; flex-shrink:0;
}
.tvmd-badge-count{
  font-size:12.5px; font-weight:800; color:#12233B;
  min-width:18px; text-align:right;
}
body.dark-mode .tvmd-badge-count{ color:#E8EEF5; }
.tvmd-badge-pct{
  font-size:11px; font-weight:700;
  border-radius:10px; padding:1px 8px;
  min-width:36px; text-align:center;
  white-space:nowrap;
}

/* KPI row (MTTR, SLA, Aktiv texnik) — metrics altında */
.tvmd-kpi-row{
  display:grid; grid-template-columns:repeat(3,1fr); gap:12px;
  margin-bottom:20px;
}
.tvmd-kpi-card{
  background:rgba(255,255,255,0.82); border:2px solid #A8C6EC;
  border-radius:14px; padding:14px 16px;
  display:flex; align-items:center; gap:12px;
  box-shadow:0 4px 14px rgba(30,68,130,.10);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
}
body.dark-mode .tvmd-kpi-card{ background:rgba(22,33,46,0.82); border-color:#2A4A72; }
.tvmd-kpi-icon{
  width:36px; height:36px; border-radius:10px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
}
.tvmd-kpi-body{ flex:1; }
.tvmd-kpi-label{ font-size:11px; font-weight:700; color:#8CA0BC; margin-bottom:2px; }
body.dark-mode .tvmd-kpi-label{ color:#5C7089; }
.tvmd-kpi-value{ font-size:20px; font-weight:800; color:#12233B; font-family:'Rajdhani',sans-serif; line-height:1; }
body.dark-mode .tvmd-kpi-value{ color:#E8EEF5; }
.tvmd-kpi-trend{ font-size:10.5px; font-weight:600; color:#8CA0BC; margin-top:2px; }
.tvmd-kpi-trend.up{ color:#188A4B; }
.tvmd-kpi-trend.down{ color:#D97706; }
.tvm-donut-row-sm{
  display:grid; grid-template-columns:26px 28px 1fr auto; gap:6px;
  align-items:center; padding:9px 14px; border-bottom:1px solid #F0F5FC;
  border-left:4px solid transparent;
}
body.dark-mode .tvm-donut-row-sm{ border-bottom-color:#1C2A3D; }
.tvm-donut-row-sm:last-child{ border-bottom:none; }
.tvm-donut-rank{
  width:22px; height:22px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-size:11px; font-weight:700; color:#FFFFFF;
}
.tvm-donut-row-icon{
  width:26px; height:26px; border-radius:7px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
}
.tvm-donut-row-name{ font-size:13px; color:#33445E; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
body.dark-mode .tvm-donut-row-name{ color:#C7D5E8; }
.tvm-donut-row-count{ font-weight:800; color:#12233B; font-size:14px; flex-shrink:0; }
body.dark-mode .tvm-donut-row-count{ color:#E8EEF5; }
.tvm-donut-row-pct{ font-size:12px; color:#8CA0BC; font-weight:600; flex-shrink:0; width:36px; text-align:right; }
.tvm-donut-visual-big{ display:flex; align-items:center; justify-content:center; padding:16px 8px; }
.tvm-donut-visual-big svg{ max-width:180px; width:100%; }
.tvm-donut-row-icon{
  width:26px; height:26px; border-radius:7px;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.tvm-donut-empty{ padding:32px; text-align:center; font-size:13px; color:#8CA0BC; }
.tvmd-showall-link-sm{
  display:inline-flex; align-items:center; gap:5px;
  font-size:13px; font-weight:700; color:#2F6FED; cursor:pointer;
  padding:12px 16px; border-top:1px solid #F0F5FC; width:100%;
  background:none; border-left:none; border-right:none; border-bottom:none;
  text-align:left;
}
body.dark-mode .tvmd-showall-link-sm{ color:#7FB0F5; border-top-color:#1C2A3D; }
.tvmd-showall-link-sm:hover{ background:#F7FAFE; }
body.dark-mode .tvmd-showall-link-sm:hover{ background:#1C2A3D; }

/* ── SAĞ WIDGET SÜTUNU (MTTR, SLA, Aktiv texnik) ── */
.tvmd-side-widgets{ display:flex; flex-direction:column; gap:12px; }
.tvmd-side-widget{
  background:rgba(255,255,255,0.82); border:2px solid #A8C6EC; border-radius:14px;
  padding:14px 16px; display:flex; align-items:flex-start; gap:12px;
  box-shadow:0 4px 14px rgba(30,68,130,.10);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
}
body.dark-mode .tvmd-side-widget{ background:rgba(22,33,46,0.82); border-color:#2A4A72; }
.tvmd-sw-icon{
  width:34px; height:34px; border-radius:10px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
}
.tvmd-sw-body{ flex:1; }
.tvmd-sw-label{ font-size:11.5px; font-weight:700; color:#8CA0BC; margin-bottom:3px; }
body.dark-mode .tvmd-sw-label{ color:#5C7089; }
.tvmd-sw-value{ font-size:22px; font-weight:800; color:#12233B; font-family:'Rajdhani',sans-serif; line-height:1; }
body.dark-mode .tvmd-sw-value{ color:#E8EEF5; }
.tvmd-sw-trend{ font-size:11px; font-weight:600; color:#8CA0BC; margin-top:3px; }
.tvmd-sw-trend.up{ color:#188A4B; }
.tvmd-sw-trend.down{ color:#D97706; }

/* ── İKİ SÜTUN (Həllər + Lokasiyalar) ── */
.tvmd-two-col{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:24px; }
.tvmd-section-label-row{ display:flex; align-items:center; justify-content:space-between; margin:20px 0 10px; }
.tvmd-showall-btn{
  font-size:12px; font-weight:700; color:#2F6FED; background:#E6F1FB;
  border:1px solid #C9DAF3; border-radius:8px; padding:5px 12px; cursor:pointer;
}
.tvmd-showall-btn:hover{ background:#D6E8FB; }
body.dark-mode .tvmd-showall-btn{ background:#1C2A3D; border-color:#3E5578; color:#7FB0F5; }

/* "Hamısını göstər" düyməsi — lokasiyalar kartının içindədir */
.tvmd-showall-inside{
  display:flex; align-items:center; justify-content:center; gap:5px;
  width:100%; padding:11px 16px;
  border:none; border-top:1px solid #EEF2FA;
  background:none; cursor:pointer;
  font-size:13px; font-weight:700; color:#2F6FED;
  font-family:'Inter',sans-serif;
  border-radius:0 0 16px 16px;
  transition:background .12s;
}
.tvmd-showall-inside:hover{ background:#F3F7FF; }
body.dark-mode .tvmd-showall-inside{ color:#7FB0F5; border-top-color:#1C2A3D; }
body.dark-mode .tvmd-showall-inside:hover{ background:#1C2A3D; }

/* Bütün lokasiyalar açılan paneli */
.tvmd-all-loc-panel{
  background:#FFFFFF; border:1px solid #E1EAF6; border-radius:14px;
  margin-top:10px;
  max-height:320px; overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  box-shadow:0 4px 16px rgba(30,68,130,.07);
}
body.dark-mode .tvmd-all-loc-panel{ background:#16212E; border-color:#2A3B52; }

/* Köhnə id-yə alias (JS uyğunluğu) */
#tvmAllLocationsPanel{
  background:#FFFFFF; border:1px solid #E1EAF6; border-radius:14px;
  margin-top:10px;
  max-height:320px; overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  box-shadow:0 4px 16px rgba(30,68,130,.07);
}
body.dark-mode #tvmAllLocationsPanel{ background:#16212E; border-color:#2A3B52; }
.tvm-all-loc-row{ display:flex; align-items:center; gap:10px; padding:9px 14px; border-bottom:1px solid #F3F6FB; }
.tvm-all-loc-row:last-child{ border-bottom:none; }
body.dark-mode .tvm-all-loc-row{ border-color:#1C2A3D; }
.tvm-all-loc-num{ width:22px; height:22px; border-radius:50%; background:#EEF3FB; color:#5C7089; font-size:10.5px; font-weight:800; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
body.dark-mode .tvm-all-loc-num{ background:#1C2A3D; color:#6B84A0; }
.tvm-all-loc-name{ flex:0 0 150px; font-size:12.5px; font-weight:600; color:#33445E; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body.dark-mode .tvm-all-loc-name{ color:#C7D5E8; }
.tvm-all-loc-bar-track{ flex:1; height:7px; background:#EEF2FA; border-radius:4px; overflow:hidden; }
body.dark-mode .tvm-all-loc-bar-track{ background:#1C2A3D; }
.tvm-all-loc-bar-fill{ height:100%; background:#378ADD; border-radius:4px; width:0; transition:width .8s cubic-bezier(.2,.7,.3,1); }
.tvm-all-loc-pct{ flex-shrink:0; width:68px; text-align:right; font-size:12px; font-weight:700; color:#12233B; }
body.dark-mode .tvm-all-loc-pct{ color:#E8EEF5; }

/* ── ALT BÖLÜM: TEXNİK + TƏKRARLANANlar ── */
.tvmd-bottom-row{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:24px; margin-bottom:24px; }
.tvmd-bottom-card{
  background:rgba(255,255,255,0.82); border:2px solid #A8C6EC; border-radius:16px;
  padding:20px 22px; box-shadow:0 4px 20px rgba(30,68,130,.10);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
}
body.dark-mode .tvmd-bottom-card{ background:rgba(22,33,46,0.82); border-color:#2A4A72; }

/* Texnik cədvəl */
.tvmd-tech-table{ width:100%; border-collapse:collapse; margin-top:8px; }
.tvmd-tech-table thead th{
  font-size:11.5px; font-weight:700; color:#8CA0BC; text-align:left;
  padding:0 10px 10px 0; border-bottom:1.5px solid #EEF2FA; white-space:nowrap;
  letter-spacing:.2px; text-transform:uppercase;
}
body.dark-mode .tvmd-tech-table thead th{ color:#5C7089; border-color:#1C2A3D; }
.tvmd-tech-table tbody td{
  padding:11px 10px 11px 0; font-size:13px; color:#33445E;
  border-bottom:1px solid #F3F6FB; vertical-align:middle;
}
body.dark-mode .tvmd-tech-table tbody td{ color:#C7D5E8; border-color:#1C2A3D; }
.tvmd-tech-table tbody tr:last-child td{ border-bottom:none; }
.tvmd-tech-name{ font-weight:700; color:#12233B; font-size:13.5px; }
body.dark-mode .tvmd-tech-name{ color:#E8EEF5; }
.tvmd-tech-num{ font-family:'IBM Plex Mono',monospace; font-weight:700; color:#2F6FED; }
.tvmd-sla-bar-wrap{ display:flex; align-items:center; gap:8px; }
.tvmd-sla-bar-track{ flex:1; height:7px; background:#EEF2FA; border-radius:4px; overflow:hidden; min-width:60px; }
body.dark-mode .tvmd-sla-bar-track{ background:#1C2A3D; }
.tvmd-sla-bar-fill{ height:100%; border-radius:4px; transition:width .8s cubic-bezier(.2,.7,.3,1); }
.tvmd-sla-pct{ font-size:12px; font-weight:700; color:#33445E; white-space:nowrap; }
body.dark-mode .tvmd-sla-pct{ color:#C7D5E8; }
.tvmd-showall-link{
  display:inline-flex; align-items:center; gap:4px;
  font-size:12.5px; font-weight:700; color:#2F6FED; cursor:pointer;
  background:none; border:none;
}
body.dark-mode .tvmd-showall-link{ color:#7FB0F5; }
.tvmd-showall-link:hover{ text-decoration:underline; }

.tvmd-recurring-wrap{ margin-top:8px; }
.tvmd-tech-search-hidden{ display:none; }

/* Texnik axtarış paneli */
.tvmd-tech-search-panel{
  margin-bottom:12px;
  border:1.5px solid #DCE6F5;
  border-radius:11px;
  overflow:hidden;
  background:#F8FAFD;
}
body.dark-mode .tvmd-tech-search-panel{ background:#1C2A3D; border-color:#3E5578; }
.tvmd-tech-search-inner{
  display:flex; align-items:center; gap:10px;
  padding:10px 14px;
}
.tvmd-tech-search-inner input{
  flex:1; border:none; background:none; outline:none;
  font-size:13.5px; font-family:'Inter',sans-serif; color:#12233B;
}
body.dark-mode .tvmd-tech-search-inner input{ color:#E8EEF5; }
.tvmd-tech-search-inner input::placeholder{ color:#B0C4D8; }
.tvmd-search-clear-btn{
  width:22px; height:22px; border-radius:50%; border:none;
  background:#DCE6F5; color:#5C7089; display:flex; align-items:center;
  justify-content:center; cursor:pointer; flex-shrink:0;
}
.tvmd-search-clear-btn:hover{ background:#2F6FED; color:#fff; }
body.dark-mode .tvmd-search-clear-btn{ background:#3E5578; color:#C7D5E8; }
.tvmd-tech-search-result{
  padding:10px 14px; font-size:13px; color:#5C7089;
  border-top:1px solid #E1EAF6; line-height:1.5; min-height:20px;
}
body.dark-mode .tvmd-tech-search-result{ border-color:#2A3B52; color:#8CA0BC; }

/* ── RESPONSIVE ── */
@media(max-width:1100px){
  .tvmd-metrics-row{ grid-template-columns:repeat(2,1fr); }
  .tvmd-problems-row{ grid-template-columns:1fr; }
  .tvmd-side-widgets{ flex-direction:row; flex-wrap:wrap; }
  .tvmd-side-widget{ flex:1 1 45%; }
  .tvmd-two-col{ grid-template-columns:1fr; }
  .tvmd-bottom-row{ grid-template-columns:1fr; }
}
@media(max-width:700px){
  .tvmd-metrics-row{ grid-template-columns:1fr 1fr; }
  .tvmd-loc-row{ grid-template-columns:1fr; }
  .tvm-donut-panel{ grid-template-columns:1fr; }
  .tvmd-container{ padding:16px 14px 40px; }
  .tvmd-header{ padding:12px 14px; }
}


/* ═══════════════════════════════════════════════════
   BUS DASHBOARD — YENİ ELEMENTLƏR (Faza 4)
   ═══════════════════════════════════════════════════ */

/* ── Üst filter paneli ── */
.dash-top-filters{
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  padding:12px 20px 0; max-width:1120px; margin:0 auto;
}
.dash-filter-group{ display:flex; align-items:center; gap:8px; }
.dash-filter-label{ font-size:12px; font-weight:700; color:#8CA0BC; white-space:nowrap; }
.dash-owner-btns{ display:flex; gap:3px; background:#F0F5FC; border-radius:9px; padding:3px; }
.dash-owner-btn{
  padding:5px 12px; border-radius:7px; font-size:12px; font-weight:700;
  color:#5C7089; background:none; border:none; cursor:pointer; transition:all .15s;
}
.dash-owner-btn.active{ background:#2F6FED; color:#fff; }
.dash-owner-btn:hover:not(.active){ background:#DDE9FB; color:#12233B; }
.dash-carrier-sel{
  padding:6px 10px; border-radius:9px; border:1.5px solid #E1EAF6;
  background:#FFFFFF; font-size:12.5px; color:#12233B; font-weight:600;
  cursor:pointer; outline:none;
}
.dash-carrier-sel:focus{ border-color:#2F6FED; }
body.dark-mode .dash-owner-btns{ background:#1C2A3D; }
body.dark-mode .dash-owner-btn{ color:#8FA0B8; }
body.dark-mode .dash-owner-btn.active{ background:#2F6FED; color:#fff; }
body.dark-mode .dash-carrier-sel{ background:#16212E; border-color:#4A6182; color:#E8EEF5; }

/* ── Stat kart faiz ── */
.dash-metric-pct{ font-size:12px; font-weight:700; margin-top:4px; min-height:16px; }
.dash-pct-up{ color:#188A4B; }
.dash-pct-down{ color:#DC2626; }
.dash-pct-flat{ color:#8CA0BC; }

/* ── Problem kartları (2+2 layout) ── */
.dash-prob-grid{ display:grid; gap:12px; }
.dash-prob-grid-2{ grid-template-columns:repeat(2,1fr); }
.dash-prob-grid-4{ grid-template-columns:repeat(2,1fr); }
.dash-prob-card{
  background:#FFFFFF; border:1px solid #E1EAF6; border-radius:14px;
  padding:18px 20px; box-shadow:0 10px 24px rgba(30,68,130,.06);
}
body.dark-mode .dash-prob-card{ background:#16212E; border-color:#4A6182; box-shadow:none; }
.dash-prob-top{ display:flex; align-items:center; gap:16px; margin-bottom:14px; }
.dash-prob-info{ flex:1; min-width:0; }
.dash-prob-name{
  font-size:14px; font-weight:700; color:#12233B; line-height:1.4;
  overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
}
body.dark-mode .dash-prob-name{ color:#E8EEF5; }
.dash-prob-count{ font-size:13px; color:#5C7089; margin-top:4px; font-weight:600; }
.dash-prob-pct{ font-size:12px; font-weight:700; margin-top:4px; }
.dash-prob-bar-wrap{
  height:6px; background:#E6F1FB; border-radius:3px; overflow:hidden; margin-bottom:6px;
}
.dash-prob-bar{ height:100%; background:#2F6FED; border-radius:3px; transition:width .4s ease; }
.dash-prob-bar-pct{ font-size:12px; color:#8CA0BC; font-weight:600; text-align:right; }

/* ── Servis kateqoriyaları — yeni list layout ── */
.dash-cat-list{ display:flex; flex-direction:column; gap:10px; }
.dash-cat-row{
  display:grid; grid-template-columns:160px 1fr 100px;
  align-items:center; gap:12px;
  background:#FFFFFF; border:1px solid #E1EAF6; border-radius:12px;
  padding:14px 16px; box-shadow:0 6px 16px rgba(30,68,130,.04);
}
body.dark-mode .dash-cat-row{ background:#16212E; border-color:#4A6182; box-shadow:none; }
.dash-cat-name{ font-size:13.5px; font-weight:700; color:#12233B; }
body.dark-mode .dash-cat-name{ color:#E8EEF5; }
.dash-cat-mid{ width:100%; }
.dash-cat-bar-wrap{ height:8px; background:#E6F1FB; border-radius:4px; overflow:hidden; }
.dash-cat-bar{ height:100%; background:linear-gradient(90deg,#4E93FA,#2F6FED); border-radius:4px; transition:width .4s ease; }
.dash-cat-right{ display:flex; flex-direction:column; align-items:flex-end; gap:3px; }
.dash-cat-count{ font-family:'Rajdhani',sans-serif; font-size:20px; font-weight:700; color:#12233B; }
body.dark-mode .dash-cat-count{ color:#E8EEF5; }
.dash-cat-pct{ font-size:11.5px; font-weight:700; }

/* ── "Hamısını göstər" düyməsi ── */
.dash-show-more-row{ padding:10px 0 2px; display:flex; justify-content:center; }
.dash-show-more-btn{
  background:none; border:1.5px solid #CFE0F7; border-radius:20px;
  padding:7px 20px; font-size:12.5px; font-weight:700; color:#2F6FED;
  cursor:pointer; transition:all .15s;
}
.dash-show-more-btn:hover{ background:#E6F1FB; }
body.dark-mode .dash-show-more-btn{ border-color:#4A6182; color:#4E93FA; }
body.dark-mode .dash-show-more-btn:hover{ background:#1C2A3D; }


/* ═══════════════════════════════════════════════════
   BUS DASHBOARD — YENİ LAYOUT (Şəkilə uyğun)
   ═══════════════════════════════════════════════════ */

/* Xidmət növü filter — mərkəzdə böyük tab-lar */
.dash-svctype-row{ padding:14px 20px 0; display:flex; justify-content:center; }
.dash-svctype-tabs{ display:flex; gap:0; background:#F0F5FC; border-radius:12px; padding:4px; }
.dash-svctype-btn{
  padding:8px 22px; border-radius:9px; font-size:13px; font-weight:700;
  color:#5C7089; background:none; border:none; cursor:pointer; transition:all .15s;
}
.dash-svctype-btn.dash-svctype-active{ background:#2F6FED; color:#fff; box-shadow:0 4px 12px rgba(47,111,237,.3); }
.dash-svctype-btn:hover:not(.dash-svctype-active){ background:#DDE9FB; color:#12233B; }
body.dark-mode .dash-svctype-tabs{ background:#1C2A3D; }
body.dark-mode .dash-svctype-btn{ color:#8FA0B8; }

/* Üst kart sırası — 6 element */
.dash-top-row{
  display:grid;
  grid-template-columns:190px 190px 1fr 1fr 1fr 80px;
  gap:12px; margin-bottom:20px;
}

/* Filter kart (dropdown) */
.dash-filter-card{
  background:#FFFFFF; border:1px solid #E1EAF6; border-radius:14px;
  padding:16px 18px; box-shadow:0 6px 18px rgba(30,68,130,.06);
  display:flex; flex-direction:column; gap:10px;
}
body.dark-mode .dash-filter-card{ background:#16212E; border-color:#4A6182; }
.dash-filter-card-label{ font-size:11.5px; font-weight:700; color:#8CA0BC; line-height:1.4; }
.dash-filter-card-sel{ position:relative; display:flex; align-items:center; }
.dash-filter-select{
  width:100%; padding:8px 28px 8px 10px; border-radius:9px;
  border:1.5px solid #E1EAF6; background:#F7FAFD;
  font-size:13px; font-weight:600; color:#12233B;
  appearance:none; -webkit-appearance:none; cursor:pointer; outline:none;
}
.dash-filter-select:focus{ border-color:#2F6FED; }
body.dark-mode .dash-filter-select{ background:#1C2A3D; border-color:#4A6182; color:#E8EEF5; }
.dash-filter-caret{
  position:absolute; right:8px; pointer-events:none; color:#8CA0BC;
}

/* Stat kart */
.dash-stat-card{
  background:#FFFFFF; border:1px solid #E1EAF6; border-radius:14px;
  padding:18px 18px 0; box-shadow:0 6px 18px rgba(30,68,130,.06);
  display:flex; flex-direction:column; overflow:hidden; position:relative;
}
body.dark-mode .dash-stat-card{ background:#16212E; border-color:#4A6182; }
.dash-stat-icon{
  width:36px; height:36px; border-radius:10px;
  display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-bottom:10px;
}
.dash-stat-icon-blue{ background:#EBF3FF; color:#2F6FED; }
.dash-stat-icon-green{ background:#D1FAE5; color:#059669; }
.dash-stat-icon-purple{ background:#EDE9FE; color:#7C3AED; }
.dash-stat-lbl{ font-size:11.5px; font-weight:700; color:#8CA0BC; margin-bottom:4px; }
body.dark-mode .dash-stat-lbl{ color:#8FA0B8; }
.dash-stat-val{ font-family:'Rajdhani',sans-serif; font-size:34px; font-weight:700; color:#12233B; line-height:1; }
body.dark-mode .dash-stat-val{ color:#E8EEF5; }
.dash-stat-pct{ font-size:12px; font-weight:700; margin-top:5px; min-height:16px; margin-bottom:10px; }
.dash-stat-wave{ width:100%; height:28px; display:block; margin-top:auto; }

/* Tarix/axtarış düyməsi */
.dash-range-btn{
  background:#FFFFFF; border:1.5px solid #E1EAF6; border-radius:14px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:10px; cursor:pointer; box-shadow:0 6px 18px rgba(30,68,130,.06);
  transition:all .15s;
}
.dash-range-btn:hover{ background:#F0F5FC; }
body.dark-mode .dash-range-btn{ background:#16212E; border-color:#4A6182; }
.dash-range-ic{
  width:36px; height:36px; border-radius:10px;
  background:#F0F5FC; color:#2F6FED;
  display:flex; align-items:center; justify-content:center;
}
body.dark-mode .dash-range-ic{ background:#1C2A3D; color:#4E93FA; }

/* Orta 2 sütun layout */
.dash-mid-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:0; }
.dash-mid-left{ display:flex; flex-direction:column; }
.dash-mid-right{ display:flex; flex-direction:column; }

/* 3 sütun layout */
.dash-three-col{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:14px; }

/* Digər Problemlər */
.dash-other-wrap{ display:flex; gap:16px; align-items:flex-start; }
.dash-other-list{ flex:1; display:flex; flex-direction:column; gap:8px; }
.dash-other-row{
  display:flex; align-items:center; gap:10px;
  padding:10px 12px; background:#FFFFFF; border:1px solid #E1EAF6;
  border-radius:10px; box-shadow:0 4px 10px rgba(30,68,130,.04);
}
body.dark-mode .dash-other-row{ background:#16212E; border-color:#4A6182; }
.dash-other-dot{
  width:22px; height:22px; border-radius:50%;
  color:#fff; font-size:11px; font-weight:800;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.dash-other-name{ flex:1; font-size:13px; color:#12233B; font-weight:600; }
body.dark-mode .dash-other-name{ color:#E8EEF5; }
.dash-other-count{ font-size:13px; font-weight:700; color:#12233B; white-space:nowrap; }
body.dark-mode .dash-other-count{ color:#E8EEF5; }
.dash-other-donut{ display:flex; flex-direction:column; align-items:center; gap:8px; flex-shrink:0; }
.dash-other-donut-lbl{ font-size:11.5px; color:#8CA0BC; font-weight:600; text-align:center; }
.dash-other-donut-lbl b{ color:#12233B; }
body.dark-mode .dash-other-donut-lbl b{ color:#E8EEF5; }

/* Location wrap */
.dash-loc-wrap{ display:flex; gap:16px; align-items:flex-start; }
.dash-loc-table-wrap{ flex:1; min-width:0; }

/* Responsive */
@media(max-width:1200px){
  .dash-top-row{ grid-template-columns:1fr 1fr 1fr 1fr; }
  .dash-top-row .dash-range-btn{ grid-column:span 1; min-height:80px; }
}
@media(max-width:900px){
  .dash-top-row{ grid-template-columns:1fr 1fr; }
  .dash-mid-row{ grid-template-columns:1fr; }
  .dash-three-col{ grid-template-columns:1fr; }
}


/* ═══════════════════════════════════════════════════
   BUS DASHBOARD — ANİMASİYA VƏ SPARKLINE (Faza 4b)
   ═══════════════════════════════════════════════════ */

/* Stat kart canvas sparkline */
.dash-stat-canvas{
  width:100%; height:42px; display:block;
  margin-top:auto; border-radius:0 0 14px 14px;
}
.dash-stat-sub{
  font-size:11px; color:#8CA0BC; font-weight:600;
  min-height:14px; margin-top:2px; margin-bottom:6px;
  line-height:1.3;
}

/* Kateqoriya sıra — yeni layout (ikon + info + bar + say) */
.dash-cat-row{
  display:grid; grid-template-columns:auto 1fr 60px;
  align-items:center; gap:12px;
  background:#FFFFFF; border:1px solid #E1EAF6; border-radius:12px;
  padding:12px 14px; box-shadow:0 4px 12px rgba(30,68,130,.04);
  transition:box-shadow .2s;
}
.dash-cat-row:hover{ box-shadow:0 8px 20px rgba(30,68,130,.10); }
body.dark-mode .dash-cat-row{ background:#16212E; border-color:#4A6182; box-shadow:none; }
.dash-cat-left{ display:flex; align-items:center; gap:10px; }
.dash-cat-icon{
  width:36px; height:36px; border-radius:9px;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.dash-cat-info{ min-width:0; }
.dash-cat-name{ font-size:13.5px; font-weight:700; color:#12233B; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
body.dark-mode .dash-cat-name{ color:#E8EEF5; }
.dash-cat-pct-lbl{ font-size:11px; font-weight:700; margin-top:2px; }
.dash-cat-mid{ min-width:0; }
.dash-cat-bar-wrap{ height:8px; background:#E6F1FB; border-radius:4px; overflow:hidden; }
.dash-cat-bar{ height:100%; border-radius:4px; width:0%; } /* width animasiya ilə gəlir */
body.dark-mode .dash-cat-bar-wrap{ background:#1C2A3D; }
.dash-cat-right{ display:flex; justify-content:flex-end; align-items:center; }
.dash-cat-count{ font-family:'Rajdhani',sans-serif; font-size:22px; font-weight:700; color:#12233B; }
body.dark-mode .dash-cat-count{ color:#E8EEF5; }

/* Problem arc animasiya başlanğıc state */
.dash-prob-arc{ transition:none; }


/* ═══════════════════════════════════════════════════
   BUS DASHBOARD — SPACING + RƏNG DÜZƏLİŞLƏRİ
   ═══════════════════════════════════════════════════ */

/* Container daha geniş padding, bölmələr arası boşluq */
.dash-container{
  max-width:1140px; margin:0 auto; padding:20px 24px 60px;
}

/* Bölmə başlıqları — daha aralı */
.dash-section-title{
  font-size:14.5px; font-weight:700; color:#12233B;
  letter-spacing:.1px; margin:28px 0 14px;
}
body.dark-mode .dash-section-title{ color:#E8EEF5; }

/* Xidmət növü filter sırası */
.dash-svctype-row{ padding:16px 24px 0; }

/* Üst kart sırası — daha çox boşluq */
.dash-top-row{
  display:grid;
  grid-template-columns:200px 200px 1fr 1fr 1fr 90px;
  gap:14px; margin-bottom:6px;
}

/* Filter kart — daha uyğun rəng */
.dash-filter-card{
  background:rgba(255,255,255,0.88);
  border:1px solid #D8E6F5;
  border-radius:16px; padding:16px 18px;
  box-shadow:0 4px 16px rgba(30,68,130,.07);
  display:flex; flex-direction:column; gap:10px;
  backdrop-filter:blur(6px);
}
body.dark-mode .dash-filter-card{ background:rgba(22,33,46,0.90); border-color:#3A5070; }

/* Stat kart — daha uyğun rəng */
.dash-stat-card{
  background:rgba(255,255,255,0.88);
  border:1px solid #D8E6F5;
  border-radius:16px; padding:18px 18px 0;
  box-shadow:0 4px 16px rgba(30,68,130,.07);
  display:flex; flex-direction:column; overflow:hidden; position:relative;
  backdrop-filter:blur(6px);
}
body.dark-mode .dash-stat-card{ background:rgba(22,33,46,0.90); border-color:#3A5070; }

/* Range btn */
.dash-range-btn{
  background:rgba(255,255,255,0.88);
  border:1.5px solid #D8E6F5; border-radius:16px;
  display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:12px; cursor:pointer;
  box-shadow:0 4px 16px rgba(30,68,130,.07);
  transition:all .15s; backdrop-filter:blur(6px);
}
.dash-range-btn:hover{ background:#EEF4FD; }
body.dark-mode .dash-range-btn{ background:rgba(22,33,46,0.90); border-color:#3A5070; }

/* Problem kartları */
.dash-prob-card{
  background:rgba(255,255,255,0.90);
  border:1px solid #D8E6F5; border-radius:16px;
  padding:20px 22px; box-shadow:0 4px 16px rgba(30,68,130,.07);
  backdrop-filter:blur(6px);
}
body.dark-mode .dash-prob-card{ background:rgba(22,33,46,0.90); border-color:#3A5070; box-shadow:none; }

/* Kateqoriya sıraları */
.dash-cat-row{
  background:rgba(255,255,255,0.88);
  border:1px solid #D8E6F5; border-radius:14px;
  padding:14px 16px; box-shadow:0 3px 12px rgba(30,68,130,.05);
  backdrop-filter:blur(4px);
}
.dash-cat-row:hover{ box-shadow:0 8px 22px rgba(30,68,130,.12); }
body.dark-mode .dash-cat-row{ background:rgba(22,33,46,0.90); border-color:#3A5070; }

/* Digər problem sırası */
.dash-other-row{
  background:rgba(255,255,255,0.88);
  border:1px solid #D8E6F5; border-radius:12px;
  padding:10px 14px; box-shadow:0 3px 10px rgba(30,68,130,.04);
  backdrop-filter:blur(4px);
}
body.dark-mode .dash-other-row{ background:rgba(22,33,46,0.90); border-color:#3A5070; }

/* Ranklist wrap */
.dash-ranklist-wrap{
  border:1px solid #D8E6F5; border-radius:14px;
  overflow:hidden; box-shadow:0 4px 16px rgba(30,68,130,.06);
  background:rgba(255,255,255,0.88); backdrop-filter:blur(4px);
}
body.dark-mode .dash-ranklist-wrap{ background:rgba(22,33,46,0.90); border-color:#3A5070; }

.dash-ranklist{ background:transparent; }
.dash-ranklist th{ background:rgba(247,250,254,0.95); }
body.dark-mode .dash-ranklist th{ background:rgba(28,42,61,0.95); }

/* Lead card */
.dash-lead-card{
  background:rgba(255,255,255,0.88);
  border:1px solid #D8E6F5; border-radius:14px;
  padding:0 18px; box-shadow:0 4px 16px rgba(30,68,130,.06);
  backdrop-filter:blur(4px);
}
body.dark-mode .dash-lead-card{ background:rgba(22,33,46,0.90); border-color:#3A5070; }

/* Alert panel */
.dash-alert-panel{
  background:rgba(255,255,255,0.88);
  border:1.5px solid #FCA5A5; border-radius:14px;
  padding:0 18px; backdrop-filter:blur(4px);
}
body.dark-mode .dash-alert-panel{ background:rgba(22,33,46,0.90); border-color:#7F2A2A; }

/* Mid row bölmələr arası məsafə */
.dash-mid-row{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:0; }
.dash-three-col{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; }
.dash-grid-2{ gap:20px; }

/* Header arxa fon şəffaf */
.dash-header{
  background:rgba(255,255,255,0.92) !important;
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(225,234,246,0.8) !important;
}
body.dark-mode .dash-header{
  background:rgba(20,31,48,0.92) !important;
  border-bottom-color:rgba(74,97,130,0.5) !important;
}


/* ═══════════════════════════════════════════════════
   ADMIN PROCESSING OVERLAY
   ═══════════════════════════════════════════════════ */
.adm-processing-overlay{
  position:fixed; inset:0; z-index:9999;
  background:rgba(10,20,40,0.55);
  display:flex; align-items:center; justify-content:center;
  opacity:0; transition:opacity .25s ease;
  backdrop-filter:blur(3px);
}
.adm-processing-overlay.open{ opacity:1; }
.adm-processing-box{
  background:#FFFFFF; border-radius:20px;
  padding:32px 40px; display:flex; flex-direction:column;
  align-items:center; gap:18px;
  box-shadow:0 24px 60px rgba(10,20,40,0.30);
  min-width:220px;
}
body.dark-mode .adm-processing-box{ background:#16212E; }
.adm-processing-spinner{
  width:44px; height:44px; border-radius:50%;
  border:4px solid #E6F1FB;
  border-top-color:#2F6FED;
  animation:admSpin 0.75s linear infinite;
}
@keyframes admSpin{ to{ transform:rotate(360deg); } }
.adm-processing-text{
  font-family:'Rajdhani',sans-serif; font-weight:700;
  font-size:16px; color:#12233B; letter-spacing:.3px;
}
body.dark-mode .adm-processing-text{ color:#E8EEF5; }


/* ═══════════════════════════════════════════════════
   BUS DASHBOARD — DİGƏR PROBLEM + HƏL SİYAHISI + ÜNVAN (Faza 4c)
   ═══════════════════════════════════════════════════ */

/* ── Bölmə başlıqları arası məsafə ── */
.dash-mid-row .dash-section-title{ margin-top:0; margin-bottom:14px; }

/* ── Digər Tələb/Problemlər ── */
.dash-op-wrap{ display:flex; gap:20px; align-items:flex-start; }
.dash-op-list{ flex:1; display:flex; flex-direction:column; gap:8px; min-width:0; }

.dash-op-row{
  display:flex; align-items:center; gap:10px;
  background:rgba(255,255,255,0.90); border:1px solid #E1EAF6;
  border-radius:12px; padding:11px 14px;
  box-shadow:0 3px 10px rgba(30,68,130,.05);
  backdrop-filter:blur(4px);
}
body.dark-mode .dash-op-row{ background:rgba(22,33,46,.90); border-color:#3A5070; }
.dash-op-num{
  width:24px; height:24px; border-radius:50%; flex-shrink:0;
  font-size:12px; font-weight:800;
  display:flex; align-items:center; justify-content:center;
}
.dash-op-name{ flex:1; font-size:13px; font-weight:600; color:#12233B; min-width:0; line-height:1.35; }
body.dark-mode .dash-op-name{ color:#E8EEF5; }
.dash-op-badge{
  font-size:12px; font-weight:700; padding:3px 10px;
  border-radius:20px; white-space:nowrap; flex-shrink:0;
}

/* Digər blok */
.dash-op-diger{
  background:rgba(248,250,253,.95); border:1px dashed #CBD5E1;
  border-radius:12px; padding:10px 14px;
}
body.dark-mode .dash-op-diger{ background:rgba(20,30,45,.90); border-color:#3A5070; }
.dash-op-diger-head{ display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.dash-op-diger-items{ display:flex; flex-direction:column; gap:4px; padding-left:4px; }
.dash-op-diger-row{ display:flex; align-items:center; gap:8px; font-size:12px; color:#5C7089; padding:3px 0; }
.dash-op-diger-dot{ width:6px; height:6px; border-radius:50%; background:#94A3B8; flex-shrink:0; }
.dash-op-diger-name{ flex:1; }
.dash-op-diger-cnt{ font-weight:700; color:#8CA0BC; white-space:nowrap; }

/* Donut sağ sütun */
.dash-op-donut-col{ display:flex; flex-direction:column; align-items:center; gap:8px; flex-shrink:0; }
.dash-op-donut-svg{ width:180px; height:180px; }
.dash-op-donut-lbl{ font-size:12px; color:#8CA0BC; font-weight:600; text-align:center; }
.dash-op-donut-lbl b{ color:#12233B; }
body.dark-mode .dash-op-donut-lbl b{ color:#E8EEF5; }

/* Legend */
.dash-op-legend{ display:flex; flex-direction:column; gap:5px; width:100%; }
.dash-op-legend-row{ display:flex; align-items:center; gap:7px; }
.dash-op-legend-dot{ width:10px; height:10px; border-radius:3px; flex-shrink:0; }
.dash-op-legend-name{ font-size:11px; color:#5C7089; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body.dark-mode .dash-op-legend-name{ color:#8FA0B8; }

/* ── Həll siyahısı — vizual bar ── */
.dash-sol-list{
  background:rgba(255,255,255,.90); border:1px solid #E1EAF6;
  border-radius:14px; overflow:hidden;
  box-shadow:0 4px 16px rgba(30,68,130,.06);
  backdrop-filter:blur(4px);
}
body.dark-mode .dash-sol-list{ background:rgba(22,33,46,.90); border-color:#3A5070; }
.dash-sol-row{
  display:grid; grid-template-columns:1fr 140px 80px;
  align-items:center; gap:12px;
  padding:13px 16px; border-bottom:1px solid #F0F5FC;
}
.dash-sol-row:last-child{ border-bottom:none; }
body.dark-mode .dash-sol-row{ border-bottom-color:#1C2A3D; }
.dash-sol-row-diger{ background:rgba(248,250,253,.8); }
body.dark-mode .dash-sol-row-diger{ background:rgba(18,26,40,.6); }
.dash-sol-left{ display:flex; align-items:flex-start; gap:10px; min-width:0; }
.dash-sol-num{
  width:22px; height:22px; border-radius:50%; flex-shrink:0;
  font-size:11px; font-weight:800;
  display:flex; align-items:center; justify-content:center; margin-top:1px;
}
.dash-sol-name{
  font-size:13.5px; font-weight:600; color:#12233B; line-height:1.4;
  overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
}
body.dark-mode .dash-sol-name{ color:#E8EEF5; }
.dash-sol-bar-col{ width:100%; }
.dash-sol-bar-track{ height:8px; background:#E6F1FB; border-radius:4px; overflow:hidden; }
body.dark-mode .dash-sol-bar-track{ background:#1C2A3D; }
.dash-sol-bar{ height:100%; border-radius:4px; width:0%; }
.dash-sol-right{ display:flex; flex-direction:column; align-items:flex-end; gap:3px; }
.dash-sol-count{ font-family:'Rajdhani',sans-serif; font-size:20px; font-weight:700; color:#12233B; }
body.dark-mode .dash-sol-count{ color:#E8EEF5; }
.dash-sol-pct{ font-size:11px; font-weight:700; }

/* ── Servis verilən ünvan ── */
.dash-loc-wrap2{ display:flex; gap:20px; align-items:flex-start; }
.dash-loc-list{ flex:1; display:flex; flex-direction:column; gap:8px; min-width:0; }
.dash-loc-row{
  display:flex; align-items:center; gap:10px;
  background:rgba(255,255,255,.90); border:1px solid #E1EAF6;
  border-radius:12px; padding:12px 14px;
  box-shadow:0 3px 10px rgba(30,68,130,.05);
  backdrop-filter:blur(4px);
}
body.dark-mode .dash-loc-row{ background:rgba(22,33,46,.90); border-color:#3A5070; }
.dash-loc-icon{
  width:34px; height:34px; border-radius:9px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
}
.dash-loc-info{ flex:1; min-width:0; }
.dash-loc-name{ font-size:13.5px; font-weight:700; color:#12233B; margin-bottom:6px; }
body.dark-mode .dash-loc-name{ color:#E8EEF5; }
.dash-loc-bar-track{ height:6px; background:#E6F1FB; border-radius:3px; overflow:hidden; }
body.dark-mode .dash-loc-bar-track{ background:#1C2A3D; }
.dash-loc-bar{ height:100%; border-radius:3px; width:0%; }
.dash-loc-right{ display:flex; flex-direction:column; align-items:flex-end; gap:4px; flex-shrink:0; }
.dash-loc-count{ font-family:'Rajdhani',sans-serif; font-size:22px; font-weight:700; color:#12233B; }
body.dark-mode .dash-loc-count{ color:#E8EEF5; }
.dash-loc-pct{
  font-size:11px; font-weight:700; padding:2px 8px;
  border-radius:20px; white-space:nowrap;
}

/* ════════════════════════════════════════════════════════════
   FAZA 4 — DASHBOARD PREMIUM POLISH (BUS + TVM)
   Vizual cilalama: yumşaq fon, laylı kölgələr, hover qaldırma,
   mikro-interaksiyalar, boş/loading state-ləri, mobil təkmilləşmə.
   Heç bir JS/HTML strukturu dəyişmir — yalnız vizual qat.
   ════════════════════════════════════════════════════════════ */

/* ── Ümumi fon: yumşaq göy-boz gradyan ── */
#busDashboardView, #tvmDashboardView{
  background:linear-gradient(180deg,#F5F9FE 0%, #EEF3FB 45%, #E9F0F9 100%);
}
body.dark-mode #busDashboardView,
body.dark-mode #tvmDashboardView{
  background:linear-gradient(180deg,#0C1420 0%, #0A111C 100%);
}

/* ── Header: şüşə effekti + alt kölgə ── */
.dash-header, .tvmd-header{
  box-shadow:0 1px 0 rgba(30,68,130,.04), 0 10px 26px rgba(30,68,130,.07);
}
body.dark-mode .dash-header,
body.dark-mode .tvmd-header{
  box-shadow:0 1px 0 rgba(0,0,0,.2), 0 10px 26px rgba(0,0,0,.35);
}

/* ── Başlıqlar: akcent zolağı + böyük, tünd ── */
.dash-section-title{
  display:flex; align-items:center; gap:9px;
  font-size:15px; letter-spacing:.3px; text-transform:uppercase;
}
.dash-section-title::before{
  content:""; width:4px; height:18px; border-radius:3px; flex-shrink:0;
  background:linear-gradient(180deg,#4E93FA,#2F6FED);
}
body.dark-mode .dash-section-title::before{
  background:linear-gradient(180deg,#5B9BF5,#2F6FED);
}
.tvmd-section-label{
  display:flex; align-items:center; gap:9px;
  font-size:14.5px; letter-spacing:.3px; text-transform:uppercase;
}
.tvmd-section-label::before{
  content:""; width:4px; height:17px; border-radius:3px; flex-shrink:0;
  background:linear-gradient(180deg,#4E93FA,#2F6FED);
}
body.dark-mode .tvmd-section-label::before{
  background:linear-gradient(180deg,#5B9BF5,#2F6FED);
}

/* ── Açılış animasiyası (view hər dəfə göstəriləndə) ── */
@keyframes dashFadeUp{
  from{ opacity:0; transform:translateY(12px); }
  to{ opacity:1; transform:none; }
}
#busDashboardView .dash-container,
#tvmDashboardView .tvmd-container{
  animation:dashFadeUp .42s cubic-bezier(.2,.8,.3,1) both;
}

/* ── Stat kartlar (BUS): ağ, laylı kölgə, hover qaldırma ── */
.dash-stat-card{
  border:1px solid #E3ECF8;
  background:#FFFFFF;
  box-shadow:0 1px 2px rgba(16,32,64,.05), 0 10px 28px rgba(16,32,64,.06);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.dash-stat-card:hover{
  transform:translateY(-3px);
  border-color:#C9DAF3;
  box-shadow:0 4px 10px rgba(16,32,64,.06), 0 20px 44px rgba(16,32,64,.12);
}
body.dark-mode .dash-stat-card{
  background:#141F30; border-color:#2A3B52;
  box-shadow:0 1px 2px rgba(0,0,0,.3), 0 10px 28px rgba(0,0,0,.25);
}
body.dark-mode .dash-stat-card:hover{
  border-color:#3E5578;
  box-shadow:0 20px 44px rgba(0,0,0,.4);
}

/* ── Üst akcent zolağı — hər kartın öz rəngi (BUS) ── */
.dash-stat-card::before, .tvmd-metric-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:4px;
  background:linear-gradient(90deg,#4E93FA,#2F6FED);
}
.tvmd-metric-card{ position:relative; }
.dash-stat-card{ position:relative; }
.dash-top-row .dash-stat-card:nth-child(3)::before,
.dash-stat-card:has(.dash-stat-icon-blue)::before{ background:linear-gradient(90deg,#5B9BF5,#2F6FED); }
.dash-top-row .dash-stat-card:nth-child(4)::before,
.dash-stat-card:has(.dash-stat-icon-green)::before{ background:linear-gradient(90deg,#34D399,#059669); }
.dash-top-row .dash-stat-card:nth-child(5)::before,
.dash-stat-card:has(.dash-stat-icon-purple)::before{ background:linear-gradient(90deg,#A78BFA,#7C3AED); }

/* TVM metrik kartlar — öz rəngləri */
.tvmd-metrics-row .tvmd-metric-card:nth-child(1)::before,
.tvmd-metric-card:has(.tvmd-ic-blue)::before{ background:linear-gradient(90deg,#5B9BF5,#2F6FED); }
.tvmd-metrics-row .tvmd-metric-card:nth-child(2)::before,
.tvmd-metric-card:has(.tvmd-ic-teal)::before{ background:linear-gradient(90deg,#2DD4BF,#0E8C7A); }
.tvmd-metrics-row .tvmd-metric-card:nth-child(3)::before,
.tvmd-metric-card:has(.tvmd-ic-orange)::before{ background:linear-gradient(90deg,#FBBF24,#D97706); }
.tvmd-metric-card:has(.tvmd-ic-green)::before{ background:linear-gradient(90deg,#34D399,#188A4B); }

/* Dəyərlər — kart rənginə uyğun, daha böyük */
.dash-top-row .dash-stat-card:nth-child(3) .dash-stat-val,
.dash-stat-card:has(.dash-stat-icon-blue) .dash-stat-val{ color:#2F6FED; }
.dash-top-row .dash-stat-card:nth-child(4) .dash-stat-val,
.dash-stat-card:has(.dash-stat-icon-green) .dash-stat-val{ color:#059669; }
.dash-top-row .dash-stat-card:nth-child(5) .dash-stat-val,
.dash-stat-card:has(.dash-stat-icon-purple) .dash-stat-val{ color:#7C3AED; }
.tvmd-metric-card:has(.tvmd-ic-blue) .tvmd-metric-value{ color:#2F6FED; }
.tvmd-metric-card:has(.tvmd-ic-teal) .tvmd-metric-value{ color:#0E8C7A; }
.tvmd-metric-card:has(.tvmd-ic-orange) .tvmd-metric-value{ color:#D97706; }
.tvmd-metric-card:has(.tvmd-ic-green) .tvmd-metric-value{ color:#188A4B; }
.dash-stat-val{ font-size:38px; }
.tvmd-metric-value{ font-size:34px; }

/* İkonlar hover-də böyüyür */
.dash-stat-icon{ transition:transform .18s ease, box-shadow .18s ease; }
.dash-stat-card:hover .dash-stat-icon{
  transform:scale(1.1);
  box-shadow:0 6px 14px rgba(30,68,130,.14);
}

/* Dəyər pop effekti */
@keyframes dashValPop{
  0%{ transform:scale(.92); opacity:0; }
  100%{ transform:scale(1); opacity:1; }
}
.dash-stat-val{ animation:dashValPop .38s cubic-bezier(.2,.8,.3,1) both; }
.dash-stat-lbl{ letter-spacing:.25px; }
.dash-stat-pct{ display:flex; align-items:center; gap:5px; flex-wrap:wrap; }
.dash-stat-canvas{ margin-top:auto; border-radius:10px 10px 0 0; }

/* ── Filter kartları + selects ── */
.dash-filter-card{
  border:1px solid #E3ECF8;
  box-shadow:0 1px 2px rgba(16,32,64,.04), 0 8px 22px rgba(16,32,64,.05);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.dash-filter-card:hover{
  transform:translateY(-2px);
  border-color:#C9DAF3;
  box-shadow:0 4px 10px rgba(16,32,64,.05), 0 14px 30px rgba(16,32,64,.09);
}
body.dark-mode .dash-filter-card{
  background:#141F30; border-color:#2A3B52;
  box-shadow:none;
}
.dash-filter-select:focus{
  border-color:#2F6FED;
  box-shadow:0 0 0 3px rgba(47,111,237,.14);
}
.dash-filter-card-label{ letter-spacing:.3px; }

/* ── Tabs / segment pill-ləri ── */
.dash-tabs, .tvmd-tabs{
  box-shadow:inset 0 1px 2px rgba(16,32,64,.05);
}
.dash-tab, .tvmd-tab{
  transition:all .16s ease;
}
.dash-tab:hover, .tvmd-tab:hover{ color:#12233B; }
body.dark-mode .dash-tab:hover, body.dark-mode .tvmd-tab:hover{ color:#E8EEF5; }
.dash-tab.active{
  background:linear-gradient(135deg,#4E93FA,#2F6FED);
  box-shadow:0 3px 10px rgba(47,111,237,.32);
}
.tvmd-tab.active{
  background:#FFFFFF; color:#2F6FED;
  box-shadow:0 2px 8px rgba(30,68,130,.14);
}
body.dark-mode .tvmd-tab.active{
  background:#1C2A3D; color:#8FB4EA;
}

/* Xidmət növü filteri — premium pill */
.dash-svctype-tabs{
  background:#EEF3FB;
  box-shadow:inset 0 1px 2px rgba(16,32,64,.05);
}
.dash-svctype-btn.dash-svctype-active{
  box-shadow:0 4px 14px rgba(47,111,237,.35);
}

/* ── Problem kartları ── */
.dash-prob-card{
  border:1px solid #E3ECF8;
  background:#FFFFFF;
  box-shadow:0 1px 2px rgba(16,32,64,.04), 0 8px 22px rgba(16,32,64,.05);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.dash-prob-card:hover{
  transform:translateY(-2px);
  border-color:#C9DAF3;
  box-shadow:0 4px 10px rgba(16,32,64,.05), 0 16px 32px rgba(16,32,64,.10);
}
body.dark-mode .dash-prob-card{
  background:#141F30; border-color:#2A3B52;
  box-shadow:none;
}
body.dark-mode .dash-prob-card:hover{ border-color:#3E5578; }

/* ── Siyahı sətirləri: sağa sürüşmə + kölgə ── */
.dash-op-row, .dash-other-row, .dash-cat-row, .dash-loc-row,
.dash-sol-row, .dash-op-diger, .dash-lead-row{
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease;
}
.dash-op-row:hover, .dash-other-row:hover, .dash-cat-row:hover,
.dash-loc-row:hover, .dash-sol-row:hover, .dash-lead-row:hover{
  transform:translateX(3px);
  border-color:#C9DAF3;
  box-shadow:0 8px 20px rgba(16,32,64,.08);
}
body.dark-mode .dash-op-row:hover, body.dark-mode .dash-other-row:hover,
body.dark-mode .dash-cat-row:hover, body.dark-mode .dash-loc-row:hover,
body.dark-mode .dash-sol-row:hover, body.dark-mode .dash-lead-row:hover{
  border-color:#3E5578;
  box-shadow:0 8px 20px rgba(0,0,0,.3);
}
.dash-op-badge, .dash-loc-pct, .dash-cat-pct, .dash-sol-pct{
  transition:transform .15s ease;
}
.dash-op-row:hover .dash-op-badge,
.dash-loc-row:hover .dash-loc-pct,
.dash-cat-row:hover .dash-cat-pct,
.dash-sol-row:hover .dash-sol-pct{ transform:scale(1.06); }

/* ── Cədvəl sətirləri (ranklist) ── */
.dash-ranklist tbody tr td{ transition:background .12s ease; }
.dash-ranklist tbody tr:hover td{ background:#F4F9FE; }
body.dark-mode .dash-ranklist tbody tr:hover td{ background:#16212E; }

/* ── Həll siyahısı ── */
.dash-sol-list{
  border:1px solid #E3ECF8;
  box-shadow:0 1px 2px rgba(16,32,64,.04), 0 8px 22px rgba(16,32,64,.05);
}
body.dark-mode .dash-sol-list{
  background:#141F30; border-color:#2A3B52;
  box-shadow:none;
}
/* ── Alert panel (təkrarlanan avtobuslar) ── */
.dash-alert-panel{
  box-shadow:0 1px 2px rgba(16,32,64,.04), 0 8px 22px rgba(16,32,64,.05);
}
body.dark-mode .dash-alert-panel{ box-shadow:none; }

/* ── Düymələr ── */
.dash-excel-btn, .tvmd-excel-btn, .dash-search-btn{
  box-shadow:0 6px 16px rgba(47,111,237,.24);
  transition:transform .13s ease, box-shadow .16s ease, filter .16s ease;
}
.dash-excel-btn:hover, .tvmd-excel-btn:hover, .dash-search-btn:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(47,111,237,.34);
  filter:brightness(1.05);
}
.dash-excel-btn:active, .tvmd-excel-btn:active, .dash-search-btn:active{
  transform:translateY(0) scale(.97);
}
.dash-range-btn{
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.dash-range-btn:hover{
  transform:translateY(-2px);
  border-color:#2F6FED;
  box-shadow:0 10px 24px rgba(47,111,237,.14);
}
.dash-show-more-btn:hover{
  transform:translateY(-1px);
  background:#E6F1FB;
  box-shadow:0 4px 12px rgba(47,111,237,.2);
}
.dash-reset-btn:hover{ background:#E8EFF9; color:#12233B; }
.dash-close-btn:hover{ filter:brightness(1.1); }

/* ── TVM metrik kartları ── */
.tvmd-metric-card{
  border:1px solid #E3ECF8;
  background:#FFFFFF;
  box-shadow:0 1px 2px rgba(16,32,64,.05), 0 10px 28px rgba(16,32,64,.06);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.tvmd-metric-card:hover{
  transform:translateY(-3px);
  border-color:#C9DAF3;
  box-shadow:0 4px 10px rgba(16,32,64,.06), 0 20px 44px rgba(16,32,64,.12);
}
body.dark-mode .tvmd-metric-card{
  background:#141F30; border-color:#2A3B52;
  box-shadow:0 1px 2px rgba(0,0,0,.3), 0 10px 28px rgba(0,0,0,.25);
}
body.dark-mode .tvmd-metric-card:hover{ border-color:#3E5578; }
.tvmd-metric-value{ animation:dashValPop .38s cubic-bezier(.2,.8,.3,1) both; }
.tvmd-metric-icon-wrap{ transition:transform .18s ease; }
.tvmd-metric-card:hover .tvmd-metric-icon-wrap{ transform:scale(1.08); }
.tvmd-sparkline-wrap{ margin-top:auto; padding-top:8px; }

/* Trend — pill badge */
.tvmd-metric-trend.up,
.tvmd-metric-trend.down{
  display:inline-flex; align-items:center; gap:4px;
  padding:2px 9px; border-radius:20px; font-weight:700;
  width:fit-content; max-width:100%;
}
.tvmd-metric-trend.up{ background:#E5F6ED; color:#188A4B; }
.tvmd-metric-trend.down{ background:#FDF1E3; color:#D97706; }
body.dark-mode .tvmd-metric-trend.up{ background:#12301F; color:#4CD98A; }
body.dark-mode .tvmd-metric-trend.down{ background:#33230E; color:#F5A94C; }

/* ── TVM lokasiya kartları ── */
.tvm-loc-card, .tvmd-donut-card, .tvmd-bottom-card{
  border:1px solid #E3ECF8;
  box-shadow:0 1px 2px rgba(16,32,64,.04), 0 10px 26px rgba(16,32,64,.06);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.tvm-loc-card:hover, .tvmd-donut-card:hover, .tvmd-bottom-card:hover{
  transform:translateY(-2px);
  border-color:#C9DAF3;
  box-shadow:0 4px 10px rgba(16,32,64,.05), 0 16px 34px rgba(16,32,64,.10);
}
body.dark-mode .tvm-loc-card, body.dark-mode .tvmd-donut-card,
body.dark-mode .tvmd-bottom-card{
  background:#141F30; border-color:#2A3B52;
  box-shadow:none;
}
body.dark-mode .tvm-loc-card:hover, body.dark-mode .tvmd-donut-card:hover,
body.dark-mode .tvmd-bottom-card:hover{ border-color:#3E5578; }

/* TVM texnik cədvəli */
.tvmd-tech-table tbody tr{ transition:background .12s ease; }
.tvmd-tech-table tbody tr:hover{ background:#F4F9FE; }
body.dark-mode .tvmd-tech-table tbody tr:hover{ background:#16212E; }
.tvmd-tech-table tbody tr td:first-child{ border-radius:8px 0 0 8px; }
.tvmd-tech-table tbody tr td:last-child{ border-radius:0 8px 8px 0; }

/* ── Boş state ── */
.dash-empty-txt{
  display:flex; align-items:center; justify-content:center; gap:9px;
  background:#F7FAFD; border:1.5px dashed #D8E6F5; border-radius:12px;
  padding:20px 16px; font-size:13.5px; color:#8CA0BC; line-height:1.5;
}
.dash-empty-txt::before{
  content:""; width:8px; height:8px; border-radius:50%; flex-shrink:0;
  background:#C7D5E8; box-shadow:0 0 0 4px rgba(199,213,232,.22);
}
body.dark-mode .dash-empty-txt{
  background:#131E2D; border-color:#2A3B52; color:#6B84A0;
}

/* ── Loading overlay: yumşaq buğlanmış fon + pulse mətn ── */
.dash-loading-overlay{
  background:rgba(245,249,254,.55);
  backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px);
}
body.dark-mode .dash-loading-overlay{ background:rgba(12,20,32,.6); }
@keyframes dashLoadPulse{
  0%,100%{ opacity:.55; }
  50%{ opacity:1; }
}
.dash-loading-text{
  letter-spacing:.25px;
  animation:dashLoadPulse 1.3s ease-in-out infinite;
}

/* ── Modal ── */
.dash-modal{
  border:1px solid #E3ECF8;
  box-shadow:0 40px 90px rgba(10,25,55,.28);
}
body.dark-mode .dash-modal{ border-color:#2A3B52; }
.dash-modal-head{ background:#F8FAFD; }
body.dark-mode .dash-modal-head{ background:#16212E; }
.dcal-day{ transition:background .12s ease, transform .12s ease; }
.dcal-day:hover{ background:#E6F1FB; transform:scale(1.05); }

/* ── Mobil təkmilləşdirmələr ── */
.dash-m-metrics{
  display:grid; grid-template-columns:repeat(3,1fr); gap:10px;
  background:#FFFFFF; border:1px solid #E1EAF6; border-radius:16px;
  padding:14px; margin-bottom:16px; font-size:12px; line-height:1.4;
  box-shadow:0 1px 2px rgba(16,32,64,.04), 0 8px 22px rgba(16,32,64,.05);
}
.dash-m-metrics div{
  background:#F7FAFD; border:1px solid #E8EFF9; border-radius:12px;
  padding:10px 8px; text-align:center; color:#5C7089; font-weight:600;
}
.dash-m-metrics b{
  display:block; font-family:'Rajdhani',sans-serif;
  font-size:22px; color:#12233B; margin-top:2px;
}
body.dark-mode .dash-m-metrics{
  background:#141F30; border-color:#2A3B52;
}
body.dark-mode .dash-m-metrics div{
  background:#1C2A3D; border-color:#2A3B52; color:#93A4BC;
}
body.dark-mode .dash-m-metrics b{ color:#E8EEF5; }
.dash-m-card-empty{
  border:1.5px dashed #D8E6F5; background:#F7FAFD;
}
body.dark-mode .dash-m-card-empty{
  background:#131E2D; border-color:#2A3B52;
}

/* Orta enlik: metrik/üst sıra yığılır */
@media(max-width:1100px){
  .tvmd-metrics-row{ grid-template-columns:repeat(2,1fr); }
  .dash-top-row{ grid-template-columns:repeat(3,1fr); }
  .dash-top-row .dash-range-btn{ grid-column:span 1; min-height:80px; }
}
@media(max-width:700px){
  .dash-top-row{ grid-template-columns:1fr 1fr; }
  .dash-prob-grid-2, .dash-prob-grid-4{ grid-template-columns:1fr; }
  .dash-op-wrap{ flex-direction:column; }
  .dash-loc-wrap, .dash-loc-wrap2{ flex-direction:column; }
  .dash-three-col{ grid-template-columns:1fr; }
  .tvmd-loc-row{ grid-template-columns:1fr; }
  .tvmd-bottom-row{ grid-template-columns:1fr; }
  .dash-op-donut-svg{ width:140px; height:140px; }
  .dash-m-metrics{ grid-template-columns:1fr; }
}

/* ── Accessibility: focus halqası ── */
.dash-tab:focus-visible, .tvmd-tab:focus-visible,
.dash-range-btn:focus-visible, .tvmd-filter-card:focus-visible,
.dash-svctype-btn:focus-visible{
  outline:2px solid #2F6FED; outline-offset:2px;
}

/* ── Hərəkət azaldılması istəyi ── */
@media (prefers-reduced-motion: reduce){
  .dash-stat-card, .tvmd-metric-card, .dash-prob-card,
  .dash-filter-card, .tvm-loc-card, .tvmd-donut-card, .tvmd-bottom-card,
  .dash-op-row, .dash-other-row, .dash-cat-row, .dash-loc-row,
  .dash-sol-row, .dash-lead-row, .dash-range-btn, .dash-tab, .tvmd-tab,
  .dash-stat-val, .tvmd-metric-value, .dash-metric-icon-wrap,
  .dash-op-badge, .dash-loc-pct, .dash-cat-pct, .dash-sol-pct{
    transition:none !important;
    animation:none !important;
    transform:none !important;
  }
  #busDashboardView .dash-container, #tvmDashboardView .tvmd-container{
    animation:none !important;
  }
}

/* ════════════════════════════════════════════════════════════
   FAZA 4.1 — BUS DASHBOARD MODERN REDESIGN (YALNIZ BUS)
   Geniş container, bölmə panel-ləri, nömrələnmiş bölmələr,
   böyük boşluqlar, zəngin kartlar, hover mikro-interaksiyalar.
   Hər şey #busDashboardView altında — TVM dashboard təsirlənmir.
   JS/HTML ID və event-lər toxunulmur.
   ════════════════════════════════════════════════════════════ */

/* ── Canvas: geniş + rahat məsafə ── */
#busDashboardView .dash-container{
  max-width:1440px;
  padding:26px 34px 70px;
  counter-reset:dashSec;
}

/* ── Bölmə paneli: hər bölmə ayrı kart-qrup kimi ── */
#busDashboardView .dash-panel{
  background:#FFFFFF;
  border:1px solid #E2EBF7;
  border-radius:18px;
  padding:24px 26px 26px;
  box-shadow:0 1px 2px rgba(16,32,64,.04), 0 12px 30px rgba(16,32,64,.05);
  margin-top:24px;
  transition:box-shadow .2s ease, border-color .2s ease;
}
#busDashboardView .dash-panel:hover{
  border-color:#C9DAF3;
  box-shadow:0 2px 4px rgba(16,32,64,.05), 0 20px 44px rgba(16,32,64,.09);
}

/* ── Bölmə başlıqları: nömrə rozeti + ad (avtomatik sayğac) ── */
#busDashboardView .dash-panel .dash-section-title{
  counter-increment:dashSec;
  display:flex; align-items:center; gap:12px;
  margin:0 0 20px;
  font-family:'Rajdhani',sans-serif;
  font-size:16.5px; font-weight:700; letter-spacing:.7px;
  text-transform:uppercase;
  color:#12233B;
}
#busDashboardView .dash-panel .dash-section-title::before{
  content:counter(dashSec, decimal-leading-zero);
  display:flex; align-items:center; justify-content:center;
  width:32px; height:32px; border-radius:10px; flex-shrink:0;
  background:linear-gradient(135deg,#4E93FA,#2F6FED);
  color:#fff; font-size:13px; font-weight:700; letter-spacing:0;
  box-shadow:0 5px 12px rgba(47,111,237,.28);
}

/* ── Üst sıra: filtrlər + KPI kartları + tarix düyməsi ── */
#busDashboardView .dash-top-row{
  grid-template-columns:230px 230px 1fr 1fr 1fr 112px;
  gap:18px;
  margin-bottom:4px;
}

/* İki/üç sütunlu bölmə sıraları — rahat məsafə */
#busDashboardView .dash-mid-row{ gap:24px; }
#busDashboardView .dash-three-col{ gap:24px; }

/* Filter kartları */
#busDashboardView .dash-filter-card{
  padding:18px 18px;
  border-radius:16px;
  border:1.5px solid #E3ECF8;
  background:#FFFFFF;
  box-shadow:0 1px 2px rgba(16,32,64,.04), 0 10px 26px rgba(16,32,64,.06);
}
#busDashboardView .dash-filter-card-label{
  font-size:11.5px; font-weight:700; color:#7C8FAA;
  text-transform:uppercase; letter-spacing:.4px;
  display:flex; align-items:center; gap:6px;
  margin-bottom:13px;
}
#busDashboardView .dash-filter-card-sel{ position:relative; }
#busDashboardView .dash-filter-select{
  width:100%; padding:11px 30px 11px 13px;
  border:1.5px solid #E1EAF6; border-radius:11px;
  background:#F7FAFD; font-size:13px; font-weight:600; color:#12233B;
  appearance:none; cursor:pointer; outline:none;
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
#busDashboardView .dash-filter-select:hover{ border-color:#B9CEF0; }
#busDashboardView .dash-filter-select:focus{
  border-color:#2F6FED; background:#fff;
  box-shadow:0 0 0 3px rgba(47,111,237,.14);
}

/* KPI stat kartları */
#busDashboardView .dash-stat-card{
  border-radius:18px;
  border:1px solid #E3ECF8;
  background:#FFFFFF;
  padding:20px 20px 0;
  box-shadow:0 1px 2px rgba(16,32,64,.04), 0 12px 28px rgba(16,32,64,.07);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
#busDashboardView .dash-stat-card:hover{
  transform:translateY(-4px);
  border-color:#C4D6F2;
  box-shadow:0 6px 14px rgba(16,32,64,.07), 0 26px 52px rgba(16,32,64,.13);
}
#busDashboardView .dash-stat-card::before{
  height:4px;
}
#busDashboardView .dash-stat-icon{
  width:44px; height:44px; border-radius:13px;
  margin-bottom:14px;
  box-shadow:0 7px 16px rgba(30,68,130,.18);
  transition:transform .2s ease;
}
#busDashboardView .dash-stat-card:hover .dash-stat-icon{ transform:scale(1.1) rotate(-4deg); }
#busDashboardView .dash-stat-icon-blue{ background:linear-gradient(135deg,#4E93FA,#2F6FED); color:#fff; }
#busDashboardView .dash-stat-icon-green{ background:linear-gradient(135deg,#34D399,#059669); color:#fff; }
#busDashboardView .dash-stat-icon-purple{ background:linear-gradient(135deg,#A78BFA,#7C3AED); color:#fff; }
#busDashboardView .dash-stat-lbl{
  font-size:11.5px; color:#8CA0BC; font-weight:700;
  letter-spacing:.4px; text-transform:uppercase;
}
#busDashboardView .dash-stat-val{
  font-size:42px; font-weight:700; line-height:1.05;
  color:#12233B;
}
#busDashboardView .dash-top-row .dash-stat-card:nth-child(3) .dash-stat-val{ color:#2F6FED; }
#busDashboardView .dash-top-row .dash-stat-card:nth-child(4) .dash-stat-val{ color:#059669; }
#busDashboardView .dash-top-row .dash-stat-card:nth-child(5) .dash-stat-val{ color:#7C3AED; }

/* Trend pill-ləri */
#busDashboardView .dash-stat-pct{ margin-top:3px; min-height:22px; }
#busDashboardView .dash-pct-up, #busDashboardView .dash-pct-down, #busDashboardView .dash-pct-flat{
  display:inline-flex; align-items:center; gap:3px;
  padding:2px 10px; border-radius:20px;
  font-size:11px; font-weight:700;
}
#busDashboardView .dash-pct-up{ background:#E5F6ED; color:#188A4B; }
#busDashboardView .dash-pct-down{ background:#FDF1E3; color:#D97706; }
#busDashboardView .dash-pct-flat{ background:#EFF3F9; color:#5C7089; }
#busDashboardView .dash-stat-sub{ font-size:11.5px; color:#8CA0BC; font-weight:600; }

/* Sparkline */
#busDashboardView .dash-stat-canvas{
  height:50px; margin-top:auto;
  border-radius:12px 12px 0 0;
  background:linear-gradient(180deg,rgba(47,111,237,.10),rgba(47,111,237,0));
}

/* Tarix + axtarış düyməsi */
#busDashboardView .dash-range-btn{
  border-radius:18px;
  border:1.5px dashed #C6D8F2;
  background:#F7FAFD;
  gap:9px;
  min-height:100%;
  transition:all .18s ease;
}
#busDashboardView .dash-range-btn:hover{
  border-color:#2F6FED; background:#fff;
  box-shadow:0 12px 28px rgba(47,111,237,.15);
  transform:translateY(-2px);
}
#busDashboardView .dash-range-ic{
  width:40px; height:40px; border-radius:12px;
  background:#fff; color:#2F6FED;
  border:1px solid #E1EAF6;
  box-shadow:0 5px 12px rgba(30,68,130,.09);
}

/* ── Servis növü filteri ── */
#busDashboardView .dash-svctype-row{ padding:18px 34px 0; }
#busDashboardView .dash-svctype-tabs{
  border-radius:14px; padding:5px; gap:6px;
  background:#EEF3FB;
  box-shadow:inset 0 1px 2px rgba(16,32,64,.06);
}
#busDashboardView .dash-svctype-btn{
  padding:9px 26px; border-radius:10px;
  font-size:13px; font-weight:700; color:#5C7089;
}
#busDashboardView .dash-svctype-btn.dash-svctype-active{
  background:linear-gradient(135deg,#4E93FA,#2F6FED);
  color:#fff; box-shadow:0 4px 12px rgba(47,111,237,.32);
}
#busDashboardView .dash-svctype-btn:hover:not(.dash-svctype-active){ background:#DDE9FB; color:#12233B; }

/* ── Header ── */
#busDashboardView .dash-header{
  padding:14px 30px;
  background:rgba(255,255,255,.96) !important;
  box-shadow:0 1px 0 rgba(30,68,130,.05), 0 12px 28px rgba(30,68,130,.08);
}
/* v4.42: başlıqdakı dekorativ göy kvadrat (::before) SİLİNDİ — istifadəçinin istəyi ilə */
#busDashboardView .dash-title{ font-size:21px; letter-spacing:2px; gap:12px; }

/* Segment tab-lar */
#busDashboardView .dash-tabs{
  background:#EEF3FB; border-radius:12px; padding:4px; gap:2px;
  box-shadow:inset 0 1px 2px rgba(16,32,64,.06);
}
#busDashboardView .dash-tab{
  padding:8px 16px; border-radius:9px;
  font-size:12.5px; font-weight:700; color:#5C7089;
}
#busDashboardView .dash-tab.active{
  background:linear-gradient(135deg,#4E93FA,#2F6FED);
  color:#fff; box-shadow:0 4px 12px rgba(47,111,237,.32);
}
#busDashboardView .dash-tab:hover:not(.active){ color:#12233B; }

/* Excel düyməsi */
#busDashboardView .dash-excel-btn{
  padding:10px 18px; border-radius:11px;
  background:linear-gradient(135deg,#4E93FA,#2F6FED);
  box-shadow:0 6px 16px rgba(47,111,237,.28);
}

/* ── Problem kartları (radial arcs) ── */
#busDashboardView .dash-prob-grid{ gap:18px; }
#busDashboardView .dash-prob-card{
  border-radius:16px;
  border:1px solid #E3ECF8;
  padding:20px;
  box-shadow:0 1px 2px rgba(16,32,64,.04), 0 10px 26px rgba(16,32,64,.06);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
#busDashboardView .dash-prob-card:hover{
  transform:translateY(-3px);
  border-color:#C4D6F2;
  box-shadow:0 6px 14px rgba(16,32,64,.07), 0 20px 44px rgba(16,32,64,.12);
}
#busDashboardView .dash-prob-top{ gap:18px; }
#busDashboardView .dash-prob-name{ font-size:15px; font-weight:700; color:#12233B; }
#busDashboardView .dash-prob-count{ font-size:12.5px; color:#5C7089; font-weight:600; margin-top:4px; }
#busDashboardView .dash-prob-pct{ font-size:11.5px; font-weight:600; color:#8CA0BC; margin-top:6px; }

/* ── Həll siyahısı ── */
#busDashboardView .dash-sol-list{
  border:1px solid #E3ECF8; border-radius:16px;
  box-shadow:0 1px 2px rgba(16,32,64,.04), 0 8px 22px rgba(16,32,64,.05);
  overflow:hidden;
}
#busDashboardView .dash-sol-row{
  padding:15px 18px; gap:16px;
  border-bottom:1px solid #F0F5FC;
}
#busDashboardView .dash-sol-row:last-child{ border-bottom:none; }
#busDashboardView .dash-sol-row:hover{ background:#F6FAFE; }
#busDashboardView .dash-sol-num{
  width:26px; height:26px; font-size:12px;
  box-shadow:0 3px 8px rgba(16,32,64,.12);
}
#busDashboardView .dash-sol-name{ font-size:14px; font-weight:600; }
#busDashboardView .dash-sol-count{ font-size:20px; }
#busDashboardView .dash-sol-pct{ font-size:11.5px; }
#busDashboardView .dash-sol-bar-track{ height:7px; }

/* ── Digər Tələb/Problemlər ── */
#busDashboardView .dash-other-wrap{ gap:22px; }
#busDashboardView .dash-other-list{ gap:10px; }
#busDashboardView .dash-other-row{
  padding:12px 14px; border-radius:12px;
  border:1px solid #E8F0F9;
  box-shadow:0 4px 12px rgba(30,68,130,.05);
  transition:transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
#busDashboardView .dash-other-row:hover{
  transform:translateX(3px); border-color:#C4D6F2;
  box-shadow:0 8px 18px rgba(30,68,130,.09);
}
#busDashboardView .dash-op-num{
  width:26px; height:26px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:800;
  box-shadow:0 3px 8px rgba(16,32,64,.12);
}
#busDashboardView .dash-op-name{ font-size:13.5px; font-weight:600; flex:1; }
#busDashboardView .dash-op-badge{
  padding:3px 10px; border-radius:20px;
  font-size:12px; font-weight:700; white-space:nowrap;
}
#busDashboardView .dash-op-donut-col{ display:flex; flex-direction:column; align-items:center; gap:12px; }
#busDashboardView .dash-op-donut-lbl{ font-size:12.5px; font-weight:600; color:#8CA0BC; }
#busDashboardView .dash-op-donut-lbl b{ font-family:'Rajdhani',sans-serif; font-size:18px; color:#12233B; }
#busDashboardView .dash-op-legend{ display:flex; flex-direction:column; gap:7px; align-items:flex-start; }
#busDashboardView .dash-op-legend-row{
  display:flex; align-items:center; gap:8px;
  font-size:12px; font-weight:600; color:#5C7089;
}
#busDashboardView .dash-op-legend-dot{
  width:10px; height:10px; border-radius:50%; flex-shrink:0;
}
#busDashboardView .dash-op-legend-name{ white-space:nowrap; }

/* ── Servis kateqoriyaları ── */
#busDashboardView .dash-cat-list{ display:flex; flex-direction:column; gap:14px; }
#busDashboardView .dash-cat-row{
  display:grid; grid-template-columns:auto 1fr 110px;
  gap:14px; align-items:center;
  padding:14px 16px; border-radius:14px;
  background:#F8FBFE; border:1px solid #E8F0F9;
  transition:transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
#busDashboardView .dash-cat-row:hover{
  transform:translateX(3px); border-color:#C4D6F2;
  box-shadow:0 8px 18px rgba(30,68,130,.09);
}
#busDashboardView .dash-cat-left{ display:flex; align-items:center; gap:12px; min-width:0; }
#busDashboardView .dash-cat-icon{
  width:38px; height:38px; border-radius:11px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 10px rgba(30,68,130,.08);
}
#busDashboardView .dash-cat-info{ min-width:0; }
#busDashboardView .dash-cat-name{
  font-size:13.5px; font-weight:700; color:#12233B;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
#busDashboardView .dash-cat-pct-lbl{ font-size:11.5px; font-weight:600; color:#8CA0BC; margin-top:3px; }
#busDashboardView .dash-cat-bar-wrap{ height:8px; background:#E9F0FA; border-radius:5px; overflow:hidden; }
#busDashboardView .dash-cat-bar{ height:100%; border-radius:5px; }
#busDashboardView .dash-cat-right{ text-align:right; }
#busDashboardView .dash-cat-count{
  font-family:'Rajdhani',sans-serif; font-size:20px; font-weight:700; color:#12233B;
}
#busDashboardView .dash-cat-pct{ font-size:11.5px; font-weight:700; color:#8CA0BC; }

/* ── Servis verilən ünvan ── */
#busDashboardView .dash-loc-wrap2{ gap:22px; }
#busDashboardView .dash-loc-list{ display:flex; flex-direction:column; gap:10px; }
#busDashboardView .dash-loc-row{
  display:flex; align-items:center; gap:12px;
  padding:13px 14px; border-radius:12px;
  background:#F8FBFE; border:1px solid #E8F0F9;
  transition:transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
#busDashboardView .dash-loc-row:hover{
  transform:translateX(3px); border-color:#C4D6F2;
  box-shadow:0 8px 18px rgba(30,68,130,.09);
}
#busDashboardView .dash-loc-icon{
  width:38px; height:38px; border-radius:11px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 10px rgba(30,68,130,.08);
}
#busDashboardView .dash-loc-info{ flex:1; min-width:0; }
#busDashboardView .dash-loc-name{
  font-size:13.5px; font-weight:700; color:#12233B;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
#busDashboardView .dash-loc-bar-track{ height:7px; background:#E9F0FA; border-radius:4px; overflow:hidden; margin-top:8px; }
#busDashboardView .dash-loc-bar{ height:100%; border-radius:4px; }
#busDashboardView .dash-loc-right{ text-align:right; }
#busDashboardView .dash-loc-count{
  font-family:'Rajdhani',sans-serif; font-size:20px; font-weight:700; color:#12233B;
}
#busDashboardView .dash-loc-pct{ font-size:11.5px; font-weight:700; color:#8CA0BC; }

/* ── Sıralama cədvəlləri (Daşıyıcı / Texnik / Qrup rəhbəri / Təkrarlanan) ── */
#busDashboardView .dash-ranklist-wrap{
  border:1px solid #E3ECF8; border-radius:16px; overflow:hidden;
  box-shadow:0 1px 2px rgba(16,32,64,.04), 0 8px 22px rgba(16,32,64,.05);
}
#busDashboardView .dash-ranklist{ width:100%; border-collapse:collapse; }
#busDashboardView .dash-ranklist thead th{
  font-size:10.5px; font-weight:700; letter-spacing:.7px; text-transform:uppercase;
  color:#8CA0BC; background:#F6F9FE;
  padding:13px 18px; text-align:left;
  border-bottom:1px solid #E7EFFA;
}
#busDashboardView .dash-ranklist tbody td{
  padding:14px 18px; font-size:13.5px; color:#33445E;
  border-bottom:1px solid #F0F5FC;
  transition:background .12s ease;
}
#busDashboardView .dash-ranklist tbody tr:hover td{ background:#F6FAFE; }
#busDashboardView .dash-ranklist tbody tr:last-child td{ border-bottom:none; }
#busDashboardView .dash-ranklist tbody tr td:first-child span{
  display:inline-flex; align-items:center; justify-content:center;
  width:26px; height:26px; border-radius:50%;
  background:#2F6FED; color:#fff;
  font-size:12px; font-weight:800;
  box-shadow:0 3px 8px rgba(47,111,237,.22);
}
#busDashboardView .dash-ranklist th.dr-count-col,
#busDashboardView .dash-ranklist tbody td:last-child{ text-align:right; }
#busDashboardView .dash-rank-count-val{
  font-family:'Rajdhani',sans-serif; font-size:17px; font-weight:700; color:#12233B;
}
#busDashboardView .dash-ranklist .dr-num-col{ width:56px; }
#busDashboardView .dash-ranklist .dr-count-col{ width:96px; }

/* Hamısını göstər */
#busDashboardView .dash-show-more-row{
  padding:14px 18px; border-top:1px dashed #E1EAF6;
}
#busDashboardView .dash-show-more-btn{
  border:none; background:#EAF2FD; color:#2F6FED;
  font-size:12.5px; font-weight:700;
  padding:9px 18px; border-radius:10px; cursor:pointer;
  transition:all .15s ease;
}
#busDashboardView .dash-show-more-btn:hover{ background:#DDE9FB; }

/* ── Təkrarlanan problemli avtobuslar (alert panel) ── */
#busDashboardView .dash-panel-alert{
  background:linear-gradient(180deg,#FFFBFB,#FFF6F6);
  border-color:#F5CFCF;
}
#busDashboardView .dash-panel-alert .dash-section-title{ color:#A32D2D; }
#busDashboardView .dash-panel-alert .dash-section-title::before{
  background:linear-gradient(135deg,#F87171,#DC2626);
  box-shadow:0 5px 12px rgba(220,38,38,.26);
}
#busDashboardView .dash-alert-panel{
  border:none; background:transparent; padding:0;
  box-shadow:none;
}

/* ── Boş state ── */
#busDashboardView .dash-empty-txt{
  background:#F8FBFE;
  border:1.5px dashed #D5E4F5;
  border-radius:12px;
  padding:26px 18px;
  font-size:13.5px; color:#8CA0BC;
}

/* ── Mobil xülasə ── */
#busDashboardView .dash-m-metrics{
  grid-template-columns:repeat(3,1fr); gap:12px;
  padding:0 16px; margin-bottom:18px;
}
#busDashboardView .dash-m-metrics > div{
  background:#fff; border:1px solid #E3ECF8; border-radius:14px;
  padding:14px 16px; font-size:13px; font-weight:600; color:#5C7089;
  box-shadow:0 8px 20px rgba(30,68,130,.06);
}
#busDashboardView .dash-m-metrics b{
  font-family:'Rajdhani',sans-serif; font-size:22px; color:#12233B;
  display:block; margin-top:2px;
}
#busDashboardView .dash-m-section{
  background:#fff; border:1px solid #E3ECF8; border-radius:16px;
  padding:18px; margin:0 16px 16px;
  box-shadow:0 8px 22px rgba(30,68,130,.06);
}
#busDashboardView .dash-m-title{
  font-family:'Rajdhani',sans-serif; font-size:15px; font-weight:700;
  text-transform:uppercase; letter-spacing:.5px; color:#12233B;
  margin-bottom:12px;
}
#busDashboardView .dash-m-card-empty{
  border:1.5px dashed #D5E4F5; border-radius:12px;
  padding:16px; font-size:13px; color:#8CA0BC; text-align:center;
}

/* ── Responsive ── */
@media(max-width:1240px){
  #busDashboardView .dash-top-row{ grid-template-columns:1fr 1fr; }
  #busDashboardView .dash-stat-card{ min-height:168px; }
  #busDashboardView .dash-range-btn{ min-height:120px; }
}
@media(max-width:900px){
  #busDashboardView .dash-container{ padding:20px 18px 60px; }
  #busDashboardView .dash-svctype-row{ padding:14px 18px 0; }
  #busDashboardView .dash-header{ padding:12px 16px; }
  #busDashboardView .dash-mid-row{ grid-template-columns:1fr; }
  #busDashboardView .dash-panel{ padding:18px 16px 20px; }
}
@media(max-width:700px){
  #busDashboardView .dash-m-metrics{ grid-template-columns:1fr 1fr; }
  #busDashboardView .dash-cat-row{ grid-template-columns:auto 1fr; }
  #busDashboardView .dash-cat-bar-wrap{ grid-column:2; }
}

/* ── Dark mode ── */
body.dark-mode #busDashboardView .dash-panel{
  background:#131E2E;
  border-color:#27374F;
  box-shadow:0 1px 2px rgba(0,0,0,.3), 0 12px 30px rgba(0,0,0,.3);
}
body.dark-mode #busDashboardView .dash-panel:hover{ border-color:#3A4F72; }
body.dark-mode #busDashboardView .dash-panel .dash-section-title{ color:#E8EEF5; }
body.dark-mode #busDashboardView .dash-filter-card,
body.dark-mode #busDashboardView .dash-stat-card,
body.dark-mode #busDashboardView .dash-range-btn,
body.dark-mode #busDashboardView .dash-prob-card,
body.dark-mode #busDashboardView .dash-sol-list,
body.dark-mode #busDashboardView .dash-ranklist-wrap{
  background:#131E2E; border-color:#27374F;
}
body.dark-mode #busDashboardView .dash-stat-lbl{ color:#8FA0B8; }
body.dark-mode #busDashboardView .dash-stat-val{ color:#E8EEF5; }
body.dark-mode #busDashboardView .dash-stat-sub{ color:#8FA0B8; }
body.dark-mode #busDashboardView .dash-filter-select{
  background:#0F1A28; border-color:#2A3B52; color:#E8EEF5;
}
body.dark-mode #busDashboardView .dash-filter-select:focus{ background:#0F1A28; border-color:#4E93FA; }
body.dark-mode #busDashboardView .dash-range-btn{ background:#0F1A28; }
body.dark-mode #busDashboardView .dash-range-ic{
  background:#1C2A3D; border-color:#2A3B52; color:#4E93FA;
}
body.dark-mode #busDashboardView .dash-prob-name{ color:#E8EEF5; }
body.dark-mode #busDashboardView .dash-prob-count{ color:#8FA0B8; }
body.dark-mode #busDashboardView .dash-sol-row{ border-color:#1E2C40; }
body.dark-mode #busDashboardView .dash-sol-row:hover{ background:#0F1A28; }
body.dark-mode #busDashboardView .dash-sol-name{ color:#E8EEF5; }
body.dark-mode #busDashboardView .dash-other-row,
body.dark-mode #busDashboardView .dash-cat-row,
body.dark-mode #busDashboardView .dash-loc-row{
  background:#0F1A28; border-color:#22324A;
}
body.dark-mode #busDashboardView .dash-other-row:hover,
body.dark-mode #busDashboardView .dash-cat-row:hover,
body.dark-mode #busDashboardView .dash-loc-row:hover{ border-color:#3A4F72; }
body.dark-mode #busDashboardView .dash-op-name,
body.dark-mode #busDashboardView .dash-cat-name,
body.dark-mode #busDashboardView .dash-loc-name{ color:#E8EEF5; }
body.dark-mode #busDashboardView .dash-cat-pct-lbl,
body.dark-mode #busDashboardView .dash-op-donut-lbl{ color:#8FA0B8; }
body.dark-mode #busDashboardView .dash-ranklist thead th{
  background:#0F1A28; color:#8FA0B8; border-color:#22324A;
}
body.dark-mode #busDashboardView .dash-ranklist tbody td{
  color:#C7D5E8; border-color:#1E2C40;
}
body.dark-mode #busDashboardView .dash-ranklist tbody tr:hover td{ background:#0F1A28; }
body.dark-mode #busDashboardView .dash-rank-count-val{ color:#E8EEF5; }
body.dark-mode #busDashboardView .dash-show-more-row{ border-color:#2A3B52; }
body.dark-mode #busDashboardView .dash-show-more-btn{ background:#1C2A3D; color:#4E93FA; }
body.dark-mode #busDashboardView .dash-show-more-btn:hover{ background:#22334B; }
body.dark-mode #busDashboardView .dash-panel-alert{
  background:linear-gradient(180deg,#221516,#1D1111);
  border-color:#5C2A2A;
}
body.dark-mode #busDashboardView .dash-panel-alert .dash-section-title{ color:#F2A0A0; }
body.dark-mode #busDashboardView .dash-panel-alert:hover{ border-color:#7A3434; }
body.dark-mode #busDashboardView .dash-empty-txt{
  background:#0F1A28; border-color:#2A3B52; color:#8FA0B8;
}
body.dark-mode #busDashboardView .dash-m-metrics > div,
body.dark-mode #busDashboardView .dash-m-section{
  background:#131E2E; border-color:#27374F;
}
body.dark-mode #busDashboardView .dash-m-metrics b,
body.dark-mode #busDashboardView .dash-m-title{ color:#E8EEF5; }
body.dark-mode #busDashboardView .dash-m-card-empty{
  background:#0F1A28; border-color:#2A3B52; color:#8FA0B8;
}

