/* Keep the scene anchored while queue clearance moves only its controls. */
body:has(.garden-scene){overflow:hidden!important;overscroll-behavior:none}
.main-content:has(.garden-scene){padding:0!important;overflow:hidden!important}
.garden-scene{position:fixed;inset:0 0 var(--app-dock-height,0px);isolation:isolate;overflow:hidden;background:#10232d;color:#f3e4c1;box-sizing:border-box;animation:garden-enter .45s ease-out both}
.garden-header{position:absolute;top:calc(max(var(--queue-clearance,0px),var(--garden-header-clearance,0px)) + env(safe-area-inset-top,0px) + 12px);left:14px;right:14px;display:flex;align-items:start;justify-content:space-between;gap:12px;z-index:3;transition:top .25s ease}
.garden-back,.garden-upgrade{border:0!important;background:#102832ed;color:#dce8ed;border-radius:14px;padding:11px 14px;box-shadow:0 5px 16px #07151c33;font-size:13px}
.garden-upgrade{text-align:right}.garden-upgrade b{color:#f3dfb3}.garden-upgrade small{display:block;color:#a9c0cb;font-size:11px;margin-top:4px}
.garden-status{position:absolute;top:calc(max(var(--queue-clearance,0px),var(--garden-header-clearance,0px)) + env(safe-area-inset-top,0px) + 80px);left:18px;right:18px;display:flex;justify-content:space-between;color:#d2e0e4;font-size:12px;transition:top .25s ease;z-index:3;text-shadow:0 2px 5px #000}
.garden-status b{color:#acc5d0}
/* All upgrades use the same roomy planter geometry. */
.garden-plant-mark{position:relative;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:transparent;background:radial-gradient(circle at 40% 30%,#24414aab,#102b35a3 72%);font-size:0;line-height:0;border:0;box-shadow:0 3px 8px #091b222e;opacity:.78}
.garden-plant-mark::before,.garden-plant-mark::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:2px;background:#d7e7e2b8}
.garden-plant-mark::before{width:11px;height:1.5px}
.garden-plant-mark::after{width:1.5px;height:11px}
.garden-plot-timer{position:absolute;top:100%;left:50%;transform:translateX(-50%);border-radius:8px;background:#102b39ed;color:#d0e3e9;padding:4px 7px;font-size:10px;white-space:nowrap}
.garden-plot.ready .garden-plot-timer{color:#b2f0c9}
.garden-plot.ready .garden-crop-art{filter:drop-shadow(0 0 8px #8df2b67a);animation:garden-glow 1.8s ease-in-out infinite}
.garden-plot:focus-visible{outline:2px solid #ffe188!important;outline-offset:5px;border-radius:12px}
.garden-plot:focus-visible .garden-plant-mark{opacity:1}
.garden-crop-art{position:absolute;inset:0;pointer-events:none;animation:garden-grow .7s ease-out both}
.garden-hint{position:absolute;bottom:18px;left:12px;right:12px;text-align:center;font-size:12px;color:#cedde3;text-shadow:0 2px 5px #000;pointer-events:none}
.garden-seed-picker>p{margin:8px 0 20px;color:#a9c0cb}.garden-seed-choice{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:16px;border:0;border-radius:16px;background:#1b3642;color:#f2dfb4;margin-bottom:10px}.garden-seed-choice>.garden-seed-copy{flex:1;min-width:0}.garden-seed-choice>.garden-sprite{flex:0 0 48px;aspect-ratio:1}.garden-seed-choice b,.garden-seed-choice small,.garden-seed-choice em{display:block}.garden-seed-choice small{color:#adc5cf;margin:4px 0 10px;font-size:12px}.garden-seed-choice em{font-style:normal;color:#c7ddd5;font-size:12px}.garden-seed-choice>strong{font-size:12px;color:#ffd16d}.garden-find-seeds{display:block;margin:16px auto 0;border:0;background:none;color:#ffcf69}

@keyframes garden-enter{from{opacity:0}to{opacity:1}}@keyframes garden-grow{from{opacity:0;transform:scale(.7) translateY(10px)}to{opacity:1;transform:none}}@keyframes garden-glow{50%{filter:drop-shadow(0 0 12px #8df2b6b0)}}
@media(min-width:801px){.town-facility--garden>.town-mobile-label{visibility:visible}.garden-scene{left:var(--sidebar-width,224px);bottom:0}}
.garden-still,.garden-still *,.reduce-motion .garden-scene,.reduce-motion .garden-scene *{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.garden-scene,.garden-scene *{animation:none!important;transition:none!important}}

.garden-upgrade{min-width:126px;text-align:left;padding:12px 16px;background:#163341ee}.garden-level-label{display:flex;align-items:center;justify-content:space-between;gap:14px;font-weight:700;color:#e4edf1}.garden-upgrade small{display:flex;align-items:center;justify-content:space-between;color:#ffd16d;margin-top:8px;font-size:11px}.garden-upgrade small span{font-size:15px}
#facility-garden.facility-unavailable .facility-art img{filter:drop-shadow(0 5px 5px #07151c55) brightness(1.15);opacity:1}.facility-sheet[data-facility="garden"] .facility-badge{background:#1a3542;border:0;padding:10px 14px;border-radius:13px;text-align:center}.facility-sheet[data-facility="garden"] .garden-capacity-number{font-size:26px;line-height:1.1;color:#e3edf2}.facility-sheet[data-facility="garden"] .facility-badge small{display:block;font-size:10px;color:#afc6d1;margin-top:4px}

/* A centered seed basket, with its own scrollable inventory. */
#modal .modal-backdrop:has(.garden-seed-picker){display:flex!important;align-items:center!important;justify-content:center!important;padding:20px 14px!important}
#modal .modal:has(.garden-seed-picker){width:min(480px,100%);max-height:calc(100dvh - 40px);margin:0!important;padding:24px 18px 16px!important;border-radius:24px!important;overflow:hidden;box-sizing:border-box;background:radial-gradient(ellipse at top left,#254b5b,#122c39 70%);border:0;box-shadow:0 24px 80px #030d16a8;animation:garden-picker-enter .25s ease-out!important;transform:none!important}
#modal .modal:has(.garden-seed-picker) .app-sheet-handle{display:none!important}
#modal .modal:has(.garden-seed-picker) .modal-close{top:10px;right:10px;width:30px;height:30px;font-size:22px}
.garden-seed-picker{display:flex;flex-direction:column;max-height:calc(100dvh - 84px);min-height:0}
.garden-picker-title{display:flex;align-items:center;gap:12px;padding:8px 20px 18px 0;flex-shrink:0}
.garden-picker-emblem{display:grid;place-items:center;flex-shrink:0;width:60px;height:60px;background:#315361;border-radius:19px}
.garden-picker-eyebrow{font-size:8px;letter-spacing:1.3px;color:#91cbb8;font-weight:700}.garden-picker-title h2{font-size:23px;margin:6px 0;color:#fff0ca}.garden-picker-title p{font-size:12px;color:#b5cbd5;margin:0}
.garden-seed-list{overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;min-height:0;padding:2px 10px 6px;scrollbar-width:thin;scrollbar-color:#668693 transparent}
.garden-seed-choice{padding:14px 12px;gap:10px;background:#21404e;border:0;box-shadow:0 4px 12px #071a2325;transition:background .15s,transform .15s}.garden-seed-choice:not(:disabled):hover{background:#2a4d5b}.garden-seed-choice:not(:disabled):active{transform:scale(.98)}.garden-seed-choice:disabled{opacity:.65}
.garden-seed-choice .garden-seed-copy{flex:1}.garden-seed-choice b{font-size:14px;color:#e6edf0}.garden-seed-choice small{font-size:10px;margin:4px 0 9px}.garden-seed-choice .garden-seed-yield{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.garden-seed-choice em{font-size:11px;color:#cbe1d7}.garden-seed-choice .garden-seed-duration{font-size:10px;color:#a9c2cd;flex:0 0 auto;margin-left:4px}
.garden-seed-choice>.garden-plant-action{display:flex;align-items:center;gap:4px;flex-shrink:0;background:linear-gradient(#ffe38c,#ffc451);color:#493716;padding:10px 12px;border-radius:12px;font-size:12px;box-shadow:0 3px 0 #bc852a,0 4px 12px #ffcd5722}.garden-plant-action span{font-size:17px;line-height:1}.garden-seed-picker footer{flex-shrink:0;padding-top:8px}.garden-find-seeds{margin:0 auto;padding:10px;font-size:12px;color:#ffd77b}.garden-seeds-empty{padding:24px 8px;text-align:center;color:#bdd2db}
@keyframes garden-picker-enter{from{opacity:0;scale:.94}to{opacity:1;scale:1}}
@media(prefers-reduced-motion:reduce){#modal .modal:has(.garden-seed-picker){animation:none!important}}

.garden-sprite{display:inline-block;flex-shrink:0;background-size:200% 200%;background-repeat:no-repeat;image-rendering:auto;vertical-align:middle}
.garden-back{display:flex;align-items:center;gap:8px;padding:9px 12px 9px 8px;border-radius:16px;font-weight:600;color:#dce9ed}.garden-back-icon{display:grid;place-items:center;width:29px;height:29px;border-radius:10px;background:#294b5a}
.garden-upgrade{min-width:160px;padding:12px 14px;border-radius:17px;background:linear-gradient(135deg,#244754f5,#153340f5)}.garden-level-label{font-size:15px}.garden-level-detail{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:10px;font-size:10px;color:#b8cdd6}.garden-space-divider{color:#86a9ba}.garden-upgrade .garden-level-detail small{display:block;margin:0;font-size:10px;color:#ffdc84}.garden-status{top:calc(max(var(--queue-clearance,0px),var(--garden-header-clearance,0px)) + 106px)}.garden-plot *{pointer-events:none}.garden-plot:focus-visible{outline:2px solid #ffe188!important}.garden-plant-mark{width:34px;height:34px;animation:garden-marker-return .25s ease-out;transition:opacity .2s;transform:none!important}
.garden-crop-art{inset:auto;bottom:5%;left:50%;transform:translateX(-50%);width:100px;height:100px;animation:garden-grow .7s ease-out both}.garden-crop-art .garden-sprite{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:var(--crop-frame-width,100%)!important;height:var(--crop-frame-height,100%)!important}.garden-plot-timer{top:78%;z-index:2;font-size:9px}
@keyframes garden-marker-return{from{opacity:0}to{opacity:1}}



@media(max-width:360px){.garden-seed-choice{padding:12px 9px;gap:8px}.garden-seed-choice>.garden-plant-action{padding:9px 8px;font-size:11px}.garden-seed-choice b{font-size:13px}.garden-picker-title h2{font-size:20px}}

.garden-seed-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}.garden-seed-heading b{flex:1;min-width:0;line-height:1.3}.garden-seed-choice .garden-seed-heading small{flex:0 0 auto;max-width:56px;margin:0;text-align:right;font-size:9px;font-weight:400;line-height:1.35;color:#a9c2cd}.garden-picker-emblem .skill-icon{width:44px;height:44px;object-fit:contain}

/* Continuous garden ground: drag freely between full-size beds, without snapping. */
.garden-scene .garden-plant-mark{width:34px;height:34px}.garden-scene .garden-plot.ready .garden-plot-timer{display:block}.garden-scene .garden-plot.ready .garden-crop-art{filter:drop-shadow(0 0 5px #8df2b65a)}


.garden-scene .garden-crop-art{width:var(--crop-size);height:var(--crop-size);margin-left:calc(var(--crop-size)/-2)}


.garden-scene .garden-plot-timer{display:block!important;font-size:10px;padding:4px 6px;top:78%}
/* Mirrored ground tiles meet without visible seams, at a stable world scale. */
/* Compact seed rows: quantity sits beside the action, independent of the title. */
.garden-seed-choice{padding:11px 10px;gap:8px;margin-bottom:7px}
.garden-seed-heading{margin-bottom:4px}
.garden-seed-yield{gap:4px;line-height:1.25}
.garden-seed-yield .item-icon{width:16px!important;height:16px!important;flex:0 0 16px!important}
.garden-seed-choice .garden-seed-available{flex:0 0 48px;text-align:center;align-self:center;margin:0;font-size:9px;line-height:1.25;color:#adc5cf}
.garden-seed-choice .garden-plant-action{flex:0 0 auto;padding:9px 10px}
.garden-seed-duration{font-size:9px}
.garden-plot.ready,.garden-plot.ready .garden-crop-art,.garden-plot.ready .garden-sprite,.garden-plot.ready .garden-plot-timer{pointer-events:auto;cursor:pointer}

.garden-seed-choice.is-locked{background:#382c35;border-color:#b8677055;opacity:.85;cursor:not-allowed}
.garden-seed-choice.is-locked .garden-seed-heading b{color:#e5abb0}
.garden-seed-requirement{display:block;color:#f09b9f;font-size:10px;margin-top:5px;line-height:1.3}
.garden-seed-choice.is-locked .garden-plant-action{background:#563c42;color:#bf8d94;box-shadow:none}
.garden-planting-tool{position:absolute;z-index:3;bottom:14px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;width:max-content;max-width:calc(100% - 28px);padding:10px 14px;border:0;border-radius:18px;background:#183a4aef;color:#e4edf0;box-shadow:0 6px 22px #071b2644;text-align:left}
.garden-planting-tool>.garden-sprite{flex:0 0 36px}
.garden-planting-tool b{display:block;font-size:12px;line-height:1.3}
.garden-planting-tool small{display:block;font-size:10px;margin-top:4px;color:#a9c6d4}
.garden-planting-tool.is-empty small{color:#eeaba6}
.garden-seed-switch{font-size:23px;color:#ffda86;margin-left:5px}

.garden-scene .garden-crop-art{transform:none}
.garden-planting-tool{bottom:30px;background:#102b3af5}
.crop-progress{position:absolute;left:28%;right:28%;top:calc(78% + 24px);height:3px;background:#193c4be8;border-radius:4px;overflow:hidden;pointer-events:none}
.crop-progress i{display:block;height:100%;background:#8dcfb2;border-radius:4px}

.garden-planting-controls{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:8px;max-width:calc(100% - 28px)}
.garden-planting-controls .garden-planting-tool{position:static;transform:none;max-width:100%;width:max-content}
.garden-plant-all{display:flex;align-items:center;gap:12px;padding:9px 14px;border:0;border-radius:14px;background:#ffcf59;color:#30290f;box-shadow:0 3px 0 #b78032;font-weight:800;font-size:12px}
.garden-plant-all small{font-size:9px;font-weight:500}.garden-plant-all:disabled{opacity:.45;box-shadow:none}

.garden-is-damaged .garden-earth,.garden-is-damaged .garden-crop-art{filter:grayscale(1) brightness(.65)}.garden-is-damaged .garden-plot-timer{color:#c8d3d8;background:#233540}.garden-is-damaged .crop-progress i{background:#7d909b}.garden-is-damaged .garden-plant-mark{opacity:.35}.garden-is-damaged .facility-break-smoke{z-index:20}

.garden-harvest-all{position:absolute;z-index:5;right:16px;top:115px;display:flex;align-items:center;gap:8px;padding:12px 16px;border:0;border-radius:14px;background:linear-gradient(130deg,#356e54,#173d35);color:#efffe8;box-shadow:0 3px 14px #061e2299;font-weight:750}.garden-harvest-all[hidden]{display:none}.garden-harvest-all small{font-size:10px;color:#b9e5c9}@media(prefers-reduced-motion:reduce){}
/* Soil anchors must not inherit the generic button press translation. */
.garden-scene .garden-plot,
.garden-scene .garden-plot:hover,
.garden-scene .garden-plot:active:not(:disabled),
.garden-scene .garden-plot:focus{transform:translate(-50%,-50%);transition:none}

/* Harvest and planting share one bottom stack; neither can cover the other. */
.garden-bottom-actions{position:absolute;z-index:5;bottom:30px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;width:max-content;max-width:calc(100% - 28px);pointer-events:none}
.garden-bottom-actions>button,.garden-bottom-actions .garden-planting-controls{pointer-events:auto}
.garden-bottom-actions .garden-harvest-all{position:static;inset:auto;max-width:100%;justify-content:center}
.garden-bottom-actions .garden-planting-controls{position:static;inset:auto;transform:none;max-width:100%;width:100%}
.garden-bottom-actions:empty{display:none}
@media(max-height:650px){.garden-bottom-actions{bottom:24px;gap:6px}.garden-bottom-actions .garden-planting-controls{gap:6px}.garden-bottom-actions .garden-harvest-all{padding:8px 14px}.garden-bottom-actions .garden-planting-tool{padding:7px 12px}}

/* The garden floor continues behind the rounded bottom menu. */
.garden-scene{overflow:visible}

/* One world camera: terrain and planter positions use the same transform. */
.garden-viewport{position:absolute;inset:0 0 -24px;overflow:hidden;touch-action:none;overscroll-behavior:none;cursor:grab;z-index:0}
.garden-viewport.is-dragging{cursor:grabbing}
.garden-landscape{position:absolute;left:0;top:0;transform-origin:0 0;isolation:isolate;--crop-size:96px}
.garden-ground{position:absolute;inset:-6000px;z-index:0;background:#4a5033;pointer-events:none}

.garden-background-art{position:absolute;left:-20px;top:-1150px;width:1500px;height:3750px;max-width:none;z-index:0;pointer-events:none}
.garden-world{position:absolute;left:calc(64px + var(--patch-x));top:calc(64px + var(--patch-y));width:240px;height:160px;transform:none;filter:none;pointer-events:none}
.garden-earth{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:0;filter:drop-shadow(0 8px 9px #09171044);pointer-events:none}
.garden-scene .garden-plot{position:absolute;left:50%;top:48%;width:76px;height:60px;min-width:0;min-height:0;transform:translate(-50%,-50%);padding:0;border:0!important;background:none!important;box-shadow:none!important;opacity:1!important;overflow:visible;display:grid;place-items:center;pointer-events:auto}
.garden-scene .garden-plant-mark{width:44px;height:44px;font-size:0;scale:var(--garden-ui-scale,1)}
.garden-scene .garden-crop-art{inset:auto;left:50%;bottom:calc(50% - 36px);width:120px;height:120px;margin-left:-60px;transform:none}
.garden-scene .garden-plot-timer{top:calc(100% + 12px);font-size:12px;padding:4px 7px;transform:translateX(-50%) scale(var(--garden-ui-scale,1));transform-origin:50% 0}
.garden-scene .crop-progress{left:8%;right:8%;top:calc(100% + 43px);height:4px}
.garden-overview .garden-plot-timer{display:none!important}
.garden-overview .crop-progress{top:calc(100% + 12px);height:6px}
.garden-overview .garden-plant-mark{scale:1}


.garden-world-locked{filter:none}
.garden-scene .garden-plot.is-locked{width:105px;height:76px}

/* All soil tiles sit beneath plants; adjoining soil never masks a crop. */
.garden-scene .garden-world{z-index:auto;filter:none}
.garden-scene .garden-plot{z-index:var(--plant-depth,1)}

/* Carrot roots remain below the soil; only foliage and the crown show. */
.garden-plot[data-crop="crop_2"].ready .garden-sprite{clip-path:inset(0 0 27%);transform:translate(-50%,27%)}
.garden-plot[data-crop="crop_2"].leafy .garden-sprite{clip-path:inset(0 0 24%);transform:translate(-50%,24%)}
