/* Shared full-screen product surfaces, desktop and mobile. */
.game-filters{display:flex;flex-direction:column;align-items:stretch;gap:var(--pw-space-2);}.game-filters[hidden]{display:none;}.game-filter-row{display:flex;align-items:center;gap:var(--pw-space-2);overflow-x:auto;min-width:0;padding-bottom:var(--pw-space-1);}.game-filter-row>*{flex-shrink:0;}.game-filter-row .game-filter{min-height:44px;}.game-filter-row .game-filter-label{min-width:30px;}
.city-home .city-map-stage{background-image:url('../../assets/city/pw-island-detail-desktop-v3.webp');background-size:100% 100%;}
.city-home .city-map-stage .hot-hall{left:34%;top:38%;}.city-home .city-map-stage .hot-agent{left:49%;top:42%;}.city-home .city-map-stage .hot-arcade{left:34%;top:53%;}.city-home .city-map-stage .hot-market{left:57%;top:51%;}.city-home .city-map-stage .hot-harbor{left:71%;top:62%;}
html[data-city-time=day] .city-map-stage,html[data-city-time=morning] .city-map-stage{background-image:url('../../assets/city/pw-island-day-detail-v2.png');}
html[data-city-time=morning] .city-map-stage{filter:brightness(1.03) saturate(.85);}
html[data-city-time=day] .city-map-stage{filter:saturate(.82);}
html[data-city-time=evening] .city-map-stage{filter:saturate(.65);}
html[data-city-time=night] .city-map-stage{background-image:url('../../assets/city/pw-island-night-v1.png');filter:none;}
html[data-city-time=day] .city-home:before,html[data-city-time=morning] .city-home:before{background:linear-gradient(180deg,color-mix(in srgb, var(--pw-brand-navy) 22%, transparent),transparent 25%,transparent 70%,color-mix(in srgb, var(--pw-brand-navy) 44%, transparent));}
html body #modal{position:fixed;inset:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:0;border:0;border-radius:0;background:linear-gradient(125deg,var(--pw-brand-navy-surface),var(--pw-brand-navy-surface) 65%);box-shadow:none;backdrop-filter:none;overflow-y:auto;}
html body #modal .modal-content{max-width:1120px;margin:0 auto;padding:var(--pw-space-10) var(--pw-space-12) var(--pw-space-16);}
html body #modal .modal-head{position:relative;display:flex;align-items:center;padding:0 0 var(--pw-space-6);margin-bottom:var(--pw-space-6);border-bottom:1px solid var(--pw-brand-line-strong);}
html body #modal .close{width:auto;min-width:90px;height:44px;border-radius:var(--pw-radius-sm);font-size:var(--pw-text-sm);flex-shrink:0;}
html body #modal h2{font-size:var(--pw-text-display);letter-spacing:-.02em;}
html body #modal p,html body #modal .modal-info strong{font-size:var(--pw-text-base);}
html body #modal .modal-info span{font-size:var(--pw-text-sm);}
html body #modal button{min-height:44px;}
.merchant-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--pw-space-16);}
.external-shop{max-width:760px;margin:0 auto;background:var(--pw-color-canvas-edge);color:var(--pw-color-ink);border-radius:var(--pw-radius-xl);padding:var(--pw-space-6);box-shadow:var(--pw-shadow-floating)}.external-shop header{display:flex;align-items:center;gap:var(--pw-space-3);border-bottom:1px solid var(--pw-color-line-strong);padding-bottom:var(--pw-space-4)}.external-shop header h3,.external-product h3{margin:var(--pw-space-1) 0}.external-shop>.merchant-photo{width:100%;max-height:320px;object-fit:cover;border-radius:var(--pw-radius-lg);margin:var(--pw-space-5) 0}.external-product{display:flex;justify-content:space-between;gap:var(--pw-space-5);align-items:start}.external-product strong{font-size:var(--pw-text-xl);white-space:nowrap}.external-cart{margin-top:var(--pw-space-5);padding-top:var(--pw-space-4);border-top:1px solid var(--pw-color-line-strong);display:flex;flex-wrap:wrap;align-items:center;gap:var(--pw-space-3)}.external-cart p{flex:1 1 100%;margin:0 0 var(--pw-space-1)}.desk-money-flow{margin:var(--pw-space-5) 0;padding:var(--pw-space-4);border:1px solid var(--pw-color-line-strong);border-radius:var(--pw-radius-md);background:var(--pw-brand-navy-surface)}.desk-money-flow ol{list-style:none;padding:0;margin:var(--pw-space-3) 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--pw-space-2)}.desk-money-flow li{padding:var(--pw-space-3);border-radius:var(--pw-radius-sm);background:var(--pw-brand-surface-soft)}.desk-money-flow li b,.desk-money-flow li span{display:block}.desk-money-flow li span{font-size:var(--pw-text-sm);line-height:1.5;color:var(--pw-color-ink-subtle);margin-top:var(--pw-space-1)}
.merchant-intro{font-size:var(--pw-text-xl)!important;line-height:1.8;max-width:620px;}
.merchant-meta{color:var(--pw-color-ink-subtle);margin-bottom:var(--pw-space-3);}
.merchant-score{border-top:1px solid color-mix(in srgb, var(--pw-brand-on-navy) 19%, transparent);padding-top:var(--pw-space-6);margin:var(--pw-space-8) 0;}.merchant-score strong{font-size:var(--pw-text-display);color:var(--pw-brand-gold);}
.merchant-voucher{padding:var(--pw-space-8);background:var(--pw-brand-surface-soft);border-top:3px solid var(--pw-color-gold);align-self:start;}
.merchant-voucher h3{font-size:var(--pw-text-xl);margin:var(--pw-space-3) 0;}.merchant-voucher button{width:100%;margin:var(--pw-space-2) 0 0;}
.merchant-address{line-height:2;}.merchant-address span{display:block;}
.voucher-code{background:var(--pw-color-surface);color:var(--pw-color-ink);padding:var(--pw-space-6);max-width:300px;margin:var(--pw-space-6) auto;text-align:center;}.voucher-code img{width:220px;max-width:100%;display:block;margin:auto;}.voucher-code b{display:block;margin-top:var(--pw-space-3);}
.merchant-footer{margin-top:var(--pw-space-8);padding-top:var(--pw-space-6);border-top:1px solid color-mix(in srgb, var(--pw-brand-on-navy) 13%, transparent);}
.merchant-categories{display:flex;gap:var(--pw-space-2);flex-wrap:wrap;margin:var(--pw-space-5) 0;}.merchant-categories [aria-pressed=true]{background:var(--pw-brand-gold);color:var(--pw-color-ink);}
.merchant-photo{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--pw-radius-sm);max-height:420px;margin-bottom:var(--pw-space-6);}
.merchant-logo{width:64px;height:64px;object-fit:contain;flex-shrink:0;border-radius:var(--pw-radius-md);background:var(--pw-color-canvas-edge);color:var(--pw-color-ink);}
.merchant-monogram{display:grid;place-items:center;font-family:var(--pw-font-display);font-size:var(--pw-text-xl);font-weight:var(--pw-weight-bold);}
.merchant-identity,.merchant-detail-brand{display:flex;align-items:center;gap:var(--pw-space-4);margin-bottom:var(--pw-space-5);}.merchant-identity h3{margin:var(--pw-space-1) 0;}.merchant-detail-brand{margin-bottom:var(--pw-space-5);}
.branded-merchant{overflow:hidden;}.branded-merchant .merchant-photo{max-height:230px;}.brand-upload{margin-top:var(--pw-space-6);display:grid;gap:var(--pw-space-4);}.brand-upload input{display:block;margin:var(--pw-space-3) 0;max-width:100%;}
@media(max-width:650px){.merchant-categories{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--pw-space-1);}.merchant-categories button{padding:var(--pw-space-2) var(--pw-space-1);font-size:var(--pw-text-sm);}.merchant-identity h3{font-size:var(--pw-text-xl);}}
@media(max-width:700px){html body #modal .modal-content{padding:var(--pw-space-6) var(--pw-space-5) var(--pw-space-10);}html body #modal h2{font-size:var(--pw-text-xl);}.merchant-layout{grid-template-columns:1fr;gap:var(--pw-space-6);}.merchant-intro{font-size:var(--pw-text-lg)!important;}.merchant-voucher{padding:var(--pw-space-5);}.merchant-score{margin:var(--pw-space-5) 0;}.modal-actions{flex-wrap:wrap;}.external-shop{padding:var(--pw-space-4);border-radius:var(--pw-radius-lg)}.external-product{align-items:end}.external-product p{margin-bottom:0}.desk-money-flow ol{grid-template-columns:1fr}}
/* 商业街重设计：纯色封面 + Logo，卡片不放商品和价格 */
.merchant-cover{display:grid;place-items:center;width:100%;aspect-ratio:16/7;max-height:200px;border-radius:var(--pw-radius-md);margin-bottom:var(--pw-space-4);background:linear-gradient(135deg,color-mix(in srgb,var(--cover,var(--pw-brand-navy-surface)) 88%,var(--pw-color-ink)),color-mix(in srgb,var(--cover,var(--pw-brand-navy-surface)) 70%,var(--pw-color-surface)));}
.merchant-cover .merchant-logo{width:72px;height:72px;box-shadow:var(--pw-shadow-raised);}
.branded-merchant .merchant-cover{max-height:140px;aspect-ratio:16/6;}
.merchant-card-intro{font-size:var(--pw-text-sm);line-height:1.6;margin:var(--pw-space-1) 0 var(--pw-space-2);}
.merchant-card-facts{list-style:none;padding:0;margin:0 0 var(--pw-space-3);display:grid;gap:var(--pw-space-1);}
.merchant-card-facts li{display:flex;justify-content:space-between;gap:var(--pw-space-3);font-size:var(--pw-text-sm);}
.merchant-card-facts span{color:var(--pw-color-ink-muted);flex-shrink:0;}.merchant-card-facts b{font-weight:var(--pw-weight-semibold);text-align:right;overflow-wrap:anywhere;}
.street-shop-facts{display:flex;flex-wrap:wrap;align-items:center;gap:var(--pw-space-2);margin-bottom:var(--pw-space-3);}
.merchant-rating{font-size:var(--pw-text-sm);font-weight:var(--pw-weight-bold);color:var(--pw-color-ink);}.merchant-rating small{font-size:var(--pw-text-xs);font-weight:400;color:var(--pw-color-ink-muted);}
.pwv-badge{display:inline-flex;align-items:center;padding:var(--pw-space-1) var(--pw-space-2);border-radius:var(--pw-radius-round);background:var(--pw-color-canvas-edge);color:var(--pw-color-success);font-size:var(--pw-text-xs);font-weight:var(--pw-weight-semibold);}
#district-scene .street-reward{display:flex;align-items:center;justify-content:space-between;gap:var(--pw-space-2);margin:var(--pw-space-2) 0 0;padding:var(--pw-space-2) var(--pw-space-3);border-radius:var(--pw-radius-md);background:var(--pw-color-canvas-edge);color:var(--pw-color-gold)!important;font-size:var(--pw-text-sm);font-weight:var(--pw-weight-semibold);}
#district-scene .street-reward button{min-height:36px;padding:var(--pw-space-1) var(--pw-space-2);border:0;background:transparent;color:var(--pw-color-action);font-size:var(--pw-text-xs);font-weight:var(--pw-weight-semibold);}
#modal .merchant-score{display:flex;align-items:center;gap:var(--pw-space-2);flex-wrap:wrap;}
