/* =====================================================================
   entregar.css — Entregar (clientes, implementaciones, portal admin) y
   calendarios externos. Usa las variables de base.css. Mobile-first.
   ===================================================================== */

.btn--danger-text { color: var(--coral-ink); }
.btn--danger-text:hover { background: var(--coral-tint); }

/* Semáforo */
.health { display: inline-block; flex-shrink: 0; width: 12px; height: 12px; border-radius: 50%; box-shadow: 0 0 0 3px rgba(255, 255, 255, .8); }
.health--green { background: #3fb46f; }
.health--yellow { background: #e7b416; }
.health--red { background: var(--coral); }
.health--lg { width: 16px; height: 16px; box-shadow: 0 0 0 4px rgba(255, 255, 255, .15); }

/* Clientes */
.client-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.client-card { display: grid; gap: 10px; transition: transform .15s var(--ease); }
.client-card:hover { transform: translateY(-2px); }
.client-card__head { display: flex; align-items: center; gap: 10px; }
.client-card__head > div { flex: 1; min-width: 0; }
.client-card__head strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.client-card__head small { color: var(--muted); font-size: .8rem; }
.client-card__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; color: var(--muted); font-size: .8rem; font-weight: 600; }
.client-card__meta span { display: inline-flex; align-items: center; gap: 5px; }
.client-card > .pill { justify-self: start; white-space: normal; }

.cred-list { display: grid; gap: 10px; margin: 0 0 12px; padding: 0; list-style: none; }
.cred-list li { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.cred-list li > div { flex: 1; min-width: 180px; }
.cred-list strong { display: block; }
.cred-list small { display: block; color: var(--muted); font-size: .78rem; overflow-wrap: anywhere; }
.cred-secret { display: inline-block; margin-top: 6px; padding: 4px 10px; background: var(--cream); font-size: .86rem; word-break: break-all; }
.cred-add summary { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; cursor: pointer; }
.cred-add form { margin-top: 12px; }
.nps-badge { display: grid; place-items: center; flex-shrink: 0; width: 34px; height: 34px; border-radius: 10px; font-weight: 800; }
.nps-badge--high { background: var(--mint); color: var(--mint-ink); }
.nps-badge--mid { background: var(--cream); color: var(--cream-ink); }
.nps-badge--low { background: var(--coral-tint); color: var(--coral-ink); }
.pt-pre { white-space: pre-line; }

/* Implementaciones */
.impl-board { grid-auto-columns: minmax(250px, 1fr); }
.impl-card { display: grid; gap: 8px; }
.impl-card .deal-card__top { display: flex; align-items: center; gap: 8px; }
.impl-stage.is-current { box-shadow: 0 0 0 2px var(--ink), var(--shadow-sm); }
.impl-tasks { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.impl-task { display: flex; align-items: flex-start; gap: 10px; padding: 10px 0; border-top: 1px solid var(--line); }
.impl-task:first-child { border-top: 0; padding-top: 0; }
.impl-task__body { flex: 1; min-width: 0; display: grid; gap: 4px; }
.impl-task__body > small { color: var(--muted); font-size: .8rem; }
.impl-task.is-done .impl-task__body > strong { color: var(--muted); text-decoration: line-through; }
.impl-task.is-done .task-check { background: var(--mint); border-color: var(--mint-ink); color: var(--mint-ink); }
.impl-task.is-overdue .impl-task__body > strong::after { content: ' · atrasada'; color: var(--coral-ink); font-size: .76rem; }
.impl-task__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 4px; }
.impl-task__meta select, .impl-task__meta input { min-height: 34px; padding: 4px 8px; font-size: .8rem; border-radius: 10px; max-width: 170px; }
.checklist { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; font-size: .86rem; }
.checklist li { display: flex; align-items: flex-start; gap: 8px; color: var(--muted); }
.checklist li .ico { margin-top: 2px; }
.checklist li.is-done { color: var(--ink); }
.checklist li.is-done .ico { color: var(--mint-ink); }

/* Portal (administración) */
.deliv-list { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.deliv-list > li { display: grid; gap: 10px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.deliv-list > li:last-child { border-bottom: 0; padding-bottom: 0; }
.deliv-list__head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.deliv-list__head > div { flex: 1; min-width: 160px; }
.deliv-list__head strong { display: block; }
.deliv-list__head small { color: var(--muted); font-size: .78rem; }
.deliv-list .btn-row { margin: 0; }
.pt-file__icon { display: grid; place-items: center; flex-shrink: 0; width: 40px; height: 40px; border-radius: 13px; }
.pt-thread { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.pt-thread li { padding: 10px 12px; border-radius: var(--radius-sm); background: var(--surface-2); font-size: .86rem; }
.pt-thread li.is-team { background: var(--sky); }
.pt-thread small { color: var(--muted); }
.pt-thread p { margin: 4px 0 0; white-space: pre-line; overflow-wrap: anywhere; }
.pt-checks { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; font-size: .86rem; }
.pt-checks li { display: flex; align-items: flex-start; gap: 8px; }
.pt-checks .ico { margin-top: 2px; color: var(--mint-ink); }

/* Calendarios externos */
.conn-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-items: start; }
.conn-card { display: grid; gap: 14px; }
.conn-card__head { display: flex; gap: 14px; }
.conn-card__head h3 { margin: 0 0 4px; }
.conn-card__head p { margin: 0; color: var(--muted); font-size: .88rem; }
.conn-card__logo { display: grid; place-items: center; flex-shrink: 0; width: 46px; height: 46px; border-radius: 15px; }
.conn-card__options { display: grid; gap: 10px; }
.conn-card .btn-row { margin: 0; }
.conn-card .btn[disabled] { opacity: .5; cursor: not-allowed; }

#portalAdmin .card__head { flex-wrap: wrap; }
#portalAdmin .input-action { flex-wrap: wrap; }

@media (max-width: 899.98px) {
  .settings { grid-template-columns: minmax(0, 1fr); }
}

@media (min-width: 720px) {
  .client-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .conn-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1200px) {
  .client-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
