:root{
  --gold-100:#f6ecd8;--gold-600:#c7a05a;--gold-700:#a87c3f;--gold-900:#6e5228;
  --beige-100:#faf5eb;--beige-300:#f0dfc5;--camel-300:#e0c6a4;--camel-700:#a9855f;
  --salmon-500:#e5a389;--salmon-700:#c47c5f;
  --ink-900:#382c20;--ink-700:#5a4a38;--ink-500:#8a765f;--white:#fff;
  --ok:#5f7a52;--ok-bg:#e9efe2;--warn-bg:#fbeee6;
  --font-display:'Italiana','Times New Roman',serif;--font-body:'Parkinsans','Poppins',sans-serif;
  --shadow-card:0 1px 2px rgba(56,44,32,.06),0 8px 24px -12px rgba(56,44,32,.18);
  --ease:cubic-bezier(.4,0,.2,1);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--beige-100);color:var(--ink-700);font:400 1rem/1.6 var(--font-body)}
h1,h2,h3{font-family:var(--font-display);font-weight:400;color:var(--ink-900);line-height:1.1;margin:0}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--gold-600);outline-offset:2px}
.wrap{max-width:960px;margin:0 auto;padding:0 16px}

/* header */
.top{position:sticky;top:0;z-index:5;background:rgba(250,245,235,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--camel-300)}
.top .wrap{display:flex;align-items:center;gap:12px;height:60px}
.brand{font-family:var(--font-display);font-size:1.6rem;color:var(--ink-900);text-decoration:none;display:flex;align-items:baseline;gap:8px}
.brand small{font:500 .7rem var(--font-body);letter-spacing:.16em;color:var(--gold-700)}
.spacer{flex:1}
.link{background:none;border:0;padding:8px 4px;cursor:pointer;color:var(--ink-700);text-decoration:none;font-size:.875rem}
.link:hover{opacity:.7}

/* buttons / inputs */
.btn{border:1px solid var(--gold-600);background:var(--gold-600);color:var(--white);border-radius:999px;padding:10px 22px;font-weight:500;cursor:pointer;transition:background .15s var(--ease)}
.btn:hover{background:var(--gold-700)}
.btn[disabled]{opacity:.55;cursor:default}
.btn.ghost{background:transparent;color:var(--gold-900)}
.btn.ghost:hover{background:var(--beige-300)}
.btn.sm{padding:5px 14px;font-size:.8125rem}
input[type=text],input[type=email],input[type=password],input[type=search],select{width:100%;background:var(--white);border:1px solid var(--camel-300);border-radius:6px;padding:11px 14px;min-height:44px}
input:focus,select:focus{border-color:var(--gold-600);outline:none;box-shadow:0 0 0 3px var(--gold-100)}
label{display:block;font-size:.8125rem;color:var(--ink-500);margin-bottom:4px}

/* login */
.login{min-height:100vh;display:grid;place-items:center;padding:24px 16px}
.login-card{background:var(--white);border-radius:14px;box-shadow:var(--shadow-card);padding:40px 32px;width:100%;max-width:400px}
.login-card img{display:block;width:150px;margin:0 auto 20px;border-radius:6px}
.login-card h1{text-align:center;font-size:2rem;margin-bottom:6px}
.login-card p.sub{text-align:center;margin:0 0 24px;color:var(--ink-500);font-size:.875rem}
.field{margin-bottom:16px}
.err{color:var(--salmon-700);font-size:.875rem;min-height:1.4em;margin:0 0 12px}

/* búsqueda */
.hero{padding:28px 0 8px}
.hero h1{font-size:clamp(2rem,5vw,3rem)}
.stamp{margin:6px 0 0;font-size:.8125rem;color:var(--ink-500)}
.stamp b{color:var(--ink-700);font-weight:600}
.stale{background:var(--warn-bg);color:var(--salmon-700);padding:2px 10px;border-radius:999px;margin-left:6px;font-weight:500}
.controls{display:grid;gap:12px;grid-template-columns:1fr;padding:16px 0 8px}
@media(min-width:700px){.controls{grid-template-columns:1fr 240px}}
.chips{display:flex;gap:8px;overflow-x:auto;padding:4px 0 12px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;border:1px solid var(--camel-300);background:transparent;border-radius:999px;padding:6px 14px;font-size:.8125rem;cursor:pointer;color:var(--ink-700);transition:background .15s var(--ease)}
.chip:hover{background:var(--beige-300)}
.chip[aria-pressed=true]{background:var(--ink-900);border-color:var(--ink-900);color:var(--beige-100)}
.count{font-size:.8125rem;color:var(--ink-500);margin:0 0 10px}
.list{display:grid;gap:12px;padding-bottom:64px}
.card{background:var(--white);border-radius:14px;box-shadow:var(--shadow-card);padding:16px 18px}
.card-head{display:flex;gap:16px;align-items:flex-start;justify-content:space-between}
.card h3{font:600 1rem/1.35 var(--font-body);color:var(--ink-900)}
.meta{display:flex;flex-wrap:wrap;gap:6px 8px;margin-top:6px;align-items:center;font-size:.75rem;color:var(--ink-500)}
.badge{text-transform:uppercase;letter-spacing:.08em;font-size:.6875rem;font-weight:500;background:var(--beige-300);color:var(--gold-900);border-radius:999px;padding:2px 10px}
.total{text-align:right;flex:none}
.total .n{font:600 1.75rem/1 var(--font-body);color:var(--ink-900);font-variant-numeric:tabular-nums}
.total .l{font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-500)}
.bodegas{list-style:none;margin:14px 0 0;padding:12px 0 0;border-top:1px solid var(--beige-300);display:grid;gap:4px 24px;grid-template-columns:1fr}
@media(min-width:600px){.bodegas{grid-template-columns:1fr 1fr}}
.bodegas li{display:flex;justify-content:space-between;gap:12px;font-size:.875rem;padding:3px 0}
.bodegas li b{font-weight:600;color:var(--ink-900);font-variant-numeric:tabular-nums}
.bodegas li.hl{background:var(--ok-bg);margin:0 -8px;padding:3px 8px;border-radius:6px}
.empty{text-align:center;padding:48px 16px;color:var(--ink-500)}

/* admin */
.panel{background:var(--white);border-radius:14px;box-shadow:var(--shadow-card);padding:20px;margin:16px 0}
.panel h2{font-size:1.5rem;margin-bottom:12px}
.grid2{display:grid;gap:12px;grid-template-columns:1fr}
@media(min-width:700px){.grid2{grid-template-columns:1fr 1fr}}
table{width:100%;border-collapse:collapse;font-size:.875rem}
th{text-align:left;font-weight:500;color:var(--ink-500);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}
th,td{padding:8px 6px;border-bottom:1px solid var(--beige-300)}
.table-scroll{overflow-x:auto}
.ok{color:var(--ok)}.bad{color:var(--salmon-700)}
.kv{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:.875rem}
.kv b{color:var(--ink-900)}
ul.plain{margin:8px 0 0;padding-left:18px;font-size:.8125rem;max-height:260px;overflow:auto}
