/* Scoop3b Custom Styles */

:root {
  --scoop-brand: #2563eb;
  --scoop-brand-hover: #1d4ed8;
  --scoop-brand-subtle: #dbeafe;
  --scoop-sidebar-bg: #0f172a;
  --scoop-sidebar-text: #94a3b8;
  --scoop-sidebar-active: #e2e8f0;
  --scoop-sidebar-width: 240px;
  --scoop-score-high: #16a34a;
  --scoop-score-mid: #ca8a04;
  --scoop-score-low: #dc2626;
  --scoop-surface: #ffffff;
  --scoop-surface-hover: #f8fafc;
  --scoop-border: #e2e8f0;
  --scoop-text: #1e293b;
  --scoop-text-muted: #64748b;

  /* IN-07: Deal-Phase-Token (Foreground + Background) statt hardcoded
     Hex-Werte in .dealphase-*-Regeln. Neue Phasen brauchen nur ein
     :root- und ein [data-bs-theme="dark"]-Token-Tripel. */
  --scoop-dealphase-contact_made-fg:      #2563eb;
  --scoop-dealphase-contact_made-bg:      #dbeafe;
  --scoop-dealphase-response_received-fg: #0891b2;
  --scoop-dealphase-response_received-bg: #cffafe;
  --scoop-dealphase-negotiating-fg:       #ca8a04;
  --scoop-dealphase-negotiating-bg:       #fef3c7;
  --scoop-dealphase-offer_sent-fg:        #7c3aed;
  --scoop-dealphase-offer_sent-bg:        #ede9fe;
  --scoop-dealphase-accepted-fg:          #16a34a;
  --scoop-dealphase-accepted-bg:          #dcfce7;
  --scoop-dealphase-closed-fg:            #059669;
  --scoop-dealphase-closed-bg:            #d1fae5;
  --scoop-dealphase-aborted-fg:           #dc2626;
  --scoop-dealphase-aborted-bg:           #fee2e2;
  /* Fallback fuer unbekannte Phase (IN-04 defensive Whitelist). */
  --scoop-dealphase-unknown-fg:           #64748b;
  --scoop-dealphase-unknown-bg:           #f1f5f9;
}

[data-bs-theme="dark"] {
  --scoop-brand-subtle: #1e3a5f;
  --scoop-sidebar-bg: #020617;
  --scoop-surface: #0f172a;
  --scoop-surface-hover: #1e293b;
  --scoop-border: #334155;
  --scoop-text: #e2e8f0;
  --scoop-text-muted: #94a3b8;

  /* IN-07: Dark-Variants der Deal-Phase-Token. */
  --scoop-dealphase-contact_made-fg:      #93c5fd;
  --scoop-dealphase-contact_made-bg:      rgba(37, 99, 235, 0.2);
  --scoop-dealphase-response_received-fg: #67e8f9;
  --scoop-dealphase-response_received-bg: rgba(8, 145, 178, 0.2);
  --scoop-dealphase-negotiating-fg:       #fde68a;
  --scoop-dealphase-negotiating-bg:       rgba(202, 138, 4, 0.15);
  --scoop-dealphase-offer_sent-fg:        #c4b5fd;
  --scoop-dealphase-offer_sent-bg:        rgba(124, 58, 237, 0.2);
  --scoop-dealphase-accepted-fg:          #86efac;
  --scoop-dealphase-accepted-bg:          rgba(22, 163, 74, 0.2);
  --scoop-dealphase-closed-fg:            #6ee7b7;
  --scoop-dealphase-closed-bg:            rgba(5, 150, 105, 0.2);
  --scoop-dealphase-aborted-fg:           #fca5a5;
  --scoop-dealphase-aborted-bg:           rgba(220, 38, 38, 0.2);
  --scoop-dealphase-unknown-fg:           #94a3b8;
  --scoop-dealphase-unknown-bg:           rgba(100, 116, 139, 0.2);
}

/* Status Badges per UI-SPEC */
.status-badge { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; border-radius: 999px; font-size: 0.8125rem; font-weight: 500; white-space: nowrap; }
.status-badge .dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }

/* Workflow Status */
.status-new { color: #2563eb; background: #dbeafe; }
.status-new .dot { background: #2563eb; }
.status-researching { color: #7c3aed; background: #ede9fe; }
.status-researching .dot { background: #7c3aed; }
.status-no_contacts { color: #9333ea; background: #f3e8ff; }
.status-no_contacts .dot { background: #9333ea; }
.status-contacted { color: #0891b2; background: #cffafe; }
.status-contacted .dot { background: #0891b2; }
.status-negotiating { color: #ca8a04; background: #fef3c7; }
.status-negotiating .dot { background: #ca8a04; }
.status-won { color: #16a34a; background: #dcfce7; }
.status-won .dot { background: #16a34a; }
.status-lost { color: #dc2626; background: #fee2e2; }
.status-lost .dot { background: #dc2626; }
.status-no_go { color: #64748b; background: #f1f5f9; }
.status-no_go .dot { background: #64748b; }
.status-archived { color: #64748b; background: #f1f5f9; }
.status-archived .dot { background: #64748b; }

/* Dark mode status overrides */
[data-bs-theme="dark"] .status-new { color: #93c5fd; background: rgba(37,99,235,0.2); }
[data-bs-theme="dark"] .status-researching { color: #c4b5fd; background: rgba(124,58,237,0.2); }
[data-bs-theme="dark"] .status-no_contacts { color: #d8b4fe; background: rgba(147,51,234,0.2); }
[data-bs-theme="dark"] .status-contacted { color: #67e8f9; background: rgba(8,145,178,0.2); }
[data-bs-theme="dark"] .status-negotiating { color: #fcd34d; background: rgba(202,138,4,0.15); }
[data-bs-theme="dark"] .status-won { color: #86efac; background: rgba(22,163,74,0.2); }
[data-bs-theme="dark"] .status-lost { color: #fca5a5; background: rgba(220,38,38,0.2); }
[data-bs-theme="dark"] .status-no_go { color: #94a3b8; background: rgba(100,116,139,0.2); }
[data-bs-theme="dark"] .status-archived { color: #94a3b8; background: rgba(100,116,139,0.2); }

/* Domain Status Badges */
.domain-status-REG { color: #16a34a; background: #dcfce7; }
.domain-status-IN_RGP { color: #ca8a04; background: #fef3c7; }
.domain-status-FREE { color: #2563eb; background: #dbeafe; }
.domain-status-TRANSIT { color: #64748b; background: #f1f5f9; }

[data-bs-theme="dark"] .domain-status-REG { color: #86efac; background: rgba(22,163,74,0.2); }
[data-bs-theme="dark"] .domain-status-IN_RGP { color: #fcd34d; background: rgba(202,138,4,0.15); }
[data-bs-theme="dark"] .domain-status-FREE { color: #93c5fd; background: rgba(37,99,235,0.2); }
[data-bs-theme="dark"] .domain-status-TRANSIT { color: #94a3b8; background: rgba(100,116,139,0.2); }

/* --- Sidebar --- */
.sidebar {
  position: fixed; top: 0; left: 0; bottom: 0;
  width: var(--scoop-sidebar-width); background: var(--scoop-sidebar-bg);
  color: var(--scoop-sidebar-text); z-index: 1040;
  overflow-y: auto; transition: transform 0.25s ease;
  display: flex; flex-direction: column;
}
.sidebar-logo { padding: 1rem 1.25rem; font-size: 1.1rem; font-weight: 700; color: #fff; text-decoration: none; }
.sidebar-section { font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.08em; opacity: 0.5; padding: 1rem 1.25rem 0.35rem; }
.sidebar-nav { list-style: none; padding: 0; margin: 0; }
.sidebar-nav li a {
  display: flex; align-items: center; gap: 0.5rem;
  padding: 0.45rem 1.25rem; font-size: 0.85rem; color: var(--scoop-sidebar-text);
  text-decoration: none; transition: background 0.15s, color 0.15s;
}
.sidebar-nav li a:hover,
.sidebar-nav li a.active { color: var(--scoop-sidebar-active); background: rgba(255,255,255,0.1); }
.sidebar-nav li a .badge { margin-left: auto; }
.sidebar-backdrop { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.45); z-index: 1035; }

@media (max-width: 991.98px) {
  .sidebar { transform: translateX(-100%); }
  .sidebar.show { transform: translateX(0); }
  .sidebar-backdrop.show { display: block; }
  .app-content { margin-left: 0 !important; }
}

/* --- Topbar --- */
.topbar {
  position: sticky; top: 0; height: 56px; z-index: 1030;
  display: flex; align-items: center; padding: 0 1.5rem; gap: 0.75rem;
  background: var(--scoop-surface); border-bottom: 1px solid var(--scoop-border);
}
.topbar-title { font-size: 1rem; font-weight: 600; margin: 0; }
.topbar-right { margin-left: auto; display: flex; align-items: center; gap: 0.75rem; }
.sidebar-toggle { border: none; background: none; font-size: 1.25rem; color: var(--scoop-text); cursor: pointer; }

/* --- App Content --- */
.app-content { margin-left: var(--scoop-sidebar-width); min-height: 100vh; }
.app-body { padding: 1.5rem; }

/* --- Data Table --- */
.data-table { border: 1px solid var(--scoop-border); border-radius: 0.5rem; overflow: hidden; }
.data-table thead { background: var(--scoop-surface-hover); }
.data-table thead th {
  font-size: 0.7rem; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.04em; border-bottom: 2px solid var(--scoop-border);
  cursor: pointer; white-space: nowrap; user-select: none;
}
.data-table thead th .sort-icon { font-size: 0.6rem; opacity: 0.3; margin-left: 2px; }
.data-table thead th.sorted .sort-icon { opacity: 1; color: var(--scoop-brand); }
.data-table .table-footer {
  display: flex; align-items: center; justify-content: space-between;
  padding: 0.5rem 0.75rem; font-size: 0.8125rem; color: var(--scoop-text-muted);
  border-top: 1px solid var(--scoop-border);
}

/* --- Filter Card (UI-Design-Contract §9.5) --- */
.filter-card {
  border-color: var(--scoop-border);
}
.filter-card .form-label {
  font-size: 0.7rem; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.04em; color: var(--scoop-text-muted);
}

/* --- Phase-1 Status Badges (User/Activity) --- */
.status-active { color: #16a34a; background: #dcfce7; }
.status-active .dot { background: #16a34a; }
.status-inactive { color: #64748b; background: #f1f5f9; }
.status-inactive .dot { background: #64748b; }
.status-created { color: #16a34a; background: #dcfce7; }
.status-created .dot { background: #16a34a; }
.status-updated { color: #2563eb; background: #dbeafe; }
.status-updated .dot { background: #2563eb; }
.status-deleted { color: #dc2626; background: #fee2e2; }
.status-deleted .dot { background: #dc2626; }
.status-status_changed { color: #ca8a04; background: #fef3c7; }
.status-status_changed .dot { background: #ca8a04; }
.status-login { color: #0891b2; background: #cffafe; }
.status-login .dot { background: #0891b2; }
.status-logout { color: #64748b; background: #f1f5f9; }
.status-logout .dot { background: #64748b; }

[data-bs-theme="dark"] .status-active { color: #86efac; background: rgba(22,163,74,0.2); }
[data-bs-theme="dark"] .status-inactive { color: #94a3b8; background: rgba(100,116,139,0.2); }
[data-bs-theme="dark"] .status-created { color: #86efac; background: rgba(22,163,74,0.2); }
[data-bs-theme="dark"] .status-updated { color: #93c5fd; background: rgba(37,99,235,0.2); }
[data-bs-theme="dark"] .status-deleted { color: #fca5a5; background: rgba(220,38,38,0.2); }
[data-bs-theme="dark"] .status-status_changed { color: #fcd34d; background: rgba(202,138,4,0.15); }
[data-bs-theme="dark"] .status-login { color: #67e8f9; background: rgba(8,145,178,0.2); }
[data-bs-theme="dark"] .status-logout { color: #94a3b8; background: rgba(100,116,139,0.2); }

/* --- HTMX Indicator --- */
.htmx-indicator { display: none; }
.htmx-request .htmx-indicator,
.htmx-request.htmx-indicator { display: inline-block; }

/* --- Toast Container --- */
.toast-container { z-index: 1090; }

/* --- Login Card --- */
.login-card-wrapper { max-width: 400px; width: 100%; }

/* --- Link Brand (accent color for entity links & sort icons) --- */
.link-brand { color: var(--scoop-brand); }
.link-brand:hover { color: var(--scoop-brand-hover); }

/* --- Status Badge Small (dropdown/history context) --- */
.status-badge-sm { font-size: 0.75rem; }

/* --- Input Width Utilities --- */
.input-w-narrow { width: 80px; }
.input-w-medium { width: 200px; }

/* Editable field indicator */
.editable { cursor: pointer; }
.editable:hover { background: var(--scoop-surface-hover); border-radius: 4px; }
.editable .bi-pencil-square { opacity: 0; transition: opacity 0.15s; }
.editable:hover .bi-pencil-square { opacity: 1; }

/* ============================================================== */
/*  Phase 4 — Communication (Plan 04-07)                          */
/*  04-UI-SPEC §Zusatz-CSS — alle Klassen rein additiv.           */
/* ============================================================== */

/* Timeline-Item: User-Message Basis + System-Variante (D-20) */
.timeline-item { padding: 0.5rem 0; }
.timeline-item + .timeline-item { border-top: 1px solid var(--scoop-border); }

/* WR-08: Subject-Strong-Tag — Font-Size aus Inline-Style entfernt
   (feedback_no_inline_styles.md). */
.timeline-item-subject { font-size: 0.9375rem; }

.timeline-item-system {
    border-left: 3px solid #7c3aed;
    padding-left: 0.75rem;
    background: rgba(124, 58, 237, 0.04);
}
[data-bs-theme="dark"] .timeline-item-system {
    background: rgba(124, 58, 237, 0.12);
}
.timeline-item-system .message-content {
    font-style: italic;
    color: var(--scoop-text-muted);
}

/* Channel-Icon-Badges (04-UI-SPEC §Kanal-Farbung) */
.channel-icon {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8125rem;
    flex-shrink: 0;
}
.channel-icon-email    { color: #2563eb; background: #dbeafe; }
.channel-icon-phone    { color: #0891b2; background: #cffafe; }
.channel-icon-whatsapp { color: #16a34a; background: #dcfce7; }
.channel-icon-linkedin { color: #0a66c2; background: #e0f2fe; }
.channel-icon-note     { color: #64748b; background: #f1f5f9; }
.channel-icon-system   { color: #7c3aed; background: #ede9fe; }
[data-bs-theme="dark"] .channel-icon-email    { color: #93c5fd; background: rgba(37,99,235,0.2); }
[data-bs-theme="dark"] .channel-icon-phone    { color: #67e8f9; background: rgba(8,145,178,0.2); }
[data-bs-theme="dark"] .channel-icon-whatsapp { color: #86efac; background: rgba(22,163,74,0.2); }
[data-bs-theme="dark"] .channel-icon-linkedin { color: #7dd3fc; background: rgba(10,102,194,0.2); }
[data-bs-theme="dark"] .channel-icon-note     { color: #94a3b8; background: rgba(100,116,139,0.2); }
[data-bs-theme="dark"] .channel-icon-system   { color: #c4b5fd; background: rgba(124,58,237,0.2); }

/* Delivery-Status-Badges (UI-Contract §6.5) */
.delivery-sent      { color: #2563eb; background: #dbeafe; }
.delivery-sent .dot { background: #2563eb; }
.delivery-failed    { color: #dc2626; background: #fee2e2; }
.delivery-failed .dot { background: #dc2626; }
.delivery-delivered { color: #16a34a; background: #dcfce7; }
.delivery-delivered .dot { background: #16a34a; }
.delivery-bounced,
.delivery-complained { color: #dc2626; background: #fee2e2; }
.delivery-bounced .dot,
.delivery-complained .dot { background: #dc2626; }
.delivery-queued    { color: #64748b; background: #f1f5f9; }
.delivery-queued .dot { background: #64748b; }
[data-bs-theme="dark"] .delivery-sent      { color: #93c5fd; background: rgba(37,99,235,0.2); }
[data-bs-theme="dark"] .delivery-failed,
[data-bs-theme="dark"] .delivery-bounced,
[data-bs-theme="dark"] .delivery-complained { color: #fca5a5; background: rgba(220,38,38,0.2); }
[data-bs-theme="dark"] .delivery-delivered { color: #86efac; background: rgba(22,163,74,0.2); }
[data-bs-theme="dark"] .delivery-queued    { color: #94a3b8; background: rgba(100,116,139,0.2); }

/* Conversation-Status-Badges (D-24) */
.convstatus-open    { color: #2563eb; background: #dbeafe; }
.convstatus-open .dot    { background: #2563eb; }
.convstatus-waiting { color: #ca8a04; background: #fef3c7; }
.convstatus-waiting .dot { background: #ca8a04; }
.convstatus-closed  { color: #64748b; background: #f1f5f9; }
.convstatus-closed .dot  { background: #64748b; }
[data-bs-theme="dark"] .convstatus-open    { color: #93c5fd; background: rgba(37,99,235,0.2); }
[data-bs-theme="dark"] .convstatus-waiting { color: #fcd34d; background: rgba(202,138,4,0.15); }
[data-bs-theme="dark"] .convstatus-closed  { color: #94a3b8; background: rgba(100,116,139,0.2); }

/* Hard-Bouncer-Flag (D-11) */
.bounce-flag { color: #dc2626; background: #fee2e2; }
[data-bs-theme="dark"] .bounce-flag { color: #fca5a5; background: rgba(220,38,38,0.2); }

/* Rangy-Marker-Highlight (clientseitig gesetzt, D-23, Plan 04-03 Wave 3 G7) */
.rangy-marker {
    background-color: rgba(250, 204, 21, 0.35);
    border-radius: 2px;
    padding: 0 2px;
    font-weight: bold;
}
[data-bs-theme="dark"] .rangy-marker {
    background-color: rgba(250, 204, 21, 0.22);
}
/* Loesch-Button neben dem Marker (UAT-Gap G7). */
.rangy-marker-remove {
    color: var(--bs-danger);
    margin-left: 0.25rem;
    padding: 0 0.25rem;
    font-weight: bold;
    line-height: 1;
    text-decoration: none;
}
.rangy-marker-remove:hover {
    color: var(--bs-danger);
    opacity: 0.8;
}

/* ==============================================================
   Inline-Overlay-Modals (UI-Design-Contract §9.10)
   - Nicht-blockierend: Backdrop entfaellt, Klicks/Selektion gehen
     zur Seite dahinter durch.
   - Draggable: Header dient als Drag-Handle (siehe scoop-modals.js).
   ============================================================== */
.modal.show.d-block {
    pointer-events: none;
}
.modal.show.d-block .modal-dialog {
    pointer-events: auto;
    transition: none;
}
.modal.show.d-block .modal-content {
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.35);
}
.modal.show.d-block .modal-header,
.modal.show.d-block .modal-footer {
    border-color: var(--scoop-border);
}
.modal.show.d-block .modal-header {
    cursor: grab;
    user-select: none;
    touch-action: none;
}
.modal.show.d-block .modal-header.is-dragging {
    cursor: grabbing;
}
.modal.show.d-block .modal-header .btn-close {
    cursor: pointer;
}

/* Hilfsklasse zum Verbergen von Modal-Feldern (ersetzt style="display:none"). */
[data-hidden] { display: none; }

/* Template-Preview-Boxen (resources/views/templates/_preview_modal.php). */
.scoop-template-preview-box {
    background: var(--scoop-surface-hover);
}
.scoop-template-preview-body {
    white-space: pre-wrap;
    min-height: 10rem;
}

/* =============================================================
   Phase 5 — Deals (Plan 05-03)
   UI-SPEC §4.4 (Phasen-Badges) + §6.1 (Pipeline-Sektion-Header)
   ============================================================= */

/* 4.4 Deal-Phasen-Badges — CSS-Klassen-Namen folgen den DB-Werten in deals.phase
   (englisch, snake_case). Pattern verbatim spiegelt Domain-Status-Badges Z. 36-53.
   IN-07: Hex-Werte ziehen sich aus --scoop-dealphase-<phase>-fg/-bg-Tokens; neue
   Phasen brauchen nur ein neues Token-Tripel in :root + [data-bs-theme="dark"],
   keine Duplikate hier. */
.dealphase-contact_made      { color: var(--scoop-dealphase-contact_made-fg);      background: var(--scoop-dealphase-contact_made-bg); }
.dealphase-contact_made      .dot { background: var(--scoop-dealphase-contact_made-fg); }
.dealphase-response_received { color: var(--scoop-dealphase-response_received-fg); background: var(--scoop-dealphase-response_received-bg); }
.dealphase-response_received .dot { background: var(--scoop-dealphase-response_received-fg); }
.dealphase-negotiating       { color: var(--scoop-dealphase-negotiating-fg);       background: var(--scoop-dealphase-negotiating-bg); }
.dealphase-negotiating       .dot { background: var(--scoop-dealphase-negotiating-fg); }
.dealphase-offer_sent        { color: var(--scoop-dealphase-offer_sent-fg);        background: var(--scoop-dealphase-offer_sent-bg); }
.dealphase-offer_sent        .dot { background: var(--scoop-dealphase-offer_sent-fg); }
.dealphase-accepted          { color: var(--scoop-dealphase-accepted-fg);          background: var(--scoop-dealphase-accepted-bg); }
.dealphase-accepted          .dot { background: var(--scoop-dealphase-accepted-fg); }
.dealphase-closed            { color: var(--scoop-dealphase-closed-fg);            background: var(--scoop-dealphase-closed-bg); }
.dealphase-closed            .dot { background: var(--scoop-dealphase-closed-fg); }
.dealphase-aborted           { color: var(--scoop-dealphase-aborted-fg);           background: var(--scoop-dealphase-aborted-bg); }
.dealphase-aborted           .dot { background: var(--scoop-dealphase-aborted-fg); }
/* IN-04 / IN-08 fallback fuer unbekannte/neue Phasen — rendert neutral statt
   leer (ohne Style), bis ein passendes Token + Regel definiert ist. */
.dealphase-unknown           { color: var(--scoop-dealphase-unknown-fg);           background: var(--scoop-dealphase-unknown-bg); }
.dealphase-unknown           .dot { background: var(--scoop-dealphase-unknown-fg); }

/* 6.1 Pipeline-Sektion-Header (kollabierbarer Block-Header mit Caret + Badge + Counter) */
.pipeline-section-header {
    background: var(--scoop-surface-hover);
    border: 1px solid var(--scoop-border);
    border-radius: 0.375rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pipeline-section-header[aria-expanded="false"] .bi-caret-down-fill {
    transform: rotate(-90deg);
    transition: transform 0.15s ease-in-out;
}

.pipeline-section-header[aria-expanded="true"] .bi-caret-down-fill {
    transform: rotate(0deg);
    transition: transform 0.15s ease-in-out;
}

/* UI-REVIEW 2.1: Action-Spalte (Phase-Wechsel-Dropdown) in Pipeline-Tabelle.
   Minimale Breite, damit Domain/Kontakt/Geldfelder das Layout dominieren. */
.deals-col-actions {
    width: 1%;
    white-space: nowrap;
}

/* === End Phase 5 — Deals (Plan 05-03) === */

/* =============================================================
   Phase 5 — Plan 05-04 (Detail + Modals + Tasks-Polish)
   ============================================================= */

/* 4.5 Sensitive-Transition-Marker im Phase-Wechsel-Dropdown (D-16, UI-SPEC §4.5) */
.dropdown-item.sensitive .bi-shield-exclamation {
    color: var(--scoop-score-mid);
    margin-right: 8px;
}

/* 5.6 Sticky-Picker (Toggle-Group, UI-SPEC §5.6) */
.sticky-picker .btn[aria-pressed="true"] {
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);
}

.sticky-picker .bi-pin-fill.text-warning {
    color: var(--scoop-score-mid) !important;
}

.sticky-picker .bi-pin-fill.text-danger {
    color: var(--scoop-score-low) !important;
}

/* Reminder-Sticky-Indikator in Liste (UI-SPEC §5.6) */
.reminder-row .bi-pin-fill.sticky-1 {
    color: var(--scoop-score-mid);
}

.reminder-row .bi-pin-fill.sticky-3 {
    color: var(--scoop-score-low);
}

/* Topbar/Alert-Utility-Groessen (ersetzt Inline-Styles in layouts/main.php) */
.text-meta {
    font-size: 0.85rem;
}

.alert-compact {
    font-size: 0.875rem;
}

.btn-close-sm {
    font-size: 0.7rem;
}

/* Empty-state-Icon in Embed-Cards (ersetzt style="font-size:2rem" in
   _embed_card.php — feedback_no_inline_styles.md). */
.icon-2x {
    font-size: 2rem;
}

/* === End Phase 5 — Plan 05-04 (Detail + Modals + Tasks-Polish) === */

/* === Phase 5 / T9 — Autocomplete-Picker (Decisions D-T9-01..03) ===
   Reusable Server-side-Search-Picker. Gemeinsam mit:
     - resources/views/_partials/_autocomplete_picker.php  (Markup)
     - public/assets/js/scoop-autocomplete.js              (Behavior)
   Bootstrap-Variablen `--bs-primary` / `--bs-white` werden genutzt (keine
   Hardcoded-Hex-Werte, docs/ui-design-contract.md §Farben).
*/
.scoop-autocomplete-wrapper {
    position: relative;
}
.scoop-autocomplete-results {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1050;
    max-height: 300px;
    overflow-y: auto;
}
.scoop-autocomplete-results.show {
    display: block;
}
.scoop-autocomplete-option.active {
    background-color: var(--bs-primary);
    color: var(--bs-white);
}
/* === End Phase 5 / T9 === */

/* ==============================================================
   Phase 6 — Dashboard (Plan 06-05, UI-SPEC §"Layout Specifics"
   + §"Color → Status-Color Bindings")
   - 9 Domain-Status-Token (light + dark) analog .dealphase-<key>-
     Konvention (D-P6-32). Hex-Werte verbatim aus UI-SPEC Z. 120-128.
   - Component-Klassen: kpi-card / pipeline-row / pipeline-bar-track
     / pipeline-bar-fill / pipeline-count / empty-state-icon.
   - Bar-Color-Bindings: .pipeline-bar-fill.<kind>-<key> ueber CSS
     Custom Properties (kein hardcoded Hex in den Bar-Regeln).
   - Spacing-Werte ausschliesslich aus standard set {4,8,16,24,32,
     48,64} oder 0/100%/999px (border-radius pill).
   ============================================================== */

/* Phase-6 Domain-Status-Token — Light-Mode (UI-SPEC §Color Z. 120-128). */
:root {
    --scoop-domainstatus-new-fg:           #2563eb;
    --scoop-domainstatus-new-bg:           #dbeafe;
    --scoop-domainstatus-researching-fg:   #7c3aed;
    --scoop-domainstatus-researching-bg:   #ede9fe;
    --scoop-domainstatus-no_contacts-fg:   #9333ea;
    --scoop-domainstatus-no_contacts-bg:   #f3e8ff;
    --scoop-domainstatus-contacted-fg:     #0891b2;
    --scoop-domainstatus-contacted-bg:     #cffafe;
    --scoop-domainstatus-negotiating-fg:   #ca8a04;
    --scoop-domainstatus-negotiating-bg:   #fef3c7;
    --scoop-domainstatus-won-fg:           #16a34a;
    --scoop-domainstatus-won-bg:           #dcfce7;
    --scoop-domainstatus-lost-fg:          #dc2626;
    --scoop-domainstatus-lost-bg:          #fee2e2;
    --scoop-domainstatus-no_go-fg:         #64748b;
    --scoop-domainstatus-no_go-bg:         #f1f5f9;
    --scoop-domainstatus-archived-fg:      #64748b;
    --scoop-domainstatus-archived-bg:      #f1f5f9;
}

/* Phase-6 Domain-Status-Token — Dark-Mode-Variants (UI-SPEC §Color "Dark-fg"/"Dark-bg"). */
[data-bs-theme="dark"] {
    --scoop-domainstatus-new-fg:           #93c5fd;
    --scoop-domainstatus-new-bg:           rgba(37, 99, 235, 0.2);
    --scoop-domainstatus-researching-fg:   #c4b5fd;
    --scoop-domainstatus-researching-bg:   rgba(124, 58, 237, 0.2);
    --scoop-domainstatus-no_contacts-fg:   #d8b4fe;
    --scoop-domainstatus-no_contacts-bg:   rgba(147, 51, 234, 0.2);
    --scoop-domainstatus-contacted-fg:     #67e8f9;
    --scoop-domainstatus-contacted-bg:     rgba(8, 145, 178, 0.2);
    --scoop-domainstatus-negotiating-fg:   #fcd34d;
    --scoop-domainstatus-negotiating-bg:   rgba(202, 138, 4, 0.15);
    --scoop-domainstatus-won-fg:           #86efac;
    --scoop-domainstatus-won-bg:           rgba(22, 163, 74, 0.2);
    --scoop-domainstatus-lost-fg:          #fca5a5;
    --scoop-domainstatus-lost-bg:          rgba(220, 38, 38, 0.2);
    --scoop-domainstatus-no_go-fg:         #94a3b8;
    --scoop-domainstatus-no_go-bg:         rgba(100, 116, 139, 0.2);
    --scoop-domainstatus-archived-fg:      #94a3b8;
    --scoop-domainstatus-archived-bg:      rgba(100, 116, 139, 0.2);
}

/* KPI-Cards (UI-SPEC §"Drei-Zeilen-Grid" Zeile 1). */
.kpi-card { border-color: var(--scoop-border); }
.kpi-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--scoop-text-muted);
}
.kpi-value {
    font-size: 1.75rem;
    font-weight: 600;
    line-height: 1.2;
}
.kpi-sublabel {
    font-size: 0.75rem;
    font-weight: 400;
    color: var(--scoop-text-muted);
}

/* Pipeline-Bar-Widget (UI-SPEC §"Pipeline-Row"). */
.pipeline-row {
    display: grid;
    grid-template-columns: 160px 1fr 48px;
    align-items: center;
    gap: 16px;
    padding: 8px 4px;
    border-radius: 4px;
    text-decoration: none;
    color: inherit;
}
.pipeline-row:hover {
    background: var(--scoop-surface-hover);
    cursor: pointer;
}
.pipeline-bar-track {
    display: block;
    height: 8px;
    background: var(--scoop-border);
    border-radius: 999px;
    overflow: hidden;
}
.pipeline-bar-fill {
    display: block;
    height: 100%;
    border-radius: 999px;
    transition: width 200ms ease;
}
.pipeline-count {
    font-size: 0.75rem;
    font-variant-numeric: tabular-nums;
    font-weight: 400;
    text-align: right;
    color: var(--scoop-text);
}

/* Bar-Color-Bindings — 9 Domain-Status-Klassen (light+dark ueber Token). */
.pipeline-bar-fill.domainstatus-new          { background: var(--scoop-domainstatus-new-fg); }
.pipeline-bar-fill.domainstatus-researching  { background: var(--scoop-domainstatus-researching-fg); }
.pipeline-bar-fill.domainstatus-no_contacts  { background: var(--scoop-domainstatus-no_contacts-fg); }
.pipeline-bar-fill.domainstatus-contacted    { background: var(--scoop-domainstatus-contacted-fg); }
.pipeline-bar-fill.domainstatus-negotiating  { background: var(--scoop-domainstatus-negotiating-fg); }
.pipeline-bar-fill.domainstatus-won          { background: var(--scoop-domainstatus-won-fg); }
.pipeline-bar-fill.domainstatus-lost         { background: var(--scoop-domainstatus-lost-fg); }
.pipeline-bar-fill.domainstatus-no_go        { background: var(--scoop-domainstatus-no_go-fg); }
.pipeline-bar-fill.domainstatus-archived     { background: var(--scoop-domainstatus-archived-fg); }

/* Bar-Color-Bindings — 7 Deal-Phase-Klassen (Wiederverwendung Bestand-Token aus :root Z. 20-40). */
.pipeline-bar-fill.dealphase-contact_made      { background: var(--scoop-dealphase-contact_made-fg); }
.pipeline-bar-fill.dealphase-response_received { background: var(--scoop-dealphase-response_received-fg); }
.pipeline-bar-fill.dealphase-negotiating       { background: var(--scoop-dealphase-negotiating-fg); }
.pipeline-bar-fill.dealphase-offer_sent        { background: var(--scoop-dealphase-offer_sent-fg); }
.pipeline-bar-fill.dealphase-accepted          { background: var(--scoop-dealphase-accepted-fg); }
.pipeline-bar-fill.dealphase-closed            { background: var(--scoop-dealphase-closed-fg); }
.pipeline-bar-fill.dealphase-aborted           { background: var(--scoop-dealphase-aborted-fg); }

/* Empty-State-Icon (zentralisiert, UI-SPEC §"Error States" — ersetzt verstreute
   Inline-Styles aus feedback_no_inline_styles.md). */
.empty-state-icon {
    font-size: 2.5rem;
    color: var(--scoop-text-muted);
}

/* Custom-Range-Popover (D-P6-28, UI-SPEC §"Custom-Range-Popover").
   Sichtbarkeit via [hidden]-Attribut (data-scoop-action toggelt in scoop.js). */
.dashboard-custom-range-popover {
    z-index: 1050;
    min-width: 240px;
}

/* === End Phase 6 — Dashboard (Plan 06-05) === */
