:root{
  --paper:#faf9f7; --panel:#fff; --ink:#1c1a18; --body:#57534d; --soft:#a09f9c;
  --rule:#e4dfd7; --raise:#f2eee8; --brass:#8a6a3b; --brass-soft:#f0e6d4;
  --ok:#3f6b4a; --ok-soft:#e3eee6; --no:#8c3f36; --no-soft:#f6e5e2;
  --warn:#9a5b2a; --warn-soft:#f7ead9;
}
@media (prefers-color-scheme:dark){:root:not([data-tema="claro"]){
  --paper:#141210; --panel:#1c1917; --ink:#f2ede4; --body:#a9a29a; --soft:#7c756c;
  --rule:#2c2723; --raise:#241f1b; --brass:#c9a468; --brass-soft:#33291a;
  --ok:#7fb18d; --ok-soft:#1e2c22; --no:#d68a7e; --no-soft:#2e1d1a;
  --warn:#d9975c; --warn-soft:#3a2a18;
}}
*{box-sizing:border-box}
html{scroll-padding-top:150px}
body{margin:0;background:var(--paper);color:var(--body);
  font-family:'Roboto',Helvetica,Arial,sans-serif;font-weight:300;font-size:14px;
  line-height:1.65;-webkit-font-smoothing:antialiased;padding-inline:20px}
.wrap{max-width:1240px;margin:0 auto}
h1,h2,h3{color:var(--ink);font-family:'Baskervville',Georgia,serif;font-weight:400;margin:0;
  text-wrap:balance}
.mono{font-family:'Roboto Mono',ui-monospace,Menlo,monospace}
button{font-family:inherit}
button:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--brass);outline-offset:2px}

/* portada */
header.top{padding-block:38px 22px;border-bottom:1px solid var(--rule)}
.eyebrow{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--soft);margin:0 0 10px}
header.top h1{font-size:clamp(26px,4.5vw,38px);letter-spacing:.02em;line-height:1.12}
header.top p{margin:12px 0 0;max-width:66ch;font-size:15px}

.marcador{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1px;
  background:var(--rule);border:1px solid var(--rule);border-radius:3px;margin-top:22px;overflow:hidden}
.m{background:var(--panel);padding:13px 16px}
.m b{display:block;color:var(--ink);font-family:'Baskervville',Georgia,serif;font-size:26px;
  line-height:1.1;font-variant-numeric:tabular-nums}
.m span{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--soft)}
.m.ok b{color:var(--ok)} .m.no b{color:var(--no)}

/* barra */
.barra{position:sticky;top:0;z-index:20;background:var(--paper);border-bottom:1px solid var(--rule);
  padding-block:11px;display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-top:24px}
.seg{display:flex;gap:2px;background:var(--raise);border:1px solid var(--rule);border-radius:2px;
  padding:2px;flex-wrap:wrap}
.seg button{background:none;border:0;cursor:pointer;color:var(--soft);font-size:10px;
  letter-spacing:.12em;text-transform:uppercase;padding:7px 10px;border-radius:1px}
.seg button[aria-pressed="true"]{background:var(--panel);color:var(--ink);
  box-shadow:0 1px 2px rgba(0,0,0,.08)}
.quien{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:10px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--soft)}
.quien select{background:var(--panel);color:var(--ink);border:1px solid var(--rule);
  border-radius:2px;padding:7px 9px;font-size:11px;letter-spacing:.06em}
.estado-red{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--soft);
  white-space:nowrap}
.estado-red.mal{color:var(--no)}

/* piezas */
.pieza{display:grid;grid-template-columns:200px 1fr;gap:24px;padding:24px 0;
  border-bottom:1px solid var(--rule);align-items:start;scroll-margin-top:150px}
.ident{position:sticky;top:74px}
.ident img{width:100%;display:block;background:var(--panel);border:1px solid var(--rule)}
.ident h3{font-size:14.5px;letter-spacing:.02em;margin:11px 0 3px;text-transform:uppercase;line-height:1.35}
.ident .sku{font-size:11px;color:var(--soft);letter-spacing:.08em}
.ident .fam{font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--brass);margin-top:5px}
.ident .avance{font-size:10px;letter-spacing:.1em;text-transform:uppercase;margin-top:9px;color:var(--soft)}

.tira{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.tira.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
.corte{border:1px solid var(--rule);border-radius:3px;overflow:hidden;background:var(--panel);
  display:flex;flex-direction:column}
.corte.autorizado{border-color:var(--ok);box-shadow:inset 0 0 0 1px var(--ok)}
.corte.quitado{opacity:.5}
.marco{position:relative;display:block;width:100%;aspect-ratio:1/1;border:0;padding:0;
  background-color:var(--raise);cursor:zoom-in}
.corte.quitado .marco{filter:grayscale(1)}
.px{position:absolute;left:5px;bottom:5px;font-family:'Roboto Mono',monospace;font-size:9px;
  background:rgba(20,18,16,.75);color:#fff;padding:1px 5px;border-radius:2px}
.px.corto{background:var(--warn)}
.sello{position:absolute;right:5px;top:5px;font-size:9px;letter-spacing:.14em;text-transform:uppercase;
  padding:2px 7px;border-radius:2px;display:none}
.corte.autorizado .sello{display:block;background:var(--ok);color:#fff}
.corte.quitado .sello{display:block;background:var(--no);color:#fff}
.corte.subido .sello::after{content:' · en la web'}

.acciones{display:flex;border-top:1px solid var(--rule)}
.acciones button{flex:1;background:none;border:0;border-right:1px solid var(--rule);cursor:pointer;
  color:var(--soft);font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:9px 4px}
.acciones button:last-child{border-right:0}
.acciones button:hover{background:var(--raise);color:var(--ink)}
.acciones button.si[aria-pressed="true"]{background:var(--ok-soft);color:var(--ok);font-weight:500}
.acciones button.no[aria-pressed="true"]{background:var(--no-soft);color:var(--no);font-weight:500}
.acciones button.nota[data-hay="1"]{color:var(--brass)}
textarea{width:100%;border:0;border-top:1px solid var(--rule);background:var(--raise);
  color:var(--ink);font-family:inherit;font-size:12px;padding:9px 10px;resize:vertical;
  min-height:62px;display:none}
.corte.abierta textarea{display:block}

/* lupa */
dialog{border:0;padding:0;background:transparent;max-width:min(94vw,1100px);width:100%}
dialog::backdrop{background:rgba(16,14,12,.86)}
.lupa{background:var(--panel);border-radius:4px;overflow:hidden}
.lupa .marco-grande{width:100%;aspect-ratio:1/1;background-color:var(--raise);
  background-repeat:no-repeat;display:block}
.lupa .pie{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 16px;
  border-top:1px solid var(--rule);font-size:11.5px;color:var(--soft)}
.lupa .pie b{color:var(--ink);font-weight:400}
.lupa .pie button{margin-left:auto;background:var(--ink);color:var(--paper);border:0;cursor:pointer;
  font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:8px 14px;border-radius:2px}

.aviso{border-left:2px solid var(--brass);background:var(--raise);padding:15px 19px;
  margin-top:24px;border-radius:0 3px 3px 0}
.aviso p{margin:0}.aviso p+p{margin-top:8px}
.aviso strong{color:var(--ink);font-weight:500}
footer{padding-block:30px 56px;font-size:11.5px;color:var(--soft)}
.vacio{padding:60px 0;text-align:center;color:var(--soft)}

@media (max-width:860px){
  .pieza{grid-template-columns:1fr;gap:12px}
  .ident{position:static;display:grid;grid-template-columns:88px 1fr;gap:13px;align-items:center}
  .ident h3{margin-top:0}
  .tira{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .tira.n3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .quien{margin-left:0;width:100%}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
