/* Coin shop: bounded scrolling and prices supplied by the native app store. */
.home-shop-link { align-self:center; display:inline-flex; justify-content:center; align-items:center; gap:7px; min-height:35px; padding:4px 15px; border:1px solid #d7dfb3; border-radius:20px; color:#5b724b; background:#fffbee; box-shadow:inset 0 1px #fff; font:inherit; font-size:12px; font-weight:700; cursor:pointer; }
.home-shop-link .coin-mark { width:21px; height:23px; }
.shop-modal-link { display:block; margin:10px auto 0; }
#shopModal { z-index:42; padding:max(10px,env(safe-area-inset-top)) 12px max(10px,env(safe-area-inset-bottom)); }
#shopModal.hidden { visibility:hidden; }
#shopModal .shop-modal { width:min(100%,520px); max-height:calc(100dvh - max(10px,env(safe-area-inset-top)) - max(10px,env(safe-area-inset-bottom))); padding:20px clamp(14px,4vw,25px) 17px; border:1px solid #bfdbc9; border-radius:28px; background:radial-gradient(ellipse at 50% 0,#fff7d2 0,transparent 34%),linear-gradient(150deg,#fffef7,#eff8ed); color:#315f50; box-shadow:0 25px 80px #214f4945; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#b8d3ba transparent; -webkit-overflow-scrolling:touch; }
#shopModal .modal-close { position:sticky; display:block; z-index:3; width:38px; height:38px; top:0; right:auto; margin:0 -5px -38px auto; border-radius:50%; border:1px solid #c8ddc4; background:#f5faec; color:#5c7d66; }
.shop-header { padding:0 22px; }
.shop-emblem { height:65px; width:128px; position:relative; margin:0 auto 7px; }
.shop-emblem .coin-mark { position:absolute; width:48px; height:53px; top:10px; filter:drop-shadow(0 5px 3px #98743826); }
.shop-emblem .coin-mark:nth-child(1) { left:15px; transform:rotate(-21deg); }
.shop-emblem .coin-mark:nth-child(2) { right:14px; transform:rotate(17deg); }
.shop-emblem .coin-mark:nth-child(3) { width:60px; height:65px; left:35px; top:0; }
#shopModal h2 { font-size:clamp(23px,6vw,29px); margin:5px 0 7px; }
#shopSubtitle { font-size:13px; line-height:1.4; color:#71866b; margin:0; }
.shop-balance { display:flex; justify-content:space-between; align-items:center; gap:10px; margin:16px 0 12px; padding:10px 14px; border-radius:14px; background:#e5f0dd; color:#627d57; font-size:12px; }
.shop-balance b { display:flex; align-items:center; gap:6px; color:#496447; font-size:19px; font-variant-numeric:tabular-nums; }
.shop-balance .coin-mark { width:24px; height:26px; }
.shop-notice { display:flex; gap:10px; align-items:center; margin:0 0 12px; border:1px solid #d8debf; border-radius:12px; padding:10px 12px; background:#fffced; text-align:left; }
.shop-notice[hidden] { display:none; }
.shop-notice p { flex:1; min-width:0; margin:0; color:#727553; font-size:11px; line-height:1.5; }
.shop-debt-note { margin:0 0 12px; padding:9px 11px; border-radius:10px; color:#886d48; background:#fff6dc; font-size:11px; line-height:1.5; text-align:left; }
.shop-debt-note[hidden] { display:none; }
.shop-products { display:grid; gap:9px; }
.shop-product { position:relative; display:grid; grid-template-columns:51px minmax(0,1fr) auto; column-gap:9px; align-items:center; min-height:83px; padding:13px 12px; background:linear-gradient(130deg,#fffef7,#f8fbee); border:1px solid #d8e3c6; border-radius:17px; box-shadow:0 3px 0 #e0e8cf; text-align:left; }
.shop-product.is-best { background:linear-gradient(125deg,#f5fadd,#e5f2dc); border-color:#a9ca96; }
.shop-product-coin { width:44px; height:48px; filter:drop-shadow(0 3px 1px #a5873824); }
.shop-product:nth-child(2) .shop-product-coin { transform:rotate(-7deg); }
.shop-product:nth-child(4) .shop-product-coin { transform:rotate(7deg); }
.shop-product-copy { min-width:0; }
.shop-product-copy h3 { margin:0; font-size:20px; line-height:1.2; font-weight:850; letter-spacing:-.035em; color:#3c6149; font-variant-numeric:tabular-nums; }
.shop-product-copy .shop-coin-label { display:block; color:#75906a; font-size:10px; font-weight:600; margin-top:1px; }
.shop-equivalent { color:#789069; margin:6px 0 0; font-size:10px; line-height:1.3; }
.shop-product-action { min-width:98px; max-width:145px; }
.shop-permanent { grid-template-columns:39px minmax(0,1fr) auto; background:linear-gradient(125deg,#edf7e6,#e1f2eb); border-color:#a7cbb5; padding-block:16px 12px; }
.shop-permanent-mark { width:37px; height:44px; align-self:start; margin-top:2px; }
.shop-permanent .shop-product-copy h3 { font-size:17px; line-height:1.3; letter-spacing:-.02em; overflow-wrap:anywhere; }
.shop-permanent .shop-coin-label { margin-top:4px; font-size:10px; line-height:1.4; }
.shop-permanent .shop-equivalent { font-size:11px; line-height:1.5; color:#557d65; }
.shop-permanent .shop-product-action { align-self:start; margin-top:3px; }
.shop-rewarded-note { grid-column:2 / -1; margin:10px 0 0; color:#6a836b; font-size:10px; line-height:1.5; }
.shop-permanent.is-owned .shop-buy { color:#407558; background:#d9eadb; border-color:#b5d2b9; }
.shop-buy { display:block; width:100%; min-height:42px; padding:8px 11px; border:1px solid #81b19a; border-radius:12px; color:#fffef4; background:linear-gradient(150deg,#80b58b,#4f9c84); box-shadow:inset 0 1px #cfe6b7,0 3px 0 #44856e; font:inherit; font-size:14px; line-height:1.3; font-weight:800; cursor:pointer; overflow-wrap:anywhere; }
.shop-buy:disabled { color:#83917b; background:#e9eddf; border-color:#d4dbca; box-shadow:inset 0 1px #fff; cursor:default; font-size:11px; }
.shop-buy:not(:disabled):active { transform:translateY(2px); box-shadow:inset 0 1px #cfe6b7,0 1px 0 #44856e; }
.shop-best-label[hidden] { display:none; }
.shop-best-label { color:#61824a; display:block; font-size:9px; font-weight:700; line-height:1.35; text-align:center; margin-top:7px; }
#shopStatus { min-height:0; margin:13px 1px 0; padding:0; color:#557b61; font-size:12px; line-height:1.5; }
#shopStatus:empty { display:none; }
#shopStatus.is-error { color:#aa6855; }
.shop-footer { border-top:1px solid #dbe6d1; padding-top:12px; margin-top:16px; }
.shop-payment-note,.shop-device-note { font-size:10px; line-height:1.5; color:#7b8d74; margin:0; }
#shopRestoreButton { display:block; margin:7px auto; min-height:35px; padding:7px 14px; color:#49866c; font-size:12px; }
#shopRestoreButton:disabled,#shopCloseButton:disabled { opacity:.5; cursor:wait; }
body.billing-busy { cursor:progress; }
body.billing-busy .screen button,body.billing-busy .modal-backdrop:not(#shopModal) button { pointer-events:none; }
@media (max-width:350px) { #shopModal { padding-left:7px; padding-right:7px; } #shopModal .shop-modal { padding-left:11px; padding-right:11px; } .shop-product { grid-template-columns:36px minmax(0,1fr) auto; padding:11px 9px; gap:7px; } .shop-product-coin { width:35px; height:38px; } .shop-product-copy h3 { font-size:18px; } .shop-product-action { min-width:86px; max-width:115px; } .shop-buy { font-size:13px; padding-inline:8px; } .shop-notice { flex-wrap:wrap; } .shop-notice p { flex-basis:100%; } }
@media (max-width:420px) { .shop-permanent { grid-template-columns:36px minmax(0,1fr); } .shop-permanent .shop-product-action { grid-column:2; max-width:none; margin-top:9px; } .shop-permanent .shop-product-copy h3 { font-size:17px; } .shop-permanent .shop-buy { min-height:39px; } .shop-rewarded-note { margin-top:7px; } }
@media (max-height:700px) { .shop-emblem { height:48px; transform:scale(.75); transform-origin:top center; margin-bottom:-8px; } #shopModal .shop-modal { padding-top:15px; } .shop-balance { margin-top:12px; padding-block:8px; } }
@media (prefers-reduced-motion:reduce) { #shopModal,#shopModal .shop-modal,.shop-buy { transition:none; } }

#shopProducts[hidden],#shopModal .shop-footer[hidden] { display:none; }
#shopModal.is-offline .shop-notice { margin-block:16px 4px; }
#shopModal.is-offline .shop-notice p { font-size:14px; line-height:1.6; text-align:center; }

.coin-price.is-offline .coin-mark { display:none; }
.coin-price.is-offline { font-size:10px; }

.settings-legal-link { display:flex; align-items:center; justify-content:space-between; text-decoration:none; color:inherit; }

.device-save-id { margin:18px 0 8px; text-align:center; color:#587e6b; font-size:12px; line-height:1.5; overflow-wrap:anywhere; }
.device-save-id b { user-select:text; -webkit-user-select:text; }
