:root{--champagne-50: #fbf7ef;--champagne-100: #f7eddd;--champagne-200: #ead9bd;--champagne-300: #dcc097;--gold-600: #a8732f;--gold-700: #87591f;--navy-700: #263b68;--navy-800: #1d2d50;--text: #263040;--muted: #6b7180;--danger: #a33b34;--success: #27664a;--radius-card: 20px;--shadow-card: 0 18px 46px rgba(38, 48, 64, .09)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--text);background:var(--champagne-50);font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--gold-600);outline-offset:3px}a{color:inherit}.campaign-shell{position:relative;display:grid;min-height:100dvh;place-items:center;overflow:hidden;padding:24px;background:var(--champagne-50)}.campaign-shell__glow{position:absolute;width:24rem;height:24rem;border:1px solid rgba(168,115,47,.16);border-radius:50%;transform:translate(38%,-48%)}.campaign-card{position:relative;width:min(100%,420px);padding:48px 32px 34px;overflow:hidden;text-align:center;background:#ffffffad;border:1px solid var(--champagne-200);border-radius:var(--radius-card);box-shadow:0 24px 56px #2630401a}.campaign-card:before,.campaign-card:after{position:absolute;width:92px;height:92px;content:"";border:1px solid rgba(168,115,47,.18);border-radius:50%}.campaign-card:before{top:-60px;left:-44px}.campaign-card:after{right:-56px;bottom:-58px}.campaign-card__eyebrow{margin:0 0 18px;color:var(--gold-600);font-size:13px;font-weight:600;letter-spacing:.18em}.campaign-card h1{margin:0;color:var(--navy-700);font-family:Songti SC,STSong,serif;font-size:clamp(30px,8vw,38px);font-weight:700;letter-spacing:.04em;line-height:1.35}.campaign-card__ornament{display:flex;justify-content:center;gap:7px;margin:0 auto 22px}.campaign-card__ornament span{display:block;width:8px;height:8px;background:var(--gold-600);border-radius:50% 50% 50% 0;transform:rotate(-45deg)}.campaign-card__ornament span:nth-child(2){transform:translateY(-5px) rotate(-45deg)}.campaign-card__description{max-width:17em;margin:20px auto 28px;font-size:15px;line-height:1.9}.campaign-card__banner{display:block;width:100%;max-height:150px;margin:0 0 22px;object-fit:cover;border-radius:14px}.campaign-card__cta{display:inline-flex;align-items:center;justify-content:center;min-width:180px;min-height:48px;padding:0 24px;color:#fff;font-size:16px;font-weight:600;text-decoration:none;background:var(--navy-700);border-radius:999px;box-shadow:0 10px 20px #263b6838}.campaign-card__cta:focus-visible,.campaign-card__text-link:focus-visible{outline:3px solid var(--gold-600);outline-offset:4px}.campaign-card__expiry{margin:18px 0 0;color:#6b7180;font-size:13px}.campaign-card--simple{padding:48px 32px}.campaign-card__text-link{display:inline-block;margin-top:28px;color:var(--gold-600);font-weight:600}.page-shell{display:grid;min-height:100dvh;place-items:center;padding:24px 16px;background:var(--champagne-50)}.page-shell--top{place-items:start center}.customer-page{width:min(100%,680px)}.customer-page--narrow{max-width:480px}.customer-header,.gift-header,.result-header{padding:14px 8px 24px;text-align:center}.customer-header h1,.gift-header h1,.result-header h1,.page-card h1{margin:0;color:var(--navy-800);font-family:Songti SC,STSong,serif;font-size:clamp(28px,8vw,38px);line-height:1.35}.customer-header p,.gift-header p,.result-header p{line-height:1.7}.customer-header span{display:inline-block;margin-left:6px;color:var(--muted);font-size:14px}.page-eyebrow,.section-kicker{margin:0 0 8px;color:var(--gold-700);font-size:13px;font-weight:700;letter-spacing:.14em}.page-card,.benefit-card,.share-card,.store-card,.rules-card,.result-card{width:100%;padding:24px;background:#ffffffdb;border:1px solid var(--champagne-200);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.login-card{max-width:430px}.error-card{display:grid;max-width:430px;gap:16px;justify-items:start}.claim-card h2,.benefit-card h2,.store-card h2,.rules-card h2,.result-card h2,.section-heading h2,.share-card h3{margin:0;color:var(--navy-700)}.page-lead{margin:12px 0 22px;color:var(--muted);line-height:1.7}.customer-form{display:grid;gap:18px}.form-field{display:grid;gap:8px;text-align:left}.form-field label{color:var(--navy-800);font-weight:650}.form-field input,.form-field select,.form-field textarea,.copy-source{width:100%;min-height:48px;padding:11px 13px;color:var(--text);font-size:16px;background:#fffdf9;border:1px solid var(--champagne-300);border-radius:12px}.form-field textarea{min-height:104px;resize:vertical}.form-field input[aria-invalid=true]{border-color:var(--danger)}.field-error,.form-error{margin:0;color:var(--danger);font-size:14px;line-height:1.55}.form-error{padding:12px 14px;background:#fff4f1;border:1px solid #efd0ca;border-radius:12px}.field-help,.privacy-note,.muted,.status-note,.wechat-hint,.copy-message{color:var(--muted);font-size:13px;line-height:1.65}.field-help,.field-error,.copy-message{min-height:1.45em}.field-help,.privacy-note,.copy-message,.status-note,.wechat-hint{margin:0}.privacy-note{margin-top:18px}.primary-button,.secondary-button,.secondary-link{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:10px 18px;font-size:16px;font-weight:700;text-align:center;text-decoration:none;border-radius:999px;cursor:pointer}.primary-button{color:#fff;background:var(--navy-700);border:1px solid var(--navy-700)}.primary-button--link{width:100%}.contact-link{display:inline-flex;min-height:44px;align-items:center}.secondary-button,.secondary-link{color:var(--navy-700);background:#fffdf9;border:1px solid var(--gold-600)}button:disabled{cursor:wait;opacity:.58}.card-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.status-pill{display:inline-flex;min-height:28px;flex:0 0 auto;align-items:center;padding:4px 10px;color:var(--navy-700);font-size:13px;font-weight:700;background:var(--champagne-100);border:1px solid var(--champagne-300);border-radius:999px}.status-pill--active,.status-pill--available{color:var(--success);background:#eef8f2;border-color:#b9ddc9}.status-pill--redeemed,.status-pill--claimed,.status-pill--expired{color:var(--muted);background:#f1f2f4;border-color:#d8dadd}.benefit-card__code{margin:16px 0;overflow-wrap:anywhere;color:var(--muted)}.benefit-card__code strong{color:var(--navy-800)}.share-section{margin-top:28px}.section-heading{padding:0 8px 14px}.section-heading p:last-child{margin:8px 0 0;color:var(--muted)}.share-grid{display:grid;gap:16px}.share-card h3{font-size:20px}.claimed-friend p{margin:14px 0 0}.qr-panel{display:grid;gap:12px;justify-items:center;margin-top:18px}.qr-panel__image{display:block;width:min(100%,240px);height:auto;padding:8px;background:#fff;border:1px solid var(--champagne-200);border-radius:14px}.copy-source{min-height:44px;font-size:16px}.store-card,.rules-card{margin-top:18px;box-shadow:none}.store-card p,.rules-card p{margin:10px 0 0;line-height:1.7}.gift-from{display:inline-block;margin:14px 0 0;padding:5px 12px;color:var(--gold-700);background:var(--champagne-100);border-radius:999px}.cover-image{display:block;width:100%;max-height:220px;margin-bottom:18px;object-fit:cover;border-radius:16px}.result-header .success-mark{display:grid;width:48px;height:48px;margin:0 auto 14px;place-items:center;color:#fff;font-size:26px;font-weight:800;background:var(--success);border-radius:50%}.result-card{text-align:center}.wechat-qr{display:block;width:min(100%,180px);height:auto;margin:16px auto 0;border-radius:12px}.expiry-footer{margin:20px 0 0;color:var(--gold-700);font-size:13px;font-weight:700;text-align:center}.loading-state{color:var(--navy-700);font-weight:700}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.admin-shell{min-height:100dvh;padding-bottom:82px;background:radial-gradient(circle at 90% 0,rgba(168,115,47,.1),transparent 28rem),var(--champagne-50)}.admin-header{display:flex;min-height:72px;align-items:center;justify-content:space-between;gap:16px;padding:12px max(18px,env(safe-area-inset-left));color:#fff;background:var(--navy-800)}.admin-header p,.admin-header strong{display:block;margin:0}.admin-header p,.admin-header span{color:#d6dbea;font-size:12px}.admin-header strong{margin-top:3px;font-family:Songti SC,STSong,serif;font-size:20px}.admin-header span{padding:5px 9px;border:1px solid rgba(255,255,255,.25);border-radius:999px}.admin-main{width:min(100%,980px);margin:0 auto;padding:24px 16px 36px}.admin-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.admin-title-row h1{margin:0;color:var(--navy-800);font-family:Songti SC,STSong,serif;font-size:clamp(27px,7vw,36px)}.admin-nav{position:fixed;z-index:20;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(5,1fr);padding:6px max(8px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:#fffffff5;border-top:1px solid var(--champagne-200);box-shadow:0 -10px 28px #26304014;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.admin-nav__item{display:grid;min-height:52px;place-items:center;color:var(--muted);font-size:14px;font-weight:700;text-decoration:none;border-radius:12px}.admin-nav__item.is-active{color:var(--navy-800);background:var(--champagne-100)}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.metric-card,.admin-card{padding:18px;background:#ffffffe6;border:1px solid var(--champagne-200);border-radius:16px;box-shadow:var(--shadow-card)}.metric-card span{display:block;color:var(--muted);font-size:13px}.metric-card strong{display:block;margin-top:8px;color:var(--navy-800);font-family:Songti SC,STSong,serif;font-size:27px}.rate-row{display:flex;justify-content:space-around;gap:18px;margin-top:12px}.rate-row p{margin:0;color:var(--muted)}.rate-row strong{display:block;margin-top:5px;color:var(--navy-800);font-size:22px}.admin-search{display:grid;gap:8px;margin-bottom:18px}.admin-search label{color:var(--navy-800);font-weight:700}.admin-search>div{display:flex;flex-wrap:wrap;gap:8px}.admin-search input{min-width:0;flex:1;min-height:48px;padding:11px 13px;font-size:16px;background:#fff;border:1px solid var(--champagne-300);border-radius:12px}.admin-search select{min-height:48px;padding:10px 12px;font-size:16px;color:var(--text);background:#fff;border:1px solid var(--champagne-300);border-radius:12px}.admin-search .primary-button{flex:0 0 auto}.admin-list{display:grid;gap:12px}.admin-record h2,.tool-card h2,.redeem-preview h2,.admin-dialog h2{margin:0;color:var(--navy-800);font-size:20px}.admin-record h2+p{margin:5px 0 0;color:var(--muted);font-size:13px;overflow-wrap:anywhere}.admin-record dl,.admin-detail dl{display:grid;gap:8px;margin:16px 0}.admin-record dl div,.admin-detail dl div{display:flex;justify-content:space-between;gap:12px}.admin-record dt,.admin-detail dt{color:var(--muted)}.admin-record dd,.admin-detail dd{margin:0;text-align:right;overflow-wrap:anywhere}.detail-warning,.warning-box{padding:10px 12px;color:var(--gold-700);font-size:13px;line-height:1.6;background:var(--champagne-100);border-radius:10px}.settings-tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:16px}.settings-tab{min-height:44px;color:var(--muted);background:transparent;border:0;border-bottom:2px solid var(--champagne-200);cursor:pointer}.settings-tab.is-active{color:var(--navy-800);font-weight:700;border-bottom-color:var(--gold-600)}.settings-form{display:grid;gap:16px}.success-message{margin:0;padding:11px 13px;color:var(--success);background:#eef8f2;border-radius:10px}.admin-tools-grid,.tool-card{display:grid;gap:14px}.tool-card p{margin:0;line-height:1.65}.download-panel{display:grid;gap:10px}.danger-zone{border-color:#dfb9b4}.checkbox-row{display:flex;min-height:44px;align-items:center;gap:10px;line-height:1.45}.checkbox-row input{width:20px;height:20px;flex:0 0 auto}.danger-button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:10px 18px;color:#fff;font-size:16px;font-weight:700;background:var(--danger);border:1px solid var(--danger);border-radius:999px;cursor:pointer}.danger-button:disabled{cursor:not-allowed;opacity:.45}.dialog-backdrop{position:fixed;z-index:50;inset:0;display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:20px;background:#141d3285}.admin-dialog{width:min(100%,440px);padding:24px;background:#fff;border-radius:18px;box-shadow:0 24px 60px #141d3240}.admin-dialog>p{color:var(--muted);line-height:1.65}.button-row{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.redeem-preview{display:grid;gap:14px;justify-items:start}.redeem-preview p{margin:0;color:var(--muted)}.scan-button{width:100%}.empty-state{color:var(--muted);text-align:center}@media(min-width:720px){.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-tools-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.danger-zone{grid-column:1 / -1}}@media(min-width:640px){.share-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:359px){.page-shell,.campaign-shell{padding-right:12px;padding-left:12px}.page-card,.benefit-card,.share-card,.store-card,.rules-card,.result-card{padding:19px}}
