:root{
  --bg:#F3F4EF; --surface:#FFFFFF; --sunk:#E8EAE3; --ink:#111A16; --muted:#5A645F; --line:#D9DCD3;
  --green:#0E8F52; --green-soft:#DDF3E7; --yellow:#FFD43B; --yellow-ink:#5C4A00; --yellow-soft:#FFF4C7; --red:#C8402F; --red-soft:#FBE3DF;
  --display:"Archivo","Arial Narrow",system-ui,sans-serif; --sans:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit}
:focus-visible{outline:3px solid var(--green);outline-offset:2px;border-radius:6px}
[hidden]{display:none!important}
h1,h2,h3{font-family:var(--display);font-weight:800;letter-spacing:-.01em;margin:0;line-height:1.05}
h1{font-size:clamp(28px,6vw,38px)}
h2{font-size:22px}
h3{font-size:18px}
.mut{color:var(--muted)} .small{font-size:14px}
.btn{appearance:none;border:0;border-radius:12px;padding:12px 18px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;white-space:nowrap;min-height:46px}
.btn-p{background:var(--ink);color:#fff} .btn-y{background:var(--yellow);color:#2B2300} .btn-g{background:transparent;border:1.5px solid var(--line);color:var(--ink)}
.btn-d{background:transparent;color:var(--red)} .btn-s{min-height:36px;padding:7px 12px;font-size:14.5px;border-radius:10px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-wide{width:100%}
.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px}
.in{background:var(--bg);border:1.5px solid var(--line);border-radius:12px;padding:11px 12px;width:100%;min-height:46px}
textarea.in{min-height:84px;resize:vertical}
label.f{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14.5px}
label.f .h{font-weight:400;color:var(--muted)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fgrid .full{grid-column:1/-1}
@media (max-width:520px){.fgrid{grid-template-columns:1fr}}
.err{color:var(--red);font-weight:600;font-size:14.5px;min-height:1.2em}
.chip{display:inline-flex;align-items:center;font-size:12.5px;font-weight:700;border-radius:999px;padding:3px 9px;white-space:nowrap;background:var(--sunk);color:var(--muted)}
.chip.g{background:var(--green-soft);color:var(--green)} .chip.y{background:var(--yellow-soft);color:var(--yellow-ink)} .chip.r{background:var(--red-soft);color:var(--red)}
.stack{display:flex;flex-direction:column;gap:12px}
/* Ticket de promo */
.ticket{display:grid;grid-template-columns:104px 1fr;background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden;text-align:left;width:100%;cursor:pointer;padding:0;color:var(--ink)}
.ticket:hover{border-color:var(--ink)}
.ticket .pct{background:var(--yellow);color:#231C00;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px 6px;position:relative;border-right:2px dashed rgba(17,26,22,.25)}
.ticket .pct::before,.ticket .pct::after{content:"";position:absolute;right:-9px;width:16px;height:16px;border-radius:50%;background:var(--bg)}
.ticket .pct::before{top:-9px}.ticket .pct::after{bottom:-9px}
.ticket .pct b{font-family:var(--display);font-weight:900;font-size:36px;line-height:.9;letter-spacing:-.03em}
.ticket .pct span{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-top:4px}
.ticket.cuotas .pct{background:var(--green-soft);color:var(--green)}
.ticket .body{padding:12px 14px;min-width:0;display:flex;flex-direction:column;gap:4px}
.ticket .m{font-family:var(--display);font-weight:800;font-size:19px;line-height:1.1}
.ticket .t{font-size:14.5px;color:var(--muted)}
.ticket .meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}
.ticket .save{font-family:var(--display);font-weight:800;color:var(--green);font-size:17px}
dialog{border:0;padding:0;border-radius:20px;background:var(--surface);color:var(--ink);width:min(560px,calc(100vw - 20px));max-height:calc(100dvh - 24px);box-shadow:0 24px 70px rgba(10,20,15,.35)}
dialog::backdrop{background:rgba(10,20,15,.5)}
@media (max-width:560px){dialog{margin:auto 0 0;width:100vw;max-width:100vw;border-radius:20px 20px 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}}
.dlg{display:flex;flex-direction:column;max-height:inherit}
.dlg-h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:18px 18px 8px}
.dlg-b{padding:8px 18px 12px;overflow:auto}
.dlg-f{padding:12px 18px 18px;display:flex;gap:8px;justify-content:flex-end;align-items:center;flex-wrap:wrap}
.x{background:none;border:0;font-size:28px;line-height:1;color:var(--muted);cursor:pointer;padding:0 4px}
.toast{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 18px;border-radius:999px;font-size:14.5px;font-weight:600;opacity:0;pointer-events:none;transition:opacity .2s;z-index:99;max-width:90vw;text-align:center}
.toast.on{opacity:1}
@media (prefers-reduced-motion: reduce){*{transition:none!important}}
