/* 配色与排版沿用已确认的预览页：venue 灰 #EDEFF3、白卡片、票档色来自数据 */
:root{
  --bg:#f5f6f8;--surface:#ffffff;--venue:#edeff3;--line:#e2e5ea;
  --ink:#16181d;--ink-2:#4b5160;--muted:#7d8391;
  --accent:#7c68ee;--accent-wash:rgba(124,104,238,.1);--danger:#d6336c;
  --f-body:"Noto Sans SC","PingFang SC",system-ui,-apple-system,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#121317;--surface:#1b1d23;--line:#2b2e37;--ink:#eceef3;--ink-2:#c2c6d0;--muted:#8e93a0;
  --accent-wash:rgba(124,104,238,.18);--danger:#f06595;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#121317;--surface:#1b1d23;--line:#2b2e37;--ink:#eceef3;--ink-2:#c2c6d0;--muted:#8e93a0;
  --accent-wash:rgba(124,104,238,.18);--danger:#f06595;color-scheme:dark}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.55 var(--f-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
.wrap{max-width:1180px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:22px 36px;display:flex;flex-direction:column;gap:16px}
h1{margin:6px 0 0;font-size:clamp(20px,3.2vw,28px);line-height:1.25;font-weight:700;text-wrap:balance;overflow-wrap:anywhere}
.sub{color:var(--muted);margin-top:4px}
.bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
button,.chip{font:500 13px var(--f-body);color:var(--ink-2);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:6px 12px;cursor:pointer;text-decoration:none;display:inline-block}
button:hover,.chip:hover{border-color:var(--accent);color:var(--ink)}
button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.find{display:flex;gap:6px;flex:1;min-width:min(260px,100%)}
input[type=search],input[type=text]{flex:1;min-width:0;font:15px var(--f-body);padding:7px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}
.msg{font-size:12.5px;color:var(--muted);min-height:1.2em}
.msg.err{color:var(--danger)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px}
footer{color:var(--muted);font-size:12px;display:flex;flex-wrap:wrap;gap:4px 16px}
footer a{color:var(--ink-2)}

/* 演出页：手机优先，一列；顶上一条固定的返回栏 */
.topbar{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line);
  padding-top:env(safe-area-inset-top,0px);padding-left:max(8px,env(safe-area-inset-left,0px));padding-right:max(8px,env(safe-area-inset-right,0px))}
.back{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:0 10px;font-size:15px;font-weight:500;color:var(--ink);text-decoration:none;border-radius:10px}
.back span{font-size:26px;line-height:1;margin-top:-3px}
.back:hover{color:var(--accent)}
.showpage .wrap{max-width:980px;padding-block:14px 28px;gap:12px}
.showhead h1{margin:0;font-size:clamp(18px,4.6vw,26px)}
.showhead .place{color:var(--muted);font-size:13px;margin-top:2px}
.showpage .find{min-width:0;flex:0 0 auto}
.showpage .find input{font-size:16px;padding:11px 14px;border-radius:12px}
button.primary{background:var(--ink);border-color:var(--ink);color:var(--surface);font-size:15px;padding:0 18px;border-radius:12px}
button.primary:hover{opacity:.88;color:var(--surface)}
/* 下拉选座：区域 / 排 / 座位号。字号 16px，iOS 才不会在点开时放大页面 */
.picker{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:8px;margin-top:-2px}
.picker select{min-width:0;width:100%;font:16px var(--f-body);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 30px 10px 12px;
  appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:right 15px center,right 10px center;background-size:5px 5px;background-repeat:no-repeat;text-overflow:ellipsis}
.picker select:disabled{color:var(--muted);opacity:.6}
.picker select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.hint{color:var(--muted);font-size:12.5px;margin-top:-4px}
.result{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.result.ok{border-color:var(--accent)}
.result.ok .label{font-size:20px;font-weight:700;line-height:1.3;overflow-wrap:anywhere}
.result.ok .meta{color:var(--muted);font-size:12.5px;overflow-wrap:anywhere}
.result.err{color:var(--danger);font-size:13.5px}
.result.err a{color:var(--ink)}
.mapbox{position:relative;background:var(--venue);border-radius:14px;overflow:hidden;border:1px solid var(--line)}
#map{height:min(72vh,780px)}
.zoom{position:absolute;right:10px;bottom:10px;display:flex;flex-direction:column;gap:8px}
.zoom button{width:44px;height:44px;padding:0;font:500 22px/1 var(--f-mono);border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.1);background:#fff;color:#16181d;border-color:#e2e5ea}
.zoom button.fitb{font:500 12px var(--f-body)}
.note{position:absolute;left:10px;top:10px;max-width:calc(100% - 20px);background:rgba(255,255,255,.94);color:#4b5160;border-radius:8px;padding:6px 10px;font-size:12px}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;color:var(--ink-2)}
.legend span{display:flex;gap:6px;align-items:center}
.legend i{width:10px;height:10px;border-radius:50%;flex:none}
@media (max-width:640px){
  /* 手机上地图吃掉一屏里剩下的高度：结果卡片出现时地图跟着变矮，缩放按钮始终在屏内 */
  .showpage .wrap{padding-block:10px 12px;gap:10px;min-height:calc(100svh - 45px - env(safe-area-inset-top,0px))}
  .showpage .mapbox{flex:1 1 auto;min-height:340px;margin-inline:calc(-1 * max(16px,env(safe-area-inset-left,0px)));border-radius:0;border-inline:0}
  .showpage #map{position:absolute;inset:0;height:auto}
  .showpage footer{font-size:11px}
}

/* 列表页：整张卡片可点 */
.shows{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));gap:10px}
a.show{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:10px;align-items:center;text-decoration:none;color:inherit;padding:14px 14px 14px 16px;min-height:64px}
a.show:hover{border-color:var(--accent)}
a.show .name{font-size:15.5px;line-height:1.35;font-weight:700;overflow-wrap:anywhere}
a.show .place{color:var(--muted);font-size:12.5px;grid-row:2}
a.show .go{grid-column:2;grid-row:1/3;font-size:24px;color:var(--muted)}
#name{font-size:16px;padding:11px 14px;border-radius:12px}
.empty{color:var(--muted);padding:24px 0}

/* 页脚联系方式：微信号整段可选，长按 / 双击一次选中方便复制 */
.contact{display:flex;align-items:center;justify-content:center;gap:6px;flex-basis:100%;margin-top:6px}
.wxicon{width:1.45em;height:1.45em;flex:none}
.contact .wx{font:500 1em var(--f-mono);color:var(--ink);user-select:all;-webkit-user-select:all}
