/* Keep world pins in their own stacking context, beneath all interior screens. */
.character-home .intro-art { display:none; }
.character-home .game-intro { display:block; }
.character-home .intro-copy { padding:12px;max-width:600px;margin:auto; }
.character-home .intro-copy>.eyebrow { display:none; }
.character-home-hero h1 { margin:0;font-size:26px; }
.character-home-hero>p { margin:6px 0;color:#b9c9c7;font-size:13px; }
.character-home-hero .profile-summary { margin:8px 0;padding:8px; }
.character-home-hero .avatar-2d-stage { height:240px;min-height:0;margin:8px 0; }
.character-home-hero .avatar-3d-model { transform:translateX(-50%) scale(.8);transform-origin:bottom center; }
.character-home-shortcuts { display:grid;grid-template-columns:1fr 1fr;gap:8px; }
.character-home-action { position:static;min-height:48px;padding:10px;border:1px solid #927c46;border-radius:12px;background:#303339;color:#fff;font-size:14px;font-weight:800; }
.character-home-action.primary { background:#e0b34b;color:#21242a; }
.character-home-menu { display:grid;gap:8px;margin-top:14px; }
.character-menu-group { border:1px solid #455e5a;border-radius:12px;background:#23262c;overflow:hidden;scroll-margin-top:80px; }
.character-menu-group>summary { padding:15px;color:#f1d488;font-size:15px;cursor:pointer; }
.character-menu-group>summary:focus-visible,.character-home-action:focus-visible { outline:3px solid #ffe492;outline-offset:-3px; }
.character-menu-group>section,.character-menu-group>fieldset,.character-menu-group>div,.character-menu-group>details,.character-menu-group>label,.character-menu-group>p { margin:10px; }
.character-menu-group .player-setup { min-width:0; }
.intro-art { isolation:isolate; z-index:0; }
.intro-art::after { pointer-events:none; }
.home-open .intro-art,
.finance-center-open .intro-art,
.life-map-open .intro-art,
.social-open .intro-art { visibility:hidden; pointer-events:none; }
/* A transformed scrolling ancestor traps fixed headers and dialogue overlays. */
.merchant-scene { left:0; right:0; margin-inline:auto; transform:none; }
/* Life street: flow-based header and separated, readable storefront slots. */
.life-world-map:has(.dining-street) { height:520px!important; background:#527565!important; }
.life-world-map:has(.dining-street)>:not(.dining-street) { display:none; }
.life-world-map:has(.dining-street)::before,.life-world-map:has(.dining-street)::after { display:none; }
.dining-street { position:absolute;inset:0; color:#fff; }
.street-camera { position:absolute;inset:0 0 76px;overflow:auto;touch-action:pan-x pan-y;overscroll-behavior:contain;scrollbar-width:thin;cursor:grab; }
.street-terrain { position:relative;width:1200px;height:900px;background:repeating-linear-gradient(0deg,#729779 0 39px,#779c7f 40px 41px); }
.street-road { position:absolute;left:0;right:0;top:390px;height:170px;background:#485565;border-block:22px solid #d6ccb7;box-shadow:0 -12px #a8b5a2,0 12px #a8b5a2; }
.street-road:after { content:'';position:absolute;left:0;right:0;top:60px;border-top:4px dashed #e8d48c; }
.street-crossroad { position:absolute;left:500px;top:0;bottom:0;width:80px;background:#8b9293;border-inline:12px solid #d6ccb7; }
.street-crosswalk { position:absolute;left:485px;top:412px;width:110px;height:120px;background:repeating-linear-gradient(0deg,#eee8d0 0 10px,transparent 10px 20px); }
.street-road-name { position:absolute;top:475px;left:700px;letter-spacing:8px;color:#e6e1cd;font-size:20px; }
.street-park { position:absolute;left:880px;top:650px;width:220px;padding:30px;border:8px solid #cbd49d;border-radius:50px;background:#498862;text-align:center;font-size:22px; }
.street-building { position:absolute;transform:translate(-50%,-50%);width:190px;height:170px;border:0;border-bottom:12px solid #695a4c;border-radius:8px;background:#f0dbb3;box-shadow:12px 14px #30333955;color:#303339;padding:0;display:flex;flex-direction:column;align-items:stretch;overflow:visible; }
.shop-roof { height:34px;background:var(--shop-color);border-bottom:7px solid #0002;border-radius:8px 8px 0 0; }
.street-building b { padding:8px 6px;background:var(--shop-color);color:#fff;font-size:13px;line-height:1.3;min-height:45px; }
.street-building small { position:absolute;bottom:-36px;left:28px;right:28px;color:#2b2e34;background:#d3d5b9;padding:4px;font-size:12px;border-radius:4px; }
.street-avatar { position:absolute;width:48px;height:65px;transform:translate(-50%,-85%);z-index:5;pointer-events:none;filter:drop-shadow(0 5px 3px #0007); }
.street-avatar.walking img { animation:merchant-walk .16s steps(2) infinite; }
.street-exit { position:absolute;z-index:2;background:#303339;color:#ffdf80;border:2px solid #eed789;border-radius:8px;padding:12px;font-size:14px; }
.street-interaction { position:absolute;bottom:0;left:0;right:0;min-height:76px;background:#21242a;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;font-size:12px; }
.street-interaction button,.street-recenter { background:#e4b547;color:#25282e;border:1px solid #fff4bf;border-radius:8px;padding:10px;font-weight:800;min-height:44px; }
.street-interaction button { flex-shrink:0; }
.street-building { transition:filter .18s,box-shadow .18s; }
.street-building.selected { box-shadow:0 0 0 4px #ffe88c,12px 14px #30333955;filter:brightness(1.12); }
.street-building small { animation:street-sign 3s ease-in-out infinite; }
.street-avatar.arrived:after { content:'✓';position:absolute;top:-25px;left:14px;color:#ffe789;text-shadow:0 2px #282b31;font-size:24px;animation:street-arrive .4s ease-out; }
.dining-street { animation:street-enter .25s ease-out; }
.merchant-shop-world { animation:street-enter .3s ease-out; }
@keyframes street-sign { 50% { filter:brightness(1.12); } }
@keyframes street-arrive { from { opacity:0;transform:translateY(10px) scale(.7); } to { opacity:1;transform:translateY(0) scale(1); } }
@keyframes street-enter { from { opacity:.3; } to { opacity:1; } }
@media(prefers-reduced-motion:reduce) { .dining-street,.merchant-shop-world,.street-building small,.street-avatar.arrived:after,.street-avatar.walking img { animation:none!important; } .street-building { transition:none; } }
.street-park { left:25px;top:12px;width:230px;padding:12px;font-size:16px;border-width:4px; }
.dining-street[data-district="life2"] .street-terrain { background:repeating-linear-gradient(90deg,#a3b4bc 0 39px,#95a9b1 40px 41px); }
.dining-street[data-district="life2"] .street-building { border-bottom-color:#445467; background:#d5e2e8; }
.dining-street[data-district="life3"] .street-terrain { background:repeating-linear-gradient(0deg,#a89a7f 0 39px,#b5a68e 40px 41px); }
.dining-street[data-district="life3"] .shop-roof { background:repeating-linear-gradient(90deg,#626b6c 0 8px,#7b8586 9px 12px); }
.dining-street[data-district="life4"] .street-terrain { background:repeating-linear-gradient(0deg,#9db887 0 39px,#adc498 40px 41px); }
.dining-street[data-district="life4"] .street-building { background:#f5e1df;border-bottom-color:#956e73; }
.street-recenter { position:absolute;right:9px;top:9px;font-size:12px; }
.life-map-screen { padding:0 12px calc(24px + env(safe-area-inset-bottom)); }
.life-screen-header { position:sticky; top:0; left:auto; transform:none; width:100%; flex-shrink:0; margin-bottom:12px; grid-template-columns:auto 1fr auto; }
.life-screen-header>span { grid-column:auto; }
.life-screen-header { order:-2; }
.life-map-screen .life-map-panel { display:flex; flex-direction:column; }
.life-map-heading { order:0; }
.life-zone-tabs { order:1; }
.life-world-map { order:2; height:640px!important; margin-top:10px; }
.life-walk-controls { order:3; }
.life-map-panel>p,.life-map-panel>.street-stats,.life-map-panel>.street-funds { order:4; }
.life-map-filters,.life-map-count,.life-map-list,.life-map-disclaimer { order:5; }
.life-world-map>.city-block,.life-world-map>.life-minimap { display:none; }
.life-world-map>b { top:12px; left:10px; right:10px; font-size:.9rem; }
.life-world-map>small { top:45px; left:10px; right:10px; font-size:.6rem; }
.life-world-pin { width:86px; gap:2px; }
.life-world-pin i { width:46px; height:44px; border-radius:8px 8px 3px 3px; transform:none; background:linear-gradient(#e9b74e 0 24%,#73503a 24% 34%,#f5dfaf 34%); border:2px solid #fff1c3; color:#222; box-shadow:3px 4px 0 #2c2f3566; }
.life-world-pin span { max-width:86px; font-size:11px; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.life-world-pin em { font-size:10px; white-space:nowrap; }
.life-world-pin.closed { opacity:1; }
body[data-time-phase] .life-world-map { filter:none; }
body[data-time-phase="night"] .life-world-map { background:linear-gradient(#303339 0 22%,#303339 22% 100%)!important; }
@media(max-width:380px) { .life-screen-header { gap:5px; padding:8px 0; } .life-screen-header b { font-size:.72rem; } .life-world-pin { width:78px; } .life-world-pin span { max-width:78px; } }
/* 第 2 批：街道底部預覽卡（縮圖＋店名＋營業時間＋任務狀態，按鈕三態） */
.street-interaction { justify-content:flex-start; }
.street-preview-thumb { flex:0 0 56px;height:56px;border-radius:10px;overflow:hidden;background:#171a20;border:1px solid #e4b54788;display:grid;place-items:center;font-size:26px; }
.street-preview-thumb img { width:100%;height:100%;object-fit:cover;display:block; }
.street-preview-thumb i { font-style:normal; }
.street-preview-text { flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;line-height:1.3; }
.street-preview-name { color:#ffe9a8;font-size:14px;overflow-wrap:anywhere; }
.street-preview-hours { color:#bfe3c8; }
.street-preview-hours[data-open=false] { color:#f2c58a; }
.street-preview-mission { color:#d8e2df; }
.street-preview-status { color:#9fb5b1;font-size:11px; }
.street-interaction.empty .street-preview-thumb { display:none; }
/* 預覽卡高度會隨店名／營業時間變化：街道改上下排版，鏡頭吃剩下的高度，卡片不蓋住街道 */
.dining-street { display:flex;flex-direction:column; }
.dining-street .street-camera { position:relative;inset:auto;flex:1;min-height:0; }
.dining-street .street-interaction { position:relative;bottom:auto;flex-shrink:0; }
/* 09-29 街道優化：條紋雨遮＋櫥窗用店家圖、行道樹／路燈、人物影子與轉身、字級放大、回到人物鈕移到左下 */
.street-building { height:178px; }
.street-building b { font-size:15px;line-height:1.25;min-height:0;padding:7px 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-shadow:0 1px 0 #0005; }
.shop-roof { height:14px; }
.street-awning { height:18px;background:repeating-linear-gradient(90deg,var(--shop-color) 0 16px,#fff6e4 16px 32px);clip-path:polygon(0 0,100% 0,100% 70%,97% 100%,91% 70%,85% 100%,79% 70%,73% 100%,67% 70%,61% 100%,55% 70%,49% 100%,43% 70%,37% 100%,31% 70%,25% 100%,19% 70%,13% 100%,7% 70%,3% 100%,0 70%);filter:drop-shadow(0 3px 0 #0002); }
.street-front { flex:1;display:grid;grid-template-columns:1fr 34px 1fr;gap:6px;align-items:end;padding:6px 8px 0; }
.street-window { height:62px;border:4px solid #5d4a3c;border-radius:4px 4px 0 0;background:linear-gradient(135deg,#cfe8ee 0 40%,#e9f5f6 45% 55%,#bcdbe3 60%);overflow:hidden; }
.street-window img { width:100%;height:100%;object-fit:cover;display:block;opacity:.92; }
.street-door { height:76px;border-radius:17px 17px 0 0;background:linear-gradient(90deg,#6b4a33 0 46%,#4f3525 46% 54%,#6b4a33 54%);box-shadow:inset 0 0 0 3px #3d2a1e;position:relative; }
.street-door:after { content:'';position:absolute;left:8px;top:30px;width:5px;height:5px;border-radius:50%;background:#e8c56a; }
.street-building small { left:auto;right:-10px;top:-12px;bottom:auto;width:34px;height:34px;padding:0;display:grid;place-items:center;font-size:18px;border-radius:50%;background:#fff8e2;border:2px solid var(--shop-color);box-shadow:0 2px 0 #0003; }
.street-props { position:absolute;inset:0;pointer-events:none; }
.street-prop { position:absolute;transform:translate(-50%,-100%); }
.street-prop.tree { width:46px;height:62px;background:radial-gradient(circle at 50% 36%,#3f8a55 0 20px,#2f6d44 21px 23px,transparent 24px),linear-gradient(90deg,transparent 20px,#6d4b31 20px 26px,transparent 26px) bottom/100% 22px no-repeat;filter:drop-shadow(4px 5px 0 #2d303655); }
.street-prop.lamp { width:22px;height:70px;background:radial-gradient(circle at 50% 8px,#fff2b0 0 6px,#3c4750 7px 9px,transparent 10px),linear-gradient(90deg,transparent 9px,#3c4750 9px 13px,transparent 13px); }
body[data-time-phase="night"] .street-prop.lamp { filter:drop-shadow(0 0 10px #ffe38a); }
.street-avatar-shadow { position:absolute;z-index:4;width:34px;height:10px;border-radius:50%;background:#0006;transform:translate(-50%,-50%);pointer-events:none; }
.street-avatar img { transition:transform .12s; }
.street-avatar.face-left { transform:translate(-50%,-85%) scaleX(-1); }
.street-exit { font-size:15px;font-weight:800; }
.street-road-name { font-size:22px;font-weight:700; }
.street-interaction { font-size:13px; }
.street-preview-name { font-size:15px; }
.street-preview-hours,.street-preview-mission { font-size:13px; }
.street-preview-status { font-size:13px;color:#b9cdc9; }
.street-recenter { top:auto;right:auto;left:9px;bottom:calc(var(--card-h,76px) + 10px);font-size:14px;z-index:6;box-shadow:0 3px 0 #0004; }
.life-walk-controls span { font-size:13px!important;line-height:1.35; }
/* 街道鏡頭至少留 300px 高（小螢幕預覽卡文字多時不被擠扁；頁面可往下捲看方向鍵） */
.life-map-open .life-world-map:has(.dining-street) { min-height:calc(300px + var(--card-h,76px))!important; }
.dining-street .street-camera { min-height:300px; }
@media(max-width:380px) { .street-preview-thumb { flex-basis:46px;height:46px; } .street-interaction { gap:6px;padding:8px; } }
/* 09-29 生活街 2.5D 斜視：深度排序（z-index 由世界 y 決定）、店家屋頂面＋側牆、天際遠景、門口腳墊、路人 NPC、四向走路幀 */
.dining-street .street-camera { isolation:isolate; } /* 地形內的大 z-index 不會蓋到回到人物鈕與預覽卡 */
.street-terrain { background:linear-gradient(#7d9d83,#6f957a 60%,#5f8669); }
.street-sky { position:absolute;left:0;right:0;top:0;height:150px;z-index:1;pointer-events:none;background:linear-gradient(#b9dced,#dcecf2 70%,transparent);overflow:hidden; }
.street-sky:before { content:'';position:absolute;left:0;right:0;bottom:0;height:92px;background:linear-gradient(90deg,transparent 0 3%,#7b9689 3% 9%,transparent 9% 12%,#8aa596 12% 20%,transparent 20% 23%,#6e8b7e 23% 34%,transparent 34% 37%,#87a396 37% 45%,transparent 45% 49%,#7b9689 49% 60%,transparent 60% 63%,#8aa596 63% 71%,transparent 71% 74%,#6e8b7e 74% 86%,transparent 86% 89%,#87a396 89% 97%,transparent 97%) bottom/100% 100% no-repeat;mask:linear-gradient(transparent,#000 40%);-webkit-mask:linear-gradient(transparent,#000 40%); }
.street-sky:after { content:'';position:absolute;left:0;right:0;bottom:0;height:40px;background:linear-gradient(transparent,#00000018); }
.street-road,.street-crossroad,.street-crosswalk,.street-road-name,.street-park { z-index:2; }
.street-road { box-shadow:0 -12px #a8b5a2,0 12px #a8b5a2,0 30px 0 #0000001a; } /* 人行道外緣多一道暗帶，路面像凹下去 */
.street-crossroad { background:linear-gradient(90deg,#7f878a,#8b9293 30%,#8b9293 70%,#7f878a); }
/* 店家立體盒：屋頂面往後斜、右側牆往下斜，正面保留原本的招牌／雨遮／櫥窗／門 */
.street-building { box-shadow:none;filter:drop-shadow(10px 12px 0 #30333955);border-radius:0 0 8px 8px;transition:filter .18s; }
.street-building:before { content:'';position:absolute;left:0;right:0;top:0;height:26px;background:color-mix(in srgb,var(--shop-color) 70%,#fff);transform-origin:bottom left;transform:skewX(-40deg) translateY(-100%);border-radius:6px 6px 0 0;box-shadow:inset 0 -4px 0 #0002; }
.street-building:after { content:'';position:absolute;top:0;bottom:-12px;right:0;width:22px;background:linear-gradient(90deg,#00000030,#00000055);transform-origin:top left;transform:skewY(-49deg) translateX(100%);border-radius:0 6px 6px 0; }
.street-building.selected { box-shadow:0 0 0 4px #ffe88c;filter:brightness(1.12) drop-shadow(10px 12px 0 #30333955); }
.street-doormat { position:absolute;width:64px;height:16px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(#d9c9a0,#b9a67c 70%,transparent 72%);opacity:.75; }
.street-doormat.selected { background:radial-gradient(#fff2b0,#ffd86a 60%,transparent 72%);opacity:1;animation:street-mat 1.2s ease-in-out infinite;box-shadow:0 0 14px #ffd86a99; }
@keyframes street-mat { 50% { transform:translate(-50%,-50%) scale(1.15); } }
/* 玩家：四向朝向；有 v90 走路表時用 --frame 切格（第 2 批接圖後啟用），現在維持 v81 單幀＋晃動 */
.street-avatar { transform:translate(-50%,-85%); }
.street-avatar[data-facing="left"] { transform:translate(-50%,-85%) scaleX(-1); }
/* 路人 NPC（10-01 擬真走路表 npc-walk-sheet-mobile-v90 8×2 格：欄＝8 位行人、列＝站姿／跨步）：不接受點擊；--frame 切列、左向翻轉 */
.street-people { position:absolute;inset:0;pointer-events:none; }
.street-npc { position:absolute;width:36px;height:72px;transform:translate(-50%,-96%);pointer-events:none;background:url('../img/npc-walk-sheet-mobile-v90.webp') calc(var(--npc-column,0)*100%/7) calc(var(--frame,0)*100%)/800% 200% no-repeat;filter:drop-shadow(0 3px 2px #0006); }
.street-npc:after { content:'';position:absolute;left:50%;bottom:-3px;width:24px;height:8px;border-radius:50%;background:#0005;transform:translateX(-50%);z-index:-1; }
.street-npc[data-facing="left"] { transform:translate(-50%,-96%) scaleX(-1); }
.street-npc.walking { animation:street-npc-walk .36s steps(2) infinite; }
@keyframes street-npc-walk { 50% { margin-top:-2px; } }
/* 四區配色 */
.dining-street[data-district="life2"] .street-terrain { background:linear-gradient(#aebfc6,#9fb1b8 60%,#8fa4ab); }
.dining-street[data-district="life2"] .street-sky { background:linear-gradient(#c5d6df,#e1e9ed 70%,transparent); }
.dining-street[data-district="life3"] .street-terrain { background:linear-gradient(#b3a58a,#a89a7f 60%,#9a8c71); }
.dining-street[data-district="life3"] .street-sky { background:linear-gradient(#d8c9a9,#efe4cc 70%,transparent); }
.dining-street[data-district="life3"] .street-building:before { background:#8b9596; }
.dining-street[data-district="life4"] .street-terrain { background:linear-gradient(#b4cb9e,#a3bd8d 60%,#93ad7f); }
.dining-street[data-district="life4"] .street-sky { background:linear-gradient(#f4d9d5,#fbeae8 70%,transparent); }
/* 夜晚：天際變深、路燈光暈落地、店家櫥窗發光 */
body[data-time-phase="night"] .street-sky { background:linear-gradient(#0f1f38,#303339 70%,transparent); }
body[data-time-phase="night"] .street-terrain { filter:brightness(.72) saturate(.85); }
body[data-time-phase="night"] .street-window { box-shadow:0 0 14px #ffe6a0aa;background:linear-gradient(135deg,#ffe9a8 0 40%,#fff6d8 45% 55%,#f6d98c 60%); }
body[data-time-phase="night"] .street-prop.lamp:after { content:'';position:absolute;left:50%;bottom:-8px;width:90px;height:34px;border-radius:50%;background:radial-gradient(#ffe38a66,transparent 70%);transform:translateX(-50%); }
@media(prefers-reduced-motion:reduce) { .street-npc.walking,.street-doormat.selected { animation:none!important; } }
html.reduced-motion .street-npc.walking,html.reduced-motion .street-doormat.selected,html.reduced-motion .street-avatar.walking img { animation:none!important; }
/* 10-01 美食街（life1）零件制接圖：遠景天際線＋人行道磚＋路面條＋六款店面（即夢生成、CODE 切圖）；玩法與座標零改動、其餘三區照舊 */
.dining-street[data-district="life1"] .street-terrain { background:url('../img/street-ground-life1-mobile-v90.webp') 0 0/160px auto repeat; }
.dining-street[data-district="life1"] .street-sky { background:url('../img/street-sky-life1-mobile-v90.webp') left bottom/auto 100% repeat-x; }
.dining-street[data-district="life1"] .street-sky:before { display:none; }
.dining-street[data-district="life1"] .street-road { background:url('../img/street-road-life1-mobile-v90.webp') 0 0/auto 100% repeat-x;background-clip:padding-box;border-block-color:#d9cbb3;box-shadow:0 -12px #cbbda4,0 12px #cbbda4,0 30px 0 #0000001a; }
.dining-street[data-district="life1"] .street-road:after { display:none; }
.dining-street[data-district="life1"] .street-crossroad { background:linear-gradient(90deg,#3f3733,#4d423d 30%,#4d423d 70%,#3f3733);border-inline-color:#d9cbb3; }
.dining-street[data-district="life1"] .street-building { background:url('../img/street-shops-life1-mobile-v90.webp') calc(var(--shop-col,0)*50%) calc(var(--shop-row,0)*100%)/300% 200% no-repeat;border-bottom:0;border-radius:0;filter:drop-shadow(8px 10px 0 #30333955); }
.dining-street[data-district="life1"] .street-building:before,.dining-street[data-district="life1"] .street-building:after,.dining-street[data-district="life1"] .shop-roof,.dining-street[data-district="life1"] .street-awning,.dining-street[data-district="life1"] .street-front { display:none; }
.dining-street[data-district="life1"] .street-building b { position:absolute;left:14px;right:22px;top:9px;height:38px;padding:0 4px;background:transparent;color:#3b2f27;text-shadow:none;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;line-height:1.2;-webkit-line-clamp:unset; }
.dining-street[data-district="life1"] .street-building.selected { box-shadow:none;filter:brightness(1.1) drop-shadow(0 0 0 #ffe88c) drop-shadow(0 0 5px #ffe88c) drop-shadow(8px 10px 0 #30333955); }
.dining-street[data-district="life1"] .street-prop.tree { filter:drop-shadow(3px 4px 0 #2a241e55); }
/* 10-01 老闆指示「其餘三區也做」：西區 life2（金融商務）、南區 life3（工匠工程車業）、北區 life4（生活風格健康）同款零件制；玩法零改動，僅換圖與路緣配色、店名位置依各區招牌板調整 */
.dining-street[data-district="life2"] .street-terrain { background:url('../img/street-ground-life2-mobile-v90.webp') 0 0/160px auto repeat; }
.dining-street[data-district="life3"] .street-terrain { background:url('../img/street-ground-life3-mobile-v90.webp') 0 0/160px auto repeat; }
.dining-street[data-district="life4"] .street-terrain { background:url('../img/street-ground-life4-mobile-v90.webp') 0 0/160px auto repeat; }
.dining-street[data-district="life2"] .street-sky { background:url('../img/street-sky-life2-mobile-v90.webp') left bottom/auto 100% repeat-x; }
.dining-street[data-district="life3"] .street-sky { background:url('../img/street-sky-life3-mobile-v90.webp') left bottom/auto 100% repeat-x; }
.dining-street[data-district="life4"] .street-sky { background:url('../img/street-sky-life4-mobile-v90.webp') left bottom/auto 100% repeat-x; }
.dining-street[data-district="life2"] .street-sky:before,.dining-street[data-district="life3"] .street-sky:before,.dining-street[data-district="life4"] .street-sky:before,.dining-street[data-district="life2"] .street-road:after,.dining-street[data-district="life3"] .street-road:after,.dining-street[data-district="life4"] .street-road:after { display:none; }
.dining-street[data-district="life2"] .street-road { background:url('../img/street-road-life2-mobile-v90.webp') 0 0/auto 100% repeat-x;background-clip:padding-box;border-block-color:#aeb5bd;box-shadow:0 -12px #9aa2ab,0 12px #9aa2ab,0 30px 0 #0000001a; }
.dining-street[data-district="life3"] .street-road { background:url('../img/street-road-life3-mobile-v90.webp') 0 0/auto 100% repeat-x;background-clip:padding-box;border-block-color:#e6b846;box-shadow:0 -12px #cfa23a,0 12px #cfa23a,0 30px 0 #0000001a; }
.dining-street[data-district="life4"] .street-road { background:url('../img/street-road-life4-mobile-v90.webp') 0 0/auto 100% repeat-x;background-clip:padding-box;border-block-color:#efe6d4;box-shadow:0 -12px #d9cfba,0 12px #d9cfba,0 30px 0 #0000001a; }
.dining-street[data-district="life2"] .street-crossroad { background:linear-gradient(90deg,#3f454c,#4b525a 30%,#4b525a 70%,#3f454c);border-inline-color:#aeb5bd; }
.dining-street[data-district="life3"] .street-crossroad { background:linear-gradient(90deg,#39352f,#46413a 30%,#46413a 70%,#39352f);border-inline-color:#e6b846; }
.dining-street[data-district="life4"] .street-crossroad { background:linear-gradient(90deg,#443b38,#514744 30%,#514744 70%,#443b38);border-inline-color:#efe6d4; }
.dining-street[data-district="life2"] .street-building { background:url('../img/street-shops-life2-mobile-v90.webp') calc(var(--shop-col,0)*50%) calc(var(--shop-row,0)*100%)/300% 200% no-repeat;border-bottom:0;border-radius:0;filter:drop-shadow(8px 10px 0 #30333955); }
.dining-street[data-district="life3"] .street-building { background:url('../img/street-shops-life3-mobile-v90.webp') calc(var(--shop-col,0)*50%) calc(var(--shop-row,0)*100%)/300% 200% no-repeat;border-bottom:0;border-radius:0;filter:drop-shadow(8px 10px 0 #2f261e55); }
.dining-street[data-district="life4"] .street-building { background:url('../img/street-shops-life4-mobile-v90.webp') calc(var(--shop-col,0)*50%) calc(var(--shop-row,0)*100%)/300% 200% no-repeat;border-bottom:0;border-radius:0;filter:drop-shadow(8px 10px 0 #3b2a3a55); }
.dining-street[data-district="life2"] .street-building:before,.dining-street[data-district="life2"] .street-building:after,.dining-street[data-district="life2"] .shop-roof,.dining-street[data-district="life2"] .street-awning,.dining-street[data-district="life2"] .street-front,.dining-street[data-district="life3"] .street-building:before,.dining-street[data-district="life3"] .street-building:after,.dining-street[data-district="life3"] .shop-roof,.dining-street[data-district="life3"] .street-awning,.dining-street[data-district="life3"] .street-front,.dining-street[data-district="life4"] .street-building:before,.dining-street[data-district="life4"] .street-building:after,.dining-street[data-district="life4"] .shop-roof,.dining-street[data-district="life4"] .street-awning,.dining-street[data-district="life4"] .street-front { display:none; }
.dining-street[data-district="life2"] .street-building b,.dining-street[data-district="life3"] .street-building b,.dining-street[data-district="life4"] .street-building b { position:absolute;left:14px;right:22px;top:6px;height:30px;padding:0 6px;background:#fffffff2;border:1px solid #00000022;border-radius:6px;color:#2b3440;text-shadow:none;display:flex;align-items:center;justify-content:center;text-align:center;font-size:13px;line-height:1.15;-webkit-line-clamp:unset;box-shadow:0 1px 0 #00000022; }
.dining-street[data-district="life3"] .street-building b { top:4px;height:26px;left:18px;right:26px; }
.dining-street[data-district="life4"] .street-building b { top:67px;height:26px;left:16px;right:24px;background:transparent;border:0;box-shadow:none;color:#4a3a2f; }
.dining-street[data-district="life2"] .street-building.selected,.dining-street[data-district="life3"] .street-building.selected,.dining-street[data-district="life4"] .street-building.selected { box-shadow:none;filter:brightness(1.1) drop-shadow(0 0 0 #ffe88c) drop-shadow(0 0 5px #ffe88c) drop-shadow(8px 10px 0 #2a2a2a55); }
.dining-street[data-district="life2"] .street-prop.tree,.dining-street[data-district="life3"] .street-prop.tree,.dining-street[data-district="life4"] .street-prop.tree { filter:drop-shadow(3px 4px 0 #2a241e55); }
/* 09-30 高登市：老闆指示地圖加大＋右上角小地圖（四區羅盤、可點切換，街道模式也顯示） */
.life-world-map { height:460px!important; }
.life-map-screen .life-world-map { height:760px!important; }
.life-world-map:has(.dining-street) { height:600px!important; }
.life-map-open .life-world-map:has(.dining-street) { height:calc(100dvh - 270px)!important; }
.life-minimap { display:grid; grid-template-columns:1fr 1fr 1fr; grid-template-rows:1fr 1fr 1fr; gap:2px; width:96px; height:82px; padding:3px; pointer-events:auto; z-index:9; background:#1a1d23e6; }
.life-minimap>button:nth-of-type(1) { grid-area:1/2; }
.life-minimap>button:nth-of-type(2) { grid-area:2/1; }
.life-minimap>i { grid-area:2/2; position:static; inset:auto; display:grid; place-items:center; border:1px solid #78bc8a; border-radius:4px; background:#15181e; color:#8fd0b8; font-size:.45rem; font-style:normal; }
.life-minimap>button:nth-of-type(3) { grid-area:2/3; }
.life-minimap>button:nth-of-type(4) { grid-area:3/2; }
.life-minimap button { min-height:0; padding:0; border:1px solid #61736d; border-radius:4px; background:#1c2624; color:#d9e0de; font-size:.55rem; font-weight:900; }
.life-minimap button[aria-pressed="true"] { border-color:#e2b74f; background:#e2b74f; color:#1b2021; }
.life-world-map>.life-minimap, .life-world-map:has(.dining-street)>.life-minimap, .life-map-screen .life-world-map>.life-minimap { display:grid; }
@media(max-width:380px) { .life-world-map { height:420px!important; } }
/* 10-02 老闆「街道太小」：從大地圖進街＝全螢幕大街（照 v1 設計稿 07：街景佔上方大部分、下方四條街分頁） */
.life-map-screen.street-full .life-map-heading,.life-map-screen.street-full .life-walk-controls { display:none!important; }
.life-map-screen.street-full .life-screen-header { min-height:48px;padding:4px 10px; }
.life-map-screen.street-full .life-screen-header small { display:none; }
.life-map-screen.street-full .life-map-panel { padding:4px 0 0; }
.life-map-screen.street-full .life-world-map:has(.dining-street) { margin-top:0;border-radius:12px; }
.life-map-screen.street-full .life-map-panel>* { order:1; }
.life-map-screen.street-full .life-zone-tabs { order:0;margin-bottom:6px;padding:6px;border-radius:0 0 14px 14px;background:#101817f2;border-bottom:2px solid #e2b74f; } /* 10-06 四區切換列移到地圖上方 */
/* 10-02 老闆街景圖當整條街（js/street-scene.js） */
.street-scene { display:flex;flex-direction:column;gap:6px; }
.street-scene-art { position:relative;width:100%;overflow:hidden;border-radius:12px; }
.street-scene-art img { width:100%;height:100%;object-fit:cover;object-position:center top;display:block; }
.street-scene-spot { position:absolute;background:transparent;border:2px solid transparent;border-radius:10px;cursor:pointer;padding:0; }
.street-scene-spot:hover,.street-scene-spot:focus-visible { border-color:#ffe69c;box-shadow:0 0 12px #ffe69c88; }
.street-scene-card { display:flex;align-items:center;gap:8px;padding:8px;border-radius:12px;background:#101817f2;border:1px solid #e2b74f;color:#f3ead2; }
.street-scene-card[hidden] { display:none; }
.street-scene-card img { width:52px;height:52px;object-fit:cover;border-radius:8px; }
.street-scene-card div { flex:1;display:flex;flex-direction:column;min-width:0; }
.street-scene-card small { color:#b9c9c7; }
.street-scene-enter { padding:8px 12px;border-radius:999px;border:0;background:#e2b74f;color:#1d1a10;font-weight:700; }
.street-scene-shops { position:relative;z-index:2;display:flex;gap:6px;max-width:100%;min-height:46px;overflow-x:auto;overflow-y:hidden;padding:4px 4px 8px;touch-action:pan-x;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#e2b74f #1f2228;cursor:grab; }
.street-scene-shops:active { cursor:grabbing; }
.street-scene-shops button { flex:none;min-height:36px;padding:6px 10px;border-radius:999px;border:1px solid #e2b74f66;background:#101817e6;color:#f3ead2;font-size:13px;scroll-snap-align:start; }
.street-scene-shops button.active { background:#e2b74f;color:#1d1a10; }
.life-world-map:has(.street-scene)>:not(.street-scene) { display:none!important; }
.life-world-map:has(.street-scene) { background:none;min-height:0;height:auto;padding:0 0 4px;overflow:hidden; }
.character-home-action[hidden]{display:none!important;}
/* 10-02 老闆店內設計稿（照老闆提供圖）：店景滿版、下方深綠抽屜疊在店景上 */
.merchant-scene { padding:0 0 calc(12px + env(safe-area-inset-bottom)); background:#1b1e24; }
.merchant-scene>header { display:none!important; }
.merchant-scene .merchant-shop-world { height:min(50dvh,460px); border:0; border-radius:0; box-shadow:none; }
.merchant-scene .merchant-shop-world[data-scene]:before { display:none; }
.merchant-scene .merchant-npc-name { display:none; }
.merchant-scene .merchant-npc-sprite { right:22%; bottom:22%; width:96px; height:120px; }
.merchant-scene .merchant-player { left:34%; bottom:6%; width:96px; height:128px; }
.merchant-scene .merchant-shop-world.npc-near .merchant-player { left:calc(78% - 150px); }
.merchant-drawer { position:relative; z-index:6; margin:-28px 0 0; padding:14px 14px 10px; border-top:1px solid #c9a24a99; border-radius:24px 24px 0 0; background:radial-gradient(120% 60% at 90% 0,#303339,transparent),linear-gradient(#2c2f35,#1e2127); box-shadow:0 -8px 22px #0009; }
.merchant-drawer:before { content:""; position:absolute; top:7px; left:50%; width:42px; height:4px; border-radius:4px; background:#ffffff55; transform:translateX(-50%); }
.merchant-drawer-top { display:flex; justify-content:space-between; margin-bottom:6px; }
.merchant-drawer-top button { min-height:36px; padding:4px 6px; border:0; background:none; color:#f1e6c8; font-size:.9rem; font-weight:900; }
.merchant-card { display:grid; grid-template-columns:96px 1fr; align-items:center; gap:14px; margin-bottom:12px; }
.merchant-card-face { display:grid; place-items:center; width:96px; height:96px; overflow:hidden; border:3px solid #d6b45e; border-radius:50%; background:#303339; font-size:2.2rem; }
.merchant-card-face img,.merchant-bubble-face img { object-fit:cover!important; object-position:center 15%!important; }
.merchant-card b { display:block; color:#fff6dc; font-size:1.15rem; letter-spacing:.04em; }
.merchant-card small { display:block; margin-top:6px; color:#c3d4ce; font-size:.74rem; line-height:1.45; }
.merchant-drawer.collapsed .merchant-drawer-body { display:none; }
.merchant-tabs { display:grid; grid-template-columns:repeat(3,1fr); gap:0; overflow:hidden; border:1px solid #c9a24a88; border-bottom:0; border-radius:14px 14px 0 0; }
.merchant-tabs button { min-height:48px; border:0; border-right:1px solid #c9a24a55; background:#24272d; color:#e9f0ec; font-weight:900; font-size:.84rem; }
.merchant-tabs button:last-child { border-right:0; }
.merchant-tabs button.active { background:linear-gradient(#303339,#2d3036); color:#ffe39a; box-shadow:inset 0 -3px #d6b45e; }
.merchant-tab-panel { display:grid; gap:10px; padding:12px; border:1px solid #c9a24a88; border-radius:0 0 14px 14px; background:#21242a; }
.merchant-tab-panel[hidden] { display:none; }
.merchant-bubble-row { display:grid; grid-template-columns:64px 1fr; align-items:center; gap:10px; }
.merchant-bubble-face { display:grid; place-items:center; width:64px; height:64px; overflow:hidden; border:2px solid #d6b45e; border-radius:50%; background:#303339; font-size:1.6rem; }
.merchant-scene .merchant-greeting { position:relative; inset:auto; padding:11px 14px; border:0; border-radius:16px; background:#fbf3df; color:#2a2418; font-size:.8rem; font-weight:700; text-align:left; }
.merchant-scene .merchant-greeting:before { content:""; position:absolute; left:-8px; top:50%; border:8px solid transparent; border-left:0; border-right-color:#fbf3df; transform:translateY(-50%); }
.merchant-tab-panel .merchant-controls { display:grid; grid-template-columns:1fr; gap:8px; margin:0; }
.merchant-tab-panel .merchant-controls button { position:relative; min-height:50px; padding:10px 34px 10px 14px; border:1px solid #6f8f86; border-radius:12px; background:#22252b; color:#f2f2ea; font-size:.84rem; text-align:left; }
.merchant-tab-panel .merchant-controls button:after { content:"›"; position:absolute; right:14px; top:50%; color:#e8d9aa; font-size:1.3rem; transform:translateY(-52%); }
.merchant-tab-panel .merchant-controls button:disabled { color:#7f938d; }
.merchant-rest-row { padding-top:10px; border-top:1px solid #c9a24a44; }
.merchant-rest-row:has(#merchant-free-time[hidden]) { display:none; }
.merchant-rest-row #merchant-free-time { width:100%; min-height:54px; border:0; border-radius:999px; background:linear-gradient(#f6d77a,#d4a238); color:#2a1c05; font-size:.95rem; font-weight:900; box-shadow:0 3px 0 #8c6a1d; }
.merchant-rest-row #merchant-free-time:disabled { background:#4a4f45; color:#b9bdb2; box-shadow:none; }
.merchant-scene .merchant-real-location { margin:0; padding:0; border:0; background:none; }
.merchant-scene .merchant-real-location a { display:grid; gap:2px; padding:9px 14px; border:1px solid #6f8f86; border-radius:12px; color:#e8efe9; text-align:left; font-weight:400; }
.merchant-scene .merchant-real-location a b { font-size:.78rem; }
.merchant-scene .merchant-real-location a small { color:#a9bdb6; font-size:.62rem; }
.merchant-card-face img,.merchant-bubble-face img { transform:scale(1.9); transform-origin:50% 12%; }
/* 10-02 老闆「連同抽屜都是要樣本的」：照樣本縮小尺寸、資料夾式分頁、手寫標語浮水印 */
.merchant-card { grid-template-columns:86px 1fr; gap:12px; margin-bottom:10px; }
.merchant-card-face { width:86px; height:86px; }
.merchant-card b { font-size:1.08rem; }
.merchant-tabs { gap:4px; overflow:visible; border:0; border-radius:0; }
.merchant-tabs button { min-height:42px; border:1px solid #c9a24a66; border-bottom:0; border-radius:12px 12px 0 0; background:#24272d; font-weight:700; }
.merchant-tabs button:last-child { border-right:1px solid #c9a24a66; }
.merchant-tabs button.active { background:linear-gradient(#303339,#21242a); border-color:#d6b45e; box-shadow:none; margin-bottom:-1px; position:relative; z-index:1; }
.merchant-tab-panel { position:relative; overflow:hidden; gap:8px; padding:10px 12px; border-radius:0 0 14px 14px; }
.merchant-tab-panel[data-merchant-panel="chat"]:after { content:"Drive\A a Better\A Life"; white-space:pre; position:absolute; right:10px; bottom:58px; color:#ffffff1c; font:italic 1.05rem/1.1 Georgia,serif; transform:rotate(-12deg); pointer-events:none; }
.merchant-tab-panel>* { position:relative; z-index:1; }
.merchant-bubble-row { grid-template-columns:56px 1fr; }
.merchant-bubble-face { width:56px; height:56px; }
.merchant-tab-panel .merchant-controls button { min-height:42px; padding:8px 30px 8px 12px; margin-right:16%; width:84%; font-weight:600; }
.merchant-tab-panel .merchant-controls button[hidden] { display:none; }
.merchant-rest-row { padding-top:8px; }
.merchant-rest-row #merchant-free-time { width:84%; min-height:46px; }
.merchant-scene .merchant-real-location a { width:84%; padding:6px 12px; }
.merchant-scene .merchant-real-location a small:not([hidden]) { display:block; }
/* 10-02 老闆「畫風設計可以一樣嗎」→「可以」：表情符號換金色細線圖示、標題襯線字、抽屜咖啡葉底紋 */
.merchant-tabs button,.merchant-tab-panel .merchant-controls button,.merchant-rest-row #merchant-free-time,.merchant-scene .merchant-real-location a b { display:flex; align-items:center; gap:8px; }
.merchant-tabs button { justify-content:center; }
.merchant-rest-row #merchant-free-time { justify-content:center; font-size:1rem; letter-spacing:.06em; }
.merchant-tabs button:before,.merchant-tab-panel .merchant-controls button:before,.merchant-rest-row #merchant-free-time:before,.merchant-scene .merchant-real-location a b:before { content:""; flex:none; width:22px; height:22px; background:center/contain no-repeat; }
.merchant-tabs [data-merchant-tab="chat"]:before,#merchant-story:before { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23e6c56e%27%20stroke-width%3D%271.7%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M4%205h16v10H9l-4%204V5z%22/%3E%3Ccircle%20cx%3D%229%22%20cy%3D%2210%22%20r%3D%22.6%22/%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2210%22%20r%3D%22.6%22/%3E%3Ccircle%20cx%3D%2215%22%20cy%3D%2210%22%20r%3D%22.6%22/%3E%3C/svg%3E"); }
.merchant-tabs [data-merchant-tab="mission"]:before { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23e6c56e%27%20stroke-width%3D%271.7%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%225%22%20y%3D%224%22%20width%3D%2214%22%20height%3D%2217%22%20rx%3D%222%22/%3E%3Cpath%20d%3D%22M9%204h6v3H9zM8.5%2011h7M8.5%2014.5h7M8.5%2018h4%22/%3E%3C/svg%3E"); }
.merchant-tabs [data-merchant-tab="rest"]:before { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23e6c56e%27%20stroke-width%3D%271.7%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M4%2010h13v4a5%205%200%200%201-5%205H9a5%205%200%200%201-5-5v-4zM17%2011h1.5a2.5%202.5%200%200%201%200%205H16M9%203c-1%201.2%201%202%200%203.5M12.5%203c-1%201.2%201%202%200%203.5%22/%3E%3C/svg%3E"); }
#talk-merchant:before { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23e6c56e%27%20stroke-width%3D%271.7%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M14.5%204a4.5%204.5%200%200%200-4.2%206.1L4%2016.4%207.6%2020l6.3-6.3A4.5%204.5%200%200%200%2020%209.5l-2.8%202.8-3-.5-.5-3L16.5%206A4.5%204.5%200%200%200%2014.5%204z%22/%3E%3C/svg%3E"); }
.merchant-rest-row #merchant-free-time:before { width:28px; height:28px; background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%232a1c05%27%20stroke-width%3D%271.7%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M4%2010h13v4a5%205%200%200%201-5%205H9a5%205%200%200%201-5-5v-4zM17%2011h1.5a2.5%202.5%200%200%201%200%205H16M9%203c-1%201.2%201%202%200%203.5M12.5%203c-1%201.2%201%202%200%203.5%22/%3E%3C/svg%3E"); }
.merchant-scene .merchant-real-location a b:before { width:18px; height:18px; background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23e6c56e%27%20stroke-width%3D%271.7%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M12%2021s-7-6.2-7-11.5a7%207%200%200%201%2014%200C19%2014.8%2012%2021%2012%2021z%22/%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%229.5%22%20r%3D%222.5%22/%3E%3C/svg%3E"); }
.merchant-scene .merchant-real-location a small { padding-left:26px; }
.merchant-card b,.merchant-tabs button,.merchant-scene .merchant-greeting { font-family:"Noto Serif TC","Noto Serif CJK TC","Source Han Serif TC","Songti TC","PMingLiU",serif; }
.merchant-card b { font-size:1.2rem; font-weight:700; letter-spacing:.08em; color:#fbeecb; text-shadow:0 1px 0 #0006; }
.merchant-tabs button { font-weight:600; letter-spacing:.06em; }
.merchant-tabs button.active { color:#ffe6a3; }
.merchant-drawer-top button { font-weight:600; letter-spacing:.06em; }
.merchant-tab-panel[data-merchant-panel="chat"] { background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%20120%20120%27%20fill%3D%27none%27%20stroke%3D%27%23ffffff%27%20stroke-opacity%3D%27.10%27%20stroke-width%3D%272%27%3E%3Cpath%20d%3D%22M30%20110C40%2060%2080%2030%20110%2020%20100%2060%2070%20100%2030%20110zM30%20110L95%2035M55%2082l-14-12M70%2064l-12-14M82%2048l-10-14%22/%3E%3C/svg%3E") right -18px bottom 70px/150px no-repeat,linear-gradient(#23262c,#1c1f25); }
.merchant-tab-panel[data-merchant-panel="chat"]:after { font-family:"Segoe Script","Brush Script MT",cursive; bottom:62px; color:#ffffff22; }

/* 10-04 電腦版街景被裁切：整張照原比例置中（寬度上限寫在 street-scene.js） */
.street-scene-art { margin-inline:auto; }
.life-world-map:has(.street-scene) { height:auto!important; }
/* 10-08 橫式第5批：手機橫拿街道全螢幕（蓋過頂部狀態卡），街景照高度放大、兩側改深色底不再出現藍綠色塊 */
@media(min-width:900px) and (max-height:700px){.life-map-screen.street-full{inset:0!important;left:0!important;right:0!important;top:0!important;bottom:0!important;width:auto!important;max-width:none!important;height:auto!important;transform:none!important;z-index:95!important;border-radius:0!important}.life-map-screen.street-full .life-world-map:has(.street-scene){background:#142422!important}.life-map-screen.street-full .street-scene-art{max-width:none!important;height:calc(100dvh - 150px);width:auto}}
@media(min-width:900px) and (max-height:700px){.life-map-screen.street-full .life-world-map:has(.street-scene)::before,.life-map-screen.street-full .life-world-map:has(.street-scene)::after{display:none!important}body:has(.life-map-screen.street-full) :is(.game-hud,.brand,.top-actions){display:none!important}}
/* 10-10 老闆：手機橫拿(寬<900)街景太小——街道全螢幕照視窗高度滿寬放大，容器不再夾高度 */
@media (orientation:landscape) and (max-height:520px) and (max-width:899px){
  .life-map-screen.street-full{inset:0!important;left:0!important;right:0!important;top:0!important;bottom:0!important;width:auto!important;max-width:none!important;height:auto!important;transform:none!important;z-index:95!important;border-radius:0!important}
  .life-map-screen.street-full .life-map-panel{height:100%}
  .life-map-screen.street-full .life-map-visual:has(.street-scene){flex:1 1 auto;height:auto!important;min-height:0;background:#142422!important}
  .life-map-screen.street-full .life-world-map:has(.street-scene)::before,.life-map-screen.street-full .life-world-map:has(.street-scene)::after{display:none!important}
  body:has(.life-map-screen.street-full) :is(.game-hud,.brand,.top-actions){display:none!important}
  .life-map-screen.street-full .street-scene{display:flex;flex-direction:column;height:100%;min-height:0}
  .life-map-screen.street-full .life-screen-header{padding:4px 12px!important;min-height:0}
  .life-map-screen.street-full .life-map-panel{padding-top:4px!important}
  .life-map-screen.street-full .life-zone-tabs{margin:0 0 4px!important}
  .life-map-screen.street-full .life-zone-tabs button{padding:3px 10px!important;font-size:12px!important;min-height:0!important}
  .life-map-screen.street-full .cd-plaza{padding:4px 10px!important;min-height:0!important;margin-top:4px!important}
  .life-map-screen.street-full .street-scene-art{flex:1 1 auto;min-height:0;max-width:100%!important;width:100%;height:auto!important;aspect-ratio:auto!important}
}
/* 10-08 橫式第5批：手機橫拿店內改左圖右操作，全螢幕，抽屜在右欄自己捲 */
@media(min-width:900px) and (max-height:700px){.merchant-scene{inset:0!important;left:0!important;top:0!important;width:auto!important;height:auto!important;max-width:none!important;transform:none!important;display:grid!important;grid-template-columns:minmax(0,1fr) 440px;overflow:hidden!important;border-radius:0!important;z-index:96!important}.merchant-scene>.merchant-shop-world{height:100dvh!important;min-height:0!important;max-height:none!important}.merchant-scene>.merchant-drawer{height:100dvh!important;max-height:none!important;margin:0!important;overflow-y:auto!important;border-radius:0!important;transform:none!important;top:0!important}}
