/* ============================================================
   CARETTA — DB Parteneri (CRM) — sistem premium-business
   Pe tokenii din variables.css (ca marketing.css / expozoare.css).
   Înlocuiește stilul inline din renderCrmGrid (app.js).
   ============================================================ */

/* ---- KPI responsive (azi 5 carduri rămân pe un rând și pe tabletă) ---- */
#view-crm .kpi-cards { flex-wrap: wrap; gap: var(--sp-3); }
#view-crm .kpi-cards .kpi-card { min-width: 168px; }
@media (max-width: 1100px) { #view-crm .kpi-cards .kpi-card { flex: 1 1 30%; } }
@media (max-width: 720px)  { #view-crm .kpi-cards .kpi-card { flex: 1 1 45%; min-width: 140px; } }

/* ---- Filtre: pile premium (peste .slicer-btn din panou) ---- */
#crm-filter-panel .crm-fg-chips .slicer-btn {
    padding: 6px 13px;
    border-radius: var(--r-pill);
    font-size: var(--fs-small);
    font-weight: 600;
}

/* ---- Grid carduri ---- */
#crm-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(330px, 1fr));
    gap: var(--sp-4);
}

/* ---- Card partener ---- */
.crmx-card {
    display: flex;
    flex-direction: column;
    gap: var(--sp-3);
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle);
    border-left: 3px solid var(--border-subtle);
    border-radius: var(--r-lg);
    box-shadow: var(--elev-1);
    padding: var(--sp-4) var(--sp-5);
    transition: box-shadow .15s ease, transform .15s ease, border-color .15s ease;
}
.crmx-card:hover { box-shadow: var(--elev-2); transform: translateY(-2px); }
.crmx-card.is-active   { border-left-color: var(--signal-on-track); }
.crmx-card.is-inactive { border-left-color: var(--border-strong); }

/* ---- Antet ---- */
.crmx-head { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--sp-3); }
.crmx-head-main { min-width: 0; flex: 1; }
.crmx-name {
    margin: 0;
    font-size: var(--fs-h3);
    font-weight: 800;
    color: var(--text-strong);
    line-height: 1.2;
    letter-spacing: -0.2px;
}
.crmx-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
.crmx-chip {
    font-size: var(--fs-eyebrow);
    font-weight: 700;
    letter-spacing: .02em;
    padding: 2px 9px;
    border-radius: var(--r-pill);
    background: var(--caretta-navy-50);
    color: var(--caretta-navy);
    white-space: nowrap;
}
.crmx-chip--soft { background: var(--bg-subtle); color: var(--text-soft); }
.crmx-head-side { display: flex; flex-direction: column; align-items: flex-end; gap: 7px; flex: 0 0 auto; }

/* ---- Pastilă status (semafor) ---- */
.crmx-status {
    font-size: var(--fs-eyebrow);
    font-weight: 800;
    letter-spacing: .03em;
    padding: 3px 10px;
    border-radius: var(--r-pill);
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.crmx-status.is-active   { background: rgba(16,185,129,.12); color: var(--signal-on-track); }
.crmx-status.is-inactive { background: var(--bg-subtle); color: var(--text-soft); }
.crmx-status.is-prospect { background: var(--caretta-navy-50); color: var(--caretta-navy); }

/* ---- Badge scor sănătate (Faza 2; clasele pregătite) ---- */
.crmx-score {
    font-size: var(--fs-eyebrow);
    font-weight: 800;
    padding: 3px 9px;
    border-radius: var(--r-pill);
    cursor: help;
    border: 0;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.crmx-score.s-success { background: rgba(16,185,129,.12); color: var(--signal-on-track); }
.crmx-score.s-watch   { background: rgba(245,158,11,.12); color: var(--signal-watch); }
.crmx-score.s-action  { background: rgba(239,68,68,.12);  color: var(--signal-action); }

/* ---- Acțiuni ---- */
.crmx-actions { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.crmx-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 1px solid var(--border-strong);
    background: var(--bg-surface);
    color: var(--text-default);
    border-radius: var(--r-sm);
    padding: 5px 11px;
    font-size: var(--fs-eyebrow);
    font-weight: 800;
    cursor: pointer;
    transition: all .15s ease;
}
.crmx-btn:hover { border-color: var(--caretta-navy); color: var(--caretta-navy); background: var(--bg-subtle); }
.crmx-btn--anaf:hover { border-color: var(--signal-on-track); color: var(--signal-on-track); }

/* ---- Linie cheie (info esențiale mereu vizibile) ---- */
.crmx-key {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    font-size: var(--fs-small);
    color: var(--text-soft);
    padding-bottom: var(--sp-3);
    border-bottom: 1px solid var(--border-subtle);
}
.crmx-key span { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
.crmx-key i { color: var(--signal-info); font-size: .85em; }
.crmx-key a { color: var(--caretta-navy); text-decoration: none; }
.crmx-key .crmx-key-strong { color: var(--text-default); font-weight: 600; }

/* ---- Bandă conformitate (avertizări — apar doar cele aprinse) ---- */
.crmx-flags { display: flex; flex-wrap: wrap; gap: 6px; }
.crmx-flag {
    font-size: var(--fs-eyebrow);
    font-weight: 700;
    padding: 2px 9px;
    border-radius: var(--r-pill);
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.crmx-flag.f-alert { background: var(--caretta-red-soft); color: var(--caretta-red); }
.crmx-flag.f-watch { background: rgba(245,158,11,.14); color: var(--signal-watch); }
.crmx-flag.f-ok { background: rgba(16,185,129,.12); color: var(--signal-on-track); }
.crmx-verify {
    border: 1px solid var(--signal-on-track);
    background: var(--bg-surface);
    color: var(--signal-on-track);
    cursor: pointer;
    font-family: inherit;
    transition: all .15s ease;
}
.crmx-verify:hover { background: var(--signal-on-track); color: #fff; }
.crmx-verify:disabled { opacity: .6; cursor: default; }

/* toggle „Necesită validare" activ */
#crm-filter-needsval.active {
    background: var(--caretta-navy);
    border-color: var(--caretta-navy);
    color: #fff;
}

/* ---- Metrici primare ---- */
.crmx-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--sp-2) var(--sp-4);
}
.crmx-metric { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.crmx-metric.span2 { grid-column: 1 / -1; }
.crmx-metric-l {
    font-size: var(--fs-eyebrow);
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--text-soft);
    font-weight: 600;
}
.crmx-metric-v {
    font-size: var(--fs-body);
    font-weight: 700;
    color: var(--text-strong);
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}
.crmx-metric.is-alert .crmx-metric-v { color: var(--signal-action); }
.crmx-bo.has { color: #7c3aed; }

/* trend pill (YoY) */
.crmx-diff {
    font-size: var(--fs-eyebrow);
    font-weight: 800;
    padding: 1px 7px;
    border-radius: var(--r-pill);
    white-space: nowrap;
}
.crmx-diff.up  { background: rgba(16,185,129,.12); color: var(--signal-on-track); }
.crmx-diff.down{ background: rgba(239,68,68,.12);  color: var(--signal-action); }
.crmx-diff.new { background: rgba(124,58,237,.12); color: #7c3aed; }

/* ---- Detaliu consolidat (un singur <details>) ---- */
.crmx-details { border-top: 1px solid var(--border-subtle); padding-top: var(--sp-2); }
.crmx-details > summary {
    cursor: pointer;
    list-style: none;
    color: var(--caretta-navy);
    font-size: var(--fs-small);
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 2px 0;
}
.crmx-details > summary::-webkit-details-marker { display: none; }
.crmx-details > summary::after { content: '\f078'; font-family: 'Font Awesome 6 Free'; font-weight: 900; font-size: .7em; margin-left: auto; transition: transform .15s; }
.crmx-details[open] > summary::after { transform: rotate(180deg); }
.crmx-sub { display: flex; flex-direction: column; gap: var(--sp-2); margin-top: var(--sp-3); }
.crmx-block {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: var(--sp-3);
    background: var(--bg-surface-hover);
    border: 1px solid var(--border-subtle);
    border-radius: var(--r-md);
}
.crmx-block-h {
    font-size: var(--fs-eyebrow);
    text-transform: uppercase;
    letter-spacing: .04em;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.crmx-block-h.anaf { color: var(--signal-info); }
.crmx-block-h.bitrix { color: #9333ea; }
.crmx-row {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    font-size: var(--fs-small);
    color: var(--text-soft);
}
.crmx-row strong { color: var(--text-default); text-align: right; font-weight: 700; }

/* ---- Badge-uri antet (scor + status) ---- */
.crmx-head-badges { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.expo-score-why { cursor: pointer; }
.expo-score-why:hover { filter: brightness(0.97); }

/* ---- Explainer scor (modal „de ce acest scor") ---- */
.score-x-overlay {
    position: fixed; inset: 0; z-index: 12500;
    background: rgba(15,23,42,.55);
    display: flex; align-items: flex-start; justify-content: center;
    padding: 40px 16px; overflow: auto;
}
.score-x-dialog {
    position: relative;
    background: var(--bg-surface);
    border-radius: var(--r-lg);
    box-shadow: var(--elev-3);
    width: 100%; max-width: 480px;
    padding: var(--sp-5) var(--sp-5) var(--sp-4);
    display: flex; flex-direction: column; gap: var(--sp-3);
}
.score-x-close {
    position: absolute; top: 10px; right: 12px;
    border: 0; background: transparent; cursor: pointer;
    font-size: 1.5rem; line-height: 1; color: var(--text-soft);
}
.score-x-close:hover { color: var(--text-strong); }
.score-x-head { display: flex; align-items: center; gap: var(--sp-3); }
.score-x-score {
    font-size: 1.7rem; font-weight: 900; letter-spacing: -1px;
    border-radius: var(--r-md); padding: 8px 12px; min-width: 78px; text-align: center;
}
.score-x-score small { font-size: .8rem; font-weight: 700; opacity: .7; }
.score-x-score.s-success { background: rgba(16,185,129,.12); color: var(--signal-on-track); }
.score-x-score.s-watch   { background: rgba(245,158,11,.12); color: var(--signal-watch); }
.score-x-score.s-action  { background: rgba(239,68,68,.12);  color: var(--signal-action); }
.score-x-title { font-size: var(--fs-h3); font-weight: 800; color: var(--text-strong); }
.score-x-sub { font-size: var(--fs-small); color: var(--text-soft); margin-top: 2px; }
.score-x-intro { font-size: var(--fs-small); color: var(--text-soft); margin: 0; line-height: 1.45; }
.score-x-row { display: flex; flex-direction: column; gap: 4px; }
.score-x-row-h { display: flex; justify-content: space-between; font-size: var(--fs-small); color: var(--text-default); }
.score-x-row-h strong { color: var(--text-strong); font-variant-numeric: tabular-nums; }
.score-x-bar { height: 7px; background: var(--bg-subtle); border-radius: var(--r-pill); overflow: hidden; }
.score-x-bar > span { display: block; height: 100%; border-radius: var(--r-pill); transition: width .2s; }
.score-x-metrics {
    font-size: var(--fs-small); color: var(--text-soft); line-height: 1.6;
    padding: var(--sp-3); background: var(--bg-surface-hover);
    border: 1px solid var(--border-subtle); border-radius: var(--r-md);
}
.score-x-metrics strong { color: var(--text-strong); }
.score-x-warns { display: flex; flex-direction: column; gap: 6px; }
.score-x-warn {
    font-size: var(--fs-small); font-weight: 600;
    padding: 7px 11px; border-radius: var(--r-md);
    background: rgba(245,158,11,.12); color: var(--signal-watch);
    display: flex; align-items: center; gap: 7px;
}
.score-x-warn.crit { background: var(--caretta-red-soft); color: var(--caretta-red); }
.score-x-foot {
    font-size: var(--fs-eyebrow); color: var(--text-faint);
    border-top: 1px solid var(--border-subtle); padding-top: var(--sp-2);
}

/* ---- Responsive card ---- */
@media (max-width: 480px) {
    #crm-grid { grid-template-columns: 1fr; }
    .crmx-metrics { grid-template-columns: 1fr; }
}


/* =========================================================================
 * FIȘĂ PREMIUM DB PARTENERI (hibrid sumar + tab-uri) — js/dbp-fisa.js
 * Compun antetul brand (ds-hero) + strip metrici + bandă conformitate +
 * tab-uri (ds-tabs) peste modalul existent #dbp-partner-modal.
 * ========================================================================= */
.dbp-fisa-on .planner-new-partner-header { display: none; }
.dbp-fisa-on .planner-new-partner-body { padding: 0 !important; }

.dbp-fisa-hero { border-radius: 0; }

.dbp-fisa-tabs {
    position: sticky;
    top: 0;
    z-index: 4;
    background: var(--bg-surface);
    padding: 0 var(--sp-3);
}

.dbp-fisa-flags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-3);
    padding: 8px var(--sp-5);
    background: var(--bg-subtle);
    border-bottom: 1px solid var(--border-subtle);
}

.dbp-fisa-content { padding: var(--sp-4) var(--sp-5); }
.dbp-fisa-content .dbp-fisa-sec { margin: 0 0 var(--sp-4); }
.dbp-fisa-content .dbp-fisa-sec:last-child { margin-bottom: 0; }

/* Secțiunile <details> devin panouri plate (fără acordeon nested) în tab */
.dbp-fisa-content details.dbp-fisa-sec {
    border: 0;
    background: none;
    padding: 0;
    box-shadow: none;
}
.dbp-fisa-content details.dbp-fisa-sec > summary { display: none; }
