/* ==========================================================================
   GestiuneFlota — Design System v4  (vezi docs/DESIGN.md)
   Tokeni → componente → module. Interfață luminoasă: culoarea înseamnă informație, nu decor.
   ========================================================================== */

:root {
  /* identitate „cerneală și semnal": bleumarin-cerneală pentru text și acțiuni, verde-lămâie de marcaj rutier pentru accente */
  --gf-ink:         #0b1a33;
  --gf-ink-2:       #1c2c4c;
  --gf-signal:      #d4f05a;
  --gf-signal-soft: #f2fbcf;
  --gf-signal-deep: #4d6b00;   /* text pe fundal deschis cu nuanța semnalului */
  --gf-navy:        #0b1a33;
  --gf-navy-2:      #13244a;
  --gf-navy-3:      #1c2c4c;
  /* „teal" a rămas numele istoric: culoarea pentru link-uri și date (cobalt) */
  --gf-teal:        #2140d4;
  --gf-teal-hover:  #1932ad;
  --gf-teal-soft:   #eef1fd;
  --gf-teal-dark:   #1932ad;
  --gf-teal-light:  #eef1fd;
  --gf-accent:      #2140d4;
  --gf-uber:        #0b1a33;

  /* stări: text (≥4,5:1) și fundal moale */
  --gf-success:     #067647;  --gf-success-soft: #ecfdf3;  --gf-success-line: #abefc6;
  --gf-warning:     #b54708;  --gf-warning-soft: #fffaeb;  --gf-warning-line: #fedf89;
  --gf-danger:      #b42318;  --gf-danger-soft:  #fef3f2;  --gf-danger-line:  #fecdca;
  --gf-info:        #2140d4;  --gf-info-soft:    #eef1fd;  --gf-info-line:    #c7d0f7;

  /* neutre calde (hârtie), nu gri de șablon */
  --gf-bg:          #f3f2ee;
  --gf-surface:     #ffffff;
  --gf-surface-2:   #faf9f6;
  --gf-surface-3:   #efeee9;
  --gf-white:       var(--gf-surface);
  --gf-border:      #e3e1da;
  --gf-border-2:    #ecebe5;
  --gf-border-input:#d3d1c8;
  --gf-text:        #0b1a33;
  --gf-text-2:      #2c3a52;
  --gf-muted:       #555f70;
  --gf-muted-2:     #6b7383;
  --gf-grid:        #efeee9;

  /* tipografie: titluri și cifre în Barlow Semi Condensed, textul de lucru în Barlow (familia literelor de pe indicatoare și plăcuțe) */
  --gf-font-display: 'Barlow Semi Condensed', 'Barlow', system-ui, sans-serif;
  --gf-fs-xs: 12px; --gf-fs-sm: 13px; --gf-fs: 14px; --gf-fs-md: 16px; --gf-fs-lg: 20px; --gf-fs-xl: 26px; --gf-fs-2xl: 34px;
  --gf-s1: 4px; --gf-s2: 8px; --gf-s3: 12px; --gf-s4: 16px; --gf-s5: 20px; --gf-s6: 24px; --gf-s8: 32px;

  --gf-sidebar-w:   252px;
  --gf-sidebar-mini:72px;
  --gf-topbar-h:    60px;
  --gf-radius:      12px;
  --gf-radius-sm:   8px;
  --gf-shadow-xs:   0 1px 2px rgba(11, 26, 51, .05);
  --gf-shadow-sm:   var(--gf-shadow-xs);
  --gf-shadow:      0 1px 3px rgba(11, 26, 51, .08), 0 1px 2px rgba(11, 26, 51, .04);
  --gf-shadow-lg:   0 16px 32px -8px rgba(11, 26, 51, .14), 0 4px 8px -2px rgba(11, 26, 51, .05);
  --gf-ring:        0 0 0 4px rgba(33, 64, 212, .16);

  --bs-body-font-family: 'Barlow', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --bs-link-color-rgb: 33, 64, 212;
  --bs-link-hover-color-rgb: 25, 50, 173;
  --bs-primary-rgb: 11, 26, 51;
  --bs-border-color: var(--gf-border);
}

[data-bs-theme="dark"] {
  --gf-bg:          #0b1220;
  --gf-surface:     #111a2b;
  --gf-surface-2:   #152035;
  --gf-surface-3:   #1a2740;
  --gf-border:      #23324d;
  --gf-border-2:    #1c2a42;
  --gf-text:        #e6edf7;
  --gf-muted:       #93a3ba;
  --gf-muted-2:     #6b7c96;
  --gf-grid:        #1d2a40;
  --gf-teal:        #3b82f6;
  --gf-teal-hover:  #60a5fa;
  --gf-teal-soft:   rgba(59, 130, 246, .16);
  --gf-teal-light:  rgba(59, 130, 246, .16);
  --gf-success-soft:rgba(22, 163, 74, .16);
  --gf-uber:        #e5e7eb;
  --gf-shadow:      0 1px 2px rgba(0, 0, 0, .3), 0 4px 16px rgba(0, 0, 0, .25);
  --bs-body-bg:     var(--gf-bg);
  --bs-body-color:  var(--gf-text);
  --bs-border-color: var(--gf-border);
  --bs-secondary-bg: var(--gf-surface-2);
  --bs-tertiary-bg: var(--gf-surface-2);
}

* { box-sizing: border-box; }

html { scroll-padding-top: calc(var(--gf-topbar-h) + 12px); }

body {
  font-family: var(--bs-body-font-family);
  font-size: 15px;
  line-height: 1.5;
  color: var(--gf-text);
  background: var(--gf-bg);
  margin: 0;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "tnum" 0;
}

h1, h2, h3, h4, h5, h6 { color: var(--gf-text); font-weight: 600; letter-spacing: -.015em; }
a { color: var(--gf-teal); }
a:hover { color: var(--gf-teal-hover); }
::selection { background: rgba(37, 99, 235, .2); }

.gf-skip { position: absolute; left: 12px; top: 8px; z-index: 2000; background: var(--gf-surface); padding: 8px 12px; border-radius: 8px; }

/* ── SIDEBAR (luminos) ───────────────────────────────────────────────────── */
.fp-sidebar {
  position: fixed; top: 0; left: 0; bottom: 0;
  width: var(--gf-sidebar-w);
  background: var(--gf-surface);
  border-right: 1px solid var(--gf-border);
  color: var(--gf-text-2);
  overflow-y: auto; overflow-x: hidden;
  z-index: 1040;
  display: flex; flex-direction: column;
  transition: width .2s ease, transform .25s ease;
  scrollbar-width: thin; scrollbar-color: var(--gf-border) transparent;
}
.fp-sidebar::-webkit-scrollbar { width: 4px; }
.fp-sidebar::-webkit-scrollbar-thumb { background: var(--gf-border); border-radius: 2px; }

.fp-logo { padding: 18px 20px 14px; }
.fp-logo-link { display: flex; align-items: center; text-decoration: none; min-width: 0; }
.fp-logo-full { height: 34px; width: auto; }
.fp-logo-ring { display: none; height: 30px; width: 30px; }
.fp-logo-sub { margin-top: 10px; font-size: var(--gf-fs-xs); font-weight: 500; color: var(--gf-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 210px;
  background: var(--gf-surface-3); border-radius: var(--gf-radius-sm); padding: 5px 8px; }

.fp-nav { padding: 4px 12px 16px; flex: 1; }
.fp-nav-section {
  padding: 18px 10px 6px;
  font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
  color: var(--gf-muted-2);
  white-space: nowrap;
}
.fp-nav-item {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 10px; margin: 1px 0;
  border-radius: 8px;
  color: var(--gf-text-2);
  text-decoration: none; font-size: var(--gf-fs); font-weight: 500;
  white-space: nowrap; position: relative;
  transition: background .12s, color .12s;
}
.fp-nav-item:hover { background: var(--gf-surface-3); color: var(--gf-text); }
.fp-nav-item:focus-visible { outline: 3px solid rgba(37,99,235,.35); outline-offset: 0; }
.fp-nav-item.active { background: var(--gf-teal-soft); color: var(--gf-teal-dark); font-weight: 600; }
.fp-nav-item.active::before { content: ""; position: absolute; left: -12px; top: 8px; bottom: 8px; width: 3px; border-radius: 0 3px 3px 0; background: var(--gf-teal); }
.fp-nav-item.active .fp-nav-icon { color: var(--gf-teal); }
.fp-nav-item.locked { color: var(--gf-muted-2); }
.fp-nav-icon { width: 20px; text-align: center; font-size: 16px; flex: 0 0 20px; color: var(--gf-muted-2); }
.fp-nav-item:hover .fp-nav-icon { color: var(--gf-text-2); }
.fp-nav-label { overflow: hidden; text-overflow: ellipsis; }
.fp-nav-lock { margin-left: auto; font-size: 11px; }
.fp-nav-badge {
  margin-left: auto; min-width: 20px; height: 20px; padding: 0 6px;
  border-radius: 10px; background: var(--gf-danger-soft); color: var(--gf-danger); border: 1px solid var(--gf-danger-line);
  font-size: 11px; font-weight: 600; display: inline-grid; place-items: center;
}
.fp-sidebar-footer {
  padding: 12px 20px; border-top: 1px solid var(--gf-border-2);
  font-size: var(--gf-fs-xs); color: var(--gf-muted-2); white-space: nowrap;
}
.dot-online { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #17b26a; margin-right: 4px; }

/* sidebar restrâns (desktop) */
@media (min-width: 992px) {
  .sidebar-mini .fp-sidebar { width: var(--gf-sidebar-mini); }
  .sidebar-mini .fp-logo-full, .sidebar-mini .fp-logo-sub, .sidebar-mini .fp-nav-label, .sidebar-mini .fp-nav-section,
  .sidebar-mini .fp-sidebar-footer, .sidebar-mini .fp-nav-lock { display: none; }
  .sidebar-mini .fp-nav-item { justify-content: center; padding: 10px; }
  .sidebar-mini .fp-nav-item.active::before { left: -12px; }
  .sidebar-mini .fp-nav-badge { position: absolute; top: 2px; right: 4px; min-width: 16px; height: 16px; font-size: 9px; }
  .sidebar-mini .fp-logo { padding: 14px; display: flex; justify-content: center; }
  .sidebar-mini .fp-logo-ring { display: block; }
  .sidebar-mini .fp-topbar { left: var(--gf-sidebar-mini); }
  .sidebar-mini .fp-main { margin-left: var(--gf-sidebar-mini); }
}

.fp-backdrop { display: none; }

/* ── TOPBAR ──────────────────────────────────────────────────────────────── */
.fp-topbar {
  position: fixed; top: 0; right: 0; left: var(--gf-sidebar-w);
  height: var(--gf-topbar-h);
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 0 24px;
  background: var(--gf-surface);
  border-bottom: 1px solid var(--gf-border);
  z-index: 1030;
  transition: left .2s ease;
}
.fp-page-title { font-size: 15px; font-weight: 600; color: var(--gf-text); letter-spacing: -.01em; }
.fp-topbar-right { display: flex; align-items: center; gap: 8px; }
.min-w-0 { min-width: 0; }

.btn-icon {
  width: 38px; height: 38px; padding: 0;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 8px; border: 1px solid transparent;
  color: var(--gf-muted); background: transparent; font-size: 17px;
}
.btn-icon:hover { background: var(--gf-surface-3); color: var(--gf-text); }
.fp-dot-badge {
  position: absolute; top: 3px; right: 2px; min-width: 17px; height: 17px; padding: 0 4px;
  border-radius: 9px; background: var(--gf-danger); color: #fff; font-size: 10px; font-weight: 700;
  display: grid; place-items: center; border: 2px solid var(--gf-surface);
}

.fp-search {
  position: relative; display: flex; align-items: center;
  width: clamp(200px, 26vw, 340px); height: 38px;
  background: var(--gf-surface); border: 1px solid var(--gf-border-input); border-radius: 8px; box-shadow: var(--gf-shadow-xs);
  padding: 0 10px; gap: 8px; color: var(--gf-muted);
  transition: border-color .15s, box-shadow .15s;
}
.fp-search:focus-within { border-color: var(--gf-teal); box-shadow: var(--gf-ring); background: var(--gf-surface); }
.fp-search input { border: 0; outline: 0; background: transparent; flex: 1; font-size: 13.5px; color: var(--gf-text); min-width: 0; }
.fp-search kbd { font-size: 10.5px; background: var(--gf-surface-3); color: var(--gf-muted); border: 1px solid var(--gf-border); border-radius: 5px; padding: 1px 6px; box-shadow: none; }

.fp-user-badge {
  display: flex; align-items: center; gap: 8px;
  background: transparent; border: 1px solid transparent; border-radius: 10px;
  padding: 4px 8px 4px 4px; color: var(--gf-text); font-size: 13.5px; font-weight: 500;
}
.fp-user-badge:hover { background: var(--gf-surface-3); }
.fp-user-avatar {
  width: 32px; height: 32px; flex: 0 0 32px; border-radius: 50%;
  background: var(--gf-teal-soft); color: var(--gf-teal-dark); border: 1px solid #d1e0ff;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700; letter-spacing: .02em;
}
.fp-user-avatar.sa { background: var(--gf-warning-soft); color: var(--gf-warning); border-color: var(--gf-warning-line); }

/* ── MAIN ────────────────────────────────────────────────────────────────── */
.fp-main {
  margin-left: var(--gf-sidebar-w);
  padding: calc(var(--gf-topbar-h) + 28px) 32px 48px;
  min-height: 100vh;
  transition: margin-left .2s ease;
  max-width: 1680px;
}
.fp-main > h4:first-child, .fp-main h4.mb-0 { font-size: var(--gf-fs-xl); font-weight: 600; letter-spacing: -.02em; line-height: 1.25; }
.fp-main h4.mb-0 + p, .fp-main h4.mb-0 + .text-muted { font-size: var(--gf-fs); color: var(--gf-muted); margin-top: 4px; }

/* ── CARDS ───────────────────────────────────────────────────────────────── */
.fp-card {
  background: var(--gf-surface);
  border: 1px solid var(--gf-border);
  border-radius: var(--gf-radius);
  margin-bottom: var(--gf-s6);
  box-shadow: var(--gf-shadow-xs);
}
.fp-card-header {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  padding: 16px 20px;
  border-bottom: 1px solid var(--gf-border-2);
  background: transparent !important;
}
.fp-card-title { font-size: 15px; font-weight: 600; color: var(--gf-text); margin: 0; letter-spacing: -.01em; }
.fp-card-body { padding: 20px; }
.fp-card > .table-responsive:last-child .fp-table tr:last-child td { border-bottom: 0; }

/* ── KPI ─────────────────────────────────────────────────────────────────── */
.fp-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: var(--gf-s4); margin-bottom: var(--gf-s6);
}
.fp-kpi {
  position: relative;
  background: var(--gf-surface);
  border: 1px solid var(--gf-border);
  border-radius: var(--gf-radius);
  padding: 16px 20px;
  box-shadow: var(--gf-shadow-xs);
  overflow: hidden;
}
.fp-kpi::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: transparent; }
.fp-kpi-label { font-size: var(--gf-fs-sm); color: var(--gf-muted); margin-bottom: 6px; font-weight: 500; }
.fp-kpi-value { font-size: var(--gf-fs-xl); font-weight: 600; color: var(--gf-text); letter-spacing: -.02em; font-variant-numeric: tabular-nums; line-height: 1.2; white-space: nowrap; }
.fp-kpi-sub   { font-size: var(--gf-fs-xs); color: var(--gf-muted); margin-top: 6px; }
/* accentele colorate pe margine au dispărut: culoarea rămâne doar pe valoare, unde înseamnă ceva */
.fp-kpi.kpi-danger .fp-kpi-value  { color: var(--gf-danger); }
.fp-kpi.kpi-success, .fp-kpi.kpi-danger, .fp-kpi.kpi-warning, .fp-kpi.kpi-info { border-left-width: 1px; }

/* KPI-uri vechi (kpi-card) */
.kpi-grid, .kpi-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 14px; margin-bottom: 20px; }
.kpi-card { background: var(--gf-surface); border: 1px solid var(--gf-border); border-radius: var(--gf-radius); padding: 16px 18px; }
.kpi-label { font-size: 12px; color: var(--gf-muted); }
.kpi-value { font-size: 22px; font-weight: 750; color: var(--gf-text); font-variant-numeric: tabular-nums; }
.kpi-sub { font-size: 11.5px; color: var(--gf-muted); }

/* ── TABLES ──────────────────────────────────────────────────────────────── */
.fp-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: var(--gf-fs); color: var(--gf-text-2); }
.fp-table th {
  position: sticky; top: 0; z-index: 1;
  padding: 11px 16px;
  text-align: left; white-space: nowrap;
  font-size: var(--gf-fs-xs); font-weight: 500;
  color: var(--gf-muted);
  background: var(--gf-surface-2);
  border-bottom: 1px solid var(--gf-border-2);
}
.fp-table td { padding: 12px 16px; border-bottom: 1px solid var(--gf-border-2); vertical-align: middle; height: 52px; }
/* sumele și numerele de înmatriculare nu se rup niciodată pe două rânduri */
.fp-table td.text-end, .fp-table th.text-end { font-variant-numeric: tabular-nums; white-space: nowrap; }
.fp-table .mono, .fp-table .badge { white-space: nowrap; }
.fp-table tbody tr { transition: background .1s; }
.fp-table tbody tr:hover td { background: var(--gf-surface-2); }
.fp-table tr.row-alert td  { background: #fffcf5; }
.fp-table tr.row-danger td { background: #fffbfa; }
.fp-table tr.row-alert td:first-child  { box-shadow: inset 3px 0 0 #f79009; }
.fp-table tr.row-danger td:first-child { box-shadow: inset 3px 0 0 #f04438; }
.fp-table tr[data-href] { cursor: pointer; }
.table-responsive { border-radius: 0 0 var(--gf-radius) var(--gf-radius); }
.table { --bs-table-bg: transparent; color: var(--gf-text); }

/* ── BUTTONS ─────────────────────────────────────────────────────────────── */
.btn { --bs-btn-padding-y: 8px; --bs-btn-padding-x: 14px; --bs-btn-font-size: 14px; border-radius: 8px; font-weight: 600; letter-spacing: -.005em; line-height: 1.43; box-shadow: var(--gf-shadow-xs); }
.btn-sm { --bs-btn-padding-y: 6px; --bs-btn-padding-x: 12px; --bs-btn-font-size: 13px; border-radius: 8px; }
.btn-lg { --bs-btn-padding-y: 10px; --bs-btn-padding-x: 18px; --bs-btn-font-size: 15px; }
.btn-xs { padding: 3px 9px; font-size: 12px; border-radius: 6px; line-height: 1.5; }
.btn-link, .btn-icon, .btn-close { box-shadow: none; }
.btn-primary {
  --bs-btn-bg: var(--gf-teal); --bs-btn-border-color: var(--gf-teal); --bs-btn-color: #fff;
  --bs-btn-hover-bg: var(--gf-teal-hover); --bs-btn-hover-border-color: var(--gf-teal-hover); --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: #050d1c; --bs-btn-active-border-color: #050d1c;
  --bs-btn-disabled-bg: var(--gf-teal); --bs-btn-disabled-border-color: var(--gf-teal);
  --bs-btn-focus-shadow-rgb: 37, 99, 235;
}
.btn-success {
  --bs-btn-bg: #079455; --bs-btn-border-color: #079455; --bs-btn-color: #fff;
  --bs-btn-hover-bg: #067647; --bs-btn-hover-border-color: #067647; --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: #085d3a; --bs-btn-active-border-color: #085d3a;
}
.btn-outline-primary {
  --bs-btn-bg: var(--gf-surface); --bs-btn-color: var(--gf-teal-dark); --bs-btn-border-color: #b2ccff;
  --bs-btn-hover-bg: var(--gf-teal-soft); --bs-btn-hover-border-color: #84adff; --bs-btn-hover-color: var(--gf-teal-dark);
  --bs-btn-active-bg: var(--gf-teal-hover); --bs-btn-active-border-color: var(--gf-teal-hover);
  --bs-btn-focus-shadow-rgb: 37, 99, 235;
}
.btn-outline-secondary, .btn-light { --bs-btn-bg: var(--gf-surface); --bs-btn-color: var(--gf-text-2); --bs-btn-border-color: var(--gf-border-input); --bs-btn-hover-bg: var(--gf-surface-2); --bs-btn-hover-color: var(--gf-text); --bs-btn-hover-border-color: var(--gf-border-input); --bs-btn-active-bg: var(--gf-surface-3); --bs-btn-active-color: var(--gf-text); --bs-btn-active-border-color: var(--gf-border-input); }
.btn.is-loading { position: relative; color: transparent !important; pointer-events: none; }
.btn.is-loading::after {
  content: ""; position: absolute; inset: 0; margin: auto; width: 16px; height: 16px;
  border: 2px solid rgba(255,255,255,.8); border-right-color: transparent; border-radius: 50%;
  animation: gf-spin .7s linear infinite;
}
.btn-outline-primary.is-loading::after, .btn-outline-secondary.is-loading::after, .btn-link.is-loading::after { border-color: var(--gf-teal); border-right-color: transparent; }
@keyframes gf-spin { to { transform: rotate(360deg); } }

/* ── BADGES ──────────────────────────────────────────────────────────────── */
/* insigne: pastile pe fundal moale — culoarea plină e rezervată acțiunilor */
.badge { font-weight: 500; font-size: 12px; letter-spacing: 0; border-radius: 999px; padding: 2px 9px; line-height: 18px; border: 1px solid transparent; }
.badge.bg-success   { background-color: var(--gf-success-soft) !important; color: var(--gf-success) !important; border-color: var(--gf-success-line); }
.badge.bg-warning   { background-color: var(--gf-warning-soft) !important; color: var(--gf-warning) !important; border-color: var(--gf-warning-line); }
.badge.bg-danger    { background-color: var(--gf-danger-soft) !important;  color: var(--gf-danger) !important;  border-color: var(--gf-danger-line); }
.badge.bg-info, .badge.bg-primary { background-color: var(--gf-info-soft) !important; color: var(--gf-info) !important; border-color: var(--gf-info-line); }
.badge.bg-secondary, .badge.bg-light { background-color: var(--gf-surface-3) !important; color: var(--gf-text-2) !important; border-color: var(--gf-border); }
.badge.bg-dark      { background-color: var(--gf-text) !important; color: #fff !important; }

/* ── FORMS ───────────────────────────────────────────────────────────────── */
.form-label { font-size: var(--gf-fs-sm); font-weight: 500; color: var(--gf-text-2); margin-bottom: 6px; }
.form-control, .form-select {
  border-radius: 8px; border-color: var(--gf-border-input); font-size: var(--gf-fs); min-height: 40px; box-shadow: var(--gf-shadow-xs);
  background-color: var(--gf-surface); color: var(--gf-text);
}
.form-control::placeholder { color: var(--gf-muted-2); }
.form-control:focus, .form-select:focus { border-color: var(--gf-teal); box-shadow: var(--gf-ring); background-color: var(--gf-surface); color: var(--gf-text); }
.form-control-sm, .form-select-sm { border-radius: 8px; font-size: 13px; min-height: 34px; }
textarea.form-control { min-height: 80px; }
.form-check-input:checked { background-color: var(--gf-teal); border-color: var(--gf-teal); }
.form-check-input:focus { box-shadow: var(--gf-ring); border-color: var(--gf-teal); }
.input-group-text { background: var(--gf-surface-2); border-color: var(--gf-border-input); color: var(--gf-muted); border-radius: 8px; }
.form-text { color: var(--gf-muted); }
.form-control:disabled, .form-control[readonly] { background-color: var(--gf-surface-2); }

/* ── ALERTS ──────────────────────────────────────────────────────────────── */
.fp-alert {
  display: flex; align-items: center; gap: 10px;
  border-radius: 10px; padding: 11px 14px; margin-bottom: 14px;
  font-size: 13.5px; font-weight: 500;
  border: 1px solid transparent;
}
.fp-alert > .bi:first-child { font-size: 16px; flex: 0 0 auto; }
.fp-alert .btn-close { font-size: 11px; }
a.fp-alert:hover { filter: brightness(.98); }

/* alerte dashboard: carduri mici, se pot ascunde */
.gf-alerte { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; margin-bottom: 22px; }
.gf-alerta { position: relative; background: var(--gf-surface); border: 1px solid var(--gf-border); border-radius: var(--gf-radius);
  box-shadow: var(--gf-shadow-sm); transition: transform .15s, box-shadow .15s, opacity .2s; --c: var(--gf-warning); --cs: rgba(217,119,6,.12); }
.gf-alerta::before { content: ""; position: absolute; left: 0; top: 12px; bottom: 12px; width: 3px; border-radius: 0 3px 3px 0; background: var(--c); }
.gf-alerta:hover { transform: translateY(-1px); box-shadow: var(--gf-shadow); }
.gf-alerta-danger { --c: var(--gf-danger); --cs: rgba(220,38,38,.10); }
.gf-alerta-info   { --c: var(--gf-info);   --cs: rgba(37,99,235,.10); }
.gf-alerta-link { display: flex; gap: 12px; align-items: center; padding: 14px 34px 14px 16px; color: var(--gf-text); text-decoration: none; }
.gf-alerta-link:hover { color: var(--gf-text); }
.gf-alerta-ic { flex: 0 0 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; background: var(--cs); color: var(--c); font-size: 17px; }
.gf-alerta-txt { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
.gf-alerta-txt b { font-size: 20px; font-weight: 800; letter-spacing: -.02em; color: var(--c); }
.gf-alerta-titlu { font-size: 13px; font-weight: 600; margin-top: 2px; }
.gf-alerta-sub { font-size: 11.5px; color: var(--gf-muted); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gf-alerta-x { position: absolute; top: 6px; right: 6px; width: 26px; height: 26px; border: 0; border-radius: 8px; background: transparent;
  color: var(--gf-muted); display: grid; place-items: center; font-size: 17px; cursor: pointer; opacity: .55; }
.gf-alerta:hover .gf-alerta-x, .gf-alerta-x:focus-visible { opacity: 1; }
.gf-alerta-x:hover { background: var(--gf-grid); color: var(--gf-text); }
.gf-alerta.ascunsa { opacity: 0; transform: scale(.96); }
.gf-alerte-arata { grid-column: 1 / -1; justify-self: start; border: 0; background: none; padding: 0; font-size: 12.5px; color: var(--gf-muted); cursor: pointer; }
.gf-alerte-arata:hover { color: var(--gf-teal); }
.gf-alerte.doar-buton { margin-bottom: 14px; }
@media (max-width: 575.98px) { .gf-alerte { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .gf-alerta-link { padding: 12px 30px 12px 12px; gap: 10px; } .gf-alerta-ic { flex-basis: 32px; height: 32px; font-size: 15px; } }
.fp-alert-success { background: var(--gf-success-soft); border-color: var(--gf-success-line); color: #054f31; }
.fp-alert-danger  { background: var(--gf-danger-soft);  border-color: var(--gf-danger-line);  color: #912018; }
.fp-alert-warning { background: var(--gf-warning-soft); border-color: var(--gf-warning-line); color: #93370d; }
.fp-alert-info    { background: var(--gf-info-soft);    border-color: var(--gf-info-line);    color: #194185; }
[data-bs-theme="dark"] .fp-alert-success { background: rgba(16,185,129,.12); border-color: rgba(16,185,129,.3); color: #6ee7b7; }
[data-bs-theme="dark"] .fp-alert-danger  { background: rgba(239,68,68,.12);  border-color: rgba(239,68,68,.3);  color: #fca5a5; }
[data-bs-theme="dark"] .fp-alert-warning { background: rgba(245,158,11,.12); border-color: rgba(245,158,11,.3); color: #fcd34d; }
[data-bs-theme="dark"] .fp-alert-info    { background: rgba(59,130,246,.12); border-color: rgba(59,130,246,.3); color: #93c5fd; }

/* ── UTILITIES ───────────────────────────────────────────────────────────── */
.text-success { color: var(--gf-success) !important; }
.text-danger  { color: var(--gf-danger) !important; }
.text-warning { color: var(--gf-warning) !important; }
.text-muted   { color: var(--gf-muted) !important; }
[data-bs-theme="dark"] .text-success { color: #34d399 !important; }
[data-bs-theme="dark"] .text-danger  { color: #f87171 !important; }
[data-bs-theme="dark"] .text-warning { color: #fbbf24 !important; }
.fw-500 { font-weight: 500; }
.fw-600 { font-weight: 600; }
.fw-700 { font-weight: 700; }
.fw-800 { font-weight: 800; }
.mono { font-family: inherit; font-variant-numeric: tabular-nums; letter-spacing: .01em; } /* coduri, date, IBAN: cifre egale, nu font tehnic */
.chart-container { position: relative; width: 100%; }
.tabular { font-variant-numeric: tabular-nums; }

.pill-uber  { display: inline-flex; align-items: center; gap: 5px; background: var(--gf-surface-3); color: #111827; border: 1px solid var(--gf-border); padding: 1px 8px; border-radius: 999px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.pill-uber::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #111827; }
.pill-bolt  { display: inline-flex; align-items: center; gap: 5px; background: var(--gf-success-soft); color: var(--gf-success); border: 1px solid var(--gf-success-line); padding: 1px 8px; border-radius: 999px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.pill-bolt::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #17b26a; }
.pill-flota { background: var(--gf-teal-soft); color: var(--gf-ink); padding: 2px 8px; border-radius: 6px; font-size: 11px; font-weight: 600; }
[data-bs-theme="dark"] .pill-uber { background: #f1f5f9; color: #0b1220; }

.gf-empty-icon {
  width: 64px; height: 64px; border-radius: 18px; display: grid; place-items: center;
  font-size: 28px; color: var(--gf-warning); background: rgba(245, 158, 11, .12);
}
.gf-plan { border: 1px solid var(--gf-border); border-radius: var(--gf-radius); padding: 16px; height: 100%; background: var(--gf-surface); }
.gf-plan-rec { border-color: var(--gf-teal); box-shadow: var(--gf-ring); }
.gf-plan-cur { background: var(--gf-surface-2); }

/* căutare globală */
.gf-rezultat { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-bottom: 1px solid var(--gf-border-2); text-decoration: none; color: var(--gf-text); }
.gf-rezultat:hover { background: var(--gf-surface-2); color: var(--gf-text); }
.gf-rezultat-icon { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: var(--gf-teal-soft); color: var(--gf-teal); flex: 0 0 36px; }

/* paginare */
.pagination { --bs-pagination-color: var(--gf-muted); --bs-pagination-bg: var(--gf-surface); --bs-pagination-border-color: var(--gf-border);
  --bs-pagination-active-bg: var(--gf-teal); --bs-pagination-active-border-color: var(--gf-teal); --bs-pagination-hover-bg: var(--gf-surface-3);
  --bs-pagination-focus-box-shadow: var(--gf-ring); }

/* dropdown, modal, progress */
.dropdown-menu { border-radius: 12px; border-color: var(--gf-border); padding: 6px; --bs-dropdown-bg: var(--gf-surface); --bs-dropdown-link-color: var(--gf-text); }
.dropdown-item { border-radius: 8px; font-size: 13.5px; padding: 7px 10px; }
.dropdown-item:active, .dropdown-item:focus { background: var(--gf-teal); color: #fff; }
.modal-content { border-radius: 16px; border: 0; box-shadow: var(--gf-shadow-lg); background: var(--gf-surface); }
.progress { background: var(--gf-surface-3); }

/* ── DARK MODE: culori inline vechi din module ──────────────────────────── */
[data-bs-theme="dark"] [style*="background:#fff;"], [data-bs-theme="dark"] [style*="background:#ffffff"],
[data-bs-theme="dark"] [style*="background: #fff"] { background: var(--gf-surface) !important; }
[data-bs-theme="dark"] [style*="background:#f8fafc"], [data-bs-theme="dark"] [style*="background:#f0f4f8"],
[data-bs-theme="dark"] [style*="background:#f1f5f9"], [data-bs-theme="dark"] [style*="background:#f8f8f8"],
[data-bs-theme="dark"] [style*="background:#f0f9ff"], [data-bs-theme="dark"] [style*="background:#f0fdf6"] { background: var(--gf-surface-2) !important; }
[data-bs-theme="dark"] [style*="background:#ecfdf5"], [data-bs-theme="dark"] [style*="background:#d1fae5"] { background: rgba(16,185,129,.14) !important; }
[data-bs-theme="dark"] [style*="background:#fef2f2"] { background: rgba(239,68,68,.14) !important; }
[data-bs-theme="dark"] [style*="background:#eff6ff"] { background: rgba(59,130,246,.14) !important; }
[data-bs-theme="dark"] [style*="background:#fffbeb"], [data-bs-theme="dark"] [style*="background:#fef3c7"] { background: rgba(245,158,11,.14) !important; }
[data-bs-theme="dark"] [style*="color:#0f2744"], [data-bs-theme="dark"] [style*="color:#1a1a1a"],
[data-bs-theme="dark"] [style*="color:#333"], [data-bs-theme="dark"] [style*="color:#374151"] { color: var(--gf-text) !important; }
[data-bs-theme="dark"] [style*="border:2px dashed #ccc"] { border-color: var(--gf-border) !important; }

/* ── LOGIN ───────────────────────────────────────────────────────────────── */
.fp-login-page {
  min-height: 100vh; padding: 24px;
  display: flex; align-items: center; justify-content: center;
  /* cerneală + caroiaj fin, ca o hartă de dispecerat */
  background-color: #0b1a33;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 48px 48px;
}
.fp-login-card {
  background: #fff; color: var(--gf-ink);
  border-radius: 20px; padding: 40px 36px;
  width: 100%; max-width: 420px;
  box-shadow: 0 30px 80px rgba(0,0,0,.45);
}
.fp-login-logo { text-align: center; margin-bottom: 28px; }
.fp-login-logo-title { font-size: 26px; font-weight: 800; color: var(--gf-navy); }
.fp-login-logo-sub { font-size: 12px; color: #5f6f84; margin-top: 8px; }
.fp-login-card a { color: #2140d4; }
.fp-login-card .btn-primary { background: #0b1a33; border-color: #0b1a33; }
.fp-login-card .btn-primary:hover { background: #1c2c4c; border-color: #1c2c4c; }
.fp-login-title { font-size: 20px; font-weight: 700; letter-spacing: -.02em; margin: 18px 0 0; color: var(--bs-emphasis-color); }

/* ── RESPONSIVE ──────────────────────────────────────────────────────────── */
@media (max-width: 991.98px) {
  .fp-sidebar { transform: translateX(-105%); box-shadow: var(--gf-shadow-lg); }
  .fp-sidebar.open { transform: translateX(0); }
  .fp-backdrop.show { display: block; position: fixed; inset: 0; background: rgba(8, 15, 28, .5); z-index: 1035; backdrop-filter: blur(2px); }
  .fp-topbar { left: 0; padding: 0 12px; }
  .fp-main { margin-left: 0; padding: calc(var(--gf-topbar-h) + 16px) 16px 32px; }
}
@media (max-width: 767.98px) {
  .fp-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px; }
  .fp-kpi { padding: 12px 14px; }
  .fp-kpi-value { font-size: 19px; }
  .fp-card-header, .fp-card-body { padding-left: 14px; padding-right: 14px; }
  .fp-table th, .fp-table td { padding: 9px 10px; }
  .fp-page-title { font-size: 14.5px; }
  .fp-main .d-flex.justify-content-between.align-items-center.mb-4 { flex-wrap: wrap; gap: 10px; }
}

/* ── PRINT ───────────────────────────────────────────────────────────────── */
@media print {
  .fp-sidebar, .fp-topbar, .fp-backdrop, .btn, .fp-search, form .btn { display: none !important; }
  .fp-main { margin: 0 !important; padding: 0 !important; }
  .fp-card, .fp-kpi { box-shadow: none; break-inside: avoid; }
  body { background: #fff; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* ── DASHBOARD v4 ─────────────────────────────────────────────────────────── */
.gf-dash-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 20px; }
.gf-salut { font-size: 1.6rem; font-weight: 800; letter-spacing: -.025em; margin: 0 0 2px; }
.gf-chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 10px; background: var(--gf-surface); border: 1px solid var(--gf-border); font-size: 12.5px; color: var(--gf-muted); font-weight: 500; }
.gf-h2 { font-size: 15px; font-weight: 700; margin: 0; letter-spacing: -.01em; }
.fw-650 { font-weight: 650; }
.gf-onboard { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding: 22px 26px; border-radius: var(--gf-radius);
  color: #fff; background: radial-gradient(600px 200px at 0% 0%, rgba(59,130,246,.45), transparent 70%), linear-gradient(135deg, var(--gf-navy), var(--gf-navy-3)); }
.gf-onboard p { color: rgba(255,255,255,.75); }

.gf-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(186px, 1fr)); gap: 14px; margin-bottom: 20px; }
.gf-kpi { position: relative; overflow: hidden; background: var(--gf-surface); border: 1px solid var(--gf-border); border-radius: var(--gf-radius);
  padding: 16px 16px 12px 70px; box-shadow: var(--gf-shadow-sm); display: flex; flex-direction: column; }
.gf-kpi-ic { --c: var(--gf-teal); position: absolute; left: 16px; top: 16px; width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center;
  font-size: 19px; color: var(--c); background: color-mix(in srgb, var(--c) 12%, transparent); }
.gf-profit-box .gf-kpi-ic { position: static; flex: 0 0 42px; }
.gf-kpi-l { font-size: 12.5px; color: var(--gf-muted); font-weight: 500; }
.gf-kpi-v { font-size: clamp(19px, 1.6vw, 24px); font-weight: 800; letter-spacing: -.03em; line-height: 1.2; margin: 2px 0 4px; white-space: nowrap; }
.gf-kpi-v small { font-size: 15px; color: var(--gf-muted); font-weight: 600; }
.gf-delta { display: block; font-size: 11.5px; color: var(--gf-muted); font-weight: 500; }
.gf-delta.up { color: var(--gf-success); } .gf-delta.down { color: var(--gf-danger); }
.gf-delta .bi { margin-right: 2px; }
.gf-spark { display: block; width: 100%; height: 28px; margin-top: auto; padding-top: 8px; box-sizing: content-box; }
.gf-bar { height: 6px; border-radius: 4px; background: var(--gf-surface-3); margin-top: 8px; overflow: hidden; }
.gf-kpi .gf-bar { margin-top: auto; margin-bottom: 11px; }
.gf-bar span { display: block; height: 100%; border-radius: 4px; background: linear-gradient(90deg, #22c55e, #16a34a); }

.gf-dash-grid { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 20px; align-items: start; }
.gf-dash-main > .fp-card, .gf-dash-side > .fp-card { margin-bottom: 20px; }
.gf-evol { display: grid; grid-template-columns: minmax(0, 1fr) 260px; }
.gf-evol-chart { padding: 20px; min-width: 0; }
.gf-evol-side { padding: 20px; border-left: 1px solid var(--gf-border-2); }
.gf-profit-box { display: flex; gap: 12px; align-items: center; padding: 14px; border-radius: 12px; background: var(--gf-surface-2); border: 1px solid var(--gf-border-2); }
.gf-donut-wrap { display: flex; gap: 14px; align-items: center; }
.gf-donut { position: relative; width: 112px; height: 112px; flex: 0 0 112px; }
.gf-donut canvas { width: 112px !important; height: 112px !important; }
.gf-donut-c { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; line-height: 1.15; }
.gf-donut-c b { font-size: 14px; font-weight: 800; } .gf-donut-c span { font-size: 11px; color: var(--gf-muted); }
.gf-legend { list-style: none; padding: 0; margin: 0; font-size: 12.5px; display: grid; gap: 6px; flex: 1; }
.gf-legend li { display: flex; align-items: center; gap: 7px; }
.gf-legend i { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 9px; }
.gf-legend b { margin-left: auto; }

.gf-tabs { display: flex; gap: 4px; flex-wrap: wrap; }
.gf-tabs button { border: 0; background: none; padding: 4px 2px; margin-right: 12px; font-size: 13px; color: var(--gf-muted); font-weight: 500; border-bottom: 2px solid transparent; }
.gf-tabs button span { font-size: 11px; background: var(--gf-surface-3); border-radius: 10px; padding: 0 6px; margin-left: 2px; }
.gf-tabs button[aria-selected=true] { color: var(--gf-teal); border-bottom-color: var(--gf-teal); }
.gf-car { display: flex; align-items: center; gap: 10px; color: var(--gf-text); text-decoration: none; }
.gf-car:hover { color: var(--gf-teal); }
.gf-car b { display: block; font-size: 13px; } .gf-car small { display: block; color: var(--gf-muted); font-size: 11.5px; }
.gf-car-ic { width: 36px; height: 36px; flex: 0 0 36px; border-radius: 10px; display: grid; place-items: center; background: var(--gf-surface-3); color: var(--gf-muted); font-size: 16px; }
.gf-car-ic.sm { width: 32px; height: 32px; flex-basis: 32px; font-size: 14px; }
.gf-stare { display: inline-block; padding: 3px 9px; border-radius: 20px; font-size: 11.5px; font-weight: 600; white-space: nowrap; }
.gf-stare-success { background: var(--gf-success-soft); color: var(--gf-success); }
.gf-stare-info    { background: var(--gf-teal-soft); color: var(--gf-teal); }
.gf-stare-warning { background: color-mix(in srgb, var(--gf-warning) 14%, transparent); color: #92400e; }
.gf-stare-danger  { background: color-mix(in srgb, var(--gf-danger) 12%, transparent); color: #b91c1c; }
[data-bs-theme="dark"] .gf-stare-warning { color: #fbbf24; } [data-bs-theme="dark"] .gf-stare-danger { color: #f87171; }
.gf-stare-muted   { background: var(--gf-surface-3); color: var(--gf-muted); }

.gf-top { display: flex; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--gf-border-2); }
.gf-top:last-child { border-bottom: 0; }
.gf-top b { font-size: 13px; }
.gf-top .gf-bar { margin: 6px 0 4px; height: 5px; }
.gf-top .gf-bar span { background: var(--gf-ink); }
.gf-top-av { width: 34px; height: 34px; flex: 0 0 34px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: 13px; color: var(--gf-signal); background: var(--gf-ink); }

.gf-big { font-size: 13px; color: var(--gf-muted); margin-bottom: 8px; } .gf-big b { font-size: 20px; color: var(--gf-text); font-weight: 800; }
.gf-lista { list-style: none; padding: 0; margin: 0 0 10px; }
.gf-lista li a { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--gf-border-2); color: var(--gf-text); text-decoration: none; }
.gf-lista li:last-child a { border-bottom: 0; }
.gf-lista li a:hover b { color: var(--gf-teal); }
.gf-lista b { font-size: 13px; display: block; } .gf-lista small { color: var(--gf-muted); font-size: 11.5px; max-width: 170px; }
.gf-dot { margin-left: auto; font-size: 11px; font-weight: 600; white-space: nowrap; display: inline-flex; align-items: center; gap: 5px; color: var(--gf-muted); }
.gf-dot::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.gf-dot-success { color: var(--gf-success); } .gf-dot-info { color: var(--gf-teal); } .gf-dot-warning { color: var(--gf-warning); } .gf-dot-danger { color: var(--gf-danger); }
.gf-act-ic { width: 32px; height: 32px; flex: 0 0 32px; border-radius: 50%; display: grid; place-items: center; font-size: 14px; }
.gf-act-danger { background: color-mix(in srgb, var(--gf-danger) 12%, transparent); color: #b91c1c; }
.gf-act-warning { background: color-mix(in srgb, var(--gf-warning) 14%, transparent); color: #92400e; }
[data-bs-theme="dark"] .gf-act-danger { color: #f87171; } [data-bs-theme="dark"] .gf-act-warning { color: #fbbf24; }
.gf-act-info { background: var(--gf-teal-soft); color: var(--gf-teal); }
.gf-act-data { margin-left: auto; font-size: 12px; color: var(--gf-muted); font-weight: 600; white-space: nowrap; }

.gf-integrari { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.gf-int { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 10px 6px; border: 1px solid var(--gf-border-2); border-radius: 10px; text-decoration: none; background: var(--gf-surface-2); }
.gf-int:hover { border-color: var(--gf-teal); }
.gf-int small { font-size: 10.5px; color: var(--gf-muted); }
.gf-int-logo { font-weight: 800; font-size: 16px; letter-spacing: -.02em; }
.gf-int-uber { color: var(--gf-text); } .gf-int-bolt { color: #15803d; } .gf-int-sb { color: #2563eb; font-size: 14px; } .gf-int-saga { color: #1e40af; font-size: 14px; }

.gf-cta { display: flex; align-items: center; gap: 12px; padding: 18px; border-radius: var(--gf-radius); text-decoration: none; color: #fff;
  background: radial-gradient(300px 140px at 100% 0%, rgba(96,165,250,.5), transparent 70%), linear-gradient(135deg, var(--gf-navy), #1e3a8a); }
.gf-cta:hover { color: #fff; filter: brightness(1.08); }
.gf-cta b { display: block; font-size: 15px; } .gf-cta span { font-size: 12.5px; color: rgba(255,255,255,.75); }
.gf-cta .bi { font-size: 28px; margin-left: auto; color: #93c5fd; }

@media (max-width: 1299.98px) { .gf-dash-grid { grid-template-columns: 1fr; } .gf-dash-side { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } .gf-dash-side > * { margin-bottom: 0 !important; } }
@media (max-width: 991.98px) { .gf-evol { grid-template-columns: 1fr; } .gf-evol-side { border-left: 0; border-top: 1px solid var(--gf-border-2); } }
@media (max-width: 767.98px) { .gf-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .gf-dash-side { grid-template-columns: 1fr; } .gf-salut { font-size: 1.3rem; }
  .gf-kpi { padding: 14px 12px 12px; min-height: 0; } .gf-kpi-ic { position: static; width: 34px; height: 34px; font-size: 16px; margin-bottom: 8px; } .gf-kpi-v { font-size: 20px; } .gf-spark { display: none; } }

/* ── CALENDAR TERMENE ─────────────────────────────────────────────────────── */
.gf-cal-filtre { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 14px; }
.gf-cal-filtru { --c: var(--gf-teal); display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: 20px; font-size: 12.5px; font-weight: 600; cursor: pointer;
  background: color-mix(in srgb, var(--c) 10%, transparent); color: color-mix(in srgb, var(--c) 62%, #000); border: 1px solid color-mix(in srgb, var(--c) 25%, transparent); user-select: none; }
[data-bs-theme="dark"] .gf-cal-filtru, [data-bs-theme="dark"] .gf-cal-ev { color: color-mix(in srgb, var(--c) 70%, #fff); }
.gf-cal-filtru input { display: none; }
.gf-cal-filtru:has(input:not(:checked)) { opacity: .4; }
.gf-cal-filtru b { font-weight: 800; }
.gf-cal { overflow: hidden; }
.gf-cal-cap, .gf-cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.gf-cal-cap div { padding: 10px 12px; font-size: 12px; font-weight: 600; color: var(--gf-muted); text-transform: uppercase; letter-spacing: .05em; border-bottom: 1px solid var(--gf-border-2); }
.gf-cal-zi { min-height: 112px; padding: 6px 7px 8px; border-right: 1px solid var(--gf-border-2); border-bottom: 1px solid var(--gf-border-2); display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.gf-cal-zi:nth-child(7n) { border-right: 0; }
.gf-cal-zi.gol { background: var(--gf-surface-2); }
.gf-cal-zi.wk { background: color-mix(in srgb, var(--gf-surface-2) 60%, transparent); }
.gf-cal-zi.trecut .gf-cal-nr { color: var(--gf-muted); }
.gf-cal-nr { font-size: 13px; font-weight: 700; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; }
.gf-cal-zi.azi .gf-cal-nr { background: var(--gf-teal); color: #fff; }
.gf-cal-ev { --c: var(--gf-teal); display: flex; align-items: center; gap: 5px; padding: 3px 7px; border-radius: 7px; font-size: 11.5px; font-weight: 600; text-decoration: none; min-width: 0;
  color: color-mix(in srgb, var(--c) 62%, #000); background: color-mix(in srgb, var(--c) 11%, transparent); border-left: 3px solid var(--c); }
.gf-cal-ev span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gf-cal-ev:hover { filter: brightness(.92); color: color-mix(in srgb, var(--c) 62%, #000); }
.gf-cal-ev.expirat { --c: var(--gf-danger); }
.gf-cal-mai { font-size: 11px; color: var(--gf-muted); padding-left: 4px; }
@media (max-width: 767.98px) { .gf-cal { display: none; } }

/* ── CRONOLOGIE MAȘINĂ ────────────────────────────────────────────────────── */
.gf-cron { list-style: none; margin: 0; padding: 0 0 0 4px; position: relative; }
.gf-cron::before { content: ""; position: absolute; left: 21px; top: 6px; bottom: 6px; width: 2px; background: var(--gf-border); }
.gf-cron > li { position: relative; display: flex; gap: 14px; padding: 0 0 16px; }
.gf-cron-dot { --c: var(--gf-muted); position: relative; z-index: 1; flex: 0 0 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; font-size: 15px;
  color: var(--c); background: var(--gf-surface); border: 2px solid color-mix(in srgb, var(--c) 45%, transparent); }
.gf-cron-body { flex: 1; min-width: 0; padding: 6px 12px; border-radius: 10px; background: var(--gf-surface-2); }
.gf-cron-venit .gf-cron-dot { --c: var(--gf-success); }
.gf-cron-service .gf-cron-dot { --c: var(--gf-teal); }
.gf-cron-cost .gf-cron-dot { --c: #ea580c; }
.gf-cron-amenda .gf-cron-dot { --c: var(--gf-danger); }
.gf-cron-termen .gf-cron-dot { --c: #7c3aed; }
.gf-cron-document .gf-cron-dot { --c: #475569; }
.gf-cron > li.viitor .gf-cron-body { background: transparent; border: 1px dashed var(--gf-border); }
.gf-recup { padding: 12px 14px; border-radius: 10px; border: 1px dashed color-mix(in srgb, var(--gf-danger) 35%, transparent); background: color-mix(in srgb, var(--gf-danger) 4%, transparent); }

/* Import: zona în care se trage fișierul */
.gf-drop { border:2px dashed var(--gf-border, #cbd5e1); border-radius:14px; padding:28px 16px; text-align:center; cursor:pointer; transition:border-color .15s, background .15s; }
.gf-drop:hover, .gf-drop:focus-visible { border-color:var(--gf-teal); outline:none; }
.gf-drop.peste { border-color:var(--gf-teal); background:rgba(37,99,235,.06); }
.gf-drop.incarc { opacity:.6; pointer-events:none; }

/* ── Accesibilitate (WCAG 2.2 AA) ─────────────────────────────────────────
   focus vizibil la tastatură, ținte de atingere de cel puțin 44px pe ecrane tactile,
   erori afișate lângă câmp, fără animații pentru cine le-a dezactivat din sistem */
:where(a, button, .btn, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid rgba(37, 99, 235, .55); outline-offset: 2px; box-shadow: none;
}
@media (pointer: coarse) {
  .btn, .form-control, .form-select, .page-link, .nav-link, .fp-nav-item { min-height: 44px; }
  .btn-sm, .btn-xs { min-height: 40px; min-width: 40px; display: inline-flex; align-items: center; justify-content: center; }
  .form-check-input { width: 1.35em; height: 1.35em; }
}
.gf-eroare-camp { display: block; margin-top: 4px; font-size: 12.5px; color: var(--gf-danger, #dc2626); }
.form-control.is-invalid, .form-select.is-invalid { border-color: var(--gf-danger, #dc2626); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* contrast: insignele galbene au text închis; butoanele contur roșu/verde, culori mai închise */
.badge.bg-warning { color: #3b2a00 !important; }
.btn-outline-danger  { --bs-btn-color: #b91c1c; --bs-btn-border-color: #dc2626; --bs-btn-hover-bg: #b91c1c; --bs-btn-hover-border-color: #b91c1c; }
.btn-outline-success { --bs-btn-color: #15803d; --bs-btn-border-color: #16a34a; --bs-btn-hover-bg: #15803d; --bs-btn-hover-border-color: #15803d; }
.btn-outline-warning { --bs-btn-color: #92400e; --bs-btn-border-color: #d97706; }
[data-bs-theme="dark"] .btn-outline-danger  { --bs-btn-color: #f87171; }
[data-bs-theme="dark"] .btn-outline-success { --bs-btn-color: #4ade80; }
[data-bs-theme="dark"] .btn-outline-warning { --bs-btn-color: #fbbf24; }


/* ==========================================================================
   Design System v4 — componente noi (reutilizabile în orice modul)
   ========================================================================== */

/* Antet de pagină: titlu, descriere, acțiuni (o singură acțiune principală) */
.gf-page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: var(--gf-s6); }
.gf-page-head h1 { font-size: var(--gf-fs-xl); font-weight: 600; letter-spacing: -.02em; margin: 0; line-height: 1.25; }
.gf-page-head p { margin: 4px 0 0; color: var(--gf-muted); font-size: var(--gf-fs); }
.gf-page-head .gf-page-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

/* Titluri de secțiune */
.gf-h2 { font-size: 15px; font-weight: 600; letter-spacing: -.01em; margin: 0; color: var(--gf-text); }
.gf-eyebrow { font-size: var(--gf-fs-xs); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--gf-muted-2); }

/* Filtre ca file (înlocuiesc cardurile care doar numără) */
.gf-filtre { display: flex; gap: 4px; flex-wrap: wrap; padding: 4px; background: var(--gf-surface-3); border: 1px solid var(--gf-border-2); border-radius: 10px; width: fit-content; max-width: 100%; }
.gf-filtre a, .gf-filtre button { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 7px; border: 0; background: transparent;
  font-size: var(--gf-fs-sm); font-weight: 600; color: var(--gf-muted); text-decoration: none; white-space: nowrap; min-height: 34px; }
.gf-filtre a:hover, .gf-filtre button:hover { color: var(--gf-text); }
.gf-filtre .activ, .gf-filtre [aria-selected="true"], .gf-filtre [aria-current="true"] { background: var(--gf-surface); color: var(--gf-text); box-shadow: var(--gf-shadow); }
.gf-filtre .n { font-size: 12px; font-weight: 500; color: var(--gf-muted); background: var(--gf-surface-3); border-radius: 999px; padding: 0 7px; }
.gf-filtre .activ .n, .gf-filtre [aria-selected="true"] .n { background: var(--gf-teal-soft); color: var(--gf-teal-dark); }
.gf-filtre .n.rau { background: var(--gf-danger-soft); color: var(--gf-danger); }

/* Bara de unelte de deasupra unui tabel: căutare + filtre + acțiuni */
.gf-toolbar { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; padding: 12px 16px; border-bottom: 1px solid var(--gf-border-2); }
.gf-toolbar .gf-cauta { position: relative; flex: 1 1 240px; max-width: 360px; }
.gf-toolbar .gf-cauta i { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--gf-muted-2); }
.gf-toolbar .gf-cauta input { padding-left: 36px; }

/* Bara de acțiuni fixă pentru formulare lungi: „Salvează" e mereu la vedere */
.gf-actiuni-fixe { position: sticky; bottom: 0; z-index: 20; display: flex; gap: 8px; justify-content: flex-end; align-items: center;
  margin: var(--gf-s6) 0 0; padding: 12px 16px; border-radius: var(--gf-radius);
  background: color-mix(in srgb, var(--gf-surface) 96%, transparent); border: 1px solid var(--gf-border); box-shadow: var(--gf-shadow-lg); }
.gf-actiuni-fixe .gf-nota { margin-right: auto; color: var(--gf-muted); font-size: var(--gf-fs-sm); }

/* Lista „De rezolvat" */
.gf-todo { list-style: none; margin: 0; padding: 0; }
.gf-todo li + li { border-top: 1px solid var(--gf-border-2); }
.gf-todo a { display: flex; align-items: center; gap: 12px; padding: 12px 20px; color: var(--gf-text-2); text-decoration: none; }
.gf-todo a:hover { background: var(--gf-surface-2); }
.gf-todo .nr { min-width: 34px; height: 26px; padding: 0 8px; border-radius: 999px; display: inline-grid; place-items: center; font-weight: 600; font-size: 13px;
  background: var(--c-soft); color: var(--c); border: 1px solid var(--c-line); font-variant-numeric: tabular-nums; }
.gf-todo .t { flex: 1; min-width: 0; }
.gf-todo .t b { display: block; font-weight: 600; color: var(--gf-text); font-size: var(--gf-fs); }
.gf-todo .t small { display: block; color: var(--gf-muted); font-size: var(--gf-fs-xs); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gf-todo .go { color: var(--gf-muted-2); }
.gf-todo a:hover .go { color: var(--gf-teal); }
.gf-todo .danger  { --c: var(--gf-danger);  --c-soft: var(--gf-danger-soft);  --c-line: var(--gf-danger-line); }
.gf-todo .warning { --c: var(--gf-warning); --c-soft: var(--gf-warning-soft); --c-line: var(--gf-warning-line); }
.gf-todo .info    { --c: var(--gf-info);    --c-soft: var(--gf-info-soft);    --c-line: var(--gf-info-line); }
.gf-todo .ok { padding: 16px 20px; color: var(--gf-success); font-weight: 500; display: flex; gap: 8px; align-items: center; }

/* Stare goală */
.gf-gol { text-align: center; padding: 40px 20px; color: var(--gf-muted); }
.gf-gol .bi { display: inline-grid; place-items: center; width: 48px; height: 48px; border-radius: 10px; font-size: 22px; color: var(--gf-muted);
  background: var(--gf-surface-3); border: 1px solid var(--gf-border); margin-bottom: 12px; }
.gf-gol h3 { font-size: var(--gf-fs-md); font-weight: 600; color: var(--gf-text); margin-bottom: 4px; }
.gf-gol p { margin: 0 auto 16px; max-width: 420px; }

/* Încărcare: schelet */
.gf-skel { display: block; border-radius: 6px; background: linear-gradient(90deg, var(--gf-surface-3) 25%, var(--gf-border-2) 37%, var(--gf-surface-3) 63%); background-size: 400% 100%; animation: gf-skel 1.3s ease infinite; min-height: 12px; }
@keyframes gf-skel { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }

/* Mesaj de succes ca toast (nu mai împinge conținutul); erorile rămân în pagină */
.fp-flash.fp-alert-success, .fp-flash.fp-alert-info {
  position: fixed; top: calc(var(--gf-topbar-h) + 14px); right: 20px; z-index: 1080; max-width: min(440px, calc(100vw - 32px));
  box-shadow: var(--gf-shadow-lg); background: var(--gf-surface); color: var(--gf-text-2); border: 1px solid var(--gf-border);
  padding: 14px 16px; animation: gf-toast .18s ease-out; align-items: flex-start;
}
.fp-flash.fp-alert-success > .bi:first-child { color: #17b26a; }
.fp-flash.fp-alert-info > .bi:first-child { color: var(--gf-info); }
.fp-flash.iese { opacity: 0; transform: translateY(-6px); transition: opacity .2s, transform .2s; }
@keyframes gf-toast { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

/* Paginare */
.pagination { --bs-pagination-border-color: var(--gf-border-input); --bs-pagination-color: var(--gf-text-2); --bs-pagination-active-bg: var(--gf-teal-soft);
  --bs-pagination-active-color: var(--gf-teal-dark); --bs-pagination-active-border-color: #b2ccff; --bs-pagination-border-radius: 8px; gap: 4px; }
.page-link { border-radius: 8px !important; min-width: 36px; text-align: center; }

/* Modale și meniuri derulante */
.modal-content { border: 1px solid var(--gf-border); border-radius: 12px; box-shadow: var(--gf-shadow-lg); }
.modal-header { border-bottom-color: var(--gf-border-2); padding: 18px 24px; }
.modal-header .modal-title { font-size: var(--gf-fs-md); font-weight: 600; }
.modal-body { padding: 20px 24px; }
.modal-footer { border-top-color: var(--gf-border-2); padding: 14px 24px; gap: 8px; }
.dropdown-menu { border: 1px solid var(--gf-border); border-radius: 10px; box-shadow: var(--gf-shadow-lg); padding: 6px; font-size: var(--gf-fs); }
.dropdown-item { border-radius: 6px; padding: 8px 10px; color: var(--gf-text-2); }
.dropdown-item:hover { background: var(--gf-surface-3); }

/* Celulă „mașină": număr + model pe un singur bloc, fără rupere */
.gf-car { display: flex; align-items: center; gap: 10px; color: var(--gf-text); text-decoration: none; min-width: 0; }
.gf-car b { display: block; font-weight: 600; font-size: var(--gf-fs); white-space: nowrap; letter-spacing: .01em; font-family: inherit; }
.gf-car small { display: block; color: var(--gf-muted); font-size: var(--gf-fs-xs); white-space: nowrap; }
.gf-car:hover b { color: var(--gf-teal); }
.gf-ok { color: var(--gf-muted); font-size: var(--gf-fs-sm); white-space: nowrap; }
.gf-ok .bi { color: #17b26a; }

/* Mobil: tabelele lungi devin carduri unde e marcat .gf-stiva */
@media (max-width: 767.98px) {
  .fp-main { padding: calc(var(--gf-topbar-h) + 16px) 16px 32px; }
  .gf-page-head { margin-bottom: var(--gf-s4); }
  .gf-page-head h1 { font-size: var(--gf-fs-lg); }
  .gf-page-head .gf-page-actions { width: 100%; }
  .gf-page-head .gf-page-actions .btn-primary { flex: 1; }
  .gf-actiuni-fixe { margin: var(--gf-s6) 0 0; padding: 10px 12px; }
  .gf-actiuni-fixe .gf-nota { display: none; }
  .gf-stiva thead { display: none; }
  .gf-stiva, .gf-stiva tbody, .gf-stiva tr, .gf-stiva td { display: block; width: 100%; }
  .gf-stiva tr { padding: 12px 16px; border-bottom: 1px solid var(--gf-border-2); }
  .gf-stiva td { border: 0; padding: 2px 0; height: auto; text-align: left !important; }
  .gf-stiva td[data-l]::before { content: attr(data-l) ": "; color: var(--gf-muted); font-size: var(--gf-fs-xs); }
  .gf-stiva td.gf-ascuns-mobil { display: none; }
}

/* ── Dashboard v4: centrul de comandă ─────────────────────────────────────── */
.gf-d-kpis { display: grid; grid-template-columns: 1.35fr repeat(3, minmax(0, 1fr)); gap: var(--gf-s4); margin-bottom: var(--gf-s6); }
.gf-d-kpi { background: var(--gf-surface); border: 1px solid var(--gf-border); border-radius: var(--gf-radius); padding: 20px; box-shadow: var(--gf-shadow-xs);
  display: flex; flex-direction: column; min-width: 0; }
.gf-d-l { font-size: var(--gf-fs-sm); font-weight: 500; color: var(--gf-muted); }
.gf-d-v { font-size: var(--gf-fs-xl); font-weight: 600; letter-spacing: -.025em; color: var(--gf-text); margin-top: 6px; line-height: 1.15; font-variant-numeric: tabular-nums; white-space: nowrap; }
.gf-d-v small { font-size: var(--gf-fs-md); font-weight: 500; color: var(--gf-muted-2); }
.gf-d-v.neg { color: var(--gf-danger); }
.gf-d-meta { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 8px; font-size: var(--gf-fs-xs); color: var(--gf-muted); }
.gf-d-meta .gf-delta { display: inline-flex; align-items: center; gap: 2px; padding: 1px 8px; border-radius: 999px; background: var(--gf-surface-3); font-weight: 500; font-size: 12px; }
.gf-d-meta .gf-delta.up { background: var(--gf-success-soft); color: var(--gf-success); }
.gf-d-meta .gf-delta.down { background: var(--gf-danger-soft); color: var(--gf-danger); }
.gf-d-sub { margin-top: auto; padding-top: 10px; font-size: var(--gf-fs-xs); color: var(--gf-muted); }
.gf-d-hero { background: var(--gf-surface); border-color: #d1e0ff; box-shadow: 0 0 0 4px var(--gf-teal-soft), var(--gf-shadow-xs); }
.gf-d-hero .gf-d-v { font-size: var(--gf-fs-2xl); }
.gf-d-hero .gf-spark { height: 36px; margin-top: auto; padding-top: 12px; }

.gf-d-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: var(--gf-s6); align-items: start; }
.gf-d-grid > .fp-card { margin-bottom: var(--gf-s6); }
.gf-d-insight { margin: 4px 0 0; font-size: var(--gf-fs-sm); color: var(--gf-muted); }
.gf-d-todo .fp-card-header { padding-bottom: 12px; }
.gf-d-todo .gf-todo { border-bottom: 1px solid var(--gf-border-2); }
.gf-d-urm { padding: 16px 20px 18px; }
.gf-d-urm .gf-lista { margin: 8px 0 10px; }
.gf-d-urm .gf-lista li a { padding: 8px 0; gap: 12px; }
.gf-d-urm .gf-act-data { order: -1; margin: 0; min-width: 42px; font-weight: 600; color: var(--gf-text-2); font-variant-numeric: tabular-nums; }

.gf-d-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gf-s6); }
.gf-d-grid3 > .fp-card { margin-bottom: 0; }
.gf-d-stack { display: flex; height: 10px; border-radius: 999px; overflow: hidden; background: var(--gf-surface-3); gap: 2px; }
.gf-d-stack span { display: block; height: 100%; }
.gf-d-legend { list-style: none; padding: 0; margin: 16px 0 0; display: grid; gap: 10px; }
.gf-d-legend li { display: flex; align-items: center; gap: 8px; font-size: var(--gf-fs); color: var(--gf-text-2); }
.gf-d-legend i { width: 8px; height: 8px; border-radius: 2px; flex: 0 0 8px; }
.gf-d-legend b { margin-left: auto; font-weight: 600; color: var(--gf-text); font-variant-numeric: tabular-nums; }
.gf-d-legend small { width: 38px; text-align: right; color: var(--gf-muted-2); font-variant-numeric: tabular-nums; }
.gf-d-note { margin: 14px 0 0; font-size: var(--gf-fs-xs); color: var(--gf-muted); display: flex; gap: 6px; align-items: center; }
.gf-d-imp { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--gf-border-2); font-size: var(--gf-fs); color: var(--gf-text-2); }
.gf-d-imp b { color: var(--gf-text); font-weight: 600; }
.gf-top .gf-bar { height: 6px; margin: 8px 0 6px; background: var(--gf-surface-3); }
.gf-top .gf-bar span, .gf-bar span { background: var(--gf-teal); }
.gf-top { padding: 12px 0; }
.gf-onboard { background: var(--gf-teal-soft); border: 1px solid #d1e0ff; color: var(--gf-text); border-radius: var(--gf-radius); padding: 20px 24px; }
.gf-onboard p { color: var(--gf-muted); }
.gf-stare { display: inline-flex; align-items: center; gap: 6px; padding: 2px 9px; border-radius: 999px; font-size: 12px; font-weight: 500; white-space: nowrap; border: 1px solid transparent; }
.gf-stare::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.gf-stare-success { background: var(--gf-success-soft); color: var(--gf-success); border-color: var(--gf-success-line); }
.gf-stare-info    { background: var(--gf-info-soft); color: var(--gf-info); border-color: var(--gf-info-line); }
.gf-stare-warning { background: var(--gf-warning-soft); color: var(--gf-warning); border-color: var(--gf-warning-line); }
.gf-stare-danger  { background: var(--gf-danger-soft); color: var(--gf-danger); border-color: var(--gf-danger-line); }
.gf-stare-muted   { background: var(--gf-surface-3); color: var(--gf-muted); border-color: var(--gf-border); }

@media (max-width: 1299.98px) {
  .gf-d-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gf-d-grid { grid-template-columns: 1fr; }
  .gf-d-grid3 { grid-template-columns: 1fr 1fr; }
  .gf-d-grid3 > .fp-card:first-child { grid-column: 1 / -1; }
}
@media (max-width: 767.98px) {
  .gf-d-kpis { gap: 10px; }
  .gf-d-kpi { padding: 14px; }
  .gf-d-hero { grid-column: 1 / -1; }
  .gf-d-v { font-size: var(--gf-fs-lg); }
  .gf-d-hero .gf-d-v { font-size: var(--gf-fs-xl); }
  .gf-d-grid3 { grid-template-columns: 1fr; gap: var(--gf-s4); }
  .gf-d-evol .fp-card-header { flex-direction: column; align-items: stretch; }
  /* pe telefon, „De rezolvat" vine imediat după indicatori */
  .gf-d-grid { display: flex; flex-direction: column; gap: 0; }
  .gf-d-todo { order: -1; }
}
.gf-d-grid { align-items: stretch; }
.gf-d-evol { display: flex; flex-direction: column; }
.gf-d-evol .fp-card-body { flex: 1; display: flex; }
.gf-d-evol .chart-container { height: auto !important; min-height: 260px; flex: 1; }
.gf-top { padding: 10px 0; }
@media (max-width: 767.98px) { .gf-d-evol .chart-container { min-height: 220px; } }
@media (max-width: 767.98px) {
  .gf-flota.gf-stiva tr { display: grid; grid-template-columns: 1fr 1fr auto; column-gap: 12px; row-gap: 2px; }
  .gf-flota.gf-stiva td:nth-child(1) { grid-column: 1 / 3; grid-row: 1; }
  .gf-flota.gf-stiva td:nth-child(3) { grid-column: 3; grid-row: 1; align-self: start; }
  .gf-flota.gf-stiva td:nth-child(2), .gf-flota.gf-stiva td:nth-child(7) { grid-column: 1 / -1; }
  .gf-flota.gf-stiva td:nth-child(4) { grid-column: 1; }
  .gf-flota.gf-stiva td:nth-child(6) { grid-column: 2 / -1; }
}
.gf-card-atentie { border-color: var(--gf-warning-line); box-shadow: 0 0 0 4px var(--gf-warning-soft); }


/* ==========================================================================
   Identitate v5 — „cerneală și semnal" (vezi docs/DESIGN.md)
   ========================================================================== */
h1, h2, h3, .gf-page-head h1, .fp-main h4.mb-0, .gf-h2, .fp-card-title, .modal-title { font-family: var(--gf-font-display); letter-spacing: -.02em; }
.gf-page-head h1, .fp-main > h4:first-child, .fp-main h4.mb-0 { font-size: 30px; font-weight: 650; letter-spacing: -.03em; }
.gf-h2, .fp-card-title { font-size: 17px; font-weight: 600; }
.fp-kpi-value, .gf-d-v, .kpi-value { font-family: var(--gf-font-display); font-weight: 650; letter-spacing: -.03em; }

/* butoane: acțiunea principală e cerneală; focus vizibil în cobalt */
.btn-primary {
  --bs-btn-bg: var(--gf-ink); --bs-btn-border-color: var(--gf-ink); --bs-btn-color: #fff;
  --bs-btn-hover-bg: var(--gf-ink-2); --bs-btn-hover-border-color: var(--gf-ink-2); --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: #050d1c; --bs-btn-active-border-color: #050d1c;
  --bs-btn-disabled-bg: var(--gf-ink); --bs-btn-disabled-border-color: var(--gf-ink);
  box-shadow: 0 1px 2px rgba(11,26,51,.2), inset 0 1px 0 rgba(255,255,255,.08);
}
.btn-primary .bi { color: var(--gf-signal); }
.btn-outline-primary { --bs-btn-color: var(--gf-ink); --bs-btn-border-color: var(--gf-border-input); --bs-btn-hover-bg: var(--gf-surface-3); --bs-btn-hover-color: var(--gf-ink); --bs-btn-hover-border-color: var(--gf-border-input); }
.form-check-input:checked { background-color: var(--gf-ink); border-color: var(--gf-ink); }
.form-control:focus, .form-select:focus { border-color: var(--gf-teal); }

/* sidebar: pastila activă în cerneală, cu semnalul verde-lămâie */
.fp-sidebar { background: var(--gf-surface-2); }
.fp-logo-sub { background: var(--gf-surface); border: 1px solid var(--gf-border); }
.fp-nav-item.active { background: var(--gf-ink); color: #fff; }
.fp-nav-item.active .fp-nav-icon { color: var(--gf-signal); }
.fp-nav-item.active::before { left: auto; right: 10px; top: 50%; bottom: auto; width: 6px; height: 6px; border-radius: 50%; transform: translateY(-50%); background: var(--gf-signal); }
.fp-nav-section { color: var(--gf-muted-2); }
.fp-nav-section::before { content: ""; display: inline-block; width: 10px; height: 2px; margin-right: 8px; vertical-align: middle; background: repeating-linear-gradient(90deg, var(--gf-muted-2) 0 4px, transparent 4px 6px); }

/* filtre: fila activă în cerneală */
.gf-filtre { background: var(--gf-surface-3); }
.gf-filtre .activ, .gf-filtre [aria-selected="true"], .gf-filtre [aria-current="true"] { background: var(--gf-ink); color: #fff; box-shadow: none; }
.gf-filtre .activ .n, .gf-filtre [aria-selected="true"] .n, .gf-filtre [aria-current="true"] .n { background: var(--gf-signal); color: var(--gf-ink); }

/* etichete de grup cu marcajul semnal */
.gf-eyebrow { color: var(--gf-muted); display: inline-flex; align-items: center; gap: 8px; }
.gf-eyebrow::before { content: ""; width: 8px; height: 8px; border-radius: 2px; background: var(--gf-signal); box-shadow: inset 0 0 0 1px rgba(11,26,51,.15); }

/* ── Plăcuța de înmatriculare — elementul de semnătură ─────────────────── */
.gf-placuta { display: inline-flex; align-items: stretch; height: 26px; border: 1.5px solid var(--gf-ink); border-radius: 5px; background: #fff;
  overflow: hidden; vertical-align: middle; box-shadow: 0 1px 0 rgba(11,26,51,.08); white-space: nowrap; text-decoration: none; }
.gf-placuta .ro { display: grid; place-items: end center; width: 15px; background: #1f45c4; color: #fff; font: 700 7px/1 var(--bs-body-font-family); padding-bottom: 3px; letter-spacing: .02em; }
.gf-placuta .ro::before { content: ""; position: absolute; }
.gf-placuta .nr { display: grid; place-items: center; padding: 0 8px; font: 700 13.5px/1 var(--gf-font-display); letter-spacing: .06em; color: var(--gf-ink); text-transform: uppercase; }
a.gf-placuta:hover { border-color: var(--gf-teal); }
a.gf-placuta:hover .nr { color: var(--gf-teal); }
.gf-placuta.mare { height: 38px; border-width: 2px; border-radius: 7px; }
.gf-placuta.mare .ro { width: 22px; font-size: 9px; }
.gf-placuta.mare .nr { font-size: 20px; padding: 0 12px; }
.gf-car-plate { display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
.gf-car-plate small { color: var(--gf-muted); font-size: var(--gf-fs-xs); white-space: nowrap; }

/* ── Dashboard: indicatorul principal pe panou de cerneală ─────────────── */
.gf-d-hero { background: var(--gf-ink); border-color: var(--gf-ink); color: #fff; box-shadow: var(--gf-shadow-lg); position: relative; overflow: hidden; }
.gf-d-hero::after { content: ""; position: absolute; right: -40px; top: 26px; width: 220px; height: 2px; opacity: .35;
  background: repeating-linear-gradient(90deg, var(--gf-signal) 0 18px, transparent 18px 30px); transform: rotate(-18deg); }
.gf-d-hero .gf-d-l { color: rgba(255,255,255,.72); }
.gf-d-hero .gf-d-v { color: #fff; font-size: 40px; }
.gf-d-hero .gf-d-v.neg { color: #ffb4ab; }
.gf-d-hero .gf-d-meta { color: rgba(255,255,255,.72); }
.gf-d-hero .gf-d-meta .gf-delta { background: rgba(255,255,255,.12); color: #fff; }
.gf-d-hero .gf-d-meta .gf-delta.up { background: var(--gf-signal); color: var(--gf-ink); }
.gf-d-hero .gf-d-meta .gf-delta.down { background: #ffb4ab; color: #4a0b05; }
.gf-d-hero .gf-spark polyline { stroke: var(--gf-signal); }
.gf-d-hero .gf-spark polygon { fill: var(--gf-signal); opacity: .14; }
.gf-d-kpi:not(.gf-d-hero) .gf-d-l::before { content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--gf-border-input); margin-right: 8px; vertical-align: middle; }
.gf-d-stack { height: 12px; }
.gf-top .gf-bar span, .gf-bar span { background: var(--gf-ink); }
.gf-top:first-child .gf-bar span { background: linear-gradient(90deg, var(--gf-ink) 0 70%, var(--gf-signal) 70%); }
.gf-todo .nr { font-family: var(--gf-font-display); }

/* toast: bara de semnal */
.fp-flash.fp-alert-success, .fp-flash.fp-alert-info { border-left: 4px solid var(--gf-signal); }
.fp-flash.fp-alert-success > .bi:first-child { color: var(--gf-signal-deep); }

/* KPI generale: un punct discret în loc de bare colorate */
.fp-kpi-label::before { content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--gf-border-input); margin-right: 8px; vertical-align: middle; }
.fp-kpi.kpi-success .fp-kpi-label::before { background: #17b26a; }
.fp-kpi.kpi-warning .fp-kpi-label::before { background: #f79009; }
.fp-kpi.kpi-danger .fp-kpi-label::before { background: #f04438; }
.fp-kpi.kpi-info .fp-kpi-label::before { background: var(--gf-teal); }

/* topbar */
.fp-topbar { background: color-mix(in srgb, var(--gf-bg) 92%, #fff); }
.fp-user-avatar { background: var(--gf-signal); color: var(--gf-ink); border-color: rgba(11,26,51,.12); }
.gf-d-sumar { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--gf-border-2); }
.gf-d-sumar > div { padding: 14px 20px; border-left: 1px solid var(--gf-border-2); }
.gf-d-sumar > div:first-child { border-left: 0; }
.gf-d-sumar span { display: block; font-size: var(--gf-fs-xs); color: var(--gf-muted); }
.gf-d-sumar b { font-family: var(--gf-font-display); font-size: 20px; font-weight: 650; letter-spacing: -.02em; color: var(--gf-text); }
.gf-top:first-child .gf-bar span { background: var(--gf-ink); }
.gf-d-evol .chart-container { min-height: 240px; }
@media (max-width: 767.98px) { .gf-d-sumar { grid-template-columns: 1fr 1fr; } .gf-d-sumar > div:nth-child(3) { border-left: 0; } .gf-d-sumar > div:nth-child(n+3) { border-top: 1px solid var(--gf-border-2); } }

/* Barlow: litere de indicator rutier; titlurile condensate respiră fără tracking negativ */
h1, h2, h3, .gf-page-head h1, .fp-main h4.mb-0, .gf-h2, .fp-card-title, .modal-title, .fp-kpi-value, .gf-d-v, .kpi-value, .gf-d-sumar b { letter-spacing: -.005em; }
.gf-page-head h1, .fp-main > h4:first-child, .fp-main h4.mb-0 { font-size: 32px; font-weight: 700; }
.gf-h2, .fp-card-title { font-size: 18px; font-weight: 600; }
.gf-d-hero .gf-d-v { font-size: 44px; font-weight: 700; }
.gf-d-v { font-size: 28px; font-weight: 700; }
.fp-table { font-size: 15px; }
.gf-placuta .nr { font-family: var(--gf-font-display); font-size: 15px; letter-spacing: .05em; }
.gf-placuta.mare .nr { font-size: 22px; }
.gf-placuta .ro { font-family: var(--bs-body-font-family); }
.btn { font-weight: 600; letter-spacing: .005em; }
.fp-nav-item { font-size: 15px; }
/* contrast (audit axe) */
.gf-filtre button[aria-selected="true"], .gf-filtre a.activ { color: #fff !important; }
.btn-outline-success { --bs-btn-color: #067647; --bs-btn-border-color: #079455; }
.gf-d-evol .chart-container { max-height: 340px; }
.gf-d-grid { align-items: start; }

/* ── Analitice SuperAdmin (platformă și vizitatori) ─────────────────────────── */
.an-nav{position:sticky;top:64px;z-index:5;background:var(--gf-bg);padding:8px 0 12px;margin-bottom:8px}
.an-sec{scroll-margin-top:130px;margin-bottom:34px}
.an-sec>h2{font-size:24px;margin:0 0 4px}
.an-sec>.lead{color:var(--gf-muted);margin:0 0 16px;font-size:15px}
.an-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:16px}
.an-kpi{background:#fff;border:1px solid var(--gf-border);border-radius:12px;padding:14px 16px;min-width:0}
.an-kpi .l{font-size:13px;color:var(--gf-muted);display:flex;gap:6px;align-items:center}
.an-kpi .l i{cursor:help;font-size:12px}
.an-kpi .v{font-family:var(--gf-font-display);font-size:26px;font-weight:700;line-height:1.15;margin-top:4px;white-space:nowrap}
.an-kpi .s{font-size:12.5px;color:var(--gf-muted);margin-top:2px}
.an-kpi.hero{background:var(--gf-ink);color:#fff;border-color:var(--gf-ink);grid-column:span 2}
.an-kpi.hero .l,.an-kpi.hero .s{color:#c9d1de}.an-kpi.hero .v{font-size:38px}
.an-up{color:#067647}.an-down{color:#b42318}.an-kpi.hero .an-up{color:var(--gf-signal)}.an-kpi.hero .an-down{color:#fda29b}
.an-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:16px;margin-bottom:16px}
.an-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}
#suport .an-grid2{align-items:start}
.an-grid>*,.an-grid2>*{min-width:0}
@media (max-width:1200px){.an-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:900px){.an-grid,.an-grid2{grid-template-columns:1fr}}
@media (max-width:560px){.an-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.an-kpi.hero{grid-column:span 2}}
.an-coh td,.an-coh th{text-align:center;font-variant-numeric:tabular-nums;padding:6px 8px;font-size:13px;white-space:nowrap}
.an-coh td:first-child,.an-coh th:first-child{text-align:left}
.an-bar{height:8px;background:var(--gf-surface-3,#efeee9);border-radius:6px;overflow:hidden}
.an-bar>span{display:block;height:100%;background:var(--gf-ink);border-radius:6px}
.an-palnie{display:flex;flex-direction:column;gap:10px}
.an-palnie .r{display:grid;grid-template-columns:150px 1fr 120px;gap:12px;align-items:center;font-size:14px}
.an-palnie .b{height:30px;border-radius:8px;background:var(--gf-ink);min-width:4px;color:#fff;display:flex;align-items:center;padding:0 10px;font-weight:600;font-variant-numeric:tabular-nums}
.an-scor{display:inline-block;min-width:42px;text-align:center;font-weight:700;border-radius:999px;padding:2px 8px;font-variant-numeric:tabular-nums}
.an-scor.success{background:#ecfdf3;color:#067647}.an-scor.warning{background:#fffaeb;color:#b54708}.an-scor.danger{background:#fef3f2;color:#b42318}
.an-def dt{font-weight:700;margin-top:10px}.an-def dd{margin:2px 0 0;color:var(--gf-text-2);font-size:14.5px}
.an-est{color:var(--gf-muted);font-size:12px}
.an-table th[data-sort]{cursor:pointer;user-select:none;white-space:nowrap}
.an-table th[data-sort]::after{content:" ↕";color:var(--gf-muted);font-size:11px}
