:root{color:#16352d;font-synthesis:none;background:#edf1ed;font-family:Noto Sans TC,PingFang TC,system-ui,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(135deg,#e5ece6,#f8f4e9 55%);min-width:320px;margin:0}button,input,select,textarea{font:inherit}button{color:#fff;cursor:pointer;background:#d85c37;border:0;border-radius:10px;padding:.72rem 1rem;font-weight:760}button:disabled{opacity:.5;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #efb942}.shell{width:min(100%,1040px);min-height:100vh;margin:auto;padding:1.2rem 1rem 6rem}.brand{border-bottom:1px solid #aab7ae;justify-content:space-between;align-items:end;gap:1rem;padding:1rem 0 1.5rem;display:flex}.brand p,.eyebrow{letter-spacing:.17em;color:#aa4328;margin:0;font-size:.7rem;font-weight:900}.brand h1{margin:.3rem 0;font:700 clamp(2rem,5vw,3.2rem)/1 Georgia,Noto Serif TC,serif}.brand label,.selector{flex-direction:column;gap:.3rem;font-size:.75rem;font-weight:800;display:flex}.brand select,.selector select,input,textarea,fieldset select{color:#16352d;background:#fffdf7;border:1px solid #aeb9b1;border-radius:9px;padding:.7rem}.selector{max-width:340px;margin:1rem 0}.role{background:#dce8df;border-radius:999px;padding:.35rem .7rem;font-size:.8rem;display:inline-block}.notice{background:#dceadf;border-radius:10px;margin:1rem 0;padding:.75rem 1rem}.notice.error{color:#852d18;background:#f8ddd5}.section-heading{justify-content:space-between;align-items:end;gap:1rem;display:flex}section h2{margin:.25rem 0 1rem;font:700 2rem Georgia,Noto Serif TC,serif}.metrics{grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1rem;display:grid}.metrics article,.card,.empty,.redeem,.registration-card{background:#fffdf7;border:1px solid #cfd7cf;border-radius:16px;padding:1.1rem;box-shadow:0 10px 28px #16352d0c}.metrics strong{color:#b4482c;font-size:2.5rem;display:block}.metrics span{color:#63736b}.cards{gap:1rem;display:grid}.card h3{margin:.6rem 0;font-size:1.2rem}.card p{color:#5f7068;font-size:.9rem}.pill{background:#dce8df;border-radius:999px;padding:.3rem .65rem;font-size:.75rem;font-weight:800;display:inline-block}.actions{gap:.5rem;display:flex}.secondary{background:#315f50}.danger{background:#932f20}.empty{text-align:center;padding:2rem}.empty p{color:#66746e}.registration-card{max-width:760px;margin:1.5rem auto}.registration-lead{color:#5f7068;line-height:1.75}.registration-form fieldset{border:1px solid #d4d9d1;border-radius:12px;margin:1rem 0;padding:.8rem}.registration-form legend{color:#aa4328;font-weight:850}.registration-form label{gap:.35rem;margin:.75rem 0;font-size:.84rem;font-weight:750;display:grid}.registration-form textarea{min-height:80px}.registration-form>button:last-child{width:100%;min-height:48px;margin-top:1rem}.registration-form .terms-check{grid-template-columns:auto 1fr;align-items:start;gap:.65rem;line-height:1.5;display:grid}.registration-form .terms-check input{width:1.15rem;height:1.15rem;margin-top:.1rem}.merchant-nav{width:min(100%,1040px);padding:.65rem 1rem calc(.65rem + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);z-index:5;background:#fffdf7ed;border-top:1px solid #cdd5cd;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.merchant-nav button{color:#63736b;background:0 0}.merchant-nav button[aria-current=true]{color:#fff;background:#173b30}.sheet{z-index:10;background:#102d268c;place-items:end center;display:grid;position:fixed;inset:0}.sheet form{width:min(100%,700px);max-height:92vh;padding:1.4rem 1.2rem calc(1.5rem + env(safe-area-inset-bottom));background:#fffdf7;border-radius:22px 22px 0 0;position:relative;overflow:auto}.sheet .close{color:#17352d;background:#e6e8e1;padding:.4rem .65rem;position:absolute;top:1rem;right:1rem}.sheet label,.redeem label{gap:.35rem;margin:.7rem 0;font-size:.8rem;font-weight:750;display:grid}.sheet textarea{min-height:75px}.sheet fieldset{border:1px solid #d4d9d1;border-radius:12px;margin:1rem 0;padding:.8rem}.sheet legend{color:#aa4328;font-weight:850}.coordinate{grid-template-columns:1fr 1fr;gap:.7rem;display:grid}.pin{word-break:break-all;background:#e4eee7;border-radius:9px;padding:.7rem}.file{color:#315f50;cursor:pointer;border:1px dashed #7d9085;border-radius:9px;align-items:center;margin-top:.7rem;padding:.6rem .8rem;font-weight:750;display:inline-flex}.file input{opacity:0;width:1px;height:1px;position:absolute}.redeem{grid-template-columns:minmax(180px,.7fr) minmax(260px,1.3fr) auto;align-items:end;gap:.7rem;margin-bottom:1rem;display:grid}.redeem label{margin:0}.redeem-scanner{gap:.35rem;display:grid}.redeem-scanner p{color:#63736b;margin:0;font-size:.78rem}.scan-qr{background:#173b30;min-height:48px}.skeleton-grid{grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:5rem;display:grid}.skeleton-grid div{background:linear-gradient(90deg,#dce2dc,#f5f5ef,#dce2dc) 0 0/200% 100%;border-radius:16px;height:190px;animation:1.1s infinite pulse}@keyframes pulse{to{background-position:-200% 0}}@media (width>=720px){.cards{grid-template-columns:repeat(2,1fr)}.sheet{place-items:center}.sheet form{border-radius:22px}.shell{padding-top:2rem}}@media (width<=760px){.redeem{grid-template-columns:1fr}.brand{display:block}.brand label{margin-top:1rem}.coordinate{grid-template-columns:1fr}}.store-inactive-warning{background:#fff0e8;border:1px solid #e6a885;border-radius:10px;margin:1rem 0;padding:.8rem;font-weight:800;color:#85351f!important}.activate-store{width:100%;min-height:56px;margin-top:.25rem;font-size:1.05rem;box-shadow:0 8px 18px #d85c3733}.store-status-control{margin-top:1.25rem!important;padding:1rem!important}.store-status-options{gap:.75rem;display:grid}.store-status-options label{cursor:pointer;background:#fff;border:2px solid #c8d0ca;border-radius:12px;grid-template-columns:auto 1fr;align-items:center;gap:.8rem;min-height:64px;padding:.8rem 1rem;display:grid;margin:0!important}.store-status-options label.selected{background:#e7f0eb;border-color:#315f50;box-shadow:0 0 0 2px #315f5022}.store-status-options label.active.selected{background:#fff0e8;border-color:#d85c37;box-shadow:0 0 0 2px #d85c3722}.store-status-options input{accent-color:#d85c37;width:1.35rem;height:1.35rem}.store-status-options span{gap:.2rem;display:grid}.store-status-options strong{font-size:1rem}.store-status-options small{color:#5f7068;font-weight:600}.store-save-action{width:100%;min-height:56px;margin-top:1rem;font-size:1.05rem}
