:root{--cream:#fff7e8;--paper:#fffdf6;--ink:#4a3426;--brown:#8c5a35;--pink:#ef6d8f;--blue:#4f9fd8;--green:#45a66a;--line:#d7b98d}
#tthms-app{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#f5ead7}
.tthms{width:min(100%,760px);margin:0 auto;background:#f8edd9;overflow:hidden;box-shadow:0 12px 40px #0002}
.tthms *{box-sizing:border-box}.game-top{display:block;padding:10px 12px;background:#fff7e9;border-bottom:1px solid #ead7ba;} .game-top-main{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}.top-left{display:flex;align-items:center;gap:8px}.day b{display:block;font-size:19px;line-height:1}.day span{font-size:12px;color:#806d5c}.shop-title{text-align:center;font-weight:900;color:#bd5571;font-size:13px}.shop-title strong{display:block;color:#5a3827;font-size:24px;line-height:1}.top-right{text-align:right}.stars{font-size:20px;letter-spacing:1px;color:#efb53c;white-space:nowrap}.stars small{display:block;font-size:11px;color:#806d5c;letter-spacing:0}.game-stage{padding:0 10px 10px;background:#f6ead6}.scene{position:relative;aspect-ratio:709/1000;min-height:680px;overflow:hidden;border:2px solid #b77e5d;background:#f7e4c3 center/cover no-repeat url('../images/tiem-tap-hoa-portrait-bg.jpg');box-shadow:inset 0 0 0 9999px #fff1e20d}.awning{height:54px;background:repeating-linear-gradient(90deg,#f06488 0 52px,#fff8ec 52px 104px);border-bottom:3px solid #9e5d55;clip-path:polygon(0 0,100% 0,100% 72%,96% 100%,92% 72%,88% 100%,84% 72%,80% 100%,76% 72%,72% 100%,68% 72%,64% 100%,60% 72%,56% 100%,52% 72%,48% 100%,44% 72%,40% 100%,36% 72%,32% 100%,28% 72%,24% 100%,20% 72%,16% 100%,12% 72%,8% 100%,4% 72%,0 100%)}.hud-bubbles{position:absolute;top:64px;left:14px;display:flex;gap:6px;z-index:12}.avatar-bubble{width:55px;height:55px;border:4px solid #f7b1c5;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:28px;box-shadow:0 3px 8px #0003}.avatar-bubble.active{outline:3px solid #55bd93;outline-offset:-6px}.customer-dialog{position:absolute;top:118px;left:13%;right:7%;z-index:11;background:#fff9ec;border:2px solid #a77859;border-radius:20px;padding:13px 14px 11px;box-shadow:0 5px 12px #0003}.customer-dialog:before{content:"";position:absolute;left:10%;bottom:-16px;border:10px solid transparent;border-top-color:#a77859}.dialog-title{font-size:16px;font-weight:900;line-height:1.35}.dialog-title em{color:#d95e77;font-style:normal}.dialog-meta{font-size:10px;font-weight:800;margin-top:9px}.patience{height:9px;background:#f0e1cc;border:1px solid #a68b70;border-radius:10px;overflow:hidden;margin-top:4px}.patience i{display:block;height:100%;width:70%;background:#6ec487}.guide{position:absolute;top:235px;left:18%;right:18%;z-index:12;background:#3e8fca;color:#fff;border:0;border-radius:11px;padding:10px 12px;text-align:center;font-weight:900;box-shadow:0 4px 0 #276d9e;font-size:13px}.counter{position:absolute;left:5%;right:5%;top:33%;bottom:24%;z-index:5}.counter-board{position:absolute;left:0;right:0;top:0;height:27%;background:#f7ead2;border:3px solid #8f5c40;border-radius:14px 14px 6px 6px;box-shadow:0 5px 0 #b87959}.counter-label{position:absolute;left:10px;top:10px;background:#ffe4ae;border:2px solid #9c6846;border-radius:8px;padding:6px 10px;font-weight:900;font-size:12px}.checkout{position:absolute;right:7%;top:8px;font-size:45px}.product-trays{position:absolute;left:8%;right:4%;top:30%;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;align-content:start}.tray{position:relative;min-height:86px;border:3px solid #777;background:#fff9ef;border-radius:12px;box-shadow:0 3px 0 #a08d78;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:5px;overflow:hidden}.tray.has-stock{background:linear-gradient(#fffdf6,#f8e7cb)}.tray .tray-icon{font-size:30px;line-height:1}.tray b{font-size:9px;text-align:center;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qty{position:absolute;right:4px;top:4px;background:#f1c98e;border:2px solid #805d40;border-radius:50%;min-width:24px;height:24px;display:grid;place-items:center;font-size:10px}.empty-lock{opacity:.35;font-size:24px}.store-tools{position:absolute;right:4%;bottom:7%;display:flex;flex-direction:column;gap:7px;z-index:10}.store-tools button{border:2px solid #8b6046;background:#fff7e8;color:#563a2a;border-radius:10px;padding:8px 10px;font-weight:900;font-size:11px;box-shadow:0 3px 0 #c69b76}.store-tools button.primary{background:#4f9fd8;color:#fff;border-color:#327eae}.store-tools button.green{background:#58a86d;color:#fff;border-color:#3b8250}.status-pill{position:absolute;right:8px;top:8px;background:#fff9e9dd;border:2px solid #8e674e;border-radius:10px;padding:5px 8px;font-size:10px;font-weight:900;z-index:14}.queue{position:absolute;left:5%;right:5%;bottom:31%;z-index:13;display:flex;gap:6px;justify-content:center}.queue-card{background:#fff9ee;border:2px solid #956548;border-radius:10px;padding:5px 7px;font-size:9px;max-width:48%;box-shadow:0 3px 7px #0003}.queue-card b{display:block}.queue-card button{margin-top:4px;border:0;border-radius:6px;padding:5px 6px;font-size:9px;font-weight:900}.pay{background:#3e9859;color:#fff}.leave{background:#c05c62;color:#fff}.game-bottom{padding:10px;background:#f6ead7;border-top:1px solid #e1c8a5}.action-row{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.action-row button{border:0;border-radius:10px;background:#8b5b3a;color:#fff;padding:10px 5px;font-size:10px;font-weight:900}.money-row{margin-top:7px;background:#fff8ea;border:1px solid #dec49f;border-radius:10px;padding:8px;font-size:11px;font-weight:800;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.reviews-box{padding:10px;background:#fff8ea;border-top:2px solid #ddc29d}.reviews-box h3{font-size:13px;margin:0 0 6px}.review-item{font-size:10px;padding:6px;border-radius:7px;margin:4px 0}.review-item.good{background:#e9f8e9}.review-item.bad{background:#fff0f0}.modal{display:none}.modal.show{display:flex;position:fixed;inset:0;background:#0007;z-index:50;align-items:center;justify-content:center;padding:12px}.box{background:#fff8ec;width:min(720px,96%);max-height:90vh;overflow:auto;border-radius:18px;padding:15px}.row{display:grid;grid-template-columns:1.3fr .9fr 70px 65px;gap:6px;align-items:center;padding:8px 0;border-bottom:1px solid #ead9c2}.row input{width:65px;padding:7px}.row button,.box button{border:0;border-radius:8px;padding:8px;background:#8b5b3a;color:#fff;font-weight:800}.close{margin-top:10px}.auth-game{min-height:620px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f6dca2,#c0835d);padding:20px}.auth-box{width:min(420px,94%);background:#fffaf0;border:4px solid #8c5a35;border-radius:22px;padding:24px;box-shadow:0 15px 40px #0005;text-align:center}.auth-logo{font-size:58px}.auth-box h1{margin:5px 0}.auth-box p{color:#777}.auth-tabs{display:flex;gap:7px;margin:18px 0 10px}.auth-tabs button{flex:1;border:0;border-radius:10px;padding:11px;font-weight:900;background:#ead8bd;color:#60452f}.auth-tabs button.active{background:#8c5a35;color:#fff}.auth-box input{display:block;width:100%;padding:13px;margin:9px 0;border:2px solid #d4bd9b;border-radius:10px;font-size:15px}.auth-box #authSubmit{width:100%;border:0;background:#287a45;color:#fff;padding:13px;border-radius:10px;font-weight:900;font-size:15px;margin:6px 0 10px}.auth-box #authMsg{min-height:20px;color:#a33;font-size:12px;font-weight:700}
@media(max-width:520px){.tthms{width:100%;box-shadow:none}.game-top-main{grid-template-columns:1fr auto 1fr}.day b{font-size:17px}.shop-title strong{font-size:21px}.stars{font-size:17px}.scene{min-height:0}.customer-dialog{top:108px;left:10%;right:5%;padding:10px}.dialog-title{font-size:14px}.guide{top:218px;font-size:11px}.counter{top:34%;bottom:24%}.product-trays{left:22%;top:30%;grid-template-columns:repeat(3,1fr);gap:5px}.tray{min-height:74px}.tray .tray-icon{font-size:25px}.store-tools{right:3%;bottom:7%}.store-tools button{font-size:9px;padding:7px}.queue-card{max-width:49%;font-size:8px}.action-row button{font-size:9px;padding:9px 3px}.money-row{font-size:10px}.row{grid-template-columns:1.2fr .8fr 58px 60px;font-size:10px}}
.bulk-box{max-width:760px!important;width:calc(100vw - 28px)!important;max-height:88vh;overflow:auto}.bulk-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0}.bulk-toolbar span{margin-left:auto}.bulk-list{display:flex;flex-direction:column;gap:7px}.bulk-row{display:grid!important;grid-template-columns:minmax(180px,1fr) auto 82px;gap:8px;align-items:center}.bulk-row label{display:flex;gap:8px;align-items:center}.bulk-row input[type=number]{width:78px}.bulk-summary{position:sticky;bottom:0;background:#fff7e8;border:1px solid #ead7b5;border-radius:10px;padding:10px;margin:12px 0;font-weight:700}.bulk-box button{min-height:40px}@media(max-width:600px){.bulk-row{grid-template-columns:1fr 68px}.bulk-row span{grid-column:1/-1;font-size:12px}.bulk-row input[type=number]{grid-column:2;grid-row:1;width:68px}.bulk-toolbar span{margin-left:0;width:100%}}

/* v1.8.2 shelf footer controls: move the main game controls to the bottom of the game box. */
.game-controls-footer{background:#f6ead6;border-top:2px solid #d7b58e;padding:8px 8px 9px;display:flex;flex-direction:column;gap:7px}
.guide-footer{background:#3e8fca;color:#fff;border-radius:12px;padding:9px 12px;text-align:center;font-size:12px;font-weight:900;box-shadow:0 3px 0 #276d9e}
.footer-control-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(150px,.8fr);gap:7px;align-items:stretch}
.footer-store-tools{position:static!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px!important}
.footer-store-tools button{width:100%;min-height:38px;font-size:10px;padding:7px 5px}
.shelf-control{background:#fff3d9;border:2px solid #9a6b4b;border-radius:12px;padding:6px;box-shadow:0 3px 0 #c89b75;display:flex;flex-direction:column;justify-content:center;min-width:0}
.shelf-control-title{text-align:center;font-size:12px;font-weight:900;color:#5a3b29}
.shelf-control-main{display:grid;grid-template-columns:38px 1fr 38px;gap:6px;align-items:center;margin-top:4px}
.shelf-control-main button{height:36px;border:0;border-radius:9px;background:#8b5b3a;color:#fff;font-size:25px;line-height:1;font-weight:900;box-shadow:0 2px 0 #684127}
.shelf-control-main button:last-child{background:#4f9fd8;box-shadow:0 2px 0 #327eae}
.shelf-control-main strong{text-align:center;font-size:18px;color:#5a3827;white-space:nowrap}
.shelf-control-main small{font-size:10px}
.shelf-control-note{text-align:center;font-size:8px;color:#7d6652;margin-top:3px;font-weight:800}
.product-trays{overflow:auto;padding:2px 4px 8px;scrollbar-width:thin}
@media(max-width:600px){.footer-control-grid{grid-template-columns:1fr 1fr}.footer-store-tools{grid-template-columns:1fr 1fr!important}.footer-store-tools button{font-size:9px;min-height:36px}.guide-footer{font-size:10px;padding:8px 7px}.shelf-control-main{grid-template-columns:34px 1fr 34px}.shelf-control-main button{height:34px}.shelf-control-main strong{font-size:16px}.shelf-control-note{font-size:7px}.product-trays{grid-template-columns:repeat(3,1fr);gap:5px}}

/* v1.8.2 payment animation: 2–3 shopping bags fly from checkout queue to the customer. */
.payment-bag-layer{position:fixed;inset:0;z-index:99999;pointer-events:none;overflow:hidden}
.payment-bag{position:fixed;width:36px;height:36px;display:grid;place-items:center;font-size:29px;line-height:1;opacity:.98;filter:drop-shadow(0 3px 3px #0004);transition:transform .72s cubic-bezier(.2,.85,.25,1),opacity .72s ease;will-change:transform,opacity}
@media(max-width:600px){.payment-bag{width:32px;height:32px;font-size:25px}}

/* v1.8.3: permanently remove the legacy warehouse card highlighted in the old mobile UI. */
.left-tools,.tool-card{display:none!important;width:0!important;height:0!important;margin:0!important;padding:0!important;overflow:hidden!important}

/* v1.9.0 global leaderboard + mobile stability */
.leaderboard-box{padding:10px;background:#fff8ea;border-top:2px solid #ddc29d}
.leaderboard-box h3{font-size:14px;margin:0 0 2px;color:#5a3b29}
.leaderboard-sub{font-size:10px;color:#806b59;font-weight:700;margin-bottom:7px}
.leaderboard-list{display:flex;flex-direction:column;gap:5px}
.leader-row{display:grid;grid-template-columns:38px 1fr auto;gap:6px;align-items:center;background:#fffdf7;border:1px solid #e6d3b4;border-radius:8px;padding:7px 8px;font-size:10px}
.leader-row .rank{font-weight:900;color:#9b653e}
.leader-row strong{font-size:10px;color:#2f7046}
.leaderboard-loading{font-size:10px;color:#8a7868;padding:6px}
@media(max-width:600px){.leader-row{grid-template-columns:32px 1fr auto;font-size:9px;padding:6px}.leader-row strong{font-size:9px}.leaderboard-sub{font-size:9px}}

/* v1.9.1 exact payment: player must select the exact requested products from shelf. */
.payment-check-box{max-width:720px!important;width:calc(100vw - 24px)!important}
.payment-request{background:#fff3d6;border:2px solid #d5ad72;border-radius:10px;padding:10px;margin:9px 0;font-size:13px;font-weight:800}
.payment-products{display:flex;flex-direction:column;gap:6px;max-height:48vh;overflow:auto}
.payment-product{display:flex;justify-content:space-between;align-items:center;gap:8px;border:2px solid #dfc9a8;border-radius:10px;padding:8px;background:#fffdf7}
.payment-product.required{border-color:#5a9bd0;background:#f1f8ff}
.payment-product.not-required{opacity:.58}
.payment-product small{display:block;font-size:9px;color:#7a6755;margin-top:2px}
.payment-stepper{display:flex;align-items:center;gap:7px;white-space:nowrap}
.payment-stepper button{width:34px;height:34px;padding:0!important;border-radius:9px!important;font-size:22px!important;display:grid;place-items:center}
.payment-stepper strong{min-width:24px;text-align:center;font-size:16px}
.payment-stepper button:disabled{opacity:.35}
.payment-progress{margin:10px 0;padding:9px;border-radius:9px;background:#f4ead9;text-align:center;font-weight:900;font-size:12px}
@media(max-width:600px){.payment-check-box{padding:11px!important}.payment-product{padding:7px;font-size:11px}.payment-product small{font-size:8px}.payment-stepper button{width:32px;height:32px}.payment-products{max-height:45vh}}

/* v1.9.2: stable payment confirmation modal. Prevent background scrolling/touch and layout movement while confirming. */
.modal.payment-modal{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;max-width:none!important;margin:0!important;z-index:2147483000!important;overflow:hidden!important;overscroll-behavior:contain!important;touch-action:none!important;}
.modal.payment-modal .payment-check-box{position:relative;flex:0 1 auto;max-height:calc(100vh - 24px)!important;overflow-y:auto!important;overscroll-behavior:contain!important;touch-action:auto!important;transform:none!important;margin:0 auto!important;}
html.tthms-payment-lock,body.tthms-payment-lock{overflow:hidden!important;touch-action:none!important;}
@media(max-width:600px){.modal.payment-modal{padding:8px!important;align-items:center!important;justify-content:center!important}.modal.payment-modal .payment-check-box{width:calc(100vw - 16px)!important;max-height:calc(100vh - 16px)!important;border-radius:14px!important;}}

/* v1.9.5 Mobile Stable: reduce layout shifts and make touch interaction predictable. */
.tthms,
.tthms *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
.tthms button,
.tthms input,
.tthms .tray{touch-action:manipulation}
.tthms button{user-select:none;-webkit-user-select:none}
.tthms .game-stage{contain:layout paint}
.tthms .scene{contain:layout paint;overflow:hidden}
.tthms .queue{min-height:52px;contain:layout}
.tthms .hud-bubbles{min-height:46px}
.tthms .customer-dialog{min-height:58px}
.tthms .payment-bag-layer{contain:strict}
.tthms .payment-bag{pointer-events:none}
html,body{overscroll-behavior-y:none}
@media(max-width:600px){
  #tthms-app{width:100%;max-width:100%;overflow-x:hidden}
  .tthms{width:100%;max-width:100%;overflow-x:hidden}
  .game-top{position:relative;min-height:62px}
  .game-stage{min-height:420px}
  .scene{min-height:420px}
  .store-tools button,.game-bottom button,.shelf-control-main button{min-height:42px}
  .tray{min-height:68px;touch-action:manipulation}
  .queue{padding:4px;gap:5px}
  .queue-card{min-height:58px}
  .modal.show{padding:8px}
  .modal .box{width:100%;max-width:100%;max-height:calc(100dvh - 16px);margin:0;overflow:auto;-webkit-overflow-scrolling:touch}
  .modal.payment-modal .payment-check-box{max-height:calc(100dvh - 16px)!important}
}
@supports(height:100dvh){
  .modal.payment-modal{height:100dvh!important}
}

/* v1.9.6: product names in inventory/display-shelf panels are black for readability. */
.bulk-row label b,.bulk-row span,.bulk-row span b,.tray b{color:#000!important}


/* v1.9.7 mobile + product label rules */
.shelf-product-name,.display-shelf .product-name,.inventory-display .product-name,
.product-label,.shelf-item .name{color:#000 !important;}
.game-day,[data-game-day],#game-day{contain:layout paint;}
button,.game-btn,.action-btn{touch-action:manipulation;-webkit-tap-highlight-color:transparent;}
/* v1.11.0 employee controls */
.employee-status{font-size:12px}
@media(max-width:600px){.game-controls-footer button{min-height:42px}.box{max-width:96vw}.box button{min-height:42px}}
/* v1.12.8: vehicle assets / customer traffic upgrade panel in the floor area */
.vehicle-parking{position:absolute;left:5%;right:5%;bottom:2%;z-index:20;margin:0;padding:4px 6px 5px;background:rgba(255,248,232,.98);border:2px solid #b88961;border-radius:12px;box-shadow:0 3px 0 rgba(90,58,38,.16);max-height:10%;min-height:0;overflow:auto;pointer-events:auto;}
.vehicle-parking-head{display:flex;justify-content:space-between;align-items:center;gap:5px;font-size:7px;color:#5b3c2b;margin-bottom:2px;line-height:1.1}.vehicle-parking-head span{font-weight:900;color:#2f7046}
.vehicle-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}.vehicle-card{background:#fffdf7;border:1px solid #dfc9a8;border-radius:7px;padding:2px;text-align:center;min-width:0}.vehicle-card img{width:100%;height:25px;object-fit:contain;display:block}.vehicle-info b{display:block;font-size:6px;color:#000;line-height:1}.vehicle-info small{display:block;font-size:5px;color:#6f5a49;margin:1px 0 2px;line-height:1}.vehicle-card button,.vehicle-modal-row button{font-size:6px!important;min-height:19px!important;padding:2px 3px!important;border-radius:5px!important;touch-action:manipulation}.vehicle-owned{display:block;font-size:6px;color:#2f7046;font-weight:900}.vehicle-modal-row{display:flex;align-items:center;gap:10px;border:1px solid #ddd0be;border-radius:12px;padding:8px;margin:8px 0}.vehicle-modal-row img{width:105px;height:68px;object-fit:contain;flex:none}.vehicle-modal-row>div{flex:1;font-size:12px}.vehicle-modal-row>div>b{display:block;margin-bottom:3px}
@media(max-width:600px){.vehicle-parking{left:4%;right:4%;bottom:2%;padding:3px 4px;max-height:10%;height:auto;z-index:20}.vehicle-list{gap:3px}.vehicle-card{padding:2px}.vehicle-card img{height:24px}.vehicle-info b{font-size:6px}.vehicle-info small{font-size:5px}.vehicle-card button{font-size:6px!important;min-height:19px!important;padding:2px 3px!important}.vehicle-modal-row img{width:88px;height:58px}}

/* v1.13.0: vehicle cards are tap targets; details/price/purchase appear after tapping. */
.vehicle-card{border:1px solid #dfc9a8;border-radius:7px;padding:2px;text-align:center;min-width:0;width:100%;font:inherit;color:inherit;cursor:pointer;background:#fffdf7;appearance:none;-webkit-appearance:none;touch-action:manipulation}
.vehicle-card:active{transform:scale(.98)}
.vehicle-tap-hint{display:block;font-size:5px;color:#8c5a35;font-weight:800;margin-top:1px;line-height:1.05}
.vehicle-detail-box{text-align:center;max-width:420px!important}
.vehicle-detail-img{display:block;width:min(220px,70vw);height:125px;object-fit:contain;margin:0 auto 5px}
.vehicle-detail-price{font-size:22px;font-weight:900;color:#8c5a35;margin:7px 0}
.vehicle-detail-bonus{font-size:14px;font-weight:800;color:#2f7046;margin-bottom:12px}
.vehicle-detail-buy{width:100%;min-height:44px!important;font-size:15px!important}
.vehicle-owned-large{padding:12px;border-radius:10px;background:#edf8ef;color:#2f7046;font-weight:900;margin:10px 0}
@media(max-width:600px){.vehicle-detail-img{height:105px}.vehicle-detail-price{font-size:20px}.vehicle-detail-bonus{font-size:12px}.vehicle-detail-buy{min-height:46px!important}}

/* v1.13.3: move welcome message to the top of the game frame */
.tthms .scene .welcome-dialog{top:62px;left:7%;right:7%;z-index:16;}
@media(max-width:520px){.tthms .scene .welcome-dialog{top:62px;left:6%;right:6%;}}

/* v1.13.4: welcome message above the money/store header */
.welcome-top{background:#fff9ec;border:2px solid #a77859;border-radius:14px;padding:8px 12px;margin-bottom:7px;box-shadow:0 3px 8px #0002;text-align:center;}
.welcome-top-title{font-size:15px;font-weight:900;line-height:1.25;color:#5a3827}.welcome-top-title em{color:#d95e77;font-style:normal}.welcome-top-meta{font-size:10px;font-weight:800;margin-top:3px;color:#6d5747}.welcome-top-progress{height:6px;background:#eadfcf;border:1px solid #a68b70;border-radius:8px;overflow:hidden;margin-top:5px}.welcome-top-progress i{display:block;width:100%;height:100%;background:#6ec487}
@media(max-width:520px){.welcome-top{padding:7px 9px;margin-bottom:5px}.welcome-top-title{font-size:13px}.welcome-top-meta{font-size:9px}.welcome-top-progress{height:5px}}

.sale-money-toast{position:fixed;left:50%;top:16%;transform:translateX(-50%);z-index:99999;background:#2f7d32;color:#fff;padding:10px 16px;border-radius:999px;font-weight:800;font-size:15px;box-shadow:0 8px 24px rgba(0,0,0,.18);pointer-events:none;animation:saleMoneyToast .25s ease-out;}@keyframes saleMoneyToast{from{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%,0)}}

/* v1.13.7: draggable shelf display area for mobile - pan vertically to see additional shelves */
.product-trays{overflow-y:auto;overflow-x:hidden;align-content:start;overscroll-behavior:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;cursor:grab;touch-action:none;z-index:7;padding:2px 3px 8px 2px;}
.product-trays::-webkit-scrollbar{display:none}
.product-trays.shelf-dragging{cursor:grabbing;user-select:none;-webkit-user-select:none;}
.shelf-pan-hint{position:absolute;left:50%;bottom:4px;transform:translateX(-50%);z-index:20;background:#8c5a35dd;color:#fff;border-radius:999px;padding:3px 8px;font-size:7px;font-weight:900;pointer-events:none;white-space:nowrap;box-shadow:0 2px 5px #0003}
@media(max-width:520px){.product-trays{top:29%;bottom:0;grid-template-columns:repeat(3,minmax(0,1fr));max-height:100%;padding-bottom:18px}.shelf-pan-hint{font-size:7px}}

/* v1.13.22: move loan control beside compact shelf control */
.shelf-loan-side{display:flex;flex-direction:column;gap:5px;min-width:0;align-self:stretch;}
.compact-shelf-control{padding:4px!important;border-radius:9px!important;box-shadow:0 2px 0 #c89b75!important;}
.compact-shelf-control .shelf-control-title{font-size:10px;}
.compact-shelf-control .shelf-control-main{grid-template-columns:30px 1fr 30px;gap:4px;margin-top:2px;}
.compact-shelf-control .shelf-control-main button{height:29px;font-size:20px;border-radius:7px;}
.compact-shelf-control .shelf-control-main strong{font-size:14px;}
.compact-shelf-control .shelf-control-main small{font-size:8px;}
.compact-shelf-control .shelf-control-note{font-size:6.5px;margin-top:2px;}
.loan-side-btn{width:100%;min-height:32px!important;padding:5px 6px!important;border:0;border-radius:9px;background:#6b4a38;color:#fff;font-weight:900;font-size:10px;box-shadow:0 2px 0 #4d3327;touch-action:manipulation;}
.loan-side-btn:active{transform:translateY(1px);box-shadow:0 1px 0 #4d3327;}
@media(max-width:600px){.shelf-loan-side{gap:4px}.compact-shelf-control .shelf-control-main{grid-template-columns:27px 1fr 27px}.compact-shelf-control .shelf-control-main button{height:27px;font-size:18px}.compact-shelf-control .shelf-control-main strong{font-size:13px}.compact-shelf-control .shelf-control-note{font-size:6px}.loan-side-btn{min-height:30px!important;font-size:9px;padding:4px!important;}}

/* v1.13.25: reliable mobile shelf purchase button */
.shelf-control-main{position:relative;z-index:80;}
.shelf-control-main button{position:relative;z-index:81;pointer-events:auto!important;touch-action:manipulation!important;cursor:pointer;}
.shelf-control-main button:disabled{opacity:.65;}
.shelf-loan-side{position:relative;z-index:70;}

/* v1.13.26: make shelf purchase controls reliably tappable above all game layers */
.shelf-loan-side{
  position:relative!important;
  z-index:10!important;
  pointer-events:auto!important;
  isolation:isolate;
}
.compact-shelf-control,
.shelf-control-main,
.shelf-control-main button#shelfPlus{
  position:relative!important;
  z-index:11!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
}
.shelf-control-main button#shelfPlus{
  cursor:pointer!important;
  -webkit-tap-highlight-color:rgba(0,0,0,.08);
}

/* v1.13.27: modal must always cover shelf/loan controls; controls stay tappable when modal is closed. */
.modal.show{position:fixed!important;z-index:2147483000!important;}
.shelf-loan-side{z-index:10!important;}
.compact-shelf-control,.shelf-control-main,.shelf-control-main button#shelfPlus{z-index:11!important;}
