@import url('https://fonts.googleapis.com/css2?family=Baloo+2:wght@600;700;800&family=Nunito:wght@400;600;700;800&display=swap');

:root{
  --p-coral:#fb5b73;
  --p-coral-deep:#ef4766;
  --p-coral-soft:#ffd5dc;
  --p-teal:#23aec2;
  --p-teal-deep:#1196ac;
  --p-yellow:#f8c654;
  --p-yellow-soft:#ffe9ad;
  --p-cream:#fffaf5;
  --p-paper:#fffdfb;
  --p-ink:#27374d;
  --p-muted:#697586;
  --p-line:#d7deea;
  --p-shadow:0 22px 50px rgba(39,55,77,.12);
}

body.puntos-body,
body.puntos-console-body{
  margin:0;
  color:var(--p-ink);
  font-family:"Nunito","Segoe UI",sans-serif;
  background:
    radial-gradient(circle at 8% 14%, rgba(255,255,255,.75) 0 5px, transparent 6px),
    radial-gradient(circle at 11% 17%, rgba(255,255,255,.95) 0 3px, transparent 4px),
    radial-gradient(circle at 15% 10%, rgba(255,255,255,.75) 0 4px, transparent 5px),
    radial-gradient(circle at 86% 10%, rgba(255,255,255,.85) 0 5px, transparent 6px),
    radial-gradient(circle at 90% 14%, rgba(255,255,255,.95) 0 3px, transparent 4px),
    radial-gradient(circle at 93% 8%, rgba(255,255,255,.8) 0 4px, transparent 5px),
    linear-gradient(180deg, #ff657d 0%, #ff5c76 100%);
  min-height:100vh;
}

.puntos-wrap{
  max-width:1120px;
  margin:0 auto;
  padding:28px 18px 54px;
  position:relative;
}

.puntos-wrap::before,
.puntos-wrap::after{
  content:"";
  position:absolute;
  width:220px;
  height:220px;
  border-radius:50%;
  z-index:0;
  opacity:.95;
}

.puntos-wrap::before{
  left:-82px;
  bottom:140px;
  background:
    radial-gradient(circle at 50% 50%, #ff7c90 0 28%, transparent 29%),
    radial-gradient(circle at 50% 50%, var(--p-teal) 0 46%, transparent 47%),
    radial-gradient(circle at 50% 50%, var(--p-yellow) 0 64%, transparent 65%),
    radial-gradient(circle at 50% 50%, #f5c2cf 0 100%);
}

.puntos-wrap::after{
  right:-86px;
  bottom:38px;
  background:
    radial-gradient(circle at 50% 50%, #ff8ca0 0 26%, transparent 27%),
    radial-gradient(circle at 50% 50%, var(--p-yellow) 0 45%, transparent 46%),
    radial-gradient(circle at 50% 50%, var(--p-teal) 0 63%, transparent 64%),
    radial-gradient(circle at 50% 50%, #f7c6d1 0 100%);
}

.puntos-hero,
.puntos-shell-hero{
  position:relative;
  z-index:1;
  overflow:hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,.16) 0%, rgba(255,255,255,.05) 100%),
    radial-gradient(circle at top left, rgba(255,255,255,.14) 0 2px, transparent 3px),
    linear-gradient(180deg, #ff6f85 0%, #fb5b73 100%);
  background-size:auto, 24px 24px, auto;
  border:1px solid rgba(255,255,255,.25);
  border-radius:34px;
  color:#fff;
  padding:26px 26px 190px;
  box-shadow:var(--p-shadow);
  margin-bottom:18px;
}

.puntos-hero::before,
.puntos-shell-hero::before{
  content:"";
  position:absolute;
  inset:auto -18px -110px -18px;
  height:230px;
  background:
    radial-gradient(circle at 16% 72%, #1fb0c5 0 12%, transparent 13%),
    radial-gradient(circle at 16% 72%, var(--p-yellow) 0 24%, transparent 25%),
    radial-gradient(circle at 16% 72%, rgba(255,255,255,.22) 0 39%, transparent 40%),
    radial-gradient(circle at 48% 84%, rgba(31,176,197,.95) 0 18%, transparent 19%),
    radial-gradient(circle at 48% 84%, var(--p-yellow) 0 34%, transparent 35%),
    radial-gradient(circle at 48% 84%, rgba(255,255,255,.18) 0 52%, transparent 53%),
    radial-gradient(circle at 84% 76%, #1fb0c5 0 10%, transparent 11%),
    radial-gradient(circle at 84% 76%, var(--p-yellow) 0 20%, transparent 21%),
    radial-gradient(circle at 84% 76%, rgba(255,255,255,.18) 0 35%, transparent 36%),
    linear-gradient(180deg, transparent 0 28%, rgba(255,255,255,.22) 29% 100%);
  pointer-events:none;
}

.puntos-hero::after,
.puntos-shell-hero::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:122px;
  background:
    radial-gradient(circle at 10% 105%, rgba(255,255,255,.25) 0 44%, transparent 45%),
    radial-gradient(circle at 90% 105%, rgba(255,255,255,.25) 0 44%, transparent 45%);
  pointer-events:none;
}

.puntos-hero h1,
.puntos-shell-hero h1{
  margin:0 0 12px;
  font-size:clamp(2.5rem, 7vw, 4.9rem);
  line-height:.95;
  max-width:760px;
  letter-spacing:.02em;
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
}

.puntos-hero p,
.puntos-shell-hero p{
  margin:0;
  max-width:560px;
  font-size:1.05rem;
  line-height:1.45;
  position:relative;
  z-index:1;
}

.puntos-wordmark{
  display:block;
  width:min(100%, 360px);
  margin:0 0 10px;
  filter:drop-shadow(0 10px 22px rgba(123,48,66,.18));
}

.puntos-hero-logo-badge{
  display:block;
  width:min(100%, 168px);
  margin:0 0 14px;
  filter:drop-shadow(0 10px 22px rgba(123,48,66,.2));
}

.puntos-hero-subtitle{
  position:relative;
  z-index:1;
  margin:-4px 0 12px;
  color:#ffe7a6;
  font-weight:900;
  font-size:1.35rem;
  line-height:1.12;
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
}

.puntos-hero-inline-notes{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:16px;
  position:relative;
  z-index:1;
}

.puntos-hero-inline-notes span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 14px;
  border-radius:999px;
  background:rgba(255,255,255,.92);
  color:var(--p-coral-deep);
  border:1px solid rgba(255,255,255,.7);
  box-shadow:0 10px 18px rgba(123,48,66,.08);
  font-size:.78rem;
  font-weight:900;
}

.puntos-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:#fff;
  color:var(--p-coral-deep);
  border-radius:999px;
  padding:9px 14px;
  font-size:.75rem;
  font-weight:900;
  letter-spacing:.04em;
  margin-bottom:16px;
  position:relative;
  z-index:1;
  box-shadow:0 10px 18px rgba(0,0,0,.08);
}

.puntos-badge::before{
  content:"❤";
  font-size:.82rem;
}

.puntos-brand-mark{
  width:104px;
  height:104px;
  border-radius:28px;
  background:rgba(255,255,255,.97);
  color:var(--p-coral-deep);
  display:grid;
  place-items:center;
  font-size:2rem;
  font-weight:900;
  box-shadow:0 12px 24px rgba(0,0,0,.08);
  margin-bottom:18px;
  position:relative;
  overflow:hidden;
  border:6px solid rgba(35,174,194,.28);
}

.puntos-brand-mark--heart{
  width:132px;
  height:132px;
  border-radius:38px;
}

.puntos-brand-mark--wide{
  width:100%;
  max-width:230px;
  height:auto;
  min-height:126px;
  padding:10px;
  border-radius:26px;
}

.puntos-brand-mark span{
  display:block;
  transform:translateY(-1px);
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
  letter-spacing:.04em;
  position:relative;
  z-index:1;
}

.puntos-brand-mark img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:22px;
  position:relative;
  z-index:1;
}

.puntos-brand-mark--wide img{
  height:auto;
  object-fit:contain;
  border-radius:18px;
}

.puntos-brand-mark::before{
  content:"";
  position:absolute;
  inset:10px;
  border-radius:22px;
  border:4px solid rgba(239,71,102,.24);
}

.puntos-brand-mark::after{
  content:"";
  position:absolute;
  width:58px;
  height:16px;
  left:50%;
  top:50%;
  transform:translate(-50%, -50%) rotate(-12deg);
  border-radius:999px;
  border:3px solid rgba(248,198,84,.95);
  box-shadow:0 -6px 0 -3px rgba(239,71,102,.65), 0 6px 0 -3px rgba(239,71,102,.65);
  opacity:.7;
}

.puntos-hero-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.12fr) minmax(300px, .88fr);
  gap:18px;
  position:relative;
  z-index:1;
}

.puntos-hero-copy{
  min-width:0;
}

.puntos-hero-side{
  align-self:start;
  justify-self:end;
  width:min(100%, 360px);
  transform:translateY(8px) rotate(-2deg);
}

.puntos-hero-figure{
  margin:0 0 14px;
  background:rgba(255,255,255,.2);
  border:1px solid rgba(255,255,255,.28);
  border-radius:30px;
  padding:12px;
  box-shadow:0 18px 28px rgba(123,48,66,.16);
  backdrop-filter:blur(6px);
}

.puntos-hero-figure img{
  display:block;
  width:100%;
  height:auto;
  border-radius:22px;
}

.puntos-chip-grid{
  display:grid;
  gap:10px;
}

.puntos-rules-card{
  background:rgba(255,255,255,.94);
  color:var(--p-ink);
  border-radius:22px;
  padding:14px 16px;
  box-shadow:0 16px 28px rgba(39,55,77,.08);
  border:1px solid rgba(255,255,255,.8);
  margin-bottom:14px;
}

.puntos-rules-card strong{
  display:block;
  color:var(--p-teal-deep);
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
  font-size:1.1rem;
  margin-bottom:8px;
}

.puntos-rules-card ul{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:7px;
}

.puntos-rules-card li{
  position:relative;
  padding-left:18px;
  color:var(--p-muted);
  font-size:.84rem;
  line-height:1.35;
}

.puntos-rules-card li::before{
  content:"";
  position:absolute;
  left:0;
  top:.45rem;
  width:8px;
  height:8px;
  border-radius:999px;
  background:linear-gradient(180deg, var(--p-yellow) 0%, var(--p-coral-deep) 100%);
}

.puntos-chip{
  background:rgba(255,255,255,.92);
  color:var(--p-ink);
  border-radius:20px;
  padding:14px 16px;
  box-shadow:0 14px 24px rgba(30,41,59,.08);
  border:1px solid rgba(255,255,255,.85);
}

.puntos-hero-copy .puntos-badge + .puntos-wordmark{
  margin-top:-4px;
}

.puntos-chip strong{
  display:block;
  font-size:.95rem;
  margin-bottom:4px;
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
}

.puntos-chip span{
  display:block;
  font-size:.82rem;
  color:var(--p-muted);
  line-height:1.35;
}

.puntos-card{
  position:relative;
  z-index:1;
  background:var(--p-paper);
  border-radius:30px;
  padding:20px;
  margin-bottom:18px;
  box-shadow:var(--p-shadow);
  border:1px solid rgba(255,255,255,.35);
}

.puntos-card::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:30px;
  padding:1px;
  background:linear-gradient(180deg, rgba(239,71,102,.18), rgba(35,174,194,.12));
  -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  pointer-events:none;
}

.puntos-card h2{
  margin:0 0 14px;
  font-size:1.7rem;
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
  letter-spacing:.01em;
}

.puntos-panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}

.puntos-panel-head p{
  margin:4px 0 0;
  color:var(--p-muted);
}

.puntos-form,
.puntos-search-form,
.puntos-inline-form{
  display:grid;
  gap:12px;
}

.puntos-form-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}

.puntos-form-grid .puntos-field-span{
  grid-column:1 / -1;
}

.puntos-form label,
.puntos-search-form label,
.puntos-inline-form label,
.puntos-reward-item label{
  display:grid;
  gap:6px;
  font-size:.78rem;
  font-weight:900;
  color:var(--p-ink);
}

.puntos-form input,
.puntos-form select,
.puntos-search-form input,
.puntos-inline-form input,
.puntos-inline-form select,
.puntos-reward-item input{
  width:100%;
  min-height:48px;
  border-radius:16px;
  border:1px solid rgba(239,71,102,.12);
  background:#fff;
  padding:0 14px;
  font-size:.95rem;
  color:var(--p-ink);
  box-sizing:border-box;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}

.puntos-form input:focus,
.puntos-form select:focus,
.puntos-search-form input:focus,
.puntos-inline-form input:focus,
.puntos-inline-form select:focus,
.puntos-reward-item input:focus{
  outline:none;
  border-color:rgba(35,174,194,.55);
  box-shadow:0 0 0 4px rgba(35,174,194,.12);
}

.puntos-note,
.puntos-notice,
.puntos-error{
  border-radius:18px;
  padding:13px 15px;
  font-size:.84rem;
  line-height:1.45;
}

.puntos-note{
  background:#fff6df;
  border:1px solid #f8dd92;
  color:#7b5c17;
}

.puntos-notice{
  color:#0f5a50;
  background:#edfffb;
  border:1px solid #a8ece2;
}

.puntos-error{
  color:#991b1b;
  background:#fff1f2;
  border:1px solid #fecdd3;
}

.puntos-actions,
.puntos-search-actions,
.puntos-shell-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.puntos-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:48px;
  padding:0 18px;
  border:none;
  border-radius:16px;
  background:#ffe3e8;
  color:var(--p-coral-deep);
  font-size:.92rem;
  font-weight:900;
  text-decoration:none;
  cursor:pointer;
  box-shadow:0 10px 18px rgba(39,55,77,.08);
}

.puntos-btn-primary{
  background:linear-gradient(180deg, var(--p-teal) 0%, var(--p-teal-deep) 100%);
  color:#fff;
}

.puntos-btn-danger{
  background:#fff1f2;
  color:#991b1b;
  border:1px solid #fecdd3;
}

.puntos-btn-ghost{
  background:rgba(255,255,255,.92);
  color:var(--p-teal-deep);
  border:1px solid rgba(255,255,255,.8);
  box-shadow:0 8px 16px rgba(39,55,77,.08);
}

.puntos-main-card{
  background:linear-gradient(180deg, #fffefe 0%, #fff7f8 100%);
}

.puntos-card-frame{
  position:relative;
  border-radius:28px;
  padding:18px;
  background:linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.88) 100%);
  border:1px solid rgba(39,55,77,.08);
}

.puntos-main-card .puntos-card-frame{
  background:
    radial-gradient(circle at 8% 10%, rgba(255,255,255,.28) 0 3px, transparent 4px),
    radial-gradient(circle at 92% 14%, rgba(255,255,255,.28) 0 3px, transparent 4px),
    linear-gradient(180deg, #ff7087 0%, #fb5b73 100%);
  border-color:rgba(255,255,255,.24);
}

.puntos-loyalty-card{
  display:grid;
  grid-template-columns:108px minmax(0, 1fr);
  gap:22px;
  align-items:start;
}

.puntos-loyalty-rail{
  background:rgba(255,255,255,.94);
  border-radius:24px;
  padding:18px 10px;
  min-height:100%;
  display:grid;
  justify-items:center;
  align-content:start;
  gap:16px;
  box-shadow:0 14px 24px rgba(123,48,66,.12);
}

.puntos-loyalty-rail-title{
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
  font-size:1.1rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--p-coral-deep);
}

.puntos-loyalty-rail-code{
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
  font-size:1.35rem;
  color:var(--p-coral-deep);
  writing-mode:vertical-rl;
  transform:rotate(180deg);
}

.puntos-loyalty-rail-meta{
  font-size:.8rem;
  color:var(--p-muted);
  writing-mode:vertical-rl;
  transform:rotate(180deg);
}

.puntos-loyalty-body{
  display:grid;
  gap:18px;
}

.puntos-summary-compact{
  margin-bottom:0;
}

.puntos-rows-card{
  gap:26px;
}

.puntos-row-card{
  padding:0 0 4px;
}

.puntos-row-head-card{
  margin-top:14px !important;
}

.puntos-row-title-card{
  gap:10px !important;
}

.puntos-row-title-card strong{
  font-size:1.3rem !important;
}

.puntos-row-title-card span{
  font-size:1.12rem !important;
  max-width:400px !important;
}

.puntos-stamps-card{
  gap:18px !important;
}

.puntos-loyalty-footer{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-top:6px;
}

.puntos-loyalty-rule{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:0 14px;
  border-radius:12px;
  background:rgba(255,255,255,.94);
  color:var(--p-coral-deep);
  font-weight:900;
  font-size:.92rem;
  box-shadow:0 10px 18px rgba(123,48,66,.1);
}

.puntos-loyalty-qr-mini{
  display:grid;
  justify-items:center;
  gap:8px;
}

.puntos-qr-image-mini{
  width:116px;
  height:116px;
  margin:0;
  border-radius:18px;
}

.puntos-card-frame::before,
.puntos-card-frame::after{
  content:"";
  position:absolute;
  top:50%;
  width:28px;
  height:28px;
  background:#ff627a;
  border-radius:50%;
  transform:translateY(-50%);
  box-shadow:inset 0 0 0 10px var(--p-paper);
}

.puntos-card-frame::before{
  left:-14px;
}

.puntos-card-frame::after{
  right:-14px;
}

.puntos-qr-box{
  margin-bottom:18px;
}

.puntos-qr-fake{
  background:
    radial-gradient(circle at top left, rgba(255,255,255,.55) 0 2px, transparent 3px),
    linear-gradient(180deg, rgba(255,111,134,.96) 0%, rgba(255,91,115,.96) 100%);
  background-size:26px 26px, auto;
  border-radius:26px;
  padding:18px;
  text-align:center;
  color:#fff;
  box-shadow:0 18px 34px rgba(239,71,102,.2);
  position:relative;
  overflow:hidden;
}

.puntos-qr-fake::after{
  content:"";
  position:absolute;
  right:-30px;
  bottom:-36px;
  width:120px;
  height:120px;
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%, rgba(31,176,197,.96) 0 20%, transparent 21%),
    radial-gradient(circle at 50% 50%, rgba(248,198,84,.96) 0 40%, transparent 41%),
    radial-gradient(circle at 50% 50%, rgba(255,255,255,.18) 0 64%, transparent 65%);
  opacity:.8;
}

.puntos-qr-title{
  font-size:.82rem;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
  opacity:.92;
}

.puntos-qr-code{
  font-size:2rem;
  font-weight:900;
  letter-spacing:.05em;
  margin:8px 0 4px;
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
  position:relative;
  z-index:1;
}

.puntos-qr-image{
  width:196px;
  height:196px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:12px auto 10px;
  border-radius:24px;
  background:#fff;
  padding:12px;
  box-shadow:0 12px 24px rgba(39,55,77,.12);
  position:relative;
  z-index:1;
}

.puntos-qr-image img,
.puntos-qr-image canvas{
  max-width:100%;
  height:auto;
}

.puntos-qr-hint{
  font-size:.82rem;
  max-width:270px;
  margin:0 auto;
  color:rgba(255,255,255,.92);
  position:relative;
  z-index:1;
}

.puntos-summary{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
  margin-bottom:18px;
}

.puntos-main-card .puntos-summary div{
  background:rgba(255,255,255,.92);
  border-color:rgba(255,255,255,.44);
}

.puntos-summary div{
  position:relative;
  border-radius:22px;
  padding:16px 14px;
  text-align:center;
  background:linear-gradient(180deg, #ffffff 0%, #fff4f6 100%);
  border:1px solid rgba(239,71,102,.14);
}

.puntos-summary div::before{
  content:"";
  position:absolute;
  left:16px;
  right:16px;
  top:0;
  height:6px;
  border-radius:0 0 10px 10px;
  background:linear-gradient(90deg, var(--p-teal) 0%, var(--p-yellow) 55%, var(--p-coral-deep) 100%);
}

.puntos-summary strong{
  display:block;
  font-size:1.9rem;
  line-height:1;
  color:var(--p-coral-deep);
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
}

.puntos-summary span{
  display:block;
  margin-top:6px;
  font-size:.78rem;
  color:var(--p-muted);
}

.puntos-rows{
  display:grid;
  gap:14px;
}

.puntos-main-card .puntos-rows{
  gap:22px;
}

.puntos-row{
  border-radius:24px;
  padding:16px;
  background:#fff;
  border:1px solid rgba(39,55,77,.08);
  box-shadow:0 12px 18px rgba(39,55,77,.04);
}

.puntos-main-card .puntos-row{
  background:transparent;
  border:none;
  box-shadow:none;
  padding:4px 6px 2px;
}

.puntos-row.is-complete{
  background:linear-gradient(180deg, #fffdf5 0%, #fff7dc 100%);
  border-color:rgba(248,198,84,.38);
}

.puntos-main-card .puntos-row.is-complete{
  background:transparent;
  border-color:transparent;
}

.puntos-row-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}

.puntos-main-card .puntos-row-head{
  justify-content:center;
  margin-top:12px;
  margin-bottom:0;
}

.puntos-row-title,
.puntos-reward-head{
  display:flex;
  align-items:center;
  gap:12px;
}

.puntos-main-card .puntos-row-title{
  display:grid;
  justify-items:center;
  text-align:center;
  gap:8px;
}

.puntos-row-title > div{
  display:grid;
  gap:4px;
}

.puntos-row-head strong{
  font-size:1rem;
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
  color:var(--p-coral-deep);
}

.puntos-main-card .puntos-row-head strong{
  color:#ffffff;
  font-size:1.15rem;
}

.puntos-row-head span{
  font-size:.84rem;
  color:var(--p-ink);
  background:#fff5cf;
  border:1px solid #f4dfa2;
  border-radius:999px;
  padding:6px 10px;
  font-weight:800;
}

.puntos-main-card .puntos-row-head span{
  background:none;
  border:none;
  color:#fffdf7;
  padding:0;
  font-size:1rem;
  line-height:1.25;
  max-width:340px;
}

.puntos-reward-icon{
  width:48px;
  height:48px;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  background:#fff4dc;
  border:1px solid rgba(39,55,77,.08);
  box-shadow:0 10px 18px rgba(39,55,77,.06);
}

.puntos-main-card .puntos-reward-icon{
  width:58px;
  height:58px;
  border-radius:18px;
  background:rgba(255,255,255,.96);
  border-color:rgba(255,255,255,.42);
}

.puntos-reward-icon img{
  width:36px;
  height:36px;
  object-fit:contain;
}

.reward-churro{
  background:#fff4dc;
}

.reward-cafe{
  background:#eef9fc;
}

.reward-agua{
  background:#eef9fc;
}

.reward-helado{
  background:#fff4dc;
}

.reward-caja-churros{
  background:#fff0f5;
}

.reward-perro{
  background:#fff7e5;
}

.reward-malteada{
  background:#fff0f5;
}

.reward-hamburguesa{
  background:#fff7e5;
}

.reward-waffle{
  background:#fff8eb;
}

.reward-bandeja-mitis{
  background:#eef9fc;
}

.reward-gift{
  background:#f3fbfd;
}

.puntos-reward-icon--feature{
  width:72px;
  height:72px;
  border-radius:22px;
  box-shadow:0 14px 24px rgba(39,55,77,.08);
}

.puntos-reward-icon--feature img{
  width:52px;
  height:52px;
}

.puntos-reward-icon--console{
  width:64px;
  height:64px;
}

.puntos-reward-icon--console img{
  width:46px;
  height:46px;
}

.puntos-wordmark-small{
  width:min(100%, 240px);
  margin:0 auto 8px;
}

.puntos-register-shell{
  display:grid;
  grid-template-columns:minmax(280px, 360px) minmax(0, 1fr);
  gap:22px;
  align-items:stretch;
  background:
    radial-gradient(circle at 8% 10%, rgba(255,255,255,.55) 0 4px, transparent 5px),
    radial-gradient(circle at 92% 14%, rgba(35,174,194,.35) 0 4px, transparent 5px),
    linear-gradient(180deg, #fff7f8 0%, #fffdfc 100%);
  border:2px solid rgba(239,71,102,.14);
  overflow:hidden;
}

.puntos-register-shell::before{
  display:none;
}

.puntos-register-visual{
  display:grid;
  gap:14px;
}

.puntos-register-phone{
  background:linear-gradient(180deg, #ff6780 0%, #fb5b73 100%);
  border-radius:32px;
  padding:14px;
  box-shadow:0 22px 34px rgba(239,71,102,.18);
  position:relative;
}

.puntos-register-phone::before{
  content:"";
  position:absolute;
  top:10px;
  left:50%;
  width:92px;
  height:18px;
  border-radius:0 0 16px 16px;
  transform:translateX(-50%);
  background:rgba(39,55,77,.22);
  z-index:2;
}

.puntos-register-phone-body{
  min-height:100%;
  border-radius:26px;
  padding:34px 18px 14px;
  color:#fff;
  text-align:center;
  background:
    radial-gradient(circle at 16% 18%, rgba(255,255,255,.28) 0 3px, transparent 4px),
    radial-gradient(circle at 84% 18%, rgba(255,255,255,.28) 0 3px, transparent 4px),
    linear-gradient(180deg, rgba(255,255,255,.1) 0%, rgba(255,255,255,.03) 100%);
}

.puntos-register-phone-body h2{
  margin:4px 0 8px;
  font-size:2.15rem;
  color:#fff;
}

.puntos-register-phone-body p{
  margin:0;
  color:rgba(255,255,255,.92);
}

.puntos-register-illustration{
  margin-top:14px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.24);
  border-radius:24px;
  padding:10px;
}

.puntos-register-illustration img{
  display:block;
  width:100%;
  height:auto;
  border-radius:18px;
}

.puntos-register-rule,
.puntos-register-quick{
  background:linear-gradient(180deg, #fffef8 0%, #fff8dc 100%);
  border:1px solid #f5df9e;
  border-radius:20px;
  padding:15px 16px;
  box-shadow:0 12px 20px rgba(39,55,77,.05);
}

.puntos-register-rule strong,
.puntos-register-quick strong{
  display:block;
  color:var(--p-coral-deep);
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
  font-size:1.05rem;
}

.puntos-register-rule span,
.puntos-register-quick span{
  display:block;
  margin-top:4px;
  color:var(--p-muted);
  font-size:.9rem;
  line-height:1.4;
}

.puntos-register-rule-badge{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  margin-top:10px;
  padding:0 12px;
  border-radius:999px;
  background:#fff;
  color:var(--p-teal-deep);
  font-size:.8rem;
  font-weight:900;
  box-shadow:0 10px 18px rgba(39,55,77,.06);
}

.puntos-register-mini-strip{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.puntos-register-mini-strip span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 12px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(39,55,77,.08);
  color:var(--p-teal-deep);
  font-size:.78rem;
  font-weight:900;
  box-shadow:0 8px 14px rgba(39,55,77,.04);
}

.puntos-register-form-panel{
  display:grid;
  gap:16px;
  align-content:start;
}

.puntos-register-panel{
  display:grid;
  gap:16px;
  padding:20px;
  border-radius:28px;
  background:
    radial-gradient(circle at 95% 8%, rgba(35,174,194,.12) 0 34px, transparent 35px),
    linear-gradient(180deg, #ffffff 0%, #fff8fa 100%);
  border:1px solid rgba(239,71,102,.12);
  box-shadow:0 16px 26px rgba(39,55,77,.05);
}

.puntos-register-tabs{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
}

.puntos-register-tab{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  border-radius:16px;
  background:#fff7f8;
  border:1px solid rgba(239,71,102,.14);
  color:var(--p-coral-deep);
  font-weight:900;
  box-shadow:0 10px 18px rgba(39,55,77,.04);
  text-decoration:none;
}

.puntos-register-tab.is-active{
  background:linear-gradient(180deg, #ff768c 0%, #fb5b73 100%);
  color:#fff;
  border-color:rgba(255,255,255,.3);
  transform:translateY(-2px);
  box-shadow:0 14px 24px rgba(239,71,102,.18);
}

.puntos-register-lookup{
  display:grid;
  gap:12px;
  background:none;
  border:none;
  border-radius:0;
  padding:0;
  box-shadow:none;
}

.puntos-register-lookup-form{
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:end;
}

.puntos-register-lookup-form .puntos-error{
  grid-column:1 / -1;
}

.puntos-register-check{
  margin-top:2px;
}

.puntos-panel-tag{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:34px;
  padding:0 12px 0 8px;
  border-radius:999px;
  background:#eaf9fc;
  color:var(--p-teal-deep);
  font-size:.8rem;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
  margin-bottom:8px;
}

.puntos-panel-tag span{
  width:26px;
  height:26px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:linear-gradient(180deg, #23aec2 0%, #1196ac 100%);
  color:#fff;
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
  font-size:1rem;
}

.puntos-register-support{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}

.puntos-register-support article{
  background:#fff;
  border:1px solid rgba(39,55,77,.08);
  border-radius:18px;
  padding:12px 14px;
  box-shadow:0 10px 18px rgba(39,55,77,.04);
}

.puntos-register-support strong{
  display:block;
  color:var(--p-coral-deep);
  font-size:.95rem;
}

.puntos-register-support span{
  display:block;
  margin-top:4px;
  color:var(--p-muted);
  font-size:.84rem;
  line-height:1.4;
}

.puntos-sidebar-nav{
  display:grid;
  gap:8px;
  margin:4px 0 4px;
}

.puntos-sidebar-link{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:42px;
  padding:0 14px;
  border-radius:14px;
  text-decoration:none;
  color:var(--p-ink);
  background:#fff;
  border:1px solid rgba(39,55,77,.08);
  font-weight:900;
  box-shadow:0 10px 18px rgba(39,55,77,.05);
}

.puntos-sidebar-link::before{
  content:"";
  width:10px;
  height:10px;
  border-radius:999px;
  background:linear-gradient(180deg, var(--p-yellow) 0%, var(--p-coral-deep) 100%);
}

.puntos-admin-grid-six{
  grid-template-columns:repeat(6, minmax(0, 1fr));
}

.puntos-dashboard-grid,
.puntos-config-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px;
}

.puntos-dashboard-panel{
  background:linear-gradient(180deg, #ffffff 0%, #fff7f8 100%);
  border:1px solid rgba(239,71,102,.12);
  border-radius:24px;
  padding:18px;
  box-shadow:0 14px 24px rgba(39,55,77,.05);
  position:relative;
  overflow:hidden;
}

.puntos-dashboard-panel::after{
  content:"";
  position:absolute;
  top:-26px;
  right:-16px;
  width:96px;
  height:96px;
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%, rgba(248,198,84,.95) 0 20%, transparent 21%),
    radial-gradient(circle at 50% 50%, rgba(35,174,194,.65) 0 42%, transparent 43%),
    radial-gradient(circle at 50% 50%, rgba(239,71,102,.16) 0 64%, transparent 65%);
  opacity:.7;
}

.puntos-dashboard-panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}

.puntos-dashboard-panel-head h3{
  margin:0;
  font-size:1.25rem;
  color:var(--p-coral-deep);
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
}

.puntos-dashboard-panel-head p{
  margin:4px 0 0;
  color:var(--p-muted);
}

.puntos-activity-columns{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
}

.puntos-mini-list{
  display:grid;
  gap:10px;
}

.puntos-mini-list h4{
  margin:0;
  color:var(--p-teal-deep);
  font-size:.92rem;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.puntos-mini-item{
  background:#fff;
  border:1px solid rgba(39,55,77,.08);
  border-radius:18px;
  padding:12px 13px;
  box-shadow:0 10px 18px rgba(39,55,77,.04);
}

.puntos-mini-item strong{
  display:block;
  color:var(--p-coral-deep);
}

.puntos-mini-item span{
  display:block;
  margin-top:4px;
  color:var(--p-muted);
  font-size:.84rem;
}

.puntos-metrics-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
}

.puntos-metric-pill{
  background:#fff;
  border:1px solid rgba(39,55,77,.08);
  border-radius:20px;
  padding:14px 12px;
  text-align:center;
  box-shadow:0 10px 18px rgba(39,55,77,.04);
}

.puntos-metric-pill strong{
  display:block;
  color:var(--p-coral-deep);
  font-size:1.5rem;
  line-height:1;
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
}

.puntos-metric-pill span{
  display:block;
  margin-top:6px;
  color:var(--p-muted);
  font-size:.8rem;
}

.puntos-summary-admin{
  margin-bottom:16px;
}

.puntos-config-note-list{
  display:grid;
  gap:10px;
}

.puntos-config-note{
  background:#fff;
  border:1px solid rgba(39,55,77,.08);
  border-radius:18px;
  padding:13px 14px;
}

.puntos-config-note strong{
  display:block;
  color:var(--p-coral-deep);
  margin-bottom:4px;
}

.puntos-config-note span{
  color:var(--p-muted);
  font-size:.88rem;
  line-height:1.45;
}

.puntos-config-tiles{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:14px;
  margin-top:18px;
}

.puntos-config-tile{
  background:linear-gradient(180deg, #fffef8 0%, #fff8e1 100%);
  border:1px solid rgba(248,198,84,.45);
  border-radius:20px;
  padding:16px;
  box-shadow:0 12px 20px rgba(39,55,77,.05);
}

.puntos-config-tile strong{
  display:block;
  color:var(--p-coral-deep);
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
  font-size:1rem;
  margin-bottom:4px;
}

.puntos-config-tile span{
  display:block;
  color:var(--p-muted);
  font-size:.86rem;
  line-height:1.45;
}

.puntos-config-tile:nth-child(1){
  background:linear-gradient(180deg, #fff8fb 0%, #fff 100%);
  border-color:rgba(239,71,102,.16);
}

.puntos-config-tile:nth-child(2){
  background:linear-gradient(180deg, #fffef6 0%, #fff 100%);
  border-color:rgba(248,198,84,.28);
}

.puntos-config-tile:nth-child(3){
  background:linear-gradient(180deg, #f6fdff 0%, #fff 100%);
  border-color:rgba(35,174,194,.18);
}

.puntos-config-tile:nth-child(4){
  background:linear-gradient(180deg, #faf7ff 0%, #fff 100%);
  border-color:rgba(154,116,216,.16);
}

.puntos-level-editor{
  display:grid;
  gap:16px;
  margin-top:18px;
  padding:18px;
  border-radius:26px;
  background:linear-gradient(180deg, #fff9fa 0%, #ffffff 100%);
  border:1px solid rgba(239,71,102,.12);
}

.puntos-admin-card{
  background:linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(255,250,251,.98) 100%);
}

.puntos-admin-showcase{
  background:
    radial-gradient(circle at 4% 8%, rgba(35,174,194,.1) 0 34px, transparent 35px),
    radial-gradient(circle at 96% 10%, rgba(248,198,84,.14) 0 38px, transparent 39px),
    linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(255,248,249,.98) 100%);
}

.puntos-kpi{
  border-top-width:6px;
}

.puntos-kpi:nth-child(1){ border-top-color:#23aec2; }
.puntos-kpi:nth-child(2){ border-top-color:#f8c654; }
.puntos-kpi:nth-child(3){ border-top-color:#ef4766; }
.puntos-kpi:nth-child(4){ border-top-color:#23aec2; }
.puntos-kpi:nth-child(5){ border-top-color:#71b783; }
.puntos-kpi:nth-child(6){ border-top-color:#9a74d8; }

.puntos-admin-legend{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:0 0 16px;
}

.puntos-admin-legend span{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:0 12px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(39,55,77,.08);
  color:var(--p-coral-deep);
  font-size:.78rem;
  font-weight:900;
  box-shadow:0 8px 14px rgba(39,55,77,.04);
}

.puntos-ribbon{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:12px;
  margin-top:2px;
}

.puntos-ribbon article{
  background:linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(255,247,248,.96) 100%);
  border:1px solid rgba(255,255,255,.7);
  border-radius:22px;
  padding:16px;
  box-shadow:0 16px 28px rgba(39,55,77,.06);
}

.puntos-ribbon strong{
  display:block;
  color:var(--p-coral-deep);
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
  font-size:1rem;
}

.puntos-ribbon span{
  display:block;
  margin-top:4px;
  color:var(--p-muted);
  font-size:.84rem;
  line-height:1.4;
}

.puntos-ribbon article:nth-child(1){ border-bottom:4px solid #23aec2; }
.puntos-ribbon article:nth-child(2){ border-bottom:4px solid #f8c654; }
.puntos-ribbon article:nth-child(3){ border-bottom:4px solid #ef4766; }
.puntos-ribbon article:nth-child(4){ border-bottom:4px solid #71b783; }

.puntos-level-banner{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  border-radius:18px;
  background:linear-gradient(180deg, #fff8fb 0%, #fff 100%);
  border:1px solid rgba(239,71,102,.1);
  padding:14px;
}

.puntos-level-banner h3{
  margin:6px 0 6px;
  color:var(--p-coral-deep);
  font-size:1.8rem;
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
}

.puntos-level-banner p{
  margin:0;
  color:var(--p-muted);
}

.puntos-level-badge{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:0 12px;
  border-radius:999px;
  background:#eaf9fc;
  color:var(--p-teal-deep);
  font-weight:900;
  font-size:.8rem;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.puntos-level-meta{
  display:grid;
  gap:8px;
  justify-items:end;
}

.puntos-level-meta span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 12px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(39,55,77,.08);
  font-size:.82rem;
  font-weight:900;
  color:var(--p-ink);
}

.puntos-level-settings{
  background:#fff;
  border:1px solid rgba(39,55,77,.08);
  border-radius:22px;
  padding:16px;
}

.puntos-level-rows-stack{
  display:grid;
  gap:14px;
}

.puntos-reward-item-wide{
  display:grid;
  gap:14px;
}

.puntos-row-form-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
}

.puntos-reward-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}

.puntos-stamps{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
}

.puntos-main-card .puntos-stamps{
  justify-content:center;
  gap:14px;
}

.puntos-stamp{
  position:relative;
  width:30px;
  height:30px;
  border-radius:999px;
  border:2px solid rgba(239,71,102,.28);
  background:#fff;
  box-shadow:inset 0 0 0 3px rgba(255,255,255,.72);
}

.puntos-main-card .puntos-stamp{
  width:46px;
  height:46px;
  border:3px solid rgba(255,255,255,.55);
  background:#fffdfb;
  box-shadow:0 10px 14px rgba(123,48,66,.12);
}

.puntos-stamp::before{
  content:"";
  position:absolute;
  inset:5px;
  background:url('/static/puntos/assets/stamp-seal.svg') center/contain no-repeat;
  opacity:.3;
}

.puntos-main-card .puntos-stamp::before{
  inset:8px;
}

.puntos-stamp.filled{
  border-color:var(--p-coral-deep);
  background:linear-gradient(180deg, #ff93a5 0%, #ff6982 100%);
}

.puntos-main-card .puntos-stamp.filled{
  border-color:#ffffff;
  background:linear-gradient(180deg, #ffd36c 0%, #f2a13b 100%);
}

.puntos-stamp.filled::before{
  opacity:1;
  filter:brightness(1.05) saturate(.95);
}

.puntos-list,
.puntos-history{
  display:grid;
  gap:10px;
  list-style:none;
  margin:0;
  padding:0;
}

.puntos-list li,
.puntos-history li{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding:12px 14px 12px 30px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(39,55,77,.08);
  position:relative;
}

.puntos-list-rich{
  display:grid !important;
  grid-template-columns:48px minmax(0, 1fr);
  align-items:center !important;
}

.puntos-list-rich strong,
.puntos-list-rich span{
  margin:0;
}

.puntos-list li::before,
.puntos-history li::before{
  content:"";
  width:11px;
  height:11px;
  border-radius:999px;
  position:absolute;
  left:14px;
  top:18px;
  background:linear-gradient(180deg, var(--p-yellow) 0%, var(--p-coral-deep) 100%);
}

.puntos-empty{
  margin:0;
  color:var(--p-muted);
}

.puntos-next-level{
  background:linear-gradient(180deg, rgba(35,174,194,.08) 0%, rgba(255,255,255,.92) 100%);
  border-radius:24px;
  padding:16px;
  border:1px solid rgba(35,174,194,.14);
  position:relative;
  overflow:hidden;
}

.puntos-next-level::after{
  content:"";
  position:absolute;
  top:-20px;
  right:-10px;
  width:92px;
  height:92px;
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%, rgba(248,198,84,.95) 0 24%, transparent 25%),
    radial-gradient(circle at 50% 50%, rgba(35,174,194,.88) 0 45%, transparent 46%),
    radial-gradient(circle at 50% 50%, rgba(239,71,102,.18) 0 64%, transparent 65%);
}

.puntos-next-level p{
  margin:8px 0 12px;
  color:var(--p-muted);
}

.puntos-shell{
  max-width:1340px;
  margin:0 auto;
  padding:28px 18px 54px;
}

.puntos-shell-hero{
  padding:24px 26px 26px;
}

.puntos-shell-hero::before,
.puntos-shell-hero::after{
  display:none;
}

.puntos-shell-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}

.puntos-shell-head h1{
  max-width:none;
  font-size:3.2rem;
}

.puntos-shell-actions .btn,
.puntos-shell-actions .puntos-btn{
  background:#fff;
  color:var(--p-coral-deep);
  border:none;
  border-radius:16px;
  padding:12px 16px;
  font-weight:900;
  text-decoration:none;
}

.puntos-console-grid{
  display:grid;
  grid-template-columns:300px minmax(0, 1fr);
  gap:18px;
  align-items:start;
}

.puntos-sidebar{
  position:sticky;
  top:18px;
  background:linear-gradient(180deg, #ff6078 0%, #ff4f6b 100%);
  color:#fff;
  border-radius:30px;
  padding:18px 16px;
  box-shadow:var(--p-shadow);
  overflow:hidden;
}

.puntos-sidebar .puntos-brand-mark{
  margin-bottom:12px;
  background:rgba(255,255,255,.98);
}

.puntos-sidebar-art{
  margin:0 0 14px;
  border-radius:24px;
  overflow:hidden;
  background:rgba(255,255,255,.95);
  padding:8px;
  box-shadow:0 14px 24px rgba(0,0,0,.12);
}

.puntos-sidebar-art img{
  display:block;
  width:100%;
  height:auto;
  border-radius:18px;
}

.puntos-sidebar::after{
  content:"";
  position:absolute;
  right:-56px;
  bottom:-56px;
  width:160px;
  height:160px;
  border-radius:50%;
  background:rgba(255,255,255,.12);
}

.puntos-sidebar h2{
  margin:8px 0 14px;
  font-size:1.95rem;
  line-height:.95;
  text-transform:uppercase;
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
}

.puntos-sidebar p{
  margin:0 0 18px;
  color:rgba(255,255,255,.9);
  line-height:1.45;
}

.puntos-sidebar-list{
  display:grid;
  gap:10px;
}

.puntos-sidebar-item{
  background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.16);
  border-radius:18px;
  padding:13px 14px;
}

.puntos-sidebar-item strong{
  display:block;
  font-size:.86rem;
  margin-bottom:4px;
}

.puntos-sidebar-item span{
  font-size:.79rem;
  color:rgba(255,255,255,.85);
}

.puntos-stage{
  display:grid;
  gap:18px;
}

.puntos-admin-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:12px;
}

.puntos-kpi{
  background:linear-gradient(180deg, #ffffff 0%, #fff7f8 100%);
  border:1px solid rgba(239,71,102,.14);
  border-radius:24px;
  padding:18px;
  box-shadow:0 14px 26px rgba(39,55,77,.06);
}

.puntos-kpi:nth-child(2){
  background:linear-gradient(180deg, #ffffff 0%, #f6fcff 100%);
  border-color:rgba(35,174,194,.18);
}

.puntos-kpi:nth-child(3){
  background:linear-gradient(180deg, #ffffff 0%, #fffaf0 100%);
  border-color:rgba(248,198,84,.22);
}

.puntos-kpi strong{
  display:block;
  font-size:2rem;
  line-height:1;
  margin-bottom:8px;
  color:var(--p-coral-deep);
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
}

.puntos-kpi span{
  color:var(--p-muted);
  font-size:.82rem;
}

.puntos-admin-card{
  background:var(--p-paper);
}

.puntos-admin-card > .card-head{
  margin-bottom:14px;
}

.puntos-admin-card > .card-head h2{
  margin:0;
}

.puntos-admin-card > .card-head .muted{
  margin-top:4px;
}

.puntos-admin-columns,
.puntos-admin-columns-two{
  display:grid;
  gap:12px;
}

.puntos-admin-columns{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}

.puntos-admin-columns-two{
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.puntos-admin-columns > div,
.puntos-admin-columns-two > div{
  background:#fff;
  border-radius:22px;
  border:1px solid rgba(39,55,77,.08);
  padding:16px;
}

.puntos-admin-columns h3,
.puntos-admin-columns-two h3{
  margin:0 0 8px;
  font-size:1rem;
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
}

.puntos-admin-columns p,
.puntos-admin-columns-two p{
  margin:0;
  color:var(--p-muted);
  line-height:1.45;
}

.puntos-scanner-panel{
  margin-top:14px;
  padding:14px;
  border-radius:22px;
  background:#fff9f0;
  border:1px dashed rgba(248,198,84,.45);
}

.puntos-scanner-video{
  width:100%;
  max-width:420px;
  display:block;
  margin:0 auto 10px;
  border-radius:18px;
  background:#111827;
}

.puntos-scanner-status{
  font-size:.84rem;
  color:var(--p-muted);
  margin-bottom:10px;
}

.puntos-reward-grid,
.puntos-reversal-list{
  display:grid;
  gap:12px;
}

.puntos-reward-item{
  border:1px solid rgba(39,55,77,.08);
  border-radius:22px;
  padding:14px;
  display:grid;
  gap:10px;
  background:#fff;
}

.puntos-reward-item strong{
  font-size:1rem;
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
}

.puntos-reward-item span{
  color:var(--p-muted);
  font-size:.82rem;
}

.puntos-level-block{
  margin-top:16px;
  padding:18px;
  border-radius:24px;
  background:#fff8fa;
  border:1px solid rgba(239,71,102,.12);
}

.puntos-level-form{
  margin-bottom:14px;
}

.puntos-level-rows{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}

.puntos-check{
  display:flex !important;
  align-items:center;
  gap:8px;
  font-size:.82rem;
  font-weight:800;
}

.puntos-check input{
  width:auto;
  min-height:auto;
  height:auto;
}

.puntos-table-card .table-wrap,
.puntos-admin-card .table-wrap{
  background:#fff;
  border-radius:22px;
  padding:8px;
  border:1px solid rgba(39,55,77,.08);
}

.puntos-admin-card .table th{
  color:var(--p-ink);
}

.puntos-admin-card .table td{
  color:var(--p-muted);
}

@media (max-width:1040px){
  .puntos-hero-grid,
  .puntos-console-grid{
    grid-template-columns:1fr;
  }

  .puntos-loyalty-card{
    grid-template-columns:1fr;
  }

  .puntos-loyalty-rail{
    grid-auto-flow:column;
    grid-template-columns:repeat(4, auto);
    align-items:center;
    justify-content:space-between;
    min-height:auto;
    padding:12px 14px;
  }

  .puntos-loyalty-rail-title,
  .puntos-loyalty-rail-code,
  .puntos-loyalty-rail-meta{
    writing-mode:initial;
    transform:none;
  }

  .puntos-loyalty-footer{
    align-items:center;
  }

  .puntos-hero,
  .puntos-shell-hero{
    padding-bottom:160px;
  }

  .puntos-hero-side{
    justify-self:stretch;
    width:100%;
    transform:none;
  }

  .puntos-sidebar{
    position:relative;
    top:auto;
  }

  .puntos-admin-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .puntos-ribbon{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width:760px){
  .puntos-wrap,
  .puntos-shell{
    padding:16px 12px 40px;
  }

  .puntos-wrap::before,
  .puntos-wrap::after{
    display:none;
  }

  .puntos-hero,
  .puntos-shell-hero{
    padding:20px 18px 138px;
    border-radius:28px;
  }

  .puntos-hero h1,
  .puntos-shell-head h1{
    font-size:2.6rem;
  }

  .puntos-hero-subtitle{
    font-size:1.02rem;
  }

  .puntos-hero-logo-badge{
    width:128px;
    margin-bottom:10px;
  }

  .puntos-hero-inline-notes{
    gap:8px;
  }

  .puntos-hero-inline-notes span{
    min-height:32px;
    padding:0 12px;
    font-size:.74rem;
  }

  .puntos-form-grid,
  .puntos-summary,
  .puntos-admin-grid,
  .puntos-admin-columns,
  .puntos-admin-columns-two,
  .puntos-level-rows,
  .puntos-config-tiles{
    grid-template-columns:1fr;
  }

  .puntos-card{
    padding:16px;
    border-radius:24px;
  }

  .puntos-register-shell{
    gap:16px;
    border-width:1px;
    background:linear-gradient(180deg, #fff7f8 0%, #fffdfc 100%);
  }

  .puntos-card-frame::before,
  .puntos-card-frame::after{
    display:none;
  }

  .puntos-register-phone{
    padding:10px;
    border-radius:24px;
  }

  .puntos-register-phone::before{
    width:78px;
    height:14px;
    top:8px;
  }

  .puntos-register-phone-body{
    padding:28px 14px 12px;
    border-radius:20px;
  }

  .puntos-register-panel{
    padding:16px;
    border-radius:22px;
  }

  .puntos-register-phone-body h2{
    font-size:1.8rem;
  }

  .puntos-loyalty-footer{
    display:grid;
    justify-items:center;
  }

  .puntos-row-head,
  .puntos-panel-head,
  .puntos-shell-head{
    flex-direction:column;
    align-items:flex-start;
  }

  .puntos-register-tabs,
  .puntos-register-support,
  .puntos-ribbon{
    grid-template-columns:1fr;
  }

  .puntos-register-mini-strip{
    gap:8px;
  }

  .puntos-register-lookup-form{
    grid-template-columns:1fr;
  }

  .puntos-register-lookup-form .puntos-btn{
    width:100%;
  }

  .puntos-list li,
  .puntos-history li{
    display:block;
  }
}

@media (max-width: 1180px){
  .puntos-admin-grid-six{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 980px){
  .puntos-register-shell,
  .puntos-dashboard-grid,
  .puntos-config-grid,
  .puntos-activity-columns,
  .puntos-config-tiles{
    grid-template-columns:1fr;
  }

  .puntos-register-lookup-form,
  .puntos-metrics-grid,
  .puntos-row-form-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px){
  .puntos-admin-grid-six,
  .puntos-metrics-grid,
  .puntos-row-form-grid{
    grid-template-columns:1fr;
  }

  .puntos-level-banner,
  .puntos-reward-actions{
    flex-direction:column;
    align-items:flex-start;
  }

  .puntos-level-meta{
    justify-items:start;
  }

  .puntos-hero-side{
    width:100%;
    transform:none;
  }
}

.puntos-wrap--landing{
  max-width:1160px;
  padding:12px 14px 18px;
}

.puntos-wrap--landing .puntos-hero{
  padding:12px 22px 14px;
  border-radius:34px;
  margin-bottom:8px;
  box-shadow:0 18px 34px rgba(39,55,77,.08);
  border:1px solid rgba(255,255,255,.28);
}

.puntos-wrap--landing .puntos-hero::before,
.puntos-wrap--landing .puntos-hero::after{
  display:none;
}

.puntos-wrap--landing .puntos-hero-grid{
  grid-template-columns:210px minmax(0, 1fr) 300px;
  gap:14px;
  align-items:center;
}

.puntos-wrap--landing .puntos-hero-brand{
  display:grid;
  justify-items:start;
  align-content:center;
  gap:10px;
}

.puntos-wrap--landing .puntos-hero-brand .puntos-badge{
  min-height:40px;
  padding:0 16px;
  font-size:.92rem;
  box-shadow:0 14px 24px rgba(39,55,77,.1);
}

.puntos-wrap--landing .puntos-hero-copy{
  text-align:center;
  max-width:640px;
  margin:0 auto;
  align-self:center;
  display:grid;
  justify-items:center;
}

.puntos-wrap--landing .puntos-hero-brand .puntos-badge{
  margin:0;
}

.puntos-wrap--landing .puntos-hero-logo-badge{
  width:min(100%, 144px);
  margin-bottom:2px;
  margin-left:0;
  margin-right:0;
}

.puntos-wrap--landing .puntos-hero h1{
  font-size:clamp(2.9rem, 4.9vw, 4.8rem);
  margin-bottom:2px;
  line-height:.92;
  text-shadow:0 6px 0 rgba(235,90,111,.16);
}

.puntos-wrap--landing .puntos-hero-subtitle{
  margin:0 0 6px;
  font-size:1.28rem;
  color:#fff2be;
  text-shadow:0 2px 0 rgba(0,0,0,.05);
}

.puntos-wrap--landing .puntos-hero p{
  max-width:560px;
  font-size:.88rem;
  line-height:1.24;
  margin-left:auto;
  margin-right:auto;
}

.puntos-wrap--landing .puntos-hero-inline-notes{
  margin-top:12px;
  gap:8px;
}

.puntos-wrap--landing .puntos-hero-inline-notes span{
  min-height:30px;
  padding:0 12px;
  font-size:.74rem;
}

.puntos-wrap--landing .puntos-hero-side{
  width:min(100%, 300px);
  transform:none;
  align-self:center;
}

.puntos-wrap--landing .puntos-rules-card{
  padding:14px 16px 12px;
  border-radius:24px;
  margin-bottom:0;
  box-shadow:0 18px 28px rgba(39,55,77,.08);
  border:1px solid rgba(35,174,194,.16);
}

.puntos-wrap--landing .puntos-rules-card strong{
  font-size:1.08rem;
  margin-bottom:6px;
}

.puntos-wrap--landing .puntos-rules-card li{
  font-size:.77rem;
  line-height:1.2;
}

.puntos-chip-grid-compact{
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.puntos-wrap--landing .puntos-chip{
  padding:10px 12px;
  border-radius:16px;
}

.puntos-wrap--landing .puntos-chip strong{
  font-size:.86rem;
  margin-bottom:2px;
}

.puntos-wrap--landing .puntos-chip span{
  font-size:.76rem;
  line-height:1.22;
}

.puntos-wrap--landing .puntos-card{
  margin-bottom:0;
}

.puntos-wrap--landing .puntos-register-shell{
  grid-template-columns:minmax(240px, 295px) minmax(0, 1fr);
  gap:14px;
  padding:12px;
  margin-top:-8px;
  position:relative;
  z-index:2;
  box-shadow:0 22px 38px rgba(39,55,77,.12);
  border-radius:26px;
  background:linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(255,250,251,.98) 100%);
}

.puntos-wrap--landing .puntos-register-visual{
  gap:10px;
}

.puntos-wrap--landing .puntos-register-phone{
  border-radius:24px;
  padding:8px;
  background:linear-gradient(180deg, #ff7488 0%, #ff6078 100%);
}

.puntos-wrap--landing .puntos-register-phone::before{
  width:76px;
  height:14px;
  top:8px;
}

.puntos-wrap--landing .puntos-register-phone-body{
  padding:24px 14px 12px;
  border-radius:20px;
  min-height:100%;
}

.puntos-wrap--landing .puntos-register-phone-body h2{
  font-size:1.58rem;
  margin:1px 0 6px;
}

.puntos-wrap--landing .puntos-register-phone-body p{
  font-size:.85rem;
  line-height:1.28;
}

.puntos-wrap--landing .puntos-register-illustration{
  margin-top:8px;
  padding:6px;
}

.puntos-wrap--landing .puntos-register-rule,
.puntos-wrap--landing .puntos-register-quick{
  padding:11px 13px;
  border-radius:16px;
  box-shadow:0 8px 16px rgba(39,55,77,.04);
}

.puntos-wrap--landing .puntos-register-rule strong,
.puntos-wrap--landing .puntos-register-quick strong{
  font-size:.95rem;
}

.puntos-wrap--landing .puntos-register-rule span,
.puntos-wrap--landing .puntos-register-quick span{
  font-size:.82rem;
  line-height:1.28;
}

.puntos-wrap--landing .puntos-register-rule-badge{
  min-height:30px;
  margin-top:8px;
  font-size:.74rem;
}

.puntos-wrap--landing .puntos-register-form-panel{
  gap:10px;
}

.puntos-wrap--landing .puntos-register-tabs{
  gap:8px;
}

.puntos-wrap--landing .puntos-register-tab{
  min-height:38px;
  font-size:.86rem;
  border-radius:999px;
  font-weight:800;
  box-shadow:0 6px 14px rgba(39,55,77,.03);
}

.puntos-wrap--landing .puntos-register-tab.is-active{
  background:linear-gradient(180deg, #ff6b82 0%, #fb5b73 100%);
  color:#fff;
  box-shadow:0 10px 18px rgba(239,71,102,.18);
}

.puntos-wrap--landing .puntos-register-panel{
  gap:10px;
  padding:12px;
  border-radius:24px;
  border:1px solid rgba(239,71,102,.08);
}

.puntos-wrap--landing .puntos-register-mini-strip{
  gap:8px;
}

.puntos-wrap--landing .puntos-register-mini-strip span{
  min-height:30px;
  padding:0 10px;
  font-size:.72rem;
}

.puntos-wrap--landing .puntos-register-support{
  gap:10px;
}

.puntos-wrap--landing .puntos-register-support article{
  padding:10px 12px;
  border-radius:16px;
}

.puntos-wrap--landing .puntos-register-support strong{
  font-size:.86rem;
}

.puntos-wrap--landing .puntos-register-support span{
  font-size:.76rem;
  line-height:1.22;
}

@media (min-width:981px){
  .puntos-wrap--landing .puntos-hero{
    padding:12px 24px 14px;
  }

  .puntos-wrap--landing .puntos-hero-grid{
    grid-template-columns:210px minmax(0, 1fr) 300px;
    min-height:170px;
  }

  .puntos-wrap--landing .puntos-hero-side{
    position:static;
    width:300px;
  }

  .puntos-wrap--landing .puntos-register-shell{
    margin-top:-14px;
  }
}

@media (max-width:760px){
  .puntos-wrap--landing{
    padding:10px 8px 14px;
  }

  .puntos-wrap--landing .puntos-hero{
    padding:12px 10px 10px;
    border-radius:26px;
  }

  .puntos-wrap--landing .puntos-hero h1{
    font-size:2.12rem;
    line-height:.96;
  }

  .puntos-wrap--landing .puntos-hero-subtitle{
    font-size:.96rem;
    margin-bottom:4px;
  }

  .puntos-wrap--landing .puntos-hero p{
    max-width:100%;
    font-size:.8rem;
    line-height:1.22;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }

  .puntos-wrap--landing .puntos-hero-grid,
  .puntos-wrap--landing .puntos-register-shell,
  .puntos-chip-grid-compact{
    grid-template-columns:1fr;
  }

  .puntos-wrap--landing .puntos-hero-brand{
    justify-items:center;
    gap:6px;
  }

  .puntos-wrap--landing .puntos-hero-brand .puntos-badge,
  .puntos-wrap--landing .puntos-hero-logo-badge{
    margin-left:auto;
    margin-right:auto;
  }

  .puntos-wrap--landing .puntos-hero-logo-badge{
    width:120px;
  }

  .puntos-wrap--landing .puntos-hero-brand .puntos-badge{
    min-height:34px;
    padding:0 14px;
    font-size:.8rem;
  }

  .puntos-wrap--landing .puntos-hero-side{
    display:none;
  }

  .puntos-wrap--landing .puntos-register-shell{
    padding:10px;
    margin-top:0;
    border-radius:22px;
  }

  .puntos-wrap--landing .puntos-register-visual,
  .puntos-wrap--landing .puntos-register-quick,
  .puntos-wrap--landing .puntos-register-mini-strip,
  .puntos-wrap--landing .puntos-register-support{
    display:none;
  }

  .puntos-wrap--landing .puntos-register-panel{
    padding:12px;
    border-radius:18px;
  }

  .puntos-wrap--landing .puntos-register-form-panel{
    gap:8px;
  }

  .puntos-wrap--landing .puntos-register-tabs{
    gap:6px;
  }

  .puntos-wrap--landing .puntos-register-tab{
    min-height:36px;
    padding:0 10px;
    font-size:.8rem;
    border-radius:999px;
  }

  .puntos-wrap--landing .puntos-panel-head{
    margin-bottom:6px;
  }

  .puntos-wrap--landing .puntos-panel-head h2{
    margin-bottom:4px;
    font-size:1.15rem;
  }

  .puntos-wrap--landing .puntos-panel-head p{
    font-size:.78rem;
    line-height:1.22;
  }

  .puntos-wrap--landing .puntos-form-grid{
    gap:8px;
  }

  .puntos-wrap--landing .puntos-form input{
    min-height:42px;
  }

  .puntos-wrap--landing .puntos-btn{
    min-height:44px;
  }
}

.puntos-wrap--screen{
  max-width:1180px;
  padding:22px 16px 30px;
}

.puntos-screen-board{
  position:relative;
  z-index:1;
  background:#fff7fa;
  border:1px solid rgba(255,255,255,.45);
  border-radius:32px;
  padding:18px;
  box-shadow:var(--p-shadow);
  overflow:hidden;
}

.puntos-screen-board::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 16% 18%, rgba(255,255,255,.36) 0 2px, transparent 2px),
    radial-gradient(circle at 84% 12%, rgba(255,255,255,.42) 0 2px, transparent 2px),
    radial-gradient(circle at 92% 78%, rgba(255,255,255,.32) 0 2px, transparent 2px);
  pointer-events:none;
  opacity:.9;
}

.puntos-screen-board--wide{
  background:#fffaf6;
}

.puntos-screen-title{
  display:inline-flex;
  align-items:center;
  gap:12px;
  margin:0 0 14px;
  color:var(--p-teal-deep);
  font-size:2rem;
  font-weight:900;
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
}

.puntos-screen-title span{
  width:42px;
  height:42px;
  border-radius:999px;
  display:grid;
  place-items:center;
  color:#fff;
  background:linear-gradient(180deg, #23aec2 0%, #1196ac 100%);
  font-size:1.4rem;
}

.puntos-screen-title--orange{
  color:#f39c12;
}

.puntos-screen-title--orange span{
  background:linear-gradient(180deg, #f8c654 0%, #f39c12 100%);
}

.puntos-mobile-card{
  max-width:460px;
  margin:0 auto;
  border-radius:34px;
  background:linear-gradient(180deg, #fff 0%, #fff9fb 100%);
  border:4px solid #2b2b2b;
  box-shadow:0 22px 45px rgba(39,55,77,.16);
  overflow:hidden;
  position:relative;
  z-index:1;
}

.puntos-mobile-card::before{
  content:"";
  position:absolute;
  left:50%;
  top:8px;
  transform:translateX(-50%);
  width:88px;
  height:14px;
  border-radius:999px;
  background:#1e1e1e;
  opacity:.92;
  pointer-events:none;
}

.puntos-mobile-card--active{
  max-width:470px;
}

.puntos-mobile-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:22px 18px 12px;
  background:linear-gradient(180deg, #ff667e 0%, #fb5b73 100%);
  color:#fff;
}

.puntos-mobile-brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}

.puntos-mobile-brand img{
  width:18px;
  height:18px;
  object-fit:contain;
}

.puntos-mobile-brand strong{
  font-size:.92rem;
  letter-spacing:.02em;
}

.puntos-mobile-burger,
.puntos-mobile-bell{
  width:18px;
  height:18px;
  position:relative;
  flex:0 0 auto;
}

.puntos-mobile-burger::before,
.puntos-mobile-burger::after,
.puntos-mobile-burger{
  background:none;
}

.puntos-mobile-burger::before,
.puntos-mobile-burger::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  height:2px;
  border-radius:99px;
  background:#fff;
}

.puntos-mobile-burger::before{ top:4px; box-shadow:0 5px 0 #fff, 0 10px 0 #fff; }

.puntos-mobile-bell::before{
  content:"";
  position:absolute;
  inset:1px 3px 4px;
  border-radius:9px 9px 7px 7px;
  border:2px solid #fff;
  border-bottom:none;
}

.puntos-mobile-bell::after{
  content:"";
  position:absolute;
  left:7px;
  bottom:1px;
  width:4px;
  height:4px;
  border-radius:50%;
  background:#fff;
}

.puntos-mobile-hero{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 126px;
  gap:14px;
  padding:16px 18px 10px;
}

.puntos-mobile-profile{
  display:flex;
  align-items:center;
  gap:12px;
}

.puntos-mobile-avatar{
  width:56px;
  height:56px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:linear-gradient(180deg, #ffd4b5 0%, #ffbf96 100%);
  color:#8a4b34;
  font-weight:900;
  font-size:1.35rem;
  border:3px solid #fff;
  box-shadow:0 10px 18px rgba(39,55,77,.08);
}

.puntos-mobile-profile-copy{
  display:grid;
  gap:3px;
}

.puntos-mobile-profile-copy strong{
  font-size:1.45rem;
  line-height:1;
  color:#4b4453;
}

.puntos-mobile-profile-copy span{
  color:#6c7b8c;
  font-size:.88rem;
}

.puntos-mobile-profile-copy em{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  min-height:24px;
  padding:0 10px;
  border-radius:999px;
  background:#71c88d;
  color:#fff;
  font-style:normal;
  font-weight:800;
  font-size:.76rem;
}

.puntos-mobile-qr-card{
  background:#fff;
  border:1px solid rgba(39,55,77,.08);
  border-radius:16px;
  padding:8px;
  box-shadow:0 12px 22px rgba(39,55,77,.08);
  text-align:center;
}

.puntos-qr-image-phone{
  width:100px;
  height:100px;
  margin:0 auto 6px;
  border-radius:12px;
  padding:8px;
}

.puntos-mobile-qr-card span{
  display:block;
  color:#6c7b8c;
  font-size:.74rem;
  line-height:1.2;
}

.puntos-mobile-summary-row{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
  padding:0 18px 10px;
}

.puntos-mobile-summary-row article{
  border:1px solid rgba(239,71,102,.14);
  border-radius:18px;
  padding:12px 14px;
  background:#fffdfd;
  box-shadow:0 8px 16px rgba(39,55,77,.03);
}

.puntos-mobile-summary-row span{
  display:block;
  color:#6c7b8c;
  font-size:.82rem;
}

.puntos-mobile-summary-row strong{
  display:block;
  color:#4b4453;
  font-size:1.2rem;
  margin-top:4px;
  line-height:1.15;
}

.puntos-mobile-hero-hint{
  margin:0 18px 12px;
  padding:11px 12px;
  border-radius:16px;
  background:#fff8eb;
  border:1px solid rgba(248,198,84,.34);
}

.puntos-mobile-chip-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding:0 18px 10px;
}

.puntos-mobile-chip-row span{
  min-height:28px;
  display:inline-flex;
  align-items:center;
  padding:0 12px;
  border-radius:999px;
  background:#fff4f7;
  border:1px solid rgba(239,71,102,.12);
  color:#c64662;
  font-size:.72rem;
  font-weight:800;
}

.puntos-mobile-hero-hint strong{
  display:block;
  color:#8c5a13;
  font-size:.82rem;
}

.puntos-mobile-hero-hint span{
  display:block;
  margin-top:4px;
  color:#6c7b8c;
  font-size:.76rem;
  line-height:1.25;
}

.puntos-mobile-progress-list{
  display:grid;
  gap:10px;
  padding:0 18px 14px;
}

.puntos-mobile-progress-item{
  border:1px solid rgba(239,71,102,.14);
  border-radius:16px;
  padding:10px 12px;
  background:#fff;
  box-shadow:0 8px 16px rgba(39,55,77,.03);
}

.puntos-mobile-progress-shell{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 78px;
  gap:12px;
  align-items:center;
}

.puntos-mobile-progress-copy{
  display:grid;
  gap:8px;
}

.puntos-mobile-progress-visual{
  display:flex;
  justify-content:flex-end;
  align-items:center;
}

.puntos-mobile-progress-item:nth-child(1){
  background:linear-gradient(180deg, #fffdf3 0%, #fff 100%);
}

.puntos-mobile-progress-item:nth-child(2){
  background:linear-gradient(180deg, #fff8fb 0%, #fff 100%);
}

.puntos-mobile-progress-item:nth-child(3){
  background:linear-gradient(180deg, #f8fdff 0%, #fff 100%);
}

.puntos-mobile-progress-item:nth-child(4){
  background:linear-gradient(180deg, #fffaf4 0%, #fff 100%);
}

.puntos-mobile-progress-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}

.puntos-mobile-reward-line{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}

.puntos-mobile-reward-line strong{
  font-size:.98rem;
  color:#4b4453;
}

.puntos-mobile-progress-status{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  background:#eef2f7;
  color:#5f6d7f;
  font-size:.74rem;
  font-weight:800;
  white-space:nowrap;
}

.puntos-mobile-progress-status.is-done{
  background:#e6f8ea;
  color:#2a9b56;
}

.puntos-mobile-stamps{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.puntos-stamp--phone{
  width:28px !important;
  height:28px !important;
  border-width:2px !important;
  box-shadow:none !important;
}

.puntos-stamp--phone::before{
  inset:5px !important;
}

.puntos-stamp--mini{
  width:22px !important;
  height:22px !important;
  border-width:2px !important;
  box-shadow:none !important;
}

.puntos-stamp--mini::before{
  inset:4px !important;
}

.puntos-mobile-nav{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:0;
  background:linear-gradient(180deg, #ff667e 0%, #fb5b73 100%);
}

.puntos-mobile-nav a{
  min-height:54px;
  display:grid;
  place-items:center;
  color:rgba(255,255,255,.86);
  text-decoration:none;
  font-size:.82rem;
  font-weight:800;
  border-top:1px solid rgba(255,255,255,.14);
}

.puntos-mobile-nav a.is-active{
  color:#fff;
  background:rgba(255,255,255,.08);
}

.puntos-screen-actions{
  margin-top:14px;
  display:grid;
  gap:10px;
  justify-items:center;
}

.puntos-screen-next{
  max-width:560px;
  padding:12px 14px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(39,55,77,.08);
  box-shadow:0 12px 20px rgba(39,55,77,.05);
  text-align:center;
}

.puntos-screen-next--preview{
  text-align:left;
}

.puntos-screen-next strong{
  display:block;
  color:var(--p-coral-deep);
}

.puntos-screen-next span{
  display:block;
  margin-top:4px;
  color:var(--p-muted);
  font-size:.84rem;
}

.puntos-next-level-list{
  display:grid;
  gap:6px;
  margin-top:10px;
}

.puntos-next-level-list div{
  min-height:32px;
  display:flex;
  align-items:center;
  padding:0 12px;
  border-radius:999px;
  background:#fff7fb;
  border:1px solid rgba(239,71,102,.12);
  color:#4b4453;
  font-size:.76rem;
  font-weight:700;
}

.puntos-mobile-section{
  display:grid;
  gap:10px;
  padding:12px 16px 0;
}

.puntos-mobile-history-summary{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px;
  padding:14px 16px 4px;
}

.puntos-mobile-history-summary article{
  padding:10px;
  border-radius:16px;
  background:#fffdfd;
  border:1px solid rgba(239,71,102,.12);
  text-align:center;
}

.puntos-mobile-history-summary strong{
  display:block;
  color:#4b4453;
  font-size:1.14rem;
}

.puntos-mobile-history-summary span{
  display:block;
  margin-top:4px;
  color:#6c7b8c;
  font-size:.74rem;
}

.puntos-mobile-section:last-child{
  padding-bottom:16px;
}

.puntos-mobile-section-title{
  display:inline-flex;
  align-items:center;
  width:max-content;
  min-height:30px;
  padding:0 12px;
  border-radius:999px;
  color:#fff;
  font-size:.82rem;
  font-weight:900;
}

.title-pending{ background:#ff6f85; }
.title-redeemed{ background:#56b97a; }
.title-history{ background:#9a74d8; }

.puntos-mobile-list-item,
.puntos-mobile-history-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:11px 12px;
  border-radius:16px;
  background:#fff;
  border:1px solid rgba(39,55,77,.08);
}

.puntos-mobile-list-item.is-empty{
  justify-content:flex-start;
  color:var(--p-muted);
}

.puntos-mobile-list-main{
  display:flex;
  align-items:center;
  gap:10px;
}

.puntos-mobile-list-main div,
.puntos-mobile-history-item div{
  display:grid;
  gap:3px;
}

.puntos-mobile-list-main strong,
.puntos-mobile-history-item strong{
  color:#4b4453;
}

.puntos-mobile-list-main span,
.puntos-mobile-history-item span{
  color:#6c7b8c;
  font-size:.8rem;
}

.pill-state{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  font-size:.74rem;
  font-weight:800;
  font-style:normal;
}

.pill-state.is-pending{
  background:#fff3d4;
  color:#c88612;
}

.pill-state.is-redeemed{
  background:#e7f7ec;
  color:#2f9c59;
}

.pill-state.is-locked{
  background:#eef2f7;
  color:#6c7b8c;
}

.title-profile{
  background:#23aec2;
}

.puntos-mobile-section--full{
  min-height:330px;
  padding-bottom:14px;
}

.puntos-profile-card{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px;
  border-radius:10px;
  background:#fff8fb;
  border:1px solid rgba(239,71,102,.14);
}

.puntos-profile-card strong,
.puntos-profile-grid strong{
  display:block;
  color:#27374d;
}

.puntos-profile-card span,
.puntos-profile-grid span{
  display:block;
  color:#697586;
}

.puntos-profile-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
}

.puntos-profile-grid article{
  min-width:0;
  padding:10px 11px;
  border-radius:9px;
  background:#fff;
  border:1px solid rgba(39,55,77,.08);
}

.puntos-profile-grid span{
  font-size:.72rem;
}

.puntos-profile-grid strong{
  margin-top:3px;
  font-size:.88rem;
  overflow-wrap:anywhere;
}

@media (max-width:560px){
  .puntos-profile-grid{
    grid-template-columns:1fr;
  }
}

/* Fidelity pass 4.6: larger mobile stamps for readability. */
@media (max-width:760px){
  .puntos-body .puntos-mobile-stamps{
    gap:9px;
  }

  .puntos-body .puntos-stamp--phone{
    width:28px !important;
    height:28px !important;
    border-width:2px !important;
  }

  .puntos-body .puntos-stamp--phone::before{
    inset:6px !important;
  }
}

@media (max-width:460px){
  .puntos-body .puntos-mobile-stamps{
    gap:8px;
  }

  .puntos-body .puntos-stamp--phone{
    width:25px !important;
    height:25px !important;
  }

  .puntos-body .puntos-stamp--phone::before{
    inset:5px !important;
  }
}

.puntos-mobile-history-item b{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 10px;
  border-radius:999px;
  font-size:.74rem;
}

.puntos-mobile-history-item b.is-active{
  background:#eef2f7;
  color:#6c7b8c;
}

.puntos-mobile-history-item b.is-complete{
  background:#e7f7ec;
  color:#2f9c59;
}

.puntos-console-window{
  display:grid;
  grid-template-columns:180px minmax(0, 1fr);
  gap:0;
  border-radius:28px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 22px 42px rgba(39,55,77,.14);
  border:1px solid rgba(248,198,84,.24);
}

.puntos-console-nav{
  background:linear-gradient(180deg, #fff6df 0%, #fffdf7 100%);
  border-right:1px solid rgba(39,55,77,.08);
  padding:14px 12px;
  display:grid;
  align-content:start;
  gap:8px;
}

.puntos-console-brand{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:8px;
  color:var(--p-coral-deep);
  font-weight:900;
  font-size:.8rem;
}

.puntos-console-brand img{
  width:18px;
  height:18px;
}

.puntos-console-nav a{
  min-height:38px;
  display:flex;
  align-items:center;
  padding:0 12px;
  border-radius:12px;
  text-decoration:none;
  color:#5f6d7f;
  background:#fff;
  border:1px solid rgba(39,55,77,.06);
  font-size:.84rem;
  font-weight:800;
}

.puntos-console-nav a.is-active{
  background:linear-gradient(180deg, #fff1f4 0%, #ffe7ed 100%);
  color:var(--p-coral-deep);
  box-shadow:0 8px 14px rgba(239,71,102,.08);
}

.puntos-console-main{
  padding:16px;
  display:grid;
  gap:14px;
  background:linear-gradient(180deg, #fffdfa 0%, #fff 100%);
}

.puntos-console-topline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:#6c7b8c;
}

.puntos-console-topline strong{
  color:#4b4453;
  font-size:1.08rem;
}

.puntos-console-chip-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.puntos-console-chip-row span{
  min-height:30px;
  display:inline-flex;
  align-items:center;
  padding:0 12px;
  border-radius:999px;
  background:#fff4f7;
  border:1px solid rgba(239,71,102,.12);
  color:#c64662;
  font-size:.74rem;
  font-weight:800;
}

.puntos-console-search-card{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 220px;
  gap:14px;
}

.puntos-search-form--mock{
  background:#fff;
  border:1px solid rgba(39,55,77,.08);
  border-radius:18px;
  padding:14px;
  box-shadow:0 10px 18px rgba(39,55,77,.03);
}

.puntos-console-qr-box{
  display:grid;
  align-content:center;
  justify-items:center;
  gap:10px;
  background:#fff;
  border:1px dashed rgba(39,55,77,.18);
  border-radius:18px;
  padding:14px;
  text-align:center;
  box-shadow:0 10px 18px rgba(39,55,77,.03);
}

.puntos-console-qr-box strong{
  color:#4b4453;
}

.puntos-console-qr-box span{
  color:#6c7b8c;
  font-size:.78rem;
  line-height:1.24;
}

.puntos-console-register,
.puntos-console-customer-card{
  background:#fff;
  border:1px solid rgba(39,55,77,.08);
  border-radius:20px;
  padding:14px;
  box-shadow:0 10px 18px rgba(39,55,77,.04);
}

.puntos-console-highlight{
  margin:0 0 12px;
  padding:12px 14px;
  border-radius:16px;
  background:linear-gradient(180deg, #fff7fb 0%, #fff 100%);
  border:1px solid rgba(239,71,102,.12);
}

.puntos-console-highlight strong{
  display:block;
  color:#4b4453;
  font-size:.94rem;
}

.puntos-console-highlight span{
  display:block;
  margin-top:4px;
  color:#6c7b8c;
  font-size:.78rem;
  line-height:1.26;
}

.puntos-console-empty-state{
  display:grid;
  gap:6px;
  padding:18px;
  border-radius:20px;
  background:linear-gradient(180deg, #fff7fa 0%, #fff 100%);
  border:1px dashed rgba(239,71,102,.22);
  text-align:center;
}

.puntos-console-empty-state strong{
  color:#4b4453;
  font-size:1rem;
}

.puntos-console-empty-state span{
  color:#6c7b8c;
  font-size:.84rem;
}

.puntos-console-register strong{
  display:block;
  color:var(--p-coral-deep);
  margin-bottom:10px;
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
}

.puntos-inline-form--tight{
  grid-template-columns:repeat(4, minmax(0, 1fr));
  align-items:end;
}

.puntos-inline-form--tight .puntos-btn{
  min-height:46px;
}

.puntos-console-customer-main{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 320px;
  gap:16px;
  margin-bottom:12px;
}

.puntos-console-customer-id{
  display:flex;
  align-items:center;
  gap:12px;
}

.puntos-console-customer-id div:last-child{
  display:grid;
  gap:4px;
}

.puntos-console-customer-id strong{
  font-size:1.2rem;
  color:#4b4453;
}

.puntos-console-customer-id span{
  color:#6c7b8c;
  font-size:.84rem;
}

.puntos-console-metrics{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px;
}

.puntos-console-metrics article{
  background:#fff8eb;
  border:1px solid rgba(248,198,84,.35);
  border-radius:14px;
  padding:10px;
  text-align:center;
  box-shadow:0 8px 16px rgba(39,55,77,.03);
}

.puntos-console-metrics strong{
  display:block;
  color:#4b4453;
}

.puntos-console-metrics span{
  display:block;
  margin-top:4px;
  color:#6c7b8c;
  font-size:.76rem;
}

.puntos-console-progress{
  display:grid;
  gap:10px;
}

.puntos-console-progress-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border-radius:16px;
  background:#fff8fa;
  border:1px solid rgba(239,71,102,.12);
  box-shadow:0 8px 16px rgba(39,55,77,.03);
}

.puntos-console-progress-copy{
  display:grid;
  gap:8px;
  min-width:0;
  flex:1 1 auto;
}

.puntos-console-progress-copy strong{
  color:#4b4453;
}

.puntos-console-actions{
  display:grid;
  gap:14px;
  margin-top:12px;
}

.puntos-console-rewards{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(230px, 1fr));
  gap:12px;
}

.puntos-console-reward-pill{
  display:grid;
  gap:10px;
  padding:12px;
  border-radius:16px;
  background:#fffdf3;
  border:1px solid rgba(248,198,84,.35);
}

.puntos-shell--adminmock .puntos-shell-hero{
  padding:18px 24px 22px;
}

.puntos-shell--adminmock .puntos-shell-hero::before,
.puntos-shell--adminmock .puntos-shell-hero::after{
  display:none;
}

.puntos-shell--adminmock .puntos-shell-head{
  align-items:flex-start;
}

.puntos-shell--adminmock .puntos-shell-head h1{
  font-size:3.35rem;
}

.puntos-shell--adminmock .puntos-sidebar{
  background:linear-gradient(180deg, #fff 0%, #f8f0ff 100%);
}

.puntos-shell--adminmock .puntos-console-grid{
  grid-template-columns:250px minmax(0, 1fr);
  gap:18px;
}

.puntos-shell--adminmock .puntos-stage{
  gap:16px;
}

.puntos-shell--adminmock .puntos-sidebar{
  color:#4b4453;
  border:1px solid rgba(154,116,216,.16);
}

.puntos-shell--adminmock .puntos-sidebar::after{
  background:rgba(154,116,216,.08);
}

.puntos-shell--adminmock .puntos-sidebar p{
  color:#6c7b8c;
}

.puntos-shell--adminmock .puntos-sidebar-item{
  background:#fff;
  border-color:rgba(39,55,77,.08);
}

.puntos-shell--adminmock .puntos-sidebar-item span{
  color:#6c7b8c;
}

.puntos-shell--adminmock .puntos-sidebar-link{
  min-height:40px;
}

.puntos-admin-statusbar{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
}

.puntos-admin-preview-bar{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
}

.puntos-admin-preview-bar article{
  padding:12px 14px;
  border-radius:18px;
  background:linear-gradient(180deg, #fffef8 0%, #fff 100%);
  border:1px solid rgba(248,198,84,.32);
  box-shadow:0 10px 18px rgba(39,55,77,.04);
}

.puntos-admin-preview-bar article:nth-child(2){
  border-color:rgba(35,174,194,.18);
  background:linear-gradient(180deg, #f6fdff 0%, #fff 100%);
}

.puntos-admin-preview-bar article:nth-child(3){
  border-color:rgba(154,116,216,.16);
  background:linear-gradient(180deg, #faf7ff 0%, #fff 100%);
}

.puntos-admin-preview-bar article:nth-child(4){
  border-color:rgba(239,71,102,.14);
  background:linear-gradient(180deg, #fff8fb 0%, #fff 100%);
}

.puntos-admin-preview-bar strong{
  display:block;
  color:#4b4453;
  font-size:1.15rem;
  line-height:1;
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
}

.puntos-admin-preview-bar span{
  display:block;
  margin-top:6px;
  color:#6c7b8c;
  font-size:.74rem;
}

.puntos-admin-statusbar article{
  background:linear-gradient(180deg, #ffffff 0%, #fff8fb 100%);
  border:1px solid rgba(239,71,102,.12);
  border-radius:18px;
  padding:11px 13px;
  box-shadow:0 10px 18px rgba(39,55,77,.05);
}

.puntos-admin-statusbar article:nth-child(2){
  border-color:rgba(35,174,194,.16);
}

.puntos-admin-statusbar article:nth-child(3){
  border-color:rgba(248,198,84,.28);
}

.puntos-admin-statusbar article:nth-child(4){
  border-color:rgba(86,185,122,.22);
}

.puntos-admin-statusbar strong{
  display:block;
  color:var(--p-coral-deep);
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.puntos-admin-statusbar span{
  display:block;
  margin-top:6px;
  color:#4b4453;
  font-weight:800;
}

.puntos-admin-card{
  border-radius:30px;
  overflow:hidden;
}

.puntos-admin-card > .card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}

.puntos-admin-head-pill{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:0 14px;
  border-radius:999px;
  background:#fff1f4;
  color:var(--p-coral-deep);
  border:1px solid rgba(239,71,102,.12);
  font-size:.82rem;
  font-weight:900;
  white-space:nowrap;
}

.puntos-admin-head-pill.pill-teal{
  background:#eef9fc;
  color:var(--p-teal-deep);
  border-color:rgba(35,174,194,.16);
}

.puntos-shell--adminmock #dashboard{
  border-top:8px solid #9a74d8;
}

.puntos-shell--adminmock #configuracion{
  border-top:8px solid #23aec2;
}

.puntos-shell--adminmock .puntos-admin-card{
  background:
    linear-gradient(180deg, rgba(255,255,255,.99) 0%, rgba(255,250,251,.98) 100%);
  border:1px solid rgba(39,55,77,.06);
  box-shadow:0 18px 34px rgba(39,55,77,.08);
}

.puntos-shell--adminmock .puntos-admin-grid-six{
  gap:14px;
}

.puntos-shell--adminmock .puntos-kpi{
  border-radius:20px;
  padding:16px 14px;
  text-align:center;
}

.puntos-shell--adminmock .puntos-kpi:nth-child(1){
  background:linear-gradient(180deg, #fff8fb 0%, #fff 100%);
  border:1px solid rgba(239,71,102,.14);
}

.puntos-shell--adminmock .puntos-kpi:nth-child(2){
  background:linear-gradient(180deg, #f6fdff 0%, #fff 100%);
  border:1px solid rgba(35,174,194,.16);
}

.puntos-shell--adminmock .puntos-kpi:nth-child(3){
  background:linear-gradient(180deg, #fffef6 0%, #fff 100%);
  border:1px solid rgba(248,198,84,.24);
}

.puntos-shell--adminmock .puntos-kpi:nth-child(4){
  background:linear-gradient(180deg, #fff8fb 0%, #fff 100%);
  border:1px solid rgba(239,71,102,.14);
}

.puntos-shell--adminmock .puntos-kpi:nth-child(5){
  background:linear-gradient(180deg, #f4fff8 0%, #fff 100%);
  border:1px solid rgba(86,185,122,.18);
}

.puntos-shell--adminmock .puntos-kpi:nth-child(6){
  background:linear-gradient(180deg, #faf7ff 0%, #fff 100%);
  border:1px solid rgba(154,116,216,.14);
}

.puntos-shell--adminmock .puntos-kpi strong{
  font-size:2.2rem;
}

.puntos-shell--adminmock .puntos-dashboard-grid{
  gap:16px;
}

.puntos-shell--adminmock .puntos-dashboard-panel{
  border-radius:24px;
  padding:15px;
  border:1px solid rgba(39,55,77,.06);
  box-shadow:0 10px 22px rgba(39,55,77,.04);
}

.puntos-shell--adminmock .puntos-dashboard-panel:nth-child(1){
  background:linear-gradient(180deg, #fffaf4 0%, #fff 100%);
}

.puntos-shell--adminmock .puntos-dashboard-panel:nth-child(2){
  background:linear-gradient(180deg, #fff8fb 0%, #fff 100%);
}

.puntos-shell--adminmock .puntos-dashboard-panel:nth-child(3){
  background:linear-gradient(180deg, #f7fdff 0%, #fff 100%);
}

.puntos-shell--adminmock .puntos-dashboard-panel:nth-child(4){
  background:linear-gradient(180deg, #fffef8 0%, #fff 100%);
}

.puntos-shell--adminmock .puntos-dashboard-panel-head h3{
  font-size:1.15rem;
}

.puntos-config-glance{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
  margin:0 0 14px;
}

.puntos-config-glance article{
  background:linear-gradient(180deg, #fffef8 0%, #fff7e5 100%);
  border:1px solid rgba(248,198,84,.34);
  border-radius:18px;
  padding:12px;
  text-align:center;
  box-shadow:0 10px 18px rgba(39,55,77,.04);
}

.puntos-config-glance strong{
  display:block;
  color:#4b4453;
  font-size:1.45rem;
  line-height:1;
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
}

.puntos-config-glance span{
  display:block;
  margin-top:6px;
  color:#6c7b8c;
  font-size:.78rem;
}

.puntos-shell--adminmock .puntos-config-grid{
  gap:16px;
}

.puntos-shell--adminmock .puntos-config-tiles{
  margin-top:16px;
}

.puntos-shell--adminmock .puntos-level-editor{
  border-radius:24px;
  padding:14px;
  background:linear-gradient(180deg, #fff 0%, #fffbfc 100%);
  border:1px solid rgba(239,71,102,.08);
}

.puntos-shell--adminmock .puntos-reward-item{
  border-radius:18px;
}

.puntos-shell--adminmock #auditoria{
  border-top:8px solid #f39c12;
}

@media (max-width:980px){
  .puntos-mobile-hero,
  .puntos-console-search-card,
  .puntos-console-customer-main,
  .puntos-inline-form--tight,
  .puntos-console-window{
    grid-template-columns:1fr;
  }

  .puntos-console-window{
    overflow:visible;
  }

  .puntos-console-nav{
    border-right:none;
    border-bottom:1px solid rgba(39,55,77,.08);
  }

  .puntos-admin-statusbar,
  .puntos-config-glance,
  .puntos-admin-preview-bar{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width:760px){
  .puntos-wrap--screen{
    padding:10px 8px 18px;
  }

  .puntos-screen-board{
    padding:10px;
    border-radius:20px;
  }

  .puntos-screen-title{
    font-size:1.08rem;
    gap:8px;
    margin-bottom:10px;
  }

  .puntos-screen-title span{
    width:28px;
    height:28px;
    font-size:.84rem;
  }

  .puntos-mobile-card{
    border-width:3px;
    border-radius:22px;
  }

  .puntos-mobile-hero,
  .puntos-mobile-summary-row,
  .puntos-console-metrics{
    grid-template-columns:1fr;
  }

  .puntos-mobile-hero-hint,
  .puntos-screen-next{
    margin-left:0;
    margin-right:0;
  }

  .puntos-mobile-profile-copy strong{
    font-size:1.05rem;
  }

  .puntos-mobile-topbar{
    padding:18px 14px 10px;
  }

  .puntos-mobile-brand strong{
    font-size:.82rem;
  }

  .puntos-mobile-hero{
    gap:10px;
    padding:12px 14px 8px;
  }

  .puntos-mobile-profile{
    gap:10px;
  }

  .puntos-mobile-avatar{
    width:48px;
    height:48px;
    font-size:1.15rem;
  }

  .puntos-mobile-qr-card{
    padding:8px;
  }

  .puntos-qr-image-phone{
    width:92px;
    height:92px;
  }

  .puntos-mobile-summary-row{
    padding:0 14px 8px;
  }

  .puntos-mobile-summary-row article{
    padding:10px 12px;
    border-radius:14px;
  }

  .puntos-mobile-hero-hint{
    margin:0 14px 10px;
    padding:10px 11px;
  }

  .puntos-mobile-chip-row{
    padding:0 14px 8px;
    gap:6px;
  }

  .puntos-mobile-chip-row span{
    min-height:24px;
    padding:0 10px;
    font-size:.66rem;
  }

  .puntos-mobile-progress-list{
    padding:0 14px 10px;
    gap:8px;
  }

  .puntos-mobile-progress-item{
    padding:9px 10px;
    border-radius:14px;
  }

  .puntos-mobile-progress-shell{
    grid-template-columns:minmax(0, 1fr) 62px;
    gap:10px;
  }

  .puntos-reward-icon--feature{
    width:58px;
    height:58px;
    border-radius:18px;
  }

  .puntos-reward-icon--feature img{
    width:40px;
    height:40px;
  }

  .puntos-mobile-reward-line strong{
    font-size:.88rem;
  }

  .puntos-mobile-progress-status{
    min-height:24px;
    font-size:.7rem;
  }

  .puntos-mobile-nav{
    grid-template-columns:repeat(4, minmax(0, 1fr));
  }

  .puntos-mobile-nav a{
    min-height:46px;
    font-size:.72rem;
  }

  .puntos-mobile-card::before{
    width:72px;
    height:11px;
    top:7px;
  }

  .puntos-mobile-section{
    padding:10px 12px 0;
    gap:8px;
  }

  .puntos-mobile-history-summary{
    gap:8px;
    padding:12px 12px 2px;
  }

  .puntos-mobile-history-summary article{
    padding:8px;
    border-radius:12px;
  }

  .puntos-mobile-history-summary strong{
    font-size:1rem;
  }

  .puntos-mobile-list-item,
  .puntos-mobile-history-item{
    padding:10px;
    border-radius:14px;
  }

  .puntos-mobile-list-main{
    gap:8px;
  }

  .puntos-mobile-progress-head,
  .puntos-console-progress-item,
  .puntos-console-topline{
    flex-direction:column;
    align-items:flex-start;
  }

  .puntos-screen-actions{
    margin-top:10px;
    gap:8px;
  }

  .puntos-screen-next{
    padding:10px 12px;
    border-radius:14px;
  }

  .puntos-next-level-list div{
    min-height:28px;
    padding:0 10px;
    font-size:.72rem;
  }

  .puntos-console-window{
    border-radius:20px;
    overflow:hidden;
  }

  .puntos-console-nav{
    display:flex;
    gap:8px;
    padding:10px;
    overflow-x:auto;
    border-bottom:1px solid rgba(39,55,77,.08);
  }

  .puntos-console-brand{
    min-width:max-content;
    margin-bottom:0;
    margin-right:4px;
  }

  .puntos-console-nav a{
    min-width:max-content;
    min-height:34px;
    padding:0 10px;
    font-size:.76rem;
    white-space:nowrap;
  }

  .puntos-console-main{
    padding:12px;
    gap:10px;
  }

  .puntos-console-chip-row{
    gap:6px;
  }

  .puntos-console-chip-row span{
    min-height:26px;
    padding:0 10px;
    font-size:.68rem;
  }

  .puntos-console-search-card,
  .puntos-inline-form--tight,
  .puntos-console-customer-main,
  .puntos-console-rewards{
    grid-template-columns:1fr;
  }

  .puntos-search-form--mock,
  .puntos-console-qr-box,
  .puntos-console-register,
  .puntos-console-customer-card,
  .puntos-console-empty-state{
    border-radius:16px;
    padding:12px;
  }

  .puntos-console-register strong{
    margin-bottom:8px;
  }

  .puntos-console-customer-id{
    align-items:flex-start;
  }

  .puntos-console-highlight{
    margin-bottom:10px;
    padding:10px 11px;
    border-radius:14px;
  }

  .puntos-console-progress{
    gap:8px;
  }

  .puntos-console-progress-item{
    padding:9px 10px;
    border-radius:14px;
  }

  .puntos-reward-icon--console{
    width:54px;
    height:54px;
  }

  .puntos-reward-icon--console img{
    width:38px;
    height:38px;
  }

  .puntos-console-actions{
    gap:10px;
  }

  .puntos-console-reward-pill{
    padding:10px;
    border-radius:14px;
  }

  .puntos-admin-statusbar,
  .puntos-config-glance{
    grid-template-columns:1fr;
  }

  .puntos-admin-card > .card-head{
    flex-direction:column;
    align-items:flex-start;
  }

  .puntos-shell--adminmock .puntos-shell-hero{
    padding:14px 12px 16px;
  }

  .puntos-shell--adminmock .puntos-shell-head{
    gap:10px;
  }

  .puntos-shell--adminmock .puntos-shell-head h1{
    font-size:2.2rem;
    line-height:.95;
  }

  .puntos-shell--adminmock .puntos-shell-head p{
    font-size:.82rem;
    line-height:1.24;
  }

  .puntos-shell--adminmock .puntos-console-grid{
    grid-template-columns:1fr;
    gap:12px;
  }

  .puntos-shell--adminmock .puntos-sidebar{
    padding:12px;
    border-radius:18px;
  }

  .puntos-shell--adminmock .puntos-sidebar-art,
  .puntos-shell--adminmock .puntos-sidebar p{
    display:none;
  }

  .puntos-sidebar-nav{
    display:flex;
    gap:8px;
    overflow-x:auto;
    padding-bottom:2px;
  }

  .puntos-sidebar-link{
    min-width:max-content;
    min-height:34px;
    padding:0 10px 0 14px;
    white-space:nowrap;
  }

  .puntos-shell--adminmock .puntos-stage{
    gap:12px;
  }

  .puntos-admin-statusbar article,
  .puntos-config-glance article,
  .puntos-admin-preview-bar article{
    border-radius:14px;
    padding:10px 11px;
  }

  .puntos-admin-preview-bar{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:8px;
  }

  .puntos-admin-card{
    border-radius:20px;
  }

  .puntos-shell--adminmock .puntos-dashboard-panel,
  .puntos-shell--adminmock .puntos-level-editor{
    border-radius:16px;
    padding:12px;
  }

  .puntos-shell--adminmock .puntos-kpi{
    border-radius:16px;
    padding:12px 10px;
  }

  .puntos-shell--adminmock .puntos-kpi strong{
    font-size:1.8rem;
  }

  .puntos-config-note-list,
  .puntos-config-tiles,
  .puntos-level-rows,
  .puntos-row-form-grid,
  .puntos-admin-columns-two{
    gap:10px;
  }

  .table-wrap{
    overflow-x:auto;
  }
}

/* Fidelity pass 3.9: match the approved mockup screens more closely. */
body.puntos-body,
body.puntos-console-body{
  background:
    radial-gradient(circle at 5% 7%, #fff 0 5px, transparent 6px),
    radial-gradient(circle at 8% 12%, #fff 0 3px, transparent 4px),
    radial-gradient(circle at 14% 6%, #fff 0 4px, transparent 5px),
    radial-gradient(circle at 84% 8%, #fff 0 5px, transparent 6px),
    radial-gradient(circle at 89% 13%, #fff 0 3px, transparent 4px),
    radial-gradient(circle at 95% 8%, #fff 0 4px, transparent 5px),
    linear-gradient(180deg, #ff5b76 0%, #f44967 100%);
}

.puntos-wrap--screen{
  max-width:1280px;
  padding:22px 18px 34px;
}

.puntos-screen-board{
  background:#fffdfc;
  border:3px solid rgba(255,255,255,.92);
  border-radius:22px;
  padding:18px 22px 20px;
  box-shadow:0 20px 42px rgba(112,35,54,.18);
}

.puntos-screen-board::before{
  background:
    radial-gradient(circle at 88% 18%, rgba(255,91,118,.32) 0 2px, transparent 3px),
    radial-gradient(circle at 92% 24%, rgba(35,174,194,.34) 0 2px, transparent 3px),
    radial-gradient(circle at 82% 32%, rgba(248,198,84,.38) 0 2px, transparent 3px),
    radial-gradient(circle at 7% 88%, rgba(255,91,118,.18) 0 3px, transparent 4px);
}

.puntos-screen-title{
  margin:0 0 12px;
  color:#078a9a;
  font-size:1.48rem;
  line-height:1;
}

.puntos-screen-title--orange{
  color:#f39c12;
}

.puntos-mobile-card{
  width:100%;
  max-width:760px;
  margin:0 auto;
  border:6px solid #1f1f24;
  border-radius:34px;
  background:#fffdfc;
  box-shadow:0 18px 34px rgba(39,55,77,.22);
}

.puntos-mobile-card::before{
  width:104px;
  height:15px;
  top:0;
  border-radius:0 0 16px 16px;
  background:#16161a;
}

.puntos-mobile-card--active,
.puntos-mobile-card--history{
  max-width:780px;
}

.puntos-mobile-topbar{
  min-height:46px;
  padding:10px 20px 8px;
  background:linear-gradient(180deg, #ff617b 0%, #f54766 100%);
}

.puntos-mobile-brand strong{
  font-size:.82rem;
}

.puntos-mobile-brand img{
  width:24px;
  height:24px;
}

.puntos-mobile-hero{
  grid-template-columns:minmax(0, 1fr) 166px;
  align-items:center;
  padding:14px 22px 10px;
}

.puntos-mobile-profile{
  align-items:flex-start;
}

.puntos-mobile-avatar{
  width:66px;
  height:66px;
  font-size:1.55rem;
  border:4px solid #fff;
}

.puntos-mobile-profile-copy strong{
  font-size:1.42rem;
}

.puntos-mobile-profile-copy span{
  font-size:.86rem;
}

.puntos-mobile-profile-copy em{
  min-height:23px;
  font-size:.72rem;
  padding:0 9px;
}

.puntos-mobile-qr-card{
  border-radius:9px;
  padding:8px;
}

.puntos-qr-image-phone{
  width:128px;
  height:128px;
  border-radius:8px;
  padding:6px;
}

.puntos-mobile-summary-row{
  padding:0 22px 10px;
}

.puntos-mobile-summary-row article{
  min-height:52px;
  border-radius:9px;
  padding:10px 12px;
}

.puntos-mobile-summary-row span{
  font-size:.78rem;
}

.puntos-mobile-summary-row strong{
  font-size:1.16rem;
}

.puntos-mobile-chip-row,
.puntos-mobile-hero-hint{
  display:none;
}

.puntos-mobile-progress-list{
  padding:0 22px 14px;
  gap:6px;
}

.puntos-mobile-progress-item{
  border-radius:9px;
  padding:8px 10px;
}

.puntos-mobile-progress-shell{
  grid-template-columns:minmax(0, 1fr) 86px;
  gap:10px;
}

.puntos-mobile-progress-head{
  margin-bottom:5px;
}

.puntos-mobile-progress-head strong{
  color:#4a4050;
  font-size:.92rem;
}

.puntos-mobile-progress-status{
  min-height:24px;
  padding:0 9px;
  font-size:.7rem;
}

.puntos-mobile-stamps{
  gap:8px;
}

.puntos-stamp--phone{
  width:24px !important;
  height:24px !important;
}

.puntos-reward-icon--feature{
  width:74px;
  height:74px;
  border-radius:18px;
}

.puntos-reward-icon--feature img{
  width:52px;
  height:52px;
}

.puntos-mobile-nav{
  min-height:54px;
}

.puntos-mobile-nav a{
  min-height:54px;
  font-size:.76rem;
}

.puntos-mobile-history-summary{
  padding:14px 22px 8px;
}

.puntos-mobile-history-summary article{
  border-radius:9px;
  padding:9px 10px;
}

.puntos-mobile-section{
  padding:7px 22px 0;
  gap:7px;
}

.puntos-mobile-section-title{
  min-height:26px;
  border-radius:6px;
  font-size:.78rem;
}

.puntos-mobile-list-item,
.puntos-mobile-history-item{
  border-radius:9px;
  padding:8px 11px;
}

.puntos-mobile-list-main strong,
.puntos-mobile-history-item strong{
  font-size:.88rem;
}

.puntos-mobile-list-main span,
.puntos-mobile-history-item span{
  font-size:.74rem;
}

.puntos-screen-actions{
  margin-top:10px;
}

.puntos-loyalty-rule{
  min-height:28px;
  padding:0 14px;
  border-radius:7px;
  background:#e8f9fc;
  color:#078a9a;
  font-weight:900;
  font-size:.78rem;
}

.puntos-screen-next{
  border-radius:9px;
  max-width:760px;
  padding:10px 12px;
}

.puntos-console-window{
  grid-template-columns:142px minmax(0, 1fr);
  border-radius:10px;
  border:2px solid rgba(248,198,84,.55);
  box-shadow:0 14px 28px rgba(39,55,77,.14);
}

.puntos-console-nav{
  padding:10px 8px;
}

.puntos-console-brand{
  min-height:31px;
  margin-bottom:5px;
  font-size:.7rem;
}

.puntos-console-nav a{
  min-height:31px;
  border-radius:7px;
  padding:0 8px;
  font-size:.73rem;
}

.puntos-console-main{
  padding:12px;
  gap:9px;
}

.puntos-console-topline strong{
  font-size:.98rem;
}

.puntos-console-topline span{
  font-size:.74rem;
}

.puntos-console-chip-row{
  display:none;
}

.puntos-console-search-card{
  grid-template-columns:minmax(0, 1fr) 176px;
  gap:10px;
}

.puntos-search-form--mock,
.puntos-console-qr-box,
.puntos-console-customer-card,
.puntos-console-empty-state{
  border-radius:9px;
  padding:10px;
}

.puntos-console-qr-box strong,
.puntos-console-qr-box span{
  font-size:.72rem;
  text-align:center;
}

.puntos-console-customer-main{
  grid-template-columns:minmax(0, 1fr) 260px;
  gap:10px;
  margin-bottom:8px;
}

.puntos-console-customer-id strong{
  font-size:1rem;
}

.puntos-console-customer-id span{
  font-size:.72rem;
}

.puntos-console-metrics{
  gap:7px;
}

.puntos-console-metrics article{
  border-radius:8px;
  padding:7px;
}

.puntos-console-metrics strong{
  font-size:.86rem;
}

.puntos-console-metrics span{
  font-size:.64rem;
}

.puntos-console-highlight{
  border-radius:8px;
  padding:8px 10px;
  margin-bottom:8px;
}

.puntos-console-highlight strong{
  font-size:.82rem;
}

.puntos-console-highlight span{
  font-size:.68rem;
}

.puntos-console-progress{
  gap:6px;
}

.puntos-console-progress-item{
  border-radius:8px;
  padding:7px 9px;
}

.puntos-console-progress-copy strong{
  font-size:.82rem;
}

.puntos-stamp--mini{
  width:18px !important;
  height:18px !important;
}

.puntos-reward-icon--console{
  width:52px;
  height:52px;
  border-radius:14px;
}

.puntos-reward-icon--console img{
  width:38px;
  height:38px;
}

.puntos-inline-form--tight{
  grid-template-columns:1fr 1fr 1fr auto;
  gap:9px;
}

.puntos-inline-form--tight label{
  font-size:.72rem;
}

.puntos-inline-form--tight input{
  min-height:38px;
}

.puntos-inline-form--tight .puntos-btn{
  min-height:38px;
  padding:0 14px;
}

.puntos-shell{
  max-width:1280px;
}

.puntos-shell--adminmock .puntos-shell-hero{
  padding:10px 16px;
  border-radius:18px;
  margin-bottom:12px;
}

.puntos-shell--adminmock .puntos-shell-head{
  display:flex;
  align-items:center;
}

.puntos-shell--adminmock .puntos-hero-logo-badge{
  width:104px;
  margin:0 0 4px;
}

.puntos-shell--adminmock .puntos-badge,
.puntos-shell--adminmock .puntos-hero-inline-notes{
  display:none;
}

.puntos-shell--adminmock .puntos-shell-head h1{
  font-size:2.2rem;
  margin:0 0 2px;
}

.puntos-shell--adminmock .puntos-hero-subtitle{
  font-size:.98rem;
  margin:0 0 2px;
}

.puntos-shell--adminmock .puntos-shell-head p{
  max-width:760px;
  font-size:.78rem;
}

.puntos-shell--adminmock .puntos-console-grid{
  grid-template-columns:160px minmax(0, 1fr);
  gap:10px;
}

.puntos-shell--adminmock .puntos-sidebar{
  border-radius:10px;
  padding:10px;
}

.puntos-shell--adminmock .puntos-sidebar-art,
.puntos-shell--adminmock .puntos-sidebar p,
.puntos-shell--adminmock .puntos-sidebar-list{
  display:none;
}

.puntos-shell--adminmock .puntos-sidebar h2{
  font-size:1rem;
  margin:0 0 8px;
}

.puntos-sidebar-nav{
  gap:6px;
}

.puntos-shell--adminmock .puntos-sidebar-link{
  min-height:32px;
  border-radius:7px;
  font-size:.72rem;
  padding:0 8px 0 10px;
}

.puntos-shell--adminmock .puntos-stage{
  gap:10px;
}

.puntos-admin-statusbar,
.puntos-admin-preview-bar,
.puntos-config-glance{
  gap:8px;
}

.puntos-admin-statusbar article,
.puntos-admin-preview-bar article,
.puntos-config-glance article{
  border-radius:9px;
  padding:8px 10px;
}

.puntos-admin-statusbar strong,
.puntos-admin-preview-bar span,
.puntos-config-glance span{
  font-size:.68rem;
}

.puntos-admin-statusbar span{
  font-size:.82rem;
}

.puntos-admin-preview-bar strong,
.puntos-config-glance strong{
  font-size:1rem;
}

.puntos-admin-card{
  border-radius:10px;
}

.puntos-admin-card > .card-head{
  padding-bottom:8px;
}

.puntos-admin-card > .card-head h2{
  font-size:1.2rem;
  margin:0;
}

.puntos-admin-card > .card-head .muted{
  font-size:.74rem;
}

.puntos-admin-head-pill{
  min-height:28px;
  border-radius:7px;
  font-size:.68rem;
}

.puntos-admin-legend{
  display:none;
}

.puntos-shell--adminmock .puntos-admin-card{
  box-shadow:0 12px 24px rgba(39,55,77,.08);
}

.puntos-shell--adminmock .puntos-admin-grid-six{
  grid-template-columns:repeat(6, minmax(0, 1fr));
  gap:8px;
}

.puntos-console-redeem-panel{
  margin-top:10px;
  padding:10px;
  border:1px solid rgba(86,185,122,.28);
  border-radius:12px;
  background:linear-gradient(180deg, #f4fff8 0%, #fffdf9 100%);
}

.puntos-console-redeem-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}

.puntos-console-redeem-head strong{
  color:#198754;
  font-size:.95rem;
}

.puntos-console-redeem-head span{
  color:#667085;
  font-size:.72rem;
}

.puntos-console-redeem-list{
  display:grid;
  gap:8px;
}

.puntos-console-redeem-item{
  display:grid;
  grid-template-columns:46px minmax(160px, 1fr) minmax(120px, .8fr) minmax(140px, 1fr) auto;
  align-items:end;
  gap:8px;
  padding:8px;
  border:1px solid rgba(39,55,77,.08);
  border-radius:10px;
  background:#fff;
}

.puntos-console-redeem-copy{
  display:grid;
  gap:2px;
}

.puntos-console-redeem-copy strong{
  color:#27374d;
  font-size:.88rem;
}

.puntos-console-redeem-copy span,
.puntos-console-redeem-item label{
  color:#667085;
  font-size:.68rem;
  font-weight:800;
}

.puntos-console-redeem-item input{
  width:100%;
  min-height:34px;
  margin-top:3px;
  padding:0 10px;
  border:1px solid #ffd1d8;
  border-radius:8px;
  background:#fff;
}

.puntos-console-redeem-item .puntos-btn{
  min-height:38px;
  border-radius:10px;
  white-space:nowrap;
}

@media (max-width:760px){
  .puntos-console-redeem-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .puntos-console-redeem-item{
    grid-template-columns:42px 1fr;
  }

  .puntos-console-redeem-item label,
  .puntos-console-redeem-item .puntos-btn{
    grid-column:1 / -1;
  }
}

.puntos-shell--adminmock .puntos-kpi{
  border-radius:9px;
  padding:10px 8px;
}

.puntos-shell--adminmock .puntos-kpi strong{
  font-size:1.55rem;
}

.puntos-shell--adminmock .puntos-kpi span{
  font-size:.68rem;
}

.puntos-dashboard-grid{
  grid-template-columns:1.15fr .85fr;
}

.puntos-shell--adminmock .puntos-dashboard-grid{
  gap:9px;
}

.puntos-shell--adminmock .puntos-dashboard-panel{
  border-radius:9px;
  padding:10px;
}

.puntos-shell--adminmock .puntos-dashboard-panel-head h3{
  font-size:.95rem;
  margin:0;
}

.puntos-dashboard-panel-head p{
  font-size:.68rem;
}

.puntos-metrics-grid{
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:7px;
}

.puntos-metric-pill{
  border-radius:8px;
  padding:8px;
}

.puntos-metric-pill strong{
  font-size:1.05rem;
}

.puntos-metric-pill span{
  font-size:.64rem;
}

.puntos-config-grid{
  grid-template-columns:1.05fr .95fr;
}

.puntos-form-grid{
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
}

.puntos-form label{
  font-size:.72rem;
}

.puntos-form input,
.puntos-form select{
  min-height:36px;
  border-radius:7px;
}

.puntos-check{
  border-radius:7px;
  min-height:34px;
}

.puntos-config-note,
.puntos-config-tile,
.puntos-reward-item{
  border-radius:8px;
}

.puntos-config-note strong,
.puntos-config-tile strong{
  font-size:.84rem;
}

.puntos-config-note span,
.puntos-config-tile span{
  font-size:.68rem;
}

.puntos-level-editor{
  border-radius:10px;
}

.puntos-level-banner{
  border-radius:9px;
  padding:10px;
}

.puntos-level-banner h3{
  font-size:1rem;
}

.puntos-level-banner p{
  font-size:.7rem;
}

.puntos-level-settings,
.puntos-row-form-grid{
  gap:8px;
}

.puntos-reward-item-wide{
  padding:10px;
}

.puntos-reward-head strong{
  font-size:.86rem;
}

.puntos-reward-head span{
  font-size:.7rem;
}

.table{
  font-size:.7rem;
}

.table th,
.table td{
  padding:7px 8px;
}

@media (max-width:900px){
  .puntos-wrap--screen{
    padding:12px 8px 20px;
  }

  .puntos-screen-board{
    padding:12px;
    border-radius:18px;
  }

  .puntos-mobile-card{
    border-width:4px;
    border-radius:24px;
  }

  .puntos-mobile-card::before{
    width:78px;
    height:11px;
  }

  .puntos-mobile-topbar{
    min-height:38px;
    padding:8px 14px 7px;
  }

  .puntos-mobile-hero{
    grid-template-columns:minmax(0, 1fr) 112px;
    padding:12px 14px 8px;
  }

  .puntos-mobile-avatar{
    width:52px;
    height:52px;
    font-size:1.25rem;
  }

  .puntos-mobile-profile-copy strong{
    font-size:1.08rem;
  }

  .puntos-qr-image-phone{
    width:86px;
    height:86px;
  }

  .puntos-mobile-summary-row,
  .puntos-mobile-history-summary{
    padding-left:14px;
    padding-right:14px;
  }

  .puntos-mobile-progress-list,
  .puntos-mobile-section{
    padding-left:14px;
    padding-right:14px;
  }

  .puntos-mobile-progress-shell{
    grid-template-columns:minmax(0, 1fr) 58px;
  }

  .puntos-reward-icon--feature{
    width:52px;
    height:52px;
    border-radius:14px;
  }

  .puntos-reward-icon--feature img{
    width:36px;
    height:36px;
  }

  .puntos-stamp--phone{
    width:20px !important;
    height:20px !important;
  }

  .puntos-console-window,
  .puntos-console-search-card,
  .puntos-console-customer-main,
  .puntos-inline-form--tight,
  .puntos-shell--adminmock .puntos-console-grid,
  .puntos-dashboard-grid,
  .puntos-config-grid{
    grid-template-columns:1fr;
  }

  .puntos-console-nav,
  .puntos-sidebar-nav{
    display:flex;
    overflow-x:auto;
  }

  .puntos-console-nav a,
  .puntos-shell--adminmock .puntos-sidebar-link{
    min-width:max-content;
  }

  .puntos-shell--adminmock .puntos-admin-grid-six,
  .puntos-metrics-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width:560px){
  .puntos-screen-title{
    font-size:1.12rem;
  }

  .puntos-mobile-hero{
    grid-template-columns:1fr;
  }

  .puntos-mobile-qr-card{
    display:grid;
    grid-template-columns:86px minmax(0, 1fr);
    align-items:center;
    gap:8px;
    text-align:left;
  }

  .puntos-mobile-summary-row,
  .puntos-mobile-history-summary,
  .puntos-admin-statusbar,
  .puntos-admin-preview-bar,
  .puntos-config-glance{
    grid-template-columns:1fr;
  }

  .puntos-mobile-progress-head,
  .puntos-mobile-list-item,
  .puntos-mobile-history-item{
    align-items:flex-start;
  }

  .puntos-mobile-list-item,
  .puntos-mobile-history-item{
    flex-direction:column;
  }

  .puntos-mobile-nav a{
    font-size:.66rem;
  }

  .puntos-form-grid,
  .puntos-row-form-grid{
    grid-template-columns:1fr;
  }
}

/* Fidelity pass 4.0: remove the iPhone-frame feel and use the mockup panel proportions. */
.puntos-body .puntos-wrap--screen{
  max-width:1120px;
  padding-top:18px;
}

.puntos-body .puntos-screen-board{
  padding:14px 18px 18px;
  border-radius:20px;
  background:
    radial-gradient(circle at 92% 23%, rgba(35,174,194,.32) 0 2px, transparent 3px),
    radial-gradient(circle at 88% 18%, rgba(244,73,103,.22) 0 2px, transparent 3px),
    radial-gradient(circle at 84% 32%, rgba(248,198,84,.34) 0 2px, transparent 3px),
    #fffdfc;
}

.puntos-body .puntos-screen-title{
  margin:0 0 8px;
  padding-left:4px;
  font-size:1.25rem;
}

.puntos-body .puntos-mobile-card{
  max-width:920px;
  border:0;
  border-radius:18px;
  box-shadow:0 16px 34px rgba(39,55,77,.12);
  outline:1px solid rgba(39,55,77,.08);
}

.puntos-body .puntos-mobile-card::before{
  display:none;
}

.puntos-body .puntos-mobile-topbar{
  min-height:44px;
  padding:9px 20px;
}

.puntos-body .puntos-mobile-burger{
  width:18px;
}

.puntos-body .puntos-mobile-bell{
  transform:scale(.9);
}

.puntos-body .puntos-mobile-hero{
  grid-template-columns:minmax(0, 1fr) 156px;
  padding:12px 22px 8px;
}

.puntos-body .puntos-mobile-profile{
  min-height:126px;
  align-items:center;
}

.puntos-body .puntos-mobile-avatar{
  width:58px;
  height:58px;
  font-size:1.38rem;
}

.puntos-body .puntos-mobile-profile-copy strong{
  font-size:1.28rem;
}

.puntos-body .puntos-mobile-profile-copy span{
  font-size:.8rem;
}

.puntos-body .puntos-qr-image-phone{
  width:118px;
  height:118px;
}

.puntos-body .puntos-mobile-summary-row{
  padding:0 22px 8px;
  gap:8px;
}

.puntos-body .puntos-mobile-summary-row article{
  min-height:42px;
  padding:8px 11px;
}

.puntos-body .puntos-mobile-summary-row strong{
  font-size:1.05rem;
}

.puntos-body .puntos-mobile-progress-list{
  padding:0 22px 12px;
  gap:5px;
}

.puntos-body .puntos-mobile-progress-item{
  padding:7px 10px;
}

.puntos-body .puntos-mobile-progress-shell{
  grid-template-columns:minmax(0, 1fr) 76px;
}

.puntos-body .puntos-mobile-progress-head strong{
  font-size:.84rem;
}

.puntos-body .puntos-stamp--phone{
  width:22px !important;
  height:22px !important;
}

.puntos-body .puntos-reward-icon--feature{
  width:64px;
  height:64px;
  border-radius:16px;
}

.puntos-body .puntos-reward-icon--feature img{
  width:46px;
  height:46px;
}

.puntos-body .puntos-mobile-nav{
  min-height:48px;
}

.puntos-body .puntos-mobile-nav a{
  min-height:48px;
  font-size:.72rem;
}

.puntos-body .puntos-screen-actions{
  max-width:920px;
  margin:8px auto 0;
}

.puntos-body .puntos-loyalty-rule{
  min-height:24px;
  font-size:.72rem;
}

.puntos-body .puntos-screen-next{
  width:100%;
  max-width:520px;
  padding:8px 10px;
  border-radius:9px;
}

.puntos-body .puntos-screen-next strong{
  font-size:.86rem;
}

.puntos-body .puntos-screen-next span,
.puntos-body .puntos-next-level-list div{
  font-size:.7rem;
}

.puntos-body .puntos-mobile-card--history{
  max-width:760px;
}

.puntos-body .puntos-mobile-card--history .puntos-mobile-history-summary{
  padding:12px 18px 6px;
}

.puntos-body .puntos-mobile-card--history .puntos-mobile-section{
  padding-left:18px;
  padding-right:18px;
}

.puntos-body .puntos-mobile-card--history .puntos-mobile-list-item,
.puntos-body .puntos-mobile-card--history .puntos-mobile-history-item{
  padding:8px 10px;
}

.puntos-console-body .puntos-screen-board--wide{
  max-width:1120px;
  margin:0 auto;
  padding:14px;
}

.puntos-console-body .puntos-screen-title{
  font-size:1.22rem;
  margin-bottom:8px;
}

.puntos-console-body .puntos-console-window{
  border-radius:9px;
  box-shadow:0 14px 28px rgba(39,55,77,.11);
}

.puntos-shell--adminmock{
  max-width:1180px;
  padding-top:14px;
}

.puntos-shell--adminmock .puntos-shell-hero{
  display:none;
}

.puntos-shell--adminmock .puntos-console-grid{
  grid-template-columns:150px minmax(0, 1fr);
}

.puntos-shell--adminmock .puntos-sidebar{
  background:#fff;
  box-shadow:0 12px 22px rgba(39,55,77,.08);
}

.puntos-shell--adminmock .puntos-stage{
  gap:8px;
}

.puntos-shell--adminmock .puntos-admin-card{
  border-radius:9px;
}

@media (max-width:900px){
  .puntos-body .puntos-wrap--screen{
    padding:10px 8px 18px;
  }

  .puntos-body .puntos-screen-board{
    padding:10px;
  }

  .puntos-body .puntos-mobile-card{
    border-radius:16px;
  }

  .puntos-body .puntos-mobile-hero{
    grid-template-columns:minmax(0, 1fr) 108px;
    padding:10px 12px 7px;
  }

  .puntos-body .puntos-mobile-profile{
    min-height:auto;
  }

  .puntos-body .puntos-qr-image-phone{
    width:84px;
    height:84px;
  }

  .puntos-body .puntos-mobile-summary-row,
  .puntos-body .puntos-mobile-progress-list{
    padding-left:12px;
    padding-right:12px;
  }
}

@media (max-width:560px){
  .puntos-body .puntos-mobile-hero{
    grid-template-columns:1fr;
  }

  .puntos-body .puntos-mobile-qr-card{
    display:grid;
    grid-template-columns:84px minmax(0, 1fr);
    gap:9px;
  }

  .puntos-body .puntos-mobile-progress-shell{
    grid-template-columns:minmax(0, 1fr) 52px;
  }

  .puntos-body .puntos-reward-icon--feature{
    width:48px;
    height:48px;
  }

  .puntos-body .puntos-reward-icon--feature img{
    width:34px;
    height:34px;
  }
}

/* Fidelity pass 4.1: use the inner loyalty screen, not a phone/device frame. */
.puntos-body .puntos-wrap--screen{
  max-width:820px;
  padding:18px 12px 28px;
}

.puntos-body .puntos-wrap--screen::before,
.puntos-body .puntos-wrap--screen::after{
  opacity:.55;
}

.puntos-body .puntos-screen-board{
  max-width:720px;
  margin:0 auto;
  padding:0;
  border:0;
  border-radius:18px;
  background:#fffdfc;
  overflow:hidden;
  box-shadow:0 18px 42px rgba(39,55,77,.16);
}

.puntos-body .puntos-screen-board::before{
  z-index:2;
  pointer-events:none;
}

.puntos-body .puntos-screen-title{
  display:none;
}

.puntos-body .puntos-mobile-card{
  max-width:none;
  width:100%;
  margin:0;
  border:0;
  outline:0;
  border-radius:0;
  box-shadow:none;
  background:#fffdfc;
}

.puntos-body .puntos-mobile-topbar{
  min-height:48px;
  padding:8px 18px;
  border-radius:0;
}

.puntos-body .puntos-mobile-brand{
  gap:9px;
}

.puntos-body .puntos-mobile-brand strong{
  font-size:.76rem;
  letter-spacing:.01em;
}

.puntos-body .puntos-mobile-brand img{
  width:22px;
  height:22px;
}

.puntos-body .puntos-mobile-hero{
  grid-template-columns:minmax(0, 1fr) 136px;
  gap:12px;
  padding:12px 18px 8px;
}

.puntos-body .puntos-mobile-profile{
  min-height:100px;
  gap:10px;
}

.puntos-body .puntos-mobile-avatar{
  width:52px;
  height:52px;
  border-width:3px;
  font-size:1.2rem;
}

.puntos-body .puntos-mobile-profile-copy strong{
  font-size:1.12rem;
  line-height:1.05;
}

.puntos-body .puntos-mobile-profile-copy span{
  font-size:.74rem;
}

.puntos-body .puntos-mobile-profile-copy em{
  min-height:20px;
  padding:0 8px;
  font-size:.66rem;
}

.puntos-body .puntos-mobile-qr-card{
  padding:6px;
  border-radius:8px;
  box-shadow:0 8px 20px rgba(39,55,77,.08);
}

.puntos-body .puntos-qr-image-phone{
  width:104px;
  height:104px;
  margin-bottom:4px;
  padding:5px;
}

.puntos-body .puntos-mobile-qr-card span{
  font-size:.62rem;
}

.puntos-body .puntos-mobile-summary-row{
  padding:0 18px 8px;
  gap:8px;
}

.puntos-body .puntos-mobile-summary-row article{
  min-height:42px;
  border-radius:8px;
  padding:8px 10px;
}

.puntos-body .puntos-mobile-summary-row span{
  font-size:.68rem;
}

.puntos-body .puntos-mobile-summary-row strong{
  font-size:.98rem;
  line-height:1.05;
}

.puntos-body .puntos-mobile-summary-row article:first-child strong{
  color:#f44766;
  font-size:1.22rem;
}

.puntos-body .puntos-mobile-progress-list{
  padding:0 18px 10px;
  gap:4px;
}

.puntos-body .puntos-mobile-progress-item{
  padding:6px 8px;
  border-radius:8px;
  box-shadow:none;
}

.puntos-body .puntos-mobile-progress-shell{
  display:grid;
  grid-template-columns:46px minmax(0, 1fr);
  gap:8px;
  align-items:center;
}

.puntos-body .puntos-mobile-progress-visual{
  order:-1;
  justify-content:center;
}

.puntos-body .puntos-reward-icon--feature{
  width:42px;
  height:42px;
  border-radius:10px;
  box-shadow:none;
}

.puntos-body .puntos-reward-icon--feature img{
  width:31px;
  height:31px;
}

.puntos-body .puntos-mobile-progress-copy{
  gap:5px;
}

.puntos-body .puntos-mobile-progress-head{
  margin:0;
  gap:8px;
}

.puntos-body .puntos-mobile-progress-head strong{
  font-size:.74rem;
  line-height:1.15;
}

.puntos-body .puntos-mobile-progress-status{
  min-height:20px;
  padding:0 8px;
  font-size:.62rem;
}

.puntos-body .puntos-mobile-stamps{
  gap:7px;
  align-items:center;
}

.puntos-body .puntos-stamp--phone{
  width:19px !important;
  height:19px !important;
  border-width:1px !important;
}

.puntos-body .puntos-stamp--phone::before{
  inset:4px !important;
}

.puntos-body .puntos-mobile-nav{
  min-height:44px;
  margin-top:4px;
}

.puntos-body .puntos-mobile-nav a{
  min-height:44px;
  font-size:.66rem;
}

.puntos-body .puntos-screen-actions{
  max-width:720px;
  margin:0 auto;
  padding:8px 14px 12px;
  background:#fffdfc;
}

.puntos-body .puntos-loyalty-rule{
  min-height:22px;
  padding:0 12px;
  font-size:.66rem;
}

.puntos-body .puntos-screen-next{
  max-width:360px;
  padding:7px 9px;
}

.puntos-body .puntos-next-level-list{
  gap:4px;
  margin-top:6px;
}

.puntos-body .puntos-next-level-list div{
  min-height:24px;
  font-size:.64rem;
}

.puntos-body .puntos-mobile-card--history .puntos-mobile-history-summary{
  padding:12px 18px 5px;
}

.puntos-body .puntos-mobile-card--history .puntos-mobile-section{
  padding:6px 18px 0;
  gap:6px;
}

.puntos-body .puntos-mobile-card--history .puntos-mobile-section-title{
  min-height:24px;
  border-radius:5px;
  font-size:.7rem;
}

.puntos-body .puntos-mobile-card--history .puntos-mobile-list-item,
.puntos-body .puntos-mobile-card--history .puntos-mobile-history-item{
  border-radius:8px;
  padding:7px 9px;
}

@media (max-width:760px){
  .puntos-body .puntos-wrap--screen{
    max-width:100%;
    padding:8px;
  }

  .puntos-body .puntos-screen-board{
    max-width:100%;
    border-radius:14px;
  }

  .puntos-body .puntos-mobile-hero{
    grid-template-columns:minmax(0, 1fr) 102px;
    padding:10px 12px 7px;
  }

  .puntos-body .puntos-mobile-profile{
    min-height:auto;
  }

  .puntos-body .puntos-mobile-avatar{
    width:46px;
    height:46px;
  }

  .puntos-body .puntos-mobile-profile-copy strong{
    font-size:1rem;
  }

  .puntos-body .puntos-qr-image-phone{
    width:78px;
    height:78px;
  }

  .puntos-body .puntos-mobile-summary-row,
  .puntos-body .puntos-mobile-progress-list,
  .puntos-body .puntos-mobile-card--history .puntos-mobile-history-summary,
  .puntos-body .puntos-mobile-card--history .puntos-mobile-section{
    padding-left:12px;
    padding-right:12px;
  }
}

@media (max-width:460px){
  .puntos-body .puntos-mobile-topbar{
    min-height:42px;
    padding:7px 10px;
  }

  .puntos-body .puntos-mobile-hero{
    grid-template-columns:1fr;
  }

  .puntos-body .puntos-mobile-qr-card{
    grid-template-columns:76px minmax(0, 1fr);
  }

  .puntos-body .puntos-mobile-summary-row{
    grid-template-columns:1fr;
  }

  .puntos-body .puntos-mobile-progress-shell{
    grid-template-columns:40px minmax(0, 1fr);
  }

  .puntos-body .puntos-reward-icon--feature{
    width:36px;
    height:36px;
  }

  .puntos-body .puntos-reward-icon--feature img{
    width:26px;
    height:26px;
  }

  .puntos-body .puntos-stamp--phone{
    width:17px !important;
    height:17px !important;
  }
}

/* Fidelity pass 4.2: desktop readability bump. */
@media (min-width:761px){
  .puntos-body .puntos-mobile-brand strong{
    font-size:.95rem;
  }

  .puntos-body .puntos-mobile-profile-copy strong{
    font-size:1.3rem;
  }

  .puntos-body .puntos-mobile-profile-copy span{
    font-size:.9rem;
  }

  .puntos-body .puntos-mobile-profile-copy em{
    font-size:.82rem;
  }

  .puntos-body .puntos-mobile-qr-card span{
    font-size:.8rem;
  }

  .puntos-body .puntos-mobile-summary-row span{
    font-size:.86rem;
  }

  .puntos-body .puntos-mobile-summary-row strong{
    font-size:1.16rem;
  }

  .puntos-body .puntos-mobile-summary-row article:first-child strong{
    font-size:1.42rem;
  }

  .puntos-body .puntos-mobile-progress-head strong{
    font-size:.93rem;
  }

  .puntos-body .puntos-mobile-progress-status{
    font-size:.8rem;
  }

  .puntos-body .puntos-mobile-nav a{
    font-size:.85rem;
  }

  .puntos-body .puntos-loyalty-rule{
    font-size:.84rem;
  }

  .puntos-body .puntos-screen-next strong{
    font-size:1rem;
  }

  .puntos-body .puntos-screen-next span,
  .puntos-body .puntos-next-level-list div{
    font-size:.82rem;
  }

  .puntos-body .puntos-mobile-card--history .puntos-mobile-history-summary span,
  .puntos-body .puntos-mobile-list-main span,
  .puntos-body .puntos-mobile-history-item span{
    font-size:.88rem;
  }

  .puntos-body .puntos-mobile-card--history .puntos-mobile-history-summary strong,
  .puntos-body .puntos-mobile-list-main strong,
  .puntos-body .puntos-mobile-history-item strong{
    font-size:1rem;
  }

  .puntos-body .puntos-mobile-card--history .puntos-mobile-section-title,
  .puntos-body .pill-state,
  .puntos-body .puntos-mobile-history-item b{
    font-size:.84rem;
  }
}

/* Fidelity pass 4.3: bottom navigation icons like the mockup. */
.puntos-mobile-nav a{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  line-height:1.05;
}

.puntos-mobile-nav a::before{
  content:"";
  width:20px;
  height:20px;
  display:block;
  background-color:currentColor;
  opacity:.98;
  -webkit-mask:center / contain no-repeat;
  mask:center / contain no-repeat;
}

.puntos-mobile-nav a:nth-child(1)::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='16' height='18' rx='2'/%3E%3Cpath d='M8 7h8M8 11h8M8 15h4'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='16' height='18' rx='2'/%3E%3Cpath d='M8 7h8M8 11h8M8 15h4'/%3E%3C/svg%3E");
}

.puntos-mobile-nav a:nth-child(2)::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l2.7 5.5 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.8 1-6.1-4.4-4.3 6.1-.9L12 3z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l2.7 5.5 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.8 1-6.1-4.4-4.3 6.1-.9L12 3z'/%3E%3C/svg%3E");
}

.puntos-mobile-nav a:nth-child(3)::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 3-6.7'/%3E%3Cpath d='M3 4v6h6'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 3-6.7'/%3E%3Cpath d='M3 4v6h6'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}

.puntos-mobile-nav a:nth-child(4)::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M5 21a7 7 0 0 1 14 0'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M5 21a7 7 0 0 1 14 0'/%3E%3C/svg%3E");
}

@media (min-width:761px){
  .puntos-mobile-nav a::before{
    width:22px;
    height:22px;
  }
}

@media (max-width:460px){
  .puntos-mobile-nav a::before{
    width:17px;
    height:17px;
  }
}

/* Fidelity pass 4.7: final mobile stamp override, placed last to avoid older media overrides. */
@media (max-width:760px){
  .puntos-body .puntos-mobile-progress-list .puntos-mobile-stamps{
    gap:10px !important;
  }

  .puntos-body .puntos-mobile-progress-list .puntos-stamp.puntos-stamp--phone{
    width:34px !important;
    height:34px !important;
    min-width:34px !important;
    flex:0 0 34px !important;
    border-width:2px !important;
  }

  .puntos-body .puntos-mobile-progress-list .puntos-stamp.puntos-stamp--phone::before{
    inset:7px !important;
  }
}

@media (max-width:460px){
  .puntos-body .puntos-mobile-progress-list .puntos-mobile-stamps{
    gap:8px !important;
  }

  .puntos-body .puntos-mobile-progress-list .puntos-stamp.puntos-stamp--phone{
    width:30px !important;
    height:30px !important;
    min-width:30px !important;
    flex-basis:30px !important;
  }

  .puntos-body .puntos-mobile-progress-list .puntos-stamp.puntos-stamp--phone::before{
    inset:6px !important;
  }
}

/* Fidelity pass 4.8: make mobile stamps visibly larger on real iPhone widths. */
@media (max-width:760px){
  .puntos-body .puntos-mobile-progress-list .puntos-mobile-stamps{
    gap:8px !important;
  }

  .puntos-body .puntos-mobile-progress-list .puntos-stamp.puntos-stamp--phone{
    width:42px !important;
    height:42px !important;
    min-width:42px !important;
    flex:0 0 42px !important;
    border-width:2px !important;
  }

  .puntos-body .puntos-mobile-progress-list .puntos-stamp.puntos-stamp--phone::before{
    inset:5px !important;
  }
}

@media (max-width:460px){
  .puntos-body .puntos-mobile-progress-list .puntos-mobile-stamps{
    gap:6px !important;
  }

  .puntos-body .puntos-mobile-progress-list .puntos-stamp.puntos-stamp--phone{
    width:38px !important;
    height:38px !important;
    min-width:38px !important;
    flex-basis:38px !important;
  }

  .puntos-body .puntos-mobile-progress-list .puntos-stamp.puntos-stamp--phone::before{
    inset:5px !important;
  }
}

/* Fidelity pass 4.9: larger laptop stamps too. */
@media (min-width:761px){
  .puntos-body .puntos-mobile-progress-list .puntos-mobile-stamps{
    gap:10px !important;
  }

  .puntos-body .puntos-mobile-progress-list .puntos-stamp.puntos-stamp--phone{
    width:30px !important;
    height:30px !important;
    min-width:30px !important;
    flex:0 0 30px !important;
    border-width:2px !important;
  }

  .puntos-body .puntos-mobile-progress-list .puntos-stamp.puntos-stamp--phone::before{
    inset:5px !important;
  }
}

/* Fidelity pass 5.0: caja, dashboard and config match the approved mockup cards. */
.puntos-console-body{
  background:
    radial-gradient(circle at 4% 12%, #fff 0 4px, transparent 5px),
    radial-gradient(circle at 8% 20%, #fff 0 2px, transparent 3px),
    radial-gradient(circle at 92% 12%, #fff 0 4px, transparent 5px),
    radial-gradient(circle at 96% 22%, #fff 0 2px, transparent 3px),
    linear-gradient(180deg, #ff5b76 0%, #f44766 100%);
}

.puntos-console-body .puntos-wrap--screen{
  max-width:1040px;
  padding:18px 12px 28px;
}

.puntos-console-body .puntos-screen-board--wide{
  max-width:980px;
  padding:10px 14px 14px;
  border:3px solid #fff;
  border-radius:18px;
  background:#fffdfb;
  box-shadow:0 18px 34px rgba(111,42,58,.18);
}

.puntos-console-body .puntos-screen-title{
  display:flex;
  align-items:center;
  min-height:32px;
  margin:0 0 8px;
  color:#f39c12;
  font-size:1.15rem;
}

.puntos-console-body .puntos-screen-title::before{
  content:"4";
  width:28px;
  height:28px;
  margin-right:8px;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:#fff;
  background:#f5a623;
  font-size:.95rem;
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
}

.puntos-console-body .puntos-console-window{
  grid-template-columns:138px minmax(0, 1fr);
  border:1px solid rgba(243,156,18,.35);
  border-radius:8px;
  box-shadow:none;
  overflow:hidden;
}

.puntos-console-body .puntos-console-nav{
  padding:8px;
  gap:5px;
  background:#fffaf0;
  border-right:1px solid rgba(243,156,18,.18);
}

.puntos-console-body .puntos-console-brand{
  min-height:26px;
  margin:0 0 4px;
  padding:0 4px;
  border-radius:6px;
  background:#f5a623;
  color:#fff;
}

.puntos-console-body .puntos-console-brand img{
  width:16px;
  height:16px;
  filter:brightness(0) invert(1);
}

.puntos-console-body .puntos-console-brand strong{
  font-size:.68rem;
}

.puntos-console-body .puntos-console-nav a{
  min-height:30px;
  border:0;
  border-radius:6px;
  background:transparent;
  color:#5c6575;
  font-size:.72rem;
  box-shadow:none;
}

.puntos-console-body .puntos-console-nav a.is-active{
  background:#fff0cf;
  color:#d78306;
}

.puntos-console-body .puntos-console-main{
  padding:10px;
  gap:8px;
  background:#fff;
}

.puntos-console-body .puntos-console-topline{
  min-height:24px;
}

.puntos-console-body .puntos-console-topline strong{
  color:#30364a;
  font-size:.9rem;
}

.puntos-console-body .puntos-console-topline span{
  color:#30364a;
  font-size:.68rem;
  font-weight:800;
}

.puntos-console-body .puntos-console-search-card{
  grid-template-columns:minmax(0, 1fr) 180px;
  gap:10px;
}

.puntos-console-body .puntos-search-form--mock,
.puntos-console-body .puntos-console-qr-box{
  padding:8px;
  border-radius:7px;
  box-shadow:none;
  background:#fff;
  border:1px solid rgba(39,55,77,.1);
}

.puntos-console-body .puntos-search-form--mock label{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 76px;
  gap:8px;
  align-items:end;
  color:#30364a;
  font-size:.72rem;
}

.puntos-console-body .puntos-search-form--mock input{
  min-height:34px;
  border-radius:6px;
}

.puntos-console-body .puntos-search-actions{
  align-self:end;
}

.puntos-console-body .puntos-search-actions .puntos-btn{
  width:100%;
  min-height:34px;
  border-radius:7px;
  background:#f44766;
  font-size:.72rem;
}

.puntos-console-body .puntos-console-qr-box{
  min-height:94px;
  border-style:dashed;
  background:#fffdf8;
}

.puntos-console-body .puntos-console-qr-box .puntos-btn{
  min-height:30px;
  padding:0 12px;
  border-radius:6px;
  font-size:.68rem;
}

.puntos-console-body .puntos-console-customer-card{
  padding:10px;
  border-radius:8px;
  box-shadow:none;
  border:1px solid rgba(39,55,77,.09);
}

.puntos-console-body .puntos-console-customer-main{
  grid-template-columns:minmax(0, 1fr) 260px;
  margin-bottom:8px;
}

.puntos-console-body .puntos-console-customer-id .puntos-mobile-avatar{
  width:48px;
  height:48px;
  font-size:1.05rem;
}

.puntos-console-body .puntos-console-customer-id strong{
  color:#30364a;
  font-size:.95rem;
}

.puntos-console-body .puntos-console-customer-id span{
  font-size:.7rem;
}

.puntos-console-body .puntos-console-metrics{
  gap:6px;
}

.puntos-console-body .puntos-console-metrics article{
  padding:7px;
  border-radius:7px;
  background:#f9fbfd;
}

.puntos-console-body .puntos-console-highlight{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 8px;
  padding:8px 10px;
  border-radius:8px;
  background:#fff8e8;
  border-color:rgba(245,166,35,.34);
}

.puntos-console-body .puntos-console-highlight::before{
  content:"!";
  width:26px;
  height:26px;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:#fff;
  background:#f5a623;
  font-weight:900;
}

.puntos-console-body .puntos-console-highlight strong{
  font-size:.8rem;
}

.puntos-console-body .puntos-console-highlight span{
  margin:0;
  font-size:.66rem;
}

.puntos-console-body .puntos-console-progress{
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:6px;
}

.puntos-console-body .puntos-console-progress-item{
  min-height:62px;
  padding:7px;
  border-radius:7px;
}

.puntos-console-body .puntos-console-progress-copy strong{
  font-size:.7rem;
}

.puntos-console-body .puntos-stamp--mini{
  width:16px !important;
  height:16px !important;
}

.puntos-console-body .puntos-reward-icon--console{
  width:40px;
  height:40px;
  border-radius:10px;
}

.puntos-console-body .puntos-reward-icon--console img{
  width:28px;
  height:28px;
}

.puntos-console-body .puntos-inline-form--tight{
  grid-template-columns:1fr 120px 1fr 148px;
  gap:8px;
}

.puntos-console-body .puntos-inline-form--tight input{
  min-height:34px;
  border-radius:6px;
}

.puntos-console-body .puntos-inline-form--tight .puntos-btn{
  min-height:36px;
  border-radius:20px;
  background:#5fb940;
}

.puntos-shell--adminmock{
  max-width:1120px;
  padding:18px 12px 30px;
}

.puntos-shell--adminmock .puntos-console-grid{
  grid-template-columns:150px minmax(0, 1fr);
  gap:12px;
  padding:10px;
  border:3px solid #fff;
  border-radius:18px;
  background:#fffdfb;
  box-shadow:0 18px 34px rgba(111,42,58,.18);
}

.puntos-shell--adminmock .puntos-sidebar{
  padding:8px;
  border-radius:8px;
  background:#f7f2ff;
  border:1px solid rgba(126,87,194,.18);
  box-shadow:none;
}

.puntos-shell--adminmock .puntos-sidebar h2{
  min-height:28px;
  margin:-1px -1px 8px;
  padding:6px 8px;
  border-radius:7px;
  background:#7e57c2;
  color:#fff;
  font-size:.82rem;
}

.puntos-shell--adminmock .puntos-sidebar-nav{
  gap:5px;
}

.puntos-shell--adminmock .puntos-sidebar-link{
  min-height:30px;
  border-radius:6px;
  color:#5c6575;
  background:#fff;
  border:1px solid rgba(39,55,77,.06);
  font-size:.7rem;
}

.puntos-shell--adminmock .puntos-sidebar-link:hover,
.puntos-shell--adminmock .puntos-sidebar-link:focus,
.puntos-shell--adminmock .puntos-sidebar-link.is-active{
  background:#efe8ff;
  color:#6c42ae;
}

.puntos-shell--adminmock .puntos-sidebar-link.is-active{
  border-color:rgba(126,87,194,.28);
  box-shadow:inset 3px 0 0 #7e57c2, 0 8px 16px rgba(126,87,194,.08);
}

.puntos-shell--adminmock .puntos-sidebar-link--home{
  margin-top:6px;
  background:#fff7e6;
  color:#d78306;
}

.puntos-shell--adminmock .puntos-stage{
  gap:10px;
}

.puntos-shell--adminmock .puntos-admin-statusbar,
.puntos-shell--adminmock .puntos-admin-preview-bar{
  display:none;
}

.puntos-shell--adminmock .puntos-admin-card{
  padding:10px;
  border-radius:9px;
  box-shadow:none;
  border:1px solid rgba(39,55,77,.1);
}

.puntos-shell--adminmock .puntos-admin-card > .card-head{
  min-height:34px;
  margin:-10px -10px 10px;
  padding:7px 10px;
  color:#fff;
  border-radius:8px 8px 0 0;
}

.puntos-shell--adminmock #dashboard > .card-head{
  background:#7e57c2;
}

.puntos-shell--adminmock #configuracion > .card-head,
.puntos-shell--adminmock #niveles > .card-head{
  background:#009c9f;
}

.puntos-shell--adminmock #auditoria > .card-head{
  background:#f5a623;
}

.puntos-shell--adminmock .puntos-admin-card > .card-head h2{
  color:#fff;
  font-size:1rem;
}

.puntos-shell--adminmock .puntos-admin-card > .card-head .muted{
  color:rgba(255,255,255,.86);
  font-size:.66rem;
}

.puntos-shell--adminmock .puntos-admin-head-pill{
  min-height:24px;
  background:rgba(255,255,255,.18);
  color:#fff;
  border-color:rgba(255,255,255,.25);
  border-radius:6px;
}

.puntos-shell--adminmock .puntos-admin-head-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}

.puntos-shell--adminmock .puntos-admin-head-actions .puntos-btn{
  min-height:28px;
  padding:0 12px;
  border-radius:9px;
  font-size:.7rem;
}

.puntos-shell--adminmock .puntos-admin-grid-six{
  grid-template-columns:repeat(6, minmax(0, 1fr));
  gap:8px;
}

.puntos-shell--adminmock .puntos-kpi{
  min-height:86px;
  padding:10px 8px;
  border-radius:8px;
  border:1px solid rgba(39,55,77,.08);
  border-top:0;
  box-shadow:none;
}

.puntos-shell--adminmock .puntos-kpi strong{
  font-size:1.45rem;
}

.puntos-shell--adminmock .puntos-kpi span{
  font-size:.65rem;
  line-height:1.12;
}

.puntos-shell--adminmock .puntos-dashboard-grid{
  grid-template-columns:1.15fr .85fr;
  gap:8px;
}

.puntos-shell--adminmock .puntos-dashboard-panel{
  padding:9px;
  border-radius:8px;
  box-shadow:none;
  background:#fff;
}

.puntos-shell--adminmock .puntos-dashboard-panel-head h3{
  font-size:.84rem;
}

.puntos-shell--adminmock .puntos-dashboard-panel-head p{
  font-size:.62rem;
}

.puntos-shell--adminmock .table{
  font-size:.64rem;
}

.puntos-shell--adminmock .table th,
.puntos-shell--adminmock .table td{
  padding:5px 6px;
}

.puntos-shell--adminmock .puntos-mini-item{
  border-radius:6px;
  padding:6px 8px;
}

.puntos-shell--adminmock .puntos-config-glance{
  display:none;
}

.puntos-shell--adminmock .puntos-config-grid{
  grid-template-columns:1.05fr .95fr;
  gap:8px;
}

.puntos-shell--adminmock .puntos-form-grid{
  gap:7px;
}

.puntos-shell--adminmock .puntos-form label{
  font-size:.66rem;
}

.puntos-shell--adminmock .puntos-form input,
.puntos-shell--adminmock .puntos-form select{
  min-height:32px;
  border-radius:6px;
  font-size:.72rem;
}

.puntos-shell--adminmock .puntos-check{
  min-height:30px;
  border-radius:6px;
  font-size:.68rem;
}

.puntos-shell--adminmock .puntos-config-note,
.puntos-shell--adminmock .puntos-config-tile{
  padding:8px;
  border-radius:7px;
}

.puntos-shell--adminmock .puntos-config-tiles{
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:8px;
  margin-top:8px;
}

.puntos-shell--adminmock .puntos-level-editor{
  padding:10px;
  border-radius:8px;
}

.puntos-shell--adminmock .puntos-level-banner{
  padding:8px;
  border-radius:7px;
}

.puntos-shell--adminmock .puntos-level-rows-stack{
  gap:8px;
}

.puntos-shell--adminmock .puntos-reward-item-wide{
  padding:8px;
  border-radius:7px;
}

.puntos-shell--adminmock .puntos-row-form-grid{
  grid-template-columns:70px 110px minmax(0, 1fr) minmax(0, 1fr) 86px 86px 120px;
  gap:6px;
}

@media (max-width:980px){
  .puntos-console-body .puntos-console-search-card,
  .puntos-console-body .puntos-console-customer-main,
  .puntos-console-body .puntos-inline-form--tight,
  .puntos-shell--adminmock .puntos-console-grid,
  .puntos-shell--adminmock .puntos-dashboard-grid,
  .puntos-shell--adminmock .puntos-config-grid{
    grid-template-columns:1fr;
  }

  .puntos-console-body .puntos-console-progress,
  .puntos-shell--adminmock .puntos-admin-grid-six,
  .puntos-shell--adminmock .puntos-config-tiles{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .puntos-shell--adminmock .puntos-row-form-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width:620px){
  .puntos-console-body .puntos-console-window{
    grid-template-columns:1fr;
  }

  .puntos-console-body .puntos-console-nav,
  .puntos-shell--adminmock .puntos-sidebar-nav{
    display:flex;
    overflow-x:auto;
  }

  .puntos-console-body .puntos-console-progress,
  .puntos-shell--adminmock .puntos-admin-grid-six,
  .puntos-shell--adminmock .puntos-config-tiles{
    grid-template-columns:1fr;
  }
}

/* Fidelity pass 5.1: admin sidebar tabs and compact reward configuration. */
.puntos-shell--adminmock{
  max-width:1240px;
}

.puntos-shell--adminmock .puntos-console-grid{
  grid-template-columns:178px minmax(0, 1fr);
}

.puntos-shell--adminmock .puntos-sidebar-nav{
  display:grid;
  gap:6px;
}

.puntos-shell--adminmock .puntos-sidebar-link{
  position:relative;
  padding-left:24px;
  font-weight:900;
}

.puntos-shell--adminmock .puntos-sidebar-link::before{
  content:"";
  position:absolute;
  left:9px;
  top:50%;
  width:8px;
  height:8px;
  transform:translateY(-50%);
  border-radius:50%;
  background:#ff7c62;
}

.puntos-shell--adminmock .puntos-stage > .puntos-admin-card{
  display:none;
}

.puntos-shell--adminmock .puntos-stage > #dashboard{
  display:block;
}

.puntos-shell--adminmock .puntos-stage > .puntos-admin-card:target{
  display:block;
}

.puntos-shell--adminmock .puntos-stage:has(.puntos-admin-card:target) > #dashboard:not(:target){
  display:none;
}

.puntos-admin-section-slim .puntos-admin-grid-six{
  grid-template-columns:repeat(6, minmax(0, 1fr));
}

.puntos-shell--adminmock #clientes > .card-head,
.puntos-shell--adminmock #tarjetas > .card-head,
.puntos-shell--adminmock #sellos > .card-head,
.puntos-shell--adminmock #canjes > .card-head,
.puntos-shell--adminmock #reportes > .card-head,
.puntos-shell--adminmock #usuarios > .card-head{
  background:#7e57c2;
}

.puntos-shell--adminmock #niveles > .card-head{
  background:#009c9f;
}

.puntos-shell--adminmock #niveles .puntos-level-editor{
  background:#fff;
  border:1px solid rgba(0,156,159,.12);
}

.puntos-shell--adminmock #niveles .puntos-level-banner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  background:#fff8fb;
  border:1px solid rgba(239,71,102,.1);
}

.puntos-shell--adminmock #niveles .puntos-level-settings{
  grid-template-columns:80px minmax(160px, 1fr) 120px minmax(160px, 1fr);
  align-items:end;
  padding:10px;
  border-radius:8px;
  background:#fff;
  border:1px solid rgba(39,55,77,.08);
}

.puntos-shell--adminmock #niveles .puntos-level-settings .puntos-field-span{
  grid-column:span 2;
}

.puntos-shell--adminmock .puntos-level-rows-stack{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  overflow:visible;
}

.puntos-shell--adminmock .puntos-reward-item-wide{
  display:grid;
  grid-template-columns:210px minmax(0, 1fr) 160px;
  gap:10px;
  align-items:center;
  padding:10px;
  overflow:hidden;
}

.puntos-shell--adminmock .puntos-row-form-grid{
  display:grid;
  grid-template-columns:64px 104px minmax(170px, 1fr) 160px;
  gap:8px;
  min-width:0;
}

.puntos-shell--adminmock .puntos-row-form-grid label{
  min-width:0;
}

.puntos-shell--adminmock .puntos-row-form-grid input,
.puntos-shell--adminmock .puntos-row-form-grid select{
  width:100%;
  min-width:0;
}

.puntos-shell--adminmock .puntos-reward-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  min-width:0;
}

.puntos-switch{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:#2d3748;
  font-size:.72rem;
  font-weight:900;
  white-space:nowrap;
}

.puntos-switch input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.puntos-switch span{
  position:relative;
  width:34px;
  height:18px;
  border-radius:999px;
  background:#d9e1ea;
  transition:.18s ease;
}

.puntos-switch span::after{
  content:"";
  position:absolute;
  top:3px;
  left:3px;
  width:12px;
  height:12px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 1px 4px rgba(0,0,0,.18);
  transition:.18s ease;
}

.puntos-switch input:checked + span{
  background:#25b864;
}

.puntos-switch input:checked + span::after{
  transform:translateX(16px);
}

.puntos-shell--adminmock .puntos-reward-actions .puntos-btn{
  min-height:34px;
  min-width:96px;
  padding:0 12px;
  border-radius:8px;
  font-size:.7rem;
}

.puntos-shell--adminmock .puntos-reward-item-new{
  background:#fbfdff;
  border-style:dashed;
}

@media (max-width:1100px){
  .puntos-shell--adminmock .puntos-reward-item-wide,
  .puntos-shell--adminmock #niveles .puntos-level-settings{
    grid-template-columns:1fr;
  }

  .puntos-shell--adminmock .puntos-row-form-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width:760px){
  .puntos-shell--adminmock .puntos-console-grid{
    grid-template-columns:1fr;
  }

  .puntos-shell--adminmock .puntos-sidebar-nav{
    display:flex;
    overflow-x:auto;
  }

  .puntos-shell--adminmock .puntos-sidebar-link{
    min-width:max-content;
  }

  .puntos-admin-section-slim .puntos-admin-grid-six,
  .puntos-shell--adminmock .puntos-row-form-grid{
    grid-template-columns:1fr;
  }
}

/* Final loyalty UX pass: cashier reward redemption and admin navigation states. */
.puntos-console-body .puntos-console-nav a[href="/"]{
  margin-top:4px;
  color:#d78306;
  background:#fff0cf;
}

.puntos-console-body .puntos-console-nav a[href="#canjear-premio"]{
  color:#198754;
  background:#effaf3;
}

.puntos-console-body .puntos-screen-title::before{
  content:none !important;
  display:none !important;
}

.puntos-console-body .puntos-console-redeem-panel{
  border-color:rgba(86,185,122,.34);
  background:linear-gradient(180deg, #f2fff7 0%, #fffaf2 100%);
}

.puntos-console-body .puntos-console-redeem-item{
  grid-template-columns:42px minmax(150px, 1fr) minmax(112px, .75fr) minmax(128px, .9fr) auto;
  align-items:center;
}

.puntos-console-body .puntos-console-redeem-item .puntos-reward-icon{
  width:42px;
  height:42px;
}

.puntos-console-body .puntos-console-redeem-item .puntos-btn{
  background:linear-gradient(180deg, #62c64a 0%, #3eab35 100%);
  color:#fff;
}

.puntos-shell--adminmock .puntos-sidebar-link.is-active::before{
  background:#7e57c2;
}

@media (max-width:980px){
  .puntos-console-body .puntos-console-redeem-item{
    grid-template-columns:42px minmax(150px, 1fr) minmax(150px, 1fr);
  }

  .puntos-console-body .puntos-console-redeem-item label:nth-of-type(2),
  .puntos-console-body .puntos-console-redeem-item .puntos-btn{
    grid-column:1 / -1;
  }
}

@media (max-width:760px){
  .puntos-console-body .puntos-console-redeem-item{
    grid-template-columns:42px 1fr;
    align-items:start;
  }

  .puntos-console-body .puntos-console-redeem-item label,
  .puntos-console-body .puntos-console-redeem-item .puntos-btn{
    grid-column:1 / -1;
  }

  .puntos-console-body .puntos-console-nav a[href="/"]{
    margin-top:0;
  }
}

/* Cashier layout pass 5.8: use the desktop canvas better and make stamps readable. */
.puntos-console-body .puntos-wrap--screen{
  max-width:min(1460px, calc(100vw - 52px));
  width:100%;
  padding:24px 18px 42px;
}

.puntos-console-body .puntos-screen-board--wide{
  max-width:none;
  width:100%;
  padding:18px;
  border-radius:20px;
}

.puntos-console-body .puntos-screen-title{
  min-height:36px;
  margin-bottom:12px;
  font-size:1.35rem;
}

.puntos-console-body .puntos-console-window{
  grid-template-columns:146px minmax(0, 1fr);
  border-radius:12px;
}

.puntos-console-body .puntos-console-nav{
  padding:12px 10px;
  gap:8px;
}

.puntos-console-body .puntos-console-brand{
  min-height:38px;
  padding:0 8px;
  border-radius:9px;
}

.puntos-console-body .puntos-console-brand img{
  width:20px;
  height:20px;
}

.puntos-console-body .puntos-console-brand strong{
  font-size:.78rem;
  line-height:1.05;
}

.puntos-console-body .puntos-console-nav a{
  min-height:38px;
  padding:0 10px;
  border-radius:9px;
  font-size:.82rem;
}

.puntos-console-body .puntos-console-main{
  padding:16px 18px 18px;
  gap:13px;
}

.puntos-console-body .puntos-console-topline{
  min-height:30px;
}

.puntos-console-body .puntos-console-topline strong{
  font-size:1.05rem;
}

.puntos-console-body .puntos-console-topline span{
  font-size:.78rem;
}

.puntos-console-body .puntos-console-search-card{
  grid-template-columns:minmax(0, 1fr) 240px;
  gap:16px;
}

.puntos-console-body .puntos-search-form--mock,
.puntos-console-body .puntos-console-qr-box{
  padding:12px;
  border-radius:12px;
}

.puntos-console-body .puntos-search-form--mock label{
  grid-template-columns:minmax(0, 1fr) 96px;
  gap:12px;
  font-size:.84rem;
}

.puntos-console-body .puntos-search-form--mock input{
  min-height:42px;
  border-radius:10px;
  font-size:1rem;
}

.puntos-console-body .puntos-search-actions .puntos-btn{
  min-height:42px;
  border-radius:10px;
  font-size:.86rem;
}

.puntos-console-body .puntos-console-qr-box{
  min-height:118px;
  justify-content:center;
}

.puntos-console-body .puntos-console-qr-box .puntos-btn{
  min-height:34px;
  border-radius:9px;
  font-size:.78rem;
}

.puntos-console-body .puntos-console-customer-card{
  padding:16px;
  border-radius:13px;
}

.puntos-console-body .puntos-console-customer-main{
  grid-template-columns:minmax(300px, 1fr) minmax(280px, 340px);
  gap:18px;
  margin-bottom:12px;
}

.puntos-console-body .puntos-console-customer-id{
  gap:13px;
}

.puntos-console-body .puntos-console-customer-id .puntos-mobile-avatar{
  width:58px;
  height:58px;
  font-size:1.25rem;
}

.puntos-console-body .puntos-console-customer-id strong{
  font-size:1.12rem;
}

.puntos-console-body .puntos-console-customer-id span{
  font-size:.82rem;
}

.puntos-console-body .puntos-console-metrics{
  gap:9px;
}

.puntos-console-body .puntos-console-metrics article{
  min-height:70px;
  padding:10px;
  border-radius:11px;
}

.puntos-console-body .puntos-console-metrics article strong{
  font-size:1.18rem;
}

.puntos-console-body .puntos-console-metrics article span{
  font-size:.75rem;
}

.puntos-console-body .puntos-console-highlight{
  gap:12px;
  margin-bottom:12px;
  padding:11px 13px;
  border-radius:11px;
}

.puntos-console-body .puntos-console-highlight::before{
  width:34px;
  height:34px;
  font-size:1.15rem;
}

.puntos-console-body .puntos-console-highlight strong{
  font-size:.94rem;
}

.puntos-console-body .puntos-console-highlight span{
  font-size:.78rem;
}

.puntos-console-body .puntos-console-progress{
  grid-template-columns:repeat(3, minmax(245px, 1fr));
  gap:12px;
}

.puntos-console-body .puntos-console-progress-item{
  min-height:96px;
  padding:12px;
  border-radius:13px;
  align-items:center;
  box-shadow:0 10px 22px rgba(239,71,102,.06);
}

.puntos-console-body .puntos-console-progress-copy{
  gap:9px;
}

.puntos-console-body .puntos-console-progress-copy strong{
  font-size:.9rem;
  line-height:1.22;
}

.puntos-console-body .puntos-mobile-stamps{
  gap:8px;
  align-items:center;
}

.puntos-console-body .puntos-stamp--mini{
  width:25px !important;
  height:25px !important;
  min-width:25px !important;
}

.puntos-console-body .puntos-stamp--mini::before{
  inset:4px !important;
}

.puntos-console-body .puntos-reward-icon--console{
  width:62px;
  height:62px;
  border-radius:15px;
}

.puntos-console-body .puntos-reward-icon--console img{
  width:42px;
  height:42px;
}

.puntos-console-body .puntos-console-actions{
  padding-top:2px;
}

.puntos-console-body .puntos-inline-form--tight{
  grid-template-columns:minmax(190px, 1fr) 150px minmax(220px, 1fr) 170px;
  gap:12px;
  align-items:end;
}

.puntos-console-body .puntos-inline-form--tight label{
  font-size:.82rem;
}

.puntos-console-body .puntos-inline-form--tight input{
  min-height:42px;
  border-radius:10px;
  font-size:1rem;
}

.puntos-console-body .puntos-inline-form--tight .puntos-btn{
  min-height:50px;
  border-radius:24px;
  font-size:1.08rem;
  line-height:1.05;
}

.puntos-console-body .puntos-console-empty-state{
  min-height:110px;
  border-radius:12px;
  font-size:1.05rem;
}

@media (min-width:1500px){
  .puntos-console-body .puntos-wrap--screen{
    max-width:1520px;
  }

  .puntos-console-body .puntos-console-progress{
    grid-template-columns:repeat(3, minmax(280px, 1fr));
  }
}

@media (max-width:1120px){
  .puntos-console-body .puntos-wrap--screen{
    max-width:calc(100vw - 28px);
    padding:16px 10px 30px;
  }

  .puntos-console-body .puntos-console-search-card,
  .puntos-console-body .puntos-console-customer-main,
  .puntos-console-body .puntos-inline-form--tight{
    grid-template-columns:1fr;
  }

  .puntos-console-body .puntos-console-progress{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width:760px){
  .puntos-console-body .puntos-wrap--screen{
    max-width:100%;
    padding:10px;
  }

  .puntos-console-body .puntos-screen-board--wide{
    padding:12px;
    border-radius:18px;
  }

  .puntos-console-body .puntos-console-window{
    grid-template-columns:1fr;
  }

  .puntos-console-body .puntos-console-nav{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    border-right:0;
    border-bottom:1px solid rgba(243,156,18,.18);
  }

  .puntos-console-body .puntos-console-brand{
    grid-column:1 / -1;
  }

  .puntos-console-body .puntos-console-main{
    padding:12px;
  }

  .puntos-console-body .puntos-search-form--mock label{
    grid-template-columns:1fr;
  }

  .puntos-console-body .puntos-console-progress{
    grid-template-columns:1fr;
  }

  .puntos-console-body .puntos-stamp--mini{
    width:28px !important;
    height:28px !important;
    min-width:28px !important;
  }

  .puntos-console-body .puntos-reward-icon--console{
    width:60px;
    height:60px;
  }
}

/* Public card cycle states 5.9: active card by default, historical detail by click. */
.puntos-mobile-pending-strip{
  margin:10px 16px;
  padding:10px;
  border:1px solid rgba(245,166,35,.28);
  border-radius:14px;
  background:linear-gradient(180deg, #fffaf0 0%, #fff7fb 100%);
}

.puntos-mobile-pending-strip > strong{
  display:block;
  margin-bottom:8px;
  color:#ef4766;
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
  font-size:1.05rem;
}

.puntos-mobile-pending-strip article{
  display:grid;
  grid-template-columns:48px minmax(0, 1fr);
  gap:10px;
  align-items:center;
  padding:8px;
  border-radius:12px;
  background:#fff;
  border:1px solid rgba(239,71,102,.12);
}

.puntos-mobile-pending-strip b{
  display:block;
  color:#30364a;
}

.puntos-mobile-pending-strip small{
  display:block;
  color:#6b778d;
  font-size:.82rem;
}

.puntos-mobile-progress-status.is-pending{
  color:#b57400;
  background:#fff1c8;
}

.puntos-mobile-progress-status.is-redeemed{
  color:#1f9d55;
  background:#daf7e5;
}

.puntos-mobile-history-link{
  color:inherit;
  text-decoration:none;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.puntos-mobile-history-link:hover{
  transform:translateY(-1px);
  border-color:rgba(0,156,159,.28);
  box-shadow:0 10px 24px rgba(39,55,77,.08);
}

.puntos-mobile-history-link::after{
  content:"Ver detalle";
  align-self:end;
  justify-self:end;
  padding:4px 9px;
  border-radius:999px;
  color:#008c93;
  background:#eafcff;
  font-size:.72rem;
  font-weight:900;
}

@media (max-width:760px){
  .puntos-mobile-pending-strip{
    margin:8px 10px;
  }
}

/* Cashier customer maintenance 6.0. */
.puntos-console-body .puntos-console-nav a[href="#actualizar-cliente"]{
  color:#008c93;
  background:#eafcff;
}

.puntos-console-update-card{
  display:grid;
  gap:12px;
  padding:14px;
  border:1px solid rgba(0,156,159,.2);
  border-radius:13px;
  background:linear-gradient(180deg, #f3feff 0%, #fffafb 100%);
}

.puntos-console-update-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
}

.puntos-console-update-head strong{
  display:block;
  color:#008c93;
  font-family:"Baloo 2","Trebuchet MS",sans-serif;
  font-size:1.05rem;
}

.puntos-console-update-head span{
  display:block;
  max-width:760px;
  color:#667085;
  font-size:.82rem;
}

.puntos-console-update-search{
  display:grid;
  grid-template-columns:minmax(240px, 1fr) 170px;
  gap:12px;
  align-items:end;
}

.puntos-console-update-search label,
.puntos-customer-update-form label{
  display:grid;
  gap:5px;
  color:#27374d;
  font-size:.82rem;
  font-weight:900;
}

.puntos-console-update-search input,
.puntos-customer-update-form input{
  min-height:40px;
  padding:0 12px;
  border:1px solid rgba(239,71,102,.22);
  border-radius:10px;
  background:#fff;
  color:#27374d;
}

.puntos-console-update-search .puntos-btn{
  min-height:40px;
  border-radius:10px;
  background:#14a6b8;
  color:#fff;
}

.puntos-customer-update-form{
  display:grid;
  grid-template-columns:1.2fr 1fr 1.2fr .8fr 150px;
  gap:10px;
  align-items:end;
}

.puntos-customer-update-summary{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr .8fr;
  gap:10px;
}

.puntos-customer-update-summary article{
  padding:10px 12px;
  border:1px solid rgba(0,156,159,.14);
  border-radius:12px;
  background:#fff;
}

.puntos-customer-update-summary span{
  display:block;
  color:#6b778d;
  font-size:.72rem;
  font-weight:800;
}

.puntos-customer-update-summary strong{
  display:block;
  margin-top:2px;
  color:#27374d;
  font-size:.9rem;
}

.puntos-customer-update-form .puntos-btn{
  min-height:42px;
  border-radius:12px;
}

@media (max-width:1120px){
  .puntos-console-update-search,
  .puntos-customer-update-summary,
  .puntos-customer-update-form{
    grid-template-columns:1fr;
  }
}

@media (max-width:760px){
  .puntos-console-body .puntos-console-nav a[href*="view=stamps"],
  .puntos-console-body .puntos-console-nav a[href*="view=update"]{
    min-height:42px;
    justify-content:center;
    text-align:center;
  }

  .puntos-console-update-card{
    padding:12px;
    border-radius:14px;
  }

  .puntos-console-update-head span{
    font-size:.78rem;
  }

  .puntos-console-update-search input,
  .puntos-customer-update-form input{
    min-height:44px;
    font-size:1rem;
  }

  .puntos-customer-update-summary{
    gap:8px;
  }

  .puntos-customer-update-summary article{
    padding:9px 10px;
  }
}
.puntos-body .puntos-mobile-hero{
  grid-template-columns:minmax(0, 1fr) 168px;
  align-items:start;
}

.puntos-body .puntos-mobile-qr-card{
  justify-self:end;
  width:156px;
  min-height:184px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px;
  text-align:center;
}

.puntos-body .puntos-qr-image-phone{
  width:132px;
  height:132px;
  margin:0;
  padding:6px;
}

.puntos-body .puntos-mobile-qr-card span{
  max-width:128px;
  font-size:.76rem;
  line-height:1.15;
}

.puntos-body .puntos-mobile-progress-shell{
  grid-template-columns:minmax(0, 1fr) 88px;
  gap:12px;
}

.puntos-body .puntos-mobile-progress-visual{
  order:0;
  justify-content:flex-end;
}

.puntos-body .puntos-reward-icon--feature{
  width:76px;
  height:76px;
  border-radius:18px;
}

.puntos-body .puntos-reward-icon--feature img{
  width:54px;
  height:54px;
}

.puntos-body .puntos-mobile-progress-head{
  justify-content:flex-start;
  align-items:flex-start;
}

.puntos-body .puntos-mobile-progress-head strong{
  font-size:.92rem;
  line-height:1.18;
  text-align:left;
}

.puntos-body .puntos-mobile-progress-status{
  align-self:flex-start;
  white-space:nowrap;
}

@media (max-width:760px){
  .puntos-body .puntos-mobile-hero{
    grid-template-columns:minmax(0, 1fr) 150px;
    gap:10px;
  }

  .puntos-body .puntos-mobile-qr-card{
    width:142px;
    min-height:168px;
  }

  .puntos-body .puntos-qr-image-phone{
    width:122px;
    height:122px;
  }

  .puntos-body .puntos-mobile-progress-shell{
    grid-template-columns:minmax(0, 1fr) 82px;
  }

  .puntos-body .puntos-reward-icon--feature{
    width:72px;
    height:72px;
  }

  .puntos-body .puntos-reward-icon--feature img{
    width:52px;
    height:52px;
  }
}

@media (max-width:460px){
  .puntos-body .puntos-mobile-hero{
    grid-template-columns:minmax(0, 1fr) 138px;
    align-items:start;
  }

  .puntos-body .puntos-mobile-profile{
    align-items:flex-start;
  }

  .puntos-body .puntos-mobile-qr-card{
    grid-template-columns:none;
    width:132px;
    min-height:158px;
  }

  .puntos-body .puntos-qr-image-phone{
    width:114px;
    height:114px;
  }

  .puntos-body .puntos-mobile-progress-shell{
    grid-template-columns:minmax(0, 1fr) 76px;
    gap:9px;
  }

  .puntos-body .puntos-reward-icon--feature{
    width:68px;
    height:68px;
    border-radius:16px;
  }

  .puntos-body .puntos-reward-icon--feature img{
    width:49px;
    height:49px;
  }

  .puntos-body .puntos-mobile-progress-head strong{
    font-size:.84rem;
  }
}
