@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+TC:wght@400;500;600;700;800;900&display=swap');

:root{color-scheme:light;--paper:#f7f7f2;--card:#fff;--ink:#202a26;--dim:#707970;--border:#e2e6de;--green:#305d46;--mint:#e6f0e6;--orange:#e97848;--accent:#305d46;--text:#202a26;--bg:#f7f7f2}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans','Noto Sans TC',sans-serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button,a,input,select{transition:background .15s,border-color .15s,color .15s}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #e9784880;outline-offset:4px}input[aria-invalid=true]{border-color:#c05236;background:#fff2ed}
main{max-width:1440px;margin:auto;padding:0 48px 32px}.topbar{height:94px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);gap:24px}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);font-size:21px;font-weight:800;letter-spacing:-.8px}.brand:hover{text-decoration:none}.brand-icon{width:34px;height:30px;background:var(--green);border-radius:7px;transform:rotate(-12deg);display:grid;place-items:center;color:#fff;font-size:22px}.brand em{font-style:normal;color:var(--green);font-weight:500}.topbar nav{display:flex;gap:28px;font-size:13px}.topbar nav a{color:var(--dim);padding:9px 0}.topbar nav a[aria-current]{color:var(--ink);border-bottom:2px solid var(--green)}.local-tag{font-size:10px;letter-spacing:1px;border:1px solid var(--border);border-radius:20px;padding:7px 11px;color:var(--dim)}
.hero{padding:49px 0 42px;display:flex;justify-content:space-between;align-items:center;gap:24px}.eyebrow{font-size:10px;letter-spacing:2.5px;color:var(--green);font-weight:700;display:flex;align-items:center;gap:9px}.eyebrow:before{content:'';height:7px;width:7px;border-radius:50%;background:var(--orange)}h1{font-size:clamp(34px,4.2vw,59px);line-height:1.3;letter-spacing:-2.5px;margin:18px 0 15px;font-weight:800}h1 span{color:var(--green)}.hero p{font-size:13px;color:var(--dim);line-height:1.9;margin:0}.hero-art{position:relative;width:260px;height:160px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.ticket{position:absolute;width:190px;height:112px;border-radius:13px;background:#dce9dc;transform:rotate(-13deg);border:1px solid #c0d2c1}.ticket.front{background:#fff4d6;transform:rotate(9deg);top:39px;left:40px;display:flex;align-items:center;padding:17px;box-shadow:0 12px 20px #3a4a2f0d;border-color:#e5dab7}.ticket.front:after{content:'';position:absolute;right:44px;top:8px;bottom:8px;border-left:1px dashed #c9b98e}.ticket img{height:60px;width:64px;object-fit:contain;image-rendering:pixelated}.ticket-text{font-size:9px;letter-spacing:2px;writing-mode:vertical-rl;margin-left:30px;color:#8a7452}.spark{position:absolute;color:var(--orange);font-size:28px;right:6px;top:15px}.spark.small{font-size:18px;left:9px;top:115px}
.market{padding:25px;background:#ecefe7;border-radius:18px;margin-bottom:39px}.section-overline{font-size:10px;letter-spacing:1.8px;font-weight:700;color:var(--dim)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:19px}.market-title{display:flex;align-items:center;gap:13px}.toolbar p{font-size:11px;color:var(--dim);margin:0}.toolbar p:before{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;background:#638568;margin-right:6px}button{border:1px solid var(--border);background:#fff;color:var(--ink);padding:10px 14px;border-radius:8px;font-size:12px;font-weight:600}button:hover{background:#f0f4ed;border-color:#bacbb9}#refresh{background:transparent;border-color:#cbd3c5;font-size:11px}#refresh:before{content:'↻';font-size:16px;margin-right:7px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.card{background:#fff;border:1px solid #e1e5da;border-radius:12px;padding:17px 18px}.item{display:flex;align-items:center;gap:9px}.item img{width:32px;height:32px;object-fit:contain;image-rendering:pixelated}h2{margin:0;font-size:15px}.english{font-size:10px;color:var(--dim);margin-top:3px}.label{display:block;color:var(--dim);font-size:10px;margin-top:17px}.price{font-size:29px;letter-spacing:-1px;font-weight:600;font-variant-numeric:tabular-nums;display:inline-block;margin:4px 6px 8px 0}.currency{font-size:9px;color:var(--dim)}.stock{font-size:10px;color:var(--dim)}.updated{font-size:9px;color:#8e958c;margin:8px 0;line-height:1.5}.source{font-size:10px;text-decoration:underline;text-underline-offset:3px}.direct-entry{margin-top:14px;border-top:1px solid var(--border);padding-top:10px}.direct-entry summary{font-size:10px;color:var(--green);cursor:pointer}.direct-entry label{font-size:10px;display:block;margin:12px 0 6px}.direct-entry input{padding:7px;font-size:12px}.subtotal{font-size:10px;margin-top:8px;color:var(--dim)}.notice{font-size:11px;color:#a14c29;line-height:1.8}.notice:empty{display:none}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:25px;align-items:start}.raffles{min-width:0}.raffle-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.section-title{font-size:23px;font-weight:700;letter-spacing:-.8px}.section-number{font-size:11px;letter-spacing:1px;color:var(--orange);display:block;margin-bottom:8px}.caption{color:var(--dim);font-size:11px;line-height:1.9}.filters{display:flex;gap:10px;margin:22px 0 12px}input,select{background:#fff;border:1px solid var(--border);border-radius:8px;padding:12px;color:var(--ink);min-width:0}input{width:100%}.filters input{flex:1;font-size:12px;padding-left:15px}.filters select{font-size:11px;width:123px}.result-bar{display:flex;align-items:center;justify-content:space-between;gap:8px}#coupon-count{font-size:10px;margin:0 0 14px}.table-scroll{border:1px solid var(--border);border-radius:12px;overflow:auto;background:#fff}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;font-size:9px;font-weight:500;color:var(--dim);background:#fafbf8;white-space:nowrap;padding:14px 12px;border-bottom:1px solid var(--border)}td{padding:17px 12px;border-bottom:1px solid #edf0e9}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#f8faf4}.coupon-name{display:flex;align-items:center;gap:10px;min-width:180px}.coupon-name img{height:34px;width:34px;object-fit:contain;image-rendering:pixelated;flex-shrink:0}.coupon-name a{font-size:11px;font-weight:600;color:var(--ink);line-height:1.6}.coupon-id{font-size:9px;color:#9bA397;margin-top:3px;font-variant-numeric:tabular-nums}.recipe{display:flex;flex-wrap:wrap;gap:4px;min-width:110px}.coin{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-size:10px;padding:4px 5px;background:#f3f5ef;border-radius:5px;color:#586450}.coin img{width:16px;height:16px;object-fit:contain;image-rendering:pixelated}.coupon-cost,.coupon-subtotal{font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}.coupon-cost{font-weight:600}.coupon-subtotal{color:var(--dim)}.coupon-quantity{width:62px;min-width:55px;text-align:center;padding:8px 4px;font-size:12px;background:#fafbf8}.unknown{font-size:10px;color:#92998c}.secondary{border:0;background:transparent;color:var(--dim);font-size:10px;padding:7px}.empty-result{padding:20px;color:var(--dim)}
.receipt{position:sticky;top:24px;background:#fff;border:1px solid var(--border);border-radius:14px;padding:25px 23px;box-shadow:0 6px 20px #283e2104}.receipt-label{font-size:10px;letter-spacing:2px;color:var(--dim);margin-bottom:8px}.receipt h2{font-size:20px}.receipt-rule{border:0;border-top:1px dashed #d3dacf;margin:22px 0}.receipt .total{display:flex;flex-direction:column;gap:14px}.receipt .total span{font-size:11px;color:var(--dim);line-height:1.8}.receipt .total strong{font-size:31px;letter-spacing:-1px;font-weight:600;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.receipt .demand{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.receipt .coin{background:#f3f6ef;padding:10px 8px;font-size:11px}.receipt-tip{font-size:10px;line-height:1.9;color:var(--dim);margin:17px 0 0}.receipt-bottom{font-size:9px;letter-spacing:2px;text-align:center;color:#a5ad9e;margin:22px -23px -25px;padding:14px;border-top:1px dashed #d3dacf;background:#fafbf7;border-radius:0 0 14px 14px}.receipt-icon{font-size:17px;color:var(--orange);float:right}.direct-total{display:flex;justify-content:space-between;font-size:11px;gap:12px;line-height:1.8}.direct-total span{color:var(--dim)}.direct-total strong{font-size:12px;text-align:right;overflow-wrap:anywhere}.rules{margin-top:22px;padding:16px 18px;background:#eef1e9;border-radius:9px;color:var(--dim);font-size:11px;line-height:1.9}.rules summary{cursor:pointer;color:var(--green);font-weight:500}.rules p{margin:10px 0 0}footer{margin-top:45px;padding-top:22px;border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:16px;font-size:10px;color:var(--dim);line-height:1.8}footer a{color:var(--dim)}
@media(min-width:1500px){main{padding-left:64px;padding-right:64px}}
@media(max-width:1150px){main{padding:0 28px 28px}.workspace{grid-template-columns:minmax(0,1fr) 245px;gap:18px}.receipt{padding:21px 18px}.receipt-bottom{margin:20px -18px -21px}.coupon-name{min-width:160px}.coupon-name a{font-size:10px}th,td{padding-left:9px;padding-right:9px}.coupon-subtotal{font-size:11px}}
@media(max-width:950px){.workspace{grid-template-columns:1fr}.receipt{position:static;grid-row:1;display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.receipt-head{grid-column:1/-1}.receipt .receipt-rule{grid-column:1/-1;margin:15px 0}.receipt-bottom{display:none}.receipt .total strong{font-size:30px}.receipt-tip{margin-top:12px}.receipt .demand{margin:0}.receipt .receipt-label{margin-top:0}.receipt-secondary{grid-column:1/-1}.cards{gap:10px}.card{padding:15px}.market{padding:20px}.coupon-name{min-width:210px}.coupon-name a{font-size:12px}.hero-art{width:220px}.local-tag{display:none}.market-title{display:block}.toolbar p{margin-top:6px}}
@media(max-width:600px){main{padding:0 17px 24px}.topbar{height:75px;gap:10px}.brand{font-size:17px;gap:8px}.brand-icon{width:28px;height:25px;font-size:18px}.topbar nav{gap:15px;font-size:10px}.hero{padding:32px 0 28px;gap:0;position:relative;overflow:hidden}.hero-copy{position:relative;z-index:1}.hero-art{width:140px;transform:scale(.65);transform-origin:right center;margin-left:-80px;opacity:.85}.hero h1{font-size:37px;letter-spacing:-1.5px}.hero p{font-size:11px;max-width:250px}.eyebrow{font-size:8px;letter-spacing:1.5px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.market{padding:15px;border-radius:13px;margin-bottom:28px}.card{padding:13px 12px}.item{gap:6px}.item img{width:28px;height:28px}h2{font-size:13px}.english{font-size:8px}.price{font-size:26px}.currency{font-size:8px}.label{margin-top:12px}.updated{font-size:8px}.stock{font-size:9px}.toolbar{gap:10px}.toolbar p{font-size:9px;line-height:1.7}.section-overline{font-size:8px}.toolbar button{padding:8px;font-size:10px;flex-shrink:0}.receipt{padding:20px 16px;gap:0 14px}.receipt h2{font-size:18px}.receipt .total strong{font-size:24px}.receipt .coin{font-size:9px;padding:7px 4px}.receipt .demand{gap:6px}.receipt-tip{font-size:9px}.section-title{font-size:21px}.section-number{font-size:9px}.filters{margin-top:17px}.filters select{width:100px;padding:10px 7px}.filters input{font-size:11px}.coupon-name{min-width:150px}.coupon-name a{font-size:10px}.coupon-name img{width:30px;height:30px}.recipe{min-width:100px}.coupon-cost{font-size:11px}th{font-size:8px}.table-scroll{border-radius:9px}.caption{font-size:10px}.coupon-quantity{width:55px}footer{font-size:9px;flex-wrap:wrap}.rules{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
tr[hidden]{display:none!important}
thead th{text-align:center}
tbody td{text-align:center;vertical-align:middle}
.coupon-name,.recipe{justify-content:center}
@media(max-width:600px){.recipe{margin-left:0}td:nth-child(2).unknown{margin-left:0}td:nth-child(5){text-align:center}}
.category-tabs{display:flex;gap:5px;padding:5px;background:#ecefe7;border:1px solid var(--border);border-radius:10px;margin-top:22px;flex-wrap:wrap}.category-tabs button{flex:1 0 auto;background:transparent;border:1px solid transparent;padding:10px 11px;font-size:11px;font-weight:500;color:var(--dim);white-space:normal}.category-tabs button[aria-selected=true]{background:white;border-color:#d5ddce;color:var(--green);box-shadow:0 2px 5px #203a1b08;font-weight:700}.category-tabs button:hover{color:var(--green);background:#ffffff80}.tier-legend{display:flex;gap:9px;margin:0 0 13px;font-size:10px}.tier-legend span{border-radius:5px;padding:5px 9px;border:1px solid #202a260c}.tier-basic{--tier-bg:#eff5fb;--tier-hover:#e5eff9;background:var(--tier-bg)}.tier-premium{--tier-bg:#fff8e5;--tier-hover:#fff0cc;background:var(--tier-bg)}.tier-luxury{--tier-bg:#f5effc;--tier-hover:#ede3f9;background:var(--tier-bg)}tbody tr[class^=tier-]:hover{background:var(--tier-hover)}.tier-basic td,.tier-premium td,.tier-luxury td{border-bottom-color:#202a260d}.recipe .coin{background:#ffffffa6}.tier-basic input,.tier-premium input,.tier-luxury input{background:#ffffffba}.category-tabs+.filters{margin-top:13px}@media(max-width:600px){.category-tabs{gap:4px}.category-tabs button{font-size:10px;padding:10px 6px;flex-basis:calc(50% - 4px)}.tier-legend{font-size:10px}.tier-legend span{padding:5px 10px}}
.page-heading{padding:28px 0}.page-heading h1{font-size:28px;letter-spacing:-.8px;margin:0;line-height:1.5}
@media(max-width:600px){.page-heading{padding:23px 0}.page-heading h1{font-size:23px}}
.recipe .coin{font-family:'DM Sans','Noto Sans TC',sans-serif;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.4;gap:6px;padding:5px 7px;color:var(--ink)}
.coupon-title{font-size:11px;font-weight:600;color:var(--ink);line-height:1.6}
@media(max-width:1150px){.coupon-title{font-size:10px}}
@media(min-width:601px) and (max-width:950px){.coupon-title{font-size:12px}}
@media(max-width:600px){.coupon-title{font-size:12px}}
@media(max-width:600px){.table-scroll{overflow:visible}table,tbody{display:block;width:100%}thead{display:none}tbody tr{display:grid;grid-template-columns:1fr 75px 1fr;padding:16px;border-bottom:1px solid var(--border);gap:12px 9px}tbody tr:last-child{border-bottom:0}td{display:block;padding:0;border:0;min-width:0}td:first-child,td:nth-child(2){grid-column:1/-1}.coupon-name{min-width:0;gap:12px}.coupon-name a{font-size:12px}.coupon-name img{width:36px;height:36px}.coupon-id{font-size:9px}.recipe{gap:7px;margin-left:48px;min-width:0}.coin{font-size:10px}td[data-label]:before{content:attr(data-label);display:block;color:var(--dim);font-size:9px;font-weight:400;letter-spacing:0;margin-bottom:9px}.coupon-cost,.coupon-subtotal{font-size:13px;white-space:normal;overflow-wrap:anywhere}td:nth-child(5){text-align:right}.coupon-quantity{width:65px;padding:7px 3px}.unknown{font-size:11px}td:nth-child(2).unknown{margin-left:48px}.receipt .total strong{font-size:23px;line-height:1.5}.receipt .total span{font-size:10px}.receipt .demand{grid-template-columns:1fr}.receipt .coin{padding:6px 8px}.receipt-demand .receipt-label{font-size:8px;letter-spacing:1px}.hero-art{pointer-events:none}}
@media(max-width:600px){.recipe{margin-left:0}td:nth-child(2).unknown{margin-left:0}td:nth-child(5){text-align:center}}
.recipe .coin{background:transparent}
tbody td:first-child{text-align:left}.coupon-name{justify-content:flex-start}
.market>.toolbar{justify-content:flex-end}.market>.toolbar #status:not([hidden]){margin-right:auto}
.direct-entry input[type=number]{text-align:center;appearance:textfield;-moz-appearance:textfield}.direct-entry input[type=number]::-webkit-inner-spin-button,.direct-entry input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.category-tabs+.tier-legend{margin-top:14px}
.game-logo{display:block;width:140px;max-height:58px;object-fit:contain}@media(max-width:600px){.game-logo{width:110px;max-height:46px}}
.refresh-controls{display:flex;flex-direction:column;align-items:flex-end;gap:7px}.refresh-controls .updated{margin:0;font-size:10px;color:var(--dim)}.refresh-controls .updated:empty{display:none}.card .source{display:inline-block;margin-top:9px}
/* Readable typography throughout the coupon workspace. */
.raffles .section-title{font-size:26px}
.category-tabs button{font-size:14px;line-height:1.6;padding:11px 13px}
.tier-legend{font-size:13px}
.tier-legend span{padding:6px 11px}
.raffles .secondary{font-size:13px;padding:9px}
.raffles thead th{font-size:13px;padding:16px 12px}
.raffles tbody td{padding:19px 12px}
.coupon-name{min-width:235px;gap:12px}
.coupon-title{font-size:15px;line-height:1.65}
.coupon-name img{width:40px;height:40px}
.recipe .coin{font-size:16px;gap:7px}
.recipe .coin img{width:21px;height:21px}
.coupon-cost,.coupon-subtotal{font-size:16px}
.coupon-quantity{font-size:16px;width:72px;padding:10px 5px}
.raffles .rules,.raffles .caption{font-size:14px;line-height:1.8}
.receipt .total span,.receipt-tip,.receipt-label,.direct-total{font-size:13px}
.receipt .coin,.direct-total strong{font-size:14px}
@media(max-width:600px){
  .raffles .section-title{font-size:24px}
  .category-tabs button{font-size:13px;padding:10px 7px}
  .tier-legend{font-size:12px}
  .raffles tbody td{padding:0}
  .raffles tbody tr{padding:19px 16px;gap:15px 10px}
  .coupon-name{min-width:0}
  .coupon-title{font-size:15px}
  .recipe .coin{font-size:16px}
  .coupon-cost,.coupon-subtotal,.coupon-quantity{font-size:16px}
  td[data-label]:before{font-size:12px;margin-bottom:10px}
  .coupon-quantity{width:68px}
  .receipt .total span,.receipt-tip,.receipt-demand .receipt-label{font-size:12px}
  .receipt .coin{font-size:13px}
}
.ball-market-link{color:inherit;text-decoration:underline;text-decoration-color:#adbfae;text-underline-offset:4px}.ball-market-link:hover{color:var(--green);text-decoration-color:currentColor}
button.coupon-name{border:0;border-radius:5px;background:transparent;padding:0;width:100%;text-align:left;font-weight:inherit;color:inherit;cursor:help;box-shadow:none}
button.coupon-name:hover{background:transparent;border:0}
button.coupon-name:hover .coupon-title{text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px}
.reward-preview{position:fixed;inset:auto;margin:0;width:min(780px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;padding:18px;background:#fff;border:1px solid #cbd7c7;border-radius:14px;box-shadow:0 16px 55px #14251d30;color:var(--ink);font-family:'DM Sans','Noto Sans TC',sans-serif}
.reward-preview::backdrop{background:transparent;pointer-events:none}
.reward-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.reward-heading h3{margin:5px 0 0;font-size:17px;line-height:1.5}
.reward-period{font-size:12px;color:var(--dim)}
.reward-close{font-size:23px;line-height:1;width:32px;height:32px;padding:2px;flex-shrink:0;border:0;background:#f0f3ec}
.reward-image{display:block;width:100%;height:auto;border-radius:8px}
.reward-content{font-size:14px;line-height:1.8}
.reward-links{display:flex;justify-content:space-between;gap:14px;margin-top:12px;font-size:12px}
.reward-links:empty{display:none}
@media(max-width:600px){.reward-preview{padding:13px}.reward-heading h3{font-size:15px}.reward-period{font-size:11px}.reward-heading{gap:10px;margin-bottom:10px}}
tbody td:nth-child(2){text-align:left}.recipe{justify-content:flex-start}
.recipe{display:grid;grid-template-columns:repeat(2,78px);gap:6px 10px;min-width:166px;justify-content:start}
.recipe .coin{display:grid;grid-template-columns:21px 3ch;align-items:center;gap:7px;padding:5px 0}
.recipe .coin-amount{text-align:right;font-variant-numeric:tabular-nums}
.refresh-controls{flex-direction:row;align-items:center;gap:12px}
.refresh-controls .updated{white-space:nowrap}
#refresh{font-size:11px;line-height:1.2;padding:6px 9px;border-radius:6px}#refresh:before{font-size:13px;margin-right:5px}
.category-tabs{position:relative;isolation:isolate;border-radius:999px;padding:6px;gap:5px;overflow:visible}
.category-tabs button{position:relative;z-index:1;border-radius:999px;background:transparent;border-color:transparent;box-shadow:none}
.category-tabs button[aria-selected=true],.category-tabs button:hover{background:transparent;border-color:transparent;box-shadow:none}
.category-tabs button[aria-selected=true]{color:var(--green)}
.tab-indicator{position:absolute;z-index:0;pointer-events:none;background:white;border:1px solid #ced9c7;border-radius:999px;box-shadow:0 3px 9px #29452e12;transition:left .4s cubic-bezier(.22,.8,.3,1),top .4s cubic-bezier(.22,.8,.3,1),width .4s cubic-bezier(.22,.8,.3,1),height .4s cubic-bezier(.22,.8,.3,1);transform-origin:center}
.tier-legend button{font-size:13px;padding:7px 14px;border-radius:999px;border:1px solid #202a2614;color:var(--ink);background:var(--tier-bg);font-weight:500}
.tier-legend button:hover{border-color:#80967b;background:var(--tier-hover)}
.tier-legend button[aria-pressed=true]{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green);font-weight:700}
@media(max-width:600px){.category-tabs{border-radius:24px}.category-tabs button{border-radius:999px}.tier-legend button{font-size:12px;padding:7px 13px}}
html{scrollbar-gutter:stable}
.category-tabs{overflow:hidden;overflow:clip}
.category-tabs button,.category-tabs button[aria-selected=true]{font-weight:600}
.tier-legend button,.tier-legend button[aria-pressed=true]{font-weight:600}
.tier-legend button{transition:background-color .22s ease,border-color .22s ease,box-shadow .22s ease,color .22s ease;transform-origin:center}
@media(min-width:601px){
  .raffles table{table-layout:fixed;width:100%}
  .raffles th:nth-child(1){width:35%}
  .raffles th:nth-child(2){width:27%}
  .raffles th:nth-child(3){width:14%}
  .raffles th:nth-child(4){width:10%}
  .raffles th:nth-child(5){width:14%}
  .coupon-name{min-width:0}
  .coupon-title{min-width:0;overflow-wrap:anywhere}
  .recipe{min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .coupon-quantity{width:100%;max-width:72px;min-width:0}
  .coupon-cost,.coupon-subtotal{white-space:normal;overflow-wrap:anywhere}
}
.reward-preview{background:rgba(255,255,255,.68);backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);border-color:rgba(255,255,255,.7);box-shadow:0 16px 55px #14251d26,inset 0 1px 0 #ffffffb3}
.reward-close{background:rgba(240,243,236,.65)}
@supports not (backdrop-filter:blur(1px)){.reward-preview{background:rgba(255,255,255,.94)}}
.reward-preview{background:rgba(255,255,255,.4);border-color:rgba(255,255,255,.5)}
.topbar-actions{display:flex;align-items:center;gap:20px}
.theme-toggle{display:grid;place-items:center;width:36px;height:36px;padding:7px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--ink)}
.theme-toggle svg{width:20px;height:20px}.theme-toggle .sun-icon{display:none}
[data-theme=dark]{color-scheme:dark;--paper:#151b19;--card:#202925;--ink:#e7ede7;--dim:#a6b2a7;--border:#35423a;--green:#a2cfaf;--mint:#2a3c30;--accent:#a2cfaf;--text:#e7ede7;--bg:#151b19}
[data-theme=dark] .theme-toggle .moon-icon{display:none}[data-theme=dark] .theme-toggle .sun-icon{display:block}
[data-theme=dark] .theme-toggle:hover{background:#2b3930}
[data-theme=dark] .brand-icon{background:#4c7658}
[data-theme=dark] .market{background:#1d2721}
[data-theme=dark] .card,[data-theme=dark] .receipt,[data-theme=dark] .table-scroll{background:var(--card);border-color:var(--border)}
[data-theme=dark] button{color:var(--ink)}
[data-theme=dark] button:not(.coupon-name):not([role=tab]):hover{background:#344538}
[data-theme=dark] input,[data-theme=dark] select{background:#17211b;color:var(--ink);border-color:#435247}
[data-theme=dark] input[aria-invalid=true]{border-color:#dd896d;background:#412b26}
[data-theme=dark] .tier-basic{--tier-bg:#23333f;--tier-hover:#2b4050}
[data-theme=dark] .tier-premium{--tier-bg:#3b3524;--tier-hover:#4a422c}
[data-theme=dark] .tier-luxury{--tier-bg:#332c40;--tier-hover:#423650}
[data-theme=dark] .tier-basic input,[data-theme=dark] .tier-premium input,[data-theme=dark] .tier-luxury input{background:#15201e99}
[data-theme=dark] .category-tabs{background:#202c24}
[data-theme=dark] .tab-indicator{background:#384a3d;border-color:#526c57;box-shadow:0 3px 9px #0003}
[data-theme=dark] .tier-legend button{border-color:#ffffff25}
[data-theme=dark] .tier-legend button[aria-pressed=true]{border-color:var(--green)}
[data-theme=dark] th{background:#202b24;color:var(--dim)}
[data-theme=dark] td{border-bottom-color:#ffffff0d}
[data-theme=dark] .coin,[data-theme=dark] .receipt .coin{background:#2b3b30;color:#d4e3d3}
[data-theme=dark] .recipe .coin{background:transparent;color:var(--ink)}
[data-theme=dark] .rules{background:#243027}
[data-theme=dark] .receipt-rule{border-color:#48594b}
[data-theme=dark] .notice{color:#edb18c}
[data-theme=dark] .reward-preview{background:rgba(25,35,29,.46);border-color:rgba(185,215,192,.25);box-shadow:0 16px 55px #0005,inset 0 1px 0 #ffffff10}
[data-theme=dark] .reward-close{background:rgba(70,90,74,.5)}
[data-theme=dark] #refresh{border-color:#536551}
@media(max-width:600px){.topbar-actions{gap:12px}.theme-toggle{width:34px;height:34px}}
[data-theme=dark] .game-logo{background:rgba(255,255,255,.92);padding:6px 8px;border-radius:8px}
/* Neutral charcoal dark theme. */
[data-theme=dark]{--paper:#151619;--card:#202126;--ink:#ececf0;--dim:#a5a5b1;--border:#36373f;--green:#d5d5e4;--mint:#2c2d35;--accent:#d5d5e4;--text:#ececf0;--bg:#151619}
[data-theme=dark] .brand-icon{background:#484953}
[data-theme=dark] .market{background:#1b1c21}
[data-theme=dark] .theme-toggle:hover,[data-theme=dark] button:not(.coupon-name):not([role=tab]):hover{background:#363740}
[data-theme=dark] input,[data-theme=dark] select{background:#191a1f;border-color:#42434d}
[data-theme=dark] .category-tabs{background:#25262d}
[data-theme=dark] .tab-indicator{background:#42434e;border-color:#60616f;box-shadow:0 3px 9px #0003}
[data-theme=dark] th{background:#24252c}
[data-theme=dark] .coin,[data-theme=dark] .receipt .coin{background:#2e2f38;color:#dedee7}
[data-theme=dark] .recipe .coin{background:transparent;color:var(--ink)}
[data-theme=dark] .tier-basic input,[data-theme=dark] .tier-premium input,[data-theme=dark] .tier-luxury input{background:#17181e99}
[data-theme=dark] .rules{background:#292a32}
[data-theme=dark] .receipt-rule{border-color:#484952}
[data-theme=dark] #refresh{border-color:#50515c}
[data-theme=dark] .ball-market-link{text-decoration-color:#777886}
[data-theme=dark] .reward-preview{background:rgba(29,30,37,.4);border-color:rgba(210,210,228,.23);box-shadow:0 16px 55px #0005,inset 0 1px 0 #ffffff10}
[data-theme=dark] .reward-close{background:rgba(76,77,90,.5)}
/* Subtle slate, champagne and mauve tier colors on charcoal. */
[data-theme=dark] .tier-basic{--tier-bg:#252a32;--tier-hover:#2d3440}
[data-theme=dark] .tier-premium{--tier-bg:#2d2b27;--tier-hover:#38342d}
[data-theme=dark] .tier-luxury{--tier-bg:#2b2831;--tier-hover:#36303f}
[data-theme=dark] .tier-legend .tier-basic{color:#bdcce1}
[data-theme=dark] .tier-legend .tier-premium{color:#dccbab}
[data-theme=dark] .tier-legend .tier-luxury{color:#cfc0df}
[data-theme=dark] .tier-legend button{border-color:#ffffff16}
[data-theme=dark] .tier-legend .tier-basic[aria-pressed=true]{border-color:#8b9db8;box-shadow:inset 0 0 0 1px #8b9db8}
[data-theme=dark] .tier-legend .tier-premium[aria-pressed=true]{border-color:#ad9b78;box-shadow:inset 0 0 0 1px #ad9b78}
[data-theme=dark] .tier-legend .tier-luxury[aria-pressed=true]{border-color:#a591b9;box-shadow:inset 0 0 0 1px #a591b9}
[data-theme=dark] .game-logo{background:transparent;padding:0;border-radius:0;filter:brightness(0) invert(1)}
.coupon-quantity{text-align:center;appearance:textfield;-moz-appearance:textfield}.coupon-quantity::-webkit-inner-spin-button,.coupon-quantity::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.coupon-quantity:focus,.coupon-quantity:focus-visible,.direct-entry input:focus,.direct-entry input:focus-visible{outline:none;box-shadow:none}.coupon-quantity::selection,.direct-entry input::selection{background:transparent;color:inherit}
[data-theme=dark] .game-logo{background:transparent;filter:none}
.game-logo-wrap{position:relative;display:inline-block;flex-shrink:0}.logo-lettering{display:none;position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:brightness(0) invert(1);clip-path:inset(0 15% 0 0)}[data-theme=dark] .logo-lettering{display:block}
.coupon-stepper{display:grid;grid-template-columns:17px minmax(0,1fr) 17px;align-items:center;width:100%;max-width:96px;margin:auto;border:1px solid var(--border);border-radius:8px;background:#ffffff80;overflow:hidden}
.coupon-stepper .coupon-quantity{border:0;border-radius:0;width:100%;min-width:0;max-width:none;padding:10px 0;background:transparent;font-size:15px}
.quantity-step{border:0;border-radius:0;background:transparent;padding:8px 0;font-size:15px;line-height:1.2;color:var(--ink);box-shadow:none}
.quantity-step:hover{background:#202a2610}
[data-theme=dark] .coupon-stepper{background:#17181e99}
[data-theme=dark] .coupon-stepper .coupon-quantity{background:transparent}
@media(max-width:600px){.coupon-stepper{width:82px;max-width:100%}}
.tier-premium{--tier-bg:#fff0e9;--tier-hover:#ffe5d9}[data-theme=dark] .tier-premium{--tier-bg:#332926;--tier-hover:#42322d}[data-theme=dark] .tier-legend .tier-premium{color:#e7bca8}[data-theme=dark] .tier-legend .tier-premium[aria-pressed=true]{border-color:#b88973;box-shadow:inset 0 0 0 1px #b88973}
.coupon-stepper .quantity-step{border-radius:999px;width:17px;height:26px;padding:0;display:grid;place-items:center;align-self:center}.coupon-stepper .quantity-step:hover{border-radius:999px}
.coupon-stepper .quantity-step{height:17px}
.tier-premium{--tier-bg:#fff7d6;--tier-hover:#ffedaf}[data-theme=dark] .tier-premium{--tier-bg:#343023;--tier-hover:#443c28}[data-theme=dark] .tier-legend .tier-premium{color:#e5cf83}[data-theme=dark] .tier-legend .tier-premium[aria-pressed=true]{border-color:#b8a15d;box-shadow:inset 0 0 0 1px #b8a15d}[data-theme=dark] .tier-legend .tier-premium:hover{background:var(--tier-hover)}
/* Tier indicators use a left rail instead of full-row color. */
#coupon-rows .tier-basic{--tier-rail:#7da3cf}
#coupon-rows .tier-premium{--tier-rail:#d4b447}
#coupon-rows .tier-luxury{--tier-rail:#ad8bc9}
#coupon-rows tr[class^=tier-],#coupon-rows tr[class^=tier-]:hover{background:transparent}
#coupon-rows tr td:first-child{box-shadow:inset 3px 0 0 var(--tier-rail)}
#coupon-rows tr:hover td{background:rgba(32,42,38,.025)}
#coupon-rows .coupon-stepper{background:#fafbf8}
[data-theme=dark] #coupon-rows .coupon-stepper{background:#191a1f}
[data-theme=dark] #coupon-rows tr:hover td{background:rgba(255,255,255,.025)}
[data-theme=dark] #coupon-rows .tier-basic{--tier-rail:#8faed2}
[data-theme=dark] #coupon-rows .tier-premium{--tier-rail:#cfb45b}
[data-theme=dark] #coupon-rows .tier-luxury{--tier-rail:#b89acd}
@media(max-width:600px){#coupon-rows tr{box-shadow:inset 3px 0 0 var(--tier-rail)}#coupon-rows tr td:first-child{box-shadow:none}#coupon-rows tr:hover td{background:transparent}}
