/* Live UI, not a screenshot: all controls remain semantic, selectable and scalable. */
:root{--panel:#083337;--panel-border:#729d94;--gold:#edc55d;--dock:68px;--safe-b:env(safe-area-inset-bottom,0px);--dock-h:calc(var(--dock) + var(--safe-b))}
.ui-icon{width:28px;height:28px;flex-shrink:0;color:var(--gold)}
.sheet-menu button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}
.factory-art{display:block;width:100%;aspect-ratio:1;background:url('../img/factory-atlas.webp') var(--art-x) var(--art-y)/400% 400% no-repeat}
.illustrated-product{display:flex!important;flex-direction:column;align-items:center;height:auto!important;min-height:0!important;padding:12px!important;background:radial-gradient(ellipse,#214f5a,#102c36)!important}
.illustrated-product .factory-art{width:min(100%,220px);height:auto;margin:0;position:static;transform:none}
.illustrated-product>span{position:static!important;font-size:16px!important}
.facility-bay .factory-art{max-width:180px;margin:auto}
.facility-bay.unbuilt .factory-art{filter:grayscale(1);opacity:.45}
.facility-art-status{display:block;font-size:11px;color:#f4d785;margin:4px 0}
.facility-blueprint .factory-art{width:88px;float:left;margin:0 12px 6px 0}
.facility-floor{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
.facility-bay{min-width:0;padding:10px!important;border-radius:16px!important}
.facility-bay strong{font-size:13px!important;line-height:1.5}
.sheet-scroll button:focus-visible,.player-dock button:focus-visible{outline:3px solid #90e9ef;outline-offset:-3px}
.sheet-scroll button,.task-card button{touch-action:manipulation}
.sheet-scroll .facility-blueprint{padding:14px;border-radius:16px}
.sheet-scroll .facility-blueprint button{min-height:48px;white-space:normal}
.sheet-scroll .department-tabs{gap:8px}
.sheet-scroll .department-tabs button{min-height:60px}
.sheet-scroll{scroll-padding:16px;scrollbar-width:thin}
.panel-home .character-home-hero>p{display:none}
.training-campus{height:410px}
.training-door[data-training-door="materials"]{top:30%!important}
.training-door[data-training-door="cnc"]{top:30%!important}
.training-door[data-training-door="qc"]{top:72%!important}
.training-walker{width:34px;height:46px}
.world-game .joystick{width:100px!important;height:100px!important;bottom:22px!important;left:16px!important;background:#092b3540!important;border:1px solid #dbe9e866!important;box-shadow:none!important}
.world-game .joystick i{width:42px!important;height:42px!important;left:28px!important;top:28px!important;background:#edc55d88!important;border:2px solid #ffe098!important;box-shadow:none!important}
body:has(.panel-home) .app-shell{padding:0;max-width:none;width:100%}
body:has(.panel-home) .progress{margin:0}
#app.panel-home{padding-top:0}
.sheet-careers button{display:block;width:100%;min-height:48px;margin:8px 0;padding:10px;text-align:left;color:#fff;background:#123e43;border:1px solid #719b90;border-radius:12px}
[hidden]{display:none!important}
.panel-home .game-intro{height:calc(100dvh - 86px);min-height:400px;overflow:hidden}
.panel-home .intro-copy{padding:0;max-width:none;height:100%;position:relative}
.panel-home .character-home-hero{height:100%;position:relative;overflow:hidden;background:linear-gradient(0deg,#05262cdf,transparent 65%),url('../img/gordon-city-map-land-v549.webp') center/cover}
.panel-home .character-home-hero>h1{position:absolute;top:20px;right:18px;color:#ffe69c;font-size:clamp(20px,5vw,30px);text-shadow:0 2px 4px #000;z-index:1}
.panel-home .character-home-hero>p{position:absolute;top:57px;right:18px;font-size:12px;text-shadow:0 2px #000}
.panel-home .profile-summary{position:absolute;top:14px;left:12px;max-width:48%;background:#052e34ed;border:1px solid #ddbd64;border-radius:18px;z-index:2;display:flex;flex-wrap:wrap;gap:5px;font-size:13px}
.panel-home .profile-summary small{font-size:11px}
.panel-home .avatar-2d-stage{position:absolute;inset:13% 0 120px;height:auto;min-height:0;margin:0;background:transparent;border:0;box-shadow:none;pointer-events:none}
.panel-home .avatar-3d-light,.panel-home .avatar-3d-platform,.panel-home .avatar-3d-nameplate{display:none}
.panel-home .avatar-3d-model{bottom:12px;transform:translateX(-50%) scale(.9)}
.panel-home .character-home-shortcuts{position:absolute;bottom:calc(var(--dock-h) + 10px);left:12px;right:12px;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.panel-home .character-home-action{font-size:12px;padding:9px 4px;min-height:50px;background:#06383ce8;border:1px solid #e1c16c;box-shadow:0 4px 12px #001b25}
.panel-home .character-home-action.primary{background:linear-gradient(#ffe291,#d6a530);color:#192329}
.player-dock{position:absolute;z-index:25;bottom:0;left:0;right:0;height:var(--dock-h);padding:2px 6px var(--safe-b);display:grid;grid-template-columns:repeat(5,1fr);gap:3px;background:linear-gradient(180deg,#062c31fa,#031f24fd);border-top:1px solid #6f989033;box-shadow:0 -5px 14px #00151d70}
.player-dock button{position:relative;display:flex;flex-direction:column;gap:0;align-items:center;justify-content:flex-end;padding:0 1px 3px;background:transparent;border:0;color:#d9e7e3;font-size:10px;border-radius:12px;min-width:0;min-height:58px;overflow:hidden}
.player-dock button b{position:relative;z-index:2;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 3px #000}
.pd-art{position:relative;z-index:1;display:grid;place-items:center;width:100%;height:45px;line-height:1}
.pd-art img{display:block;width:45px;height:45px;object-fit:contain;filter:drop-shadow(0 3px 3px #0009)}
.player-dock button[aria-pressed=true]{color:#ffe17b;background:radial-gradient(circle at 50% 38%,#ffe38248,#8e681c18 58%,transparent 72%)}
.player-sheet{position:absolute;z-index:24;inset:auto 0 var(--dock-h);height:58%;border:1px solid var(--panel-border);border-radius:23px 23px 0 0;background:#04262c linear-gradient(140deg,#0b4248,#04262c);box-shadow:0 -8px 30px #001b2b88;display:flex;flex-direction:column;overflow:hidden}
.player-sheet.expanded{height:calc(100% - var(--dock-h) - 8px)}
.sheet-head{display:flex;align-items:center;gap:5px;padding:8px;border-bottom:1px solid #689c9144;flex-shrink:0}
.sheet-head h2{flex:1;font-size:16px;margin:0;color:#fff0b8}
.sheet-head button{min-height:44px;background:transparent;color:#e7e7d8;border:0;padding:5px;font-size:13px;white-space:nowrap}
.sheet-scroll{overflow:auto;overscroll-behavior:contain;padding:12px;flex:1;min-height:0}
.sheet-scroll [data-home-panel]>*{max-width:100%;margin:8px 0;min-width:0}
.sheet-scroll .player-setup{border:0;padding:0}
.sheet-scroll input,.sheet-scroll select{max-width:100%;font-size:16px}
.sheet-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.sheet-menu button{min-height:76px;padding:10px;color:#fff1ba;background:#174c50;border:1px solid #719b90;border-radius:14px}
.sheet-skill-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sheet-skill-grid article{padding:14px;background:#123e43;border:1px solid #587f79;border-radius:12px}
.sheet-skill-grid strong{display:block;color:#ffd979;font-size:28px}
.sheet-skill-grid meter{width:100%}
.starter-weapons{border:1px solid #638c82;border-radius:12px;padding:10px}
.starter-weapons button{min-height:48px;margin:3px;background:#183b41;color:#fff;border:1px solid #648d87;border-radius:10px;padding:10px}
.starter-weapons button[aria-pressed=true]{background:#e4ba55;color:#122c30;border-color:#ffe6a2}
.panel-home:is(.home-open,.life-map-open,.social-open,.finance-center-open) .player-dock,.panel-home:is(.home-open,.life-map-open,.social-open,.finance-center-open) .player-sheet{visibility:hidden;pointer-events:none}
.task-overlay{position:fixed;inset:0;z-index:100;padding:10px!important;align-items:stretch!important}
.task-overlay>.task-card{width:min(100%,760px)!important;max-height:calc(100dvh - 20px)!important;margin:auto!important;overflow:auto;overscroll-behavior:contain;border-radius:22px!important;background:linear-gradient(145deg,#0c363d,#101f2a)!important}
.task-card>.task-back{position:sticky;top:0;z-index:5;background:#173d43}
.task-card .mine-battle{border-radius:18px;border-color:#779893;background:#11313d}
.task-card .combat-arena{min-height:230px;height:31dvh;max-height:340px}
.combat-controls{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important}
.combat-controls button{min-height:54px!important;white-space:normal!important;padding:10px!important;border-radius:12px!important;background:#1e5057;color:#fff;border:1px solid #a2b5a2}
.combat-controls .weapon-confirm{background:linear-gradient(#ffe091,#d5a735);color:#19292e;grid-column:span 2}
.combat-equipped{padding:10px;border:1px solid #c4ac61;border-radius:12px;color:#ffe199}
.combat-retreat-confirm{grid-column:span 2;padding:12px;background:#10252e;border:1px solid #e6c362;border-radius:12px}
.combat-retreat-confirm button{margin:4px}
.combat-player{animation:player-ready 1.1s ease-in-out infinite alternate}
.mine-battle-v2 .combat-avatar{width:100px;height:150px;background:none;border:0;border-radius:0;box-shadow:none;left:6%;bottom:25px;overflow:hidden;filter:drop-shadow(0 6px 4px #0008)}
.combat-avatar:before,.combat-avatar:after{display:none}
.combat-avatar img{position:absolute;width:400%;max-width:none;height:auto;left:calc(var(--avatar) * -100%);bottom:0}
.combat-avatar b{left:28px;bottom:-17px}
/* 戰鬥動作圖（6 格橫條，--frame 0–5）：人物腳底在格高 470/512，框底往下補 12px 讓腳踩在原本的地面 */
@keyframes player-sidestep{45%{transform:translateX(-26px)}100%{transform:none}}
.task-card .combat-arena{background:linear-gradient(#06212f44,#05141a66),url('../img/material-levels-mobile-v81.webp') 50% 50%/300% 100%}
.hero-stats{position:absolute;left:14px;top:120px;z-index:3;border:1px solid #bcaa70;border-radius:12px;padding:7px 12px;background:#083034e8;font-size:13px;color:#ffe8a4}
.life-map-screen:not([hidden]){display:flex;flex-direction:column;top:max(calc(var(--topbar-h,68px) + 4px),calc(env(safe-area-inset-top) + 4px));bottom:0;height:auto;overflow:hidden;padding:0 8px max(8px,env(safe-area-inset-bottom))}
.life-map-screen .training-life-entry{display:none}
.life-map-screen .free-time-hub{display:none}
.mining-hoe{display:none;position:absolute;width:72px;height:90px;z-index:8;pointer-events:none;transform-origin:60px 78px;filter:drop-shadow(2px 4px 2px #0009)}
.mining-hoe.swing{display:block;animation:hoe-swing .52s ease-in-out both}
.hoe-handle{position:absolute;left:39px;top:2px;width:10px;height:87px;border:1px solid #583612;border-radius:5px;background:linear-gradient(90deg,#6b3f1d,#d4a063 45%,#7f4925);transform:rotate(-26deg)}
.hoe-blade{position:absolute;left:0;top:0;width:48px;height:20px;border:2px solid #d6e8ed;background:linear-gradient(165deg,#e6f5fa,#758b99 45%,#314d60);clip-path:polygon(0 0,100% 0,100% 38%,36% 47%,23% 100%,0 100%)}
.mining-impact{position:absolute;z-index:9;pointer-events:none;width:1px;height:1px;display:none}
.mining-impact.hit{display:block}
.mining-impact i{position:absolute;width:8px;height:8px;background:#ffe08b;border:1px solid #fff1cf;animation:ore-chip .28s ease-out both;--dx:-32px;--dy:-25px}
.mining-impact i:nth-child(2){--dx:34px;--dy:-30px}.mining-impact i:nth-child(3){--dx:-26px;--dy:22px}.mining-impact i:nth-child(4){--dx:24px;--dy:26px}.mining-impact i:nth-child(5){--dx:3px;--dy:-43px}.mining-impact i:nth-child(6){--dx:41px;--dy:3px}
.mining-tool-hint{position:absolute;z-index:6;bottom:5px;left:8px;right:8px;margin:0;padding:5px;border-radius:9px;background:#09292edb;color:#ffe4a3;text-align:center;font-size:12px;pointer-events:none}
.mining-tool-scene .material-node>i{width:31px;height:29px;clip-path:polygon(20% 0,76% 6%,100% 52%,71% 100%,8% 84%,0 31%);border:2px solid #c6e2dd;transform:none}
.mining-tool-scene .material-node{animation:none;transform:none}
.material-level-overlay{position:fixed!important;inset:0!important;z-index:100!important}
.material-level-overlay>.task-card{display:flex;flex-direction:column;height:calc(100dvh - 24px);height:calc(100dvh - 24px - env(safe-area-inset-bottom));overflow:hidden!important;padding:0!important}
.material-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:14px 14px 110px;scroll-padding-block:55px 110px}
.material-scroll>.task-back{position:sticky;top:0;z-index:10;background:#133b41}
.material-navigation{position:relative;z-index:11;display:grid;grid-template-columns:1fr 1fr;gap:8px;flex-shrink:0;padding:10px 12px max(10px,env(safe-area-inset-bottom));border-top:1px solid #b4a569;background:#082c32;box-shadow:0 -4px 15px #00191f88}
.material-navigation .btn{min-width:0;min-height:52px;padding:8px;font-size:14px;line-height:1.4;white-space:normal}
.material-navigation .btn:disabled{opacity:1;background:#31464a;color:#bfc9c9;border-color:#627374}
.material-walk-map .material-node{animation:none!important;transform:none!important}
.material-walker{position:absolute;z-index:6;width:58px;height:76px;transform:translate(-50%,-85%);pointer-events:none}
.material-walker i{display:block;width:58px;height:65px;background:var(--player-sheet,url('../img/player-options-mobile-mobile-v81.webp')) calc(var(--avatar) * 100% / 3) 0/400% 100% no-repeat;filter:drop-shadow(0 4px 3px #0009)}
.material-walker span{display:block;text-align:center;color:#fff;background:#07343ddd;border-radius:8px;font-size:11px}
.material-walker.walking i{animation:material-steps .24s ease-in-out infinite alternate}
/* 材料探險區方案 1（09-29）：角色走位＋角落小地圖（整顆是一個按鈕：走到下一個採集點） */
.ex-walker{transition:left var(--walk-dur,.6s) linear,top var(--walk-dur,.6s) linear}
.ex-minimap{position:absolute;z-index:7;right:6px;top:6px;width:56px;height:92px;padding:0;border:2px solid #ffffff8c;border-radius:8px;background:#10211dd9;cursor:pointer}
.ex-minimap:disabled{opacity:.55;cursor:default}
.ex-mini-dot{position:absolute;width:10px;height:10px;transform:translate(-50%,-50%);border-radius:50%;background:#8b8b8b;border:1px solid #0008}
.ex-mini-dot.is-ready{background:#3fd784;box-shadow:0 0 6px #3fd784}
.ex-mini-dot.is-wait{background:#b7a45d;opacity:.6}
.ex-mini-me{position:absolute;width:8px;height:8px;transform:translate(-50%,-50%);border-radius:50%;background:#7fd8ff;border:1px solid #fff;transition:left var(--walk-dur,.6s) linear,top var(--walk-dur,.6s) linear}
.ex-walk-status{margin:4px 0 0;text-align:center}
@media(prefers-reduced-motion:reduce){.ex-walker,.ex-mini-me{transition:none}}
.material-movement-controls{flex-shrink:0;padding:8px;background:#082c32;border-radius:12px}
.material-movement-controls p{margin:0 0 6px;font-size:13px;color:#ffe19a}
.material-movement-controls>div{display:flex;gap:8px;justify-content:center}
.material-movement-controls button{min-width:52px;min-height:48px;border:1px solid #b5a774;border-radius:12px;background:#21464c;color:white;font-size:24px;touch-action:none}
@keyframes material-steps{to{transform:translateY(-4px) rotate(3deg)}}
@media(prefers-reduced-motion:reduce){.material-walker.walking i{animation:none}}
.material-node.ore-struck{animation:ore-jolt .18s ease-out!important;filter:brightness(1.5)}
@keyframes hoe-swing{0%{transform:rotate(-65deg)}35%{transform:rotate(-85deg)}46%,62%{transform:rotate(0)}100%{transform:rotate(-32deg);opacity:0}}
@keyframes ore-chip{from{transform:translate(0,0) scale(1);opacity:1}to{transform:translate(var(--dx),var(--dy)) rotate(120deg) scale(.3);opacity:0}}
@keyframes ore-jolt{25%{translate:-3px 0}65%{translate:3px 1px}100%{translate:0 0}}
@media(prefers-reduced-motion:reduce){.mining-hoe.swing,.mining-impact i,.material-node.ore-struck{animation:none!important}.mining-hoe.swing{transform:none}.mining-impact{display:none!important}}
.life-map-screen .life-screen-header{margin:0;min-height:60px}
.life-map-screen .life-map-panel{flex:1;min-height:0;margin:0;padding:8px;overflow:hidden}
.life-map-screen .life-map-heading{flex-shrink:0;min-height:32px}
.life-map-screen .life-map-heading .eyebrow{display:none}
.life-map-screen .life-map-heading h2{font-size:17px;margin:0}
.life-map-screen .life-zone-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;flex-shrink:0}
.life-map-screen .life-zone-tabs button{padding:5px;min-height:48px;font-size:11px}
.life-map-screen .life-zone-tabs small{font-size:9px}
.life-map-open .life-world-map:has(.dining-street){flex:1;height:auto!important;min-height:180px;margin-top:6px}
.life-map-screen .life-walk-controls{flex-shrink:0;margin:4px 0;padding:0}
.life-map-screen .life-map-panel>p,.life-map-screen .street-stats,.life-map-screen .street-funds,.life-map-screen .life-map-filters,.life-map-screen .life-map-count,.life-map-screen .life-map-list,.life-map-screen .life-map-disclaimer{display:none}
@keyframes player-ready{to{translate:3px -4px}}
.life-map-open .life-map-screen{background:#082f33}
.life-map-open .life-world-map:has(.dining-street){height:calc(100dvh - 270px)!important;min-height:340px}
/* 音樂提示改浮在首頁捷徑列（dock+24、高約 56px）上方，避免前 4.5 秒蓋住接單等按鈕、吃掉第一下點擊 */
.audio-start-prompt{max-width:220px!important;bottom:calc(var(--dock-h) + 100px)!important;font-size:12px!important;opacity:.96}
/* 音樂按鈕旁的「點這裡開啟音樂」小提示：原本固定在畫面上方 72px，會蓋住面板標題列的縮小／收合鈕；改貼在音樂鈕左側、留在頂列內 */
.sound-toggle[data-audio-state="waiting"]:before{position:absolute!important;top:50%!important;right:calc(100% + 8px)!important;transform:translateY(-50%)}
.settings-controls label{display:block;padding:12px;border:1px solid #5c837e;border-radius:12px;margin:8px 0}
.settings-controls input[type=range]{width:100%}
.settings-controls button{margin:6px;min-height:44px}
.reduced-motion *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(max-width:500px){.topbar{padding:calc(5px + env(safe-area-inset-top,0px)) 12px 5px!important;min-height:calc(54px + env(safe-area-inset-top,0px))}.brand{font-size:17px!important}.brand-mark{width:38px!important;height:38px!important}.top-actions .timer{display:none}.sound-toggle{width:38px!important;height:38px!important;min-width:38px}.sound-toggle b{display:none!important}.panel-home .game-intro{height:calc(100dvh - 60px - env(safe-area-inset-top,0px))}.sheet-scroll h2{font-size:21px}.sheet-scroll .avatar-pick{grid-template-columns:repeat(4,minmax(0,1fr))}.task-card{padding:14px!important}}
@media(max-height:650px){.panel-home .avatar-3d-model{transform:translateX(-50%) scale(.62);transform-origin:bottom}.panel-home .character-home-hero>p{display:none}.player-sheet{height:70%}}
@media(min-width:800px){
  .panel-home .intro-copy{width:min(1180px,calc(100vw - 48px));max-width:1180px;margin:auto}
  .player-sheet{left:5%;right:5%;max-width:1080px;margin-inline:auto}
  .panel-home .character-home-hero{border-radius:18px}
  .panel-home .game-intro{height:calc(100dvh - 82px)}
  .panel-home .avatar-2d-stage{inset:3% 0 calc(var(--dock-h) + 70px)}
}
@media(prefers-reduced-motion:reduce){.combat-player{animation:none}}
/* 員工中心 */
[data-home-panel="staff"]{display:grid;gap:14px;min-width:0}
[data-home-panel="staff"][hidden]{display:none}
.staff-summary{margin:0;color:#fff1ba;font-weight:700}
.staff-jump{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:#cfe9e4}
.panel-sticky-nav{position:sticky;top:-12px;z-index:12;margin:0 -4px!important;padding:8px 4px;background:linear-gradient(180deg,#06363df7 75%,#06363d00);backdrop-filter:blur(8px)}
.staff-quick-nav{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}
.staff-quick-nav::-webkit-scrollbar{display:none}
.staff-quick-nav button{flex:0 0 auto;min-height:42px;padding:7px 13px;border:1px solid #d5b95f;border-radius:999px;background:#10191ddd;color:#fff0b8;font-weight:800;white-space:nowrap}
.miner-quick-nav button{flex:1 0 auto}
.staff-section[data-staff-section],.staff-section[data-miner-section]{scroll-margin-top:64px}
.line-tabs.panel-sticky-nav{top:-12px;margin:0!important;padding:8px 0;grid-template-columns:repeat(5,minmax(78px,1fr));overflow-x:auto}
.line-tabs.panel-sticky-nav button{min-width:78px}
.staff-msg{margin:0;min-height:1.4em;color:#ffd979}
.staff-msg:empty{display:none}
.staff-section{display:grid;gap:10px;min-width:0}
.staff-section h3{margin:4px 0 0;color:#fff1ba}
.emp-note,.staff-rules p{margin:0;color:#cfe5dc;font-size:14px;line-height:1.5}
.emp-grid,.line-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;min-width:0}
.emp-card,.line-card{display:grid;gap:8px;padding:12px;background:#123e43;border:1px solid #587f79;border-radius:12px;color:#f3f7ef;min-width:0}
.emp-card{grid-template-columns:64px minmax(0,1fr)}
.staff-compact .emp-grid{align-items:start}
.staff-compact .emp-card{background:linear-gradient(145deg,#242733,#12151d);border-color:#a78a4e70;border-radius:18px;gap:10px}
.staff-compact .emp-head{align-content:start;gap:6px}
.staff-compact .emp-level{color:#ffe291;font-size:12px;font-weight:800}
.staff-compact .emp-tag{background:#292c34;color:#e4dfcf;font-size:12px}
.staff-compact .emp-portrait{border:1px solid #d9b85c80;border-radius:14px}
.staff-card-details{grid-column:1/-1;min-width:0;border-top:1px solid #b99b5338}
.staff-card-details>summary{padding:12px 4px;min-height:44px;cursor:pointer;color:#e4c985;font-size:13px;font-weight:700}
.staff-detail-body{display:grid;gap:10px;padding:4px 0 12px;min-width:0}
.staff-detail-body>small{color:#b9c2cd;line-height:1.6}
.staff-compact .emp-head .emp-tag{overflow-wrap:anywhere}
.staff-compact .emp-card>.emp-care{grid-column:1/-1}
.staff-compact .staff-section{scroll-margin-top:76px}
.staff-compact .staff-quick-nav{top:0;background:#161a22;box-shadow:0 5px 12px #0005;margin-bottom:16px!important;border-bottom:1px solid #a78a4e70}
.staff-compact .emp-card.welfare-card{grid-template-columns:minmax(0,1fr);padding:14px;gap:8px}
.staff-compact .welfare-card .emp-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.staff-compact .welfare-card .welfare-art{width:100%;height:164px;margin:0;object-fit:contain;border:0;border-radius:12px;background:radial-gradient(ellipse,#403a2966,transparent 72%)}
.staff-compact .welfare-benefit{margin:0;text-align:center;color:#ffe291;font-size:14px;font-weight:800}
@media(max-width:600px){.staff-compact [data-staff-section="welfare"]>.emp-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.staff-compact .emp-card.welfare-card{padding:10px}.staff-compact .welfare-card .welfare-art{height:120px}.staff-compact .welfare-card .emp-head b{font-size:15px}.staff-compact .welfare-benefit{font-size:12px}}
.emp-card>.emp-skills,.emp-card>.emp-money,.emp-card>button,.emp-card>.emp-warn,.emp-card>.emp-note{grid-column:1/-1}
.emp-portrait{display:block;width:64px;height:72px;border-radius:10px;background:#e9eee6 url('../img/player-options-mobile-mobile-v81.webp') calc(var(--avatar) * 100% / 3) 0/400% 100% no-repeat}
.emp-head{display:grid;gap:3px;min-width:0}
.emp-head b{color:#fff1ba;font-size:17px}
.emp-head small{color:#cfe5dc;overflow-wrap:anywhere}
.emp-tag{justify-self:start;padding:2px 8px;border-radius:999px;background:#0b2a30;color:#9fe3d6;font-size:13px}
.emp-skills{list-style:none;margin:0;padding:0;display:grid;gap:3px}
.emp-skills li{display:grid;grid-template-columns:74px minmax(0,1fr) 28px;align-items:center;gap:6px;font-size:13px;color:#cfe5dc}
.emp-skills li.is-specialty{color:#ffd979;font-weight:700}
.emp-skills meter{width:100%;height:10px}
.emp-skills b{text-align:right}
.emp-money{margin:0;font-size:13px;color:#e8f1ea;line-height:1.5}
.emp-warn{color:#ffb4a8}
.emp-empty{margin:0;color:#cfe5dc}
.emp-card .btn,.line-card .btn,.staff-section>.btn{min-height:44px;width:100%;white-space:normal}
.line-card header{display:flex;justify-content:space-between;align-items:center;gap:8px}
.line-card header b{color:#fff1ba}
.line-status{flex:none;padding:3px 10px;border-radius:999px;background:#0b2a30;color:#fff;font-size:13px;font-weight:700}
.line-card[data-status="ready"] .line-status{background:#2f7d4f}
.line-card[data-status="running"] .line-status{background:#2c6aa0}
.line-card[data-status="done"] .line-status{background:#b7862a;color:#1b1406}
.line-card[data-status="unqualified"] .line-status,.line-card[data-status="nofunds"] .line-status,.line-card[data-status="tired"] .line-status{background:#9b3b33}
.line-card[data-status="unbuilt"]{opacity:.72}
.line-detail{margin:0;font-size:14px;color:#e8f1ea}
.line-card small{color:#cfe5dc;overflow-wrap:anywhere}
.emp-field{display:grid;gap:4px;font-size:13px;color:#cfe5dc}
.emp-field select{min-height:44px;width:100%;max-width:100%;background:#0b2a30;color:#fff;border:1px solid #719b90;border-radius:8px;padding:0 8px}
.staff-catalog{width:100%;border-collapse:collapse;font-size:13px;color:#e8f1ea;table-layout:fixed}
.staff-catalog th,.staff-catalog td{padding:6px;border-bottom:1px solid #3d6862;text-align:left;vertical-align:top;overflow-wrap:anywhere}
.staff-catalog th{color:#fff1ba}
.route-staff-note{margin:6px 0 0;color:#ffd979}
.route-staff-note:empty{display:none}
/* 員工中心：開工前成本明細與虧損警告 */
.emp-estimate{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 10px;margin:4px 0;padding:8px 10px;border:1px solid #729d9466;border-radius:10px;background:#02201f99;font-size:13px}
.emp-estimate div{display:flex;justify-content:space-between;gap:6px;min-width:0}
.emp-estimate dt{color:#b9cfc8}.emp-estimate dd{margin:0;color:#e8f1ea;font-variant-numeric:tabular-nums}
.emp-estimate .net{grid-column:1/-1;border-top:1px solid #729d9455;padding-top:4px;font-weight:900}
.emp-estimate .net dd{color:#9ff0b5}
.emp-estimate.is-loss{border-color:#ff8a78}.emp-estimate.is-loss .net dd{color:#ffb4a8}
.emp-warn.loss{margin:0;padding:6px 10px;border-radius:8px;background:#5a1712cc;color:#ffd9d2;font-weight:900;font-size:13px}
.action-confirm .confirm-warn{padding:8px 10px;border-radius:8px;background:#5a1712;color:#ffd9d2;font-weight:900}
.action-confirm .confirm-detail{white-space:pre-line}
/* 第二包：材料探險面板（沿用員工中心的卡片樣式，只補探險專用部分） */
.ex-panel{display:grid;gap:12px;min-width:0}
.ex-status{display:flex;flex-wrap:wrap;gap:6px 12px;padding:10px;border-radius:12px;background:#0b2a30;color:#cfe5dc;font-size:14px}
.ex-status b{color:#fff1ba}
.ex-zone{grid-template-columns:minmax(0,1fr)}
.ex-zone>*{grid-column:1/-1}
.ex-zone.is-locked{opacity:.78;border-style:dashed}
.ex-zone.zone-yellow{border-color:#d8b64a}.ex-zone.zone-blue{border-color:#5aa7e0}.ex-zone.zone-red{border-color:#e06a5a}.ex-zone.zone-purple{border-color:#9b6ae0}.ex-zone.zone-silver{border-color:#b8c4d0}.ex-zone.zone-gold{border-color:#f2d36b}
.ex-panel .btn{min-height:44px;white-space:normal;overflow-wrap:anywhere}
.ex-weapon-pick{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px}
.ex-weapon-pick .btn{display:grid;gap:2px}.ex-weapon-pick small{font-size:12px;font-weight:400}
.ex-actions{display:flex;flex-wrap:wrap;gap:8px}.ex-actions .btn{flex:1 1 130px}
.ex-scene{position:relative;height:190px;border-radius:12px;overflow:hidden;background:radial-gradient(circle at 50% 110%,#3b5c55,#15302f 60%,#0a1c1d);border:1px solid #587f79}
.ex-node{position:absolute;display:grid;justify-items:center;gap:2px;min-width:64px;min-height:64px;padding:6px;transform:translate(-50%,-50%)!important;border:0;background:none;color:#fff;cursor:pointer}
.ex-node i{display:block;width:34px;height:30px;background:linear-gradient(150deg,#e6d49a,#8e7a43 55%,#4a3d1d);clip-path:polygon(20% 0,76% 6%,100% 52%,71% 100%,8% 84%,0 31%)}
.ex-node span{font-size:12px;padding:1px 6px;border-radius:8px;background:#07343ddd}
.ex-node.is-ready span{background:#1f7a4b}
.ex-node.is-done i{filter:grayscale(1) brightness(.55)}.ex-node.is-done span{background:#4a4a4a}
.ex-node.is-wait{opacity:.6}
.ex-node:disabled{cursor:default}
.ex-combat{display:grid;gap:6px;padding:10px;border-radius:12px;background:#3a1612;border:1px solid #e06a5a;color:#ffe4dc}
.ex-combat p{margin:0}.ex-combat-title{font-weight:900;color:#ffb4a8}
.ex-combat meter{width:100%}
.ex-log{margin:0;color:#ffe19a;font-size:14px}
.ex-history{margin:0;padding-left:18px;color:#cfe5dc;font-size:13px;display:grid;gap:3px}
/* 09-28 第 1 批：共用 HUD／五分頁／單一主面板三態／安全區／返回 */
.game-hud{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;flex:1;min-width:0;padding:3px 8px 3px 3px;border:1px solid #bda45e;border-radius:14px;background:#08272cee;color:#f1ead0}
.hud-avatar{width:34px;height:34px;border-radius:50%;border:2px solid var(--gold);background:#e9eee6 var(--player-sheet,url('../img/player-options-mobile-mobile-v81.webp')) calc(var(--avatar,0) * 100% / 3) 8%/400% auto no-repeat}
.hud-main{min-width:0;display:grid;gap:3px}
.hud-name{display:flex;align-items:baseline;gap:6px;margin:0;min-width:0;font-size:13px;line-height:1.2}
.hud-level{flex:none;padding:0 6px;border-radius:6px;background:var(--gold);color:#1b2326;font-size:11px;font-weight:900}
.hud-nick{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800}
.hud-xp{display:grid;grid-template-columns:minmax(40px,1fr) auto;align-items:center;gap:5px;margin:1px 0 2px}
.hud-xp i{display:block;height:4px;border-radius:9px;background:#2a2410;overflow:hidden}
.hud-xp em{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,#c9a24a,#ffe07a);transition:width .3s}
.hud-xp small{font-size:10px;color:#e8cf86}
.hud-energy{display:grid;grid-template-columns:minmax(40px,1fr) auto;align-items:center;gap:5px}
.hud-energy i{display:block;height:7px;border-radius:9px;background:#133f44;overflow:hidden}
.hud-energy em{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,#6fe29a,#ffe07a);transition:width .3s}
.hud-energy small{font-size:11px;color:#ffe8a4;white-space:nowrap;font-variant-numeric:tabular-nums}
.hud-wallet{display:grid;justify-items:end;line-height:1.15;min-width:0;font-variant-numeric:tabular-nums}.hud-cash,.hud-s{white-space:nowrap}.hud-debt{display:block}
.topbar:has(.game-hud) .brand{display:none}
@media(min-width:720px){.topbar:has(.game-hud) .brand{display:flex;flex:0 1 auto}.game-hud{max-width:460px}}
@media(max-width:500px){.topbar:has(.game-hud){gap:6px}.topbar:has(.game-hud) .game-clock{min-width:0;padding:0 5px;font-size:.62rem;line-height:1.1;white-space:normal;text-align:center;width:52px}.topbar:has(.game-hud) .app-back{min-width:0;padding:6px;font-size:0}.topbar:has(.game-hud) .app-back:before{content:"←";font-size:18px}}
@media(max-width:380px){.game-hud{grid-template-columns:34px minmax(0,1fr) auto;gap:5px}.hud-avatar{width:34px;height:34px}.hud-energy small{font-size:10px}}
/* 首頁：數值全部交給頂列 HUD，場景裡不再重複標題／人物卡／數值卡（標題保留給螢幕報讀） */
.panel-home .character-home-hero>h1{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.panel-home .character-home-hero .profile-summary,.panel-home .hero-stats{display:none}
.panel-home .avatar-2d-stage{inset:4% 0 calc(var(--dock-h) + 84px)}
.panel-home .character-home-action{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:clamp(11px,3.2vw,13px)}
/* 面板：一律全開（老闆 09-29 不要半開），把手往下拖＝收合；同時只顯示一個主面板，捲動只在面板內 */
.sheet-handle{display:grid;place-items:center;flex-shrink:0;width:100%;height:22px;min-height:22px;padding:0;border:0;background:transparent;cursor:grab;touch-action:none}
.sheet-handle i{display:block;width:44px;height:5px;border-radius:9px;background:#bfd8cf99}
.sheet-head{padding-top:0}
body:has(.panel-home){overflow:hidden;overscroll-behavior:none}
body:has(.panel-home) .game-intro{overscroll-behavior:none}
/* 採集：擊退怪物後的「繼續採集」用十字鎬圖示 */
.continue-gather{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;margin:8px 0 0;padding:8px 16px;border:1px solid #ffe098;border-radius:12px;background:linear-gradient(#ffe291,#d6a530);color:#192329;font-weight:900}
.continue-gather .ui-icon{width:24px;height:24px;color:#192329}
/* 盲點系統追加題：哪一個用來連接電路？ */
.wire-quiz{margin-top:12px;padding-top:10px;border-top:1px solid #587f79}
.wire-quiz-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.wire-quiz-options button{display:grid;justify-items:center;gap:6px;min-height:110px;padding:10px;border:1px solid #719b90;border-radius:14px;background:#123e43;color:#fff}
.wire-quiz-options svg{width:72px;height:46px}
.wire-quiz-options .correct{border-color:#7fe0a3;background:#1d5a3c}.wire-quiz-options .wrong{opacity:.6;border-color:#e06a5a}
/* 有 HUD 時頂列已滿，音樂小提示泡泡會蓋住體力／G；改由音樂鈕金框閃動＋畫面下方「開啟遊戲音樂」卡片提示 */
.topbar:has(.game-hud) .sound-toggle[data-audio-state="waiting"]:before{display:none}
/* 第 2 批：首頁地圖四區入口（左側直欄，文字程式排版）＋海外鎖定 */
/* 09-29 員工疲勞：狀態標籤＋體力條＋品質產量 */
.emp-fatigue{grid-column:1/-1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:4px 8px;padding:8px 10px;border-radius:10px;background:#0b2a30;font-size:13px}
.emp-fatigue meter{width:100%;height:10px}
.emp-fatigue small{grid-column:1/-1;color:#cfe3dc;line-height:1.4}
.emp-rest{grid-column:1/-1;display:grid;gap:4px}
.emp-dismiss{grid-column:1/-1;display:grid;gap:4px;justify-items:start}
.emp-dismiss .btn{min-height:44px;white-space:nowrap;border-color:#a35b5b;color:#ffd9d9}
.emp-dismiss small{color:#cfe3dc;font-size:13px;line-height:1.4}
.emp-card>.emp-care,.emp-card>.emp-rename{grid-column:1/-1}
/* 10-04 課程卡沒有頭像：不留 64px 欄，課程按鈕兩兩一排 */
.emp-card.course-card{grid-template-columns:minmax(0,1fr)}
.emp-actions{display:flex;flex-wrap:wrap;gap:6px}
.emp-actions .btn{flex:1 1 calc(50% - 6px);width:auto}
.emp-care{display:grid;gap:8px;padding:10px;border-radius:10px;background:#0c2e32;border:1px solid #587f79}
.emp-care.is-tired{border-color:#d9a441;background:#3a2e0ccc}
.emp-care.is-off{border-color:#7fa7d9;background:#15284acc}
.emp-care>p{margin:0;font-size:14px;line-height:1.4;color:#fff4d6}
.emp-care-choices{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.emp-off{display:grid;gap:4px}
.emp-off .btn{width:100%;min-height:44px}
.emp-off small,.emp-care>small{color:#cfe3dc;font-size:13px;line-height:1.4}
.emp-rename summary{cursor:pointer;color:#bfe6d8;font-size:13px;min-height:32px;display:flex;align-items:center}
.emp-rename label{display:grid;gap:4px;font-size:13px;color:#cfe3dc;margin:4px 0 6px}
.emp-rename input{min-height:40px;font-size:16px;padding:6px 10px;border-radius:8px;border:1px solid #587f79;background:#0b2427;color:#fff;width:100%;box-sizing:border-box}
.emp-rest .btn{width:100%;min-height:44px}
.emp-rest small{color:#cfe3dc;font-size:13px;line-height:1.4}
.emp-rest .nowrap{white-space:nowrap}
.emp-fatigue-tag{font-weight:900;white-space:nowrap}
.emp-warn.fatigue{margin:0;padding:6px 10px;border-radius:8px;background:#4d3a0fcc;color:#ffe6a8;font-weight:700;font-size:13px}
/* 首頁產線進度列（09-29）：一排橫向捲動小卡，放在四個入口按鈕上方 */
.line-dock{position:absolute;z-index:3;left:12px;right:12px;bottom:calc(var(--dock-h) + 18px + 58px);display:grid;gap:4px}
.line-dock-row{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding-bottom:2px}
.line-dock-card{flex:0 0 min(78%,240px);scroll-snap-align:start;display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 8px;border-radius:12px;background:#fffbea;border:1px solid #d9ab3f;color:#2f2010;box-shadow:0 2px 8px #6b4a1022}
.line-dock-card[data-status=done]{border-color:#e1c16c}
.line-dock-card[data-status=tired],.line-dock-card[data-status=nofunds]{border-color:#d98a41}
.line-dock-card .emp-portrait{width:40px;height:45px;border-radius:8px}
.line-dock-card .emp-portrait.is-empty{background:#f5ecd2;border:1px dashed #c89a2e}
.line-dock-info{display:grid;gap:1px;min-width:0;font-size:12px;line-height:1.3}
.line-dock-info b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.line-dock-info span,.line-dock-info small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#5a4426}
.line-dock-info small{font-size:11px}
.line-dock-info meter{width:100%;height:6px}
.line-dock-btn{min-height:44px;min-width:56px;padding:4px 8px;font-size:12px;border-radius:10px;border:1px solid #c89a2e;background:#fffdf7;color:#4a3306}
.line-dock-btn.primary{background:linear-gradient(#ffe291,#d6a530);color:#192329}
.line-dock-btn.warn{border-color:#d98a41;background:#fff0dc;color:#7a3a00}
.line-dock-btn.ghost{background:transparent;color:#4a3306}
.line-dock-pick{display:flex;flex-direction:column;gap:4px}
.line-dock-btn small{display:block;max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:400}
.line-dock-msg{margin:0;padding:4px 8px;border-radius:8px;background:#fff6dc;font-size:12px;color:#5a3a06}
.line-dock-msg:empty{display:none}
/* 09-29 第 4 批：背包／倉庫／裝備商店格子（設計稿 04：3 欄大格子，不做密集小格） */
.inv-coins{display:flex;align-items:center;gap:8px;margin:0 0 10px;color:#fff1ba;font-weight:900}
.inv-coins .ui-icon{width:26px;height:26px}
.inv-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:10px}
.inv-tabs button{min-height:44px;border:1px solid #587f79;border-radius:10px;background:#0b2a30;color:#cfe5dc;font-weight:900}
.inv-tabs button[aria-selected="true"]{background:#1f7a4b;border-color:#8fe0b0;color:#fff}
.inv-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}
.inv-slot{display:grid;justify-items:center;align-content:start;gap:3px;min-width:0;min-height:108px;padding:10px 4px 8px;border:1px solid #587f79;border-radius:12px;background:#123e43;color:#f1ead0;text-align:center}
.inv-slot b{font-size:13px;line-height:1.25;overflow-wrap:anywhere}
.inv-slot .inv-count{color:#fff1ba;font-weight:900;font-size:14px}
.inv-slot small{color:#a9c4bd;font-size:11px;line-height:1.3;overflow-wrap:anywhere}
.inv-slot .ui-icon{width:40px;height:40px}
.inv-slot[data-inv-equip]{cursor:pointer}
.inv-slot[aria-pressed="true"]{border-color:#f2d36b;box-shadow:inset 0 0 0 1px #f2d36b}
.inv-slot:focus-visible{outline:2px solid #f2d36b;outline-offset:2px}
.inv-emoji{font-style:normal;font-size:34px;line-height:44px}
.inv-ore,.inv-gear{display:block;width:40px;height:36px;margin:4px 0;background:linear-gradient(150deg,#e6d49a,#8e7a43 55%,#4a3d1d);--zone:#cfe5dc}
.inv-ore{clip-path:polygon(20% 0,76% 6%,100% 52%,71% 100%,8% 84%,0 31%)}
.inv-gear{clip-path:polygon(50% 0,100% 18%,90% 70%,50% 100%,10% 70%,0 18%)}
.inv-slot.zone-novice .inv-ore,.inv-slot.zone-novice .inv-gear{background:linear-gradient(150deg,#d9dde0,#8a949b 55%,#454c52)}
.inv-slot.zone-yellow{border-color:#d8b64a}.inv-slot.zone-yellow .inv-ore,.inv-slot.zone-yellow .inv-gear{background:linear-gradient(150deg,#ffe38a,#d8b64a 55%,#6b5516)}
.inv-slot.zone-blue{border-color:#5aa7e0}.inv-slot.zone-blue .inv-ore,.inv-slot.zone-blue .inv-gear{background:linear-gradient(150deg,#bfe4ff,#5aa7e0 55%,#1d4a6e)}
.inv-slot.zone-red{border-color:#e06a5a}.inv-slot.zone-red .inv-ore,.inv-slot.zone-red .inv-gear{background:linear-gradient(150deg,#ffc2b8,#e06a5a 55%,#6e2219)}
.inv-slot.zone-purple{border-color:#9b6ae0}.inv-slot.zone-purple .inv-ore,.inv-slot.zone-purple .inv-gear{background:linear-gradient(150deg,#e6d4ff,#9b6ae0 55%,#3a1f6e)}
.inv-slot.zone-silver{border-color:#b8c4d0}.inv-slot.zone-silver .inv-ore,.inv-slot.zone-silver .inv-gear{background:linear-gradient(150deg,#f4f7fa,#b8c4d0 55%,#4b5864)}
.inv-slot.zone-gold{border-color:#f2d36b}.inv-slot.zone-gold .inv-ore,.inv-slot.zone-gold .inv-gear{background:linear-gradient(150deg,#fff6c9,#f2d36b 55%,#8a6a12)}
.inv-empty{margin:0;padding:18px 10px;border:1px dashed #587f79;border-radius:12px;color:#a9c4bd;text-align:center}
.inv-equipped{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:12px;padding:10px;border:1px solid #bda45e;border-radius:12px;background:#08272c}
.inv-equipped div{display:grid;gap:2px;min-width:0}
.inv-equipped span{color:#cfe5dc;font-size:13px}
.inv-equipped meter{width:100%;height:12px}
.inv-equipped .btn{min-height:44px;white-space:normal}
.inv-note{color:#a9c4bd;font-size:13px}
.inv-sub{margin:10px 0 6px;color:#cfe5dc;font-size:14px}
.inv-shop{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;min-width:0}
.inv-shop .inv-slot{align-content:start}
.inv-shop .inv-slot .btn{width:100%;min-height:44px;font-size:13px}
.inv-shop .inv-slot.is-owned{border-color:#8fe0b0}
/* 裝備商店四分頁（09-29 裝備批次） */
.ex-shop-tabs{display:flex;gap:6px;margin:10px 0 8px;flex-wrap:wrap}
.ex-shop-tab{min-height:44px;padding:8px 12px;border:1px solid #587f79;border-radius:10px;background:#0d3238;color:#cfe5dc;font-size:14px;font-weight:700;cursor:pointer}
.ex-shop-tab.is-on{background:#f2d36b;border-color:#f2d36b;color:#123e43}
/* 商店獨立入口 icon（09-30 改案：裝備商店＋強化商店） */
.ex-shop-entries{display:flex;gap:8px;margin:10px 0 8px;flex-wrap:wrap}
.ex-shop-entry{display:flex;align-items:center;gap:8px;min-height:48px;padding:8px 14px;border:1px solid #587f79;border-radius:12px;background:#0d3238;color:#cfe5dc;font-size:14px;font-weight:700;cursor:pointer}
.ex-shop-entry>span{font-size:22px;line-height:1}
.ex-shop-entry.is-on{background:#f2d36b;border-color:#f2d36b;color:#123e43}
.inv-art{display:block;width:56px;height:56px;margin:2px 0;object-fit:contain;border-radius:8px}
.inv-shop .inv-slot.is-equipped{border-color:#f2d36b;box-shadow:inset 0 0 0 1px #f2d36b}
.inv-shop .inv-slot small{white-space:pre-line}
/* 資質、幹部、升級禮包（v90） */
.apt-tag{justify-self:start;padding:2px 8px;border-radius:999px;font-size:13px;font-weight:700;border:1px solid currentColor}
.apt-white{color:#e8eef0}.apt-green{color:#7ee08a}.apt-blue{color:#7fb8ff}.apt-purple{color:#d19bff}.apt-gold{color:#ffd166}
.cadre-card>p,.cadre-card>label,.cadre-card>small{grid-column:1/-1;margin:0}
.cadre-bonus{padding:6px 10px;border-radius:8px;background:#0b2a30;color:#cfe5dc;font-size:13px;line-height:1.5}
.cadre-bonus.is-paused{background:#3a2412}
.line-manager{margin:4px 0 0;color:#9fe3d6;font-size:13px}
.pack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.pack-card{display:grid;gap:6px;padding:10px 12px;border-radius:12px;background:#10262bcc;border:1px solid #2c5a5f}
.pack-card header{display:flex;justify-content:space-between;gap:8px;align-items:center}
.pack-card p{margin:0;color:#cfe5dc;font-size:14px;line-height:1.5}
.pack-card[data-status=ready]{border-color:#ffd166}
.pack-card[data-status=claimed]{opacity:.65}
.title-badge{color:#ffd166}
.cadre-section h4{margin:10px 0 4px}
.cadre-onb{margin:8px 0;padding:10px 12px;border:1px solid #d9c28d;border-radius:12px;background:#fffaf0;color:#30251a}
.cadre-onb-steps{margin:6px 0 0;padding:0;list-style:none;display:grid;gap:6px}
.cadre-onb-steps li{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 8px;border-radius:10px;background:#fff}
.cadre-onb-steps li.is-next{border:2px solid #c99a2e}
.cadre-onb-steps li small{flex:1;color:#6b5a40}
.cadre-onb-steps li .btn{width:auto;min-width:96px}
/* 手機實測 09-29：矮螢幕／字變大時方向鍵被擠出面板。生活地圖改成鏡頭吃剩餘高度、方向鍵固定留在底部，不再強制鏡頭最少 300px */
.life-map-open .life-map-screen .life-map-panel{display:flex;flex-direction:column}
.life-map-open .life-world-map:has(.dining-street){flex:1 1 0!important;height:auto!important;min-height:auto!important}
.life-map-open .dining-street .street-camera{min-height:100px!important}
.life-map-open .street-preview-status{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
/* 老闆 09-29：遊戲內縮放比例不可自己調整——擋系統字級自動放大與雙擊放大（viewport 另鎖 maximum-scale=1、user-scalable=no） */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;touch-action:pan-x pan-y}
/* 老闆 09-29：首頁 5 顆入口（多了公司地圖）；公司地圖＝全台 8 站一覽 */
.panel-home .character-home-shortcuts{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
.panel-home .character-home-action{padding:6px 2px;font-size:clamp(11px,3.1vw,13px);white-space:normal;line-height:1.2;overflow-wrap:anywhere}
dialog.company-map{overflow-x:hidden;position:fixed;inset:0;width:100%;max-width:100%;height:100%;max-height:100%;margin:0;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);border:0;background:#05262c;color:#fff;display:flex;flex-direction:column;overflow:hidden}
dialog.company-map::backdrop{background:#000a}
.company-map-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid #e1c16c55;flex-shrink:0}
.company-map-head b{font-size:16px;color:#ffe291}
.company-map-head span{flex:1;min-width:0;font-size:12px;color:#cfe9e4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.company-map-close{min-width:44px;min-height:44px;border:1px solid #e1c16c;border-radius:10px;background:#06383c;color:#fff;font-size:18px}
.company-map-view{flex:1 1 0;min-height:0;min-width:0;display:grid;grid-template-columns:minmax(0,1fr);place-items:center;padding:6px;container-type:size}
.company-map-art{position:relative;width:min(100cqw,100cqh*16/9);aspect-ratio:16/9}
.company-map-art img{display:block;width:100%;height:100%;object-fit:cover;border-radius:12px}
.company-map-pin{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:3px;padding:0;border:0;background:none;color:#fff;min-width:32px;min-height:32px;justify-content:center}
.company-map-pin i,.company-map-legend i{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--pin);color:#172329;font-style:normal;font-weight:900;font-size:12px;border:2px solid #fff;box-shadow:0 2px 6px #000a;flex-shrink:0}
.company-map-pin span{display:none;pointer-events:none;position:absolute;right:calc(100% + 2px);top:50%;transform:translateY(-50%);white-space:nowrap;padding:2px 6px;border-radius:6px;background:#06383cf0;border:1px solid var(--pin);font-size:11px}
.company-map-pin[aria-pressed="true"] span{display:block}
/* 站名放在站點旁邊（預設左側，西邊多是海），不蓋到上下相鄰的站；東邊的站改放右側 */
.company-map-pin.label-right span{right:auto;left:calc(100% + 2px)}
.company-map-pin[aria-pressed="true"] i{transform:scale(1.25)}
.company-map-legend{list-style:none;margin:0;padding:4px 12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;flex-shrink:0}
.company-map-legend button{width:100%;display:flex;align-items:center;gap:6px;min-height:32px;padding:3px 6px;border:1px solid #ffffff22;border-radius:8px;background:#0a3438;color:#fff;font-size:12px;text-align:left}
.company-map-legend button[aria-pressed="true"]{border-color:var(--pin);background:#11484b}
.company-map-legend i{width:18px;height:18px;font-size:10px;border-width:1px}
.company-map-foot{display:flex;align-items:center;gap:8px;padding:6px 12px 10px;flex-shrink:0}
.company-map-info{flex:1;min-width:0;margin:0;font-size:12px;line-height:1.4;color:#cfe9e4}
.company-map-foot .character-home-action{flex-shrink:0;min-height:44px;padding:8px 12px;border-radius:12px;border:0;background:linear-gradient(#ffe291,#d6a530);color:#192329;font-weight:800}
@media (prefers-reduced-motion:reduce){.company-map-pin[aria-pressed="true"] i{transform:none}}
/* 七日登入禮包（09-29）：首頁左上角收合小標籤，點開看七天與領取 */
.panel-home .signin-card{position:absolute;z-index:4;top:10px;left:12px;max-width:min(340px,calc(100% - 24px));border:1px solid #587f79;border-radius:12px;background:#052e34ed;color:#f3f7ef;box-shadow:0 4px 12px #001b25}
.panel-home .signin-card[data-state=ready]{border-color:#e1c16c;box-shadow:0 0 0 2px #e1c16c55,0 4px 12px #001b25}
.panel-home .signin-card>summary{list-style:none;display:flex;align-items:center;gap:6px;min-height:44px;padding:4px 10px;cursor:pointer;font-size:13px}
.panel-home .signin-card>summary::-webkit-details-marker{display:none}
.panel-home .signin-card>summary span{color:#cfe3dc;font-size:12px}
.panel-home .signin-card[data-state=ready]>summary span{color:#ffe291;font-weight:900}
.panel-home .signin-card[open]{padding-bottom:8px}
.signin-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;margin:0 8px 6px;padding:0;list-style:none}
.signin-days li{display:grid;justify-items:center;gap:1px;padding:4px 1px;border-radius:8px;background:#0b2427;border:1px solid #2f5752;font-size:10px;line-height:1.2;text-align:center;min-width:0}
.signin-days li b{font-size:13px}
.signin-days li small{font-size:9px;color:#cfe3dc;overflow-wrap:anywhere}
.signin-days li.got{background:#1f5a3c;border-color:#8fe0b0}
.signin-days li.got b::after{content:'✓';margin-left:1px;color:#8fe0b0}
.signin-days li.today{border-color:#e1c16c;background:#4d3a0f}
.signin-row{display:flex;align-items:center;gap:8px;margin:0 8px}
.signin-row p{flex:1;margin:0;font-size:12px;line-height:1.4;color:#ffe6a8}
/* 老闆 09-29 方案 A：訂單中的公司地圖（路線、✓ 已完成、▶ 目前站、🔒 未開放） */
.company-map-button{position:absolute;z-index:4;right:29px;bottom:calc(160px + env(safe-area-inset-bottom,0px));min-width:102px;min-height:44px;padding:7px 14px;border:1px solid #e1c16c;border-radius:24px;background:#111c;color:#ffe291;font:800 .8rem inherit;box-shadow:0 7px 20px #0008;backdrop-filter:blur(7px);cursor:pointer}
.company-map-button:active{transform:scale(.96)}
@media(max-height:650px){.company-map-button{bottom:calc(142px + env(safe-area-inset-bottom,0px))}}
.company-map-route{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.company-map-route line{stroke-width:7;stroke-linecap:round}
.company-map-route line.done{stroke:#4fb477}
.company-map-route line.todo{stroke:#ffffffa0;stroke-dasharray:14 16}
.company-map-pin[data-status="done"] i{background:#4fb477;color:#fff}
.company-map-pin[data-status="locked"] i{filter:grayscale(1) brightness(.75)}
.company-map-pin[data-status="current"] i{box-shadow:0 0 0 4px #ffe29199,0 2px 6px #000a;animation:company-map-pulse 1.1s ease-in-out infinite alternate}
.company-map-pin[data-status="current"] span{display:block}
@keyframes company-map-pulse{to{box-shadow:0 0 0 9px #ffe29122,0 2px 6px #000a}}
.company-map-legend em{flex:1;min-width:0;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.company-map-legend small{flex-shrink:0;font-size:11px}
.company-map-legend button[data-status="locked"]{opacity:.62}
.company-map-legend button[data-status="current"]{border-color:#ffe291}
.company-map-foot [hidden]{display:none}
.company-map-visit{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;background:#05262c;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
.company-map-visit-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid #e1c16c55;flex-shrink:0}
.company-map-visit-head b{flex:1;min-width:0;font-size:15px;color:#ffe291;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.company-map-visit-back{min-height:44px;padding:0 12px;border:1px solid #e1c16c;border-radius:10px;background:#06383c;color:#fff;font-size:13px;flex-shrink:0}
.company-map-visit-close{min-height:44px;min-width:44px;border:1px solid #e1c16c55;border-radius:10px;background:#06383c;color:#fff;font-size:15px;flex-shrink:0}
.company-map-visit-scene{flex:1 1 0;min-height:0;margin:8px 12px 0;border-radius:12px;background-size:cover;background-position:center 35%;background-color:#0a3438;position:relative;overflow:hidden}
.company-map-visit-scene small{position:absolute;left:8px;bottom:8px;padding:3px 8px;border-radius:8px;background:#000b;color:#ffe291;font-size:11px}
.hq-elevator-btn{position:absolute;right:8px;bottom:8px;min-height:36px;padding:4px 12px;border:1px solid #e1c16c;border-radius:10px;background:#06383cf0;color:#ffe291;font-size:13px}
.hq-floors{position:absolute;right:8px;bottom:50px;max-height:calc(100% - 58px);overflow-y:auto;display:flex;flex-direction:column;gap:4px;padding:6px;border:1px solid #e1c16c;border-radius:12px;background:#05262cf5}
.hq-floors button{min-height:32px;padding:3px 10px;border:1px solid #ffffff22;border-radius:8px;background:#0a3438;color:#fff;font-size:12px;text-align:left;white-space:nowrap}
.hq-floors button[aria-current="true"]{border-color:#e1c16c;background:#11484b;color:#ffe291}
.company-map-visit-body{flex-shrink:0;max-height:44%;overflow-y:auto;padding:8px 14px calc(10px + env(safe-area-inset-bottom,0px))}
.company-map-visit-body h3{margin:6px 0 2px;font-size:13px;color:#ffe291}
.company-map-visit-body p{margin:0;font-size:13px;line-height:1.5;color:#cfe9e4}
.company-map-visit-body ul{margin:0;padding-left:18px;font-size:13px;line-height:1.6;color:#cfe9e4;list-style:none}
@media (prefers-reduced-motion:reduce){.company-map-pin[data-status="current"] i{animation:none}}
/* 09-29 登入禮包收合＝紅色禮物圖示（不寫字），可領時亮點＋輕微跳動；點開才看七天與說明 */
.panel-home .signin-card:not([open]){border-radius:14px}
.panel-home .signin-card>summary{justify-content:center;position:relative;min-width:48px;min-height:48px;padding:4px}
.signin-gift{width:38px;height:38px;display:block;filter:drop-shadow(0 2px 2px #0008)}
.signin-dot{position:absolute;top:3px;right:3px;width:11px;height:11px;border-radius:50%;background:#ffe291;border:2px solid #d8262f}
.panel-home .signin-card[data-state=ready]:not([open]) .signin-gift{animation:signin-bob 1.6s ease-in-out infinite}
@keyframes signin-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@media (prefers-reduced-motion:reduce){.panel-home .signin-card .signin-gift{animation:none!important}}
.panel-home .signin-card[open]>summary{justify-content:flex-start}
.signin-title{margin:0 10px 6px;font-size:13px;font-weight:900;color:#fff0b8}
.panel-home .signin-card[data-state=ready] .signin-title{color:#ffe291}

/* 09-29 產線改右上角條列：一列一條線（燈號＋名稱＋狀態＋細進度條），點一列展開人員與按鈕 */
.panel-home .line-dock{left:auto;right:10px;top:10px;bottom:auto;width:min(210px,56%);max-height:calc(100% - var(--dock-h) - 150px);overflow:auto;overscroll-behavior:contain;gap:4px}
.line-dock-list{display:grid;gap:4px;margin:0;padding:0;list-style:none}
.line-dock-item{border-radius:10px;background:#fffbea;border:1px solid #d9ab3f;box-shadow:0 2px 8px #6b4a1022;overflow:hidden}
.line-dock-item[data-status=done]{border-color:#e1c16c}
.line-dock-item[data-status=tired],.line-dock-item[data-status=nofunds]{border-color:#d98a41}
.line-dock-head{position:relative;display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;column-gap:6px;width:100%;min-height:40px;padding:5px 8px 7px;border:0;background:transparent;color:#2f2010;font:inherit;text-align:left;cursor:pointer}
.line-dock-head b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.line-dock-head .line-dock-status{font-size:11px;color:#5a4426;white-space:nowrap;max-width:76px;overflow:hidden;text-overflow:ellipsis}
.line-dock-head meter{position:absolute;left:8px;right:8px;bottom:3px;width:auto;height:3px}
.line-dock-led{width:9px;height:9px;border-radius:50%;background:#7b8f8a}
.line-dock-item[data-status=running] .line-dock-led{background:#4fb477}
.line-dock-item[data-status=done] .line-dock-led{background:#ffd45c}
.line-dock-item:is([data-status=nomaterial],[data-status=nofunds],[data-status=ready],[data-status=unstaffed],[data-status=unqualified]) .line-dock-led{background:#d98a41}
.line-dock-alert{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:#ff5a5f}
.line-dock-item[data-open]>.line-dock-head{background:#0b4248}
.panel-home .line-dock-item .line-dock-card{flex:none;display:grid;grid-template-columns:36px minmax(0,1fr);gap:6px 8px;padding:8px;border:0;border-top:1px solid #c89a2e66;border-radius:0;background:transparent;box-shadow:none}
.panel-home .line-dock-item .line-dock-card .emp-portrait{width:36px;height:40px}
.line-dock-item .line-dock-info span{white-space:normal;font-size:11px}
.line-dock-item .line-dock-card>.line-dock-btn{grid-column:1/-1;width:100%}
.line-dock-item .line-dock-btn small{max-width:none}
/* 09-30 老闆指示：右上排列太佔版面 → 收合模式只留一顆小圖示（運轉數＋待辦紅點），點開才展開明細 */
.panel-home .line-dock.is-collapsed{width:auto;max-height:none;overflow:visible;justify-items:end}
.line-dock-fab{position:relative;display:inline-flex;align-items:center;gap:5px;min-height:44px;padding:6px 12px;border-radius:22px;border:1px solid #e1c16c;background:#052e34ed;color:#f3f7ef;font:inherit;font-size:14px;box-shadow:0 4px 12px #001b25;cursor:pointer}
.line-dock-fab b{font-size:13px}
.line-dock-fab .line-dock-alert{top:2px;right:2px;width:9px;height:9px}
.line-dock-bar{display:flex;justify-content:flex-end;gap:6px;padding:4px;border-radius:12px;background:#052e34f2}
/* 10-09 老闆「白字太淺」：暫停提示改金字粗體＋黑影，允許換行不被裁 */
.line-dock-bar .line-dock-btn[data-auto-resume]{color:#6a4300;font-weight:700;background:#fff3cf;border-color:#d9ab3f;white-space:normal;line-height:1.3;text-align:left}
.line-dock-bar .line-dock-btn{min-height:36px;min-width:0;border-color:#c89a2e;color:#4a3306;background:#fffdf7}

/* 戰鬥招式列（採礦戰鬥系統 2026-09-29）：教學戰與探險戰共用 */
.ex-abilities{margin-top:6px}
.ability-button{display:grid;gap:2px;text-align:left;padding:8px 10px;border-radius:10px;border:1px solid #7a5cff;background:#221a4a;color:#e8e2ff;font-size:.82rem}
.ability-button b:has(>.ability-icon){display:flex;align-items:center;gap:7px;min-width:0}
.ability-button .ability-icon{width:30px;height:30px;flex:none;object-fit:contain;filter:drop-shadow(0 1px 2px #132b4388)}
.ability-button small{font-weight:400;opacity:.85;font-size:.72rem}
.ability-button:disabled{opacity:.55;border-color:#555;background:#2a2a33;color:#bbb}
.mine-actions .ability-button{grid-column:span 2}
.ex-combat.is-danger{border-color:#ff3b30;box-shadow:0 0 0 2px rgba(255,59,48,.35);animation:ex-danger-pulse 1.2s ease-in-out infinite}
.ex-danger{font-weight:900;color:#ffd0cc;background:#7a1410;border-radius:8px;padding:6px 8px}
@keyframes ex-danger-pulse{0%,100%{box-shadow:0 0 0 2px rgba(255,59,48,.2)}50%{box-shadow:0 0 0 4px rgba(255,59,48,.5)}}
@media (prefers-reduced-motion: reduce){.ex-combat.is-danger{animation:none}}
/* 礦工探勘隊（miner-center.js）：沿用員工卡樣式，補技能列與鎖定名額 */
.miner-skills{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:.78rem;opacity:.9;margin:4px 0}
.miner-slot.is-locked{opacity:.65;border-style:dashed}
.miner-card .ex-actions{display:flex;flex-wrap:wrap;gap:6px}
/* 礦工立繪（依階級）：左欄 64px，其餘內容橫跨整張卡；空名額灰階、未解鎖剪影 */
.miner-portrait{display:block;width:64px;height:64px;object-fit:contain;border-radius:10px;background:radial-gradient(circle at 50% 40%,#fffbea,#f3e2b0);border:2px solid #d9ab3f}
.miner-portrait.is-empty{filter:grayscale(1);opacity:.55}
.miner-portrait.is-locked{filter:grayscale(1) brightness(.15);opacity:.6}
.miner-card>.emp-note,.miner-card>.miner-skills,.miner-card>.ex-actions,.miner-slot>.emp-note{grid-column:1/-1}
.ex-support{margin-top:6px;display:grid;gap:4px}
.ex-support .btn{font-size:.8rem}
/* 員工補體力全螢幕選擇（stamina-picker.js，老闆 09-29） */
dialog.stamina-picker{position:fixed;inset:0;width:100%;max-width:100%;height:100%;max-height:100%;margin:0;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);border:0;background:#05262c;color:#fff;display:flex;flex-direction:column;overflow:hidden}
dialog.stamina-picker::backdrop{background:#000a}
.stamina-picker-head{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid #e1c16c55}
.stamina-picker-head .emp-portrait{width:44px;height:44px}
.stamina-picker-head b{display:block;font-size:16px;color:#ffe291}
.stamina-picker-head span{font-size:12px;color:#cfe9e4}
.stamina-picker-close{min-width:44px;min-height:44px;border:1px solid #e1c16c;border-radius:10px;background:#06383c;color:#fff;font-size:18px}
.stamina-picker-bar{position:relative;margin:12px;height:26px;border-radius:13px;background:#0b1a1d;border:1px solid #e1c16c66;overflow:hidden}
.stamina-picker-bar i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#e0843a,#f3c64f)}
.stamina-picker-bar span{position:relative;display:block;text-align:center;line-height:24px;font-size:13px;font-weight:700;text-shadow:0 1px 2px #000}
.stamina-picker-list{flex:1 1 auto;min-height:0;overflow:auto;list-style:none;margin:0;padding:0 12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-content:start}
.stamina-option{width:100%;min-height:128px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:12px 8px;border:2px solid #e1c16c66;border-radius:14px;background:#0a3a3f;color:#fff;text-align:center}
.stamina-option[aria-pressed="true"]{border-color:#ffd45c;background:#12545a;box-shadow:0 0 0 3px #ffd45c44}
.stamina-option:disabled{opacity:.5}
.stamina-option-icon{font-size:36px;line-height:1}
.stamina-option b{font-size:15px}
.stamina-option small{font-size:12px;color:#cfe9e4}
.stamina-option em{font-style:normal;font-size:11px;color:#ffb38a}
.stamina-picker-foot{flex-shrink:0;padding:10px 12px;border-top:1px solid #e1c16c55;display:grid;gap:8px}
.stamina-picker-info{margin:0;font-size:13px;line-height:1.5;color:#e8f4f1}
.stamina-picker-foot .confirm-warn{margin:0}
.stamina-picker-foot [data-picker-confirm]{min-height:48px;width:100%}

/* 09-29 每日（圈 1）／每週（圈 2）任務圖示：禮物右邊一字排開，收合只有圖示；點開時卡片移到左上與禮包同位置 */
.panel-home .quest-card{position:absolute;z-index:4;top:10px;left:66px;border:1px solid #587f79;border-radius:14px;background:#052e34ed;color:#f3f7ef;box-shadow:0 4px 12px #001b25}
.panel-home .quest-card[data-kind=week]{left:120px}
.panel-home .quest-card[data-state=ready]{border-color:#e1c16c;box-shadow:0 0 0 2px #e1c16c55,0 4px 12px #001b25}
.panel-home .quest-card[open]{left:12px;z-index:5;width:min(340px,calc(100% - 24px));border-radius:12px;padding-bottom:8px}
.panel-home .quest-card>summary{list-style:none;position:relative;display:flex;align-items:center;justify-content:center;min-width:48px;min-height:48px;padding:4px;cursor:pointer}
.panel-home .quest-card[open]>summary{justify-content:flex-start}
.panel-home .quest-card>summary::-webkit-details-marker{display:none}
.quest-icon{width:36px;height:36px;display:block;filter:drop-shadow(0 2px 2px #0008)}
.panel-home .quest-card[data-state=ready]:not([open]) .quest-icon{animation:signin-bob 1.6s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.panel-home .quest-card .quest-icon{animation:none!important}}
.quest-bar{height:8px;margin:0 10px 6px;border-radius:4px;background:#0b2427;border:1px solid #2f5752;overflow:hidden}
.quest-bar i{display:block;height:100%;background:linear-gradient(90deg,#4fb477,#ffd45c)}
.quest-goal{margin:0 10px 6px;font-size:11px;line-height:1.45;color:#cfe3dc}
/* 三顆圖示佔到 x≈168，產線列縮窄避免重疊 */
.panel-home .line-dock{width:min(210px,calc(100% - 196px))}

/* 戰鬥舞台（09-29 美術接圖，js/combat-stage.js）：背景依區域、玩家／怪物逐幀、特效疊加 */
.cs-stage{position:relative;width:100%;height:clamp(200px,34dvh,300px);overflow:hidden;border-radius:14px;background:#0d1b24 center 70%/cover no-repeat;box-shadow:inset 0 -40px 40px -20px #0009;isolation:isolate}
.cs-sprite{position:absolute;bottom:4%;aspect-ratio:1;pointer-events:none}
.cs-player{left:0;width:min(52%,250px);z-index:2}
.cs-monster{right:0;width:min(54%,260px);z-index:1}
.cs-sprite>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;-webkit-user-drag:none;user-select:none}
.cs-sprite[data-frame="1"]>img[data-f="1"],.cs-sprite[data-frame="2"]>img[data-f="2"],.cs-sprite[data-frame="3"]>img[data-f="3"],.cs-sprite[data-frame="4"]>img[data-f="4"],.cs-sprite[data-frame="5"]>img[data-f="5"],.cs-sprite[data-frame="6"]>img[data-f="6"]{opacity:1}
.cs-player>img[data-f]{filter:drop-shadow(0 6px 4px #0009)}
.cs-monster>img[data-f]{filter:drop-shadow(0 8px 5px #000a)}
/* 怪物待機 A／B 交替（只在待機時） */
.cs-stage.is-idle .cs-monster[data-frame="1"]>img[data-f="2"]{animation:cs-idle-b 1.4s steps(1) infinite}
@keyframes cs-idle-b{0%{opacity:0}50%{opacity:1}}
.cs-fx{position:absolute;opacity:0;pointer-events:none;transition:opacity .12s}
.cs-arc{left:-18%;top:6%;width:70%;z-index:3}
.cs-spark{left:14%;top:22%;width:50%;z-index:3}
.cs-dust{left:14%;bottom:-4%;width:58%;z-index:3}
.cs-shield{inset:0;width:100%;z-index:3;mix-blend-mode:screen}
.cs-afterimage{inset:0;width:100%;z-index:-1;transform:translateX(-16%)}
.cs-warn{left:4%;bottom:0;width:min(44%,210px);height:18%;object-fit:fill;z-index:1}
.fx-arc .cs-arc{opacity:.95}
.fx-hit .cs-spark{opacity:.9;animation:cs-burst .32s ease-out}
.fx-hit .cs-dust{opacity:.55;animation:cs-rise .5s ease-out}
.fx-shield .cs-shield{opacity:.9}
.fx-after .cs-afterimage{opacity:.32}
.fx-warn .cs-warn{opacity:.9;animation:cs-warn .26s ease-in-out infinite alternate}
.fx-shake{animation:cs-shake .28s linear}
@keyframes cs-burst{from{transform:scale(.6)}to{transform:scale(1.1)}}
@keyframes cs-rise{from{transform:translateY(10%)}to{transform:translateY(-6%)}}
@keyframes cs-warn{from{transform:scale(.92)}to{transform:scale(1.04)}}
@keyframes cs-shake{0%,100%{transform:translate(0)}25%{transform:translate(-4px,2px)}50%{transform:translate(4px,-2px)}75%{transform:translate(-3px,1px)}}
.cs-pop{position:absolute;top:18%;z-index:4;font:900 1.35rem/1 system-ui,sans-serif;color:#fff;text-shadow:0 2px 0 #000,0 0 6px #000;opacity:0;pointer-events:none}
.cs-pop-monster{right:22%;color:#ffe066}
.cs-pop-player{left:18%;color:#ff8a80}
.cs-pop.show{animation:cs-pop .8s ease-out forwards}
@keyframes cs-pop{0%{opacity:0;transform:translateY(8px) scale(.8)}15%{opacity:1;transform:translateY(0) scale(1.1)}100%{opacity:0;transform:translateY(-22px) scale(1)}}
.cs-stage.is-won .cs-monster{opacity:.75}
.cs-hpbar{position:absolute;left:22%;top:14%;width:56%;height:12px;border-radius:7px;background:#000a;border:1px solid #fff6;overflow:hidden;z-index:4}
.cs-hpbar>i{position:absolute;inset:0 auto 0 0;background:linear-gradient(#ff7a6b,#d8322a);transition:width .25s ease-out}
.cs-hpbar>span{position:relative;display:block;font:800 10px/12px system-ui,sans-serif;color:#fff;text-align:center;text-shadow:0 1px 0 #000,0 0 3px #000}
.cs-stage.is-won .cs-hpbar{display:none}
.cs-stage.is-down .cs-player{filter:grayscale(.85) brightness(.8)}
.mine-battle .cs-stage+.mine-bars{margin-top:0}
.ex-run>.cs-stage{margin:6px 0}
@media(max-width:380px){.cs-pop{font-size:1.1rem}}
/* 系統「減少動態」：關震動、粒子、殘影與待機交替，只保留關鍵幀 */
@media(prefers-reduced-motion:reduce){.cs-stage *,.cs-stage{animation:none!important;transition:none!important}.fx-hit .cs-spark,.fx-hit .cs-dust,.fx-after .cs-afterimage,.fx-warn .cs-warn{opacity:0!important}.cs-pop.show{opacity:1}}
/* 十字鎬圖示（09-29 美術圖）：圖檔版 ui-icon 不吃 stroke 顏色 */
.ui-icon-img{object-fit:contain;filter:drop-shadow(0 1px 1px #0006)}
.miner-support .ui-icon-img{width:20px;height:20px;vertical-align:-4px}
/* 09-29 回合顯示：玩家回合＝普通攻擊（武器）＋技能；怪物回合＝只顯示怪物出招 */
.cs-turn{grid-column:1/-1;margin:4px 0 2px;font-weight:900;font-size:.9rem}
.cs-turn-player{color:#9ff0b8}.cs-turn-monster{color:#ff9a8a}
.cs-group-title{grid-column:1/-1;margin:6px 0 2px;color:#f5ce69;font-weight:800;font-size:.8rem}
.cs-turn-panel{grid-column:1/-1;display:grid;gap:4px;padding:10px 12px;border-radius:12px;min-height:74px;align-content:center}
.cs-turn-panel.is-player{background:#17352a;border:1px solid #3f8f67}
.cs-turn-panel.is-monster{background:#3a1717;border:1px solid #c0504a}
.cs-turn-panel p{margin:0}
.cs-monster-skill{color:#ffd6a0;font-weight:900;font-size:1.05rem}
.cs-monster-result{color:#fff;font-weight:700}
/* 09-29 MP＋冷卻並存：玩家 MP／怪物 MP 兩條、即將蓄滿提示、大招準備完成警告、招式 MP 消耗 */
.cs-mp{grid-column:1/-1;display:grid;gap:4px;margin:6px 0;padding:8px 10px;border-radius:10px;background:#15182a;border:1px solid #3a4270}
.cs-mp-row{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:8px;row-gap:1px;font-size:.8rem}
.cs-mp-row b{white-space:nowrap}
.cs-mp-row meter{width:100%;min-width:0;height:10px}
.cs-mp-row small{grid-column:1/-1;font-size:.7rem;opacity:.85;min-height:0}
.cs-mp-row small:empty{display:none}
.cs-mp-row.is-player b{color:#8fd0ff}
.cs-mp-row.is-monster b{color:#ffb08a}
.cs-mp-row.is-monster small{color:#ffd36b;opacity:1}
.cs-ultimate-warn{grid-column:1/-1;display:grid;gap:2px;margin:4px 0;padding:8px 10px;border-radius:10px;background:#4a1212;border:2px solid #ff5a3c;color:#ffe3d6;font-size:.8rem;overflow-wrap:anywhere}
.cs-ultimate-warn b{color:#ffcf5a;font-size:.92rem}
.cs-monster-charged{color:#ffcf5a;font-weight:800;font-size:.85rem}
.cs-turn-panel.is-ultimate{background:#521010;border:2px solid #ff5a3c;box-shadow:0 0 12px #ff5a3c66}
.cs-turn-panel.is-ultimate .cs-monster-skill{color:#ffcf5a}
.ability-button small.ability-cost{color:#8fd0ff;opacity:1;font-weight:700}
.ability-button:disabled small.ability-cost{color:#9aa}
/* 戰鬥手機介面（老闆 09-29 採礦戰鬥手機介面優化規格）：上＝怪物／警告／自己（固定）、中＝唯一捲動區、下＝行動（固定在安全區上方）
   金＝主行動、紫／深藍＝技能、紅＝危險、綠＝護盾與回復、灰＝停用但文字可讀（不只靠透明度） */
.panel-home.is-combat-mode .player-dock{display:none}
.player-sheet.expanded.is-combat{inset:auto 0 0;height:calc(100% - 8px);padding-bottom:var(--safe-b)}
.player-sheet.is-combat .sheet-handle{display:none}
.player-sheet.is-combat .sheet-head{padding:2px 8px}
.player-sheet.is-combat .sheet-head h2{font-size:14px}
.player-sheet.is-combat .sheet-scroll{overflow:hidden;display:flex;flex-direction:column;padding:6px 8px 6px}
.player-sheet.is-combat [data-home-panel="explore"]:not([hidden]){flex:1;min-height:0;display:flex;flex-direction:column}
.ex-panel.is-combat{flex:1;min-height:0;display:flex;flex-direction:column;gap:6px;position:relative;color:#f4f1e6}
.ex-cb-top,.ex-cb-bottom{flex:none}
.ex-cb-top{display:grid;gap:4px}
.ex-cb-mid{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;display:grid;grid-template-columns:minmax(0,1fr);gap:6px;align-content:start}
.ex-cb-monster{padding:4px 8px;border-radius:10px;background:#1c1f2c;border:1px solid #6c5a7a;display:grid;gap:2px}
.ex-cb-mhead{margin:0;display:flex;flex-wrap:wrap;gap:2px 8px;align-items:baseline}
.ex-cb-mhead b{color:#ffb4a8;font-size:.95rem}.ex-cb-mhead small{font-size:.74rem;color:#d9c7c0;overflow-wrap:anywhere}
.ex-cb-mhead em{margin-left:auto;padding:3px 9px;border:1px solid #ffc857;border-radius:999px;background:#3a3328;color:#ffe7a3;font-size:.72rem;font-style:normal;font-weight:800;white-space:nowrap}
.ex-cb-bar{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:2px 6px;font-size:.76rem}
.ex-cb-bar>span{font-weight:800;min-width:24px}.ex-cb-bar b{font-variant-numeric:tabular-nums}
.ex-cb-bar i{display:block;height:8px;border-radius:5px;background:#0006;overflow:hidden}
.ex-cb-bar em{display:block;height:100%;background:#e0493c}
.ex-cb-bar.is-mp em{background:#9b6cff}.ex-cb-bar.is-mp.is-ready em{background:#ff5a3c}
.ex-cb-bar>small{color:#ffd36b;font-size:.7rem;white-space:nowrap}
.ex-cb-warn{margin:0;padding:6px 10px;background:#3d0b0b;border:2px solid #ff4d3a;gap:1px;font-size:.78rem;line-height:1.3}
.ex-cb-suggest{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px}
.ex-cb-suggest button{min-height:32px;padding:2px 7px;border-radius:8px;border:1px solid #ffcf5a;background:#5a1a12;color:#ffe9a8;font-weight:800;font-size:.72rem}
.ex-cb-me{margin:0;display:flex;flex-wrap:wrap;gap:2px 8px;align-items:baseline;font-size:.78rem;padding:3px 8px;border-radius:10px;background:#12303a}
.ex-cb-stat small{margin-left:4px;color:#b8a8ff;font-size:.7rem}
.ex-cb-stat.is-hp b{color:#9fe8a8}.ex-cb-stat.is-hp.is-low,.ex-cb-stat.is-hp.is-low b{color:#ff5a4a;font-weight:900}
.ex-cb-stat.is-mp b{color:#c4b0ff}.ex-cb-stat.is-mp.is-short b{color:#ffa23a}
.ex-cb-stat.is-shield{color:#7fe0a0}.ex-cb-stat.is-shield.is-zero{color:#8a9a96}
.ex-cb-stat.is-weak{color:#ffd36b}
.ex-panel.is-combat .cs-stage{height:clamp(150px,26dvh,200px);margin:0}
.ex-panel.is-combat .cs-sprite{height:92%;width:auto;bottom:2%}
.ex-cb-log{display:flex;gap:8px;align-items:center}
.ex-cb-log .ex-log{flex:1;min-width:0;margin:0;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ex-cb-log button,.ex-cb-details summary{min-height:44px;padding:0 10px;border-radius:8px;border:1px solid #58807a;background:#0c3238;color:#e7e7d8;font-size:.76rem;white-space:nowrap}
.ex-cb-details summary{display:flex;align-items:center;cursor:pointer}
.ex-cb-history,.ex-cb-details ul{margin:0;padding:6px 8px 6px 24px;border-radius:8px;background:#0a2a30;font-size:.74rem;display:grid;gap:3px;overflow-wrap:anywhere}
.ex-cb-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ex-cb-act{display:grid;gap:1px;align-content:center;min-height:44px;min-width:0;padding:4px 8px;border-radius:10px;text-align:left;font-size:.72rem;line-height:1.25;overflow-wrap:anywhere}
.ex-cb-act b{font-size:.8rem}
.ex-cb-act small{font-size:.68rem;font-weight:400}
.ex-cb-act.ability-button{border:1px solid #7a5cff;background:#221a4a;color:#e8e2ff}
.ex-cb-act.is-primary{grid-column:1/-1;min-height:52px;text-align:center;background:linear-gradient(#f3cf66,#d9a93a);border:1px solid #fff0b0;color:#2a1a00}
.ex-cb-act.is-primary b{font-size:.95rem}.ex-cb-act.is-primary span{font-weight:700}
.ex-cb-act.is-retreat{background:#3a1a14;border:1px solid #d86a50;color:#ffd9cc}
.ex-cb-act.is-off,.ex-cb-act.is-off.ability-button,.ex-cb-act.is-primary.is-off{background:#2b2f36;border:1px dashed #7d858f;color:#c9ced4}
.ex-cb-act.is-off small,.ex-cb-act.is-off .ability-cost{color:#e3e6ea}
.ex-cb-act.is-mp small{color:#ffb35a;font-weight:700}
.ex-cb-act.is-hint{outline:3px solid #ffcf5a;outline-offset:2px}
.ex-cb-extra{margin:8px 0 0;display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.74rem}
.ex-cb-basic,.ex-cb-miners{display:flex;flex:1 0 auto;gap:8px;align-items:center;white-space:nowrap}
.ex-cb-mini{flex:1;min-width:64px;min-height:44px;min-width:0;padding:2px 8px;border-radius:10px;border:1px solid #58807a;background:#0c3238;color:#e7e7d8;font-size:.74rem}
.ex-cb-chip{flex:none;min-height:44px;padding:2px 8px;border-radius:10px;border:1px solid #3f8f67;background:#12352a;color:#bff0cf;font-size:.72rem;display:grid;line-height:1.2}
.ex-cb-chip small{font-size:.66rem}
.ex-cb-chip.is-off{background:#2b2f36;border:1px dashed #7d858f;color:#c9ced4}
.ex-panel.is-combat .ex-turn .cs-turn-panel{min-height:120px}
.ex-cb-pause{position:absolute;inset:0;z-index:5;display:grid;place-items:center;background:#000a;padding:12px}
.ex-cb-pause>div{display:grid;gap:8px;width:min(100%,340px);padding:14px;border-radius:14px;background:#0b3036;border:1px solid var(--gold)}
.ex-cb-pause h3,.ex-cb-pause p{margin:0}.ex-cb-pause p{font-size:.82rem}
.ex-cb-pause .btn{min-height:48px}
.ex-cb-pause .btn.is-danger{border-color:#d86a50;color:#ffd9cc}
.ex-cb-defeat{display:grid;gap:8px;padding:12px;border-radius:12px;background:#2a1010;border:2px solid #d8503a;color:#ffe4dc}
.ex-cb-defeat>b{font-size:1.1rem;color:#ff8a7a}.ex-cb-defeat p{margin:0}
.combat-chip{position:absolute;z-index:42;right:10px;left:auto;bottom:calc(82px + var(--safe-b));display:flex;align-items:center;gap:6px;width:min(310px,calc(100% - 20px));height:42px;padding:5px 6px 5px 10px;border-radius:21px;background:#111722e8;border:1px solid #d4aa4f;color:#f4f1e6;font-size:11px;line-height:1.15;box-shadow:0 4px 12px #0008;backdrop-filter:blur(8px)}
.combat-chip[hidden]{display:none}
.combat-chip>b{flex:0 0 auto;color:#ffd66d;font-size:11px;white-space:nowrap}
.combat-chip>span{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#d9e2df}
.combat-chip .is-warn{display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;border-radius:50%;background:#e85b42;color:#fff;font-style:normal}
.combat-chip-return{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;min-width:32px;min-height:32px;padding:0;border:1px solid #f0c85d;border-radius:50%;background:linear-gradient(#ffe291,#d6a530);color:#162027;font:900 20px/1 sans-serif;cursor:pointer}
@media(min-width:800px){.combat-chip{right:24px;bottom:92px;width:330px}}
.mission-rail{position:absolute;z-index:39;right:7px;top:76px;display:grid;gap:7px;width:58px;padding:7px 5px;border:1px solid #e1ba5b99;border-radius:22px;background:linear-gradient(165deg,#24252bf2,#090a0ef5 70%);box-shadow:0 8px 20px #0009,inset 0 1px #fff2;backdrop-filter:blur(9px)}
.mission-rail[hidden]{display:none}
.panel-home:has(.player-sheet:not([hidden])) .mission-rail{display:none}
.status-rail-item{position:relative;display:grid;place-items:center}
.mission-rail button[data-mission-rail]{position:relative;display:grid;place-items:center;width:46px;height:58px;min-width:46px;min-height:58px;padding:1px;border:1px solid #d8ad4db3;border-radius:16px;background:radial-gradient(circle at 35% 22%,#34312a,#111 72%);color:#ffe291;box-shadow:inset 0 1px #fff3,0 3px 8px #0008;cursor:pointer}
.mission-rail button[data-mission-rail=quests]{border-color:#86bfff;background:radial-gradient(circle at 35% 20%,#275b94,#111a29 72%);box-shadow:inset 0 1px #d8edff66,0 0 10px #398ce04d,0 3px 8px #0009}
.mission-rail button[data-mission-rail=lines]{border-color:#ffbe5c;background:radial-gradient(circle at 35% 20%,#96541d,#21140d 72%);box-shadow:inset 0 1px #fff0c066,0 0 10px #f292304d,0 3px 8px #0009}
.mission-rail button[data-mission-rail=miners]{border-color:#67d8e8;background:radial-gradient(circle at 35% 20%,#176d7e,#0c1d25 72%);box-shadow:inset 0 1px #d8fbff66,0 0 10px #2cc2d94d,0 3px 8px #0009}
.mission-rail button[data-mission-rail=combat]{border-color:#ff786f;background:radial-gradient(circle at 35% 20%,#8e302a,#25100f 72%);box-shadow:inset 0 1px #ffe1dd66,0 0 10px #ee4e434d,0 3px 8px #0009}
.mission-rail button[data-mission-rail=autopause]{border-color:#9be37a;background:radial-gradient(circle at 35% 20%,#2f6b2a,#0f1f10 72%);box-shadow:inset 0 1px #e4ffd866,0 0 10px #5fc44a4d,0 3px 8px #0009}
.mission-rail .status-rail-item:has(button[data-mission-rail=autopause]>i) button[data-mission-rail=autopause]{border-color:#ff786f;background:radial-gradient(circle at 35% 20%,#8e302a,#25100f 72%)}
.mission-rail button[data-mission-rail=autopause]>b{background:#0f2a12e6}
.mission-rail button[data-mission-rail=quests]>b{background:#102b4de6}.mission-rail button[data-mission-rail=lines]>b{background:#42250ee6}.mission-rail button[data-mission-rail=miners]>b{background:#0b3540e6}.mission-rail button[data-mission-rail=combat]>b{background:#481a18e6}
.mission-rail-art,.mission-rail-art img{display:block;width:38px;height:38px;object-fit:contain}
.mission-rail button[data-mission-rail]>span:not(.mission-rail-art){position:absolute;left:2px;right:2px;bottom:12px;overflow:hidden;color:#ffe7a8;font:800 8px/1 sans-serif;text-align:center;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 3px #000}
.mission-rail button[data-mission-rail]>b{position:absolute;left:4px;right:4px;bottom:2px;padding:1px 3px;border-radius:7px;background:#090a0ed9;color:#fff7de;font:800 8px/1.15 sans-serif;text-align:center}
.mission-rail button[data-mission-rail]>i{position:absolute;top:-3px;right:-3px;display:grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border:2px solid #10151b;border-radius:9px;background:#e5484d;color:#fff;font:800 10px/1 sans-serif;font-style:normal}
.status-rail-stop{position:absolute;right:-3px;bottom:-3px;z-index:2;width:20px;height:20px;min-width:20px;min-height:20px;padding:0;border:1px solid #e85b42;border-radius:50%;background:#2b1010;color:#ffd9d2;font:800 10px/1 sans-serif;cursor:pointer}
.panel-home.has-mission-rail .character-home-hero>.quest-card{display:none}
@media(min-width:800px){.mission-rail{right:18px;top:86px;width:82px;padding:9px 8px;gap:8px;border-radius:25px}.mission-rail button[data-mission-rail]{width:64px;height:68px}.mission-rail-art,.mission-rail-art img{width:46px;height:46px}.mission-rail button[data-mission-rail]>span:not(.mission-rail-art){bottom:14px;font-size:9px}.mission-rail button[data-mission-rail]>b{font-size:9px}}
.welfare-card{overflow:hidden;padding-top:0}
.welfare-card .welfare-art{display:block;width:calc(100% + 20px);height:150px;margin:0 -10px 10px;object-fit:contain;background:radial-gradient(circle at 50% 48%,#174d50 0,#092b31 62%,#071d24 100%);border-bottom:1px solid #cba94d}
.welfare-card .emp-head,.welfare-card>.emp-note,.welfare-card>.emp-tag,.welfare-card>.btn{position:relative;z-index:1}
@media(max-width:430px){.welfare-card .welfare-art{height:132px}}
@media(max-height:700px){.ex-panel.is-combat .cs-stage{height:136px}.ex-cb-act small{font-size:.64rem}}
.player-sheet.is-combat .sheet-scroll.is-combat-tight{overflow:auto}.is-combat-tight .ex-panel.is-combat{flex:none}.is-combat-tight .ex-cb-mid{overflow:visible}.is-combat-tight .ex-cb-bottom{position:sticky;bottom:0;z-index:2;background:var(--tp-surface,#fff7e5);color:var(--tp-ink,#1f2a33);padding-top:4px}
.is-combat-tight .ex-cb-warn{position:sticky;top:0;z-index:3}.is-combat-tight .ex-cb-act{padding:3px 8px;line-height:1.15}
.is-combat-tight .ex-cb-extra{flex-wrap:nowrap}.is-combat-tight .ex-cb-basic,.is-combat-tight .ex-cb-miners{flex:1 1 auto;min-width:0}.is-combat-tight .ex-cb-mini{min-width:0;padding:2px 6px}.is-combat-tight .ex-cb-miners>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media(prefers-reduced-motion:reduce){.ex-panel.is-combat *,.combat-chip{animation:none!important;transition:none!important}}
/* 材料探險分關卡（v90w）：每區一排關卡按鈕；探險場景改 3:5 直式、鋪三格材料等級背景圖 */
.ex-stage-list{display:grid;gap:6px}
.ex-scene.material-level-scene{height:auto;aspect-ratio:3/5;width:min(100%,292px);margin:0 auto}
/* 10-09 v475 橫式礦區圖：場景改 16:9 滿寬（電腦版 v207-polish 另設 4:3，橫式圖也在那裡改 16:9） */
.ex-scene.material-level-scene.is-land,.ex-panel.is-running .ex-scene.material-level-scene.is-land{aspect-ratio:16/9;width:100%}
.ex-scene.material-level-scene .ex-node{z-index:2}
/* 內測反饋（v91b）：人物分頁底部的提案／問題回報視窗 */
.feedback-panel{display:grid;gap:8px}
.feedback-panel h3{margin:0}
.feedback-intro{margin:0;font-size:.8rem;opacity:.85}
.feedback-type{display:flex;gap:8px}
.feedback-type .btn{flex:1;min-height:44px}
.feedback-type .btn.is-picked{border-color:var(--gold);color:var(--gold);background:#1c2a30}
.feedback-text{width:100%;box-sizing:border-box;min-height:84px;padding:10px;border-radius:10px;border:1px solid #3a4a52;background:#0b2026;color:inherit;font:inherit;resize:vertical}
.feedback-panel [data-fb-submit]{min-height:48px}
.feedback-msg{margin:0;min-height:1.2em;font-size:.82rem;color:var(--gold)}
.feedback-empty{margin:0;font-size:.82rem;opacity:.7}
.feedback-list{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.feedback-list li{display:grid;gap:4px;padding:10px;border-radius:12px;background:#0b3036;border:1px solid #3a4a52}
.feedback-list li b{font-size:.85rem}
.feedback-list li small{opacity:.7}
.feedback-entry-text{font-size:.85rem;white-space:pre-wrap;word-break:break-word}
.feedback-entry-btns{display:flex;gap:8px;margin-top:2px}
.feedback-entry-btns .btn{min-height:44px;flex:1}
/* 客服中心（10-31 第1批）：文字選單、答案、回報表單 */
.support-center h4{margin:0;font-size:.95rem}
.support-menu{display:grid;gap:6px}
.support-row{display:flex;align-items:center;gap:10px;min-height:48px;text-align:left;justify-content:flex-start;white-space:normal}
.support-row b{flex:0 0 26px;height:26px;display:grid;place-items:center;border-radius:50%;background:#193b59!important;color:#fff!important;font-size:.8rem}
.support-back{justify-self:start;min-height:44px}
.support-answer{margin:0;padding:10px;border-radius:12px;background:#eef6fb;border:1px solid #b6d5e8;color:#193b59;font-size:.88rem;line-height:1.6;white-space:pre-wrap}
.support-field{display:grid;gap:4px;font-size:.82rem}
.support-field select{min-height:44px;padding:0 10px;border-radius:10px;border:1px solid #b6d5e8;background:#fff;color:#193b59;font:inherit}
.support-center [data-sc-repro].is-picked{background:#2f6fd6!important;border-color:#1f55b0!important;color:#fff!important}
/* 10-31 客服中心彈窗：外框不捲動、內容捲動，關閉鈕固定在右上角 */
.support-dialog{width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 16px);margin:auto;padding:0;overflow:hidden;border:1px solid #b6d5e8;border-radius:16px;background:#fff;color:#193b59}
.support-dialog[open]{display:flex;flex-direction:column}
.support-dialog::backdrop{background:#0009}
.support-ico{width:1.6em;height:1.6em;object-fit:contain;vertical-align:middle;margin-right:.35em}
.support-dialog-body{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain}
.support-dialog .support-close{position:absolute;top:8px;right:8px;z-index:2;width:44px;height:44px;padding:0;border-radius:50%;border:1px solid #b6d5e8;background:#fff;color:#193b59;font-size:1.1rem}
.support-dialog .support-center{margin:0;border:0;box-shadow:none;background:transparent}
.support-dialog .support-center>h3{padding-right:52px}
/* 全域 v3 主題用高權重改寫按鈕內文字色，這裡同樣加權保住編號與「多常發生」選取色 */
html body .support-dialog:not(#sc1#sc2#sc3#sc4) .support-row>b{background:#193b59!important;color:#fff!important}
html body .support-dialog:not(#sc1#sc2#sc3#sc4) .feedback-list li{background:#f6fafd!important;border-color:#b6d5e8!important;color:#193b59!important}
html body .support-dialog:not(#sc1#sc2#sc3#sc4) .feedback-list li :is(b,small,.feedback-entry-text){color:#193b59!important}
html body .support-dialog:not(#sc1#sc2#sc3#sc4) .feedback-text{background:#fff!important;border-color:#b6d5e8!important;color:#193b59!important}
html body .support-dialog:not(#sc1#sc2#sc3#sc4) .feedback-msg{color:#1f6b3a!important}
html body .support-dialog:not(#sc1#sc2#sc3#sc4) [data-sc-repro].is-picked{background:#2f6fd6!important;border-color:#1f55b0!important;color:#fff!important}
html body .support-dialog:not(#sc1#sc2#sc3#sc4) .feedback-list li .support-sync.is-pending{color:#9a5b00!important}
html body .support-dialog:not(#sc1#sc2#sc3#sc4) .feedback-list li .support-sync.is-failed{color:#b3261e!important}
html body .support-dialog:not(#sc1#sc2#sc3#sc4) .feedback-list li .support-sync.is-sent{color:#1f6b3a!important}
/* 10-31 第3批：客服回覆（純文字） */
html body .support-dialog:not(#sc1#sc2#sc3#sc4) .feedback-list li .support-replies{display:flex;flex-direction:column;gap:6px;margin:6px 0}
html body .support-dialog:not(#sc1#sc2#sc3#sc4) .feedback-list li .support-reply{display:block;padding:8px 10px;border-left:3px solid #2e7d4f;border-radius:6px;background:#eef7f0!important;color:#1d3326!important;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.5}
html body .support-dialog:not(#sc1#sc2#sc3#sc4) .feedback-list li .support-reply b{display:block;font-size:12px;color:#1f6b3a!important;margin-bottom:2px}
body.home-v4.v4-photo .v4-rail-right [data-v4-go="support"]{visibility:hidden}

/* 裝備商店場景圖與比較列（Codex 09-30 六項補完） */
.ex-shop-banner{width:100%;max-height:140px;object-fit:cover;border-radius:10px;margin:8px 0 4px;display:block}
.ex-shop-keeper{display:flex;align-items:center;gap:8px;margin:4px 0}
.ex-shop-keeper img{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:none}
.ex-instant-equip{width:100%;margin:6px 0}
.ex-compare{display:block;opacity:.85}
/* v99 節日禮包列：接在月簽到下方，用虛線分隔 */
.signin-card .festival-row{border-top:1px dashed #ffffff33;padding-top:6px;margin-top:6px;padding-bottom:8px}
/* 高登市 16 區導覽（10-02）：沿用 company-map 頭尾樣式，地圖比例照高登原圖 16/9 */
dialog.district-map{overflow-x:hidden;position:fixed;inset:0;width:100%;max-width:100%;height:100%;max-height:100%;margin:0;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);border:0;background:#05262c;color:#fff;display:flex;flex-direction:column;overflow:hidden}
dialog.district-map::backdrop{background:#000a}
.district-map-art{position:relative;width:min(100cqw,100cqh*16/9);aspect-ratio:16/9}
.district-map-art img{display:block;width:100%;height:100%;object-fit:cover;border-radius:12px}
.city-map-avatar,.region-map-avatar{position:absolute;z-index:4;width:38px;height:52px;transform:translate(-50%,calc(-100% - 24px));transition:left .68s cubic-bezier(.3,.7,.2,1),top .68s cubic-bezier(.3,.7,.2,1);filter:drop-shadow(0 4px 3px #000b);pointer-events:none}
.city-map-avatar:after,.region-map-avatar:after{content:"";position:absolute;z-index:-1;left:50%;bottom:-3px;width:34px;height:13px;border:2px solid #ffe291;border-radius:50%;background:#d9a92855;box-shadow:0 0 12px #ffd85c;transform:translateX(-50%)}
.city-map-avatar.walking,.region-map-avatar.walking{animation:city-map-walk .18s ease-in-out 4 alternate}
.city-map-avatar.map-walk.walking{animation-iteration-count:infinite}.city-map-avatar.face-left{scale:-1 1}
.district-map-art:has(.region-pin[aria-pressed=true]) .region-pin:not([aria-pressed=true]){filter:saturate(.65) brightness(.72);opacity:.72}
.district-pin.region-pin:before{content:"";position:absolute;z-index:-1;width:112px;height:82px;border-radius:50%;background:radial-gradient(ellipse,color-mix(in srgb,var(--region-color) 30%,transparent),transparent 72%);border:1px solid color-mix(in srgb,var(--region-color) 55%,transparent);pointer-events:none}
.district-pin.region-pin[aria-pressed=true]:before{width:138px;height:102px;background:radial-gradient(ellipse,color-mix(in srgb,var(--region-color) 48%,transparent),transparent 73%);box-shadow:0 0 20px color-mix(in srgb,var(--region-color) 70%,transparent)}
@keyframes city-map-walk{to{margin-top:-5px}}
@media(prefers-reduced-motion:reduce){.city-map-avatar,.region-map-avatar{transition:none}.city-map-avatar.walking,.region-map-avatar.walking{animation:none}}
.district-pin{position:absolute;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:1px;padding:0;border:0;background:none;color:#fff;min-width:40px;min-height:40px;align-content:center}
.district-pin i{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#101817e8;border:2px solid #ffe291;font-style:normal;font-size:14px;box-shadow:0 2px 6px #000a}
.district-pin span{max-width:76px;padding:1px 4px;border-radius:5px;background:#06383cf0;border:1px solid #ffe29188;font-size:9px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.district-detail{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;background:#05262c;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
.district-detail-art{position:relative;flex:1 1 0;min-height:0;display:grid;place-items:center;padding:8px}
/* 10-04 老闆「電腦版要縮到 67% 才看得到全圖」：格子裡百分比高度算不出來，改用絕對定位塞滿區域、整張等比縮進螢幕 */
.district-detail-art img{position:absolute;inset:8px;width:calc(100% - 16px);height:calc(100% - 16px);object-fit:contain}
.district-detail-art.pending{place-content:center;justify-items:center;gap:8px;color:#9fc9c2}
.district-detail-art.pending span{font-size:56px}
.district-detail-art.pending p{margin:0;font-size:13px}
/* 10-03 老闆「左下角的字都被蓋掉了，改成白色視窗，進來 3 秒後消失」 */
.district-detail-body{position:absolute;left:16px;right:16px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:2;padding:12px 14px;display:grid;gap:6px;background:rgba(255,255,255,.96);border-radius:14px;box-shadow:0 6px 20px rgba(0,0,0,.35);transition:opacity .5s,transform .5s}
.district-detail-body.is-gone{opacity:0;transform:translateY(12px);pointer-events:none}
.district-detail-body p{margin:0;font-size:14px;line-height:1.6;color:#1d2b2e}
.district-detail-station{color:#b5531a;font-weight:800}
/* 10-02 老闆「遊戲還是橫的，重點無法匯出備份」：橫拿時畫面比內容矮，底部五分頁被推到螢幕外；矮螢幕改釘在可視範圍最下面，抽屜跟著 */
@media(max-height:500px){.player-dock,.player-sheet{position:fixed}.player-sheet{height:auto;top:calc(8px + env(safe-area-inset-top,0px))}}
/* 10-02 老闆「先改直式的」：手機橫拿（矮且橫）時蓋一層提示，請玩家轉回直的 */
.portrait-only{display:none}
/* 10-02 撤回：舊安裝版被鎖橫向時，手機直拿畫面仍是橫的，提示會把老闆擋在外面；先不蓋 */

/* 10-02 材料來源選中 */
.material-source-pick{margin:8px 0}.material-source-pick button.active{border-color:var(--gold);background:#3a3220;box-shadow:0 0 0 1px var(--gold) inset}.material-source-pick button:disabled{opacity:.55;cursor:not-allowed}
/* 10-02 設計稿 17：選採集地卡片＋採集中進度圈與大按鈕（場景圖未到前用區域色漸層） */
.ex-zone-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0}
.ex-zone-card{min-width:0;overflow:hidden;align-content:start;display:grid;gap:3px;padding:6px;border:2px solid #3a4a4a;border-radius:12px;background:#132428;color:var(--text);font:inherit;text-align:center;cursor:pointer}
.ex-zone-card.is-on{border-color:var(--gold);box-shadow:0 0 12px #d9ab3f88}
.ex-zone-card.is-locked{opacity:.5;cursor:not-allowed}
.ex-zone-card b{font-size:.82rem}.ex-zone-card small{color:var(--muted);font-size:.6rem;line-height:1.3}
.ex-zone-art{display:block;aspect-ratio:4/3;border-radius:8px;background:linear-gradient(160deg,#9aa3a8,#4a5258 60%,#22282c)}
.ex-zone-card.zone-yellow .ex-zone-art{background:linear-gradient(160deg,#ffe38a,#b8902e 60%,#3e3010)}
.ex-zone-card.zone-blue .ex-zone-art{background:linear-gradient(160deg,#8fd3ff,#2f6f9e 60%,#102a3e)}
.ex-zone-card.zone-red .ex-zone-art{background:linear-gradient(160deg,#ff9a7a,#a8321e 60%,#3e120a)}
.ex-zone-card.zone-purple .ex-zone-art{background:linear-gradient(160deg,#d7b8ff,#6a3bb8 60%,#24103f)}
.ex-zone-card.zone-silver .ex-zone-art{background:linear-gradient(160deg,#f2f6fa,#8fa0b0 60%,#2d3843)}
.ex-zone-card.zone-gold .ex-zone-art{background:linear-gradient(160deg,#fff0a8,#e0b03a 55%,#5a4210)}
.ex-pick-detail{display:grid;gap:8px;padding:10px;border:1px solid #3a4a4a;border-radius:12px;background:#0f1c1f}
.ex-stage-chips{display:flex;flex-wrap:wrap;gap:6px}
.ex-stage-chip{padding:7px 10px;border:1px solid var(--line);border-radius:20px;background:#1d2b2e;color:var(--text);font:inherit;font-size:.72rem;cursor:pointer}
.ex-stage-chip.is-on{border-color:var(--gold);background:#3a3220;color:var(--gold)}
.ex-stage-chip:disabled{opacity:.5;cursor:not-allowed}
.btn.ex-enter{display:flex;align-items:center;justify-content:center;gap:8px;min-height:56px;border-radius:16px;background:linear-gradient(180deg,#f6d77a,#d9ab3f);color:#1b1505;font-size:1.15rem;font-weight:900;box-shadow:0 4px 0 #8a6a1e}
.btn.ex-enter svg,.btn.ex-enter img{width:28px;height:28px}
.btn.ex-enter:disabled{filter:grayscale(.7);opacity:.6;box-shadow:none}
.ex-ring{position:absolute;top:8px;left:8px;z-index:2;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:radial-gradient(#0f2226 58%,transparent 60%),conic-gradient(var(--gold) calc(var(--pct)*1%),#2a3a3d 0);color:var(--text);pointer-events:none}
.ex-ring svg,.ex-ring img{width:20px;height:20px;margin-top:6px}.ex-ring b{margin-top:-14px;font-size:.8rem}
.ex-gather-bar{display:grid;grid-template-columns:1fr auto;gap:8px;margin:8px 0}
.ex-gather-mat,.ex-gather-bag{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid #cfdde4;border-radius:12px;background:#f2f9fc;color:#1d2b33}/* 10-10 老闆：採集配色——深墨綠底禁用，改淺底深字 */
.ex-gather-mat>div{flex:1}.ex-gather-mat meter{width:100%;height:8px}.ex-gather-mat .inv-ore{width:32px;height:28px;margin:0}
.ex-gather-bag span{font-size:.72rem;color:#51636e}.ex-gather-bag b{color:#9a6b00;font-size:.95rem}.ex-gather-mat b{color:#1d2b33}
.ex-run-actions{display:grid;grid-template-columns:1.3fr 1fr;gap:8px}
.ex-safe{min-height:56px;border-radius:16px}
/* 10-02 老闆礦材圖示＋區域場景圖 */
.inv-mat{background:transparent;padding:2px;filter:drop-shadow(0 2px 3px #0007)}
.ex-mat-art{width:40px;height:40px;margin:0}
img.ex-zone-art{width:100%;object-fit:cover;object-position:center 30%}
.material-level-scene.zone-scene>img{inset:0;width:100%;height:100%;object-fit:cover}
.ex-node-art{display:block;width:44px;height:44px;object-fit:contain;filter:drop-shadow(0 0 6px #f6d77a) drop-shadow(0 3px 3px #0008)}
/* 10-02 老闆：右上角音樂鈕移除，改用 設定 → 音樂開關 */
#sound-toggle{display:none!important}
/* 10-02 老闆「背包與裝備」稿：上方倉庫場景 */
.inv-scene{height:150px;margin:-4px 0 10px;border-radius:14px;overflow:hidden}
.inv-scene img{width:100%;height:100%;object-fit:cover;object-position:center 38%;display:block}
/* 10-02 採集場景優化：滿版、加高、狀態字縮小移下方 */
.ex-panel.is-running .staff-msg:empty{display:none}
.ex-panel.is-running .ex-scene.material-level-scene{width:100%;aspect-ratio:4/5;border-radius:16px;box-shadow:0 10px 26px #0008}
.ex-panel.is-running .ex-run>h3{margin:0 0 2px}
.ex-panel.is-running .ex-status{margin-top:12px;font-size:.78rem;opacity:.85}
.ex-panel.is-running .ex-status+.emp-note{display:none}
.ex-panel.is-running .ex-node-art{width:60px;height:60px}
/* 10-02 戰鬥四大鈕（老闆示意圖＋選 A） */
.ex-cb-weapon{margin:6px 0;padding:6px 10px;border:1px solid #3a4a4a;border-radius:10px;background:#0f1c1f;font-size:.78rem;color:var(--muted)}
.ex-cb-four{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.ex-cb-big{display:grid;justify-items:center;gap:2px;min-height:68px;padding:6px 2px;border:1px solid #3d6a66;border-radius:12px;background:#132a2c;color:var(--text);font:inherit;font-weight:800;cursor:pointer}
.ex-cb-big b{font-size:1.5rem;line-height:1}.ex-cb-big span{font-size:.86rem}
.ex-cb-big.is-primary{background:linear-gradient(180deg,#f6d77a,#d9ab3f);border-color:#ffe9a8;color:#1c1608;box-shadow:0 0 12px #d9ab3f66}
.ex-cb-big[aria-disabled="true"]{opacity:.5}
.ex-cb-big.is-hint{outline:3px solid var(--gold)}
.ex-cb-skilltoggle{font-weight:800}
.ex-cb-grid[hidden]{display:none}
.ex-panel.is-combat .ex-cb-grid{margin-top:8px}
.panel-scene{height:170px}
.sk-tabs{margin:8px 0}
.sk-list{display:grid;gap:8px;margin-bottom:12px}
.sk-row{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;padding:10px;background:#123e43;border:1px solid #587f79;border-radius:12px}
.sk-ico{font-style:normal;font-size:26px;display:grid;place-items:center;width:44px;height:44px;border-radius:10px;background:#0b2a2e}
.sk-main p{display:flex;justify-content:space-between;margin:0 0 4px}.sk-main span{color:#ffd979;font-weight:700}
.sk-main meter{width:100%;height:10px}.sk-main small{color:#e9c46a}
.sk-add{font-size:.72rem;padding:6px 8px;border-radius:10px}
.sk-row.has-skill-art{position:relative;overflow:hidden;isolation:isolate}
.sk-row.has-skill-art .sk-ico{width:64px;height:64px;border:1px solid #d9bd6c8a;border-radius:16px;background:radial-gradient(circle,#29251c,#090b0d 72%);overflow:hidden}
.sk-row.has-skill-art .sk-ico img{display:block;width:100%;height:100%;object-fit:contain}
.sk-fx{position:absolute;z-index:4;inset:50% auto auto 32px;width:112px;height:112px;background:var(--skill-fx) center/contain no-repeat;pointer-events:none;transform:translate(-50%,-50%) scale(.35);animation:skill-fx-pop 1.35s ease-out forwards}
.sk-fx.legend{width:136px;height:136px;animation-duration:1.6s}
@keyframes skill-fx-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.25) rotate(-18deg)}28%{opacity:1;transform:translate(-50%,-50%) scale(1.05) rotate(0)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.32) rotate(8deg)}}
@media(max-width:430px){.sk-row.has-skill-art{grid-template-columns:56px minmax(0,1fr)}.sk-row.has-skill-art .sk-ico{width:56px;height:56px}.sk-row.has-skill-art .sk-add{grid-column:1/-1}.sk-fx{left:28px}}
.sk-train{display:block;width:100%;margin-bottom:12px}
.line-tabs{margin:8px 0;grid-template-columns:repeat(5,minmax(0,1fr))}.line-tabs button{white-space:nowrap;font-size:.74rem;padding-inline:2px}
.line-card[data-status="running"]{border-color:#e9c46a;box-shadow:0 0 0 1px #e9c46a66}
.line-card.is-locked{opacity:.72;padding:10px 12px}.line-card.is-locked header b::before{content:"🔒 "}
.qc-tabs{margin:8px 0}
.qc-card{padding:14px;margin-bottom:10px;background:#123e43;border:1px solid #587f79;border-radius:12px}
.qc-card h3{margin:0 0 6px;color:#ffd979}.qc-prog{display:flex;gap:8px;align-items:center}.qc-prog meter{flex:1;height:10px}
.qc-extra[hidden]{display:none}
/* 10-02 同行礦工跟著玩家走、扛材料袋 */
.ex-miner-walker{position:absolute;z-index:5;width:54px;transform:translate(-50%,-85%);pointer-events:none;text-align:center;transition:left var(--walk-dur,.6s) linear var(--delay,0s),top var(--walk-dur,.6s) linear var(--delay,0s)}
.ex-miner-walker img{display:block;width:54px;height:54px;object-fit:contain}
.ex-miner-walker b{position:absolute;right:-6px;top:20px;font-size:18px}
.ex-miner-walker span{display:block;margin-top:1px;color:#fff;background:#07343ddd;border-radius:6px;font-size:10px;white-space:nowrap}
.ex-miner-walker.walking img{animation:material-steps .24s ease-in-out infinite alternate}
@media(prefers-reduced-motion:reduce){.ex-miner-walker{transition:none}.ex-miner-walker.walking img{animation:none}}
.miner-auto{color:#2f7a4f;font-weight:700}
.miner-auto-bar{height:6px;border-radius:3px;background:rgba(0,0,0,.12);overflow:hidden;margin:2px 0 6px}
.miner-auto-bar i{display:block;height:100%;background:linear-gradient(90deg,#f0b43c,#e07b1f)}

/* 10-03 自動戰鬥開關 */
.ex-cb-auto.is-on { background: #e8b54a; color: #2a1c05; border-color: #e8b54a; }
/* 10-03 戰鬥勝利卡（照老闆設計稿） */
.ex-win{margin:10px 0;padding:14px;border:1px solid rgba(255,224,152,.45);border-radius:16px;background:linear-gradient(#123238,#0c2227);text-align:center}
.ex-win-title{display:flex;align-items:center;justify-content:center;gap:10px;margin:0;font-size:1.7rem;font-weight:900;color:#ffe08a;text-shadow:0 2px 0 #6b4a10}
.ex-win-sub{margin:4px 0 10px;color:#e8eef0}
.ex-win-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ex-win-list li{display:flex;align-items:center;gap:12px;padding:8px 10px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:rgba(0,0,0,.18);text-align:left}
.ex-win-ic{display:grid;place-items:center;width:44px;height:44px;flex:none;font-size:1.5rem}
.ex-win-art{width:44px;height:44px;object-fit:contain}
.ex-win-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.ex-win-actions .btn{margin:0;min-height:52px}
.ex-win-note{margin:8px 0 0;text-align:right;font-size:.8rem;opacity:.75}

/* 10-03 礦工名額卡可點，跳到資料卡並閃一下 */
.miner-slot[data-miner-jump]{cursor:pointer}
.miner-card.is-flash{animation:miner-flash 1.2s ease}
@keyframes miner-flash{0%,60%{box-shadow:0 0 0 3px #f5c542}100%{box-shadow:none}}
@media (prefers-reduced-motion:reduce){.miner-card.is-flash{animation:none;outline:3px solid #f5c542}}

/* 10-03 等級招式選單 */
.ex-perk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.ex-perk{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:inherit;text-align:left;font:inherit}
.ex-perk small{opacity:.8;font-size:.78em}
.ex-perk.is-on{border-color:#f5c542;box-shadow:0 0 0 2px #f5c542 inset}
.ex-perk:disabled{opacity:.45}
/* 10-03 玩家自己的裝備中心 */
.gear-center{display:grid;gap:12px}.gear-note{opacity:.8;font-size:.9em}
.gear-slot{border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:10px 12px;display:grid;gap:8px}
.gear-slot h4{margin:0;color:#f5c542}.gear-on{display:grid;gap:4px}.gear-on small,.gear-item small{opacity:.75}
.gear-item{display:flex;justify-content:space-between;align-items:center;gap:8px}.gear-none{opacity:.6}
.gear-v2-showcase{display:grid;gap:10px;padding:12px;border:1px solid #d6b85f;border-radius:16px;background:linear-gradient(145deg,#111820f2,#071c22f2)}
.gear-v2-showcase>header{display:grid;gap:8px}.gear-v2-showcase h3,.gear-v2-showcase h4{margin:0;color:#ffe291}.gear-v2-showcase small{color:#c9d9d5}
.gear-v2-tiers{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}.gear-v2-tiers::-webkit-scrollbar{display:none}
.gear-v2-tiers button{flex:0 0 auto;min-height:40px;padding:6px 12px;border:1px solid #8a7b50;border-radius:999px;background:#12191d;color:#e8dcc0;font-weight:800}.gear-v2-tiers button[aria-pressed=true]{border-color:#ffe291;background:#5a4214;color:#fff2bd}
.gear-v2-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.gear-v2-grid.pet{grid-template-columns:repeat(2,minmax(0,1fr))}
.gear-v2-grid figure{display:grid;justify-items:center;gap:3px;margin:0;padding:7px 4px;border:1px solid #756b4b;border-radius:12px;background:#090d10;color:#fff0bc;font-size:12px;text-align:center}
.gear-v2-grid img{display:block;width:100%;aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 4px 5px #000a)}

/* 10-03 大地圖導覽 */
.district-guide-btn{margin-left:auto;min-height:36px;padding:4px 10px;font-size:13px}
.district-pin.is-guide i{animation:guide-pulse 1s ease-in-out infinite;border-color:#ffd23f;box-shadow:0 0 0 4px #ffd23f88,0 2px 6px #000a}
@keyframes guide-pulse{50%{transform:scale(1.35)}}
@media (prefers-reduced-motion:reduce){.district-pin.is-guide i{animation:none}}
.district-guide{display:grid;gap:6px;max-height:40vh;overflow:auto}
.district-guide-now{margin:0;font-weight:800;color:#ffe291}
.district-guide ul{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:4px}
.district-guide li button{width:100%;display:grid;grid-template-columns:auto 1fr;gap:0 6px;text-align:left;padding:6px 8px;border-radius:8px;border:1px solid #ffe29144;background:#0b2a2c;color:#fff}
.district-guide li small{grid-column:2;opacity:.8;font-size:11px}
.district-map .company-map-head b{white-space:nowrap}
.district-map .district-guide-btn{flex:0 0 auto;width:auto}
.district-map .company-map-foot{flex-wrap:wrap}
.district-map .district-guide{flex:1 1 100%;width:100%}
.district-map .company-map-foot:has(.district-guide:not([hidden])) .company-map-info{display:none}
/* 10-03 各區的店 */
.district-shops { display:flex;flex-wrap:wrap;gap:6px;margin-top:6px; }
.district-shops .btn { min-height:40px;font-size:14px; }

.furnace-scene{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:4/3}.furnace-scene>img{width:100%;height:100%;object-fit:cover;object-position:50% 35%}.furnace-npc{position:absolute;left:4px;bottom:0;margin:0;width:36%}.furnace-npc img{display:block;width:100%;height:auto;filter:drop-shadow(0 4px 10px #000a)}.furnace-npc figcaption{background:#1a120ccc;border-radius:8px}.furnace-npc figcaption{font-size:12px;text-align:center;color:#ffe1a8;padding:2px 0}.furnace-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.furnace-row{display:grid;gap:4px}
/* 10-03 關卡王出場進度條 */
.ex-boss-bar{display:flex;gap:10px;align-items:center;margin:6px 0;padding:6px 10px;border-radius:12px;background:#2a0f0f99;border:1px solid #ff8a5c55}
.ex-boss-bar img{width:48px;height:48px;object-fit:contain}
.ex-boss-bar div{flex:1}.ex-boss-bar meter{width:100%}

/* 10-03 變異關卡王：原王圖換紫紅色調＋發光光環；專屬材料借主礦圖加同色濾鏡 */
.cs-monster.is-variant>img[data-f]{filter:hue-rotate(-70deg) saturate(1.6) brightness(.9) drop-shadow(0 0 10px #d03cff) drop-shadow(0 8px 5px #000a)}
.cs-monster.is-variant::after{content:"";position:absolute;left:10%;right:10%;bottom:-2%;height:14%;border-radius:50%;background:radial-gradient(#d03cffaa,transparent 70%);animation:csVariant 1.6s ease-in-out infinite alternate;z-index:-1}
@keyframes csVariant{from{opacity:.5;transform:scale(.9)}to{opacity:1;transform:scale(1.08)}}
@media (prefers-reduced-motion:reduce){.cs-monster.is-variant::after{animation:none}}
img.is-variant{filter:hue-rotate(-70deg) saturate(1.6) drop-shadow(0 0 4px #d03cff)}
.ex-boss-bar small{display:block;font-size:.72em;opacity:.8}

/* 10-03 礦工出手動作圖：從左側滑進、停一下、淡出 */
.cs-miner-fx{position:absolute;left:4%;bottom:6%;width:42%;max-width:180px;z-index:6;pointer-events:none;opacity:0;animation:cs-miner-in 1.1s ease-out both}
.cs-miner-fx img{width:100%;height:auto;display:block;filter:drop-shadow(0 4px 8px #0008)}
.cs-miner-fx.is-strike img{filter:drop-shadow(0 0 10px #ffb34799)}
.cs-miner-fx.is-shield img{filter:drop-shadow(0 0 10px #6cc8ff99)}
.cs-miner-fx.is-heal img{filter:drop-shadow(0 0 10px #6dff9a99)}
@keyframes cs-miner-in{0%{opacity:0;transform:translateX(-40%) scale(.9)}20%{opacity:1;transform:none}75%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-6%)}}
@media (prefers-reduced-motion:reduce){.cs-miner-fx{animation:cs-miner-fade 1.1s steps(1) both}@keyframes cs-miner-fade{0%{opacity:1}100%{opacity:0}}}
.ex-scene.zone-scene{cursor:pointer}
/* 10-03 材料區搖桿：沿用高登市地圖 .joystick 樣式，縮小放場景左下 */
.ex-scene .ex-joystick{z-index:8;left:10px;bottom:10px;width:88px;height:88px}
.ex-scene .ex-joystick i{top:21px;left:21px;width:42px;height:42px}
/* 10-03 整張地圖散開採集：8 處同時出現，縮小一點避免擠；採過的淡掉 */
.ex-panel.is-running .ex-node{min-width:52px;min-height:52px;padding:4px}
.ex-panel.is-running .ex-node span{font-size:10px}
.ex-node.is-done{opacity:.35}
.ex-node.is-done span{display:none}
/* v206：首頁高度跟著上方 HUD 實際高度（加了經驗條後變高，底部五分頁字被切） */
.panel-home .game-intro{height:calc(100dvh - var(--topbar-h,60px) - 6px)!important}
/* 10-04 老闆「電腦畫面地圖等比放大」：電腦版生活地圖與店內原本只有 500 寬，改成跟遊戲直條一樣寬（780） */
@media(min-width:800px){.life-map-screen,.merchant-scene{width:min(100%,780px)}}
/* 10-04 老闆「導覽的地區圖示可以做大」：手機放大一級，電腦版再放大 */
.district-pin i{width:34px;height:34px;font-size:19px}.district-pin span{max-width:90px;font-size:11px;padding:2px 6px}
@media(min-width:800px){.district-pin i{width:46px;height:46px;font-size:26px;border-width:3px}.district-pin span{max-width:120px;font-size:14px}}
/* 10-04 穿著中的裝備亮金框 */
.inv-slot[data-equipped]{border-color:#ffe291;box-shadow:0 0 0 1px #ffe291 inset,0 0 12px #d9ab3f88}
/* 10-04 老闆：所有頁面打開都是整頁——場景圖縮成細條，內容佔滿 */
.player-sheet.has-environment .sheet-environment,.player-sheet.has-environment.expanded .sheet-environment{flex-basis:clamp(56px,10dvh,96px)}
.player-sheet{height:calc(100% - var(--dock-h) - 8px)}
/* v270：所有遊戲內虛擬據點使用同一套場景圖卡；生活地圖實體商家不套用。 */
.location-scene-banner{margin:8px 0 12px;aspect-ratio:16/7;overflow:hidden;border:1px solid rgba(255,226,145,.55);border-radius:14px;background:#082f33}
.location-scene-banner img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 48%}
.location-workflow-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:12px 0}
.location-workflow-card{margin:0;aspect-ratio:1/1;overflow:hidden;border:1px solid rgba(147,204,193,.5);border-radius:10px;background:#082f33}
.location-workflow-card img{display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:390px){.location-scene-banner{aspect-ratio:2/1}.location-workflow-grid{gap:5px}}
/* 10-04 提前還款 */
dialog.debt-repay{border:1px solid #93ccc1;border-radius:18px;background:#04262c;color:#eaf6f2;padding:18px;width:min(92vw,360px)}
dialog.debt-repay::backdrop{background:#000a}
.debt-repay h3{margin:0 0 8px}.debt-repay .debt-note{color:#ffd76a;font-size:.85rem}
.debt-repay .debt-btns{display:grid;gap:8px;margin:12px 0}.debt-repay button{min-height:44px;border-radius:12px;font-weight:700}
.debt-repay button:disabled{opacity:.45}.debt-repay .debt-msg{min-height:1.2em;color:#9fe3c8}.debt-repay .debt-close{width:100%}
.growth-block{margin:12px 0;padding:10px;border:1px solid rgba(232,198,111,.35);border-radius:10px}
.growth-block h4{margin:0 0 6px}
.growth-list{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:4px}
.growth-list li{display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:6px 8px;border-radius:8px;background:rgba(255,255,255,.04);opacity:.6}
.growth-list li.owned{opacity:1;background:rgba(232,198,111,.12)}
.growth-list li.next{opacity:1;outline:1px dashed rgba(232,198,111,.6)}
.growth-list li small{grid-column:1/-1}
.growth-list.art-growth-list li,.specialist-block>.growth-list li{position:relative;min-height:72px;padding-left:84px;align-content:center;overflow:hidden}
.growth-art{position:absolute;left:7px;top:6px;width:68px;height:60px;object-fit:contain;filter:drop-shadow(0 5px 8px rgba(0,0,0,.35))}
/* 10-09 v483 汽車產業區展示間 */
/* 10-09 v486 礦物圖鑑 */
.ore-codex-v3 .ore-scene,body[data-ui-version="3"] .ore-codex-v3 .ore-scene{aspect-ratio:auto;height:150px;min-height:0}
.ore-codex-v3 .ore-scene img{height:100%;object-fit:cover}
.ore-tiers,.ore-crafts,.ore-grades{display:grid;gap:10px}
.ore-tier{border-radius:12px;border:1px solid rgba(232,198,111,.25);background:rgba(255,255,255,.04);overflow:hidden}.ore-tier.locked{opacity:.78}
.ore-tier-head{display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px;align-items:center;padding:8px}.ore-tier-head img{width:96px;height:64px;object-fit:cover;border-radius:8px}.ore-tier-head b{display:block;font-size:15px}.ore-tier-head span{font-size:12px;opacity:.85}
.ore-list{list-style:none;margin:0;padding:0 8px 8px;display:grid;gap:6px}.ore-item{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px;align-items:start;padding:6px;border-radius:8px;background:rgba(0,0,0,.12)}.ore-item.ore-variant{background:rgba(160,90,220,.14)}
.ore-art{width:44px;height:44px;object-fit:contain;border-radius:8px;background:rgba(0,0,0,.2)}.ore-art.is-variant{filter:hue-rotate(260deg) saturate(1.4)}
.ore-item b{font-size:14px}.ore-item>div>span{display:block;font-size:12px;opacity:.85}.ore-item p{margin:2px 0 0;font-size:12px;line-height:1.4}.ore-item small{display:block;margin-top:2px;font-size:11px;color:#ffe1a8}
.ore-craft{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);gap:6px;align-items:center;padding:8px;border-radius:12px;border:1px solid rgba(232,198,111,.25);background:rgba(255,255,255,.04)}.ore-craft>p{grid-column:1/-1;margin:4px 0 0;font-size:12px;opacity:.85}
.ore-craft-side{display:grid;gap:4px;justify-items:center;text-align:center;font-size:12px}.ore-craft-side small{font-weight:700}.ore-craft-arrow{font-size:20px;text-align:center;color:#e8c66f}
.ore-arts{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}.ore-arts .ore-art{width:36px;height:36px}
.ore-grade{padding:8px;border-radius:12px;border:1px solid rgba(232,198,111,.25);background:rgba(255,255,255,.04);display:grid;gap:4px;font-size:12px}.ore-grade>b{font-size:14px}.ore-grade ul{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:4px}.ore-grade li{display:grid;grid-template-columns:36px minmax(0,1fr);gap:6px;align-items:center}.ore-grade li b{font-size:13px}.ore-grade li span{display:block;font-size:12px;opacity:.85}
.ore-guide{margin:0 0 10px;padding-left:20px;display:grid;gap:6px;font-size:13px;line-height:1.45}
body[data-ui-version="3"] .ore-codex-v3 .ore-tier,body[data-ui-version="3"] .ore-codex-v3 .ore-craft,body[data-ui-version="3"] .ore-codex-v3 .ore-grade{background:#fff;border-color:var(--v3-line)}body[data-ui-version="3"] .ore-codex-v3 .ore-item{background:#f3f7f8}body[data-ui-version="3"] .ore-codex-v3 .ore-item.ore-variant{background:#efe6fb}body[data-ui-version="3"] .ore-codex-v3 .ore-item small{color:#9a6a12}body[data-ui-version="3"] .ore-codex-v3 .ore-art{background:#e6edf0}
.dealer-cars{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.dealer-car{display:grid;gap:4px;padding:10px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid rgba(232,198,111,.25);opacity:.75}
.dealer-car.owned{opacity:1;background:rgba(232,198,111,.12)}.dealer-car.active{outline:2px solid rgba(232,198,111,.8)}
.dealer-car-icon{font-size:34px;line-height:1}.dealer-car b{font-size:15px}
/* 10-10 v503 馳曜汽車 V2：卡片＝車圖（含品牌徽章）｜文字｜按鈕；車色色票；煞車套件收合清單；首頁徽章放真車圖 */
.dealer-car{grid-template-columns:96px 1fr;align-items:start}
.dealer-car-pic{position:relative;grid-row:1/3;width:96px;aspect-ratio:1;border-radius:10px;background:#fff;overflow:hidden}.dealer-car-pic img{width:100%;height:100%;object-fit:contain;display:block}
.dealer-brand-logo{position:absolute;right:2px;bottom:2px;width:26px!important;height:26px!important;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.dealer-car-body{display:grid;gap:2px;min-width:0}.dealer-model{font-weight:500;font-size:11px;opacity:.7;margin-left:6px;letter-spacing:.04em}
.dealer-car-act{display:grid;gap:4px}.dealer-car-act .btn{margin-top:0}
.dealer-colors{grid-column:1/-1;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.dealer-colors small{margin-right:2px}
.dealer-swatch{width:26px;height:26px;border-radius:50%;border:2px solid rgba(0,0,0,.15);padding:0;font-size:13px;line-height:1;background:#f4f4f0;color:#555;cursor:pointer}.dealer-swatch.on{border-color:#c89a2e;box-shadow:0 0 0 2px #f7dd8f}
.dealer-kits{grid-column:1/-1;border-top:1px dashed rgba(0,0,0,.12);padding-top:4px}.dealer-kits summary{cursor:pointer;font-size:13px;font-weight:700}.dealer-kits ul{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:6px}
.dealer-kits li{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center;padding:6px 8px;border-radius:8px;background:rgba(0,0,0,.04)}.dealer-kits li.on{background:rgba(232,198,111,.2)}.dealer-kits li>b{grid-column:1}.dealer-kits li>small{grid-column:1}.dealer-kits li>.btn{grid-column:2;grid-row:1/3;margin:0;min-height:34px}
.dealer-fleet-art{position:relative;display:block}.dealer-fleet-art img:first-child{width:100%;height:100%;object-fit:contain;background:#fff}
.dealer-company{position:absolute;right:10px;top:10px;display:flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border-radius:999px;background:rgba(255,255,255,.92);color:#1b2a3a;box-shadow:0 2px 8px rgba(0,0,0,.25)}.dealer-company img{width:28px;height:28px;border-radius:50%}.dealer-company b{font-size:13px}.dealer-company small{font-size:10px;letter-spacing:.08em;opacity:.75}
.boss-car-badge img{width:44px;height:44px;object-fit:contain;border-radius:8px;background:rgba(255,255,255,.9)}.dealer-car>span{font-size:12px;opacity:.85}.dealer-car small{font-size:12px}.dealer-car .btn{min-height:36px;font-size:13px;margin-top:4px}.panel-home .dealer-car .btn.secondary{color:#eef0f2} /* 10-09 v483 卡片深底字色，設為座車鈕要白字 */
.dealer-link .btn{margin-top:4px}
.boss-car-badge{position:absolute;left:12px;bottom:104px;z-index:4;display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:rgba(5,38,44,.82);border:1px solid rgba(232,198,111,.6);color:#f6e7bd;font-size:12px;font-weight:700;box-shadow:0 4px 10px rgba(0,0,0,.3);pointer-events:none}
.boss-car-badge i{font-style:normal;font-size:16px}
.specialist-list.art-list{display:grid;gap:8px}
.specialist-list.art-list li{position:relative;min-height:102px;padding:10px 10px 10px 88px;align-content:center;overflow:hidden}
.specialist-art{position:absolute;left:4px;bottom:0;width:80px;height:98px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 5px 7px rgba(0,0,0,.38))}
.specialist-list.art-list li>b,.specialist-list.art-list li>small{position:relative;z-index:1}
.art-manager{display:flex;align-items:center;gap:10px;min-height:64px}
.art-manager img{width:58px;height:68px;object-fit:contain;object-position:center bottom;flex:0 0 auto}
.art-manager span{min-width:0}
.growth-reason{display:block;margin-top:4px;opacity:.8}
.specialist-list{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:4px}
.specialist-list li{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:2px 8px;padding:6px 8px;border-radius:8px;background:rgba(255,255,255,.05)}
.specialist-list li .emp-portrait{grid-row:span 2;width:36px;height:36px}
.specialist-list li small{grid-column:2/-1;opacity:.85}
.specialist-list li .btn{grid-column:3;grid-row:1}
.specialist-list li.empty{display:block;opacity:.7}
.specialist-block h5{margin:8px 0 4px}
.rnd-project{margin:4px 0 8px;padding:6px 8px;border-radius:8px;background:rgba(111,190,232,.12)}
.manager-note{margin:6px 0 0;font-size:.85em;opacity:.8}
/* 10-04 道具／裝備街：直式街景置中、店門標籤可點 */
.gear-street-art{position:relative;width:min(100cqw,100cqh*1280/720);aspect-ratio:1280/720}
.gear-street-art img{display:block;width:100%;height:100%;object-fit:cover;border-radius:12px}
.gear-street-pin{position:absolute;transform:translate(-50%,-50%);min-height:44px;padding:6px 12px;border:2px solid #ffe6a2;border-radius:22px;background:#071f1ee6;color:#f3e9cf;font-size:14px;font-weight:700;white-space:nowrap;box-shadow:0 0 12px #e2b85a88}
/* 10-09 v466 裝備街改左圖右清單：街景照高度等比縮小不裁切，右邊三家店按鈕；橫式藏招牌標籤避免重疊，直式照舊標籤＋下方清單 */
dialog.district-map.gear-street{display:flex!important;flex-direction:column}
dialog.district-map.gear-street>.company-map-view{flex:1 1 auto!important;height:auto!important;min-height:0;max-height:none;padding:8px 12px;display:flex;flex-direction:row;gap:14px;align-items:stretch;justify-content:center;overflow:hidden}
dialog.district-map.gear-street .gear-street-art{flex:0 1 auto;align-self:center;width:min(60%,130vh);height:auto;aspect-ratio:1280/720}
dialog.district-map.gear-street .gear-street-art img{object-fit:contain}
dialog.district-map.gear-street .gear-street-list{flex:0 1 420px;min-width:0;display:grid;align-content:center;gap:10px}
dialog.district-map.gear-street .gear-street-list button{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;min-height:56px;padding:8px 12px;border:2px solid #e2b85a;border-radius:14px;background:#fffaf0;color:#4a3306;text-align:left;font:inherit;font-weight:700}
dialog.district-map.gear-street .gear-street-list button:focus-visible{outline:3px solid #ffe291;outline-offset:-3px}
dialog.district-map.gear-street .gear-street-list small{display:block;margin-top:2px;font-weight:400;font-size:.78rem;line-height:1.35;color:#7a5a2a;white-space:normal}
dialog.district-map.gear-street .gear-street-ico{width:48px;height:48px;object-fit:cover;border-radius:10px;background:#f1e4c8}
dialog.district-map.gear-street .company-map-foot{position:static!important;width:auto!important}
@media(min-aspect-ratio:1/1){dialog.district-map.gear-street .gear-street-pin{display:none}}
@media(max-aspect-ratio:1/1){dialog.district-map.gear-street>.company-map-view{flex-direction:column;align-items:center;overflow-y:auto}dialog.district-map.gear-street .gear-street-art{height:auto;width:100%;max-width:none}dialog.district-map.gear-street .gear-street-list{flex:0 0 auto;width:100%}}
/* 10-04 員工福利：休息時間橫條（程式畫） */
.rest-bar{position:fixed;z-index:60;top:calc(env(safe-area-inset-top,0px) + 54px);left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);padding:6px 16px;border-radius:999px;border:1.5px solid #e2b85a;background:#3a2a10ee;color:#ffe6a2;font-weight:700;font-size:14px;pointer-events:none;box-shadow:0 2px 10px #0008}
.rest-bar[data-mode=work]{background:#0e3a38ee;border-color:#7fd1a8;color:#c9f5dc}

/* 10-04 向心力標籤 */
.emp-loyal{margin:4px 0;font-size:12px;color:#c9d8d0}
.emp-loyal.loyal-loyal{color:#ffe6a2}
.emp-loyal.loyal-shaky,.emp-loyal.loyal-quit{color:#ffb4a8}

/* 10-04 裝備街不休息：休息橫條只給廠區，開裝備街時藏起來 */
body:has(dialog.gear-street[open]) .rest-bar{display:none}

/* 城市店面獨立頁：新人補給站／寵物醫院，不掛在人物或更多抽屜。 */
dialog.city-location{position:fixed;inset:0;width:min(100%,780px);height:100dvh;max-width:none;max-height:none;margin:auto;padding:0;border:0;background:#071d22;color:#eef7f3;overflow:hidden}
dialog.city-location::backdrop{background:#000c}
.city-location>header{position:sticky;top:0;z-index:3;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;min-height:58px;padding:max(8px,env(safe-area-inset-top)) 10px 8px;border-bottom:1px solid #d8b85a;background:#082f33}
.city-location>header b{text-align:center;color:#ffe291}
.city-location>header button{min-height:42px;padding:7px 11px;border:1px solid #d8b85a;border-radius:10px;background:#102a2d;color:#fff3cf;font-weight:800}
.city-location-body{height:calc(100dvh - 58px);padding:12px 12px max(20px,env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain}
.city-location-body>.pet-panel,.city-location-body>.pwa-panel{margin:0}

/* 10-04 沒計時藏起 00:00 */
.timer[hidden]{display:none!important}

/* 10-04 寵物轉職後四階段成長 */
.pet-jg{display:grid;gap:4px;margin-top:6px}
.pet-jg-looks{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
.pet-jg-look{display:grid;justify-items:center;gap:2px;padding:4px 2px;border:1px solid #587f79;border-radius:8px;background:#0f3337;color:inherit;font-size:11px}
.pet-jg-look img{width:100%;aspect-ratio:1;object-fit:contain}
.pet-jg-look[aria-pressed=true]{border-color:#e8c45a;box-shadow:0 0 0 1px #e8c45a}
.pet-jg-look:disabled img{filter:grayscale(1) brightness(.45)}
.pet-jg-today{justify-self:start;padding:2px 10px;border-radius:999px;border:1px solid #e8c45a;color:#e8c45a;font-weight:700;font-size:13px}
.pet-jg-today.is-done{background:#2f7d4f;border-color:#6fd39a;color:#fff}
.pet-jg-look small{line-height:1.2;text-align:center;word-break:keep-all}

/* 10-04 中級以上人選：專屬頭像＋卡框特效（老闆核定：中級藍框微光、高級紫框流光、精英金框閃光＋粒子、換人選翻牌、入職光圈） */
.emp-portrait.tier-art{background:#fff center top/cover no-repeat}
.emp-card.tier-mid{border:2px solid #3d8bff;box-shadow:0 0 10px rgba(61,139,255,.45)}
.emp-card.tier-senior{position:relative;border:2px solid #9a5cff;box-shadow:0 0 12px rgba(154,92,255,.5);overflow:hidden}
.emp-card.tier-senior::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 35%,rgba(205,170,255,.35) 50%,transparent 65%) -150% 0/200% 100% no-repeat;animation:tierSweep 3s linear infinite}
.emp-card.tier-elite{position:relative;border:2px solid #f2c230;box-shadow:0 0 16px rgba(242,194,48,.65);overflow:hidden}
.emp-card.tier-elite::after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle,#fff6c0 0 1.5px,transparent 2px) 0 0/22px 26px,linear-gradient(110deg,transparent 38%,rgba(255,236,150,.5) 50%,transparent 62%) -150% 0/200% 100% no-repeat;animation:tierSpark 4s linear infinite,tierSweep 2.2s linear infinite}
.emp-card.fx-flip{animation:tierFlip .55s ease-out both}
.emp-card.fx-joined{animation:tierJoin 1.2s ease-out}
@keyframes tierSweep{to{background-position:0 0,150% 0}}
@keyframes tierSpark{0%{opacity:.6}50%{opacity:1}100%{opacity:.6}}
@keyframes tierFlip{from{transform:perspective(600px) rotateY(90deg);opacity:0}to{transform:none;opacity:1}}
@keyframes tierJoin{0%{box-shadow:0 0 0 0 rgba(255,215,90,.9)}100%{box-shadow:0 0 0 22px rgba(255,215,90,0)}}
@media (prefers-reduced-motion:reduce){.emp-card.tier-senior::after,.emp-card.tier-elite::after,.emp-card.fx-flip,.emp-card.fx-joined{animation:none}}

/* 10-04 連抽 */
.draw-box{display:grid;gap:6px;margin-top:8px}
.draw-meta,.draw-keep{margin:0;font-size:12px}
.draw-keep label{margin-left:8px;white-space:nowrap}
.draw-row{display:grid;gap:4px;padding:6px;border-radius:10px;border-left:4px solid #d9d9d9;background:rgba(255,255,255,.05)}
.draw-row span{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.draw-row .btn{display:grid;padding:4px 2px;font-size:12px;min-width:0}
.draw-row .btn small{font-size:10px;opacity:.85}
.draw-row.chip-mid{border-color:#3d8bff}.draw-row.chip-senior{border-color:#9a5cff}.draw-row.chip-elite{border-color:#f2c230}
.draw-release{display:flex;flex-wrap:wrap;gap:4px;margin:0}
.emp-card.recruit{position:relative}
.draw-x{position:absolute;top:4px;right:4px;z-index:3;width:24px;height:24px;border-radius:50%;border:0;background:rgba(0,0,0,.45);color:#fff;font-size:12px;line-height:24px;padding:0}

/* v300 研發連抽：保留區卡片框色＋放掉鈕 */
.specialist-list li.rnd-tier-mid{border-color:#5aa0ff}
.specialist-list li.rnd-tier-senior{border-color:#b07cff}
.specialist-list li.rnd-tier-elite{border-color:#f2c14e;box-shadow:0 0 8px rgba(242,193,78,.5)}
.specialist-list li{position:relative}
/* 10-09 v487 老闆「看不出來是什麼顏色的階級」：卡片左側粗色帶＋名字旁色塊標籤＋滿值項加粗同色 */
.specialist-list li[class*="rnd-tier-"]{border:2px solid rgba(255,255,255,.18);border-left-width:8px}
.specialist-list li.rnd-tier-basic{border-color:#d9d9d9}
.rnd-badge{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;font-size:12px;font-weight:900;line-height:18px;color:#1a1a1a;background:#e6e6e6;vertical-align:middle}
.rnd-badge-mid{background:#5aa0ff;color:#fff}.rnd-badge-senior{background:#b07cff;color:#fff}.rnd-badge-elite{background:#f2c14e;color:#3a2a00}
.rnd-hot{font-weight:900;color:#555}.rnd-hot-mid{color:#2f7fe6}.rnd-hot-senior{color:#8a4fe6}.rnd-hot-elite{color:#b8860b}
.draw-release .btn:not(.ghost){flex-basis:100%}

/* v319 高登市週任務清單 */
.qc-city{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:3px;font-size:.82rem}
.qc-city li{display:flex;justify-content:space-between;gap:8px;padding:3px 6px;border-radius:6px;background:rgba(255,255,255,.06)}
.qc-city li.done{color:#f2c94c}
.qc-city li{align-items:center;padding:6px 8px}.qc-city li>span{display:grid;gap:2px}.qc-hint{display:block;font-size:.74rem;opacity:.72;line-height:1.3}.qc-card+.qc-card{margin-top:10px}
.qc-city li.done span::before{content:"✓ "}

/* v320 城市委託卡＋生活地圖目標標記 */
.ce-wrap{display:grid;gap:8px;margin-top:8px}
.ce-wrap>h3{margin:4px 0 0}
.ce-steps{margin:4px 0;padding-left:20px;font-size:.84rem;display:grid;gap:2px}
.ce-steps li.done{opacity:.55;text-decoration:line-through}
.ce-steps li.now{color:#f2c94c;font-weight:700}
.ce-special{border:1px solid rgba(242,201,76,.6)}
.ce-quiz{display:grid;gap:6px}
.ce-quiz p{margin:0}
.ce-wrong{color:#ff9b8a;font-size:.84rem}
.ce-note{font-size:.84rem;color:#9fe0a8;margin:4px 0 0}
.ce-credit{opacity:.8}
.ce-done{color:#f2c94c}
.life-map-list .errand-target{outline:2px solid #f2c94c;outline-offset:-2px;position:relative}
.life-map-list .errand-target::after{content:"📍";position:absolute;top:4px;right:6px;font-size:1.1rem}
.qc-ms{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:6px 0}
.qc-ms .ms{display:grid;gap:2px;padding:4px;border-radius:6px;background:rgba(255,255,255,.06);font-size:.72rem;text-align:center}
.qc-ms .ms b{font-size:.85rem}
.qc-ms .ms.ready{background:rgba(242,201,76,.22);color:#f2c94c}
.qc-ms .ms.claimed{opacity:.6}
.qc-ms .ms button{font-size:.72rem;padding:2px 4px}
.cd-wrap{display:grid;gap:8px;margin:8px 0}
.cd-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:6px 0}
.cd-grid span{display:grid;padding:4px;border-radius:6px;background:rgba(255,255,255,.06);font-size:.72rem;text-align:center}
.cd-grid span.hit{background:rgba(242,201,76,.25);color:#f2c94c}
.cd-grid small{opacity:.6}
.cd-msg{color:#f2c94c}
.cd-modal{position:fixed;inset:0;z-index:9000;background:rgba(0,0,0,.6);display:grid;place-items:center;padding:16px}
.cd-box{width:min(420px,100%);max-height:90vh;overflow:auto;background:#fffaf0;border-radius:12px;padding:12px;color:#30251a}
.cd-close{display:block;width:auto;margin:0 0 6px auto}
.cd-box .cd-wrap{margin:0}
.cd-plaza{width:100%;margin:6px 0}

/* 10-04 地圖上各自挖的礦工＋小寶箱 */
.ex-field-miner{position:absolute;z-index:4;width:44px;transform:translate(-50%,-85%);pointer-events:none;text-align:center;opacity:.92}
.ex-field-miner img{display:block;width:34px;height:34px;margin:0 auto;object-fit:contain;animation:ex-dig 1.1s ease-in-out infinite}
.ex-field-miner b{position:absolute;right:0;top:6px;font-size:13px}
.ex-field-miner span{display:block;font-size:10px;color:#fff;text-shadow:0 1px 2px #000;white-space:nowrap}
.ex-chest{position:absolute;z-index:6;transform:translate(-50%,-50%);width:40px;height:40px;border:2px solid #f5c542;border-radius:10px;background:rgba(60,40,10,.75);font-size:22px;animation:ex-chest 1.6s ease-in-out infinite}
@keyframes ex-dig{50%{transform:rotate(-8deg) translateY(2px)}}
@keyframes ex-chest{50%{transform:translate(-50%,-58%)}}
@media (prefers-reduced-motion:reduce){.ex-field-miner img,.ex-chest{animation:none}}

/* v352 商家故事冊／城市聲望 */
.merchant-storybook{margin-top:8px;padding:8px;border-radius:10px;background:rgba(20,16,8,.55);border:1px solid rgba(214,170,74,.35);font-size:13px}
.merchant-storybook .ms-head{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}
.merchant-storybook .ms-bio{margin-top:8px;padding:8px 10px;border:1px solid currentColor;border-radius:8px;background:rgba(255,255,255,.08)}
.merchant-storybook .ms-bio summary{cursor:pointer;font-weight:700}
.merchant-storybook .ms-bio summary small{font-weight:400;opacity:.75}
.merchant-storybook .ms-bio p{margin:8px 0 0;line-height:1.65}
.merchant-storybook .ms-list{margin:6px 0 0;padding-left:18px;display:grid;gap:4px}
.merchant-storybook .ms-list li{display:flex;justify-content:space-between;gap:6px;align-items:center}
.merchant-storybook .ms-done{opacity:.7}.merchant-storybook .ms-locked small,.merchant-storybook .ms-wait small{opacity:.75}
.merchant-storybook .ms-read{display:grid;gap:4px;margin-top:6px}.merchant-storybook .ms-read p{margin:0}
/* 10-09 v491 商家事件圖：16:9 cover、不加深綠色罩 */
.merchant-scene .street-event-art,.merchant-storybook .ms-art{flex:0 0 auto;width:100%;margin:6px 0 0;aspect-ratio:16/9;overflow:hidden;border-radius:12px;background:#0b2a2e}
.merchant-scene .street-event-art img,.merchant-storybook .ms-art img{display:block;width:100%;height:100%;object-fit:cover}
.merchant-storybook .ms-art{margin:0 0 4px}
.merchant-storybook .ms-got{color:#ffd76a;margin:4px 0}.merchant-storybook .ms-msg{color:#ff9d8a}
.cd-shard{position:relative;padding-left:52px;min-height:44px}.cd-shard-ic{position:absolute;left:4px;top:2px;width:42px;height:42px;object-fit:contain;filter:drop-shadow(0 0 6px rgba(255,190,60,.55))}
.ce-item-ic{width:22px;height:22px;object-fit:contain;vertical-align:middle;margin-right:2px}
/* 10-06 住家全螢幕頁跟隨實際 HUD 高度（兩列 HUD 不再壓住返回列） */
.panel-home .home-screen{top:var(--topbar-h,68px)}
.panel-home .home-screen>header{top:var(--topbar-h,68px)}

/* 10-06 生產線收合鈕併進右側狀態欄 */
.status-rail-items{display:grid;gap:7px;justify-items:center}
.status-rail-items:empty{display:none}
.panel-home .mission-rail>.line-dock{position:static;inset:auto;width:auto;max-width:none;max-height:none;overflow:visible;display:grid;justify-items:center}
.panel-home .mission-rail>.line-dock[hidden]{display:none}
.panel-home .mission-rail>.line-dock.is-collapsed .line-dock-fab{position:relative;display:grid;place-items:center;align-content:center;gap:2px;width:46px;height:58px;min-width:46px;padding:2px;border:1px solid #ffbe5c;border-radius:16px;background:radial-gradient(circle at 35% 20%,#96541d,#21140d 72%);color:#ffe291;box-shadow:inset 0 1px #fff0c066,0 0 10px #f292304d,0 3px 8px #0009}
.panel-home .mission-rail>.line-dock.is-collapsed .line-dock-fab>span{font-size:24px;line-height:1}
.panel-home .mission-rail>.line-dock.is-collapsed .line-dock-fab>b{font:800 9px/1.1 sans-serif;color:#fff7de}
.panel-home .mission-rail>.line-dock.is-collapsed .line-dock-alert{position:absolute;top:-3px;right:-3px}
.panel-home .mission-rail>.line-dock:not(.is-collapsed){position:absolute;right:calc(100% + 6px);top:0;width:min(230px,calc(100vw - 96px));max-height:max(120px,calc(100dvh - 215px));overflow:auto;overscroll-behavior:contain;justify-items:stretch}
@media(min-width:800px){.panel-home .mission-rail>.line-dock.is-collapsed .line-dock-fab{width:64px;height:68px}}

/* 10-06：所有非生活地圖的獨立功能頁統一全螢幕；關閉／返回控制固定右上。 */
.training-screen,.home-screen,.finance-center,.social-dialog{position:fixed!important;z-index:120!important;inset:0!important;width:100vw!important;max-width:none!important;height:100dvh!important;max-height:none!important;margin:0!important;border-radius:0!important}
.training-screen{padding:env(safe-area-inset-top,0) 0 env(safe-area-inset-bottom,0)}
.training-header{top:0;padding-right:max(12px,env(safe-area-inset-right,0));padding-left:max(12px,env(safe-area-inset-left,0));background:linear-gradient(180deg,#17191dfb,#0d1116f7);border-bottom-color:#d8ad4d80}
.training-header [data-training-back]{order:3;margin-left:auto;border-color:#e5bd59;border-radius:18px;background:linear-gradient(160deg,#2d2a22,#101114);color:#ffe29a;font-weight:900}.training-header div{order:1}.training-header>span{order:2}
.home-screen,.finance-center,.social-dialog{padding:76px max(14px,env(safe-area-inset-right,0)) max(24px,env(safe-area-inset-bottom,0)) max(14px,env(safe-area-inset-left,0))!important}
.home-screen>header,.finance-center>header,.social-dialog>header{position:fixed!important;z-index:121!important;top:0!important;left:0!important;right:0!important;width:100vw!important;max-width:none!important;min-height:58px!important;padding:7px max(12px,env(safe-area-inset-right,0)) 7px max(12px,env(safe-area-inset-left,0))!important;transform:none!important;background:linear-gradient(180deg,#17191dfb,#0d1116f7)!important;border-bottom:1px solid #d8ad4d80!important;box-shadow:0 5px 16px #0008}
.home-screen>header,.social-dialog>header{grid-template-columns:minmax(0,1fr) auto auto!important}.finance-center>header{grid-template-columns:minmax(0,1fr) auto!important}
.home-screen>header>div,.social-dialog>header>div,.finance-center>header>div{grid-column:1;grid-row:1}.home-screen>header>span,.social-dialog>header>span{grid-column:2;grid-row:1}.home-screen>header>button,.social-dialog>header>button,.finance-center>header>button{grid-column:3;grid-row:1;min-width:54px!important;margin-left:auto;border-color:#e5bd59!important;border-radius:18px!important;background:linear-gradient(160deg,#2d2a22,#101114)!important;color:#ffe29a!important;font-weight:900}.finance-center>header>button{grid-column:2}
body:has(.training-screen)>.app-shell>.topbar,body:has(.home-screen:not([hidden]))>.app-shell>.topbar,body:has(.finance-center:not([hidden]))>.app-shell>.topbar,body:has(.social-dialog:not([hidden]))>.app-shell>.topbar{visibility:hidden;pointer-events:none}
@media(min-width:800px){.training-content,.home-screen>.home-room,.home-screen>.home-management,.finance-center-body,.social-dialog>.social-scene,.social-dialog>.social-conversation{width:min(100%,1180px);margin-right:auto;margin-left:auto}.home-screen,.finance-center,.social-dialog{padding-right:28px!important;padding-left:28px!important}}

/* 10-06 首頁地圖直接滿版：移除四周深色底板，只保留各顆黑金／彩色圖示。 */
body:has(.panel-home)>.app-shell>.topbar{position:fixed;z-index:44;top:0;left:0;right:0;width:100%;padding-right:max(10px,env(safe-area-inset-right,0));padding-left:max(10px,env(safe-area-inset-left,0));background:transparent;border:0;box-shadow:none;backdrop-filter:none}
body:has(.panel-home)>.app-shell>.progress{position:fixed;z-index:43;top:0;left:0;right:0;background:transparent}
.panel-home .game-intro{height:100dvh!important;min-height:100dvh!important}
@media(min-width:800px){.panel-home .intro-copy{width:100vw;max-width:none;margin:0}.panel-home .character-home-hero{border-radius:0}.mission-rail{right:18px}}
.mission-rail{width:auto;padding:0;border:0;background:transparent;box-shadow:none;backdrop-filter:none}
.emp-note{white-space:normal;overflow-wrap:anywhere;word-break:break-word;max-width:100%;min-width:0} /* v377 招募費說明換行不超出 */
/* 10-06 老闆：電腦橫螢幕首頁地圖不要只裁一條——完整地圖置中，兩側用同圖暗化填滿 */
@media (min-aspect-ratio:5/4){.panel-home .character-home-hero{background:linear-gradient(0deg,#05262cdf,transparent 40%),url('../img/gordon-city-map-land-v549.webp') center/contain no-repeat,linear-gradient(#05121acc,#05121acc),url('../img/gordon-city-map-land-v549.webp') center/cover}}
/* 10-06 老闆：右側 icon 不要有底色（手機、電腦都一樣） */
.mission-rail{background:none;border:0;box-shadow:none;backdrop-filter:none}
.mission-rail button[data-mission-rail],.mission-rail button[data-mission-rail][data-mission-rail]{background:none;border:0;box-shadow:none}
.mission-rail button[data-mission-rail]>b,.mission-rail button[data-mission-rail][data-mission-rail]>b{background:none;text-shadow:0 1px 2px #000,0 0 4px #000}
.mission-rail button[data-mission-rail]>span:not(.mission-rail-art){text-shadow:0 1px 2px #000,0 0 4px #000}
.mission-rail-art img{filter:drop-shadow(0 2px 4px #000c)}
.panel-home .mission-rail .line-dock-fab,.panel-home .mission-rail>.line-dock.is-collapsed .line-dock-fab{background:none;border:0;box-shadow:none}
/* 10-06 老闆：電腦版簽到禮物被左上「T.SGD 車界玩家」標誌擋住——往右移開標誌 */
@media(min-width:800px){.panel-home .signin-card.signin-card{left:136px}}

.ore-sell-qty{width:5.2em;min-height:36px;padding:4px 6px;border-radius:8px;border:1px solid rgba(0,0,0,.25);font:inherit;text-align:right;background:#fff;color:#1b1b1b}

/* 10-08 結算頁深底淺字＋上方返回 */
.result-page .panel,.result-page .panel h3,.result-page .panel p,.result-page .panel b,.result-page .panel small,.result-page .score-ring{color:#eef0f2}.result-page .panel *:not(.btn):not(.btn *){color:#eef0f2!important}.result-page .panel .muted,.result-page .panel .muted *{color:#b9c4c8!important}.result-page .panel .num{color:#f4d27a!important}.result-page .score-ring strong{color:#f4d27a}.result-back{width:auto;min-height:44px;margin:8px 0 10px;position:relative;z-index:2}

/* 10-08 老闆：右側欄產線鈕只剩數字看不出是什麼 → 加產線圖＋「自動生產」字 */
.line-dock-fab .mission-rail-art img{width:28px;height:28px;object-fit:contain;display:block}
.line-dock-fab-name{font:800 10px/1.1 sans-serif;font-style:normal;color:#fff;white-space:nowrap}

/* 10-08 老闆：右側工具列整合成一整塊（共用一個底框）＋最上方隱藏鈕 */
body .panel-home .mission-rail.status-rail{padding:4px!important;border:1px solid rgba(226,184,83,.7)!important;border-radius:16px!important;background:rgba(18,27,31,.78)!important;box-shadow:0 6px 18px rgba(0,0,0,.35)!important;display:flex;flex-direction:column;align-items:center;gap:2px}
body .panel-home .mission-rail.status-rail .status-rail-item,body .panel-home .mission-rail.status-rail>.line-dock{margin:0!important;border:0!important;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important}
body .panel-home .mission-rail.status-rail .status-rail-item+.status-rail-item,body .panel-home .mission-rail.status-rail>.line-dock+.status-rail-items{border-top:1px solid rgba(255,255,255,.12)!important}
.status-rail-toggle{width:100%;min-height:26px;padding:2px 4px;border:0;border-radius:10px;background:rgba(226,184,83,.22);color:#ffe9a8!important;font:800 11px/1.1 sans-serif;cursor:pointer;white-space:nowrap}
.mission-rail.is-tools-hidden>.line-dock,.mission-rail.is-tools-hidden>.status-rail-items{display:none!important}
/* 矮螢幕放不下時整塊內部捲動，不切掉最下面一格 */
body .panel-home .mission-rail.status-rail{max-height:calc(100dvh - 128px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}
/* 10-08 簽到併進右側工具列：收合時是一格圖示；展開時整張卡往左浮出，不撐開工具列 */
body .panel-home .mission-rail.status-rail>.signin-card{position:relative!important;top:auto!important;left:auto!important;max-width:none;margin:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
body .panel-home .mission-rail.status-rail>.signin-card[open]{position:fixed!important;top:56px!important;right:100px;left:auto!important;width:min(340px,calc(100vw - 130px));max-height:calc(100dvh - 72px);overflow:auto;z-index:40;border:1px solid #e1c16c!important;background:#052e34f2!important;box-shadow:0 8px 22px #001b25!important}
.mission-rail.is-tools-hidden>.signin-card{display:none!important}
/* 10-09 v467 老闆：簽到卡展開會蓋住展開中的產線清單（自動生產鈕看不到）→ 產線清單展開時，簽到卡再往左移一格清單寬 */
body .panel-home .mission-rail.status-rail:has(>.line-dock:not(.is-collapsed):not([hidden]))>.signin-card[open]{right:346px;width:min(340px,calc(100vw - 376px))}
/* 10-08 老闆：面板頂列資源（頭像／等級／體力／G 幣…）被切掉還出現捲軸 → 改成放不下就換行、靠右排，不再左右捲 */
body[data-ui-version] .sheet-head .sheet-resource-hud{flex-wrap:wrap!important;justify-content:flex-end!important;row-gap:4px!important;overflow:visible!important;scrollbar-width:none}
body[data-ui-version] .sheet-head .sheet-resource-hud::-webkit-scrollbar{display:none}
/* 10-08 老闆：總部／八站任務卡還是深綠底、標題深字看不到 → 改成跟任務頁一樣的淺色底框 */
body .task-overlay>.task-card{background:linear-gradient(180deg,#f7fbfc,#e8f1f4)!important;border:1px solid #c5dce6!important;color:#25323b}
body .task-overlay>.task-card .task-back{background:#fff!important;color:#173c59!important;border:1px solid #c5dce6!important}
body .task-overlay>.task-card :where(.eyebrow,.task-kicker){color:#a77a12!important}
body .task-overlay>.task-card>:where(p,small),body .task-overlay>.task-card .station-cut-copy,body .task-overlay>.task-card>.task-body>:where(p,small){color:#4a5b66!important}
/* 10-24 老闆「新人區八站介面深綠、字看不見」：淺色卡上的金／灰／白字改深色；卡內原本的深色小面板（訂單、採集點、場景）維持深底，字改回淺色 */
body .task-overlay>.task-card{--muted:#5b6b76;--gold:#8a6100;--green:#1f7a3c}
body .task-overlay>.task-card :is(.process-caption,em,.finance-board b){color:#8a6100!important}
body .task-overlay>.task-card .finance-board .order-estimate b{color:#1f7a3c!important}
body .task-overlay>.task-card :is(.task-feedback,.empty-roster){color:#4a5b66}
body .task-overlay>.task-card .plain-question{color:#1d2a33}
body .task-overlay>.task-card .skill-strip b{color:#1d2a33}
body .task-overlay>.task-card :is(.factory-order,.shipping-order,.operations-order,.supply-route span,.station-lesson,.station-interior-sign,.station-interior-scene,.station-scene-character){--muted:#aeb5bf;--gold:#e2b853;--green:#76dfa0;color:#eef1f4}
body .task-overlay>.task-card :is(.factory-order,.shipping-order,.operations-order,.supply-route span,.station-lesson,.station-interior-sign,.station-interior-scene) :is(em,.task-feedback,.process-caption){color:#e2b853!important}
/* v469 老闆 10-09：產線清單展開後整張被工具列的捲動框切掉（連「自動生產」鈕都看不到）→ 展開時工具列不裁切 */
body .panel-home .mission-rail.status-rail:has(>.line-dock:not(.is-collapsed):not([hidden])){overflow:visible}
.hosp-auto{margin:6px 0 0}.hosp-auto .btn{width:100%}.autopause-note{display:flex;flex-wrap:wrap;align-items:center;gap:8px}

/* 10-09 v479 老闆「生產線放在一個新的 ICON 內」＋「跟工廠與設備合併」：產線清單放「工廠管理」頁上半，照草圖：上方現金卡＋自動生產狀態、工作站清單（機台圖＋名稱＋狀態說明＋狀態標籤）、下方任務／熔爐／礦工三格；下半接原本工廠與設備 */
.panel-home [data-home-panel="dock"] .line-dock-host{display:grid;gap:10px;margin-bottom:14px}
.panel-home [data-home-panel="dock"] .line-dock.line-dock--page{position:static;top:auto;right:auto;left:auto;bottom:auto;width:auto;max-width:none;max-height:none;gap:10px;justify-items:stretch;overflow:visible}
.line-dock-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:14px;background:#fffbea;border:1px solid #d9ab3f;color:#2f2010;box-shadow:0 4px 12px #001b25}
.line-dock-top b{font-size:22px;color:#7a4f00}
.line-dock-top span{font-size:12px;padding:4px 10px;border-radius:999px;background:#e8f3e0;color:#245a1c;white-space:nowrap}
.line-dock-top span[data-halt]{background:#5a2f0f;color:#ffd9b0}
.line-dock-heading{display:flex;align-items:baseline;justify-content:space-between;margin:2px 2px 0;font-size:15px;color:inherit}
.line-dock-heading small{font-size:12px;color:inherit;opacity:.72}
.line-dock--page .line-dock-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.line-dock--page .line-dock-head{grid-template-columns:10px 44px minmax(0,1fr) auto;min-height:58px;padding:8px 10px 11px}
.line-dock--page .line-dock-head b{font-size:14px}
.line-dock-icon{width:44px;height:44px;border-radius:10px;overflow:hidden;background:#0b2427;border:1px solid #587f79}
.line-dock-icon img{width:100%;height:100%;object-fit:contain;display:block;padding:2px;box-sizing:border-box} /* 10-09 v482 透明機台 ICON，整顆顯示不裁 */
.factory-icon{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}
.facility-bay .factory-icon{max-width:120px;margin:auto}
.facility-bay.unbuilt .factory-icon{filter:grayscale(1);opacity:.45}
.facility-blueprint .factory-icon{width:88px;float:left;margin:0 12px 6px 0}
.line-dock-name{display:grid;gap:1px;min-width:0}
.line-dock--page .line-dock-head .line-dock-status{max-width:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.line-dock-tag{font-size:11px;padding:3px 8px;border-radius:999px;background:#efe6cf;color:#4a3306;white-space:nowrap;font-style:normal}
.line-dock-item[data-status=running] .line-dock-tag{background:#e2f1dc;color:#245a1c}
.line-dock-item[data-status=done] .line-dock-tag{background:#fff0bf;color:#6a4300}
.line-dock-item:is([data-status=nomaterial],[data-status=nofunds],[data-status=ready],[data-status=unstaffed],[data-status=unqualified],[data-status=tired]) .line-dock-tag{background:#5a3a14;color:#ffd9b0}
.line-dock-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:4px 0 0}
.line-dock-tiles button{position:relative;display:grid;justify-items:center;gap:3px;min-height:74px;padding:8px 6px;border-radius:12px;border:1px solid #d9ab3f;background:#fffbea;color:#2f2010;font:inherit;font-size:12px;cursor:pointer}
.line-dock-tiles button img{width:34px;height:34px;object-fit:contain}
.line-dock-tiles button b{font-size:12px;color:#7a4f00}
.line-dock-tiles button i{position:absolute;top:4px;right:6px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#ff5a5f;color:#fff;font-size:10px;font-style:normal;line-height:16px;text-align:center}
@media (min-width:900px){.line-dock--page .line-dock-list{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 10-09 v479 工廠管理頁標題：v207-polish 的 section>h3 奶白色在淺底看不清，用更高優先度壓回深色 */
.panel-home .v3-page .line-dock--page h3.line-dock-heading,.panel-home .v3-page .line-dock--page h3.line-dock-heading small{color:#25323b}
/* 10-09 v487 名字欄本來落在 36px 的頭像欄（圖是絕對定位、不佔格），名字會被擠成直排 → 圖片版名單改兩欄：名字＋按鈕 */
.specialist-list.art-list li{grid-template-columns:1fr auto}
.specialist-list.art-list li>b{grid-column:1;grid-row:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.specialist-list.art-list li>small{grid-column:1/-1}
.specialist-list.art-list li .btn{grid-column:2;grid-row:1}
/* 10-09 v492 老闆：商家任務應該全畫面——任務框蓋滿整個螢幕（含頂欄人物卡），不留邊、不圓角；關閉鈕照舊在右上 */
.merchant-scene .street-mission:not([hidden]){top:0;right:0;bottom:0;left:0;width:100%;max-width:none;max-height:none;margin:0;padding:calc(12px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));border:0;border-radius:0;transform:none;box-shadow:none;z-index:130}
.merchant-scene .street-mission:not([hidden]) .street-event-art{max-height:42dvh;aspect-ratio:auto;height:42dvh}
.merchant-scene .street-mission:not([hidden]) .street-answers{max-width:720px;width:100%;margin:0 auto}
.merchant-scene .street-mission:not([hidden]) .npc-dialogue-line,.merchant-scene .street-mission:not([hidden]) .street-mission-head,.merchant-scene .street-mission:not([hidden]) .street-event-art,.merchant-scene .street-mission:not([hidden]) .street-result{width:100%;max-width:720px;margin-left:auto;margin-right:auto}
@media(max-width:380px){.merchant-scene .street-mission:not([hidden]){top:0;max-height:none;padding:calc(12px + env(safe-area-inset-top,0px)) 14px calc(14px + env(safe-area-inset-bottom,0px))}}
body.street-mission-open .topbar{visibility:hidden!important;pointer-events:none!important}
/* 10-09 老闆：深墨綠配色禁止使用——任務框、對話框、事件圖底、故事圖底全改淺色（跟 UI V3 米白一致） */
.merchant-scene .street-mission:not([hidden]) .npc-dialogue-line{background:#f3f7f5;border-color:#cfe0da}
.merchant-scene .street-mission:not([hidden]){background:#fffdf8!important;color:#25323b}
.merchant-scene .street-event-art,.merchant-storybook .ms-art{background:#e9efec;border:1px solid #d3dfda}
.merchant-scene .street-mission:not([hidden]) .npc-dialogue-line{color:#25323b!important}
.merchant-scene .street-mission:not([hidden]) .street-mission-head{grid-template-columns:52px minmax(0,1fr) 44px}

/* 10-09 v493 員工宿舍：淺色（米白／木色／天藍） */
.dorm-section{display:grid;gap:10px}.dorm-tabs{display:flex;gap:6px}.dorm-tab{flex:1;padding:9px 6px;border:1px solid #d9cdb8;border-radius:12px;background:#fbf7ef;color:#5b4a33;font-weight:900;font-size:.86rem}.dorm-tab[aria-selected="true"]{background:#2f8fbf;border-color:#2f8fbf;color:#fff}
.dorm-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.dorm-stats span{display:grid;place-items:center;gap:2px;padding:8px 4px;border-radius:12px;background:#fff8ea;border:1px solid #e6d7bd;color:#5b4a33;text-align:center}.dorm-stats b{font-size:.98rem;color:#1f4f6d}.dorm-stats small{font-size:.66rem;font-weight:800}
.dorm-art{display:block;width:100%;height:auto;aspect-ratio:1672/941;object-fit:cover;border-radius:14px;background:#eef4f8;border:1px solid #d9e4ec}
.dorm-card{display:grid;gap:8px;padding:10px;border-radius:14px;background:#fffdf7;border:1px solid #e6d7bd;color:#3d3020}.dorm-card>b{color:#1f4f6d}.dorm-card .emp-note{margin:0;color:#5b4a33}.dorm-card .emp-money{margin:0;color:#8a5a1a;font-weight:800}
.dorm-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dorm-gallery figure{margin:0}.dorm-gallery figcaption{margin-top:4px;font-size:.74rem;font-weight:800;color:#5b4a33;text-align:center}
.dorm-stage{grid-template-columns:132px minmax(0,1fr);align-items:center}.dorm-stage>div{display:grid;gap:4px}.dorm-stage.current{border-color:#2f8fbf;box-shadow:inset 0 0 0 1px #2f8fbf}.dorm-stage .emp-tag{justify-self:start}
.dorm-res{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px}.dorm-res .emp-tag{margin-left:6px}.dorm-res .emp-fatigue{margin:4px 0 0}
@media(max-width:600px){.dorm-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dorm-stage{grid-template-columns:104px minmax(0,1fr)}.dorm-tab{font-size:.8rem;padding:8px 4px}}

/* 10-10 老闆：自動生產通知不佔版面——右上角小字、不擋操作 */
/* 10-23 老闆：自動手臂結算提示壓住右上角時間／設定／禮包 → 移到畫面下方中間 */
.toast-quiet{position:fixed;bottom:calc(140px + env(safe-area-inset-bottom));left:50%;z-index:120;max-width:60vw;padding:4px 10px;border-radius:999px;background:#101817cc;color:#f3ead2;font-size:12px;line-height:1.5;pointer-events:none;opacity:0;transform:translate(-50%,4px);transition:opacity .25s,transform .25s;}
.toast-quiet.show{opacity:1;transform:translate(-50%,0);}
/* 10-10 v505 黑金／星隕／龍脈礦區 */
.ex-zone.zone-blackgold{border-color:#e0b03a}.ex-zone.zone-starfall{border-color:#7a8cff}.ex-zone.zone-dragonvein{border-color:#2fae8a}.inv-slot.zone-blackgold{border-color:#e0b03a}.inv-slot.zone-blackgold .inv-ore,.inv-slot.zone-blackgold .inv-gear{background:linear-gradient(150deg,#e8e0c8,#6a6458 55%,#1e1e1e)}.inv-slot.zone-starfall{border-color:#7a8cff}.inv-slot.zone-starfall .inv-ore,.inv-slot.zone-starfall .inv-gear{background:linear-gradient(150deg,#eef0ff,#9aa6f0 55%,#2a2e6a)}.inv-slot.zone-dragonvein{border-color:#2fae8a}.inv-slot.zone-dragonvein .inv-ore,.inv-slot.zone-dragonvein .inv-gear{background:linear-gradient(150deg,#e6fff4,#6fd0a8 55%,#1a4a5a)}.ex-zone-card.zone-blackgold .ex-zone-art{background:linear-gradient(160deg,#5a5a5a,#1e1e1e 55%,#c9a227)}.ex-zone-card.zone-starfall .ex-zone-art{background:linear-gradient(160deg,#d8e0ff,#6a78e0 55%,#20245a)}.ex-zone-card.zone-dragonvein .ex-zone-art{background:linear-gradient(160deg,#c8f5e2,#3cae84 55%,#1a3a5a)}
.furnace-v3 .furnace-mine-btns{display:grid;gap:6px}
/* 10-11 v546 公務部門區：淺米底深字、選中金色（老闆規矩：不准深底深字、不用青綠） */
.civic-v1 .civic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin-top:10px}
.civic-v1 .civic-card{display:flex;flex-direction:column;background:#fffaf0;border:1px solid #e3d3b2;border-radius:12px;overflow:hidden;color:#3b2a1a}
.civic-v1 .civic-card>img{width:100%;aspect-ratio:16/9;object-fit:cover;background:#f3e8d3}
.civic-v1 .civic-card>img.civic-car{object-fit:contain;background:#f6efe2}
.civic-v1 .civic-card-body{display:flex;flex-direction:column;gap:6px;padding:10px 12px 12px;flex:1}
.civic-v1 .civic-card h4{margin:0;font-size:15px;color:#3b2a1a}.civic-v1 .civic-card h4 small{font-weight:600;color:#8a6a3a;font-size:11px}
.civic-v1 .civic-card p{margin:0;font-size:13px;line-height:1.5;color:#5a4630}
.civic-v1 .civic-card .civic-acts{color:#8a5a1a;font-weight:600}
.civic-v1 .civic-card.locked>img{filter:grayscale(.75) brightness(.95)}
.civic-v1 .civic-card .btn{margin-top:auto;align-self:flex-start}
.civic-v1 .civic-lock{margin-top:auto;font-size:12px;color:#8a6a3a;background:#f3e8d3;border-radius:999px;padding:3px 10px;align-self:flex-start}
.civic-v1 .civic-shops{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:4px}.civic-v1 .civic-shops small{color:#8a6a3a;font-size:11px;width:100%}
.civic-v1 .civic-shops .btn{margin:0;padding:4px 10px;font-size:12px;min-height:0}
.civic-v1 .civic-rating{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;background:#fff4dc;border:1px solid #e6c77d;border-radius:12px;padding:10px 14px;color:#3b2a1a}
.civic-v1 .civic-rating b{font-size:16px;color:#7a4d10}.civic-v1 .civic-rating small{width:100%;color:#8a6a3a}
.civic-v1 .civic-msg{margin:8px 0 0;padding:8px 12px;border-radius:10px;background:#fff1c9;border:1px solid #e6c77d;color:#5a3a0a;font-weight:600}
.civic-v1 .civic-dest{display:flex;gap:8px;align-items:center;margin:8px 0;color:#3b2a1a;font-weight:600}
.civic-v1 .civic-dest select{padding:6px 10px;border-radius:8px;border:1px solid #d9c49a;background:#fffaf0;color:#3b2a1a}
.civic-v1 .civic-tabs button[aria-selected="true"]{background:#e6b84a;color:#3b2a1a;border-color:#c99a2a}
.civic-v1 .civic-track{position:relative;height:150px;border-radius:12px;overflow:hidden;background:#f3e8d3}
.civic-v1 .civic-track-bg{position:absolute;inset:0;width:200%;height:100%;object-fit:cover}
.civic-v1 .civic-track-car{position:absolute;left:4%;bottom:10%;width:32%;max-width:230px;object-fit:contain;filter:drop-shadow(0 6px 4px #0005)}
.civic-v1 .civic-track.is-running .civic-track-bg{animation:civic-road .35s linear infinite}
.civic-v1 .civic-track.is-running .civic-track-car{animation:civic-run 2.2s ease-in-out forwards}
@keyframes civic-road{to{transform:translateX(-50%)}}
@keyframes civic-run{0%{left:4%}15%{left:10%;transform:translateY(-2px)}50%{left:40%;transform:translateY(1px)}100%{left:64%}}
@media (prefers-reduced-motion:reduce){.civic-v1 .civic-track.is-running .civic-track-bg,.civic-v1 .civic-track.is-running .civic-track-car{animation:none}}
.region-preview .civic-badge{width:64px;height:40px;object-fit:cover;border-radius:8px}
/* 10-11 v572 老闆「戰鬥中的配色要改掉」：戰鬥面板一律淺底深字、選中／主鈕金色（不改場景圖上的血條與浮動標籤） */
.cs-turn-panel.is-player{background:#eef8ef;border:1px solid #6fb184}
.cs-turn-panel.is-monster{background:#fdeeea;border:1px solid #d8796c}
.cs-turn-panel.is-ultimate{background:#fff0e6;border:2px solid #e2552f;box-shadow:0 0 10px #e2552f44}
.cs-turn-player{color:#1f6a3a}.cs-turn-monster{color:#a3291c}.cs-turn-panel.is-ultimate .cs-monster-skill{color:#9a4a00}
.cs-mp{background:#f4f2ff;border:1px solid #b6aee6;color:#2e2a4a}
.ex-cb-monster{background:#fff9ec;border:1px solid #d9b770;color:#3a2a14}
.ex-cb-mhead em{background:#fff3cf;color:#6b4a00;border-color:#d9a730}
.ex-cb-bar i{background:#e6dfd0}
.ex-cb-warn{background:#fdecea;border-color:#d84a3a;color:#8a1d12}
.ex-cb-me{background:#f6f1e4;color:#3a2a14}
.ex-cb-log button,.ex-cb-details summary,.ex-cb-mini{background:#fffaf0;border:1px solid #d9c08a;color:#3a2a14}
.ex-cb-history,.ex-cb-details ul{background:#fffaf0;border:1px solid #eadcb8;color:#3a2a14}
.ex-cb-act.ability-button{background:#f3efff;border:1px solid #8c74e0;color:#3a2a70}
.ex-cb-act.is-retreat{background:#fdeeea;border:1px solid #d8796c;color:#8a2a1c}
.ex-cb-act.is-off,.ex-cb-act.is-off.ability-button,.ex-cb-act.is-primary.is-off,.ex-cb-chip.is-off{background:#efefec;border:1px dashed #a8a8a0;color:#6a6a62}
.ex-cb-chip{background:#eef8ef;border:1px solid #6fb184;color:#1f5a32}
.ex-cb-pause{background:#2a221466}
.ex-cb-pause>div{background:#fffaf0;border:2px solid var(--gold,#e0b84a);color:#3a2a14;box-shadow:0 10px 30px #0003}
.ex-cb-pause .btn{background:#fff;border:1px solid #d9c08a;color:#3a2a14}
.ex-cb-pause .btn[data-ex-resume]{background:#f1c45a;border-color:#c99a2a;color:#2a1c00}
.ex-cb-pause .btn.is-danger{background:#fdeeea;border-color:#d8796c;color:#8a2a1c}
.ex-cb-defeat{background:#fdeeea;border:2px solid #d8503a;color:#5a1a10}
.ex-log{color:#6b4a00}
.ed-block p{margin:3px 0;font-size:.82rem}.ed-block .ed-warn{color:#a23b2a;font-weight:700}.ed-block button{min-height:40px;margin-top:6px;padding:8px 12px;border:1px solid #c49c4b;border-radius:8px;background:#e3bb61;color:#23262c;font-weight:700}.ed-block button:disabled{background:#eee6d2;color:#6b5f48}
/* 10-13 v608 站點故事：淺底深字、主按鈕金色 */
.station-story{margin:10px 0;padding:10px 12px;border:1px solid #e0c98a;border-radius:12px;background:#fffaf0;color:#3a2f1c}
.station-story header{display:flex;justify-content:space-between;align-items:center;gap:8px}
.station-story header span{font-size:13px;letter-spacing:2px;color:#8a6a1f}
.station-story p{margin:6px 0;line-height:1.5}
.station-story small{display:block;color:#6b5a3a;margin-top:4px}
.station-story button{background:#f3c64c;color:#2b2210;border:1px solid #c99a1e;border-radius:8px;padding:5px 12px;font-weight:700;cursor:pointer}
.station-story .station-story-next{display:flex;justify-content:space-between;align-items:center;gap:8px}
.station-story-talk p{background:#fff;border:1px solid #efe1bd;border-radius:8px;padding:6px 8px}
.station-story-talk button{margin-top:4px}
.station-story-done{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px}
.station-story-done small{margin:0}
.station-story .station-story-re{background:#fff;border-color:#e0c98a;font-weight:400;padding:3px 8px;font-size:12px}
.station-story-got{color:#7a5a00;font-weight:700}
.station-story-art{display:block;width:100%;max-width:min(640px,calc(42vh * 16 / 9));aspect-ratio:16/9;object-fit:cover;border-radius:10px;border:1px solid #e0c98a;margin:6px 0 8px;background:#f6ecd2}
/* v609：橫式四站共用卡；數字可換行，瓶頸以金色及文字標示。 */
.production-capacity{background:#FFF9EF;color:#30281F;border:1px solid #C3A35F;border-radius:12px;padding:12px;margin:12px 0;min-width:0}
.production-capacity h3,.production-capacity h4{color:#30281F;margin:0 0 6px}
.production-capacity p,.production-capacity small{color:#655B4D;overflow-wrap:anywhere}
.capacity-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.capacity-grid article{background:#FFFFFF;color:#30281F;border:1px solid #D6C9B4;border-radius:8px;padding:8px;min-width:0}
.capacity-grid article[data-bottleneck=true]{background:#F3D58A;border-color:#A8802D}
.capacity-grid b{color:#30281F;overflow-wrap:anywhere}
.production-capacity .capacity-warning{color:#A34838}
.operations-analytics [data-tone],.ops-board-live [data-tone]{color:#30281F;background:#FFF9EF}
.operations-analytics button[aria-pressed=true]{background:#F3D58A;color:#30281F;border-color:#A8802D}
/* 四站數值在橫式窄高畫面維持緊湊行距，長數字仍可換行。 */
.production-capacity h3{font-size:1rem;line-height:1.35}
.production-capacity h4{font-size:.9rem;line-height:1.35}
.production-capacity p,.production-capacity li{font-size:.82rem;line-height:1.4;margin:4px 0}
.production-capacity small{font-size:.75rem;line-height:1.4}
.production-capacity ul{margin:4px 0;padding-left:20px}

/* v610：ED 八級橫向卡與人工物流操作。 */
.ed-automation{background:#FFF9EF;color:#30281F;padding:12px;border:1px solid #d6bd83;border-radius:10px}.ed-levels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;list-style:none;padding:0}.ed-levels li{display:flex;flex-direction:column;gap:4px;padding:8px;background:#fff;color:#30281F;border:1px solid #d8cbb4;border-radius:8px;overflow-wrap:anywhere}.ed-levels li[aria-current]{background:#F3D58A;border-color:#99702b}.ed-levels span{font-size:.75rem;color:#655B4D}.ed-actions{display:flex;gap:8px;flex-wrap:wrap}

/* 10-18 玩測75號：材料關卡最底部取件點被走動控制列整塊蓋住——容器與說明文字放行點擊（pointer-events:none），只有方向鍵可按；
   並照鐵則改淺底深字（原深青底白字違規） */
.material-movement-controls{pointer-events:none;background:#fdf6e3;border:1px solid #cdbd8a}
.material-movement-controls p{pointer-events:none;color:#2f4a44}
.material-movement-controls button{pointer-events:auto;background:#fffdf4;color:#1f3a36;border:1px solid #b5a774}


/* ===== 10-18 玩測配色修正（只新增規則，不動原行） ===== */
/* 玩測69號：戰鬥勝利面板深青底＋金字 → 淺底深字，金色只留框線 */
body .ex-win{background:#fff7e5!important;border-color:#c89a2e!important;color:#30251a!important}
body .ex-win .ex-win-title,body[data-ui-version="3"] .exploration-v3 .ex-win .ex-win-title{color:#7a5a0e!important;text-shadow:none!important}
body .ex-win-sub,body .ex-win-note,body[data-ui-version="3"] .exploration-v3 .ex-win-note{color:#49331c!important;opacity:1!important}
body .ex-win-list li{background:#fffdf7!important;border-color:#e3cf9b!important;color:#30251a!important}
body[data-ui-version="3"] .exploration-v3 .ex-win-list b{color:#30251a!important}

/* 玩測74號：材料任務選材面板深底深字 → 淺底深字；選中金底深字 */
body .material-source-pick button{background:#fffdf7!important;background-image:none!important;color:#4a3306!important;border:1px solid #c89a2e!important;text-shadow:none!important}
body .material-source-pick button b,body .material-source-pick button span{color:inherit!important}
body .material-source-pick button.active{background:linear-gradient(180deg,#f7dd8f,#e2b84f)!important;color:#3a2600!important;box-shadow:0 0 0 2px #a97f16 inset!important;font-weight:900}
body .material-buy-now{margin:8px 0;padding:10px;border:1px solid #c89a2e;border-radius:12px;background:#fff7e5;color:#30251a}
body .material-buy-now small{display:block;margin-top:6px;color:#5c4a28}
body .material-gathered-note{margin:8px 0;padding:8px 10px;border:1px solid #9bbb7a;border-radius:10px;background:#f2f8e8;color:#2f4a1d;font-weight:700}

/* 玩測68號：「營運與生活」header 深青底白字 → 淺底深字（v561 已改底，這裡補子元素字色與編號章） */
body[data-ui-version="3"] [data-home-panel="more"] .system-directory-head{background:#fff7e5!important;box-shadow:none!important}
body[data-ui-version="3"] [data-home-panel="more"] .system-directory-head small{color:#8a6a1e!important}
body[data-ui-version="3"] [data-home-panel="more"] .system-directory-head h3{color:#30251a!important}
body[data-ui-version="3"] [data-home-panel="more"] .system-directory-head>span{background:#fffdf7!important;border-color:#c89a2e!important;color:#49331c!important}
body[data-ui-version="3"] [data-home-panel="more"] .system-directory-icon{background:#f7ecd2!important;color:#7a5a0e!important}

/* 玩測59號同類：結算頁成績格深底金字 → 淺底深字（canvas 分享圖另案，CSS 管不到） */
body .score-card{background:#fff7e5;border-color:#c89a2e;color:#30251a}
body .score-card strong{color:#7a5a0e}
body .score-ring{background:#fff7e5;color:#30251a}

/* v632：幸運廣場使用淺底深字與金色選中狀態。 */
body .cd-box .qc-card,body .cd-box .staff-section,body .cd-box .cd-grid span{background:#fff4dc;color:#30251a;border-color:#d4ba80}
body .cd-box :is(h3,p,b,small){color:#30251a}
body .cd-box .cd-grid span.hit,body .cd-box [aria-pressed="true"]{background:#f1ce76;color:#382908;border-color:#a47a24}
body .cd-box .cd-msg{color:#765312}
body .cd-box .btn{background:#fff4dc;color:#30251a;border-color:#d4ba80}
body .cd-box .btn.primary,body .cd-box .ce-steps .now{background:#f1ce76;color:#382908;border-color:#a47a24}
body .cd-box .ce-steps .done{color:#765312}

/* v633: fit the entire gathering world inside narrow scenes. */
.ex-scene.zone-scene{container-type:inline-size;min-width:0;max-width:100%}
@container (max-width:680px){
  .ex-scene.zone-scene .ex-walk-world{width:100%!important;height:100%!important;left:0!important;top:0!important}
}
@media(max-width:680px){
  .world-game{position:fixed;inset:calc(68px + env(safe-area-inset-top,0px)) 0 0;height:auto;width:auto;min-height:0;margin:0;max-width:100vw;box-sizing:border-box}
  .world-game .action-button{right:max(16px,env(safe-area-inset-right,0px));bottom:max(38px,env(safe-area-inset-bottom,0px));max-width:calc(100% - 32px);box-sizing:border-box}
}
/* Keep the repair card inside its overlay and scroll to its last action. */
.world-game .repair-task-overlay{position:absolute;inset:0;min-height:0;grid-template-rows:minmax(0,1fr);align-items:stretch;overflow:hidden}
.world-game .repair-task-overlay>.task-card{min-height:0;max-height:100%!important;box-sizing:border-box;overflow-y:auto!important;touch-action:pan-y;padding-bottom:32px;background:#fff8ec!important;color:#352919}

/* v633b: nested cards must allow vertical wheel chaining to their panel. */
body .player-sheet :is([data-home-panel="dock"],[data-home-panel="quests"]) *,body .world-game .task-card *{overscroll-behavior-y:auto!important}
body .player-sheet .sheet-scroll,body .world-game .task-card{overflow-anchor:none}
body[data-ui-version="3"] .vehicle-pick button.awaiting-build{background:#fff8ec!important;color:#352919!important;border-color:#b68b34!important;filter:none;opacity:1}
body[data-ui-version="3"] .vehicle-pick button.awaiting-build .route-action{background:#ead39a;color:#352919}

/* v640: reward-only light palette and HUD-adjacent entries. */
body .cd-wrap .qc-card, body .cd-box, body .cd-prompt {background:#fffaf0;color:#30251a;border:1px solid #c8a258;color-scheme:light}
body .cd-wrap .cd-grid span {background:#fff1d5;color:#30251a;border:1px solid #d5b77c;border-radius:10px;padding:8px;font-size:13px}
body .cd-wrap .cd-grid span.hit {background:#f6cf65;color:#382704;border:2px solid #9c6b0a;box-shadow:0 0 0 2px #ffe8a4}
body .cd-wrap small, body .cd-wrap .cd-msg {color:#554022;opacity:1}
body .cd-wrap .btn, body .cd-box .btn, body .cd-prompt button {background:#ffe3a1;color:#382704;border:1px solid #9c6b0a;min-height:40px;border-radius:10px;padding:6px 14px;font-weight:700}
body .cd-wrap .btn:disabled {background:#eee3cf;color:#635440}
.cd-disc {width:112px;height:112px;display:grid;place-items:center;margin:8px auto;border-radius:50%;border:7px solid #bd841c;box-shadow:0 0 0 4px #ffe6a1;background:conic-gradient(#ffe7a2 0deg 45deg,#f7ba6b 45deg 90deg,#fff3da 90deg 135deg,#eaa65e 135deg 180deg,#ffe7a2 180deg 225deg,#f7ba6b 225deg 270deg,#fff3da 270deg 315deg,#eaa65e 315deg);font-size:42px;color:#603c0b}
body .cd-box {width:min(1040px,100%);max-height:calc(100dvh - 24px);padding:12px}
body .cd-modal {padding:12px}
body .cd-box .cd-wrap {grid-template-columns: minmax(300px,1.2fr) minmax(0,1fr);align-items:start}
body .cd-box .cd-wheel {grid-row:span 2;margin:0;padding:12px}
body .cd-box .cd-daily,body .cd-box .cd-route {margin:0;padding:10px;max-height:270px;overflow:auto}
body .cd-wheel h3 {margin:0 0 6px;color:#30251a}
body .cd-wheel p {margin:8px 0}
.cd-prompt {max-width:calc(100vw - 32px);border-radius:18px;padding:24px;box-shadow:0 12px 60px #30251a55}
.cd-prompt::backdrop {background:#241a1266}
.cd-prompt h2 {font-size:20px;color:#30251a}
.cd-prompt button+button {margin-left:12px}
body .daily-reward-entries {position:fixed;z-index:45;display:flex;align-items:flex-start;gap:6px;width:max-content;max-width:calc(100vw - 16px);color:#30251a}
body .daily-reward-entries[hidden] {display:none}
body .daily-reward-entries > button,body .daily-reward-entries > details:not([open]),body .daily-reward-entries > details > summary {position:relative!important;inset:auto!important;transform:none!important;width:66px!important;height:62px!important;min-width:0!important;margin:0!important;padding:4px!important;border:1px solid #bc8c32!important;border-radius:12px!important;background:#fff0c9!important;color:#382704!important;box-shadow:0 3px 8px #60401426;cursor:pointer}
body .daily-reward-entries > button,body .daily-reward-entries > details > summary {display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:0;list-style:none}
body .daily-reward-entries > button > span {font-size:27px;line-height:32px}
body .daily-reward-entries :is(.signin-gift,.quest-icon) {width:30px;height:30px;animation:none}
body .daily-reward-entries :is(b,.signin-entry-label) {display:block!important;font-size:11px!important;line-height:1.15;white-space:normal;text-align:center}
body .daily-reward-entries .signin-dot {position:absolute;right:2px;top:2px;width:10px;height:10px;border-radius:50%;background:#da2633;border:2px solid white;box-shadow:0 0 0 1px #b51f2a}
body .daily-reward-entries > details[open] {position:fixed!important;inset:90px auto auto 12px!important;transform:none!important;width:min(560px,calc(100vw - 24px))!important;max-height:calc(100dvh - 170px);overflow:auto;background:#fffaf0!important;color:#30251a!important;border:2px solid #bc8c32;border-radius:12px;padding:10px!important;z-index:50}
body .daily-reward-entries > details[open] :is(p,small,b) {color:#30251a}
/* v645：頂欄空白處不擋下方每日轉盤／禮包入口 */
body:has(.daily-reward-entries:not([hidden])) .topbar {pointer-events:none}
body:has(.daily-reward-entries:not([hidden])) .topbar > * {pointer-events:auto}
body .daily-reward-entries .signin-entry-label {font-size:10px!important}
@media (orientation:landscape) and (max-height:500px) {
 body .cd-box {padding:8px;overflow:hidden}
 body .cd-box .cd-wrap {grid-template-columns:minmax(390px,1.4fr) minmax(0,1fr);gap:8px}
 body .cd-box .cd-wheel {grid-row:span 2;padding:8px;position:relative;min-height:265px}
 body .cd-box .cd-disc {position:absolute;right:14px;top:4px;width:56px;height:56px;border-width:4px;font-size:24px;margin:0}
 body .cd-box .cd-wheel h3 {padding-right:70px;min-height:46px}
 body .cd-box .cd-grid {margin:2px 0;gap:4px}
 body .cd-box .cd-grid span {font-size:11px;padding:4px}
 body .cd-box .cd-wheel p {font-size:12px;margin:5px 0}
 body .cd-box .cd-daily,body .cd-box .cd-route {max-height:130px;font-size:12px}
 body .cd-box .cd-close {min-height:32px;margin-bottom:4px;padding:3px 12px}
}
@media (max-width:600px) and (orientation:portrait) {
 body .cd-box .cd-wrap {grid-template-columns:1fr}
 body .cd-box .cd-disc {width:76px;height:76px;font-size:30px}
}
body .daily-reward-entries .signin-entry-label {color:#382704!important}
body .daily-reward-entries details .line-dock-btn {background:#ffe3a1;color:#382704;border-color:#9c6b0a}
body .daily-reward-entries details .signin-days li {background:#fff0d5;color:#382704;border-color:#d5b77c}
body .daily-reward-entries details .signin-days li.today {background:#f6cf65;color:#382704}
body:has(.player-sheet:not([hidden])) .daily-reward-entries,body:has(#life-map-screen:not([hidden])) .daily-reward-entries {visibility:hidden;pointer-events:none}
body .daily-reward-entries .signin-dot {display:block}
/* Override legacy shared card gradients only inside the daily plaza. */
body .cd-wrap .qc-card {background:#fffaf0!important;background-image:none!important;color:#30251a!important;border:1px solid #c8a258!important;box-shadow:0 3px 10px #6b48151a!important}
body .cd-wrap .qc-card :is(h3,p,small,li,.cd-msg) {color:#30251a!important}
body .cd-wrap .qc-card .ce-steps .now {background:#f6cf65!important;color:#382704!important}
body .cd-wrap .qc-card .ce-steps .done {background:#fff0cb!important;color:#67430c!important}
body .cd-wrap .cd-grid span.hit {background:#f6cf65!important;color:#382704!important}
/* v642 — plaza cards, segmented wheel and readable prize rows. */
body .cd-box {width:min(1180px,100%);padding:12px;border-radius:24px;background:#edf1f8;overflow:auto;max-height:calc(100dvh - 16px)}
body .cd-modal {padding:8px;background:#18334e80}
body .cd-wrap,body .cd-box .cd-wrap {display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:12px;align-items:stretch}
body .cd-wrap *,body .cd-box {box-sizing:border-box}
body .cd-wrap .qc-card,body .cd-box .cd-wrap .qc-card {min-width:0;min-height:0;margin:0;padding:14px;border-radius:20px;background:#fff!important;color:#18334e!important;border:1px solid #d8e0e9!important;box-shadow:0 5px 14px #243d5a26!important;max-height:none;overflow:visible}
body .cd-wrap .cd-wheel {grid-row:span 2;position:static}
body .cd-wrap .qc-card h3 {padding:8px 12px;margin:0 0 10px;min-height:0;border-radius:18px;background:linear-gradient(110deg,#286294,#173c68);color:white!important;font-size:17px;line-height:1.4;overflow-wrap:anywhere}
body .cd-wrap .qc-card :is(p,small,li,.cd-msg) {color:#18334e!important;opacity:1;white-space:normal;overflow-wrap:anywhere}
body .cd-wrap .qc-card p {margin:8px 0;line-height:1.45}
body .cd-wrap .qc-card small {display:block;font-size:12px;line-height:1.4}
body .cd-wrap .ce-steps {font-size:14px;line-height:1.4;margin:6px 0;padding-left:22px;gap:4px}
body .cd-wrap .ce-steps li {min-width:0;height:auto;white-space:normal}
body .cd-wrap .ce-steps .done {text-decoration:none;opacity:1}
body .cd-wrap .cd-route-list {list-style:none;padding:0}
body .cd-wrap .cd-route-list li {display:flex;align-items:center;justify-content:space-between;gap:8px;padding:3px 6px;border-radius:8px;background:#edf1f8}
body .cd-wrap .btn,body .cd-box .btn {min-height:36px;width:auto;border:1px solid #bd9137;border-radius:12px;padding:6px 12px;background:linear-gradient(#fff7c7,#f4c44f);color:#493513;font-size:14px;line-height:1.25;white-space:normal;flex-shrink:0;box-shadow:0 2px 0 #b98624}
body .cd-wrap .btn:focus-visible,body .cd-box .btn:focus-visible {outline:3px solid #205789;outline-offset:3px}
body .cd-box .cd-close {margin:0 0 8px auto;min-height:32px;padding:5px 16px}
.cd-wheel-body {display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:14px}
.cd-wheel-stage {position:relative;aspect-ratio:1;min-width:0;width:100%;margin:10px 0}
body .cd-wrap .cd-disc,body .cd-box .cd-disc {position:static;display:block;width:100%;height:100%;margin:0;border:0;border-radius:50%;background:none;box-shadow:0 5px 16px #bd913733;font-size:inherit;overflow:visible}
.cd-pointer {position:absolute;top:-8px;left:calc(50% - 12px);z-index:2;width:24px;height:28px;background:#173c68;clip-path:polygon(0 0,100% 0,50% 100%);filter:drop-shadow(0 2px 1px #fff)}
body .cd-wrap .cd-spin {position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:24%;height:24%;padding:0;border-radius:50%;border:3px solid white;font-size:24px;font-weight:900;box-shadow:0 3px 0 #b98624,0 0 12px #fff0b2}
body .cd-wrap .cd-spin:disabled {background:#eee3cf;color:#635440}
.cd-prizes {list-style:none;margin:0;padding:0;display:grid;gap:4px}
body .cd-wrap .cd-prizes li {display:grid;grid-template-columns:22px minmax(0,1fr) 32px;gap:5px;align-items:center;padding:6px 4px;border-bottom:1px solid #d8e0e9;font-size:13px;line-height:1.35;border-radius:6px}
body .cd-wrap .cd-prizes li.hit {background:#fff0b2;border-color:#bd9137;font-weight:700}
body .cd-wrap .cd-prizes small {text-align:right;font-variant-numeric:tabular-nums}
.cd-wheel-meta {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;background:#fff4d3;border-radius:12px;padding:10px;margin:8px 0}
.cd-result-shade {position:fixed;inset:0;z-index:9010;background:#18334e80;display:grid;place-items:center;padding:16px}
.cd-result {width:min(380px,100%);max-height:calc(100dvh - 32px);overflow:auto;text-align:center;background:white;border:3px solid #f4c44f;border-radius:24px;padding:24px;box-shadow:0 15px 60px #18334e55;color:#18334e}
.cd-result-icon {font-size:48px}.cd-result h4 {font-size:22px;margin:12px 0 20px;line-height:1.5;overflow-wrap:anywhere}
@media (orientation:landscape) and (max-height:500px) {
 body .cd-box {padding:8px;border-radius:18px}
 body .cd-wrap,body .cd-box .cd-wrap {grid-template-columns:minmax(0,1.9fr) minmax(0,.8fr) minmax(0,1.1fr);gap:8px}
 body .cd-wrap .cd-wheel,body .cd-box .cd-wheel {grid-row:auto;min-height:0}
 body .cd-wrap .qc-card,body .cd-box .cd-wrap .qc-card {padding:8px;font-size:12px}
 body .cd-wrap .qc-card h3 {font-size:13px;padding:6px 8px;margin-bottom:6px}
 body .cd-wrap .qc-card small {font-size:10px}
 body .cd-wrap .ce-steps {font-size:11px;gap:3px}
 body .cd-wrap .qc-card p {margin:5px 0;line-height:1.35}
 body .cd-wrap .btn {font-size:12px;min-height:30px;padding:4px 8px}
 body .cd-wrap .cd-route-list li {padding:2px 4px;gap:4px}
 .cd-wheel-body {grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:8px}
 body .cd-wrap .cd-prizes li {font-size:11px;padding:4px 2px;grid-template-columns:17px minmax(0,1fr) 26px;gap:3px}
 .cd-prizes {gap:2px}.cd-wheel-meta {padding:6px;margin:6px 0}
 body .cd-wrap .cd-spin {font-size:20px;min-height:0;padding:0}
}
@media (max-width:600px) and (orientation:portrait) {
 body .cd-wrap,body .cd-box .cd-wrap {grid-template-columns:1fr}
 body .cd-wrap .cd-wheel {grid-row:auto}
}
body .cd-wrap.cd-wrap .qc-card.qc-card > h3 {color:#fff!important}
body .cd-wrap .cd-route-list .btn {min-height:30px;padding:4px 10px}
@media (orientation:landscape) and (max-height:500px) {
 body .cd-wrap .cd-route-list .btn {min-height:26px;padding:3px 8px;font-size:11px}
 body .cd-wrap .cd-route-list {gap:2px}
 body .cd-wrap .cd-route-list li {padding:1px 4px}
 body .cd-wrap .cd-route .ce-credit {font-size:9px;line-height:1.3}
}
@media (orientation:landscape) and (max-height:500px) {
 body .cd-wrap .cd-prizes li {padding:2px;font-size:11px;line-height:1.3}
 body .cd-wrap .cd-wheel-stage {max-width:184px;justify-self:center;margin:8px 0}
 body .cd-wrap .cd-wheel > small {font-size:10px;line-height:1.3;margin:0}
}
@media (orientation:landscape) and (max-height:500px) {
 body .cd-wrap .cd-wheel-stage {margin:8px 0 0}
 body .cd-wrap .cd-wheel-meta {margin:4px 0;padding:5px 6px}
}
/* v710 員工能力雷達圖：淺底深字、產線藍／職務紫、專長莓紅 */
.emp-radars{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px}
.emp-radar{margin:0;background:var(--radar-surface,#f0f7ff);border:1px solid var(--radar-edge,#b8d4f0);border-radius:10px;padding:4px 4px 6px;text-align:center}
.emp-radar svg{width:100%;height:auto;display:block}
.emp-radar .rg{fill:none;stroke:var(--radar-grid,#bacde2);stroke-width:1}
.emp-radar .rv{fill:var(--radar-fill,rgba(47,134,221,.24));stroke:var(--radar-accent,#2465a6);stroke-width:2;stroke-linejoin:round}
.emp-radar text{font-size:10px;fill:#21334b;font-weight:600}
.emp-radar text.hot{fill:#ac2455;font-weight:800}
.emp-radar figcaption{font-size:12px;font-weight:700;color:var(--radar-accent,#2465a6)}
.emp-radar figcaption small{display:block;font-weight:400;color:#53647a;font-size:10px}
.emp-radar svg{max-width:150px;margin:0 auto}
.emp-radar text{font-size:12px}
.emp-radar ul{list-style:none;margin:4px 0 0;padding:0 4px;display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:1px 8px;text-align:left}
.emp-radar li{display:flex;align-items:center;gap:4px;font-size:11px;color:#21334b;min-width:0}
.emp-radar li i{font-style:normal;color:var(--radar-accent,#2465a6);width:14px;text-align:center}
.emp-radar li b{margin-left:auto;font-variant-numeric:tabular-nums}
.emp-radar li.hot{color:#ac2455;background:#ffe6ef;font-weight:800}
.emp-radars>.emp-radar:nth-child(2){--radar-surface:#f7f2ff;--radar-edge:#d4c3ee;--radar-grid:#d2c6e4;--radar-fill:rgba(139,92,207,.24);--radar-accent:#7546ad}
.emp-radar li.hot i{color:#ac2455}
/* 10-22 廠區擴建：三頁不捲動，淺底深字、選中金色、主鈕天藍 */
.factory-space .fs-tabs{display:flex;gap:6px;margin:4px 0 8px}
section.factory-space .fs-tabs button{box-shadow:none;flex:1;min-height:40px;border-radius:10px;border:1.5px solid #d9c27a;background:#fffaf0;color:#2d2416;font-weight:700}
section.factory-space .fs-tabs button[aria-pressed="true"]{background:#e8b84a;border-color:#9c7420}
.factory-space .fs-yard{display:flex;gap:10px;align-items:center}
.factory-space .fs-pic{position:relative;margin:0;width:52%;flex:none}
.factory-space .fs-pic img{width:100%!important}
.factory-space .fs-chips{position:absolute;left:4px;right:4px;bottom:4px;display:flex;flex-wrap:wrap;gap:3px}
.factory-space .fs-chip{font-size:11px;font-weight:800;padding:1px 6px;border-radius:999px;background:#fffaf0;color:#2d2416;border:1px solid #d9c27a}
.factory-space .fs-chip.ok{background:#e3f6e0;border-color:#5aa64e;color:#1f5a17}
.factory-space .fs-chip.warn{background:#fff1c9;border-color:#d9a326;color:#6b4a06}
.factory-space .fs-chip.bad{background:#ffe0dc;border-color:#d0574a;color:#8a1f14}
.factory-space .fs-build{margin:6px 0 0;padding:4px 8px;border-radius:8px;background:#fff1c9;border:1px solid #d9a326;color:#6b4a06;font-weight:800;font-size:12px}
section.factory-space .fs-rush{box-shadow:none;margin-top:6px;min-height:32px;padding:2px 10px;border-radius:999px;border:1.5px solid #d9c27a;background:#fffaf0;color:#2d2416;font-weight:700;font-size:12px}
section.factory-space .fs-rush[aria-pressed="true"]{background:#f3d591;border-color:#b88836}
.factory-space .fs-sol-h{display:block;margin:8px 0 4px;color:#2d2416}
.factory-space .fs-sol{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
section.factory-space .fs-sol button{box-shadow:none;min-height:44px;border-radius:10px;border:1.5px solid #d9c27a;background:#fffaf0;color:#2d2416;font-weight:700;display:flex;flex-direction:column;font-size:12px}
section.factory-space .fs-sol button[aria-pressed="true"]{background:#f3d591;border-color:#b88836}
section.factory-space .fs-sol button:disabled{opacity:.55}
.factory-space .fs-yard img{width:52%;max-height:150px;object-fit:contain;border-radius:12px;background:#f6f0e2}
.factory-space .fs-yard>div{display:flex;flex-direction:column;gap:4px;flex:1;color:#2d2416}
section.factory-space .btn small{display:block;font-weight:500}
.factory-space .fs-why,.factory-space .fs-note{color:#a5452a;font-weight:700}
.factory-space .fs-max{color:#6b5420;font-style:normal;font-weight:700}
.factory-space .fs-slots p{margin:0 0 6px;display:flex;flex-direction:column;color:#2d2416}
.factory-space .fs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(14px,1fr));gap:3px;margin-bottom:8px}
.factory-space .fs-grid i{aspect-ratio:1;border-radius:3px;background:#e6e1d6;border:1px solid #cfc6b3}
.factory-space .fs-grid i.open{background:#bfe3fa;border-color:#3aa6e8}
.factory-space .fs-grid i.used{background:#e8b84a;border-color:#9c7420}
.factory-space .fs-park{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.factory-space .fs-park article{background:#fff;border:1.5px solid #d9e6f0;border-radius:12px;padding:6px;display:flex;flex-direction:column;gap:2px;color:#2d2416}
.factory-space .fs-park article.short{border-color:#e07a5f;background:#fff4ef}
.factory-space .fs-park em{color:#a5452a;font-style:normal;font-weight:700}
.factory-space .fs-park .btn{min-height:40px;font-size:14px}
.factory-space .fs-cost p{margin:0 0 6px;display:flex;flex-direction:column;gap:2px;color:#2d2416}
.factory-space .fs-owe{color:#a5452a}
.factory-space .fs-buys{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.factory-space .fs-buys .btn{min-height:44px;display:flex;flex-direction:column}
body[data-ui-version] #app#app#app section.factory-space .fs-tabs button{background:#fffaf0!important;color:#2d2416!important;border-color:#d9c27a!important}
body[data-ui-version] #app#app#app section.factory-space .fs-tabs button[aria-pressed="true"]{background:#f3d591!important;color:#49361f!important;border-color:#b88836!important}
/* v657：戰鬥畫面不捲動——上方怪物／自己兩欄、區塊不出捲軸，矮螢幕場景縮小、次要提示收起 */
@media(orientation:landscape){
body[data-ui-version="3"] #app .player-sheet.is-combat .ex-panel.is-combat>.ex-cb-top{display:grid!important;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)!important;gap:2px 8px!important;align-items:center!important;overflow:hidden!important}
body[data-ui-version="3"] #app .player-sheet.is-combat .ex-panel.is-combat>.ex-cb-top>*{margin:0!important;min-width:0!important}
body[data-ui-version="3"] #app .player-sheet.is-combat .ex-panel.is-combat>.ex-cb-top .ex-cb-monster{padding:0!important;gap:2px!important}
body[data-ui-version="3"] #app .player-sheet.is-combat .ex-panel.is-combat>.ex-cb-top .ex-cb-mhead{display:flex!important;flex-wrap:nowrap!important;gap:6px!important;align-items:baseline!important;white-space:nowrap!important;overflow:hidden!important;font-size:11px!important;line-height:1.3!important;margin:0!important}
body[data-ui-version="3"] #app .player-sheet.is-combat .ex-panel.is-combat>.ex-cb-top .ex-cb-mhead>*{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;flex:0 1 auto!important}
body[data-ui-version="3"] #app .player-sheet.is-combat .ex-panel.is-combat>.ex-cb-top .ex-cb-bar.is-mp{height:12px!important;min-height:0!important;margin:0!important;font-size:10px!important;line-height:12px!important}
body[data-ui-version="3"] #app .player-sheet.is-combat .ex-panel.is-combat>:is(.ex-cb-mid,.ex-cb-bottom){overflow:hidden!important}
}
@media(orientation:landscape) and (max-height:500px){
body[data-ui-version="3"] #app .player-sheet.is-combat .ex-panel.is-combat>.ex-cb-mid{gap:4px!important}
body[data-ui-version="3"] #app .player-sheet.is-combat .ex-panel.is-combat .ex-hud>.cs-stage{height:150px!important;min-height:0!important}
body[data-ui-version="3"] #app .player-sheet.is-combat .ex-panel.is-combat>.ex-cb-mid>:is(.miner-warn,.emp-money){display:none!important}
}
@media(orientation:landscape) and (min-height:501px){
body[data-ui-version="3"] #app .player-sheet.is-combat .ex-panel.is-combat .ex-hud>.cs-stage{max-height:calc(100dvh - 330px)!important;min-height:0!important}
}

/* 10-23 BSD 零件小圖 */
.growth-parts{display:flex;gap:3px;margin:2px 0}.growth-parts img{width:26px;height:26px;object-fit:contain;background:#fff;border:1px solid #e3d7a8;border-radius:6px}
.vehicle-thumb.has-art{background:none!important}.vehicle-thumb.has-art::before,.vehicle-thumb.has-art::after{display:none!important}.vehicle-thumb.has-art img{width:100%;height:100%;object-fit:contain}
/* 10-25 老闆「站點故事分頁沒有下一步」：橫式畫面改左右排（左插圖、右對話＋按鈕），整區一頁放得下、不再被拆到第 2、3 頁 */
@media (orientation:landscape){
  .station-story-talk{display:grid;grid-template-columns:minmax(0,46%) minmax(0,1fr);column-gap:12px;align-items:start;align-content:start}
  .station-story-talk>.station-story-art{grid-column:1;grid-row:1/span 8;width:100%;max-width:none;max-height:min(46vh,calc((100vw - 40px) * .46 * 9 / 16));margin:0}
  .station-story-talk>:not(.station-story-art){grid-column:2;min-width:0}
  .station-story-talk>b{margin-top:2px}
  .station-story-talk>p{margin:4px 0}
  .station-story-talk>button{justify-self:start}
}
/* 10-30 員工福利頁：淺底深字、多色層次（暖白卡＋金框＋狀態彩標），圖不縮 */
html body #app#app#app [data-staff-section="welfare"]>h3{color:#3a2600!important;border-left:5px solid #f5b83d!important;padding-left:8px!important}
html body #app#app#app [data-staff-section="welfare"]>.emp-note{background:#eef7ff!important;color:#24425e!important;border:1px solid #b9d8f3!important;border-radius:10px!important;padding:6px 10px!important}
html body #app#app#app [data-staff-section="welfare"] article.welfare-card{background:linear-gradient(180deg,#fffdf6,#fff4dc)!important;color:#3a2a14!important;border:1.5px solid #e2b85a!important;border-radius:14px!important;box-shadow:0 2px 6px #c8963a33!important}
html body #app#app#app [data-staff-section="welfare"] .welfare-card .welfare-art{background:radial-gradient(circle at 50% 50%,#ffffff 0,#fdf0d2 70%,#f6e2b4 100%)!important;border:1px solid #ecd39a!important;border-radius:10px!important}
html body #app#app#app [data-staff-section="welfare"] .welfare-card .emp-head b{color:#3a2600!important}
html body #app#app#app [data-staff-section="welfare"] .welfare-card .emp-tag{background:#e3f6e6!important;color:#1d6b33!important;border:1px solid #9fd8ad!important;border-radius:999px!important}
html body #app#app#app [data-staff-section="welfare"] .welfare-benefit{color:#a14a00!important;background:#fff0d6!important;border-radius:8px!important;padding:3px 6px!important;font-weight:800!important}
html body #app#app#app [data-staff-section="welfare"] .welfare-card :is(p,summary,label,details){color:#4a3a22!important}
html body #app#app#app [data-staff-section="welfare"] .welfare-card .btn:not(.ghost):not(:disabled){background:linear-gradient(180deg,#ffe08a,#f5b83d)!important;color:#3a2600!important;border:1px solid #d79a1e!important}
html body #app#app#app [data-staff-section="welfare"] .welfare-card .btn:disabled{background:#eceae4!important;color:#7a7468!important}
/* 10-30 玩家 3D：畫布蓋住 2D 圖，讀好才藏 2D */
.material-walker .hero-3d-canvas{position:absolute;left:50%;bottom:-20%;width:150%;height:auto;transform:translateX(-50%);pointer-events:none}
.material-walker.has-hero-3d>i{visibility:hidden}
.cs-player .hero-3d-canvas{position:absolute;left:50%;bottom:0;height:100%;width:auto;transform:translateX(-50%);pointer-events:none;z-index:3}
.cs-player.has-hero-3d>img[data-f],.cs-player.has-hero-3d .cs-tint,.cs-player.has-hero-3d .cs-held,.cs-player.has-hero-3d .cs-stack,.cs-player.has-hero-3d>.cs-frames{visibility:hidden}
/* 10-30 守路的怪：站在礦點上，碰到就開打 */
.ex-guard{position:absolute;z-index:7;transform:translate(-50%,-78%);display:flex;flex-direction:column;align-items:center;pointer-events:none;animation:ex-guard 1.4s ease-in-out infinite}
.ex-guard img{width:64px;height:64px;object-fit:contain;filter:drop-shadow(0 3px 4px rgba(0,0,0,.55))}
.ex-guard span{margin-top:-4px;padding:1px 8px;border-radius:999px;background:#fff;color:#b42318;border:2px solid #e5484d;font-size:12px;font-weight:800;white-space:nowrap}
@keyframes ex-guard{50%{transform:translate(-50%,-84%)}}
@media (prefers-reduced-motion:reduce){.ex-guard{animation:none}}
