@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800&family=Titan+One&display=swap");:root{--mm-teal:#4a8b8b;--mm-teal-dark:#3a7a7a;--mm-teal-deep:#264653;--mm-yellow:gold;--mm-yellow-light:#fff8e7;--mm-cream:#f5e6d3;--mm-white:#fff;--mm-black:#000;--mm-red:#e63946;--mm-green-check:#22c55e;--mm-green-deep:#15803d;--bg:var(--mm-cream);--bg-card:var(--mm-white);--bg-accent:var(--mm-yellow);--bg-primary:var(--mm-teal);--bg-step:var(--mm-yellow-light);--fg:var(--mm-teal-deep);--fg-muted:#5b6b73;--fg-on-primary:#fff;--fg-on-accent:var(--mm-teal-deep);--border:var(--mm-black);--border-soft:rgba(0,0,0,.15);--font-display:"Titan One","Fredoka One",cursive;--font-body:"Nunito",system-ui,-apple-system,sans-serif;--fs-hero:clamp(3rem,6vw,5rem);--fs-h1:clamp(2.5rem,5vw,4.5rem);--fs-h2:clamp(2rem,4vw,3rem);--fs-h3:1.75rem;--fs-h4:1.25rem;--fs-body-lg:1.125rem;--fs-body:1rem;--fs-small:0.875rem;--fs-micro:0.75rem;--lh-tight:1.05;--lh-normal:1.45;--lh-loose:1.6;--r-xs:6px;--r-sm:10px;--r-md:14px;--r-lg:18px;--r-xl:24px;--r-2xl:32px;--r-pill:9999px;--sh-2:2px 2px 0 0 var(--mm-black);--sh-4:4px 4px 0 0 var(--mm-black);--sh-6:6px 6px 0 0 var(--mm-black);--sh-8:8px 8px 0 0 var(--mm-black);--sh-12:12px 12px 0 0 var(--mm-black);--tsh-2:2px 2px 0 #000;--tsh-4:4px 4px 0 #000;--tsh-6:6px 6px 0 #000;--bw-1:1px;--bw-2:2px;--bw-3:3px;--bw-4:4px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-16:64px;--sp-20:80px;--ease-snap:cubic-bezier(.2,.8,.2,1.2);--ease-out:cubic-bezier(.2,.8,.2,1);--dur-fast:150ms;--dur-med:300ms;--dur-slow:500ms}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-normal);-webkit-font-smoothing:antialiased;min-height:100%}h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;line-height:var(--lh-tight);letter-spacing:.01em;margin:0}h1{font-size:var(--fs-h1)}h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-h3)}h4{font-size:var(--fs-h4)}p{font-size:var(--fs-body);line-height:var(--lh-loose);margin:0}code,kbd,pre{font-family:ui-monospace,SF Mono,Menlo,monospace}.mm-display{font-family:var(--font-display);line-height:var(--lh-tight)}.mm-body{font-family:var(--font-body)}.mm-text-shadow-hard{text-shadow:var(--tsh-4);color:var(--mm-yellow)}.mm-highlighter{background:var(--mm-yellow);padding:0 .15em;-webkit-box-decoration-break:clone;box-decoration-break:clone}.mm-sticker-card{background:var(--bg-card);color:var(--fg);border:var(--bw-3) solid var(--border);border-radius:var(--r-xl);box-shadow:var(--sh-6);padding:var(--sp-6)}.mm-sticker-card--rot-left{transform:rotate(-1deg)}.mm-sticker-card--rot-right{transform:rotate(1deg)}.mm-sticker-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-family:var(--font-display);font-weight:400;text-transform:uppercase;letter-spacing:.03em;padding:16px 28px;border:var(--bw-3) solid var(--border);border-radius:var(--r-md);box-shadow:var(--sh-6);background:var(--mm-yellow);color:var(--fg);cursor:pointer;font-size:1.25rem;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.mm-sticker-btn:hover:not(:disabled){transform:translate(-2px,-2px);box-shadow:var(--sh-8)}.mm-sticker-btn:active:not(:disabled){transform:translate(4px,4px);box-shadow:none}.mm-sticker-btn:disabled{opacity:.6;cursor:not-allowed}.mm-sticker-btn--secondary{background:var(--mm-teal);color:var(--fg-on-primary)}.mm-sticker-btn--outline{background:transparent}.mm-sticker-btn--lg{font-size:1.5rem;padding:22px 40px}.mm-pill{display:inline-block;padding:6px 14px;font-weight:700;font-family:var(--font-body);background:var(--mm-yellow);color:var(--fg);border:var(--bw-2) solid var(--border);border-radius:var(--r-pill);box-shadow:var(--sh-2);transform:rotate(-2deg)}.claim-shell{min-height:100vh;display:grid;place-items:center;padding:var(--sp-6) var(--sp-4) var(--sp-12);position:relative;overflow:hidden}.claim-shell:after,.claim-shell:before{content:"";position:absolute;border-radius:50%;z-index:0;pointer-events:none}.claim-shell:before{width:360px;height:360px;background:var(--mm-yellow);top:-120px;left:-120px;opacity:.55}.claim-shell:after{width:420px;height:420px;background:var(--mm-teal);bottom:-160px;right:-160px;opacity:.35}.claim-inner{position:relative;z-index:1;width:100%;max-width:520px}.claim-brand{display:flex;align-items:center;gap:var(--sp-3);justify-content:center;margin-bottom:var(--sp-6)}.claim-brand img{width:64px;height:64px;display:block}.claim-brand .name{font-family:var(--font-display);font-size:1.5rem;letter-spacing:.04em;text-transform:uppercase}.claim-card{background:var(--bg-card);border:var(--bw-4) solid var(--border);border-radius:var(--r-2xl);box-shadow:var(--sh-12);padding:var(--sp-8) var(--sp-6);text-align:center;transform:rotate(-.6deg)}.claim-card--redeemed{background:var(--mm-green-check);color:var(--mm-white);transform:rotate(.6deg)}.claim-card--error{background:var(--mm-white);transform:rotate(.5deg)}.claim-card--locked{background:var(--mm-cream);color:var(--fg);transform:rotate(.4deg);position:relative;overflow:hidden}.claim-card--locked:before{content:"STAMPED";position:absolute;inset:0;display:grid;place-items:center;font-family:var(--font-display);font-size:clamp(5rem,18vw,9rem);letter-spacing:.06em;text-transform:uppercase;color:rgba(38,70,83,.07);transform:rotate(-12deg);pointer-events:none;z-index:0;white-space:nowrap}.claim-card--locked>*{position:relative;z-index:1}.locked-stamp{width:150px;height:150px;margin:0 auto var(--sp-4);border:4px solid var(--mm-red);border-radius:50%;display:grid;place-items:center;position:relative;transform:rotate(-12deg);color:var(--mm-red);font-family:var(--font-display);background:transparent;opacity:.92;grid-gap:2px;gap:2px;padding:0 6px}.locked-stamp:before{content:"";position:absolute;inset:6px;border:2px solid var(--mm-red);border-radius:50%;pointer-events:none}.locked-stamp-check{font-size:2.4rem;line-height:1}.locked-stamp-text{font-size:1.35rem;letter-spacing:.18em;line-height:1}.redeemed-mega--locked{color:var(--fg);text-shadow:var(--tsh-4);-webkit-text-stroke:0}.locked-badge{display:inline-block;background:var(--mm-black);color:var(--mm-yellow);font-family:var(--font-display);font-size:.95rem;letter-spacing:.08em;text-transform:uppercase;padding:8px 18px;border:var(--bw-2) solid var(--border);border-radius:var(--r-pill);box-shadow:var(--sh-2);margin:var(--sp-3) auto var(--sp-2);transform:rotate(-2deg)}.redeemed-meta--locked{background:var(--mm-yellow-light);color:var(--fg);border:var(--bw-2) solid var(--border);box-shadow:var(--sh-2)}.redeemed-meta--locked .ago{color:var(--fg-muted);font-size:1rem;font-family:var(--font-body);font-weight:700;margin-top:6px}.cashier-action{margin-top:var(--sp-6);padding-top:var(--sp-4);border-top:2px dashed hsla(0,0%,100%,.4)}.cashier-action-label{font-family:var(--font-display);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mm-white);opacity:.85;margin-bottom:var(--sp-2)}.cashier-btn{width:100%;background:var(--mm-black);color:var(--mm-yellow);border-color:var(--mm-white)}.cashier-btn:hover:not(:disabled){background:var(--mm-teal-deep)}.claim-eyebrow{display:inline-block;background:var(--mm-teal);color:var(--mm-white);font-size:.9rem;letter-spacing:.08em;padding:6px 14px;border:var(--bw-2) solid var(--border);border-radius:var(--r-pill);box-shadow:var(--sh-2);transform:rotate(-2deg)}.claim-eyebrow,.claim-title{font-family:var(--font-display);text-transform:uppercase;margin-bottom:var(--sp-4)}.claim-title{font-size:clamp(2.25rem,7vw,3.25rem);line-height:1;letter-spacing:.02em}.offer-banner{background:var(--mm-yellow);border:var(--bw-3) solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-4);padding:var(--sp-4) var(--sp-5);font-family:var(--font-display);font-size:1.5rem;line-height:1.2;text-transform:uppercase;margin:var(--sp-4) auto;display:inline-block;transform:rotate(-1deg)}.email-row{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);border:var(--bw-2) solid var(--border);border-radius:var(--r-md);margin:var(--sp-4) 0;font-weight:700;word-break:break-all}.email-input,.email-row{background:var(--mm-yellow-light);padding:var(--sp-3) var(--sp-4)}.email-input{width:100%;font-family:var(--font-body);font-size:1rem;font-weight:600;border:var(--bw-3) solid var(--border);border-radius:var(--r-md);color:var(--fg);outline:none}.email-input:focus,.warning{box-shadow:var(--sh-4)}.warning{background:var(--mm-red);color:var(--mm-white);border:var(--bw-3) solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4);margin:var(--sp-5) 0;font-weight:800;font-size:1rem;line-height:1.35;text-align:left;transform:rotate(.6deg)}.warning strong{display:block;font-weight:400;font-size:1.1rem;letter-spacing:.04em;margin-bottom:var(--sp-1)}.redeemed-mega,.warning strong{font-family:var(--font-display);text-transform:uppercase}.redeemed-mega{font-size:clamp(3rem,12vw,5rem);line-height:.95;letter-spacing:.03em;text-shadow:var(--tsh-4);margin:var(--sp-3) 0 var(--sp-2);color:var(--mm-white)}.redeemed-check{font-size:4rem;line-height:1;margin-top:-8px}.redeemed-meta{background:var(--mm-white);color:var(--fg);border:var(--bw-3) solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-4);padding:var(--sp-3) var(--sp-4);margin:var(--sp-4) auto var(--sp-3);font-weight:700;display:inline-block}.redeemed-meta .ago{font-family:var(--font-display);font-size:1.5rem;display:block;margin-top:4px}.countdown-bar{height:18px;background:var(--mm-white);border:var(--bw-2) solid var(--border);border-radius:var(--r-pill);margin:var(--sp-3) auto var(--sp-2);overflow:hidden;box-shadow:var(--sh-2);max-width:320px}.countdown-fill{height:100%;background:var(--mm-yellow);border-right:var(--bw-2) solid var(--border);transition:width 1s linear}.countdown-time{font-size:1.5rem;margin-bottom:var(--sp-4);text-shadow:var(--tsh-2)}.cashier-note,.countdown-time{font-family:var(--font-display)}.cashier-note{background:var(--mm-yellow);color:var(--fg);border:var(--bw-3) solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-4);padding:var(--sp-3) var(--sp-4);margin-top:var(--sp-5);font-size:1.05rem;text-transform:uppercase;letter-spacing:.04em;transform:rotate(-1deg)}.error-icon{font-size:3.5rem;line-height:1;margin-bottom:var(--sp-2)}.error-text{font-size:1.05rem;color:var(--fg-muted);margin-top:var(--sp-3)}.footer-note{margin-top:var(--sp-6);font-size:var(--fs-small);color:var(--fg-muted);text-align:center}.loading-dots{display:inline-flex;gap:6px}.loading-dots span{width:14px;height:14px;background:var(--mm-teal);border:2px solid var(--border);border-radius:50%;animation:bounce .9s var(--ease-snap) infinite}.loading-dots span:nth-child(2){animation-delay:.12s}.loading-dots span:nth-child(3){animation-delay:.24s}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.home-shell{min-height:100vh;display:grid;place-items:center;padding:var(--sp-12) var(--sp-4)}.home-card{max-width:640px;background:var(--bg-card);border:var(--bw-4) solid var(--border);border-radius:var(--r-2xl);box-shadow:var(--sh-12);padding:var(--sp-10) var(--sp-8);text-align:center;transform:rotate(-.4deg)}.home-card h1{font-size:clamp(2.5rem,6vw,4rem);text-transform:uppercase}.home-card p{margin-top:var(--sp-4);color:var(--fg-muted)}.admin-shell{padding:var(--sp-8) var(--sp-6);max-width:1100px;margin:0 auto}.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-6);flex-wrap:wrap;gap:var(--sp-4)}.admin-header h1{font-size:var(--fs-h2);text-transform:uppercase;letter-spacing:.02em}.admin-grid{display:grid;grid-gap:var(--sp-6);gap:var(--sp-6)}.admin-campaign{background:var(--bg-card);border:var(--bw-3) solid var(--border);border-radius:var(--r-xl);box-shadow:var(--sh-6);padding:var(--sp-5)}.admin-campaign h2{font-size:var(--fs-h3);margin-bottom:var(--sp-2);text-transform:uppercase}.admin-meta{font-size:var(--fs-small);color:var(--fg-muted)}.admin-meta,.admin-stat-row{display:flex;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-4)}.admin-stat{background:var(--mm-yellow-light);border:var(--bw-2) solid var(--border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);font-weight:800;min-width:120px}.admin-stat strong{display:block;font-family:var(--font-display);font-size:1.5rem;font-weight:400}.admin-table{width:100%;border-collapse:collapse}.admin-table td,.admin-table th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border-soft);font-size:var(--fs-small)}.admin-table th{font-family:var(--font-display);font-weight:400;text-transform:uppercase;letter-spacing:.04em;background:var(--mm-yellow-light)}.recipients-table-full .rt-cell-sm{white-space:nowrap;font-size:.78rem;color:var(--fg-muted)}.recipients-edit-row td{background:var(--mm-yellow-light);vertical-align:top;padding-top:8px;padding-bottom:8px}.recipients-edit-row .form-input{padding:4px 8px;font-size:.82rem;min-width:80px}.admin-badge{display:inline-block;padding:2px 10px;font-weight:800;font-size:.75rem;border:2px solid var(--border);border-radius:var(--r-pill)}.admin-badge--redeemed{background:var(--mm-green-check);color:var(--mm-white)}.admin-badge--pending{background:var(--mm-yellow);color:var(--fg)}.admin-badge--locked{background:var(--mm-black);color:var(--mm-yellow)}.admin-badge--scheduled{background:var(--mm-teal);color:var(--mm-white)}.admin-actions{display:flex;gap:var(--sp-3);align-items:center}.back-link{display:inline-block;margin-bottom:var(--sp-2);color:var(--mm-teal-deep);font-weight:800;font-size:.9rem;text-decoration:none}.back-link:hover{text-decoration:underline}.campaign-offer{font-style:italic;color:var(--fg-muted);margin-top:var(--sp-2);font-size:1rem;max-width:720px}.admin-link{color:var(--mm-teal-deep);font-weight:800;text-decoration:none}.admin-link:hover{text-decoration:underline}.admin-link--button{background:none;border:0;padding:0;font:inherit;cursor:pointer;font-weight:800}.admin-link--button:disabled{opacity:.5;cursor:not-allowed}.admin-link--danger{color:var(--mm-red)}.tab-bar{display:flex;gap:var(--sp-2);flex-wrap:wrap;border-bottom:3px solid var(--border);margin-bottom:var(--sp-6)}.tab{display:inline-block;padding:10px 18px;font-family:var(--font-body);font-weight:800;font-size:.95rem;color:var(--fg-muted);border:2px solid transparent;border-bottom:none;border-radius:var(--r-pill) var(--r-pill) 0 0;text-decoration:none;margin-bottom:-3px;background:transparent}.tab:hover{color:var(--fg);background:var(--mm-yellow-light)}.tab--active{color:var(--fg);background:var(--mm-yellow);border-color:var(--border);box-shadow:var(--sh-2)}.tab-panel{min-height:200px}.admin-form-card{background:var(--bg-card);border:var(--bw-3) solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-6);padding:var(--sp-6);max-width:720px}.admin-section-title{font-family:var(--font-display);font-weight:400;font-size:1.25rem;text-transform:uppercase;letter-spacing:.04em;margin:var(--sp-4) 0 var(--sp-3)}.admin-sparkline{display:grid;grid-gap:6px;gap:6px;grid-template-columns:repeat(7,1fr);align-items:end;background:var(--mm-yellow-light);border:var(--bw-2) solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);min-height:140px}.admin-spark-bar{display:flex;flex-direction:column;align-items:center;gap:4px;min-height:100px;justify-content:flex-end}.admin-spark-fill{width:70%;background:var(--mm-teal);border:var(--bw-2) solid var(--border);border-radius:var(--r-sm) var(--r-sm) 0 0;min-height:4px}.admin-spark-num{font-weight:800;font-size:.85rem}.admin-spark-label{font-size:.7rem;color:var(--fg-muted);font-weight:700}.admin-form{gap:var(--sp-4)}.admin-form,.form-field{display:flex;flex-direction:column}.form-field{gap:6px}.form-label{font-weight:800;font-size:.95rem;color:var(--fg)}.form-label em{font-style:normal;font-weight:700;font-size:.75rem;color:var(--fg-muted);margin-left:6px;text-transform:uppercase;letter-spacing:.05em}.form-input{font:inherit;padding:12px 14px;border:2px solid var(--border);border-radius:var(--r-md);background:var(--mm-white);box-shadow:var(--sh-2);width:100%}.form-input:focus{outline:none;box-shadow:0 0 0 3px var(--mm-yellow)}.form-textarea{resize:vertical;min-height:80px}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--sp-4);gap:var(--sp-4)}.form-hint{font-size:.85rem;color:var(--fg-muted)}.form-error{background:var(--mm-red);color:var(--mm-white);padding:10px 14px;border-radius:var(--r-md);font-weight:700;border:2px solid var(--border);box-shadow:var(--sh-2)}.form-actions{display:flex;justify-content:flex-end;gap:var(--sp-3)}@media (max-width:600px){.form-row{grid-template-columns:1fr}.admin-header{flex-direction:column;align-items:flex-start;gap:var(--sp-3)}}.import-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--sp-12) var(--sp-6);border:3px dashed var(--border);border-radius:var(--r-2xl);background:var(--mm-yellow-light);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.import-dropzone--over,.import-dropzone:hover{background:var(--mm-yellow)}.import-dropzone--over{transform:translate(-2px,-2px);box-shadow:var(--sh-6)}.import-dropzone-icon{font-size:3rem;margin-bottom:var(--sp-3)}.import-map-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--sp-4);gap:var(--sp-4)}.import-detected{display:inline-block;margin-left:8px;padding:1px 8px;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;background:var(--mm-green-check);color:var(--mm-white);border-radius:var(--r-pill);border:2px solid var(--border)}.import-toggle{display:flex;gap:var(--sp-3);align-items:flex-start;padding:var(--sp-4);background:var(--mm-yellow-light);border:2px solid var(--border);border-radius:var(--r-md);margin:var(--sp-4) 0;font-size:.95rem;line-height:var(--lh-normal)}.import-toggle input[type=checkbox]{width:20px;height:20px;margin-top:2px;flex-shrink:0;cursor:pointer}.import-error-table{margin-top:var(--sp-3)}.import-error-table td{font-size:.9rem}.recipients-filters{display:flex;gap:var(--sp-3);align-items:center;flex-wrap:wrap;margin-bottom:var(--sp-4)}.recipients-search{flex:1 1 240px;min-width:0}.recipients-filters .form-input{width:auto}.recipients-count{margin-left:auto;font-weight:800;color:var(--fg-muted);font-size:.9rem}.recipients-pagination{display:flex;align-items:center;justify-content:center;gap:var(--sp-4);margin-top:var(--sp-6)}.recipients-pagination .mm-sticker-btn{font-size:1rem;padding:10px 18px}.recipients-pageinfo{font-weight:800;color:var(--fg)}.export-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:var(--sp-4);gap:var(--sp-4)}.export-card{display:flex;flex-direction:column;padding:var(--sp-6);background:var(--bg-card);border:var(--bw-3) solid var(--border);border-radius:var(--r-xl);box-shadow:var(--sh-4);color:var(--fg);text-decoration:none;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.export-card:hover{transform:translate(-2px,-2px);box-shadow:var(--sh-6)}.export-card .export-btn{margin-top:auto;font-size:1rem;padding:10px 18px}.claim-coupon-tag{display:inline-block;margin:var(--sp-3) 0;padding:6px 14px;font-weight:800;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;background:var(--mm-yellow);color:var(--fg);border:2px solid var(--border);border-radius:var(--r-pill);box-shadow:var(--sh-2)}.claim-coupon-tag code{font-family:var(--font-display);font-weight:400;font-size:1rem;margin-left:4px;letter-spacing:.05em}.cashier-coupon{display:block;margin-top:4px;font-weight:800;font-size:.95rem;opacity:.85}@media (max-width:720px){.import-map-grid{grid-template-columns:1fr}}@media (max-width:480px){.claim-card{padding:var(--sp-6) var(--sp-4)}.warning{font-size:.95rem}}