/* ============================================================================
   IMPACTO — Tema visual compartido
   REGLA: todos los paneles (login, admin, reseller, editor, CRM) usan ESTE
   archivo. Misma estética en todos lados. Tokens tomados de Web/index.html.
   ============================================================================ */
@font-face{font-family:'Lovelo';src:url('../Web/assets/Lovelo-Black.ttf') format('truetype');font-weight:900;font-display:swap}

:root{
  --ink:#0A0A0F; --ink2:#13131b;
  --paper:#FFFFFF; --paper2:#F7F6FB;
  --muted:#5C5C6A; --muted2:#8E8E9C;
  --hair:#ECEAF2;
  --lav:#B2B1FF; --lav-deep:#6F6DF2;
  --peach:#F0CBBB; --pink:#E9B6D0; --mint:#A0FFB8; --cream:#FAE6D2;
  --display:'Lovelo','Arial Black',Impact,sans-serif;
  --sans:'Sora','Segoe UI',system-ui,-apple-system,sans-serif;
  --r:22px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--paper2);line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,.display{font-family:var(--display);font-weight:900;line-height:1;letter-spacing:.5px;text-transform:uppercase}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
::selection{background:var(--lav);color:#000}

/* logo */
.logo{font-family:var(--display);font-size:24px;color:var(--ink);letter-spacing:1px}
.logo .b{color:var(--lav-deep)}
.logo.light{color:#fff}.logo.light .b{color:var(--lav)}

/* botones (idénticos al sitio) */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--sans);font-weight:700;font-size:15px;
  padding:13px 24px;border-radius:50px;cursor:pointer;border:1px solid transparent;transition:.3s var(--ease);white-space:nowrap}
.btn .arr{transition:transform .3s var(--ease)} .btn:hover .arr{transform:translateX(4px)}
.btn-primary{background:var(--lav);color:#0A0A0F}
.btn-primary:hover{background:#c4c3ff;transform:translateY(-2px);box-shadow:0 14px 36px rgba(178,177,255,.45)}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{transform:translateY(-2px);box-shadow:0 14px 36px rgba(10,10,15,.28)}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.22)}
.btn-ghost:hover{border-color:var(--lav);color:var(--lav)}
.btn-line{background:transparent;color:var(--ink);border-color:var(--hair)}
.btn-line:hover{border-color:var(--ink)}
.btn-sm{padding:9px 16px;font-size:13.5px}
.btn:disabled{opacity:.5;cursor:default;transform:none}

/* tarjetas */
.card{background:#fff;border:1px solid var(--hair);border-radius:var(--r);padding:24px}
.card:hover{box-shadow:0 18px 50px rgba(20,20,40,.07)}

/* inputs */
.field{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}
label{font-size:13px;font-weight:600;color:var(--muted);letter-spacing:.3px}
input,select,textarea{font-family:var(--sans);font-size:15px;color:var(--ink);background:#fff;border:1px solid var(--hair);
  border-radius:14px;padding:12px 14px;outline:none;transition:.2s var(--ease);width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--lav);box-shadow:0 0 0 4px rgba(178,177,255,.18)}

/* chips / badges */
.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;letter-spacing:.4px;
  padding:5px 12px;border-radius:30px;background:var(--paper2);color:var(--muted);border:1px solid var(--hair)}
.badge.lav{background:rgba(178,177,255,.16);color:var(--lav-deep);border-color:transparent}
.badge.mint{background:rgba(160,255,184,.22);color:#1c7a3a;border-color:transparent}
.badge.pink{background:rgba(233,182,208,.22);color:#a23b6e;border-color:transparent}

/* tablas */
table{width:100%;border-collapse:collapse;font-size:14.5px}
th{text-align:left;font-weight:700;color:var(--muted);font-size:12.5px;letter-spacing:.4px;text-transform:uppercase;padding:12px 14px;border-bottom:1px solid var(--hair)}
td{padding:13px 14px;border-bottom:1px solid var(--hair)}
tr:hover td{background:var(--paper2)}

/* layout de panel: sidebar + contenido */
.shell{display:flex;min-height:100vh}
.side{width:248px;flex-shrink:0;background:var(--ink);color:#fff;padding:22px 16px;display:flex;flex-direction:column;gap:6px;position:sticky;top:0;height:100vh}
.side .logo{margin:6px 10px 18px}
.side a{display:flex;align-items:center;gap:11px;color:rgba(255,255,255,.78);font-size:14.5px;font-weight:500;padding:11px 14px;border-radius:12px;transition:.2s var(--ease);cursor:pointer}
.side a:hover{background:rgba(255,255,255,.07);color:#fff}
.side a.on{background:var(--lav);color:#0A0A0F;font-weight:700}
.side .sep{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding-top:12px}
.main{flex:1;display:flex;flex-direction:column;min-width:0}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 28px;background:#fff;border-bottom:1px solid var(--hair);position:sticky;top:0;z-index:10}
.topbar h1{font-size:22px;text-transform:none}
.topbar .who{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--muted)}
.avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--lav),var(--lav-deep));display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--display);font-size:16px}
.content{padding:28px;display:flex;flex-direction:column;gap:22px}

/* grilla de métricas */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}
.kpi{background:#fff;border:1px solid var(--hair);border-radius:18px;padding:20px}
.kpi .l{font-size:13px;color:var(--muted)}
.kpi .n{font-family:var(--display);font-size:34px;margin-top:8px}
.kpi .n .grad{background:linear-gradient(120deg,var(--lav),var(--pink));-webkit-background-clip:text;background-clip:text;color:transparent}

/* utilidades */
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.between{display:flex;align-items:center;justify-content:space-between;gap:12px}
.muted{color:var(--muted)} .grow{flex:1}
.section-title{font-family:var(--sans);font-weight:700;font-size:18px}
.hide{display:none!important}

@media(max-width:860px){
  .side{position:fixed;left:0;top:0;z-index:50;transform:translateX(-100%);transition:.3s var(--ease)}
  .side.open{transform:none}
  .content{padding:18px}
}
