/* Layout: barra de pestanas fija, grilla de tarjetas verticales por vista, y
   una vista de analisis que entra por encima al tocar una tarjeta. */
:root{
  --bg:#f4f6f9; --surface:#ffffff; --surface-2:#eceff4;
  --ink:#14181f; --ink-2:#4e5767; --ink-3:#626b7e; --line:#d9dfe8;
  --accent:#0b4fd8; --accent-soft:#e3ecff;
  --good:#117a4a; --good-soft:#dff3e8; --bad:#a52020;
  --warn:#a35707; --warn-soft:#fbeeda;
  --cg:#6534e8; --cg-soft:#efe9ff;
  --gc:#0a7677; --gc-soft:#d8f2f2;
  --mx:#a35707; --mx-soft:#fbeeda;
  --fh:#4e5767; --fh-soft:#e7eaf0;
  --cy:#b0265f; --cy-soft:#fbe4ee;
  --vx:#0b6eb1; --vx-soft:#e1f1fb;
  --mm:#b42318; --mm-soft:#fee4e2;
  --tg:#15803d; --tg-soft:#dcfce7; --mt:#9a3412; --mt-soft:#ffedd5; --kt:#4338ca; --kt-soft:#e0e7ff;
  --sh:#be123c; --sh-soft:#ffe4e6; --ck:#4d7c0f; --ck-soft:#ecfccb; --gt:#854d0e; --gt-soft:#fef9c3;
  --font-sans:"IBM Plex Sans",system-ui,-apple-system,Segoe UI,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
  --shadow:0 1px 2px rgba(20,24,31,.05), 0 8px 24px -12px rgba(20,24,31,.18);
  --shadow-up:0 2px 4px rgba(20,24,31,.06), 0 20px 44px -16px rgba(20,24,31,.3);
  --curva:cubic-bezier(.2,.75,.3,1);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0e1117; --surface:#161b23; --surface-2:#1e242e; --ink:#e9edf4; --ink-2:#aab3c2;
    --ink-3:#838d9e; --line:#2b323d; --accent:#6c9bff; --accent-soft:#1a2740;
    --good:#4ec98b; --good-soft:#12301f; --bad:#ef8080; --warn:#fbbf24; --warn-soft:#2e2311;
    --cg:#a78bfa; --cg-soft:#241c3d; --gc:#5eead4; --gc-soft:#0f2d2c;
    --mx:#fbbf24; --mx-soft:#2e2311; --fh:#aab3c2; --fh-soft:#232a35;
    --cy:#f9a8d4; --cy-soft:#3a1024;
    --vx:#7dd3fc; --vx-soft:#0f2a3a;
    --mm:#fda29b; --mm-soft:#3d1512;
    --tg:#4ade80; --tg-soft:#0f2a1a; --mt:#fdba74; --mt-soft:#2e1a0e; --kt:#a5b4fc; --kt-soft:#1e1b4b;
    --sh:#fda4af; --sh-soft:#3b0d17; --ck:#bef264; --ck-soft:#1f2a0b; --gt:#fde047; --gt-soft:#2e2606;
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 24px -12px rgba(0,0,0,.6);
    --shadow-up:0 2px 4px rgba(0,0,0,.5), 0 20px 44px -16px rgba(0,0,0,.75);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0e1117; --surface:#161b23; --surface-2:#1e242e; --ink:#e9edf4; --ink-2:#aab3c2;
  --ink-3:#838d9e; --line:#2b323d; --accent:#6c9bff; --accent-soft:#1a2740;
  --good:#4ec98b; --good-soft:#12301f; --bad:#ef8080; --warn:#fbbf24; --warn-soft:#2e2311;
  --cg:#a78bfa; --cg-soft:#241c3d; --gc:#5eead4; --gc-soft:#0f2d2c;
  --mx:#fbbf24; --mx-soft:#2e2311; --fh:#aab3c2; --fh-soft:#232a35;
  --cy:#f9a8d4; --cy-soft:#3a1024;
  --vx:#7dd3fc; --vx-soft:#0f2a3a;
  --mm:#fda29b; --mm-soft:#3d1512;
  --tg:#4ade80; --tg-soft:#0f2a1a; --mt:#fdba74; --mt-soft:#2e1a0e; --kt:#a5b4fc; --kt-soft:#1e1b4b;
  --sh:#fda4af; --sh-soft:#3b0d17; --ck:#bef264; --ck-soft:#1f2a0b; --gt:#fde047; --gt-soft:#2e2606;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 24px -12px rgba(0,0,0,.6);
  --shadow-up:0 2px 4px rgba(0,0,0,.5), 0 20px 44px -16px rgba(0,0,0,.75);
  color-scheme:dark;
}
.c-cg{--c:var(--cg);--c-soft:var(--cg-soft)}
.c-gc{--c:var(--gc);--c-soft:var(--gc-soft)}
.c-mx{--c:var(--mx);--c-soft:var(--mx-soft)}
.c-fh{--c:var(--fh);--c-soft:var(--fh-soft)}
.c-cy{--c:var(--cy);--c-soft:var(--cy-soft)}
.c-vx{--c:var(--vx);--c-soft:var(--vx-soft)}
.c-mm{--c:var(--mm);--c-soft:var(--mm-soft)}
.c-tg{--c:var(--tg);--c-soft:var(--tg-soft)}
.c-mt{--c:var(--mt);--c-soft:var(--mt-soft)}
.c-kt{--c:var(--kt);--c-soft:var(--kt-soft)}
.c-sh{--c:var(--sh);--c-soft:var(--sh-soft)}
.c-ck{--c:var(--ck);--c-soft:var(--ck-soft)}
.c-gt{--c:var(--gt);--c-soft:var(--gt-soft)}

*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);line-height:1.55;margin:0}
.wrap{max-width:1120px;margin:0 auto;padding-inline:20px;padding-block:26px 64px}
h1{font-size:clamp(1.55rem,4vw,2.1rem);line-height:1.1;margin:0 0 6px;letter-spacing:-.03em;text-wrap:balance}
h2{font-size:1.2rem;margin:0 0 4px;letter-spacing:-.02em;text-wrap:balance}
h3{margin:0;font-size:1.02rem;letter-spacing:-.015em;text-wrap:balance}
.sub{color:var(--ink-2);margin:0;max-width:66ch;font-size:.94rem}
.meta{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.11em;margin:0 0 10px}
/* El JS completa el sello despues de pintar: se reservan las lineas que ocupa para que no empuje el titulo (CLS). */
#sello{min-height:1lh}
@media (max-width:820px){#sello{min-height:2lh}}
@media (max-width:440px){#sello{min-height:3lh}}
/* El JS llena #vista despues de pintar: ocupa una pantalla desde el principio para que el pie no salte (CLS). */
#vista{min-height:100vh}
.ico{width:1em;height:1em;flex:none;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
img{max-width:100%}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

@keyframes entra{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}
@keyframes entraPanel{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes entraDetalle{from{opacity:0;transform:translateY(22px) scale(.99)}to{opacity:1;transform:none}}

/* ---- Pestanas ---- */
.tabs{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--bg);
  padding-block:12px;margin-bottom:22px;border-bottom:1px solid var(--line)}
.tablist{display:flex;gap:4px;position:relative;overflow-x:auto;scrollbar-width:none;
  background:var(--surface-2);border-radius:12px;padding:4px}
.tablist::-webkit-scrollbar{display:none}
.tab{all:unset;cursor:pointer;flex:1 1 auto;text-align:center;white-space:nowrap;
  padding:9px 16px;border-radius:9px;font-size:.9rem;font-weight:500;color:var(--ink-2);
  display:flex;align-items:center;justify-content:center;gap:7px;
  transition:color .22s var(--curva),background .22s var(--curva)}
.tab:hover{color:var(--ink)}
.tab[aria-selected="true"]{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:var(--shadow)}
.tab .n{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-3);
  background:var(--bg);border-radius:5px;padding:0 5px}
.tab[aria-selected="true"] .n{color:var(--accent);background:var(--accent-soft)}

.panel{animation:entraPanel .32s var(--curva) both}
/* La vista que llega escrita en el HTML (generar_portada.js) ya esta al pintar: animarla desde opacidad 0
   solo atrasaba el LCP. Al navegar, la vista nueva se anima como siempre. */
.panel.quieta,.panel.quieta *{animation:none}
.panel-head{margin-bottom:18px}

/* ---- Grilla de tarjetas verticales ---- */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:18px;align-items:start}
.card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:16px;
  padding:0 0 20px;box-shadow:var(--shadow);overflow:hidden;cursor:pointer;text-align:left;
  display:flex;flex-direction:column;
  animation:entra .45s var(--curva) both;animation-delay:calc(var(--i,0)*80ms);
  transition:transform .28s var(--curva),box-shadow .28s,border-color .28s}
.card:hover,.card:focus-visible{transform:translateY(-6px);box-shadow:var(--shadow-up);border-color:var(--c)}
.card.dest{border-color:var(--good)}
.card .barra{height:5px;background:var(--c);flex:none}
.card.dest .barra{background:var(--good)}
.cinta{position:absolute;top:5px;right:0;background:var(--good);color:#fff;
  font:600 .65rem/1 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;
  padding:7px 12px;border-bottom-left-radius:11px;display:flex;align-items:center;gap:5px;z-index:2}
:root[data-theme="dark"] .cinta{color:#0e1117}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .cinta{color:#0e1117}}
.card .foto{height:150px;background:#fff;padding:14px;flex:none;overflow:hidden;
  border-bottom:1px solid var(--line)}
.card .foto img{width:100%;height:100%;object-fit:contain;display:block;transition:transform .35s var(--curva)}
.card:hover .foto img{transform:scale(1.07)}
.card .cuerpo{padding:16px 20px 0;display:flex;flex-direction:column;gap:9px;flex:1}
.rank{position:absolute;top:19px;left:14px;font-family:var(--font-mono);font-size:.92rem;font-weight:700;
  color:var(--c);background:var(--c-soft);border-radius:8px;width:30px;height:30px;
  display:grid;place-items:center;z-index:2}
.card.dest .rank{color:var(--good);background:var(--good-soft)}
.tienda{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--c);
  background:var(--c-soft);border-radius:999px;padding:3px 11px;font-size:.78rem;width:max-content}
.titular{color:var(--ink-2);font-size:.89rem;margin:0}
.precio{font-family:var(--font-mono);font-size:1.62rem;font-weight:700;letter-spacing:-.035em;
  font-variant-numeric:tabular-nums;color:var(--c);line-height:1.1}
.card.dest .precio{color:var(--good)}
.antes{font-family:var(--font-mono);font-size:.78rem;color:var(--ink-3);text-decoration:line-through;margin-left:7px}
.chips{display:flex;flex-wrap:wrap;gap:5px}
.chip{font:500 .71rem/1.7 var(--font-mono);padding:1px 8px;border-radius:6px;
  background:var(--surface-2);color:var(--ink-2)}
.chip.ok{background:var(--good-soft);color:var(--good)}
.chip.ojo{background:var(--warn-soft);color:var(--warn)}
.pie{margin-top:auto;padding-top:14px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.ver{font-size:.84rem;font-weight:600;color:var(--c);display:inline-flex;align-items:center;gap:5px;
  transition:gap .2s var(--curva)}
.card:hover .ver{gap:9px}
.ir{font-size:.78rem;color:var(--ink-3);display:inline-flex;align-items:center;gap:4px;text-decoration:none}
.ir:hover{color:var(--accent)}

/* ---- Vista de analisis ---- */
.detalle{animation:entraDetalle .36s var(--curva) both}
.volver{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:7px;font-size:.88rem;
  font-weight:600;color:var(--accent);margin-bottom:16px;padding:7px 13px;border-radius:9px;
  background:var(--accent-soft);transition:gap .2s var(--curva)}
.volver:hover{gap:11px}
.dcab{display:grid;grid-template-columns:auto 1fr auto;gap:20px;align-items:center;
  background:var(--surface);border:1px solid var(--c);border-radius:16px;padding:20px 24px;
  box-shadow:var(--shadow);margin-bottom:18px}
.dfoto{width:92px;height:92px;background:#fff;border-radius:12px;border:1px solid var(--line);
  padding:8px;flex:none;overflow:hidden}
.dfoto img{width:100%;height:100%;object-fit:contain;display:block}
.dsku{font-family:var(--font-mono);font-size:.76rem;color:var(--ink-3);margin:4px 0 8px}
.dprecio{text-align:right;white-space:nowrap}
.dprecio .v{font-family:var(--font-mono);font-size:1.75rem;font-weight:700;letter-spacing:-.035em;
  color:var(--c);display:block;font-variant-numeric:tabular-nums}
.dprecio .l{font-size:.76rem;color:var(--ink-3);display:block;margin-top:3px}
.dos{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:18px;margin-bottom:18px}
.bloque{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px 22px;
  box-shadow:var(--shadow);min-width:0}
.bloque h3{margin-bottom:12px;display:flex;align-items:center;gap:8px}
.lista{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;font-size:.9rem}
.lista li{color:var(--ink-2);padding-left:23px;position:relative}
.lista li::before{position:absolute;left:0;top:0;font-family:var(--font-mono);font-weight:700}
.lista li.p::before{content:"\2191";color:var(--good)}
.lista li.m::before{content:"\2193";color:var(--bad)}
.scroll{overflow-x:auto;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow)}
table{border-collapse:collapse;width:100%;min-width:560px;font-size:.88rem}
th,td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:middle}
thead th{background:var(--surface-2);font-size:.71rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-3);white-space:nowrap}
thead th.foco{color:var(--c)}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:var(--surface-2)}
tbody th{font-weight:500;color:var(--ink-2);font-size:.84rem;white-space:nowrap}
td{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.84rem;color:var(--ink-2)}
td.foco{color:var(--ink);font-weight:700;background:var(--c-soft)}
td.mejor{color:var(--good);font-weight:700}

/* ---- Tiendas ---- */
.wins{margin:12px 0 0;padding:0;list-style:none}
.wins li{border-top:1px dashed var(--line)}
.wins li:first-child{border-top:0}
.wins a{display:flex;align-items:center;gap:12px;padding:9px 10px;margin-inline:-10px;border-radius:10px;
  text-decoration:none;color:inherit;font-size:.88rem;transition:background .18s,padding-left .18s}
.wins a:hover{background:var(--c-soft);padding-left:16px}
.wins .mini{width:40px;height:40px;border-radius:8px;background:#fff;border:1px solid var(--line);
  padding:3px;flex:none;overflow:hidden}
.wins .mini img{width:100%;height:100%;object-fit:contain;display:block}
.wins .txt{flex:1;color:var(--ink-2);min-width:0}
.wins b{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--good);font-weight:700}
.flaco{margin:14px 0 0;font-size:.87rem;color:var(--ink-2);padding:11px 13px;background:var(--surface-2);
  border-radius:10px;display:flex;gap:9px;align-items:flex-start}
.flaco .ico{color:var(--bad);margin-top:3px}

/* ---- Veredicto ---- */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(186px,1fr));gap:14px;margin-bottom:20px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px;
  box-shadow:var(--shadow);animation:entra .45s var(--curva) both;animation-delay:calc(var(--i,0)*70ms)}
.tile.ok{border-color:var(--good);background:var(--good-soft)}
.tile .k{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}
.tile .v{font-family:var(--font-mono);font-size:1.3rem;font-weight:700;letter-spacing:-.03em;margin:3px 0 1px;
  font-variant-numeric:tabular-nums}
.tile.ok .v{color:var(--good)}
.tile .d{font-size:.82rem;color:var(--ink-2)}
.ver-item{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px 20px;
  margin-bottom:12px;box-shadow:var(--shadow);
  animation:entra .45s var(--curva) both;animation-delay:calc(var(--i,0)*70ms)}
.ver-item b{display:block;margin-bottom:5px}
.ver-item p{margin:0;color:var(--ink-2);font-size:.92rem}
.nota{margin-top:30px;font-size:.81rem;color:var(--ink-3);max-width:74ch}
.nota code{font-family:var(--font-mono);font-size:.95em;background:var(--surface-2);padding:1px 5px;border-radius:4px}

/* ---- Buscador ---- */
.buscador{position:relative;margin-bottom:18px}
.buscador input{width:100%;font:500 1.05rem var(--font-sans);padding:15px 18px 15px 50px;
  border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);
  box-shadow:var(--shadow);transition:border-color .2s,box-shadow .2s}
.buscador input:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-up)}
.buscador .ico{position:absolute;left:18px;top:50%;transform:translateY(-50%);font-size:1.2rem;color:var(--ink-3)}
.sugeridas{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:18px}
.sug{all:unset;cursor:pointer;font:500 .82rem var(--font-sans);padding:6px 13px;border-radius:999px;
  background:var(--surface-2);color:var(--ink-2);transition:background .18s,color .18s}
.sug:hover{background:var(--accent-soft);color:var(--accent)}
.estado{color:var(--ink-3);font-size:.9rem;margin:0 0 14px;font-family:var(--font-mono)}
.res{display:flex;flex-direction:column;gap:8px}
.fila{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);
  border-left:4px solid var(--c);border-radius:12px;padding:13px 16px;text-decoration:none;color:inherit;
  animation:entra .3s var(--curva) both;animation-delay:calc(var(--i,0)*18ms);
  transition:transform .18s var(--curva),box-shadow .18s,border-color .18s}
.fila:hover{transform:translateX(4px);box-shadow:var(--shadow);border-color:var(--c);border-left-color:var(--c)}
.fila.top{border-color:var(--good);border-left-color:var(--good);background:var(--good-soft)}
.fila .nom{flex:1;min-width:0;font-size:.92rem;line-height:1.35}
.fila .tie{font:600 .72rem/1 var(--font-mono);color:var(--c);background:var(--c-soft);
  padding:5px 10px;border-radius:999px;white-space:nowrap}
.fila .via{color:var(--ink-3);font-weight:500}
.fila .via::before{content:"\203A ";opacity:.7}
.fila .pre{font-family:var(--font-mono);font-weight:700;font-size:1.02rem;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ink)}
.fila.top .pre{color:var(--good)}
.fila .marca{background:var(--good);color:#fff;font:600 .64rem/1 var(--font-mono);letter-spacing:.07em;
  text-transform:uppercase;padding:5px 9px;border-radius:6px;white-space:nowrap}
:root[data-theme="dark"] .fila .marca{color:#0e1117}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .fila .marca{color:#0e1117}}
@media (max-width:620px){
  .fila{flex-wrap:wrap;gap:9px}
  .fila .nom{flex:1 1 100%;order:1}
  .fila .tie{order:2}.fila .marca{order:3}.fila .pre{order:4;margin-left:auto}
}

/* ---- Barra de exportacion ---- */
.acciones{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.acc{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:7px;
  font:600 .83rem var(--font-sans);padding:9px 14px;border-radius:10px;
  background:var(--surface);border:1px solid var(--line);color:var(--ink-2);box-shadow:var(--shadow);
  transition:transform .18s var(--curva),border-color .18s,color .18s,background .18s}
.acc:hover{transform:translateY(-2px);border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.acc[data-ok="1"]{border-color:var(--good);color:var(--good);background:var(--good-soft)}
.acc .ico{font-size:1.05rem}

/* ---- Indicio de que las pestanas se deslizan ----
   Ojo: no poner position aca, pisaria el sticky de la barra. */
.tabs::after{content:"";position:absolute;right:0;top:12px;bottom:13px;width:34px;pointer-events:none;
  background:linear-gradient(90deg,transparent,var(--bg));opacity:0;transition:opacity .2s}
.tabs[data-desborda="1"]::after{opacity:1}

/* ---- Impresion: queda solo el contenido ---- */
@media print{
  .tabs,.acciones,.buscador,.sugeridas,.volver,noscript,.nota{display:none!important}
  body{background:#fff;color:#000}
  .wrap{max-width:none;padding:0}
  .fila,.card,.st,.bloque,.tile,.ver-item,.scroll{break-inside:avoid;box-shadow:none;
    border:1px solid #bbb!important;background:#fff!important;color:#000!important;animation:none!important}
  .fila{border-left-width:4px!important}
  .fila .nom,.fila .pre,.precio,h1,h2,h3,td,th,.lista li,.titular{color:#000!important}
  .fila .tie,.chip,.tienda{background:#f0f0f0!important;color:#333!important}
  a{text-decoration:none;color:#000!important}
  .fila .pre::after{content:""}
  .pie-impresion{display:block!important}
}
.pie-impresion{display:none}

/* ---- Selector de categoria dentro de Comparativa ---- */
.segmentos{display:flex;gap:4px;background:var(--surface-2);border-radius:12px;padding:4px;
  margin-bottom:18px;overflow-x:auto;scrollbar-width:none}
.segmentos::-webkit-scrollbar{display:none}
.seg{all:unset;cursor:pointer;flex:1 1 auto;text-align:center;white-space:nowrap;padding:9px 16px;
  border-radius:9px;font:500 .88rem var(--font-sans);color:var(--ink-2);
  display:flex;align-items:center;justify-content:center;gap:7px;transition:all .22s var(--curva)}
.seg:hover{color:var(--ink)}
.seg[aria-selected="true"]{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:var(--shadow)}
.seg .n{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-3);background:var(--bg);
  border-radius:5px;padding:0 5px}
.seg[aria-selected="true"] .n{color:var(--accent);background:var(--accent-soft)}

/* ---- Ofertas ---- */
.oferta{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);
  border-left:4px solid var(--c);border-radius:12px;padding:13px 16px;text-decoration:none;color:inherit;
  animation:entra .3s var(--curva) both;animation-delay:calc(var(--i,0)*22ms);
  transition:transform .18s var(--curva),box-shadow .18s,border-color .18s}
.oferta:hover{transform:translateX(4px);box-shadow:var(--shadow);border-color:var(--c)}
.oferta .nom{flex:1;min-width:0;font-size:.92rem;line-height:1.35}
.oferta .tie{font:600 .72rem/1 var(--font-mono);color:var(--c);background:var(--c-soft);
  padding:5px 10px;border-radius:999px;white-space:nowrap}
.oferta .via{color:var(--ink-3);font-weight:500}
.oferta .via::before{content:"A ";opacity:.7}
.oferta .precios{text-align:right;white-space:nowrap}
.oferta .ahora{font-family:var(--font-mono);font-weight:700;font-size:1.02rem;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;color:var(--ink);display:block}
.oferta .antes{font-family:var(--font-mono);font-size:.76rem;color:var(--ink-3);text-decoration:line-through}
.grupo{display:flex;align-items:center;gap:9px;font-size:1.05rem;letter-spacing:-.01em;margin:26px 0 2px}
.grupo:first-child{margin-top:0}
.cuenta{font:600 .72rem/1 var(--font-mono);color:var(--ink-3);background:var(--surface-2);
  padding:4px 8px;border-radius:6px}
.sub.chico{font-size:.86rem;margin-bottom:12px}
#resOf .res{margin-bottom:4px}
.off.propia{background:var(--accent)}
.off{background:var(--good);color:#fff;font:700 .72rem/1 var(--font-mono);padding:6px 9px;
  border-radius:7px;white-space:nowrap}
:root[data-theme="dark"] .off{color:#0e1117}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .off{color:#0e1117}}
.lupita{all:unset;cursor:pointer;color:var(--ink-3);padding:6px;border-radius:8px;display:inline-flex;
  transition:color .18s,background .18s}
.lupita:hover{color:var(--accent);background:var(--accent-soft)}

/* ---- Historial de busquedas ---- */
.historial{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin:-6px 0 16px}
.historial .et{font:500 .76rem var(--font-mono);color:var(--ink-3);display:inline-flex;align-items:center;gap:5px}
.hist{all:unset;cursor:pointer;font:500 .82rem var(--font-sans);padding:5px 11px;border-radius:999px;
  background:var(--accent-soft);color:var(--accent);display:inline-flex;align-items:center;gap:7px;
  transition:filter .18s}
.hist:hover{filter:brightness(.95)}
.hist .x{color:var(--ink-3);font-weight:700;padding:0 2px}
.hist .x:hover{color:var(--bad)}
@media (max-width:620px){
  .oferta{flex-wrap:wrap;gap:9px}
  .oferta .nom{flex:1 1 100%;order:1}
  .oferta .tie{order:2}.off{order:3}.oferta .precios{order:4;margin-left:auto}
  .seg{padding:9px 12px;font-size:.82rem}
}

/* ---- Sellos de calidad en los resultados ---- */
.sellos{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.precio-hist{display:block;margin-top:4px;font-size:.78rem;color:var(--ink-2)}
.sello{font:600 .67rem/1.5 var(--font-mono);letter-spacing:.03em;padding:2px 7px;border-radius:5px;
  background:var(--surface-2);color:var(--ink-3)}
.sello.primera{background:var(--accent-soft);color:var(--accent)}
.sello.conocida{background:var(--surface-2);color:var(--ink-2)}
.sello.baja{background:var(--accent);color:#fff}
.sello.off2{background:var(--good-soft);color:var(--good)}
.sello.barato{background:var(--good);color:#fff}
.sello.ojo{background:var(--warn-soft);color:var(--warn)}
:root[data-theme="dark"] .sello.baja,:root[data-theme="dark"] .sello.barato{color:#0e1117}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .sello.baja,
  :root:not([data-theme="light"]) .sello.barato{color:#0e1117}}
.segmentos.chico{margin-bottom:14px}
.segmentos.chico .seg{padding:7px 14px;font-size:.83rem}

/* ---- Puente a la comparativa ---- */
.puente{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--accent-soft);
  border:1px solid var(--accent);border-radius:12px;padding:13px 16px;margin-bottom:16px;
  font-size:.89rem;color:var(--ink-2);animation:entra .35s var(--curva) both}
.puente span{flex:1;min-width:0}
.puente b{color:var(--ink)}
.puente .acc{background:var(--surface);white-space:nowrap}

/* ---- La busqueda gobierna las pestañas ---- */
.tabs[data-consulta="1"] .tab[data-dina="1"]::after{content:"";width:7px;height:7px;border-radius:50%;
  background:var(--accent);flex:none}
.consulta-activa{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--accent-soft);
  border:1px solid var(--accent);border-radius:12px;padding:12px 16px;margin-bottom:18px;
  font-size:.88rem;color:var(--ink-2)}
.consulta-activa .txt{flex:1 1 260px;min-width:0}
.consulta-activa b{color:var(--ink)}
.consulta-activa .acc{background:var(--surface)}
.puente{align-items:center}
.puente .p-txt{flex:1 1 260px;min-width:0;display:flex;flex-direction:column;gap:3px}
.puente .p-txt span{flex:none}
.puente .p-tit{font-weight:600;color:var(--ink);display:flex;align-items:center;gap:7px}
.puente .botones{display:flex;gap:8px;flex-wrap:wrap}
.puente.suave{background:var(--surface);border-color:var(--line);margin-top:-8px;padding-block:9px;font-size:.84rem}

.dgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:18px;align-items:stretch}
.dcard{position:relative;display:flex;flex-direction:column;gap:10px;background:var(--surface);
  border:1px solid var(--line);border-radius:16px;padding:24px 22px 20px;box-shadow:var(--shadow);
  text-decoration:none;color:inherit;overflow:hidden;min-width:0;
  animation:entra .45s var(--curva) both;animation-delay:calc(var(--i,0)*80ms);
  transition:transform .28s var(--curva),box-shadow .28s,border-color .28s}
.dcard::before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:var(--c)}
.dcard.mejor{border-color:var(--good)}
.dcard.mejor::before{background:var(--good)}
.dcard:hover,.dcard:focus-visible{transform:translateY(-5px);box-shadow:var(--shadow-up);border-color:var(--c)}
.dcard h3{font-size:1rem;line-height:1.3}
.dcard .rol{font:700 .68rem/1 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--c);
  display:flex;align-items:center;gap:7px}
.dcard.mejor .rol{color:var(--good)}
.dcard .letra{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;
  background:var(--c-soft);color:var(--c);font-size:.78rem;letter-spacing:0}
.dcard.mejor .letra{background:var(--good-soft);color:var(--good)}
.dcard.mejor .precio{color:var(--good)}
.dcard .razon{font-size:.87rem;color:var(--ink-2);margin:0}
.dcard .ver{margin-top:auto;padding-top:6px}
.dcard dl{margin:0;display:grid;grid-template-columns:1fr auto;gap:6px 12px;font-size:.83rem}
.dcard dt{color:var(--ink-3)}
.dcard dd{margin:0;font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;font-weight:600}

.franja{background:var(--surface);border:1px solid var(--line);border-radius:14px;
  padding:18px 22px 14px;box-shadow:var(--shadow);margin:20px 0 0}
.franja h3{font-size:.95rem}
.franja .pista{position:relative;height:6px;border-radius:3px;margin:30px 0 24px;
  background:linear-gradient(90deg,var(--good-soft),var(--surface-2) 55%,var(--bad-soft))}
.franja .mk{position:absolute;top:50%;transform:translate(-50%,-50%);width:24px;height:24px;border-radius:50%;
  background:var(--c);color:var(--bg);display:grid;place-items:center;font:700 .72rem var(--font-mono);
  border:2px solid var(--surface);box-shadow:var(--shadow);z-index:2}
.franja .med{position:absolute;top:-10px;bottom:-10px;width:2px;background:var(--ink-3);z-index:1}
.franja .med::after{content:"mediana";position:absolute;top:-17px;left:50%;transform:translateX(-50%);
  font:500 .66rem var(--font-mono);color:var(--ink-3);white-space:nowrap}
.franja .extremos{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
  font:500 .74rem var(--font-mono);color:var(--ink-3)}
.tenue{opacity:.6}

/* ---- Tira de comparaciones (curadas y ultimas busquedas) ---- */
.ultimas{margin-bottom:18px}
.ult-cab{font:500 .76rem var(--font-mono);color:var(--ink-3);display:flex;align-items:center;gap:6px;margin:0 0 8px}
.ult-fila{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 10px;scrollbar-width:thin;scroll-snap-type:x proximity}
.ult{all:unset;box-sizing:border-box;cursor:pointer;flex:none;scroll-snap-align:start;min-width:150px;max-width:236px;
  position:relative;display:flex;flex-direction:column;gap:3px;background:var(--surface);
  border:1px solid var(--line);border-radius:12px;padding:11px 28px 11px 13px;box-shadow:var(--shadow);
  transition:transform .2s var(--curva),border-color .2s,box-shadow .2s,background .2s}
.ult:hover,.ult:focus-visible{transform:translateY(-3px);border-color:var(--accent);box-shadow:var(--shadow-up)}
.ult.activa{border-color:var(--accent);background:var(--accent-soft)}
.ult.curada{border-style:dashed}
.ult-q{font:600 .84rem var(--font-sans);color:var(--ink);display:flex;align-items:center;gap:6px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ult-p{font:700 .98rem var(--font-mono);letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}
.ult-sub{font-size:.72rem;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ult-d{font:700 .68rem var(--font-mono)}
.ult-d.baja{color:var(--good)}
.ult-d.sube{color:var(--bad)}
.ult-x{position:absolute;top:6px;right:7px;color:var(--ink-3);font-weight:700;padding:1px 5px;border-radius:5px}
.ult-x:hover{color:var(--bad);background:var(--surface-2)}

/* ---- Ofertas en tarjetas ---- */
.of-ctrl{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}
.of-fila{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.of-et{font:600 .68rem var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);min-width:70px}
.of-chip{all:unset;box-sizing:border-box;cursor:pointer;font:500 .8rem var(--font-sans);padding:6px 12px;
  border-radius:999px;background:var(--surface-2);color:var(--ink-2);display:inline-flex;gap:6px;align-items:center;
  transition:background .18s,color .18s,transform .18s var(--curva)}
.of-chip:hover{background:var(--accent-soft);color:var(--accent);transform:translateY(-1px)}
.of-chip[aria-pressed="true"]{background:var(--accent);color:#fff}
:root[data-theme="dark"] .of-chip[aria-pressed="true"]{color:#0e1117}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .of-chip[aria-pressed="true"]{color:#0e1117}}
.of-chip .n{font:600 .68rem var(--font-mono);opacity:.75}

/* ---- Filtros de la busqueda (B4): acotan la lista, no el analisis ---- */
.filtros{margin:0 0 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.filtros summary{cursor:pointer;list-style:none;padding:10px 14px;font:600 .86rem var(--font-sans);color:var(--ink-2);
  display:flex;align-items:center;gap:8px;border-radius:12px}
.filtros summary::-webkit-details-marker{display:none}
.filtros summary::before{content:"▸";font-size:.8rem;color:var(--ink-3);transition:transform .18s}
.filtros[open] summary::before{transform:rotate(90deg)}
.filtros.activo summary{color:var(--accent)}
.filtros.activo summary::after{content:"activos";font:600 .68rem var(--font-mono);padding:1px 8px;border-radius:999px;
  background:var(--accent-soft);color:var(--accent)}
.filtros summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.filtros-cuerpo{display:flex;flex-direction:column;gap:12px;padding:4px 14px 14px}
.f-campo{display:inline-flex;align-items:center;gap:6px;font:500 .8rem var(--font-sans);color:var(--ink-2)}
.f-campo input,.f-texto{font:500 .88rem var(--font-sans);padding:7px 10px;border:1px solid var(--line);border-radius:8px;
  background:var(--bg);color:var(--ink);min-width:0}
.f-campo input{width:9.5em}
.f-texto{flex:1 1 220px}
.f-campo input::placeholder,.f-texto::placeholder{color:var(--ink-3);opacity:1}
.f-campo input:focus,.f-texto:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
@media (max-width:640px){.f-campo input,.f-texto{font-size:16px}}   /* 16px: iOS no hace zoom al enfocar */

/* ---- Plus: envio gratis y cuotas sin interes en lo que lidera la comparativa ---- */
.dcard .plus{margin:2px 0 0;font:600 .78rem var(--font-sans);color:var(--good)}

.ogrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(256px,1fr));gap:16px;align-items:start}
.ocard{position:relative;display:flex;flex-direction:column;gap:9px;background:var(--surface);
  border:1px solid var(--line);border-radius:16px;padding:20px 18px 16px;box-shadow:var(--shadow);
  overflow:hidden;cursor:pointer;min-width:0;
  animation:entra .4s var(--curva) both;animation-delay:calc(var(--i,0)*35ms);
  transition:transform .25s var(--curva),box-shadow .25s,border-color .25s}
.ocard.quieta{animation:none}
.ocard::before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:var(--c)}
.ocard.propia::before{background:var(--accent)}
.ocard:hover,.ocard:focus-visible,.ocard.abierta{transform:translateY(-5px);box-shadow:var(--shadow-up);border-color:var(--c)}
.ocard.propia:hover,.ocard.propia:focus-visible,.ocard.propia.abierta{border-color:var(--accent)}
.o-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.o-cinta{font:700 .64rem/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--c);
  display:flex;align-items:center;gap:5px}
.ocard.propia .o-cinta{color:var(--accent)}
.o-star{all:unset;cursor:pointer;font-size:1.2rem;line-height:1;color:var(--ink-3);padding:3px 6px;border-radius:8px;
  transition:color .15s,transform .2s var(--curva),background .15s}
.o-star:hover{color:var(--warn);transform:scale(1.2);background:var(--surface-2)}
.o-star.on{color:var(--warn)}
.o-main{display:flex;gap:13px;align-items:flex-start}
.o-off{--p:50;position:relative;flex:none;width:62px;height:62px;border-radius:50%;display:grid;place-items:center;
  background:conic-gradient(var(--good) calc(var(--p)*1%),var(--surface-2) 0);transition:transform .3s var(--curva)}
.ocard.propia .o-off{background:conic-gradient(var(--accent) calc(var(--p)*1%),var(--surface-2) 0)}
.o-off::before{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--surface)}
.o-off b{position:relative;font:700 .95rem var(--font-mono);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.ocard:hover .o-off{transform:rotate(-6deg) scale(1.06)}
.o-nom{font-size:.92rem;line-height:1.32;font-weight:600;display:-webkit-box;-webkit-line-clamp:3;
  -webkit-box-orient:vertical;overflow:hidden;min-width:0}
.ocard.abierta .o-nom{-webkit-line-clamp:unset}
.o-precios{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.o-precios .ahora{font:700 1.45rem var(--font-mono);letter-spacing:-.035em;font-variant-numeric:tabular-nums;color:var(--good)}
.ocard.propia .o-precios .ahora{color:var(--accent)}
.o-precios .antes{font:500 .8rem var(--font-mono);color:var(--ink-3);text-decoration:line-through}
.o-ahorro{font-size:.85rem;color:var(--ink-2)}
.o-ahorro b{font-family:var(--font-mono);color:var(--ink)}
.o-contra{margin:0;font-size:.8rem;color:var(--ink-2)}
.o-detalle{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s var(--curva)}
.o-detalle>.o-in{overflow:hidden;min-height:0}
.ocard.abierta .o-detalle{grid-template-rows:1fr}
.o-detalle p{margin:9px 0 0;font-size:.82rem;color:var(--ink-3)}
.o-acciones{display:flex;gap:8px;margin-top:2px}
.o-acciones .acc{flex:1;justify-content:center;padding:8px 10px}

.o-img{flex:none;width:100%;aspect-ratio:1;background-size:cover;background-position:center;background-color:var(--surface-2);border-radius:8px 8px 0 0;display:flex;align-items:center;justify-content:center}
.o-img.o-sin-img{color:var(--ink-3);font-size:2rem}
.mas{display:flex;justify-content:center;margin-top:20px}
@media (max-width:620px){.ogrid{grid-template-columns:1fr}.of-et{min-width:100%}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media (max-width:620px){
  .largo{display:none}
  /* En telefono el buscador queda a mano y el intro no empuja los resultados. */
  .buscador{position:sticky;top:calc(env(safe-area-inset-top,0px) + 56px);z-index:15;
    background:var(--bg);padding-block:8px;margin-bottom:10px}
  .buscador .ico{top:calc(50% + 4px)}
  #vista .panel-head .sub{display:none}
  .sugeridas{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-bottom:12px}
  .sugeridas::-webkit-scrollbar{display:none}
  .sug{flex:none}
  .acc{padding:8px 12px;font-size:.78rem}
  .dcab{grid-template-columns:auto 1fr;gap:14px;padding:18px}
  .dprecio{grid-column:1/-1;text-align:left;border-top:1px solid var(--line);padding-top:14px}
  .tab{padding:9px 12px;font-size:.85rem}
  .wrap{padding-block:18px 52px}
}

/* Aviso de sin conexion (js/app.js): fijo arriba, con los colores del sitio en claro y oscuro. */
.sin-red{position:sticky;top:0;z-index:60;padding:10px 20px;background:var(--warn-soft);color:var(--ink);
  border-bottom:1px solid var(--warn);font-size:.86rem;line-height:1.4;text-align:center}
.sin-red[data-viejo="1"]{border-bottom:3px solid var(--bad);font-weight:600}
/* Otras tiendas que venden el mismo modelo (mismo codigo exacto) */
.mismo{display:flex;flex-wrap:wrap;gap:4px 12px;margin:-4px 0 10px 14px;padding:6px 12px;font-size:.78rem;color:var(--ink-3);
  background:var(--surface-2);border-radius:0 0 8px 8px}
.mismo a{color:var(--accent);text-decoration:none;font-family:var(--font-mono);white-space:nowrap}
.mismo a:hover{text-decoration:underline}

/* --- Costo de importar (K3) -------------------------------------------------------------------
   Cada seccion tiene su color (--sc): azul lo que comprás, verde tu situación, naranja lo que falta
   confirmar. El color va en el borde, el numero, el icono y el foco; el fondo es un tinte suave. */
.k-hero{display:flex;gap:16px;align-items:flex-start;margin-bottom:22px}
.k-hero h2{font-size:clamp(1.45rem,1.1rem + 1.4vw,1.9rem);letter-spacing:-.02em;margin:0 0 6px}
.k-hero-ico{flex:none;display:grid;place-items:center;width:56px;height:56px;border-radius:16px;font-size:1.7rem;
  color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 25%,transparent)}
.k-pasos{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:14px 0 0;padding:0}
.k-pasos a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:6px 14px 6px 8px;border-radius:999px;
  font:600 .84rem var(--font-sans);color:var(--ink);text-decoration:none;background:var(--surface);border:1px solid var(--line);
  transition:border-color .2s,transform .2s var(--curva)}
.k-pasos a:hover{border-color:var(--accent);transform:translateY(-1px)}
.k-pasos a span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;color:var(--surface);font:700 .8rem var(--font-mono)}
.k-pasos li:nth-child(1) a span{background:var(--accent)}
.k-pasos li:nth-child(2) a span{background:var(--good)}
.k-pasos li:nth-child(3) a span{background:var(--warn)}

.k-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:22px}
@media (min-width:960px){.k-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}
  .k-salida{position:sticky;top:76px}}
.k-form{display:flex;flex-direction:column;gap:18px}

.k-sec{--sc:var(--accent);--sc-soft:var(--accent-soft);margin:0;padding:0 18px 8px;border:1px solid var(--line);
  border-left:5px solid var(--sc);border-radius:16px;
  background:linear-gradient(180deg,var(--sc-soft) 0,var(--surface) 92px);box-shadow:var(--shadow);
  display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:4px 16px;
  animation:entra .45s var(--curva) both;animation-delay:calc(var(--i,0)*90ms);scroll-margin-top:84px;
  transition:box-shadow .25s,border-color .25s}
.k-sec-2{--sc:var(--good);--sc-soft:var(--good-soft)}
.k-sec-3{--sc:var(--warn);--sc-soft:var(--warn-soft)}
.k-sec:focus-within{box-shadow:var(--shadow-up);border-color:color-mix(in srgb,var(--sc) 45%,var(--line))}
.k-sec legend{grid-column:1/-1;float:left;width:100%;display:flex;align-items:center;gap:12px;padding:16px 0 12px;margin:0}
.k-paso{display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:50%;background:var(--sc);color:var(--surface);
  font:700 .9rem var(--font-mono)}
.k-sec-ico{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:12px;font-size:1.35rem;
  color:var(--sc);background:var(--surface);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sc) 30%,transparent)}
.k-sec-tit{display:flex;flex-direction:column;font:700 1.12rem/1.2 var(--font-sans);color:var(--ink);letter-spacing:-.01em}
.k-sec-tit small{font:500 .8rem var(--font-sans);color:var(--ink-2);margin-top:2px;letter-spacing:0}

.k-campo{display:flex;flex-direction:column;gap:5px;margin-bottom:12px;min-width:0}
.k-campo label{font:600 .88rem var(--font-sans);color:var(--ink)}
.k-entrada{position:relative;display:flex}
.k-prefijo{position:absolute;left:2px;top:2px;bottom:2px;display:grid;place-items:center;padding:0 10px;
  font:600 .74rem var(--font-mono);color:var(--sc);background:var(--sc-soft);border-radius:8px 0 0 8px;pointer-events:none}
.k-entrada.con-prefijo input{padding-left:58px}
.k-campo input,.k-campo select{font:500 1rem var(--font-sans);color:var(--ink);background:var(--surface);padding:10px 12px;
  border:1.5px solid var(--line);border-radius:10px;min-height:46px;width:100%;transition:border-color .2s,box-shadow .2s}
.k-campo input:hover,.k-campo select:hover{border-color:color-mix(in srgb,var(--sc) 40%,var(--line))}
.k-campo input:focus-visible,.k-campo select:focus-visible{outline:none;border-color:var(--sc);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--sc) 22%,transparent)}
.k-campo input[aria-invalid="true"]{border-color:var(--bad);box-shadow:0 0 0 4px color-mix(in srgb,var(--bad) 18%,transparent)}
.k-campo small{font-size:.78rem;color:var(--ink-2);line-height:1.4}
.k-campo .k-error{color:var(--bad);font-weight:600}
.k-campo .k-error:empty{display:none}

.k-salida{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:20px 20px 10px;box-shadow:var(--shadow-up);
  animation:entra .45s var(--curva) both;animation-delay:.12s}
.k-salida h3{margin:0 0 12px;font-size:.78rem;font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}
.k-regimen{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.k-total{display:flex;gap:14px;align-items:center;padding:18px;margin-bottom:14px;border-radius:16px;
  background:var(--good-soft);border:1px solid color-mix(in srgb,var(--good) 35%,transparent)}
.k-total-ico{display:grid;place-items:center;flex:none;width:52px;height:52px;border-radius:14px;font-size:1.6rem;color:var(--good);
  background:var(--surface)}
.k-total-k{font:600 .72rem var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--good)}
.k-total-v{font:700 clamp(1.7rem,1.3rem + 1.6vw,2.3rem)/1.1 var(--font-mono);letter-spacing:-.04em;color:var(--ink);margin:4px 0 2px;
  font-variant-numeric:tabular-nums}
.k-total-d{font-size:.92rem;color:var(--ink-2)}
.k-total.k-cambio{animation:pulso .5s var(--curva)}
@keyframes pulso{0%{transform:scale(1)}35%{transform:scale(1.025);box-shadow:0 0 0 6px color-mix(in srgb,var(--good) 20%,transparent)}100%{transform:none}}
.k-res .tiles{margin-bottom:16px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.k-res .tile .v{font-size:1.15rem;white-space:nowrap}
.k-tile-rango .v{font-size:1rem}
.k-res .tile .k{display:flex;align-items:center;gap:6px}
.k-tile-impuestos{border-left:4px solid var(--accent)}
.k-tile-tarjeta{border-left:4px solid var(--cg)}
.k-tile-rango{border-left:4px solid var(--warn)}

.k-tabla{min-width:540px}
.k-tabla caption{text-align:left;font:600 .78rem var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:12px 14px 6px}
.k-tabla td,.k-tabla th{font-variant-numeric:tabular-nums;vertical-align:middle;white-space:nowrap}
.k-tabla tbody tr{animation:entraPanel .35s var(--curva) both;animation-delay:calc(var(--i,0)*40ms)}
.k-tabla tbody th .k-mini{margin-right:10px;vertical-align:middle}
.k-tabla tbody th{font-weight:600;white-space:nowrap}
.k-tabla tfoot th,.k-tabla tfoot td{font-weight:700;font-size:1rem;border-top:2px solid var(--line)}
.k-mini{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;font-size:1rem;color:var(--accent);background:var(--accent-soft)}
.k-mini-iva,.k-mini-impuesto_interno{color:var(--gc);background:var(--gc-soft)}
.k-mini-derecho_importacion{color:var(--cg);background:var(--cg-soft)}
.k-mini-tasa_estadistica{color:var(--vx);background:var(--vx-soft)}
.k-mini-honorarios{color:var(--cy);background:var(--cy-soft)}
.k-nivel{display:inline-flex;align-items:center;gap:4px;font:600 .7rem/1.8 var(--font-mono);padding:0 8px;border-radius:999px;white-space:nowrap;
  background:var(--surface-2);color:var(--ink-2)}
.k-nivel .ico{font-size:.85rem}
.k-nivel.k-oficial{background:var(--good-soft);color:var(--good)}
.k-nivel.k-pendiente,.k-nivel.k-dudoso,.k-nivel.k-prensa{background:var(--warn-soft);color:var(--warn)}
.k-nivel.k-dato{background:var(--accent-soft);color:var(--accent)}
.k-pendiente{margin:16px 0;border-left:4px solid var(--warn)}
.k-pendiente h3{display:flex;align-items:center;gap:8px;color:var(--warn)}
.k-alerta ul{margin:6px 0 0;padding-left:18px}
@media (max-width:520px){.k-hero{flex-direction:column;gap:10px}.k-sec{padding:0 14px 6px}.k-salida{padding:16px 14px 8px}}
/* En el telefono cada renglon es una tarjeta: concepto arriba y los numeros con su etiqueta, sin scroll de costado. */
@media (max-width:640px){
  .k-res .scroll{overflow:visible;border:0;background:none;box-shadow:none}
  .k-tabla{min-width:0}
  .k-tabla thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .k-tabla caption{padding:0 0 8px}
  .k-tabla tr{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;padding:12px 14px;margin-bottom:10px;
    background:var(--surface-2);border:1px solid var(--line);border-radius:14px}
  .k-tabla tbody th,.k-tabla tfoot th{grid-column:1/-1;padding:0 0 4px;border:0;white-space:normal}
  .k-tabla td{display:flex;flex-direction:column;gap:2px;padding:0;border:0;text-align:left;white-space:normal}
  .k-tabla td::before{content:attr(data-l);font:600 .66rem var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
  .k-tabla td.k-vacio{display:none}
  .k-tabla td .k-nivel{align-self:flex-start}
  .k-tabla tfoot tr{background:var(--good-soft);border-color:color-mix(in srgb,var(--good) 35%,transparent)}
  .k-tabla tfoot th,.k-tabla tfoot td{border-top:0}
}

/* --- Enlace de afiliado (E1): se ve como un enlace mas, con su rotulo al lado --- */
.afiliado{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:14px 0 0}
.afiliado > a{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:8px 14px;border-radius:10px;
  font:600 .9rem var(--font-sans);color:var(--ink);text-decoration:none;background:var(--surface);border:1px solid var(--line)}
.afiliado > a:hover{border-color:var(--accent)}
.afiliado .rotulo{font:500 .74rem var(--font-mono);color:var(--ink-3)}
.afiliado .rotulo a{color:var(--ink-2)}
