/* V52: Worker Survival Center; fixed above the game so no invisible canvas intercepts touches. */
.oe-modal[hidden]{display:none!important}.oe-modal{position:fixed;z-index:2147483000;inset:0;display:flex;align-items:center;justify-content:center;padding:12px;background:rgba(38,25,63,.85);color:#4d385e;touch-action:pan-y}.oe-sheet{width:min(100%,420px);max-height:92vh;max-height:92dvh;overflow:auto;overscroll-behavior:contain;background:#fff7e7;border:4px solid #644d82;border-radius:26px;box-shadow:0 12px 0 #332849;padding:17px 14px 22px;text-align:center}.oe-modal h2{font-size:23px;color:#61417d;line-height:1.22;margin:4px 0 8px}.oe-modal p{font-size:12px;line-height:1.55;margin:7px 0;color:#795e82}.oe-shop-head{display:flex;align-items:flex-start;justify-content:space-between;text-align:left}.oe-shop-head small{font-weight:900;letter-spacing:1.6px;color:#b17fba;font-size:10px}.oe-shop-head button{background:#eee0f3;border:0;border-radius:50%;width:39px;height:39px;font-size:19px;color:#60436d}.oe-balance{margin:12px 0;background:#f8e797;border-radius:16px;padding:12px;font-weight:900}.oe-balance strong{font-size:26px;margin-left:8px;color:#bb4f86}.oe-balance span{display:block;font-size:10px;color:#8a6e6b;margin-top:2px}.oe-shop-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.oe-product{background:#fff;border:2px solid #e7d5ef;border-radius:18px;padding:11px 8px;display:flex;align-items:center;flex-direction:column;gap:5px}.oe-product-symbol{font-size:29px;background:#fff2be;border-radius:14px;width:66px;height:52px;display:flex;align-items:center;justify-content:center}.oe-product b{font-size:13px}.oe-product p{margin:0;min-height:57px;font-size:11px}.oe-count{font-size:11px;color:#765589;font-weight:800}.oe-buy,.oe-primary{border:2px solid #bf8f42;background:#ffdc6d;color:#573f5f;border-radius:12px;font-size:13px;font-weight:900;padding:9px;width:100%}.oe-buy:disabled{background:#e8e0db;border-color:#d0c2c5;color:#a99ca0}.oe-product small{font-size:9px;color:#826b86}.oe-switch{font-size:11px;font-weight:850;color:#69537b;display:flex;align-items:center;gap:5px}.oe-switch input{accent-color:#b16dd6;transform:scale(1.12)}.oe-shop-hint{font-size:10px;color:#806c82;line-height:1.6;margin-top:14px}.oe-hero{font-size:54px;margin-bottom:6px}.oe-sub{background:#f5e7ff;border-radius:12px;padding:9px}.oe-soft{display:block;margin-top:10px;width:100%;border:2px solid #dbcfe8;background:#eee5f5;border-radius:13px;padding:10px;color:#6a4b7a;font-weight:800}.oe-receipt{margin:14px 0 9px;border:2px dashed #b7a0be;border-radius:18px;padding:12px;background:#fff4d5;text-align:left;color:#584566}.oe-receipt-head{font-size:14px;font-weight:950;text-align:center;padding-bottom:10px}.oe-receipt-row,.oe-receipt-total{display:flex;justify-content:space-between;gap:7px;padding:6px 0;font-size:12px;color:#614c65}.oe-receipt-total{border-top:2px dashed #c3afba;margin-top:4px;font-weight:900;font-size:15px}.oe-receipt-total strong{color:#c95289}.oe-shop-from-result{border:0;background:#f4d26b;color:#553f61;border-radius:12px;padding:10px;font-size:13px;font-weight:850;width:100%;margin-top:10px}.oe-dock-button{font:900 13px system-ui;border:2px solid #4e3b76;border-radius:13px;background:#fff5a8;color:#6b4179;padding:9px 12px;box-shadow:0 3px #49345d}.oe-dock-balance{padding:8px 7px;border-radius:12px;background:rgba(255,245,204,.88);font-size:13px;font-weight:900;color:#704477}.oe-toast{position:fixed;z-index:2147483200;left:50%;top:16%;transform:translate(-50%,-12px);opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;white-space:normal;text-align:center;width:max-content;max-width:min(360px,90vw);background:#ffe88f;color:#553c67;font:900 14px system-ui;border:3px solid #563c69;border-radius:14px;padding:11px 14px;box-shadow:0 5px #3a2e52}.oe-toast.visible{opacity:1;transform:translate(-50%,0)}.oe-shop-controls{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin:7px 0 0}.oe-modal .oe-primary{width:100%;margin-top:10px}.oe-modal.is-dialog .oe-sheet{max-width:360px}
@media(max-width:350px){.oe-modal{padding:7px}.oe-sheet{padding:12px 8px}.oe-shop-grid{gap:6px}.oe-product{padding:8px 5px}.oe-product p{font-size:10px}.oe-shop-head h2{font-size:19px}}
/* V50 leader result now includes a wage slip; keep both actions accessible on short phones. */
.boss-result-card{max-height:calc(100vh - 30px);overflow-y:auto;touch-action:pan-y;overscroll-behavior:contain}
.boss-result-card #bossReceipt .oe-receipt{margin:12px 0 6px}
.boss-result-card #bossReceipt .oe-shop-from-result{font-size:12px;padding:9px}
/* Wage receipts make result cards longer: allow scroll instead of hiding the shop button. */
#overlay.results-view{display:block;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y;padding:15px 15px 28px;-webkit-overflow-scrolling:touch}
#overlay.results-view #card{display:block;position:relative;width:100%;max-width:390px;margin:0 auto 12px;height:auto;max-height:none;overflow:visible}

/* V53 — tiny cute wallet + rescue shop in the TOP-RIGHT of the journey map.
   No floating element over the swipe area; native map header owns the buttons. */
.journey-header .journey-brand{display:flex;align-items:center;justify-content:space-between;gap:4px;min-height:35px}
.journey-header .journey-logo{font-size:9px;letter-spacing:1.1px;font-weight:1000;display:flex;align-items:center;gap:4px;white-space:nowrap;flex:0 1 auto}
.journey-header .journey-logo b{color:#f2f69a}
.journey-header .journey-logo>span{color:#d4ff82;font-size:15px;letter-spacing:0;padding-left:1px}
.journey-heading-row{display:flex;justify-content:space-between;align-items:center;gap:3px}
.journey-heading-row h2{font-size:27px;letter-spacing:-1px;margin:5px 0 5px;white-space:nowrap}
.journey-heading-row .journey-total{flex:0 0 auto;margin-left:2px;font-size:10px;padding:5px 8px;display:flex;gap:3px;align-items:baseline}
.journey-heading-row .journey-total strong{font-size:17px}
.oe-corner-actions{display:flex;align-items:center;gap:5px;flex:0 0 auto;z-index:22;position:relative}
.oe-corner-actions button{font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none;-webkit-user-select:none}
.oe-wallet{background:linear-gradient(140deg,#fff6c6,#fff1da);border:2px solid #ffe9a2;box-shadow:0 3px 0 #d6b285,0 3px 9px rgba(41,25,60,.22);display:flex;align-items:center;gap:3px;justify-content:center;min-height:32px;padding:2px 7px 2px 4px;border-radius:22px;color:#92506e;font-size:12px;font-weight:1000;line-height:1}
.oe-wallet-number{min-width:12px;display:inline-block;max-width:44px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}
.oe-coin-character{flex:0 0 auto;position:relative;display:inline-block;width:25px;height:25px;border-radius:50%;background:radial-gradient(circle at 27% 20%,#fffecf 0%,#fff3a2 30%,#ffd76a 69%,#f3b758 100%);border:2px solid #e8a74b;box-shadow:inset -2px -3px 0 rgba(201,138,44,.13),0 2px 0 rgba(158,105,49,.27);transform:rotate(-11deg)}
.oe-coin-character:before{content:'•  •';position:absolute;color:#92506e;font-weight:1000;font-size:12px;letter-spacing:0;white-space:pre;line-height:1;left:3px;top:4px}
.oe-coin-character:after{content:'⌣';position:absolute;color:#92506e;font-size:13px;font-weight:1000;line-height:1;left:9px;bottom:2px}
.oe-shop-corner{min-height:32px;display:flex;align-items:center;gap:3px;background:linear-gradient(130deg,#ffe7f4,#fbc5df);border:2px solid #ffd7ef;box-shadow:0 3px 0 #bf91b7,0 3px 9px rgba(41,25,60,.22);border-radius:22px;color:#773b72;font-size:10px;font-weight:1000;white-space:nowrap;padding:4px 8px 4px 6px}
.oe-shop-corner-icon{font-size:18px;line-height:1}
.oe-corner-actions button:active{transform:translateY(2px);box-shadow:0 1px 0 #ad90ad}
.oe-corner-actions button:focus-visible{outline:3px solid #d6fe7c;outline-offset:3px}
.oe-modal.is-shop .oe-sheet{background:linear-gradient(170deg,#fff9e9,#fff0f8 65%,#eef8f4);border-color:#76538a;box-shadow:0 10px 0 #47365f,0 18px 35px rgba(36,26,55,.35)}
.oe-modal.is-shop .oe-shop-head h2{color:#9b497f;font-size:24px}
.oe-modal.is-shop .oe-shop-head small{color:#be91aa}
.oe-modal.is-shop .oe-shop-head p{color:#865b88}
.oe-modal.is-shop .oe-balance{display:flex;align-items:center;gap:9px;text-align:left;background:linear-gradient(115deg,#fff7c9,#ffe6b3);border:2px solid #f6d78e;box-shadow:0 3px 0 #dfc4a0;border-radius:18px;padding:10px}
.oe-coin-large{width:43px;height:43px;border-width:3px;transform:rotate(-8deg)}
.oe-coin-large:before{font-size:17px;left:7px;top:8px}.oe-coin-large:after{font-size:19px;left:15px;bottom:5px}
.oe-balance-copy{display:flex;flex-direction:column;min-width:58px}
.oe-balance-copy small{font-size:10px;font-weight:900;color:#9b6677}
.oe-balance .oe-balance-copy strong{font-size:24px;margin:0;line-height:1.1;color:#b44986}
.oe-balance-note{flex:1;min-width:0;font-size:9px!important;font-weight:800;line-height:1.5;color:#aa7c71!important;text-align:right;margin:0!important}
.oe-modal.is-shop .oe-product{border-radius:19px;border-color:#e2c9ea;box-shadow:0 3px 0 #ebdbe8}
.oe-modal.is-shop .oe-product:nth-child(2){background:#f3fff2;border-color:#c5e6c4}
.oe-modal.is-shop .oe-product:nth-child(3){background:#fff8ed;border-color:#f2dab3}
.oe-modal.is-shop .oe-product-symbol{background:radial-gradient(circle,#fffad9,#ffe7bd);border:2px solid rgba(233,174,101,.35);border-radius:17px}
@media(max-width:370px){.journey-header{padding-left:13px;padding-right:13px}.journey-header .journey-logo{font-size:8px;letter-spacing:.6px;gap:3px}.journey-header .journey-logo>span{font-size:13px}.oe-corner-actions{gap:3px}.oe-wallet{min-height:29px;padding:2px 5px 2px 3px;font-size:11px}.oe-coin-character{width:23px;height:23px}.oe-coin-character:before{font-size:11px;left:3px;top:3px}.oe-coin-character:after{left:8px}.oe-shop-corner{min-height:29px;padding:3px 6px 3px 4px;font-size:9px}.oe-shop-corner-icon{font-size:16px}.journey-heading-row h2{font-size:24px}.journey-heading-row .journey-total{font-size:9px;padding:4px 6px}.journey-heading-row .journey-total strong{font-size:16px}}
@media(max-width:330px){.oe-shop-name{font-size:0}.oe-shop-name:after{content:'商店';font-size:10px}}
@media(prefers-reduced-motion:reduce){.oe-corner-actions button{transition:none!important}}
