/* RADAR Panel — estilos (línea visual RADAR: grafito + cian + menta) */
:root{
  --bg:#0B132B; --bg2:#111c33; --bg3:#16213f;
  --border:#243350; --border-soft:#1c2942;
  --text:#eaf0fb; --dim:#9fb0cc; --faint:#6b7c9c;
  --cyan:#00E5FF; --mint:#00FF87;
  --danger:#ff5a6a; --ok:#00FF87;
  --radius:14px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  background:var(--bg); color:var(--text); line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--cyan);text-decoration:none}
a:hover{opacity:.85}
.mono{font-family:'JetBrains Mono',ui-monospace,monospace}

/* ---- topbar ---- */
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 24px;border-bottom:1px solid var(--border-soft);
  background:var(--bg2);position:sticky;top:0;z-index:10;
}
.brand{display:flex;align-items:center;gap:11px;font-weight:800;letter-spacing:.14em;color:var(--text)}
.brand-logo{ width:52px; height:52px; flex:0 0 auto; display:block; }
.brand-name{ font-size:22px; height:0.788em; width:auto; display:block; }
.auth-box .brand .brand-logo{ width:52px; height:52px; }
.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--mint)}
.topnav{display:flex;gap:22px;align-items:center}
.topnav a{color:var(--dim);font-size:14px;font-weight:500}
.topnav a.active,.topnav a:hover{color:var(--text)}
.topnav .out{color:var(--faint);font-size:13px}

/* ---- layout ---- */
.wrap{max-width:1080px;margin:0 auto;padding:32px 24px}
.eyebrow{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--cyan);display:block;margin-bottom:8px}
h1{font-size:28px;font-weight:800;margin-bottom:6px}
h2{font-size:20px;font-weight:700;margin:28px 0 14px}
.sub{color:var(--dim);font-size:15px;margin-bottom:8px}

/* ---- cards / metric tiles ---- */
.grid{display:grid;gap:16px}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-2{grid-template-columns:repeat(2,1fr)}
@media(max-width:720px){.grid.cols-3,.grid.cols-2{grid-template-columns:1fr}}
.card{background:var(--bg2);border:1px solid var(--border-soft);border-radius:var(--radius);padding:22px}
.tile .label{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--faint)}
.tile .value{font-size:34px;font-weight:800;margin-top:8px;color:var(--mint)}
.tile .value.cyan{color:var(--cyan)}
.tile .foot{font-size:12px;color:var(--dim);margin-top:6px}

/* ---- auth ---- */
.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.auth-box{width:100%;max-width:420px;background:var(--bg2);border:1px solid var(--border-soft);
  border-radius:20px;padding:34px}
.auth-box .brand{justify-content:center;margin-bottom:6px;font-size:22px}
.auth-box .tagline{text-align:center;color:var(--dim);font-size:13px;margin-bottom:24px}
.tabs{display:flex;gap:8px;margin-bottom:22px;background:var(--bg);border-radius:12px;padding:5px}
.tabs a{flex:1;text-align:center;padding:9px;border-radius:8px;color:var(--dim);font-weight:600;font-size:14px}
.tabs a.active{background:var(--bg3);color:var(--text)}

/* ---- forms ---- */
label{display:block;font-size:13px;color:var(--dim);margin:14px 0 6px;font-weight:500}
input,select,textarea{
  width:100%;padding:12px 14px;background:var(--bg);border:1px solid var(--border);
  border-radius:10px;color:var(--text);font-size:15px;font-family:inherit;
}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--cyan)}
textarea{resize:vertical;min-height:90px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:520px){.row{grid-template-columns:1fr}}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  width:100%;padding:13px;border:none;border-radius:10px;cursor:pointer;
  font-weight:700;font-size:15px;font-family:inherit;margin-top:20px;
  background:linear-gradient(135deg,var(--cyan),var(--mint));color:#04121f}
.btn:hover{filter:brightness(1.05)}
.btn.ghost{background:transparent;border:1px solid var(--border);color:var(--text)}
.btn.sm{width:auto;padding:9px 16px;font-size:14px;margin-top:0}

/* ---- alerts ---- */
.alert{padding:12px 14px;border-radius:10px;font-size:14px;margin-bottom:16px}
.alert.err{background:rgba(255,90,106,.12);border:1px solid rgba(255,90,106,.4);color:#ffb0b8}
.alert.ok{background:rgba(0,255,135,.1);border:1px solid rgba(0,255,135,.35);color:#93ffce}

/* ---- table ---- */
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--border-soft)}
th{color:var(--faint);font-family:'JetBrains Mono',monospace;font-size:11px;
  letter-spacing:.08em;text-transform:uppercase;font-weight:600}
.badge{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700}
.badge.live{background:rgba(0,255,135,.15);color:var(--mint)}
.badge.pending{background:rgba(0,229,255,.15);color:var(--cyan)}
.badge.rejected{background:rgba(255,90,106,.15);color:var(--danger)}

.empty{text-align:center;color:var(--faint);padding:40px 20px;font-size:14px}

/* ===================== TEMA CLARO / OSCURO ===================== */
/* Oscuro es el default (:root de arriba). Claro se activa por elección
   manual (html[data-theme="light"]) o por el sistema si no hay elección. */
:root[data-theme="light"]{
  --bg:#eef2f8; --bg2:#ffffff; --bg3:#e7edf6;
  --border:#d3dcec; --border-soft:#e4eaf4;
  --text:#0e1a30; --dim:#46566f; --faint:#7a8aa3;
  --cyan:#0e8fa8; --mint:#0f9f6b; --danger:#d63a4b;
}
@media (prefers-color-scheme: light){
  :root:not([data-theme]){
    --bg:#eef2f8; --bg2:#ffffff; --bg3:#e7edf6;
    --border:#d3dcec; --border-soft:#e4eaf4;
    --text:#0e1a30; --dim:#46566f; --faint:#7a8aa3;
    --cyan:#0e8fa8; --mint:#0f9f6b; --danger:#d63a4b;
  }
}
html, body { background:var(--bg); color:var(--text); }
body { transition: background .2s ease, color .2s ease; }

/* botón de tema */
.theme-toggle{
  background:transparent; border:1px solid var(--border); color:var(--text);
  width:34px; height:34px; border-radius:9px; cursor:pointer; font-size:15px;
  display:inline-flex; align-items:center; justify-content:center; line-height:1;
}
.theme-toggle:hover{ border-color:var(--cyan); color:var(--cyan); }
.auth-box .theme-toggle{ position:absolute; top:16px; right:16px; }
.auth-box{ position:relative; }

/* ===== Escáner de cupones (v1.6) ===== */
.scan-reader{ width:100%; max-width:340px; margin:0 auto; border-radius:14px; overflow:hidden;
  border:1px solid var(--border); background:var(--bg); min-height:200px; }
.scan-reader video, .scan-reader img{ width:100% !important; display:block; }
.scan-result{ display:flex; gap:14px; align-items:center; margin-top:18px; padding:16px;
  border-radius:12px; font-size:14.5px; }
.scan-result[hidden]{ display:none; }
.scan-result.ok{ background:rgba(0,255,135,.12); border:1px solid rgba(0,255,135,.4); color:var(--mint); }
.scan-result.err{ background:rgba(255,90,106,.12); border:1px solid rgba(255,90,106,.4); color:#ffb0b8; }
.scan-result .sr-ico{ font-size:26px; line-height:1; }
.scan-result b{ color:var(--text); }
.scan-result .sr-sub{ color:var(--dim); font-size:12.5px; }

/* ===== Ver contraseña + recuperación (v1.7) ===== */
.pw-wrap{ position:relative; }
.pw-wrap input{ padding-right:44px; }
.pw-eye{
  position:absolute; right:8px; top:50%; transform:translateY(-50%);
  background:transparent; border:none; cursor:pointer; color:var(--faint);
  width:32px; height:32px; display:inline-flex; align-items:center; justify-content:center; padding:0;
}
.pw-eye:hover{ color:var(--cyan); }
.auth-foot{ text-align:center; margin-top:16px; font-size:13.5px; }
.auth-foot a{ color:var(--dim); }
.auth-foot a:hover{ color:var(--cyan); }

/* ===================== v1.8 · logo + responsive + módulos nuevos ===================== */

/* Wordmark: lambdas en verde menta (igual que el sitio) */
.brand .lam{ color:#00FF87 !important; }
.brand-panel{ color:var(--dim); font-weight:600; font-size:13px; }

/* topbar: agrupar nav + acciones a la derecha */
.topbar{ gap:16px; }
.topnav{ margin-left:auto; }
.topbar-actions{ display:flex; align-items:center; gap:10px; }
.nav-toggle{
  display:none; background:transparent; border:1px solid var(--border); color:var(--text);
  width:38px; height:38px; border-radius:9px; cursor:pointer; align-items:center; justify-content:center;
}
.nav-toggle:hover{ border-color:var(--cyan); color:var(--cyan); }

/* ayudas de formulario */
.field-sep{ height:1px; background:var(--border-soft); margin:20px 0 4px; }
.hint{ font-size:12.5px; color:var(--faint); margin:6px 0 2px; line-height:1.5; }

/* checkbox de aceptación (registro) */
.check{ display:flex; gap:10px; align-items:flex-start; margin:18px 0 4px; font-size:13.5px; color:var(--dim); font-weight:500; }
.check input{ width:18px; height:18px; margin-top:1px; flex:0 0 auto; accent-color:var(--mint); }
.check a{ color:var(--cyan); }

/* toggle tipo switch (WhatsApp on/off) */
.switch{ display:flex; align-items:center; gap:12px; margin:16px 0 4px; cursor:pointer; }
.switch input{ position:absolute; opacity:0; width:0; height:0; }
.switch .switch-track{
  width:46px; height:26px; border-radius:999px; background:var(--bg3); border:1px solid var(--border);
  position:relative; flex:0 0 auto; transition:background .18s ease, border-color .18s ease;
}
.switch .switch-thumb{
  position:absolute; top:2px; left:2px; width:20px; height:20px; border-radius:50%;
  background:var(--faint); transition:left .18s ease, background .18s ease;
}
.switch input:checked + .switch-track{ background:rgba(0,255,135,.18); border-color:var(--mint); }
.switch input:checked + .switch-track .switch-thumb{ left:22px; background:var(--mint); }
.switch input:focus-visible + .switch-track{ outline:2px solid var(--cyan); outline-offset:2px; }
.switch .switch-label{ font-weight:500; color:var(--dim); font-size:14px; }

/* foto de la tienda (cuenta) */
.store-photo{ display:flex; gap:14px; align-items:center; flex-wrap:wrap; margin-top:6px; }
.store-photo-preview{
  width:96px; height:96px; border-radius:12px; overflow:hidden; flex:0 0 auto;
  border:1px solid var(--border); background:var(--bg3); display:flex; align-items:center; justify-content:center;
}
.store-photo-preview img{ width:100%; height:100%; object-fit:cover; display:block; }
.store-photo-preview .no-photo{ font-size:11.5px; color:var(--faint); text-align:center; padding:6px; }
.store-photo-acciones{ flex:1 1 220px; display:flex; flex-direction:column; gap:8px; min-width:0; }
.store-photo-acciones input[type=file]{ width:100%; padding:9px 10px; }
.store-photo-acciones .btn.sm{ align-self:flex-start; }

/* selector de período (dashboard) */
.period-bar{ display:flex; flex-wrap:wrap; gap:8px; margin:6px 0 10px; }
.period{
  font-family:'JetBrains Mono',monospace; font-size:12.5px; font-weight:600; color:var(--dim);
  padding:8px 14px; border:1px solid var(--border); border-radius:999px; background:var(--bg2);
}
.period:hover{ border-color:var(--cyan); color:var(--text); opacity:1; }
.period.active{ background:var(--mint); border-color:var(--mint); color:#04160c; }
:root[data-theme="light"] .period.active{ color:#fff; }

/* tabla con scroll interno (no empuja la página) */
.table-card{ padding:0; }
.rank-n{ font-family:'JetBrains Mono',monospace; color:var(--faint); }

/* el lector de QR nunca desborda */
.scan-reader video, .scan-reader canvas, #reader video, #reader canvas{ max-width:100% !important; height:auto !important; }

/* ===================== responsive (celular) ===================== */
@media (max-width:760px){
  html, body{ overflow-x:hidden; }
  .wrap{ padding:22px 16px; }
  .topbar{ padding:12px 14px; position:relative; gap:8px; flex-wrap:nowrap; }
  /* el logo se achica en el celu para que siempre entre la hamburguesa */
  .brand-logo{ width:40px; height:40px; }
  .brand-name{ font-size:18px; height:1.084em; letter-spacing:.1em; }
  .brand-panel{ display:none; }
  .brand{ gap:8px; min-width:0; overflow:hidden; }
  /* las acciones (ES/PT, tema, menú) nunca se encogen ni se cortan */
  .topbar-actions{ flex:0 0 auto; gap:8px; }
  .nav-toggle{ display:inline-flex; flex:0 0 auto; }
  .topnav{
    position:absolute; top:100%; left:0; right:0; margin:0;
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--bg2); border-bottom:1px solid var(--border-soft);
    padding:6px 12px 12px; display:none; box-shadow:0 18px 40px -24px rgba(0,0,0,.6); z-index:20;
  }
  .topnav.open{ display:flex; }
  .topnav a{ padding:12px 6px; font-size:15px; }
  .topnav .out{ padding:12px 6px; font-size:13px; border-top:1px solid var(--border-soft); margin-top:4px; }
  .grid.cols-3, .grid.cols-2{ grid-template-columns:1fr; }
  h1{ font-size:23px; }
  h2{ font-size:18px; }
  .tile .value{ font-size:28px; }
  .card{ padding:18px; }
  table{ display:block; overflow-x:auto; white-space:nowrap; -webkit-overflow-scrolling:touch; }
  .scan-reader{ max-width:100%; }
}

/* ===== Atención RADAR (cuenta) · v1.8 ===== */
.support-card{ border-color:rgba(0,255,135,.25); }
.support-card .btn{ margin-top:16px; }
.support-card .btn svg{ flex:0 0 auto; }
:root[data-theme="light"] .support-card{ border-color:rgba(15,159,107,.35); }

/* ===== Mi cuenta · mosaico v1.8 ===== */
.account-grid{ display:grid; grid-template-columns:1.12fr .88fr; gap:16px; align-items:start; }
.col-stack{ display:flex; flex-direction:column; gap:16px; min-width:0; }
.col-stack .card{ margin:0; }

/* card de Términos (ancho completo) */
.legal-card{ margin-top:16px; border-color:var(--border); }
.legal-inner{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.legal-ico{
  width:52px; height:52px; border-radius:14px; flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
  background:rgba(0,229,255,.1); color:var(--cyan); border:1px solid var(--border-soft);
}
.legal-txt{ flex:1 1 260px; min-width:0; }
.legal-btn{ flex:0 0 auto; margin-left:auto; }

@media (max-width:760px){
  .account-grid{ grid-template-columns:1fr; }
  .legal-inner{ align-items:flex-start; }
  .legal-btn{ margin-left:0; width:100%; }
}

/* ===== Edición de ofertas · v1.8.3 ===== */
.editing-card{ border-color:rgba(0,229,255,.35); }
.edit-photo{ display:flex; gap:12px; align-items:center; margin:8px 0 10px; }
.edit-photo img{ width:72px; height:72px; object-fit:cover; border-radius:10px; border:1px solid var(--border); flex:0 0 auto; }
.edit-lock{ font-size:12px; color:var(--faint); font-family:'JetBrains Mono',monospace; margin-right:8px; }
input:disabled{ opacity:.55; cursor:not-allowed; }

/* v1.8.3 · legal card ahora vive dentro de la columna derecha */
.col-stack .legal-card{ margin-top:0; }
.col-stack .legal-inner{ flex-direction:column; align-items:flex-start; gap:12px; }
.col-stack .legal-btn{ margin-left:0; }

/* ===== v1.9: ficha de cliente (admin) ===== */
.crumbs{ margin:2px 0 10px; }
.crumbs a{ color:var(--dim); font-size:13px; }
.crumbs a:hover{ color:var(--cyan); }

/* ===== v1.9.1: vista previa de oferta (como en el sitio) ===== */
.prevov{
  position:fixed; inset:0; z-index:900; padding:20px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(2,6,12,.7); backdrop-filter:blur(4px);
}
.prevov[hidden]{ display:none; }
.prev-card{
  width:100%; max-width:420px; max-height:92vh; overflow-y:auto;
  background:var(--bg2); border:1px solid var(--border); border-radius:22px;
  position:relative; scrollbar-width:none;
}
.prev-card::-webkit-scrollbar{ display:none; }
.prev-close{
  position:absolute; top:12px; right:12px; z-index:2;
  width:34px; height:34px; border-radius:50%; border:1px solid var(--border);
  background:var(--bg2); color:var(--text); font-size:19px; cursor:pointer;
}
.prev-img{
  aspect-ratio:1/1; max-height:min(58vh,420px); background:#fff;
  border-radius:22px 22px 0 0; display:flex; align-items:center; justify-content:center;
  overflow:hidden;
}
.prev-img img{ width:100%; height:100%; object-fit:contain; display:block; }
.prev-noimg{ color:#8a94a6; font-size:13px; font-family:'JetBrains Mono',monospace; }
.prev-body{ padding:18px 20px 20px; }
.prev-com{
  font-family:'JetBrains Mono',monospace; font-size:11.5px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--faint);
}
.prev-title{ margin:6px 0 10px; font-size:20px; line-height:1.25; color:var(--text); }
.prev-prices{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.prev-price{ color:var(--mint); font-weight:800; font-size:26px; }
.prev-old{ color:var(--faint); text-decoration:line-through; font-size:15px; }
.prev-badge{
  background:var(--mint); color:#04160c; font-weight:800; font-size:12.5px;
  padding:4px 9px; border-radius:8px;
}
.prev-conv{
  margin-top:10px; font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--dim);
}
.prev-store{
  margin:14px 0 4px; border:1px solid var(--border-soft); border-radius:14px;
  overflow:hidden; background:var(--bg3);
}
.prev-store img{ width:100%; height:auto; max-height:220px; object-fit:cover; display:block; }
.prev-store .ps-txt{ padding:10px 14px; display:flex; flex-direction:column; gap:2px; }
.prev-store .ps-txt b{ font-size:14px; color:var(--text); }
.prev-store .ps-txt span{ font-size:12px; color:var(--dim); }
.prev-store[hidden]{ display:none; }
.prev-zona{ margin-top:10px; font-size:13px; color:var(--dim); }
.prev-actions{ display:flex; flex-direction:column; gap:10px; margin-top:16px; }
.prev-btn{
  display:flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 16px; border-radius:12px; font-weight:700; font-size:14px;
  border:1px solid var(--border); color:var(--text); text-decoration:none; cursor:default;
}
.prev-btn.ghost:hover{ border-color:var(--cyan); }
a.prev-btn{ cursor:pointer; }
.prev-btn.cupon{
  background:linear-gradient(90deg, var(--cyan), var(--mint)); color:#04122A;
  border:none; opacity:.9;
}
.prev-btn.wa{
  background:rgba(0,255,135,.12); color:var(--mint); border-color:rgba(0,255,135,.4);
}
.prev-btn.wa:hover{ background:var(--mint); color:#04160c; }
.prev-note{
  margin:14px 0 0; text-align:center; font-size:11.5px; color:var(--faint);
  font-family:'JetBrains Mono',monospace;
}
.prev-open{ cursor:pointer; }
td .prev-open{ color:var(--text); font-weight:600; }
td .prev-open:hover{ color:var(--cyan); }

/* ===== v1.9.3: switch de idioma ES/PT ===== */
.lang-switch{ display:inline-flex; border:1px solid var(--border); border-radius:8px; overflow:hidden; }
.lang-switch a{
  font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:600;
  padding:7px 10px; color:var(--faint); background:var(--bg2); line-height:1;
}
.lang-switch a:hover{ color:var(--text); }
.lang-switch a.active{ background:var(--mint); color:#04160c; }
:root[data-theme="light"] .lang-switch a.active{ color:#fff; }
.auth-lang{ position:absolute; top:16px; left:16px; }
@media (max-width:760px){ .lang-switch a{ padding:8px 9px; } }

/* ===== v1.9.4: rubro "Otro" editable ===== */
.rubro-otro{ width:100%; }

/* punto verde después del wordmark, igual que el sitio */
.brand-mark{ display:inline-flex; align-items:center; margin-left:-3px; }
.brand-mark svg{ height:11px; width:auto; display:block; }


/* en el celu, menos margen para no apretar los botones */
@media (max-width:760px){
  table td:last-child{ padding-right:16px; }
}

/* ===== v3.0: tabla "Mis ofertas" — layout limpio y definitivo ===== */
.ofertas-table{ table-layout:fixed; width:100%; }
/* Producto: puede saltar de línea, no empuja el resto */
.ofertas-table td:nth-child(1){ white-space:normal; word-break:break-word; padding-right:12px; }
/* Precio y Estado: en una línea, sin derramarse */
.ofertas-table td:nth-child(2),
.ofertas-table td:nth-child(3){ white-space:nowrap; }
.ofertas-table .badge{ font-size:12px; display:inline-block; }
/* Acciones: los 3 botones alineados a la derecha, con aire, sin cortar */
.ofertas-table td:nth-child(4){ white-space:nowrap; text-align:right; padding-right:6px; }
.offer-actions-cell{ display:inline-flex; gap:5px; align-items:center; }
.offer-actions-cell form{ margin:0; display:inline-flex; }
.ofertas-table .btn.sm{ padding:7px 9px; font-size:12px; white-space:nowrap; }

/* En pantallas chicas, la tabla se desliza en horizontal (nada se corta) */
@media (max-width:820px){
  .ofertas-table{ table-layout:auto; min-width:660px; }
  .table-card{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
}

/* ===== v3.4: editor de fotos (nivel 1) ===== */
#efOverlay{
  position:fixed; inset:0; z-index:80; display:none;
  align-items:center; justify-content:center;
  background:rgba(4,8,20,.78); backdrop-filter:blur(4px); padding:16px;
}
.ef-card{
  background:var(--bg2); border:1px solid var(--border); border-radius:18px;
  width:min(480px,100%); max-height:92vh; overflow:auto; padding:18px;
}
.ef-head{ font-weight:800; font-size:17px; margin-bottom:12px; }
.ef-canvas-wrap{ position:relative; }
#efCanvas{
  width:100%; aspect-ratio:1/1; height:auto; border-radius:12px;
  background:var(--bg3); cursor:grab; touch-action:none; display:block;
}
.ef-hint{
  position:absolute; bottom:8px; left:0; right:0; text-align:center;
  font-size:11.5px; color:var(--dim); pointer-events:none;
  text-shadow:0 1px 4px rgba(0,0,0,.7);
}
.ef-controls{ margin-top:14px; display:flex; flex-direction:column; gap:10px; }
.ef-row{ display:flex; align-items:center; gap:10px; }
.ef-row label{ min-width:76px; font-size:13px; color:var(--dim); margin:0; }
.ef-row input[type=range]{ flex:1; accent-color:var(--mint); }
.ef-btn{
  padding:9px 14px; border-radius:10px; border:1px solid var(--border);
  background:var(--bg3); color:var(--text); font-weight:600; font-size:13.5px; cursor:pointer;
}
.ef-btn.primary{
  background:linear-gradient(90deg,var(--cyan),var(--mint)); color:#04121f; border:none;
}
.ef-btn.ghost{ background:transparent; }
.ef-actions{ display:flex; justify-content:space-between; gap:10px; margin-top:16px; }

/* ===== v3.6: fotos adicionales (carrusel) ===== */
.extras-grid{ display:flex; gap:10px; flex-wrap:wrap; margin:8px 0 10px; }
.extra-item{ width:86px; cursor:pointer; }
.extra-item img{ width:86px; height:86px; object-fit:cover; border-radius:10px; border:1px solid var(--border-soft); display:block; }
.extra-del{ display:flex; align-items:center; gap:5px; font-size:11.5px; color:var(--dim); margin-top:4px; }

/* ===== plegable (details/summary) para listas largas ===== */
.plegable > summary{
  cursor:pointer; color:var(--mint); font-weight:600; font-size:13.5px;
  padding:6px 0; list-style:none; user-select:none;
}
.plegable > summary::-webkit-details-marker{ display:none; }
.plegable > summary::before{ content:'▸ '; }
.plegable[open] > summary::before{ content:'▾ '; }
.plegable[open] > summary{ margin-bottom:4px; }

/* ===== último acceso destacado ===== */
.ultimo-acceso{ display:flex; flex-direction:column; gap:2px; }
.ultimo-acceso .ua-label{ font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--dim); }
.ultimo-acceso .ua-fecha{ font-size:19px; font-weight:700; color:var(--mint); }
.ultimo-acceso .ua-dur{ font-size:12.5px; color:var(--faint); }

/* ===== miniatura de la foto en "Mis ofertas" ===== */
.oferta-nombre-cell{ display:flex; align-items:center; gap:10px; }
.oferta-mini{
  width:42px; height:42px; flex:0 0 42px;
  object-fit:cover; border-radius:8px;
  border:1px solid var(--border-soft, rgba(147,163,198,.2));
  background:var(--bg3, #131E40);
}
.oferta-mini.sin-foto{
  display:flex; align-items:center; justify-content:center;
  font-size:18px; opacity:.5;
}
.oferta-nombre-cell .prev-open{ min-width:0; }
@media (max-width:560px){
  .oferta-mini{ width:34px; height:34px; flex-basis:34px; }
}

/* ===== formulario de carga plegable (botón que despliega) ===== */
.form-plegable{ margin:0; }
.form-plegable > summary.btn-cargar-oferta{
  list-style:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center; gap:8px;
  padding:14px 18px; border-radius:12px;
  background:linear-gradient(90deg, var(--cyan, #00E5FF), var(--mint, #00FF87));
  color:#04121f; font-weight:800; font-size:15px;
  user-select:none; transition:filter .15s;
}
.form-plegable > summary.btn-cargar-oferta::-webkit-details-marker{ display:none; }
.form-plegable > summary.btn-cargar-oferta::before{ content:'＋ '; font-weight:700; }
.form-plegable > summary.btn-cargar-oferta:hover{ filter:brightness(1.06); }
.form-plegable[open] > summary.btn-cargar-oferta{
  background:var(--bg3, #131E40); color:var(--text, #EAF0FB);
  border:1px solid var(--border-soft, rgba(147,163,198,.25));
  margin-bottom:16px;
}
.form-plegable[open] > summary.btn-cargar-oferta::before{ content:'✕ '; font-weight:700; }
.form-plegable[open] > summary.btn-cargar-oferta{ font-size:14px; }

/* ===== layout de Mis ofertas: una sola columna a lo ancho ===== */
.ofertas-layout{
  display:block;                 /* una columna, no dos */
  max-width:900px; margin:0 auto;
}
.ofertas-layout > .card{ width:100%; }
/* la lista va debajo del botón, separada */
.ofertas-layout > .card + .card{ margin-top:18px; }

/* ===== botones de sección plegable (Historial / Pendientes) ===== */
.lista-plegable{ margin:0; }
.lista-plegable > summary.btn-seccion{
  list-style:none; cursor:pointer;
  display:flex; align-items:center; gap:10px;
  padding:16px 20px; font-weight:700; font-size:15px;
  color:var(--text, #EAF0FB); user-select:none;
}
.lista-plegable > summary.btn-seccion::-webkit-details-marker{ display:none; }
.lista-plegable > summary.btn-seccion::before{
  content:'▸'; color:var(--mint, #00FF87); font-size:13px; transition:transform .15s;
}
.lista-plegable[open] > summary.btn-seccion::before{ content:'▾'; }
.lista-plegable > summary.btn-seccion:hover{ background:rgba(147,163,198,.05); }
.lista-plegable .cuenta{
  margin-left:auto; background:var(--bg3, #131E40);
  color:var(--dim, #93A3C6); font-size:12.5px; font-weight:700;
  padding:2px 10px; border-radius:999px; min-width:24px; text-align:center;
}
.lista-plegable .cuenta.alerta{ background:rgba(255,196,0,.16); color:#ffca3a; }
.lista-body{ padding:0 20px 20px; }

/* ===== botones del CRM admin (Agregar comercio / Campaña / Abrir CRM) ===== */
.crm-acciones{ display:flex; flex-direction:column; gap:10px; max-width:760px; }
.crm-plegable{ margin:0; }
.crm-plegable > summary.btn-crm{
  list-style:none; cursor:pointer;
  display:flex; align-items:center; gap:10px;
  padding:15px 20px; border-radius:12px;
  background:var(--bg2, #0F1830); border:1px solid var(--border-soft, rgba(147,163,198,.2));
  color:var(--text, #EAF0FB); font-weight:700; font-size:15px;
  user-select:none; transition:border-color .15s, background .15s;
}
.crm-plegable > summary.btn-crm::-webkit-details-marker{ display:none; }
.crm-plegable > summary.btn-crm:hover{ border-color:var(--mint, #00FF87); }
.crm-plegable[open] > summary.btn-crm{
  background:linear-gradient(90deg, rgba(0,229,255,.10), rgba(0,255,135,.10));
  border-color:var(--mint, #00FF87);
}
.crm-plegable .cuenta{
  margin-left:auto; background:var(--bg3, #131E40);
  color:var(--dim, #93A3C6); font-size:12.5px; font-weight:700;
  padding:2px 10px; border-radius:999px;
}
