/* El Gato de Oro — hoja común: catálogo, vendedores y admin. Paleta en blanco y negro. */
:root{
  --bg:#ffffff; --panel:#ffffff; --sunk:#f2f2f2; --ink:#0b0b0b; --muted:#6a6a6a; --line:#dcdcdc;
  --brass:#0b0b0b; --brass-soft:#efefef; --ok:#0b0b0b; --mal:#0b0b0b;
  --rojo:#b3261e; --verde:#1b6b3a;
  --display:"Bodoni Moda",Georgia,"Times New Roman",serif;
  --body:"Karla",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  color-scheme:dark;
  --bg:#0b0b0b; --panel:#141414; --sunk:#1d1d1d; --ink:#f2f2f2; --muted:#a0a0a0; --line:#2e2e2e;
  --brass:#ffffff; --brass-soft:#232323; --ok:#ffffff; --mal:#ffffff;
  --rojo:#ff8a80; --verde:#7ddba3;
}}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0b0b0b; --panel:#141414; --sunk:#1d1d1d; --ink:#f2f2f2; --muted:#a0a0a0; --line:#2e2e2e;
  --brass:#ffffff; --brass-soft:#232323; --ok:#ffffff; --mal:#ffffff;
  --rojo:#ff8a80; --verde:#7ddba3;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.5;
  -webkit-font-smoothing:antialiased}
img{max-width:100%}
[hidden]{display:none!important}
.wrap{max-width:1180px;margin:0 auto;padding-inline:20px;padding-block:34px 72px}
h1,h2,h3{font-family:var(--display);font-weight:400;text-wrap:balance;margin:0;letter-spacing:-.01em}
h1{font-size:clamp(34px,6vw,54px);line-height:1.02}
h2{font-size:24px}
.eyebrow{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--brass);font-weight:700;
  font-family:var(--body);margin-bottom:12px}
.lede{max-width:62ch;color:var(--muted);margin:14px 0 0}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums}
:focus-visible{outline:2px solid var(--brass);outline-offset:2px}

.spot{margin-top:28px;border:1px solid var(--line);border-radius:4px;background:var(--panel);
  display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.spot>div{padding:14px 16px;border-right:1px solid var(--line)}
.spot>div:last-child{border-right:0}
.spot .lbl{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:700}
.spot .v{font-family:var(--mono);font-size:17px;margin-top:4px;font-variant-numeric:tabular-nums}
.spot .s{font-size:12px;color:var(--muted);margin-top:2px}
.asof{font-size:12.5px;color:var(--muted);margin-top:10px}

.filtros{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:34px 0 18px;
  padding-bottom:18px;border-bottom:1px solid var(--line)}
.filtros .grp{display:flex;flex-wrap:wrap;gap:6px}
.filtros span.t{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);
  font-weight:700;margin-right:2px}
.filtros button{font:inherit;font-size:13px;cursor:pointer;background:transparent;color:var(--muted);
  border:1px solid var(--line);border-radius:99px;padding:4px 13px}
.filtros button:hover{color:var(--ink);border-color:var(--brass)}
.filtros button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink);font-weight:600}
.filtros .count{margin-left:auto;font-size:12.5px;color:var(--muted)}

.rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,268px),1fr));gap:20px;align-items:start}
.pieza{background:var(--panel);border:1px solid var(--line);border-radius:4px;overflow:hidden;
  display:flex;flex-direction:column;min-width:0}
.carrusel{position:relative;aspect-ratio:1;background:var(--sunk);overflow:hidden}
.pista{display:flex;height:100%;overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth}
.pista::-webkit-scrollbar{display:none}
.pista img{flex:0 0 100%;width:100%;height:100%;object-fit:cover;scroll-snap-align:center;display:block;user-select:none}
.carrusel.sinfoto{display:grid;place-items:center;color:var(--muted);font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.flecha{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;
  border:0;background:rgba(0,0,0,.6);color:#fff;font-size:20px;line-height:1;cursor:pointer;
  display:grid;place-items:center;opacity:0;transition:opacity .15s;padding:0 0 2px}
.flecha.ant{left:8px} .flecha.sig{right:8px}
.carrusel:hover .flecha,.flecha:focus-visible{opacity:1}
.flecha[disabled]{opacity:0!important;pointer-events:none}
.puntos-nav{position:absolute;bottom:10px;left:0;right:0;display:flex;gap:6px;justify-content:center}
.punto{width:7px;height:7px;border-radius:50%;border:0;padding:0;cursor:pointer;
  background:rgba(255,255,255,.5);box-shadow:0 0 0 1px rgba(0,0,0,.4);transition:background .15s}
.punto[aria-current="true"]{background:#fff}
@media (hover:none){.flecha{display:none}}
.body{padding:15px 16px 16px;display:flex;flex-direction:column;gap:10px;flex:1;min-width:0}
.head{display:flex;gap:10px;align-items:baseline;justify-content:space-between}
.head h3{font-size:19px;line-height:1.15;display:-webkit-box;-webkit-box-orient:vertical;
  -webkit-line-clamp:2;line-clamp:2;overflow:hidden}
.chip{flex:none;font-family:var(--mono);font-size:11px;font-weight:500;padding:2px 8px;border-radius:99px;
  background:var(--brass-soft);color:var(--brass)}
.chip.alerta{background:transparent;border:1px solid var(--mal);color:var(--mal)}
.desc{margin:0;font-size:13.5px;color:var(--muted);line-height:1.5}
.puntos{margin:0;padding-left:17px;font-size:12.5px;color:var(--ink);line-height:1.55}
.puntos li::marker{color:var(--brass)}
.nota{margin:0;font-size:12px;color:var(--brass);border-left:2px solid var(--brass);padding-left:9px}
.especs{margin:0;display:grid;gap:0;border-top:1px solid var(--line)}
.spec{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px solid var(--line)}
.spec dt{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:600}
.spec dd{margin:0;font-family:var(--mono);font-size:12.5px;font-variant-numeric:tabular-nums}
.pie{margin-top:auto;display:flex;flex-direction:column;gap:8px}
.precio{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.precio.min strong{color:var(--rojo)}
.precio.ideal strong{color:var(--verde)}

.mas{border-top:1px solid var(--line);padding-top:8px}
.mas>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;
  gap:8px;font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:700}
.mas>summary::-webkit-details-marker{display:none}
.mas>summary::after{content:"+";font-family:var(--mono);font-size:14px;line-height:1}
.mas[open]>summary::after{content:"–"}
.mas>summary:hover{color:var(--ink)}
.mas-cuerpo{display:flex;flex-direction:column;gap:10px;padding-top:10px}
.mas-cuerpo .especs{border-top:0}
.precio .lbl{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:700}
.precio strong{font-family:var(--mono);font-size:21px;font-weight:500;font-variant-numeric:tabular-nums}
.vacio{grid-column:1/-1;padding:40px 0;text-align:center;color:var(--muted)}
.cargando{grid-column:1/-1;padding:40px 0;text-align:center;color:var(--muted)}
.error{border:1px solid var(--mal);color:var(--mal);border-radius:4px;padding:12px 14px;margin:20px 0;font-size:13.5px}

/* botones y formularios */
.btn{font:inherit;font-size:13px;cursor:pointer;background:transparent;color:var(--ink);
  border:1px solid var(--line);border-radius:4px;padding:7px 13px}
.btn:hover{border-color:var(--brass);color:var(--brass)}
.btn.pri{background:var(--ink);border-color:var(--ink);color:var(--bg);font-weight:600}
.btn.pri:hover{background:var(--muted);border-color:var(--muted);color:var(--bg)}
.btn[disabled]{opacity:.5;cursor:default}
.btn.mini{font-size:12px;padding:5px 10px}
.acciones{display:flex;flex-wrap:wrap;gap:6px}
input,select,textarea{font:inherit;font-size:14px;color:var(--ink);background:var(--panel);
  border:1px solid var(--line);border-radius:4px;padding:8px 10px;width:100%}
textarea{min-height:88px;resize:vertical}
label{display:block;font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);
  font-weight:700;margin-bottom:5px}
.campo{margin-bottom:14px}
.fila{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}

.barra{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;
  padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:24px}
.barra nav{display:flex;gap:14px;font-size:13px}
.barra a{color:var(--muted);text-decoration:none}
.barra a:hover,.barra a[aria-current="page"]{color:var(--brass)}
.quien{font-size:12.5px;color:var(--muted)}

.login{max-width:420px;margin:12vh auto;padding:28px;border:1px solid var(--line);border-radius:4px;
  background:var(--panel)}
.aviso{font-size:13px;color:var(--muted);margin-top:12px}
.aviso.ok{color:var(--ink);font-weight:600}
.aviso.mal{color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:3px}

.tabla{width:100%;border-collapse:collapse;font-size:13.5px}
.tabla th{text-align:left;font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);
  font-weight:700;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.tabla td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.tabla tbody tr:hover{background:var(--sunk)}
.tabla .n{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right}
.tabla img.mini{width:40px;height:40px;object-fit:cover;border-radius:3px;display:block;background:var(--sunk)}
.scroll-x{overflow-x:auto}

dialog{border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--ink);
  padding:0;max-width:720px;width:calc(100% - 32px)}
dialog::backdrop{background:rgba(0,0,0,.6)}
dialog .dlg-cuerpo{padding:22px 24px;max-height:76vh;overflow:auto}
dialog .dlg-pie{display:flex;gap:8px;justify-content:flex-end;padding:14px 24px;border-top:1px solid var(--line)}

footer{margin-top:56px;padding-top:22px;border-top:1px solid var(--line);display:grid;gap:10px;
  font-size:13px;color:var(--muted);max-width:70ch}
footer strong{color:var(--ink);font-weight:600}
@media (max-width:520px){.wrap{padding-inline:16px}.spot>div{border-right:0;border-bottom:1px solid var(--line)}
  .spot>div:last-child{border-bottom:0}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}.pista{scroll-behavior:auto}}
