/* Valor para el cliente: MatchSOAP, MatchPack, calculadoras, legado, mini CRM, reparación y asistente. */

/* Calendario del auto */
.vehicle-events { list-style: none; margin: 10px 0 14px; padding: 0; display: grid; gap: 8px; }
.vehicle-events li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; padding: 10px 12px; border: 1px solid var(--border, #e3e6ea); border-left: 4px solid var(--pm-subtle); border-radius: 10px; }
.vehicle-events li strong { min-width: min(100%, 190px); }
.vehicle-events li span { flex: 1 1 200px; color: var(--muted, #5c636a); }
.vehicle-events li.is-soon { border-left-color: var(--pm-amber); }
.vehicle-events li.is-urgent { border-left-color: var(--pm-red); background: var(--pm-red-tint); }

/* Banner de temporada del SOAP en el home */
.soap-banner { background: var(--pm-navy); color: #fff; }
.soap-banner .container { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding-top: 14px; padding-bottom: 14px; }
.soap-banner p { margin: 0; color: #fff; }
.soap-banner strong { color: var(--pm-green); }
.soap-steps, .calc-grid, .estate-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 18px; margin-bottom: 18px; }

/* MatchPack */
.pack-options { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 10px; }
.pack-option { display: flex; gap: 10px; align-items: center; padding: 12px 14px; border: 2px solid var(--border, #e3e6ea); border-radius: 12px; cursor: pointer; min-height: 44px; }
.pack-option:has(input:checked) { border-color: var(--pm-green-dark); background: var(--pm-green-tint); }
.pack-option input { width: 18px; height: 18px; accent-color: var(--pm-green-dark); }
.pack-option i { color: var(--pm-blue-text); width: 20px; text-align: center; }
.pack-segment { margin: 16px 0 8px; font-size: 1rem; }
.pack-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.pack-list li { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid var(--border, #e3e6ea); border-radius: 12px; }
.pack-tag { display: inline-block; font-size: .78rem; font-weight: 600; padding: 2px 8px; border-radius: 999px; background: var(--pm-blue-tint); color: var(--pm-blue-text); }

/* Calculadoras */
.calc-out { margin-top: 12px; padding: 12px 14px; border-radius: 10px; background: var(--pm-green-tint); color: var(--pm-on-green); font-weight: 500; }
.calc-out dt { font-weight: 600; } .calc-out dd { margin: 0 0 6px; }

/* Seguimiento de la reparación */
.repair-track { list-style: none; padding: 0; margin: 10px 0; display: grid; gap: 6px; }
.repair-track li { display: flex; gap: 10px; align-items: center; color: var(--muted, #5c636a); }
.repair-track li i { width: 18px; text-align: center; }
.repair-track li.done { color: inherit; } .repair-track li.done i { color: var(--pm-green-text); }
.repair-track li.current { font-weight: 600; color: inherit; } .repair-track li.current i { color: var(--pm-blue-text); }

/* Mini CRM */
.crm-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.crm-row-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.crm-tags { font-size: .8rem; color: var(--muted, #5c636a); }

/* Próxima mejor acción */
.nba-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.nba-list li { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid var(--border, #e3e6ea); border-left: 4px solid var(--pm-subtle); border-radius: 10px; }
.nba-list li.tone-red { border-left-color: var(--pm-red); } .nba-list li.tone-amber { border-left-color: var(--pm-amber); }
.nba-list li.tone-blue { border-left-color: var(--pm-blue-text); } .nba-list li.tone-green { border-left-color: var(--pm-green-dark); }
.nba-list .nba-icon { width: 32px; height: 32px; flex: 0 0 32px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--pm-blue-tint); color: var(--pm-blue-text); }
.nba-list .nba-body { flex: 1 1 auto; min-width: 0; }
.nba-list .nba-body span { display: block; font-size: .85rem; color: var(--muted, #5c636a); overflow-wrap: anywhere; }

/* Asistente: borradores */
.draft-notice { display: block; margin-top: 6px; font-size: .82rem; color: var(--muted, #5c636a); }
.meeting-summary { white-space: pre-line; }
.loss-bar { height: 8px; border-radius: 4px; background: var(--pm-border); overflow: hidden; min-width: 80px; }
.loss-bar > span { display: block; height: 100%; background: var(--pm-blue-text); border-radius: 4px; }
.loss-bar.is-alert > span { background: var(--pm-red); }

/* Seguimiento del siniestro por etapas */
.claim-track { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; counter-reset: s; }
.claim-track li { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; font-size: .8rem; color: var(--pm-muted); position: relative; }
.claim-track li::before { content: ''; position: absolute; top: 15px; left: -50%; width: 100%; height: 3px; background: var(--pm-border); z-index: 0; }
.claim-track li:first-child::before { display: none; }
.claim-track li.done::before, .claim-track li.current::before { background: var(--pm-green); }
.claim-track-dot { width: 32px; height: 32px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--pm-surface); border: 2px solid var(--pm-border); font-weight: 700; position: relative; z-index: 1; }
.claim-track li.done .claim-track-dot { background: var(--pm-green); border-color: var(--pm-green); color: var(--pm-on-green); }
.claim-track li.current .claim-track-dot { border-color: var(--pm-blue-text); color: var(--pm-blue-text); }
.claim-track li.current { color: var(--pm-ink); font-weight: 600; }
@media (max-width: 640px) {
    .claim-track { grid-template-columns: minmax(0, 1fr); }
    .claim-track li { flex-direction: row; text-align: left; }
    .claim-track li::before { display: none; }
}
.claim-doc { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px; padding: 6px 0; border-bottom: 1px dashed var(--pm-border); }
.claim-doc-upload label { cursor: pointer; }

/* Aviso sin conexión (PWA) */
.offline-bar { position: sticky; top: 0; z-index: 60; background: var(--pm-amber-text); color: #fff; padding: 8px 16px; font-size: .9rem; text-align: center; }
.offline-bar a { color: #fff; font-weight: 700; text-decoration: underline; }
.wallet-buttons { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }

/* Bandeja unificada */
.inbox-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; padding: 10px 4px; border-bottom: 1px solid var(--pm-border); }
.inbox-row:last-child { border-bottom: 0; }
.inbox-row.is-overdue { background: var(--pm-red-tint); border-radius: 8px; padding-left: 8px; }
.inbox-row .nba-body { flex: 1 1 260px; min-width: 0; }
.inbox-row .nba-body span { display: block; font-size: .85rem; color: var(--pm-muted); }
.inbox-assign select { min-height: 40px; max-width: 200px; }
tr.is-me td { background: var(--pm-green-tint); }
.pay-now { border: 1px solid var(--pm-border); border-radius: 10px; padding: 8px 12px; margin: 8px 0 12px; }
.content-piece-title { font-size: 1rem; margin: 6px 0; }

/* Biblioteca de contenidos del Matcher */
.content-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 16px; }
.content-piece { min-width: 0; }
.content-piece img { width: 100%; height: auto; border-radius: 10px; margin-bottom: 10px; }
.content-text { white-space: pre-wrap; overflow-wrap: anywhere; font-family: inherit; font-size: .9rem; background: var(--pm-bg); border-radius: 10px; padding: 12px; margin: 10px 0; }
.content-actions { display: flex; flex-wrap: wrap; gap: 8px; }

/* Inspección remota */
.inspection-slots { list-style: none; margin: 0; padding: 0; }
.inspection-slots li.is-done { border-left: 4px solid var(--pm-green); }
.inspection-slot-head { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.inspection-slot-head > div { flex: 1 1 auto; min-width: 0; }
.inspection-thumb { width: 72px; height: 54px; object-fit: cover; border-radius: 8px; }
.inspection-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 160px), 1fr)); gap: 10px; }
.inspection-grid figure { margin: 0; }
.inspection-grid img { width: 100%; height: 120px; object-fit: cover; border-radius: 8px; }

/* Tarjeta digital del Matcher */
.matcher-card { text-align: center; }
.matcher-card-photo, .matcher-card-initial { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; margin: 0 auto 10px; display: block; }
.matcher-card-initial { background: var(--pm-green-tint); color: var(--pm-green-text); font-size: 3rem; font-weight: 700; line-height: 120px; }
.matcher-card-name { font-size: 1.5rem; margin: 0; color: var(--pm-navy); }
.matcher-card-title { color: var(--pm-muted); margin: 4px 0 12px; }
.matcher-card-qr { margin: 14px auto; display: block; }
.matcher-card-actions { display: grid; gap: 8px; margin-top: 8px; }
.signature-preview { border: 1px dashed var(--pm-border); border-radius: 8px; padding: 12px; margin: 8px 0; background: #fff; overflow-x: auto; }

/* Nombramiento y preguntas a la póliza */
.letter-preview { white-space: pre-line; background: var(--pm-bg); border-radius: 10px; padding: 14px; font-size: .92rem; }
.policy-answer { margin-top: 10px; padding: 12px; border-radius: 10px; background: var(--pm-blue-tint); }
.policy-snippets { margin: 8px 0 0; padding-left: 18px; font-size: .88rem; }
.policy-snippets li { margin-bottom: 6px; }
#pa-question { width: 100%; }

/* Auditoría octubre 2026: listas simples, acciones de equipo, formularios en filas del Back Office */
.plain-list { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 6px; }
.plain-list li { line-height: 1.5; }
.team-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.appointment-portfolio summary { list-style: none; cursor: pointer; display: inline-flex; }
.appointment-portfolio summary::-webkit-details-marker { display: none; }
.appointment-portfolio[open] form { margin-top: 10px; min-width: min(100%, 260px); }
.fleet-confirm { display: grid; gap: 4px; max-width: 220px; }
.fleet-confirm input { width: 100%; }
.fleet-confirm .btn { margin-top: 6px; justify-self: start; }
.service-links { list-style: none; margin: 8px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); gap: 8px; }
.service-links a { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid var(--pm-border, #dfe5ee); border-radius: 8px; text-decoration: none; min-height: 44px; }
.service-links a:hover, .service-links a:focus-visible { border-color: var(--pm-green, #5f7f12); }
.queue-list { list-style: none; margin: 8px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 8px; }
.queue-list a { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--pm-border, #e3e7eb); border-radius: 8px; text-decoration: none; color: inherit; min-height: 44px; }
.queue-list a:hover, .queue-list a:focus-visible { border-color: var(--pm-navy, #1a2b4a); }
.queue-list a.is-urgent { border-left: 4px solid #c0392b; }
.queue-label { flex: 1; }
.queue-count { font-weight: 700; font-size: 1.1rem; }
.fav-toggle { display: inline-flex; margin-left: 4px; }
.fav-toggle .fa-star.fas { color: #b8860b; }
/* Seguros por días, avisos preventivos y arriendos */
.ondemand-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 16px; }
.ondemand-card { display: flex; flex-direction: column; gap: 8px; }
.ondemand-card .btn { margin-top: auto; align-self: flex-start; }
.ondemand-from { margin: 0; }
.ondemand-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.ondemand-price { display: grid; gap: 2px; padding: 12px; margin: 12px 0; border-radius: 8px; background: var(--pm-green-tint, #f2f8e3); }
.ondemand-price strong { font-size: 1.6rem; }
.check-row { display: flex; gap: 8px; align-items: flex-start; margin: 8px 0 12px; }
.region-picker { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 4px 12px; border: 1px solid var(--pm-border, #e3e7eb); border-radius: 8px; padding: 10px 12px; margin: 8px 0; }
.region-picker legend, .lease-options legend { font-weight: 600; padding: 0 4px; }
.lease-options { border: 1px solid var(--pm-border, #e3e7eb); border-radius: 8px; padding: 10px 12px; margin: 12px 0; display: grid; gap: 6px; }
.form-section { font-size: 1rem; margin: 16px 0 6px; }
@media (max-width: 900px) { .ondemand-layout { grid-template-columns: 1fr; } }
.activation-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 10px 14px; margin-bottom: 16px; border-radius: 8px; background: #fff7e0; border: 1px solid #f0d58a; color: #5c4400; }
.activation-bar form { margin-left: auto; }
.embed-title { font-size: 1.25rem; margin: 0 0 12px; color: var(--pm-navy, #19283c); }
/* Centro de informes y gráficos de barras */
.report-card h2 { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.report-card h2 .actions { margin-left: auto; }
.bar-chart { margin: 4px 0 12px; max-width: 820px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.bar-chart svg { width: 100%; min-width: 560px; height: auto; display: block; }
.bar-chart .bar { fill: #c9d2dc; }
.bar-chart .bar-accent { fill: var(--pm-navy, #19283c); }
.bar-chart .bar-axis { stroke: #c9d2dc; stroke-width: 1; }
.bar-chart .bar-value { font-size: 15px; fill: #3d4a5c; }
.bar-chart .bar-label { font-size: 14px; fill: #5b6b82; }
/* Resumen del Back Office */
.section-title { font-size: 1.05rem; margin: 4px 0 10px; }
.kpis-month { grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr)); }
.source-row { display: grid; grid-template-columns: 1fr auto; gap: 0 10px; padding: 8px 0; border-bottom: 1px solid var(--pm-border, #e3e7eb); }
.source-row .small { grid-column: 1 / -1; }
/* Mi agenda (Back Office) */
.agenda-stats { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 18px; align-items: stretch; }
.agenda-stat { background: #fff; border: 1px solid var(--pm-border, #e3e7eb); border-radius: 12px; padding: 12px 16px; min-width: 130px; display: flex; flex-direction: column; }
.agenda-stat-value { font-size: 1.6rem; font-weight: 700; line-height: 1.1; color: var(--pm-navy, #19283c); }
.agenda-stat-label { font-size: .82rem; color: #5b6b82; }
.agenda-stat.is-today { border-color: #b6dd4f; background: #f6faea; }
.agenda-stat.is-pending { border-color: #f0d58a; background: #fff8e6; }
.agenda-next { flex: 1 1 260px; display: flex; flex-direction: column; gap: 4px; justify-content: center; background: var(--pm-navy, #19283c); color: #fff; border-radius: 12px; padding: 12px 16px; }
.agenda-next .muted { color: #c9d2dc; }
.agenda-next .btn { align-self: flex-start; margin-top: 4px; }
.agenda-day { margin-top: 14px; }
.agenda-day:first-of-type { margin-top: 4px; }
.agenda-day-title { display: flex; align-items: center; gap: 8px; font-size: .95rem; margin: 0 0 8px; padding-bottom: 6px; border-bottom: 1px solid var(--pm-border, #e3e7eb); }
.agenda-day.is-today .agenda-day-title span:first-child { color: #4d7a0a; }
.agenda-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.agenda-item { display: grid; grid-template-columns: 64px 1fr; gap: 12px; padding: 12px; border: 1px solid var(--pm-border, #e3e7eb); border-left: 4px solid #7db8e4; border-radius: 10px; background: #fff; }
.agenda-item.status-realizada { border-left-color: #b6dd4f; }
.agenda-item.status-cancelada, .agenda-item.status-no_asistio { border-left-color: #c9d2dc; }
.agenda-item.is-done { background: #fafbfc; }
.agenda-item.is-done .agenda-who strong, .agenda-item.is-done .agenda-time strong { color: #5b6b82; }
.agenda-time { display: flex; flex-direction: column; text-align: center; }
.agenda-time strong { font-size: 1.15rem; color: var(--pm-navy, #19283c); }
.agenda-who { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.agenda-topic { margin: 2px 0 6px; }
.agenda-meta { display: flex; flex-wrap: wrap; gap: 4px 14px; color: #5b6b82; }
.agenda-meta a { color: inherit; }
.agenda-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.agenda-empty { text-align: center; padding: 28px 12px; color: #5b6b82; }
.agenda-empty .fa-calendar { font-size: 2rem; margin-bottom: 8px; color: #c9d2dc; }
.availability-card .btn { margin-top: 12px; }
.availability-grid { display: grid; gap: 6px; }
.availability-row { display: grid; grid-template-columns: 44px 1fr; gap: 8px; align-items: start; padding: 6px 8px; border-radius: 8px; background: #fafbfc; }
.availability-row.is-on { background: #f6faea; }
.availability-day { font-weight: 600; padding-top: 7px; }
.availability-blocks { display: grid; gap: 4px; }
.availability-range { display: flex; align-items: center; gap: 6px; }
.availability-range input { flex: 1 1 0; min-width: 0; padding: 6px 8px; }
.meeting summary { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.meeting-date { font-variant-numeric: tabular-nums; color: #5b6b82; }
@media (max-width: 480px) { .agenda-item { grid-template-columns: 1fr; } .agenda-time { flex-direction: row; gap: 8px; text-align: left; align-items: baseline; } }
.agenda-actions form { display: flex; }
.agenda-actions .btn-link { display: inline-flex; align-items: center; padding: 6px 8px; }
.availability-row, .availability-blocks, .availability-range { min-width: 0; }
@media (max-width: 480px) {
    .availability-row { grid-template-columns: 36px minmax(0, 1fr); padding: 6px; }
    .availability-range { gap: 4px; }
    .availability-range input { padding: 6px 4px; font-size: 16px; }
    .agenda-meta a, .agenda-meta span { display: inline-flex; align-items: center; gap: 4px; min-height: 32px; }
}
@media (max-width: 1024px) { .agenda-meta a, .agenda-meta span { display: inline-flex; align-items: center; gap: 4px; min-height: 32px; } }
/* Asistente Matcher */
.pick { padding: 12px; border: 1px solid var(--pm-border, #e3e7eb); border-left: 4px solid #b6dd4f; border-radius: 10px; margin-top: 10px; }
.pick-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.pick-reasons { margin: 6px 0 8px; padding-left: 18px; color: #3d4a5c; font-size: .9rem; }
.pick-actions, .ai-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.pick-actions form { display: flex; }
.ai-output { margin-top: 10px; padding: 10px; border-radius: 8px; background: #f6f8fb; }
.ai-output .ai-text { width: 100%; margin-bottom: 8px; }
.ai-event { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 4px 0; }
.goal-amount { font-size: 1.1rem; margin: 4px 0 8px; }
.goal-amount strong { font-size: 1.5rem; color: var(--pm-navy, #19283c); }
.inline-goal { margin-top: 10px; }
.practice-prompt { background: #fff8e6; border-radius: 8px; padding: 8px 10px; }
.practice-result { padding: 10px 12px; border-radius: 8px; background: #fff8e6; margin-bottom: 10px; }
.practice-result.is-good { background: #f6faea; }
.social-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 0 16px; align-items: end; }
.social-posts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 12px; margin-top: 12px; }
.social-post { border: 1px solid var(--pm-border, #e3e7eb); border-radius: 10px; padding: 12px; }
.dictation-actions { display: flex; flex-wrap: wrap; gap: 8px; }
[data-dictate].is-recording { border-color: #c8423f; color: #c8423f; }
.quality-box { padding: 12px 14px; border-radius: 10px; background: #fff8e6; border: 1px solid #f0d58a; margin: 12px 0; }
.quality-box ul { margin: 6px 0; padding-left: 18px; }
.social-form .btn { justify-self: start; margin-bottom: 16px; }

/* Mi crecimiento (Matcher) */
.growth-nav { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.growth-nav a { padding: 6px 12px; border-radius: 999px; background: #eef3f8; color: #19283c; font-size: .85rem; font-weight: 600; text-decoration: none; }
.growth-nav a:hover, .growth-nav a:focus-visible { background: #dfe9c4; }
.verify-card { border-left: 4px solid #c9d2dc; }
.verify-card.is-verified { border-left-color: #8cc63f; }
.verified-chip { display: inline-flex; align-items: center; gap: 6px; margin: 6px 6px 0 0; padding: 4px 10px; border-radius: 999px; background: #e7f4ff; color: #0b4f8a; font-size: .82rem; font-weight: 700; }
.matcher-impact { margin: 8px 0 0; font-weight: 600; }
.kit-focus { margin-top: 8px; font-weight: 600; color: #3d5f08; }
.ramo-card-focus { border-color: #8cc63f; box-shadow: 0 0 0 2px rgba(140, 198, 63, .35); }
.pick-pago, .pick-cuota { border-left-color: #f0a830; }
.price-result { padding: 12px; border-radius: 10px; background: #fff8e6; margin-bottom: 12px; }
.price-result.is-good { background: #f6faea; }
.price-range { font-size: 1.35rem; font-weight: 700; color: #19283c; margin: 4px 0; }
.price-grid, .kit-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 12px; margin: 12px 0; align-items: start; }
.price-form, .kit { border: 1px solid var(--pm-border, #e3e7eb); border-radius: 10px; padding: 10px 12px; min-width: 0; }
.price-form summary, .kit summary { cursor: pointer; font-weight: 600; }
.price-form[open] summary, .kit[open] summary { margin-bottom: 8px; }
.share-link { display: flex; gap: 8px; align-items: center; min-width: 0; }
.share-link input { flex: 1; min-width: 0; padding: 6px 10px; border: 1px solid #c9d2dc; border-radius: 8px; font-size: .85rem; }
.kit-msg { display: flex; gap: 8px; align-items: flex-start; justify-content: space-between; padding: 8px 0; border-top: 1px dashed #e3e7eb; }
.kit-msg p { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.sla-row { display: flex; gap: 10px; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px solid #eef1f4; }
.sla-row p { margin: 2px 0 0; }
.sla-row.is-late p { color: #a4520b; font-weight: 600; }
.impact-stats { display: flex; flex-wrap: wrap; gap: 12px; margin: 6px 0; }
.impact-stats div { flex: 1 1 90px; text-align: center; padding: 10px; border-radius: 10px; background: #f6faea; }
.impact-stats strong { display: block; font-size: 1.6rem; color: #19283c; }
.path-list, .milestones { list-style: none; padding: 0; margin: 10px 0 0; }
.path-list li { padding: 6px 0; }
.milestones li { display: flex; align-items: center; gap: 10px; padding: 6px 0; color: #5b6b82; }
.milestones li:not(.is-done) .fas { color: #a9b4c2; }
.milestones li > span { flex: 1; }
.milestones li.is-done { color: #19283c; font-weight: 600; }
.milestones li.is-done .fas { color: #8cc63f; }
@media (max-width: 600px) { .kit-msg, .sla-row { flex-direction: column; align-items: stretch; } }

/* Importar contactos */
.import-tools { margin-bottom: 8px; }
.table tr.is-muted td { color: #5b6b82; background: #f7f9fb; }
.form-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }

/* Piezas con la foto del Matcher */
.pieces-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 14px; }
.pieces-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 16px; align-items: start; }
.pieces-grid.is-story { grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); }
.piece { margin: 0; padding: 10px; min-width: 0; }
.piece canvas { display: block; width: 100%; height: auto; border-radius: 8px; background: #1a2b4a; }
.piece figcaption { margin-top: 10px; display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.piece-actions { display: flex; flex-wrap: wrap; gap: 8px; }

/* Perfil: temas de WhatsApp */
.topics { border: 1px solid #e3e7eb; border-radius: 10px; padding: 8px 12px; margin: 6px 0 12px; }
.topics legend { padding: 0 6px; font-weight: 600; }

/* Calidad de las recomendaciones */
.security-tip { margin: 10px 0 0; padding: 8px 12px; border-radius: 8px; background: #fff8e6; }
.quality { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; }
.quality-score { flex: 0 0 120px; height: 120px; border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 8px solid #c9d2dc; }
.quality-score strong { font-size: 2.2rem; line-height: 1; color: #19283c; }
.quality-score span { font-size: .8rem; font-weight: 600; color: #3f4d60; }
.quality-score.q-high { border-color: #8cc63f; }
.quality-score.q-mid { border-color: #f0b840; }
.quality-score.q-low { border-color: #e0846b; }
.quality-metrics { flex: 1 1 280px; list-style: none; margin: 0; padding: 0; min-width: 0; }
.quality-metrics li { display: grid; grid-template-columns: minmax(0, 1fr) 90px 48px; gap: 8px; align-items: center; padding: 4px 0; font-size: .9rem; }
.quality-metrics li > .small { grid-column: 1 / -1; margin-top: -4px; }
.quality-bar { height: 8px; border-radius: 999px; background: #eef1f4; overflow: hidden; }
.quality-bar span { display: block; height: 100%; background: #8cc63f; }
@media (max-width: 480px) { .quality-metrics li { grid-template-columns: minmax(0, 1fr) 60px 44px; } }
.plain-list li { min-width: 0; overflow-wrap: anywhere; }

/* Autorización por enlace */
.consent-link { border-left: 4px solid #8cc63f; }
.crm-row-actions form { display: inline; }

/* Búsqueda del Matcher */
.search-big { display: flex; gap: 8px; align-items: center; }
.search-big input { flex: 1; min-width: 0; padding: 10px 14px; border: 1px solid #c9d2dc; border-radius: 999px; font-size: 1rem; }
.search-pages { display: flex; flex-wrap: wrap; gap: 8px; }
.search-list { list-style: none; margin: 0; padding: 0; }
.search-list li { display: flex; flex-wrap: wrap; gap: 8px; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px solid #eef1f4; }
.search-list li > div:first-child { min-width: 0; overflow-wrap: anywhere; }

/* Portada del Matcher: qué hacer hoy */
.today-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.today-item { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 10px; background: #f7f9fb; border-left: 4px solid #c9d2dc; }
.today-item.tone-green { border-left-color: #8cc63f; }
.today-item.tone-amber { border-left-color: #f0b840; }
.today-item.tone-red { border-left-color: #e0846b; }
.today-item.tone-blue { border-left-color: #5b9bd5; }
.today-icon { flex: 0 0 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #fff; color: #19283c; }
.today-text { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.today-text strong { overflow-wrap: anywhere; }
@media (max-width: 520px) { .today-item { flex-wrap: wrap; } .today-item .btn { margin-left: 48px; } }

/* Clientes: emergencia, beneficios y estado de cuenta */
.btn-emergency { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 999px; background: #c62828; color: #fff; font-weight: 600; font-size: .85rem; text-decoration: none; white-space: nowrap; }
.btn-emergency:hover, .btn-emergency:focus-visible { background: #a11f1f; color: #fff; }
.emergency-numbers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.em-call { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 12px 6px; border-radius: 12px; background: #fdecea; color: #8e1c1c; text-decoration: none; text-align: center; }
.em-call strong { font-size: 1.6rem; line-height: 1.1; }
.em-call span { font-size: .8rem; }
.em-call:hover, .em-call:focus-visible { background: #f9d6d2; }
.emergency-grid { display: grid; gap: 12px; }
.emergency summary { cursor: pointer; font-weight: 700; font-size: 1.05rem; display: flex; align-items: center; gap: 12px; }
.em-icon { flex: 0 0 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #fdecea; color: #c62828; font-size: 1.2rem; }
.em-steps { margin: 12px 0; padding-left: 20px; }
.em-steps li { margin-bottom: 4px; }
.em-policy { padding: 10px 0; border-top: 1px solid #eef1f4; }
.em-policy p { margin: 0 0 6px; }
.em-location { margin-top: 10px; }
.benefit-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 14px; align-items: start; }
.benefit { min-width: 0; }
.benefit.is-season { border-top: 4px solid #8cc63f; }
.benefit-head { display: flex; gap: 12px; align-items: center; }
.benefit-head h2 { margin: 0; font-size: 1.05rem; }
.benefit-head p { margin: 2px 0 0; }
.benefit-icon { flex: 0 0 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: #f6faea; color: #4d6a0c; font-size: 1.2rem; }
.benefit-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 4px; }
@media (max-width: 400px) { .em-call strong { font-size: 1.3rem; } }
.benefit-teaser { display: flex; gap: 12px; align-items: center; text-decoration: none; color: inherit; border-left: 4px solid #8cc63f; }
.benefit-teaser > span:last-child { display: flex; flex-direction: column; min-width: 0; }

/* Pago consolidado */
.batch-footer { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; margin-top: 12px; }
.batch-total { margin: 0; font-size: 1.05rem; }

/* Back Office: acciones masivas */
.bulk-bar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 10px 12px; margin-bottom: 10px; border: 1px dashed #c9d2dc; border-radius: 10px; background: #f7f9fb; }
.bulk-bar.has-selection { border-style: solid; border-color: #8cc63f; background: #f6faea; }
.bulk-bar select, .bulk-bar input { max-width: 100%; min-width: 0; }
.bulk-count { font-weight: 600; font-size: .9rem; margin-right: 4px; }
.my-day { border-left: 4px solid #8cc63f; }

/* Tablero de renovaciones */
.kanban { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 12px; align-items: start; }
.kanban-col { background: #f3f6f9; border-radius: 12px; padding: 10px; min-width: 0; }
.kanban-col h2 { font-size: .95rem; margin: 0 0 8px; display: flex; align-items: center; gap: 6px; }
.kanban-count { margin-left: auto; background: #fff; border-radius: 999px; padding: 1px 9px; font-size: .8rem; }
.kanban-card { background: #fff; border-radius: 10px; padding: 10px; margin-bottom: 8px; border-left: 4px solid #c9d2dc; box-shadow: 0 1px 2px rgba(25, 40, 60, .06); }
.kanban-card p { margin: 3px 0; }
.kanban-card.is-late { border-left-color: #e0846b; }
.stage-renovada .kanban-card { border-left-color: #8cc63f; }
.stage-perdida .kanban-card { border-left-color: #a9b4c2; }
.kanban-empty { margin: 4px; }

/* Desempeño y calidad de datos */
.load-bar { display: inline-block; width: 60px; height: 8px; border-radius: 999px; background: #eef1f4; overflow: hidden; vertical-align: middle; }
.load-bar span { display: block; height: 100%; background: #5b9bd5; }
.quality-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); gap: 10px; margin-bottom: 14px; }
.quality-check { display: flex; flex-direction: column; gap: 6px; text-decoration: none; color: inherit; border-top: 4px solid #8cc63f; min-width: 0; }
.quality-check.has-issues { border-top-color: #f0b840; }
.quality-check.is-active { box-shadow: 0 0 0 2px #19283c; }
.qc-label { font-size: .88rem; }
.qc-count { font-size: 1.5rem; color: #19283c; }
.dup-group { padding: 10px 0; border-top: 1px solid #eef1f4; }
.dup-merge { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }

/* Línea de tiempo del cliente */
.timeline-filters { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.timeline { list-style: none; margin: 0; padding: 0; position: relative; }
.timeline li { display: flex; gap: 10px; padding: 8px 0; border-bottom: 1px solid #f0f2f5; }
.tl-icon { flex: 0 0 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #eef3f8; color: #19283c; font-size: .8rem; }
.tl-body { min-width: 0; }
.tl-body p { margin: 0 0 2px; overflow-wrap: anywhere; }
.tl-title { font-weight: 600; }
.tl-siniestro .tl-icon { background: #fdecea; color: #a11f1f; }
.tl-pago .tl-icon, .tl-poliza .tl-icon { background: #f6faea; color: #4d6a0c; }
.tl-consentimiento .tl-icon { background: #e7f4ff; color: #0b4f8a; }
.tpl { padding: 8px 0; border-top: 1px solid #eef1f4; }
