/* ============ 场内消费（js/core/shop-ui.js，插画 js/core/venue-art.js） ============
   目录：场所卡片（铜版画风插画 + 名字 + 营业状态 + 会员几折）；菜单：左场所信息 / 中菜单或房型 / 右账单；小票：税务发票纸。 */
.modal-box.shop-box{width:1000px;height:min(690px,calc(calc(var(--vh) * 100) - 32px));}
#muShop .mb{display:flex;flex-direction:column;min-height:0;flex:1;overflow:hidden;padding:12px 16px;}
#muShop .mf .grow{flex:1;}
.shop{display:flex;flex-direction:column;gap:10px;min-height:0;flex:1;}
.shop-tabs{display:flex;flex:none;}
.shop-tabs button{flex:1;justify-content:center;gap:6px;height:32px;}
.shop-tabs .ic{width:14px;height:14px;fill:currentColor;}
.shop-member{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;font-size:12px;color:var(--cream-500);padding:2px 2px 8px;border-bottom:1px solid var(--hairline);flex:none;}
.shop-member b{font-family:var(--serif);font-weight:400;font-size:14px;color:var(--brass-100);}
.shop-member .dim{color:var(--cream-700);font-size:11px;}

/* ---------- 插画 ---------- */
.va{display:block;width:100%;height:100%;overflow:visible;}

/* ---------- 目录卡片 ---------- */
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(212px,1fr));grid-auto-rows:max-content;gap:12px;overflow:auto;min-height:0;flex:1;padding:2px 2px 6px;align-content:start;}
.vcard{display:flex;flex-direction:column;border:1px solid var(--brass-900);border-radius:var(--r-2);overflow:hidden;cursor:pointer;
  background:linear-gradient(180deg,#1b1410,#120d0a);box-shadow:var(--shadow-1);transition:border-color var(--t-fast),transform var(--t-fast);}
.vcard:hover{border-color:var(--brass-500);transform:translateY(-2px);}
.vcard .art{position:relative;height:112px;border-bottom:1px solid var(--brass-900);}
.vcard.closed .art .va{filter:grayscale(.55) brightness(.62);}
.vcard .vb{padding:8px 12px 11px;display:flex;flex-direction:column;gap:1px;min-width:0;}
.vcard .vb>b{font-family:var(--serif);font-weight:400;font-size:16px;color:var(--cream-100);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.vcard .vb .zh{font-size:12px;color:var(--cream-300);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.vcard .vb .where{font-size:11px;color:var(--cream-500);}
.vcard .tags,.sv-info .tags{display:flex;gap:5px;margin-top:6px;flex-wrap:wrap;}
em.st{font-style:normal;display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--cream-500);}
em.st::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--cream-700);flex:none;}
em.st.open{color:var(--cream-300);} em.st.open::before{background:var(--tie);}
em.st.hh{color:#ffd6a0;} em.st.hh::before{background:var(--warn);}
.vcard .art em.st{position:absolute;left:8px;bottom:7px;padding:2px 8px;border-radius:2px;background:rgba(8,6,4,.72);border:1px solid var(--brass-900);}

/* ---------- 场所页：信息 · 菜单 · 账单 ---------- */
.sv-cols{display:grid;grid-template-columns:214px minmax(0,1fr) 252px;gap:14px;flex:1;min-height:0;}
.sv-info{display:flex;flex-direction:column;gap:4px;overflow:auto;min-height:0;padding-right:2px;}
.sv-info .art{height:128px;border-radius:6px;overflow:hidden;border:1px solid var(--brass-900);margin-bottom:6px;flex:none;box-shadow:var(--shadow-1);}
.sv-info .nm{font-family:var(--serif);font-weight:400;font-size:19px;color:var(--brass-300);letter-spacing:.02em;line-height:1.25;}
.sv-info .zh{font-size:12px;color:var(--cream-300);margin-bottom:4px;}
.sv-info .kv{display:flex;gap:8px;font-size:12px;align-items:baseline;}
.sv-info .kv>span{color:var(--cream-500);width:28px;flex:none;}
.sv-info .kv>em{font-style:normal;color:var(--cream-100);}
.sv-info .kv>em.dim{color:var(--cream-500);font-size:11px;}
.sv-info .mu-note{margin-top:6px;}
.sv-menu,.sv-bill{display:flex;flex-direction:column;min-height:0;border:1px solid var(--brass-900);border-radius:var(--r-2);}
.sv-menu{background:rgba(0,0,0,.2);}
.sv-bill{background:linear-gradient(180deg,#1b1410,#120d0a);padding-bottom:12px;}
.mh2{flex:none;padding:9px 14px;font-family:var(--serif);letter-spacing:.2em;font-size:12px;color:var(--brass-300);border-bottom:1px solid var(--brass-900);}
.sv-menu .list{overflow:auto;flex:1;min-height:0;padding:2px 14px 10px;}
.mi{display:grid;grid-template-columns:minmax(0,1fr) auto 92px;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--hairline);}
.mi:last-child{border-bottom:0;}
.mi .nm{font-size:13px;color:var(--cream-100);min-width:0;}
.mi .nm small{display:block;font-size:11px;color:var(--cream-500);opacity:1;margin-top:1px;}
.mi .pr{font-size:15px;color:var(--brass-100);text-align:right;white-space:nowrap;}
.mi .pr small{display:block;font-family:var(--sans);font-size:11px;color:var(--cream-500);opacity:1;}
.mi.na .nm,.mi.na .pr{opacity:.5;}
.mi.on .nm{color:var(--brass-100);}
/* 酒店：房型卡 */
.room{display:grid;grid-template-columns:92px minmax(0,1fr) auto;gap:12px;align-items:center;padding:7px;margin:7px 0;border:1px solid var(--brass-900);border-radius:6px;cursor:pointer;transition:border-color var(--t-fast);}
.room:hover{border-color:var(--brass-700);}
.room.on{border-color:var(--brass-500);background:rgba(201,160,82,.08);}
.room .art{height:56px;border-radius:4px;overflow:hidden;border:1px solid rgba(0,0,0,.5);}
.room .rb{min-width:0;}
.room .rb b{font-size:13px;font-weight:400;color:var(--cream-100);}
.room .rb small{display:block;font-size:11px;color:var(--cream-500);opacity:1;}
.room .pr{font-size:16px;color:var(--brass-100);text-align:right;white-space:nowrap;}
.room .pr small{display:block;font-family:var(--sans);font-size:11px;color:var(--cream-500);opacity:1;}
.stay{display:flex;flex-direction:column;gap:6px;padding:8px 14px 8px;border-bottom:1px solid var(--brass-900);flex:none;}
.stay .line{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;color:var(--cream-300);}
.stay .mu-step b.wide{min-width:150px;font-size:13px;}
.stay .mu-check{padding:2px 0 0;}
.stay .mu-check b{color:var(--brass-100);font-weight:400;}
.stay .mu-note{margin:0;}
.sv-bill .nt{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:baseline;font-size:12px;padding:4px 0;border-bottom:1px solid var(--hairline);color:var(--cream-300);}
.sv-bill .nt small{display:block;font-size:11px;color:var(--cream-500);opacity:1;}
.sv-bill .nt s{font-size:11px;color:var(--cream-700);text-decoration-color:rgba(168,155,127,.6);}
.sv-bill .nt b{font-family:var(--serif);font-weight:400;color:var(--cream-100);font-size:13px;}
.sv-bill .nt.free b,.sv-bill .nt.free small{color:var(--good);}
/* 账单 */
.sv-bill .bill{overflow:auto;flex:1;min-height:0;padding:6px 14px;}
.sv-bill .bl{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:12px;padding:3px 0;color:var(--cream-300);}
.sv-bill .bl>span{min-width:0;}
.sv-bill .bl i{font-style:normal;font-size:10px;color:var(--warn);border:1px solid rgba(247,164,60,.5);padding:0 3px;border-radius:2px;margin-left:3px;}
.sv-bill .bl b{font-weight:400;color:var(--cream-100);font-size:13px;white-space:nowrap;}
.sv-bill .bl.pos b{color:var(--good);}
.sv-bill .bl.dim b{color:var(--cream-500);}
.sv-bill .rule{height:1px;background:var(--brass-900);margin:5px 0;}
.sv-bill .empty{font-size:12px;color:var(--cream-700);padding:10px 0;}
.sv-bill .tot{display:flex;justify-content:space-between;align-items:baseline;padding:8px 14px 0;border-top:1px solid var(--brass-700);flex:none;}
.sv-bill .tot span{font-size:12px;color:var(--cream-300);}
.sv-bill .tot b{font-size:24px;font-weight:400;color:var(--brass-100);}
.sv-bill .tp{padding:0 14px;font-size:12px;color:var(--good);flex:none;}
.sv-bill .tp b{font-family:var(--serif);font-weight:400;}
.sv-bill .tp.dim{color:var(--cream-500);}
.sv-bill .gst{padding:0 14px;font-size:11px;color:var(--cream-700);flex:none;}
.sv-bill .mu-note{padding:0 14px;margin:4px 0 0;}
.sv-bill .pay{display:flex;margin:8px 14px 0;flex:none;}
.sv-bill .pay button{flex:1;flex-direction:column;justify-content:center;height:40px;line-height:1.2;gap:0;}
.sv-bill .pay button small{font-size:11px;color:var(--cream-500);opacity:1;font-family:var(--serif);}
.sv-bill .pay button.on small{color:var(--brass-300);}
.sv-bill .pay button[disabled]{opacity:.45;cursor:not-allowed;}

/* ---------- 小票 ---------- */
.shop-receipt{display:flex;gap:22px;align-items:flex-start;justify-content:center;overflow:auto;flex:1;min-height:0;padding:10px 4px;}
.shop-receipt>.art{width:260px;height:158px;border-radius:var(--r-2);overflow:hidden;border:1px solid var(--brass-900);flex:none;box-shadow:var(--shadow-2);}
.rcpaper.wide{width:380px;font-size:12px;padding:14px 16px 16px;}
.rcpaper.wide .rh{font-size:14px;}

@container vp (max-width:980px){
  .sv-cols{grid-template-columns:minmax(0,1fr) 240px;}
  .sv-info{display:none;}
}
@container vp (max-height:760px){
  #muShop .mh{padding:10px 16px 8px;}
  #muShop .mf{padding:8px 16px 10px;}
  .vcard .art{height:96px;}
}
