:root{--bg:#0e1622;--surface:#16202d;--line:#2a3f5a;--text:#c7d5e0;--muted:#6d7e8f;--accent:#66c0f4;--price:#beee11;--disc-bg:#4c6b22;--disc-fg:#d2e885;--low-bg:#4a3416;--low-fg:#f0b95a;--radius:10px;--maxw:1120px;--heading:#fff;--row-hover:#1c2a3a;--row-zebra:#131c28;--thead-bg:#101b27;--toolbar-bg:#0e1622;--ctl-bg:#16202d;--ctl-border:#2a3f5a;--ctl-text:#c7d5e0;color-scheme:dark}[data-theme=light]{--bg:#eef1f5;--surface:#fff;--line:#d6dde5;--text:#2a3744;--muted:#5b6b7b;--accent:#1a6dc4;--price:#3a7d00;--disc-bg:#d6e8c0;--disc-fg:#2f5212;--low-bg:#fbe7c4;--low-fg:#8a5a12;--heading:#0d1722;--row-hover:#eef3f8;--row-zebra:#f6f8fb;--thead-bg:#e8edf3;--toolbar-bg:#eef1f5;--ctl-bg:#fff;--ctl-border:#cfd8e1;--ctl-text:#1b2733;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,Noto Sans TC,Microsoft JhengHei,sans-serif;line-height:1.6}.wrap{max-width:var(--maxw);margin:0 auto;padding:24px 16px 8px}h1{color:var(--heading);margin:0 0 2px;font-size:24px;font-weight:600}h2{color:var(--heading);border-left:3px solid var(--accent);margin:28px 0 12px;padding-left:10px;font-size:18px;font-weight:600}a{color:var(--accent);text-decoration:none}.muted{color:var(--muted)}.small{font-size:12px}p{margin:0}.head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.lang-btn{background:var(--surface);color:var(--text);border:1px solid var(--line);cursor:pointer;border-radius:8px;padding:6px 12px;font-size:13px}.lang-btn:hover{border-color:var(--accent)}.grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.thumb{aspect-ratio:460/215;object-fit:cover;background:var(--bg);width:100%;display:block}.card-body{padding:12px 14px}.card-title{color:var(--heading);white-space:nowrap;text-overflow:ellipsis;margin:0 0 8px;font-weight:500;overflow:hidden}.row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.row:last-child{min-height:20px;margin-bottom:0}.badge{border-radius:6px;padding:2px 8px;font-size:12px;font-weight:500;line-height:1.4}.badge-disc{background:var(--disc-bg);color:var(--disc-fg)}.badge-low{background:var(--low-bg);color:var(--low-fg)}.pill{color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:2px 8px;font-size:12px}.pill-steam{color:#4a9fe0;border-color:#4a9fe0}.pill-epic{color:#d6a23a;border-color:#d6a23a}.pill-gog{color:#a564d4;border-color:#a564d4}.price{color:var(--price);font-size:17px;font-weight:500}.was{color:var(--muted);font-size:13px;text-decoration:line-through}.claim-btn{margin-left:auto;font-size:13px}.site-footer{max-width:var(--maxw);border-top:1px solid var(--line);color:var(--muted);margin:24px auto 0;padding:14px 16px 28px;font-size:12px}.card.clickable{cursor:pointer;transition:border-color .12s}.card.clickable:hover{border-color:var(--accent)}.title-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.title-row .card-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;overflow:hidden}.wish-btn{color:var(--muted);cursor:pointer;background:0 0;border:0;flex:none;padding:0;font-size:18px;line-height:1}.wish-btn.on{color:var(--low-fg)}.wish-btn:hover{color:var(--heading)}.toolbar{z-index:20;background:var(--toolbar-bg);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:28px 0 12px;padding:10px 0;display:flex;position:sticky;top:0}.toolbar h2{border-left:3px solid var(--accent);margin:0;padding-left:10px;font-size:18px}.toolbar-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.search-input,.ctl-select,.ctl-btn{background:var(--ctl-bg);color:var(--ctl-text);border:1px solid var(--ctl-border);border-radius:8px;padding:6px 10px;font-size:13px;line-height:1.4}.search-input{min-width:190px}.search-input:focus,.ctl-select:focus,.ctl-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.ctl-btn{cursor:pointer}.ctl-btn:hover,.ctl-select:hover{border-color:var(--accent)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.empty-state{text-align:center;color:var(--muted);padding:48px 12px}.deal-table{border-collapse:collapse;width:100%;font-size:13px}.deal-table thead th{background:var(--thead-bg);color:var(--muted);text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 10px;font-weight:500;position:sticky;top:51px}.deal-table th .col-sort{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:3px;padding:0;display:inline-flex}.deal-table th .col-sort:hover{color:var(--text)}.deal-table th[aria-sort=ascending] .col-sort:after{content:"▲";font-size:9px}.deal-table th[aria-sort=descending] .col-sort:after{content:"▼";font-size:9px}.deal-table th.col-num,.deal-table td.col-num{text-align:right}.deal-row{cursor:pointer;border-bottom:1px solid var(--line)}.deal-row:nth-child(2n){background:var(--row-zebra)}.deal-row:hover{background:var(--row-hover)}.deal-row td{vertical-align:middle;padding:6px 10px}.row-thumb{aspect-ratio:460/215;object-fit:cover;background:var(--bg);border-radius:4px;width:92px;display:block}.row-name{color:var(--heading);font-weight:500}.deal-table .price{font-size:14px}.deal-table .was{font-size:12px}.col-when{color:var(--muted);white-space:nowrap;font-size:12px}.col-trend{width:72px}.spark{width:64px;height:18px;display:block;overflow:visible}.spark.down{color:var(--price)}.spark.up{color:#e06a5a}.spark.flat{color:var(--muted)}@media (width<=680px){.deal-table .col-thumb,.deal-table .col-when,.deal-table .col-regular,.deal-table .col-review,.deal-table .col-trend{display:none}.deal-table thead th{top:0}}.settings{max-width:560px;margin:8px 0}.set-row{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.set-row[hidden]{display:none}.set-label{color:var(--heading);font-weight:500}.seg{border:1px solid var(--ctl-border);background:var(--ctl-bg);border-radius:8px;display:inline-flex;overflow:hidden}.seg-btn{color:var(--ctl-text);border:0;border-left:1px solid var(--ctl-border);cursor:pointer;background:0 0;padding:6px 12px;font-size:13px;line-height:1.4}.seg-btn:first-child{border-left:0}.seg-btn:hover{color:var(--heading)}.seg-btn.on{background:var(--accent);color:var(--bg)}.seg-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.set-subhead{border-left:3px solid var(--accent);margin:26px 0 6px;padding-left:10px;font-size:16px}.set-row-genres{align-items:flex-start}.genre-multi{flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:62%;display:flex}.genre-btn{border:1px solid var(--ctl-border);background:var(--ctl-bg);color:var(--ctl-text);cursor:pointer;border-radius:999px;padding:4px 12px;font-size:13px;line-height:1.4}.genre-btn:hover{color:var(--heading)}.genre-btn.on{background:var(--accent);color:var(--bg);border-color:var(--accent)}.genre-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.set-select{background:var(--ctl-bg);color:var(--ctl-text);border:1px solid var(--ctl-border);border-radius:8px;min-width:180px;max-width:60%;padding:6px 10px;font-size:13px;line-height:1.4}.set-select:hover{border-color:var(--accent)}.set-select:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.srv-invite-btn,.srv-add-another{text-decoration:none}.srv-add-another{white-space:nowrap}.srv-guild-pick,.srv-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.srv-actions-row{align-items:flex-start}.ctl-btn-danger{color:#e06a5a;border-color:#e06a5a}.ctl-btn-danger:hover{color:#fff;background:#e06a5a;border-color:#e06a5a}.srv-status{margin:6px 0 0}.srv-status[data-srv-state=connected]{color:var(--accent)}.srv-action-msg{min-height:18px}.seg-btn:disabled{opacity:.45;cursor:not-allowed}.seg-btn:disabled:hover{color:var(--ctl-text)}.countdown{color:var(--low-fg);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.countdown.ended{color:var(--muted)}.review{white-space:nowrap;font-size:12px}.review.pos{color:var(--price)}.review.mid{color:var(--low-fg)}.review.neg{color:#e06a5a}.gd-target{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.target-lbl{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.target-input{border:1px solid var(--ctl-border);background:var(--ctl-bg);width:96px;color:var(--ctl-text);border-radius:6px;padding:5px 8px}.target-input:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.import-box{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.game-detail{margin:8px 0}.gd-head{flex-wrap:wrap;align-items:flex-start;gap:18px;margin-bottom:8px;display:flex}.gd-cover{aspect-ratio:460/215;object-fit:cover;border-radius:var(--radius);border:1px solid var(--line);width:min(460px,100%)}.gd-info{flex:1;min-width:240px}.gd-info h1{margin:0 0 10px}.gd-info .row{margin-bottom:8px}.gd-chart{max-width:640px}.gd-shots{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;display:grid}.gd-shots img{border:1px solid var(--line);border-radius:6px;width:100%;display:block}.row-name-link,.card-title-link{color:var(--heading);font-weight:500;text-decoration:none}.row-name-link:hover,.card-title-link:hover{color:var(--accent);text-decoration:underline}.filter-ctl{color:var(--muted);align-items:center;gap:5px;font-size:12px;display:inline-flex}.filter-ctl input[type=number]{background:var(--ctl-bg);width:84px;color:var(--ctl-text);border:1px solid var(--ctl-border);border-radius:8px;padding:6px 8px;font-size:13px}.filter-ctl input[type=number]:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.gear-link{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:8px;align-items:center;padding:5px 9px;font-size:16px;text-decoration:none;display:inline-flex}.gear-link:hover{border-color:var(--accent)}.gear-link:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
