:root{--burgundy:#982222;--red:#e3292a;--orange:#ff601c;--yellow:#ffb80e;--sky:#71c5e8;--sky-light:#d9f0fb;--white:#fff;--cream:#fff9f2;--cream-dk:#f0e4ce;--ink:#1e0a0a;--ink-mid:#5c2a2a;--ink-soft:#9a6060;--r:16px;--r-sm:8px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--cream);color:var(--ink);min-height:100vh;font-family:Arial,Helvetica,sans-serif}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle at 10% 15%,#ffb80e1a 0%,#0000 50%),radial-gradient(circle at 90% 80%,#71c5e817 0%,#0000 50%);position:fixed;inset:0}a{color:inherit;text-decoration:none}button,input{font:inherit}.app-shell{z-index:1;max-width:460px;margin:0 auto;padding:0 16px 48px;position:relative}.site-header{text-align:center;padding:28px 0 18px}.brand-wordmark{letter-spacing:.02em;color:var(--burgundy);margin-bottom:12px;font-size:30px;font-weight:900;line-height:1}.tagline{color:var(--ink-soft);letter-spacing:.14em;text-transform:uppercase;margin-top:4px;font-size:11px;font-weight:700}.stripe{background:linear-gradient(90deg, var(--burgundy), var(--red), var(--orange), var(--yellow), var(--sky));border-radius:99px;height:4px;margin-bottom:20px}.panel{background:var(--white);border-radius:var(--r);border:1.5px solid var(--cream-dk);margin-bottom:12px;padding:22px;box-shadow:0 3px 14px #9822220f}.panel-title{color:var(--burgundy);margin-bottom:16px;font-size:19px;font-weight:800}.panel-title span{color:var(--orange)}.field{margin-bottom:13px}.field label{color:var(--ink-mid);text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px;font-size:11px;font-weight:700;display:block}.field input{border:2px solid var(--cream-dk);border-radius:var(--r-sm);width:100%;color:var(--ink);background:var(--cream);outline:none;padding:11px 13px;font-size:14px;font-weight:600}.field input:focus{border-color:var(--orange);background:var(--white)}.row{gap:10px;display:flex}.row>*{flex:1}.btn{cursor:pointer;text-align:center;letter-spacing:.03em;border:none;border-radius:50px;width:100%;padding:13px;font-size:14px;font-weight:800;transition:all .2s;display:block}.btn-red{background:var(--red);color:var(--white);box-shadow:0 4px 14px #e3292a47}.btn-red:hover{background:var(--burgundy)}.btn-outline{color:var(--red);border:2px solid var(--red);background:0 0}.btn-stamp{color:#fff;cursor:pointer;background:#2e7d4f;border:none;border-radius:50px;padding:13px;font-size:13px;font-weight:800;box-shadow:0 3px 12px #2e7d4f47}.btn-redeem{background:var(--orange);color:#fff;cursor:pointer;border:none;border-radius:50px;padding:13px;font-size:13px;font-weight:800;box-shadow:0 3px 12px #ff601c47}.btn:disabled,.btn-stamp:disabled,.btn-redeem:disabled{opacity:.45;cursor:not-allowed}.btn.btn-compact{border-radius:999px;width:auto;min-width:150px;margin:0 auto;padding:10px 18px;font-size:13px}.hint-box{background:var(--sky-light);border:1.5px solid var(--sky);border-radius:var(--r-sm);color:#1a5f7a;margin-bottom:12px;padding:12px 15px;font-size:12px;font-weight:600;line-height:1.6}.reward-banner{background:var(--yellow);border:2px solid var(--orange);border-radius:var(--r-sm);align-items:center;gap:11px;margin-bottom:12px;padding:13px 15px;display:flex}.reward-banner strong{color:var(--burgundy);font-size:13px;font-weight:800;display:block}.reward-banner span{color:var(--ink-mid);font-size:12px;font-weight:600}.stamp-card{border:3px solid var(--yellow);background:linear-gradient(#a61f24 0%,#9a1d22 100%);border-radius:18px;margin-bottom:14px;padding:18px 18px 16px;position:relative;overflow:hidden;box-shadow:0 10px 28px #98222238}.stamp-card:before{content:"";pointer-events:none;border:1.5px solid #71c5e847;border-radius:12px;position:absolute;inset:6px}.sc-top{z-index:1;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex;position:relative}.sc-brand{text-align:left}.sc-wordmark{color:var(--yellow);letter-spacing:.03em;text-transform:uppercase;text-shadow:0 2px #0000001f;font-size:17px;font-weight:900;line-height:1}.sc-brand small{color:#ffd9a0;letter-spacing:.02em;margin-top:5px;font-size:11px;font-weight:700;display:block}.sc-code{color:var(--yellow);white-space:nowrap;background:#ffb80e24;border:1px solid #ffb80e47;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:900}.stamp-row{z-index:1;gap:8px;margin-bottom:14px;display:grid;position:relative}.stamp-row-6{grid-template-columns:repeat(6,1fr)}.stamp-dot{background:#ffffff08;border:2px dashed #71c5e88c;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;margin:0 auto;display:flex}.stamp-dot.stamped{background:var(--yellow);border:2px solid var(--orange);box-shadow:0 0 16px #ffb80e59}.stamp-mark{color:var(--burgundy);font-size:17px;font-weight:900;line-height:1}.stamp-gift{font-size:18px;line-height:1}.reward-slot{border-style:dashed}.prog-wrap{z-index:1;background:#ffffff24;border-radius:99px;height:4px;margin-bottom:14px;position:relative;overflow:hidden}.prog-bar{background:linear-gradient(90deg, var(--orange), var(--yellow));border-radius:99px;height:100%}.sc-bottom{z-index:1;justify-content:space-between;align-items:flex-end;gap:12px;display:flex;position:relative}.sc-name{color:var(--white);font-size:15px;font-weight:800;line-height:1.15}.sc-name small,.sc-progress small{color:#ffffff8c;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px;font-size:10px;font-weight:800;display:block}.sc-progress{text-align:right}.sc-progress .big{color:var(--yellow);font-size:26px;font-weight:900;line-height:1}.footer-note{text-align:center;color:var(--ink-soft);border-top:2px solid var(--cream-dk);letter-spacing:.08em;text-transform:uppercase;margin-top:22px;padding-top:16px;font-size:10px;font-weight:700}.helper-text{text-align:center;color:var(--ink-soft);margin-top:13px;font-size:12px;font-weight:600}.helper-link{color:var(--orange);cursor:pointer;background:0 0;border:none;font-weight:700;text-decoration:underline}.search-row{gap:8px;margin-bottom:12px;display:flex}.search-row .field{flex:1;margin:0}.client-row{border-bottom:1.5px solid var(--cream-dk);align-items:center;gap:11px;padding:12px 0;display:flex}.client-avatar{background:var(--yellow);border:2px solid var(--orange);width:38px;height:38px;color:var(--burgundy);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;font-weight:900;display:flex}.client-info-col{flex:1}.client-info-col strong{font-size:13px;display:block}.client-info-col span{color:var(--ink-soft);font-size:11px}.stamp-pill{background:var(--cream-dk);color:var(--ink-mid);white-space:nowrap;border-radius:50px;padding:4px 11px;font-size:11px;font-weight:800}.stamp-pill.complete{background:var(--yellow);color:var(--burgundy);border:1px solid var(--orange)}.info-card{background:var(--white);border:1.5px solid var(--cream-dk);border-radius:18px;margin-bottom:12px;padding:14px 16px;box-shadow:0 6px 20px #9822220f}.info-row{border-bottom:1px solid var(--cream-dk);align-items:center;gap:10px;padding:8px 0;display:flex}.info-row:last-child{border-bottom:none}.info-label{width:58px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.08em;flex-shrink:0;font-size:11px;font-weight:900}.info-val{color:var(--ink);word-break:break-word;font-size:14px;font-weight:700}.code-box{border:2px dashed var(--cream-dk);border-radius:var(--r-sm);text-align:center;background:var(--white);margin-bottom:12px;padding:16px}.qr-placeholder{background:linear-gradient(90deg,#000 10px,#0000 10px) 0 0/24px 24px,linear-gradient(#000 10px,#0000 10px) 0 0/24px 24px,linear-gradient(90deg,#000 10px,#0000 10px) 12px 12px/24px 24px,linear-gradient(#000 10px,#0000 10px) 12px 12px/24px 24px,#fff;border:8px solid #fff;border-radius:12px;width:168px;height:168px;margin:0 auto 10px;box-shadow:0 2px 10px #00000014}.status{border-radius:var(--r-sm);margin-bottom:12px;padding:12px 14px;font-size:13px;font-weight:700}.status.error{color:#a21d1d;background:#fde8e8;border:1px solid #f6b6b6}.status.success{color:#25693f;background:#e9f8ea;border:1px solid #b9e2c0}.back-link{color:var(--ink-mid);margin-bottom:14px;font-size:13px;font-weight:700;display:inline-block}.actions-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.center{text-align:center}.muted{color:var(--ink-soft)}.small{font-size:12px}@media (max-width:520px){.actions-grid,.row{grid-template-columns:1fr;display:grid}.stamp-dot{width:44px;height:44px}.stamp-mark{font-size:15px}.stamp-gift{font-size:16px}.sc-progress .big{font-size:22px}}
