/* ============================================================
   Replicarte · Portal cliente · Hoja de estilos (rediseño 2026)
   Editorial claro · mobile-first · app-shell en escritorio.
   Mismas clases que usan las plantillas PHP del portal.
   ============================================================ */

:root {
  --rpc-paper:#f4f2ec;
  --rpc-surface:#ffffff;
  --rpc-inset:#faf8f4;
  --rpc-ink:#1c1b19;
  --rpc-muted:#6f6b64;
  --rpc-dim:#9a958c;
  --rpc-line:rgba(28,27,25,.09);
  --rpc-line2:rgba(28,27,25,.14);
  --rpc-accent:#dc2626;
  --rpc-accent-soft:#ef4444;
  --rpc-accent-tint:rgba(220,38,38,.085);
  --rpc-accent-line:rgba(220,38,38,.24);
  --rpc-green:#15803d;  --rpc-green-bg:rgba(21,128,61,.10);
  --rpc-amber:#b45309;  --rpc-amber-bg:rgba(180,83,9,.10);
  --rpc-info:#2563eb;   --rpc-info-bg:rgba(37,99,235,.09);
  --rpc-radius:18px;
  --rpc-radius-sm:12px;
  --rpc-shadow:0 1px 2px rgba(28,27,25,.04),0 14px 30px -24px rgba(28,27,25,.4);
  --rpc-shadow-sm:0 1px 2px rgba(28,27,25,.04);
  --rpc-font:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --rpc-display:'Outfit','Inter',system-ui,sans-serif;
  /* Compatibilidad con estilos inline antiguos que aún referencien estas vars */
  --text:var(--rpc-ink); --text-muted:var(--rpc-muted); --text-dim:var(--rpc-dim);
  --accent:var(--rpc-accent); --accent-soft:var(--rpc-accent);
  --portal-border:var(--rpc-line); --font-display:var(--rpc-display); --green:var(--rpc-green);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--rpc-paper);
  color:var(--rpc-ink);
  font-family:var(--rpc-font);
  font-size:15px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{-webkit-tap-highlight-color:transparent}
::selection{background:rgba(220,38,38,.16)}
img{max-width:100%;display:block}

/* ── Scrollbar sutil ─────────────────────────────────────── */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:rgba(28,27,25,.18);border-radius:6px;border:3px solid var(--rpc-paper)}
::-webkit-scrollbar-thumb:hover{background:rgba(28,27,25,.3)}

/* ════════════════════════════════════════════════════════
   SHELL · móvil (base) → escritorio (≥980px)
   ════════════════════════════════════════════════════════ */
.rpc-topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 16px;
  background:var(--rpc-surface);
  border-bottom:1px solid var(--rpc-line);
  position:sticky;top:0;z-index:60;
  padding-top:calc(12px + env(safe-area-inset-top));
}
.rpc-topbar .rpc-logo{
  font-family:var(--rpc-display);font-weight:700;font-size:21px;
  letter-spacing:-.02em;color:var(--rpc-ink);text-decoration:none;
  display:inline-flex;align-items:flex-end;
}
.rpc-logo span{color:var(--rpc-accent)}
.rpc-logo i{width:5px;height:5px;border-radius:50%;background:var(--rpc-accent);margin:0 0 5px 2px}
.rpc-burger{
  width:44px;height:44px;display:flex;flex-direction:column;justify-content:center;
  gap:5px;background:none;border:none;cursor:pointer;padding:10px;
}
.rpc-burger span{display:block;height:2px;width:100%;background:var(--rpc-ink);border-radius:2px;transition:.25s}
.rpc-burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.rpc-burger.open span:nth-child(2){opacity:0}
.rpc-burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.rpc-backdrop{
  position:fixed;inset:0;background:rgba(28,27,25,.42);
  opacity:0;pointer-events:none;transition:opacity .28s;z-index:90;
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
}
.rpc-backdrop.open{opacity:1;pointer-events:auto}
body.rpc-locked{overflow:hidden}

.rpc-sidebar{
  position:fixed;top:0;left:0;bottom:0;width:284px;max-width:85vw;
  background:var(--rpc-paper);border-right:1px solid var(--rpc-line);
  padding:24px 16px calc(24px + env(safe-area-inset-bottom));
  display:flex;flex-direction:column;gap:18px;overflow-y:auto;
  transform:translateX(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);
  z-index:100;
}
.rpc-sidebar.open{transform:none;box-shadow:18px 0 50px rgba(28,27,25,.18)}

.rpc-brand{
  font-family:var(--rpc-display);font-weight:700;font-size:23px;letter-spacing:-.02em;
  color:var(--rpc-ink);text-decoration:none;display:inline-flex;align-items:flex-end;padding:2px 6px;
}
.rpc-brand span{color:var(--rpc-accent)}
.rpc-brand i{width:5px;height:5px;border-radius:50%;background:var(--rpc-accent);margin:0 0 5px 2px}

.rpc-who{
  display:flex;align-items:center;gap:12px;padding:13px 14px;
  background:var(--rpc-surface);border:1px solid var(--rpc-line);
  border-radius:16px;box-shadow:var(--rpc-shadow-sm);
}
.rpc-avatar{
  width:42px;height:42px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(140deg,#f4d9cf,#e7b9ab);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--rpc-display);font-weight:700;font-size:16px;color:#8a3b27;
  box-shadow:inset 0 0 0 1px rgba(28,27,25,.06);
}
.rpc-who-name{font-family:var(--rpc-display);font-weight:600;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rpc-who-sub{font-size:12px;color:var(--rpc-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.rpc-nav{display:flex;flex-direction:column;gap:2px}
.rpc-nav a{
  display:flex;align-items:center;gap:12px;min-height:46px;padding:10px 13px;
  border-radius:10px;color:var(--rpc-muted);text-decoration:none;
  font-size:15px;font-weight:500;position:relative;transition:background .15s,color .15s;
}
.rpc-nav a svg{width:19px;height:19px;flex-shrink:0}
.rpc-nav a:hover{background:rgba(28,27,25,.05);color:var(--rpc-ink)}
.rpc-nav a.active{background:var(--rpc-accent-tint);color:var(--rpc-accent);font-weight:600}
.rpc-nav a.active::before{content:"";position:absolute;left:-6px;top:50%;transform:translateY(-50%);width:3px;height:18px;border-radius:2px;background:var(--rpc-accent)}
.rpc-nav hr{border:none;border-top:1px solid var(--rpc-line);margin:12px 6px}
.rpc-nav .rpc-nav-min{font-size:13.5px;color:var(--rpc-dim);min-height:42px}
.rpc-nav .rpc-nav-min:hover{color:var(--rpc-muted);background:rgba(28,27,25,.035)}
.rpc-nav .rpc-nav-min.danger:hover{color:var(--rpc-accent);background:var(--rpc-accent-tint)}

.rpc-main{display:block}
.rpc-content{max-width:1320px;margin:0 auto;padding:22px 16px calc(80px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:24px}

@media (min-width:980px){
  .rpc-topbar{display:none}
  .rpc-backdrop{display:none}
  body.rpc-locked{overflow:auto}
  .rpc-shell{display:flex;align-items:flex-start}
  .rpc-sidebar{position:sticky;top:0;height:100vh;width:262px;max-width:none;transform:none;flex-shrink:0;box-shadow:none;padding:30px 18px}
  .rpc-main{flex:1;min-width:0;display:flex;justify-content:center}
  .rpc-content{width:100%;padding:34px clamp(20px,4vw,56px) 80px;gap:30px}
  .rpc-nav a{font-size:14.5px;min-height:44px}
}

/* ════════════════════════════════════════════════════════
   CABECERA DE PÁGINA
   ════════════════════════════════════════════════════════ */
.rpc-eyebrow{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--rpc-dim)}
.rpc-eyebrow::before{content:"";width:16px;height:1.5px;background:var(--rpc-accent);display:inline-block}
.portal-header h1{font-family:var(--rpc-display);font-weight:700;font-size:clamp(25px,6vw,40px);letter-spacing:-.025em;line-height:1.08;margin:11px 0 0}
.portal-header p{margin:9px 0 0;color:var(--rpc-muted);font-size:15px;max-width:64ch}
.portal-header .rpc-greeting{font-size:clamp(27px,7vw,40px)}

/* ════════════════════════════════════════════════════════
   TARJETAS · SECCIONES
   ════════════════════════════════════════════════════════ */
.card{
  background:var(--rpc-surface);border:1px solid var(--rpc-line);
  border-radius:var(--rpc-radius);padding:clamp(18px,4vw,24px);
  box-shadow:var(--rpc-shadow);
}
.card.is-accent{border-color:var(--rpc-accent-line)}
.card-h{font-family:var(--rpc-display);font-weight:600;font-size:16px;margin:0 0 16px;letter-spacing:-.01em}

.rpc-section{display:flex;flex-direction:column;gap:16px}
.rpc-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid var(--rpc-line)}
.rpc-section-head h2{font-family:var(--rpc-display);font-weight:600;font-size:17px;letter-spacing:-.01em;margin:0}
.rpc-section-head .muted{color:var(--rpc-dim);font-weight:500}
.rpc-section-head p{margin:5px 0 0;font-size:13px;color:var(--rpc-dim)}
.rpc-link{display:inline-flex;align-items:center;gap:5px;font-size:13.5px;font-weight:600;color:var(--rpc-accent);text-decoration:none;flex-shrink:0}
.rpc-link svg{width:16px;height:16px;transition:transform .15s}
.rpc-link:hover svg{transform:translateX(2px)}

/* ════════════════════════════════════════════════════════
   AVISO DESTACADO (banner de atención)
   ════════════════════════════════════════════════════════ */
.rpc-attention{
  display:flex;align-items:center;gap:14px;padding:16px 18px;
  background:var(--rpc-surface);border:1px solid var(--rpc-line);
  border-left:3px solid var(--rpc-accent);border-radius:14px;
  text-decoration:none;color:inherit;box-shadow:var(--rpc-shadow);
}
.rpc-attention:hover{transform:translateY(-2px)}
.rpc-attention .ic{width:40px;height:40px;border-radius:11px;flex-shrink:0;background:var(--rpc-accent-tint);color:var(--rpc-accent);display:flex;align-items:center;justify-content:center}
.rpc-attention .ic svg{width:20px;height:20px}
.rpc-attention .tx{flex:1;min-width:0}
.rpc-attention .tx b{font-family:var(--rpc-display);font-weight:600;font-size:15.5px;display:block}
.rpc-attention .tx span{font-size:13.5px;color:var(--rpc-muted)}
.rpc-attention .go{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;color:var(--rpc-accent)}
.rpc-attention .go svg{width:17px;height:17px}

/* ════════════════════════════════════════════════════════
   MÉTRICAS DE CANAL
   ════════════════════════════════════════════════════════ */
.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.metric-block{position:relative;background:var(--rpc-surface);border:1px solid var(--rpc-line);border-radius:var(--rpc-radius);padding:clamp(18px,4vw,24px);box-shadow:var(--rpc-shadow);overflow:hidden;transition:transform .18s,box-shadow .18s}
.metric-block:hover{transform:translateY(-3px);box-shadow:0 4px 8px rgba(28,27,25,.05),0 24px 44px -26px rgba(28,27,25,.5)}
.metric-block.metric-yt::after{content:"";position:absolute;top:0;left:0;right:0;height:2.5px;background:var(--rpc-accent)}
.metric-platform{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.metric-platform .name{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--rpc-ink)}
.metric-platform .name svg{width:17px;height:17px}
.metric-yt .metric-platform .name{color:var(--rpc-accent)}
.metric-handle{font-size:11.5px;color:var(--rpc-dim)}
.metric-val{font-family:var(--rpc-display);font-weight:800;font-size:clamp(30px,8vw,36px);letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.metric-lbl{font-size:12.5px;color:var(--rpc-muted);margin-top:7px;text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.metric-sub{display:flex;gap:18px;margin-top:16px;padding-top:14px;border-top:1px solid var(--rpc-line)}
.metric-sub .n{font-family:var(--rpc-display);font-weight:700;font-size:16px;font-variant-numeric:tabular-nums}
.metric-sub .l{font-size:11.5px;color:var(--rpc-dim);margin-top:1px}
.metric-delta{display:inline-flex;align-items:center;gap:5px;margin-top:14px;padding:3px 9px;border-radius:999px;background:var(--rpc-green-bg);color:var(--rpc-green);font-size:11.5px;font-weight:600}
.metric-delta svg{width:13px;height:13px}

/* ════════════════════════════════════════════════════════
   FILAS (servicios, pedidos, vídeos, sesiones)
   ════════════════════════════════════════════════════════ */
.rpc-rows{display:flex;flex-direction:column;gap:10px}
.rpc-row{display:flex;align-items:center;gap:14px;padding:13px;background:var(--rpc-surface);border:1px solid var(--rpc-line);border-radius:14px;box-shadow:var(--rpc-shadow-sm);transition:border-color .18s,transform .18s}
.rpc-row:hover{border-color:var(--rpc-line2)}
.rpc-row .ic{width:40px;height:40px;border-radius:11px;flex-shrink:0;background:var(--rpc-inset);border:1px solid var(--rpc-line);color:var(--rpc-muted);display:flex;align-items:center;justify-content:center}
.rpc-row .ic svg{width:19px;height:19px}
.rpc-row .bd{flex:1;min-width:0}
.rpc-row .ti{font-family:var(--rpc-display);font-weight:600;font-size:14.5px}
.rpc-row .me{font-size:12.5px;color:var(--rpc-muted);margin-top:3px}
.rpc-row .rt{text-align:right;flex-shrink:0}
.rpc-row .rt .me{margin-top:6px;font-size:11.5px;color:var(--rpc-dim)}

/* miniatura de vídeo */
.rpc-thumb{position:relative;width:108px;height:61px;border-radius:10px;flex-shrink:0;background:linear-gradient(135deg,#ece8e0,#f5f2eb);border:1px solid var(--rpc-line);display:flex;align-items:center;justify-content:center;overflow:hidden}
.rpc-thumb svg{width:22px;height:22px;stroke:#c3bdb1}
.rpc-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.rpc-thumb .tag{position:absolute;left:6px;bottom:6px;font-size:10px;font-weight:600;color:#fff;background:rgba(28,27,25,.55);padding:2px 6px;border-radius:5px}
.rpc-thumb.sm{width:80px;height:45px}
.rpc-thumb.sm svg{width:16px;height:16px}

/* ════════════════════════════════════════════════════════
   PÍLDORAS DE ESTADO
   ════════════════════════════════════════════════════════ */
.pill{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:999px;font-size:11.5px;font-weight:600;line-height:1.3;white-space:nowrap}
.pill .dot{width:6px;height:6px;border-radius:50%}
.pill svg{width:13px;height:13px}
.pill-active{background:var(--rpc-green-bg);color:var(--rpc-green)} .pill-active .dot{background:var(--rpc-green)}
.pill-warn{background:var(--rpc-amber-bg);color:var(--rpc-amber)} .pill-warn .dot{background:var(--rpc-amber)}
.pill-info{background:var(--rpc-info-bg);color:var(--rpc-info)} .pill-info .dot{background:var(--rpc-info)}
.pill-neutral{background:rgba(28,27,25,.05);color:var(--rpc-muted)} .pill-neutral .dot{background:var(--rpc-dim)}
.pill-error{background:var(--rpc-accent-tint);color:var(--rpc-accent)} .pill-error .dot{background:var(--rpc-accent)}

/* ════════════════════════════════════════════════════════
   BOTONES
   ════════════════════════════════════════════════════════ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:11px 18px;border-radius:10px;font-family:var(--rpc-font);font-weight:600;font-size:14px;cursor:pointer;text-decoration:none;border:1px solid transparent;transition:filter .15s,background .15s,transform .12s,border-color .15s;line-height:1.2}
.btn svg{width:16px;height:16px}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--rpc-accent);color:#fff;box-shadow:0 6px 16px -8px var(--rpc-accent-line)}
.btn-primary:hover{filter:brightness(1.05)}
.btn-secondary{background:var(--rpc-surface);color:var(--rpc-ink);border-color:var(--rpc-line2)}
.btn-secondary:hover{background:var(--rpc-inset)}
.btn-soft{background:var(--rpc-accent-tint);color:var(--rpc-accent);border-color:var(--rpc-accent-line)}
.btn-soft:hover{background:rgba(220,38,38,.12)}
.btn-success{background:var(--rpc-green);color:#fff}
.btn-success:hover{filter:brightness(1.05)}
.btn-sm{min-height:38px;padding:8px 14px;font-size:13px}
.btn-block{width:100%}

/* ════════════════════════════════════════════════════════
   FORMULARIOS
   ════════════════════════════════════════════════════════ */
.field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px}
.field>label{font-size:13px;font-weight:600;color:var(--rpc-muted)}
.field input,.field select,.field textarea{
  width:100%;padding:12px 14px;background:var(--rpc-inset);color:var(--rpc-ink);
  border:1px solid var(--rpc-line2);border-radius:10px;font-family:inherit;font-size:16px;
  transition:border-color .15s,background .15s;
}
.field textarea{min-height:80px;resize:vertical;line-height:1.5}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--rpc-accent);background:var(--rpc-surface)}
.field input:disabled{background:rgba(28,27,25,.04);color:var(--rpc-dim);cursor:not-allowed}
.field small{font-size:12.5px;color:var(--rpc-dim);line-height:1.4}
.field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}
.field-row .field{margin-bottom:0}
.rpc-check{display:flex;align-items:flex-start;gap:12px;padding:15px;background:var(--rpc-inset);border:1px solid var(--rpc-line);border-radius:12px;cursor:pointer;margin-bottom:20px}
.rpc-check input{width:19px;height:19px;flex-shrink:0;margin-top:1px;accent-color:var(--rpc-accent)}
.rpc-check b{font-weight:600}
.rpc-check .h{color:var(--rpc-dim);font-size:13px;margin-top:4px}

/* ════════════════════════════════════════════════════════
   TABLA (con conversión a tarjetas en móvil)
   ════════════════════════════════════════════════════════ */
.table-wrap{overflow-x:auto}
table.data{width:100%;border-collapse:collapse;font-size:14px}
table.data thead th{text-align:left;padding:0 14px 12px;color:var(--rpc-dim);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--rpc-line2);white-space:nowrap}
table.data thead th.r,table.data td.r{text-align:right}
table.data tbody td{padding:15px 14px;border-bottom:1px solid var(--rpc-line);vertical-align:middle}
table.data tbody tr:last-child td{border-bottom:none}
table.data tbody tr:hover td{background:var(--rpc-inset)}
table.data .amount{font-weight:700;font-family:var(--rpc-display);white-space:nowrap}
table.data .mono{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12.5px;color:var(--rpc-muted)}

@media (max-width:680px){
  table.data thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  table.data,table.data tbody,table.data tr,table.data td{display:block;width:100%}
  table.data tr{background:var(--rpc-surface);border:1px solid var(--rpc-line);border-radius:14px;padding:8px 16px;margin-bottom:12px;box-shadow:var(--rpc-shadow-sm)}
  table.data tbody td{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--rpc-line);text-align:right}
  table.data tbody td:last-child{border-bottom:none;padding-top:13px;justify-content:flex-end}
  table.data td::before{content:attr(data-label);color:var(--rpc-dim);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;text-align:left;flex-shrink:0}
  table.data td:last-child::before{display:none}
  table.data td.r{text-align:right}
  table.data .btn{width:100%}
}

/* ════════════════════════════════════════════════════════
   PLANES (pricing)
   ════════════════════════════════════════════════════════ */
.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.pricing-card{position:relative;display:flex;flex-direction:column;background:var(--rpc-surface);border:1px solid var(--rpc-line);border-radius:var(--rpc-radius);padding:24px;box-shadow:var(--rpc-shadow);transition:transform .18s,box-shadow .18s}
.pricing-card:hover{transform:translateY(-3px);box-shadow:0 4px 8px rgba(28,27,25,.05),0 22px 44px -24px rgba(28,27,25,.5)}
.pricing-card.featured{background:var(--rpc-accent-tint);border-color:var(--rpc-accent-line)}
.pricing-badge{position:absolute;top:14px;right:14px;padding:4px 11px;border-radius:999px;background:var(--rpc-accent);color:#fff;font-size:11px;font-weight:700;letter-spacing:.02em}
.pricing-ic{width:46px;height:46px;border-radius:13px;background:var(--rpc-inset);border:1px solid var(--rpc-line);color:var(--rpc-muted);display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.pricing-card.featured .pricing-ic{background:var(--rpc-surface);border-color:var(--rpc-accent-line);color:var(--rpc-accent)}
.pricing-ic svg{width:22px;height:22px}
.pricing-title{font-family:var(--rpc-display);font-weight:700;font-size:17px;margin:0 0 6px}
.pricing-price{font-family:var(--rpc-display);font-weight:800;font-size:28px;letter-spacing:-.02em;margin:0 0 12px}
.pricing-price span{font-size:13px;color:var(--rpc-dim);font-weight:500}
.pricing-desc{margin:0 0 16px;color:var(--rpc-muted);font-size:13.5px;line-height:1.6;flex-grow:1}
.pricing-features{list-style:none;padding:16px 0 0;margin:0 0 20px;border-top:1px solid var(--rpc-line);display:flex;flex-direction:column;gap:9px}
.pricing-card.featured .pricing-features{border-top-color:var(--rpc-accent-line)}
.pricing-features li{display:flex;gap:9px;align-items:flex-start;font-size:13px;color:var(--rpc-muted)}
.pricing-features li svg{width:15px;height:15px;margin-top:2px;flex-shrink:0;stroke:var(--rpc-accent)}

/* ════════════════════════════════════════════════════════
   ACCESOS RÁPIDOS
   ════════════════════════════════════════════════════════ */
.quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.quick-btn{display:flex;align-items:center;gap:12px;min-height:60px;padding:15px;background:var(--rpc-surface);border:1px solid var(--rpc-line);border-radius:14px;text-decoration:none;color:var(--rpc-ink);box-shadow:var(--rpc-shadow-sm);transition:transform .18s,border-color .18s,box-shadow .18s}
.quick-btn:hover{transform:translateY(-2px);border-color:var(--rpc-line2);box-shadow:0 6px 18px -12px rgba(28,27,25,.45)}
.quick-btn .ic{width:36px;height:36px;border-radius:10px;flex-shrink:0;background:var(--rpc-accent-tint);color:var(--rpc-accent);display:flex;align-items:center;justify-content:center}
.quick-btn .ic svg{width:18px;height:18px}
.quick-btn .lb{flex:1;font-weight:600;font-size:14px}
.quick-btn .ar{width:16px;height:16px;stroke:#c3bdb1;flex-shrink:0}

/* ════════════════════════════════════════════════════════
   2 COLUMNAS (dashboard servicios + facturación)
   ════════════════════════════════════════════════════════ */
.rpc-2col{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:20px;align-items:start}
.rpc-stack{display:flex;flex-direction:column;gap:16px}
.rpc-billcard{background:var(--rpc-accent-tint);border:1px solid var(--rpc-accent-line);border-radius:var(--rpc-radius);padding:clamp(18px,4vw,24px)}
.rpc-billcard .lab{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--rpc-accent)}
.rpc-billcard .lab svg{width:14px;height:14px}
.rpc-billcard .big{font-family:var(--rpc-display);font-weight:800;font-size:30px;letter-spacing:-.02em;margin-top:10px;font-variant-numeric:tabular-nums}
.rpc-billcard .sub{font-size:13px;color:var(--rpc-muted);margin-top:4px}
@media (max-width:780px){.rpc-2col{grid-template-columns:1fr}}

/* stat grid (suscripción activa) */
.rpc-statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:18px;padding:18px 0;border-top:1px solid var(--rpc-line);border-bottom:1px solid var(--rpc-line)}
.rpc-stat .k{font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:600;color:var(--rpc-dim)}
.rpc-stat .v{font-family:var(--rpc-display);font-size:22px;font-weight:800;margin-top:5px;letter-spacing:-.02em;display:flex;align-items:center;gap:6px}
.rpc-stat .v span{font-size:13px;color:var(--rpc-dim);font-weight:500}
.rpc-stat .v.date{font-size:17px;font-weight:700}

/* ════════════════════════════════════════════════════════
   ESTADO VACÍO
   ════════════════════════════════════════════════════════ */
.rpc-empty{background:var(--rpc-surface);border:1px solid var(--rpc-line);border-radius:var(--rpc-radius);padding:48px 24px;text-align:center;box-shadow:var(--rpc-shadow-sm)}
.rpc-empty .ic{width:58px;height:58px;border-radius:16px;margin:0 auto 18px;background:var(--rpc-inset);border:1px solid var(--rpc-line);display:flex;align-items:center;justify-content:center;color:var(--rpc-dim)}
.rpc-empty .ic svg{width:26px;height:26px}
.rpc-empty h3{font-family:var(--rpc-display);font-weight:600;font-size:18px;margin:0 0 8px}
.rpc-empty p{margin:0 auto;color:var(--rpc-muted);font-size:14.5px;max-width:52ch;line-height:1.6}

/* ════════════════════════════════════════════════════════
   AVISOS (flash)
   ════════════════════════════════════════════════════════ */
.alert{display:flex;align-items:flex-start;gap:11px;padding:14px 18px;border-radius:14px;font-size:14px;line-height:1.5;border:1px solid transparent}
.alert svg{width:19px;height:19px;flex-shrink:0;margin-top:1px}
.alert-success{background:var(--rpc-green-bg);border-color:rgba(21,128,61,.25);color:var(--rpc-green)}
.alert-error{background:var(--rpc-accent-tint);border-color:var(--rpc-accent-line);color:var(--rpc-accent)}
.alert-info{background:var(--rpc-info-bg);border-color:rgba(37,99,235,.25);color:var(--rpc-info)}
.alert-warn{background:var(--rpc-amber-bg);border-color:rgba(180,83,9,.25);color:var(--rpc-amber)}

/* ════════════════════════════════════════════════════════
   DESPLEGABLES (<details>)
   ════════════════════════════════════════════════════════ */
details summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--rpc-accent);padding:9px 13px;border:1px solid var(--rpc-accent-line);border-radius:9px;background:var(--rpc-accent-tint);min-height:40px;box-sizing:border-box}
details summary::-webkit-details-marker{display:none}
details summary svg{width:15px;height:15px}
.rpc-info-card{display:flex;gap:14px;align-items:flex-start;background:var(--rpc-inset);border:1px solid var(--rpc-line);border-radius:16px;padding:20px 22px}
.rpc-info-card .ic{width:34px;height:34px;border-radius:10px;flex-shrink:0;background:var(--rpc-surface);border:1px solid var(--rpc-line);color:var(--rpc-muted);display:flex;align-items:center;justify-content:center}
.rpc-info-card .ic svg{width:18px;height:18px}
.rpc-info-card h3{font-family:var(--rpc-display);font-weight:600;font-size:14.5px;margin:0 0 6px}
.rpc-info-card p,.rpc-info-card ul{margin:0;color:var(--rpc-muted);font-size:13.5px;line-height:1.65}
.rpc-info-card ul{padding-left:18px}

/* ════════════════════════════════════════════════════════
   QR 2FA
   ════════════════════════════════════════════════════════ */
.rpc-qr{width:138px;height:138px;background:#fff;border:1px solid var(--rpc-line2);border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:8px;box-sizing:content-box}
.rpc-code{display:block;padding:11px 14px;background:var(--rpc-surface);border:1px solid var(--rpc-line2);border-radius:9px;font-family:ui-monospace,monospace;font-size:14px;letter-spacing:.1em;text-align:center;color:var(--rpc-ink);user-select:all}

/* ════════════════════════════════════════════════════════
   UTILIDADES
   ════════════════════════════════════════════════════════ */
.text-muted{color:var(--rpc-muted)}
.text-dim{color:var(--rpc-dim)}
.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mb-0{margin-bottom:0}
.rpc-flex{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.rpc-status-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;background:var(--rpc-surface);border:1px solid var(--rpc-line);border-radius:999px;font-size:13px;font-weight:500;color:var(--rpc-muted);box-shadow:var(--rpc-shadow-sm);white-space:nowrap}
.rpc-status-chip .dot{width:7px;height:7px;border-radius:50%;background:var(--rpc-green);box-shadow:0 0 0 3px rgba(21,128,61,.16)}

/* ════════════════════════════════════════════════════════
   LOGIN / 2FA (pantallas pre-auth que usan estas clases)
   ════════════════════════════════════════════════════════ */
.login-wrap{max-width:440px;margin:0 auto;padding:clamp(48px,10vw,110px) 20px}
.login-card{padding:clamp(26px,6vw,40px);background:var(--rpc-surface);border:1px solid var(--rpc-line);border-radius:var(--rpc-radius);box-shadow:var(--rpc-shadow)}
.login-card h1{font-family:var(--rpc-display);font-size:clamp(22px,5vw,27px);font-weight:700;letter-spacing:-.02em;margin:0 0 8px;color:var(--rpc-ink)}
.login-card .sub{color:var(--rpc-muted);margin:0 0 26px;font-size:14.5px;line-height:1.5}
.login-wrap .rpc-logo,.login-wrap .rpc-brand{margin:0 auto 24px;justify-content:center}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
