/* swiss — Ergänzungen über dgfe-crm.css (nach diesem geladen).
   7 Pipeline-Status als Outline+Dot-Chips im Stil von .st-* (Solar-CRM). */

.st-in_kontakt          { background:#FFFFFF; color:#3F3F46; }
.st-in_kontakt::before  { background:#14B8A6; }            /* teal  */
.st-aufmass_erfolgt         { background:#FFFFFF; color:#3F3F46; }
.st-aufmass_erfolgt::before { background:#6366F1; }        /* indigo */
.st-stromdaten_angefragt         { background:#FFFFFF; color:#3F3F46; }
.st-stromdaten_angefragt::before { background:#0EA5E9; }   /* sky   */
.st-angebot_gesendet         { background:#FFFFFF; color:#3F3F46; }
.st-angebot_gesendet::before { background:#F59E0B; }       /* amber */
/* .st-gewonnen: kein eigener Block, erbt farbidentisch aus dgfe-crm.css (Kanon). */
/* .st-verloren: bewusste swiss-Abweichung (verloren = rot statt kanonisch grau). */
.st-verloren          { background:#FEF2F2; color:#B91C1C; }
.st-verloren::before  { background:#F43F5E; }              /* rose  */
.st-wiedervorlage          { background:#FFFBEB; color:#B45309; }
.st-wiedervorlage::before  { background:#A855F7; }         /* violet */
.st-uebergabe_sde          { background:#FFFFFF; color:#3F3F46; }
.st-uebergabe_sde::before  { background:#8B5CF6; }         /* violet, vor gewonnen */

/* Zeilen-Tönung für Endzustände (dezent, Farbe=Funktion) */
tr.row-gewonnen { background:#F6FEF9; }
tr.row-verloren { background:#FFFafa; }

/* roter Aktions-Punkt (offene Aktivität heute/überfällig) */
.dot-action { display:inline-block; width:.5rem; height:.5rem; border-radius:9999px;
  background:#EF4444; vertical-align:middle; }

/* ===== Pitch-Features ===== */

/* Lead-Score-Ampel */
.score { display:inline-flex; align-items:center; gap:.4rem; font-variant-numeric:tabular-nums;
  font-weight:600; font-size:.75rem; }
.score::before { content:""; width:.55rem; height:.55rem; border-radius:9999px; }
.score-hot::before  { background:#10B981; box-shadow:0 0 0 3px rgba(16,185,129,.15); }
.score-warm::before { background:#F59E0B; box-shadow:0 0 0 3px rgba(245,158,11,.15); }
.score-cold::before { background:#D4D4D8; }
.score-won::before  { background:#10B981; }

/* Dach-Skizze */
#roof-canvas { width:100%; height:240px; display:block; }

/* Foto-Lightbox */
#swiss-lightbox { position:fixed; inset:0; z-index:90; display:flex; align-items:center; justify-content:center; }
#swiss-lightbox.hidden { display:none; }
.swiss-lb-overlay { position:absolute; inset:0; background:rgba(9,9,11,.82); }
.swiss-lb-img { position:relative; max-width:90vw; max-height:88vh; border-radius:10px;
  box-shadow:0 24px 64px rgba(0,0,0,.5); }
.swiss-thumb { width:84px; height:84px; object-fit:cover; border-radius:8px; cursor:zoom-in;
  border:1px solid var(--c-line); transition:transform .12s; }
.swiss-thumb:hover { transform:scale(1.04); }

/* Cmd+K Command-Palette */
#swiss-palette { position:fixed; inset:0; z-index:95; }
#swiss-palette.hidden { display:none; }
.swiss-pal-overlay { position:absolute; inset:0; background:rgba(9,9,11,.45); backdrop-filter:blur(2px); }
.swiss-pal-box { position:relative; max-width:560px; margin:12vh auto 0; background:#fff;
  border-radius:14px; box-shadow:0 24px 64px rgba(0,0,0,.3); overflow:hidden; animation:dgfe-enter 150ms both; }
.swiss-pal-input { width:100%; border:0; border-bottom:1px solid var(--c-line); padding:1rem 1.1rem;
  font-size:1rem; outline:none; }
.swiss-pal-results { max-height:340px; overflow:auto; }
.swiss-pal-item { display:flex; justify-content:space-between; align-items:center; gap:1rem;
  padding:.7rem 1.1rem; cursor:pointer; border-left:2px solid transparent; }
.swiss-pal-item:hover, .swiss-pal-item.is-active { background:var(--c-surface-2); border-left-color:var(--dgfe-gold); }
.swiss-pal-status { font-size:.75rem; color:var(--c-muted); }
.swiss-pal-empty { padding:1rem 1.1rem; color:var(--c-muted); font-size:.875rem; }

/* PV-Live-Box */
#pv-live { transition:opacity .2s; }

/* Kanban */
.kanban { display:flex; gap:1rem; overflow-x:auto; padding-bottom:.5rem; }
.kanban-col { flex:0 0 280px; background:var(--c-surface-2); border:1px solid var(--c-line);
  border-radius:12px; padding:.6rem; min-height:120px; }
.kanban-col.drop-hot { outline:2px dashed var(--dgfe-gold); outline-offset:2px; }
.kanban-col-head { display:flex; align-items:center; justify-content:space-between;
  font-size:.8rem; font-weight:600; padding:.25rem .4rem .6rem; }
.kanban-card { background:#fff; border:1px solid var(--c-line); border-radius:10px; padding:.6rem .7rem;
  margin-bottom:.55rem; box-shadow:var(--sh-xs); cursor:grab; }
.kanban-card:active { cursor:grabbing; }
.kanban-card.dragging { opacity:.5; }

/* ROI / Stat */
.statbig { font-variant-numeric:tabular-nums; font-weight:700; letter-spacing:-.02em; }

/* Initialen-Avatar */
.avatar { display:inline-flex; align-items:center; justify-content:center; width:1.6rem; height:1.6rem;
  border-radius:9999px; background:var(--dgfe-gold); color:#fff; font-size:.62rem; font-weight:700;
  flex:none; letter-spacing:.02em; }
.avatar-sky  { background:#0EA5E9; } .avatar-emerald{ background:#10B981; }
.avatar-amber{ background:#F59E0B; } .avatar-violet { background:#8B5CF6; }

/* ===== Media-Galerie + Dropzone ===== */
.swiss-drop { display:block; border:2px dashed var(--c-line); border-radius:12px; padding:1.5rem;
  text-align:center; cursor:pointer; transition:border-color .15s, background .15s; background:var(--c-surface-2); }
.swiss-drop:hover { border-color:var(--c-faint); }
.swiss-drop.drag { border-color:var(--dgfe-gold); background:#fff; }
.swiss-drop-inner { pointer-events:none; }

.swiss-media { position:relative; border:1px solid var(--c-line); border-radius:10px; overflow:hidden;
  background:#fff; }
.swiss-media-thumb { display:flex; align-items:center; justify-content:center; width:100%; height:120px;
  object-fit:cover; background:var(--c-surface-2); cursor:zoom-in; }
img.swiss-media-thumb { object-fit:cover; }
.swiss-media-video { background:#0b1727; color:#fff; position:relative; cursor:pointer; }
.swiss-play { font-size:2rem; opacity:.9; }
.swiss-media-file { text-decoration:none; }
.swiss-media-meta { display:flex; align-items:center; justify-content:space-between; gap:.25rem;
  padding:.35rem .5rem; }
.swiss-media-del { border:0; background:transparent; color:var(--c-muted); font-size:1.1rem; line-height:1;
  cursor:pointer; padding:0 .2rem; }
.swiss-media-del:hover { color:var(--dgfe-danger-500); }
.swiss-media-name { font-size:.7rem; color:var(--c-muted); padding:0 .5rem .45rem; white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis; }

/* Lightbox-Video */
.swiss-lb-video { position:relative; max-width:90vw; max-height:88vh; border-radius:10px;
  box-shadow:0 24px 64px rgba(0,0,0,.5); background:#000; }

/* Aufnahme-Diagramm — Maß-Hervorhebung bei Fokus */
.dia { transition:fill .12s, stroke .12s, font-weight .12s; }
line.dia.dim-active { stroke:#18181B; stroke-width:2.2; }
rect.dia.dim-active, polygon.dia.dim-active { stroke:#18181B; stroke-width:2; fill:#dbe7f5; }
text.dia.dim-active { fill:#18181B; font-weight:700; }

/* ===== Visuelle Auswahl-Karten (Dachtyp/Eindeckung/Ausrichtung) ===== */
.pickrow { display:flex; flex-wrap:wrap; gap:.5rem; }
.pick { position:relative; cursor:pointer; display:block; }
.pick > input { position:absolute; inset:0; opacity:0; cursor:pointer; margin:0; }
.pick-card { display:flex; flex-direction:column; align-items:center; gap:.4rem; width:88px;
  padding:.65rem .4rem; border:1px solid var(--c-line); border-radius:10px; background:#fff;
  text-align:center; transition:border-color .12s, background .12s, box-shadow .12s; }
.pick:hover .pick-card { border-color:var(--c-faint); }
.pick > input:checked + .pick-card { border-color:#18181B; background:#F4F4F5; box-shadow:0 0 0 1.5px #18181B inset; }
.pick > input:focus-visible + .pick-card { box-shadow:var(--sh-focus); }
.pick-card svg { display:block; }
.pick-label { font-size:.72rem; font-weight:600; color:var(--c-ink-soft); line-height:1.15; }
.pick-swatch { width:38px; height:26px; border-radius:5px; border:1px solid rgba(0,0,0,.12); }
.pick-sw-blech { background:linear-gradient(135deg,#cbd0d6,#9aa0a8,#cbd0d6); }
.pick-sw-sandwich { background:repeating-linear-gradient(0deg,#e5e7eb 0 4px,#cfd3da 4px 8px); }
.pick-sw-bitumen { background:#3a3f46; }
.pick-sw-kunststoff { background:#eef0f3; }
.pick-sw-eternit { background:repeating-linear-gradient(45deg,#b8b3ad 0 5px,#a39e98 5px 10px); }

/* ===== Picker Pro-Polish (überschreibt Basis) ===== */
.pickrow { gap:.6rem; }
.pick-card { position:relative; width:106px; min-height:96px; justify-content:center; padding:.85rem .5rem .7rem;
  box-shadow:0 1px 2px rgba(26,23,20,.05); }
.pick:hover .pick-card { border-color:#a1a1aa; transform:translateY(-1px); box-shadow:0 4px 10px rgba(26,23,20,.09); }
.pick > input:checked + .pick-card { border-color:#18181B; background:#fff;
  box-shadow:0 0 0 2px #18181B, 0 6px 14px rgba(26,23,20,.12); }
.pick > input:checked + .pick-card::after { content:"✓"; position:absolute; top:-8px; right:-8px;
  width:20px; height:20px; background:#18181B; color:#fff; border-radius:9999px; font-size:11px;
  font-weight:700; display:flex; align-items:center; justify-content:center; box-shadow:0 1px 3px rgba(0,0,0,.25); }
.pick-card svg { height:34px; width:auto; }
.pick-label { font-size:.73rem; white-space:normal; word-break:normal; line-height:1.2; max-width:96px; }
.pick-swatch { width:44px; height:30px; border-radius:6px; box-shadow:inset 0 0 0 1px rgba(0,0,0,.06); }
/* Picker-Gruppe: dezente Section-Optik */
.pick-group + .pick-group { margin-top:1.1rem; }
.pick-group > .label { color:#52525B; }

/* ============================================================================
   PREMIUM-PASS (swiss) — neue Chip-Familien + dezente Politur.
   Rein additiv, swiss.css lädt zuletzt. Ruhige Farbwelt aus den Semantik-Tokens,
   Amber bleibt der einzige warme Akzent. Respektiert prefers-reduced-motion.
   ============================================================================ */

/* -- Status-Punkte der swiss-Pipeline: feiner Halo wie bei .score (Tiefe) -- */
.st::before{ box-shadow:0 0 0 2.5px rgba(24,24,27,.05); }

/* -- Gemeinsame Pill-Basis für die neuen Domänen-Chips ---------------------- */
.prov-offen,.prov-abgerechnet,.prov-exportiert,
.out-offen,.out-erledigt,.out-uebersprungen,
.stufe-hot,.stufe-warm,.stufe-kalt{
  display:inline-flex; align-items:center; gap:.375rem;
  padding:.1875rem .5rem; border-radius:var(--r-sm);
  font-size:.6875rem; font-weight:600; letter-spacing:.02em;
  white-space:nowrap; line-height:1.1; }

/* -- Provisions-Status (offen/abgerechnet/exportiert) — Fluss zu "fertig" --- */
.prov-offen      { background:var(--dgfe-warning-50); color:var(--dgfe-warning-700); }
.prov-abgerechnet{ background:var(--dgfe-info-50);    color:var(--dgfe-info-700); }
.prov-exportiert { background:var(--dgfe-success-50); color:var(--dgfe-success-700); }

/* -- Outreach-Status (offen/erledigt/übersprungen) — dezent, listentauglich - */
.out-offen       { background:var(--dgfe-n-100); color:var(--dgfe-n-600); }
.out-erledigt    { background:var(--dgfe-success-50); color:var(--dgfe-success-700); }
.out-uebersprungen{ background:var(--dgfe-n-50);  color:var(--dgfe-n-500); }

/* -- Lead-Stufe als Dot-Chip (hot/warm/kalt) — spiegelt die .score-Ampel ---- */
.stufe-hot,.stufe-warm,.stufe-kalt{
  background:#FFFFFF; color:var(--dgfe-n-700);
  border:1px solid var(--dgfe-n-200); }
.stufe-hot::before,.stufe-warm::before,.stufe-kalt::before{
  content:""; width:.45rem; height:.45rem; border-radius:9999px; flex:none; }
.stufe-hot::before  { background:#10B981; box-shadow:0 0 0 3px rgba(16,185,129,.15); }
.stufe-warm::before { background:#F59E0B; box-shadow:0 0 0 3px rgba(245,158,11,.15); }
.stufe-kalt::before { background:#D4D4D8; }

/* -- Übergabe-SDE-Chip: bestehende .st-uebergabe_sde bekommt gleichen Halo -- */
.st-uebergabe_sde::before{ box-shadow:0 0 0 3px rgba(139,92,246,.14); }

/* -- Media-Thumbs: minimal edlere Hover-Elevation --------------------------- */
.swiss-thumb{ box-shadow:var(--sh-xs); }
.swiss-thumb:hover{ box-shadow:var(--sh-md); }
