:root{--ink: #1a1a1a;--gold: #c9a84c;--bronze: #b8860b;--cream: #1a1a1a;--muted: #666666;--panel: rgba(255, 255, 255, .95);--line: rgba(201, 168, 76, .3);--danger: #d32f2f;--ok: #388e3c;--font-display: "Bebas Neue", sans-serif;--font-body: "Manrope", sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--font-body);color:var(--ink);background:radial-gradient(ellipse 80% 60% at 0% 0%,rgba(201,168,76,.12),transparent 55%),radial-gradient(ellipse 55% 45% at 100% 100%,rgba(184,134,11,.08),transparent 50%),linear-gradient(160deg,#f8f8f8,#fff 45%,#f5f5f5);background-attachment:fixed}button,input,select{font:inherit}.app-shell{min-height:100dvh;display:flex;flex-direction:column;padding:5.5rem 1.1rem 1rem}.hero{position:relative;min-height:calc(100dvh - 6rem);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:.85rem;animation:rise .7s ease-out both}.hero-brand{display:flex;flex-direction:column;align-items:center;gap:.65rem}.brand-logo{width:72px;height:72px;object-fit:contain;border-radius:.75rem}.brand-logo--hero{width:88px;height:88px}.brand{font-family:var(--font-display);font-size:clamp(3rem,14vw,4.4rem);letter-spacing:.06em;line-height:.92;color:var(--gold);margin:0;animation:brandIn .9s cubic-bezier(.2,.8,.2,1) both}.tagline{margin:0;max-width:18rem;color:var(--muted);font-size:.95rem;line-height:1.45}.qr-stage{margin-top:.6rem;padding:1rem;border-radius:1.25rem;background:#fff;border:1px solid var(--line);box-shadow:0 12px 32px #00000014;animation:floatIn .85s .15s ease-out both}.qr-meta{margin-top:.85rem;color:var(--muted);font-size:.85rem}.qr-token-row{margin-top:.65rem;display:flex;align-items:center;justify-content:center;gap:.5rem;flex-wrap:wrap}.qr-token-text{font-size:.68rem;color:var(--muted);word-break:break-all;max-width:16rem;text-align:left;background:transparent;border:none;padding:0}.qr-copy-btn{flex-shrink:0;padding:.35rem .7rem;font-size:.75rem;border-radius:.5rem;border:1px solid var(--line);background:#fff;color:var(--bronze);cursor:pointer}.section{margin-top:1.25rem;animation:rise .55s ease-out both}.section h2{font-family:var(--font-display);letter-spacing:.08em;font-size:1.7rem;font-weight:400;margin:0 0 .75rem;color:var(--gold)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:1rem;padding:1rem;box-shadow:0 8px 24px #0000000a}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;margin-bottom:.9rem}.stat{text-align:center;padding:.75rem .4rem;border-radius:.85rem;background:#fff;border:1px solid var(--line)}.stat strong{display:block;font-family:var(--font-display);font-size:1.55rem;letter-spacing:.04em;color:var(--gold)}.stat span{display:block;margin-top:.15rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.progress-row{margin-top:.75rem}.progress-row header{display:flex;justify-content:space-between;gap:.5rem;font-size:.88rem;margin-bottom:.35rem;color:var(--ink)}.progress-hint{margin:.4rem 0 0;font-size:.8rem;line-height:1.35;color:var(--muted)}.panel-subhead{margin:0 0 .65rem;font-size:.95rem;font-weight:700;color:var(--ink)}.bar{height:.45rem;border-radius:999px;background:#c9a84c26;overflow:hidden}.bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--bronze),var(--gold));border-radius:inherit;transition:width .6s ease}.list{display:grid;gap:.7rem}.card-item{border:1px solid var(--line);border-radius:.9rem;padding:.9rem;background:#fff;box-shadow:0 4px 16px #0000000a}.card-item h3{margin:0 0 .3rem;font-size:1rem;color:var(--ink)}.promo-brand-logo{display:block;width:64px;height:64px;object-fit:contain;margin:0 0 .65rem;border-radius:.65rem}.card-item p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.4}.badge{display:inline-block;margin-top:.45rem;padding:.15rem .5rem;border-radius:.35rem;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--line);color:var(--bronze)}.badge.pending{color:var(--bronze)}.badge.accepted,.badge.completed{color:var(--ok)}.badge.rejected{color:var(--danger)}.badge.redeemed{color:var(--ok)}.badge.expired,.badge.void{color:var(--danger)}.field{display:grid;gap:.35rem;margin-bottom:.85rem;color:var(--muted);font-size:.85rem}.field legend{color:var(--ink);font-weight:600;margin-bottom:.25rem}.choice-row{display:flex;align-items:center;gap:.5rem;color:var(--ink);font-size:.92rem}.field input,.field select{width:100%;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);padding:.7rem .8rem}.selected-services{list-style:none;margin:0 0 .85rem;padding:0;display:grid;gap:.4rem}.selected-services li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.9rem;color:var(--ink)}.ghost-btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:.45rem .7rem;cursor:pointer;color:var(--ink)}.row-actions{display:flex;align-items:center}.primary-btn{width:100%;border:0;border-radius:999px;padding:.85rem 1rem;font-weight:700;color:#fff;background:linear-gradient(180deg,var(--gold),var(--bronze));cursor:pointer}.ok-text{color:var(--ok);margin:.75rem 0 0}.error-text{color:var(--danger);margin:.75rem 0 0}.nav{position:fixed;left:.75rem;right:.75rem;top:.75rem;display:grid;grid-template-columns:repeat(4,1fr);gap:.35rem;padding:.4rem;border-radius:1rem;background:#fffffff0;border:1px solid var(--line);box-shadow:0 8px 24px #0000000f;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:20}.nav button{border:0;background:transparent;color:var(--muted);padding:.65rem .2rem;border-radius:.7rem;cursor:pointer;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;transition:color .2s ease,background .2s ease,transform .2s ease}.nav button.active{color:#fff;background:linear-gradient(180deg,var(--gold),var(--bronze));transform:translateY(-1px)}.state{min-height:70dvh;display:grid;place-items:center;text-align:center;padding:2rem 1rem;color:var(--muted)}.state.error{color:var(--danger)}.state h1{font-family:var(--font-display);letter-spacing:.06em;color:var(--gold);font-size:2.4rem;margin:0 0 .5rem}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes brandIn{0%{opacity:0;letter-spacing:.28em;transform:scale(.96)}to{opacity:1;letter-spacing:.06em;transform:scale(1)}}@keyframes floatIn{0%{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
