/* =============================================
   ETERNA QUINCE — Sistema de estilos unificado
   Incluye clases legacy (forms) + clases nuevas (aliados/admin)
   ============================================= */
:root {
  --pk:#ee4c82;--pk-dark:#c73568;--pk-light:#fff0f5;--pk-mid:#ffd6e8;
  --mint:#8fe3c0;--navy:#1a1a2e;
  --bg:#FBF7F9;--white:#ffffff;--text:#1A1223;--gray:#6B7280;
  --border:#F0E4EC;--border2:#E5D0DC;
  --success:#15803d;--success-bg:#dcfce7;
  --danger:#b91c1c;--danger-bg:#fee2e2;
  --warn:#d97706;--warn-bg:#fef3c7;
  --radius:14px;--radius-sm:9px;
  --shadow:0 4px 24px rgba(238,76,130,.08);
  --shadow-sm:0 2px 8px rgba(238,76,130,.06);
}
*{box-sizing:border-box;margin:0;padding:0}

/* ── BODY (legacy: padding para forms sin topbar) ── */
body{background:var(--bg);color:var(--text);font-family:'Outfit','Poppins','Inter',sans-serif;min-height:100vh;padding:24px 16px;font-size:15px;line-height:1.5}

/* ── LEGACY HEADER (.top) — usado por los forms ── */
.top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:28px;max-width:620px;margin-left:auto;margin-right:auto}

/* ── NUEVO TOPBAR sticky — usado por aliados/admin ── */
.topbar{background:var(--white);border-bottom:1.5px solid var(--border);padding:0 24px;height:58px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;gap:12px}
/* body sin padding cuando hay topbar (clase explícita — más confiable que :has() en navegadores viejos) */
body.has-topbar{padding:0}
body:has(.topbar){padding:0}

/* ── BRAND ── */
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}
.diamond{width:12px;height:12px;background:var(--pk);transform:rotate(45deg);flex-shrink:0}
.brand-name{font-weight:800;font-size:1.05rem;color:var(--text);letter-spacing:-.02em}
.brand-name span{color:var(--pk)}
.back-link{color:var(--pk-dark);text-decoration:none;font-size:.82rem;border:1.5px solid var(--pk-mid);padding:6px 14px;border-radius:8px;background:var(--white);font-weight:600;white-space:nowrap;transition:background .15s}
.back-link:hover{background:var(--pk-light)}

/* ── LAYOUT ── */
.wrap{max-width:620px;margin:0 auto}                        /* legacy forms */
.page-wrap{max-width:640px;margin:0 auto;padding:28px 16px 48px}
.page-wrap--wide{max-width:1100px;margin:0 auto;padding:28px 20px 48px}

/* ── CARD ── */
.card{background:var(--white);border:1.5px solid var(--border);border-radius:16px;padding:28px;box-shadow:var(--shadow);margin-bottom:16px}
.card--sm{padding:18px 20px}
.card-title{font-size:1.35rem;font-weight:800;color:var(--text);margin-bottom:4px;letter-spacing:-.02em}
.card-sub{font-size:.88rem;color:var(--gray);margin-bottom:24px}
.divider{height:1.5px;background:var(--border);margin-bottom:24px}

/* ── FORM ── */
.field{margin-bottom:18px}
label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.8px;color:var(--pk-dark);margin-bottom:7px;font-weight:700}
input,textarea,select{width:100%;background:var(--white);border:1.5px solid var(--border2);border-radius:10px;padding:11px 14px;color:var(--text);font-family:inherit;font-size:.92rem;outline:none;transition:border-color .2s,box-shadow .2s}
input:focus,textarea:focus,select:focus{border-color:var(--pk);box-shadow:0 0 0 3px rgba(238,76,130,.1)}
textarea{resize:vertical;min-height:90px}
.radio-group{display:flex;flex-wrap:wrap;gap:8px}
.radio-option{flex:1;min-width:90px;border:1.5px solid var(--border2);border-radius:10px;padding:10px 8px;text-align:center;cursor:pointer;font-size:.83rem;transition:.2s;color:var(--text);background:var(--white)}
.radio-option input{display:none}
.radio-option.active{border-color:var(--pk);background:var(--pk-light);color:var(--pk-dark);font-weight:700}
.file-hint{font-size:.74rem;color:var(--gray);margin-top:4px}

/* ── BOTONES LEGACY (button[type=submit] para forms) ── */
button[type=submit]{width:100%;background:var(--pk);color:#fff;border:none;border-radius:10px;padding:13px;font-size:.92rem;font-weight:700;letter-spacing:.4px;cursor:pointer;transition:background .2s,transform .15s;text-transform:uppercase;margin-top:6px;font-family:inherit}
button[type=submit]:hover{background:var(--pk-dark);transform:translateY(-1px)}
button[type=submit]:disabled{opacity:.5;cursor:not-allowed;transform:none}

/* ── BOTONES NUEVOS (.btn) — aliados/admin ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:var(--radius-sm);padding:11px 20px;font-family:inherit;font-size:.88rem;font-weight:700;cursor:pointer;transition:background .15s,transform .12s;text-decoration:none;white-space:nowrap;line-height:1}
.btn:hover{transform:translateY(-1px)}
.btn--primary{background:var(--pk);color:#fff}
.btn--primary:hover{background:var(--pk-dark)}
.btn--ghost{background:var(--white);color:var(--pk-dark);border:1.5px solid var(--pk-mid)}
.btn--ghost:hover{background:var(--pk-light)}
.btn--success{background:var(--success);color:#fff}
.btn--danger{background:var(--danger);color:#fff}
.btn--sm{padding:6px 12px;font-size:.78rem;border-radius:6px}
.btn--full{width:100%}
.btn--icon{padding:7px;border-radius:8px;background:transparent;border:1.5px solid var(--border2);color:var(--gray)}
.btn--icon:hover{background:var(--pk-light);color:var(--pk-dark);border-color:var(--pk-mid)}

/* ── BADGES ── */
.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:.72rem;font-weight:700}
.badge--green{background:var(--success-bg);color:var(--success)}
.badge--pink{background:var(--pk-light);color:var(--pk-dark)}
.badge--red{background:var(--danger-bg);color:var(--danger)}
.badge--yellow{background:var(--warn-bg);color:var(--warn)}
.badge--gray{background:#f3f4f6;color:var(--gray)}

/* ── STATS ── */
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
.stat-card{background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius);padding:18px;text-align:center;box-shadow:var(--shadow-sm)}
.stat-n{font-size:1.75rem;font-weight:800;color:var(--pk);line-height:1}
.stat-l{font-size:.75rem;color:var(--gray);margin-top:4px}

/* ── TABLA ── */
.table-wrap{overflow-x:auto;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow-sm)}
table{width:100%;border-collapse:collapse;min-width:480px;font-size:.83rem}
thead th{background:var(--pk-light);color:var(--pk-dark);padding:11px 14px;text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.6px;font-weight:700;white-space:nowrap}
tbody td{padding:11px 14px;border-top:1px solid var(--border);vertical-align:middle}
tbody tr:hover td{background:#fdf0f6}
tbody tr:nth-child(even) td{background:#fdfafe}

/* ── TABS ── */
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px;background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius);padding:8px;box-shadow:var(--shadow-sm)}
.tab-link{padding:8px 16px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--gray);text-decoration:none;font-size:.83rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}
.tab-link:hover{background:var(--pk-light);color:var(--pk-dark)}
.tab-link.active{background:var(--pk);color:#fff;font-weight:700}

/* ── MISC ── */
.ref-code{font-family:'Courier New',monospace;background:var(--pk-light);color:var(--pk-dark);padding:2px 8px;border-radius:5px;font-size:.8rem;font-weight:700}
.ref-link-box{background:var(--pk-light);border:1.5px solid var(--pk-mid);border-radius:var(--radius-sm);padding:12px 14px;font-size:.82rem;word-break:break-all;color:var(--navy);flex:1}
.alert{padding:12px 16px;border-radius:var(--radius-sm);font-size:.875rem;margin-bottom:16px;display:flex;align-items:center;gap:8px}
.alert--error{background:var(--danger-bg);color:var(--danger);border:1px solid #fecaca}
.alert--warn{background:var(--warn-bg);color:var(--warn);border:1px solid #fde68a}
.alert--ok{background:var(--success-bg);color:var(--success);border:1px solid #bbf7d0}
.empty-state{text-align:center;padding:50px 20px;color:var(--gray)}
.empty-state .empty-icon{font-size:2.5rem;margin-bottom:12px}
.copy-btn{display:inline-flex;align-items:center;gap:5px;background:var(--pk);color:#fff;border:none;border-radius:var(--radius-sm);padding:11px 18px;font-weight:700;cursor:pointer;font-family:inherit;font-size:.85rem;white-space:nowrap;transition:background .15s}
.copy-btn:hover{background:var(--pk-dark)}
.modal-overlay{position:fixed;inset:0;background:rgba(26,26,46,.45);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:200;padding:16px}
.modal-overlay.hidden{display:none}
.modal{background:var(--white);border-radius:var(--radius);padding:28px;width:100%;max-width:480px;box-shadow:0 20px 60px rgba(0,0,0,.18);max-height:90vh;overflow-y:auto}
.modal-title{font-size:1.15rem;font-weight:800;margin-bottom:18px;letter-spacing:-.02em}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px;flex-wrap:wrap}
.inline-form{display:inline-flex;gap:6px;align-items:center}
.inline-form select{width:auto;padding:5px 8px;font-size:.78rem;border-radius:6px}
.admin-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:20px}
.admin-header h1{font-size:1.5rem;font-weight:800;letter-spacing:-.02em}
.action-row{display:flex;gap:5px;flex-wrap:wrap}
.td-name{font-weight:600;font-size:.875rem}
.td-sub{font-size:.78rem;color:var(--gray)}
.action-cell{display:flex;flex-direction:column;gap:6px;min-width:130px}

/* ── FEEDBACK legacy forms ── */
.cf-msg{display:none;text-align:center;padding:32px 16px}
.cf-msg.show{display:block}
.cf-msg.ok h3{color:var(--pk-dark);font-size:1.3rem;margin-bottom:8px}
.cf-msg.err h3{color:#b91c1c;font-size:1.3rem;margin-bottom:8px}
.cf-msg p{color:var(--gray);font-size:.9rem}

/* ── FOOTER ── */
.foot{max-width:620px;margin:20px auto 0;text-align:center;font-size:.75rem;color:var(--gray)}

/* ── WHATSAPP BUTTON ── */
.wa-btn{display:inline-flex;align-items:center;gap:4px;background:#e9fbf2;color:#0f9d58;border:1.5px solid #bdf0d5;border-radius:7px;padding:4px 9px;font-size:.75rem;font-weight:700;text-decoration:none;white-space:nowrap;transition:background .15s,transform .12s}
.wa-btn:hover{background:#0f9d58;color:#fff;transform:translateY(-1px)}
.wa-btn svg{width:12px;height:12px;flex-shrink:0}
.cell-with-wa{display:flex;align-items:center;gap:6px;flex-wrap:wrap}

/* ── KPI / DASHBOARD ── */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:20px}
.kpi-card{background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}
.kpi-card::before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--pk)}
.kpi-card.kpi--mint::before{background:var(--mint)}
.kpi-card.kpi--navy::before{background:var(--navy)}
.kpi-l{font-size:.72rem;text-transform:uppercase;letter-spacing:.6px;color:var(--gray);font-weight:700;margin-bottom:8px}
.kpi-n{font-size:1.65rem;font-weight:800;color:var(--text);line-height:1.1;letter-spacing:-.02em}
.kpi-sub{font-size:.75rem;color:var(--gray);margin-top:4px}
.section-title{font-size:1.05rem;font-weight:800;letter-spacing:-.01em;margin:28px 0 14px}
.section-title:first-child{margin-top:0}

/* ── FUNNEL ── */
.funnel{display:flex;gap:10px;flex-wrap:wrap;align-items:stretch}
.funnel-step{flex:1;min-width:110px;background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:14px;text-align:center}
.funnel-n{font-size:1.3rem;font-weight:800;color:var(--pk)}
.funnel-l{font-size:.72rem;color:var(--gray);margin-top:2px}
.funnel-arrow{display:flex;align-items:center;color:var(--border2);font-size:1.2rem}

/* ── ACTIVIDAD RECIENTE ── */
.activity-list{display:flex;flex-direction:column}
.activity-item{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--border)}
.activity-item:first-child{border-top:none}
.activity-icon{width:34px;height:34px;border-radius:9px;background:var(--pk-light);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}
.activity-body{flex:1;min-width:0}
.activity-title{font-size:.86rem;font-weight:600}
.activity-sub{font-size:.76rem;color:var(--gray);margin-top:1px}
.activity-time{font-size:.72rem;color:var(--gray);white-space:nowrap}

/* ── PRÓXIMOS EVENTOS ── */
.event-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--border)}
.event-row:first-child{border-top:none}
.event-days{min-width:56px;text-align:center;background:var(--pk-light);color:var(--pk-dark);border-radius:8px;padding:6px 4px;font-size:.68rem;font-weight:700;line-height:1.2}
.event-days strong{display:block;font-size:1.1rem}

/* ── BUSCADOR / FILTROS TABLA ── */
.table-controls{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px;align-items:center}
.table-search{flex:1;min-width:180px}
.table-search input{max-width:320px}
.date-range-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.date-range-form input[type=date]{width:auto;padding:8px 10px;font-size:.8rem}
.date-range-form label{display:inline;text-transform:none;font-size:.72rem;letter-spacing:0;font-weight:600;margin:0}
.no-results-row td{text-align:center;color:var(--gray);padding:30px !important}

/* ── CLIENTES 360 ── */
.client-card{background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm);margin-bottom:14px}
.client-head{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:10px;margin-bottom:10px}
.client-name{font-size:1.05rem;font-weight:800;letter-spacing:-.01em}
.client-meta{font-size:.8rem;color:var(--gray);margin-top:2px}
.stage-track{display:flex;gap:4px;margin:12px 0;flex-wrap:wrap}
.stage-pill{font-size:.68rem;font-weight:700;padding:4px 10px;border-radius:20px;background:#f3f4f6;color:var(--gray)}
.stage-pill.done{background:var(--success-bg);color:var(--success)}
.client-timeline{margin-top:12px;border-top:1px solid var(--border);padding-top:12px}
.timeline-item{display:flex;gap:10px;font-size:.8rem;padding:5px 0}
.timeline-date{color:var(--gray);white-space:nowrap;min-width:78px}
.client-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}

/* ── TOAST ── */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--navy);color:#fff;padding:12px 20px;border-radius:10px;font-size:.85rem;font-weight:600;box-shadow:0 8px 30px rgba(0,0,0,.25);z-index:300;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ── RESPONSIVE ── */
@media(max-width:400px){
  body{font-size:14px}
  .topbar{padding:0 14px;height:52px}
  .page-wrap{padding:18px 12px 40px}
  .card{padding:20px 16px}
  .card-title{font-size:1.15rem}
  .stats-grid{gap:8px}
  .stat-n{font-size:1.4rem}
  .tabs{gap:4px;padding:6px}
  .tab-link{padding:7px 10px;font-size:.78rem}
  .modal{padding:20px 16px}
  .kpi-n{font-size:1.35rem}
  .funnel{flex-direction:column}
  .funnel-arrow{transform:rotate(90deg);justify-content:center;padding:2px 0}
}
@media(max-width:639px){
  .page-wrap--wide{padding:18px 14px 40px}
  .admin-header{flex-direction:column;align-items:flex-start}
  table{min-width:560px}
  .table-controls{flex-direction:column;align-items:stretch}
  .table-search input{max-width:none}
  .dash-cols{grid-template-columns:1fr !important}
}
