/**
 * leads.css - nur Leads-Spezifika (v0.1.0, Issue 884)
 *
 * Alle generischen Listen-Patterns (Layout, Hover, Empty, Loading,
 * Load-More, Pillen-Geometrie, Sortier-Indikatoren, Save-Animation,
 * Delete-Button, Two-Line-Cell, Zahlen-Cell, Action-Cell) kommen aus:
 *  - _shared/functions/list-view/grid-css/idf-list-grid.css
 *  - _shared/functions/inline-editing/idf-inline-edit.css
 *  - _shared/blocks/kanban/idf-kanban.css
 *
 * Hier bleiben ausschliesslich:
 *  - Spaltenbreiten (.ld-grid)
 *  - Status-/Klassen-Pillen-Farben (Leads-Domaene)
 *  - Karten-Innenleben des Pipeline-Boards
 *  - Responsive
 */

/* ================================================================ */
/* Grid: Spaltenbreiten                                              */
/* ================================================================ */
/* Spalten: Firma (1fr) - Ort - Quelle - Score - Klasse - Telefon -
   Status - Loeschen. Konvention: EINE 1fr-Spalte (Firma) nimmt den
   Restplatz, alle anderen sind fix. */

.ld-grid {
  display: grid;
  /* Breiten aus der CSS-Variable (col-resize-Baustein); Fallback = Defaults. */
  grid-template-columns: var(--ld-cols,
    minmax(220px, 1fr)  /* Firma (firma + Domain-Sub) - waechst */
    150px               /* Ort */
    120px               /* Quelle (Pille) */
    90px                /* Score (Zahl) */
    100px               /* Klasse (Pille) */
    150px               /* Telefon */
    140px               /* Status (Pille) */
    44px                /* Loeschen */
  );
  align-items: stretch;
  gap: 0;
}

/* Enum-Cells duerfen waehrend des Edits aufmachen, damit ein Combobox-Popup
   nicht abgeschnitten wird (is-editing setzt der Cell-Dispatcher). */
.idf-list-rows .idf-list-row .ld-grid > div.is-editing {
  overflow: visible;
}

/* Pen + Inhalt mit einheitlichem Abstand, falls die Cell direkt Host ist. */
.idf-list-rows .idf-list-row .ld-grid .idf-inline-edit-host {
  gap: 8px;
}

/* ================================================================ */
/* Status-Pille - Color-Modifier pro `status`                        */
/* ================================================================ */
/* Farb-Rollen der Pipeline: neu kommt herein (Info-Blau), angereichert hat
   der Agent bearbeitet (Indigo = Agenten-Farbe, Issue 180), in Bearbeitung
   liegt auf dem Tisch (Gelb), qualifiziert ist heiss (Orange), gewonnen ist
   die Bestaetigung (Confirm), verloren traegt Rot, uninteressant tritt
   neutral zurueck. */
.ld-status-pill[data-status="neu"]            { background: var(--tint-accent);  color: var(--accent); }
.ld-status-pill[data-status="angereichert"]   { background: var(--tint-indigo);  color: var(--indigo); }
.ld-status-pill[data-status="in_bearbeitung"] { background: var(--tint-yellow);  color: var(--yellow-text); }
.ld-status-pill[data-status="qualifiziert"]   { background: var(--tint-orange);  color: var(--orange-text); }
.ld-status-pill[data-status="gewonnen"]       { background: var(--tint-confirm); color: var(--confirm); }
.ld-status-pill[data-status="verloren"]       { background: var(--tint-red);     color: var(--red); }
.ld-status-pill[data-status="uninteressant"]  { background: var(--tint-neutral); color: var(--mid); }

/* ================================================================ */
/* Klassen-Pille - A ist gut, B ist mittel, C ist schwach            */
/* ================================================================ */
.ld-klasse-pill[data-klasse^="A"] { background: var(--tint-confirm); color: var(--confirm); }
.ld-klasse-pill[data-klasse^="B"] { background: var(--tint-orange);  color: var(--orange-text); }
.ld-klasse-pill[data-klasse^="C"] { background: var(--tint-neutral); color: var(--mid); }

/* Quelle: freier Import-Kanal ohne Farb-Semantik - neutral. */
.ld-quelle-pill { background: var(--tint-neutral); color: var(--mid); }

/* ================================================================ */
/* SalesViewer-Reiter: Link-Liste                                    */
/* ================================================================ */
.ld-sv-links-liste {
  overflow-wrap: anywhere;
}
.ld-sv-links-liste a { color: var(--accent); }

/* ================================================================ */
/* Pipeline-Board: Karten-Innenleben                                 */
/* ================================================================ */
/* Rahmen/Drop-Zonen/Spalten kommen aus idf-kanban.css; hier nur der
   Karteninhalt (cardRenderer in leads-pipeline.js). */
.ld-card-titel {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  font-weight: 600;
}
.ld-card-score {
  flex: none;
  color: var(--mid);
  font-variant-numeric: tabular-nums;
  font-weight: 400;
}
.ld-card-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
  min-width: 0;
}
.ld-card-ort {
  color: var(--mid);
  font-size: var(--font-xs2);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* Deckel-Zaehler im Spaltenkopf ("Top 50 von 926") */
.ld-col-deckel {
  color: var(--soft);
  font-size: var(--font-xs2);
  text-transform: none;
  letter-spacing: 0;
}

/* ================================================================ */
/* Responsive - Kanon 1100/600                                       */
/* ================================================================ */
@media (max-width: 1100px) {
  /* col-resize im Schmal-Layout inaktiv (Modul-Grid gewinnt hier). */
  .idf-colresize-layer { display: none; }
  .idf-colresize-scroll .idf-list-thead,
  .idf-colresize-scroll .idf-list-rows { width: auto; min-width: 0; }
}

/* Enger Desktop: schmale Spalten weg, es bleiben Firma - Score - Klasse -
   Status - Loeschen (fuenf sichtbare Zellen, fuenf Grid-Spuren).
   Die (min-width: 601px)-Klammer ist Pflicht: ohne sie fehlten Ort, Quelle
   und Telefon per display:none auch auf der Handy-Karte - dort entscheiden
   die data-m-Rollen. Zeilen-Scope wegen der Shared-Basisregel
   `.idf-list-rows .idf-list-row .idf-list-grid > div { display: flex }`. */
@media (max-width: 1100px) and (min-width: 601px) {
  .ld-grid {
    grid-template-columns:
      minmax(0, 1fr)   /* Firma */
      90px             /* Score */
      100px            /* Klasse */
      140px            /* Status */
      44px;            /* Loeschen */
  }
  .idf-list-rows .idf-list-row .ld-grid > .ld-cell-ort,
  .idf-list-rows .idf-list-row .ld-grid > .ld-cell-quelle,
  .idf-list-rows .idf-list-row .ld-grid > .ld-cell-telefon,
  #ld-thead .ld-grid > [data-sort="ort"],
  #ld-thead .ld-grid > [data-sort="quelle"],
  #ld-thead .ld-grid > [data-sort="telefon_allgemein"] {
    display: none;
  }
}
