*{box-sizing:border-box}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#182124;--muted:#647078;--line:#dde6e5;--paper:#fff;--bg:#f3f7f5;--teal:#129f9a;--teal-dark:#087a79;--red:#c83d3d;--blue:#3867c8;--shadow:0 18px 40px #1a2d2d1f}body{background:var(--bg);color:var(--ink);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input{font:inherit}button{border:0}.mobile-shell{background:linear-gradient(180deg, #129f9a1a, #f3f7f500 210px), var(--bg);width:min(100%,430px);min-height:100vh;margin:0 auto;padding:18px 16px 104px}.login-shell{flex-direction:column;justify-content:center;gap:18px;padding-bottom:32px;display:flex}.app-header{grid-template-columns:40px minmax(0,1fr) 64px;align-items:center;gap:10px;min-height:76px;display:grid}.header-copy{text-align:center;min-width:0}.header-copy h1,.login-hero h1,.detail-hero h1,.redeem-band h1{word-break:break-word;margin:0;font-size:24px;line-height:1.2}.header-copy p,.login-hero p,.detail-hero p,.redeem-band p,.store-panel p,.notice-panel p,.empty-state p,.modal-panel p{color:var(--muted);margin:6px 0 0;line-height:1.55}.header-right{justify-content:flex-end;display:flex}.icon-button{width:40px;height:40px;color:var(--ink);background:0 0;border-radius:8px;font-size:30px;line-height:1}.icon-button:disabled{opacity:0}.section-label{color:var(--teal-dark);margin:0 0 8px;font-size:14px;font-weight:800}.login-hero,.detail-hero,.redeem-band,.summary-band,.notice-panel,.form-panel,.info-panel,.store-panel,.voucher-panel{border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow);border-radius:8px}.login-hero,.detail-hero,.redeem-band{padding:26px 22px}.detail-hero{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.summary-band{background:linear-gradient(135deg, #129f9a29, #d8831b14), var(--paper);justify-content:space-between;align-items:center;gap:16px;padding:18px;display:flex}.purchase-summary{flex-wrap:wrap}.summary-band strong{font-size:38px;line-height:1;display:block}.notice-panel{box-shadow:none;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:14px;display:flex}.form-panel,.info-panel,.store-panel,.voucher-panel{margin-top:14px;padding:18px}label{color:var(--muted);gap:8px;margin-bottom:14px;font-size:14px;font-weight:700;display:grid}input{border:1px solid var(--line);width:100%;min-height:48px;color:var(--ink);background:#fbfdfc;border-radius:8px;outline:none;padding:0 13px}input:focus{border-color:var(--teal);box-shadow:0 0 0 3px #129f9a29}.primary-button,.secondary-button,.ghost-button,.text-button{cursor:pointer;border-radius:8px;min-height:44px;padding:0 15px;font-weight:800}.primary-button{background:var(--teal);color:#fff;width:100%;box-shadow:0 12px 24px #129f9a33}.secondary-button{background:var(--ink);color:#fff;white-space:nowrap}.ghost-button,.text-button{color:var(--teal-dark);background:#129f9a1a}.text-button{background:0 0;min-height:36px;padding:0 10px}button:disabled{cursor:not-allowed;opacity:.62}.form-error,.error-text{color:var(--red)}.form-error{margin:0 0 12px;font-size:14px;line-height:1.5}.status-tabs{gap:8px;margin:14px -16px 0;padding:0 16px 4px;display:flex;overflow-x:auto}.status-tabs button{border:1px solid var(--line);background:var(--paper);min-width:58px;height:36px;color:var(--muted);border-radius:8px;font-weight:800}.status-tabs .active{border-color:var(--teal);background:var(--teal);color:#fff}.coupon-list{gap:12px;margin-top:12px;display:grid}.coupon-card{border:1px solid var(--line);background:var(--paper);width:100%;min-height:116px;color:inherit;text-align:left;border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(92px,auto);gap:10px;padding:16px;display:grid;box-shadow:0 12px 28px #1a2d2d14}.coupon-main,.coupon-side{min-width:0}.coupon-main p,.coupon-main h2,.coupon-main small,.coupon-side small{overflow-wrap:anywhere;margin:0;display:block}.coupon-main p,.coupon-main small,.coupon-side small{color:var(--muted)}.coupon-main h2,.store-panel h2,.voucher-panel h2{margin:6px 0 8px;font-size:20px;line-height:1.25}.coupon-side{text-align:right;flex-direction:column;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.purchase-product-card .coupon-side strong,.purchase-price{color:var(--teal-dark);white-space:nowrap;font-size:20px}.purchase-status{min-width:72px;color:var(--teal-dark);text-align:center;background:#129f9a1f;border-radius:999px;padding:8px 10px;font-size:13px}.purchase-status-failed{color:var(--red);background:#c83d3d1f}.purchase-status-processing,.purchase-status-paid{color:var(--blue);background:#3867c81f}.status-badge{white-space:nowrap;border-radius:999px;align-items:center;min-height:28px;padding:0 10px;font-size:13px;font-weight:800;display:inline-flex}.status-available{color:var(--teal-dark);background:#129f9a1f}.status-used{color:var(--blue);background:#3867c81f}.status-expired,.status-voided{color:var(--muted);background:#6470781f}.info-line{border-bottom:1px solid var(--line);grid-template-columns:72px minmax(0,1fr);gap:12px;padding:12px 0;display:grid}.info-line:last-child{border-bottom:0}.info-line span,.voucher-grid dt{color:var(--muted)}.info-line strong,.voucher-grid dd{overflow-wrap:anywhere;margin:0;font-weight:800}.voucher-grid{gap:12px;margin:12px 0 0;display:grid}.voucher-grid div{gap:4px;display:grid}.voucher-grid dt{font-size:13px}.bottom-action{background:linear-gradient(180deg, #f3f7f500, var(--bg) 24%);padding:12px 0 18px;position:fixed;bottom:0;left:max(16px,50vw - 199px);right:max(16px,50vw - 199px)}.modal-mask{z-index:20;background:#0c121475;place-items:end center;padding:16px;display:grid;position:fixed;inset:0}.modal-panel{background:var(--paper);border-radius:8px;width:min(100%,398px);padding:20px}.modal-panel h2{margin:0 0 10px;font-size:20px}.modal-panel p{margin-bottom:14px}.modal-actions{grid-template-columns:1fr 1.4fr;gap:10px;margin-top:14px;display:grid}.two-actions{grid-template-columns:.8fr 1.2fr;gap:10px;display:grid}.confirm-coupon{overflow-wrap:anywhere;background:#f3f7f5;border-radius:8px;gap:6px;padding:12px;display:grid}.empty-state,.state-text{text-align:center;margin-top:18px}.empty-state{padding:34px 22px}.empty-state span{background:linear-gradient(90deg, var(--teal) 0 46px, transparent 46px) 14px 13px / 80px 6px no-repeat, linear-gradient(#dfe9e7 0 0) 14px 27px / 46px 6px no-repeat, #fff;border:2px solid #129f9a47;border-radius:8px;width:74px;height:52px;margin:0 auto 14px;display:block}.empty-state h2{margin:0;font-size:20px}.state-text{color:var(--muted)}
