/* The garden stays in sight while only the illustrated shelf scrolls. */
dialog:has(.garden-editor-dialog){width:min(920px,calc(100vw - 24px));max-width:none;max-height:calc(100dvh - 24px);overflow:hidden;background:#fffef8}
.dialog-shell.garden-editor-dialog{padding:20px;height:min(750px,calc(100dvh - 26px));display:flex;flex-direction:column;overflow:hidden}
.garden-editor-dialog .dialog-top{flex:none;margin-bottom:10px;gap:8px}
.garden-editor-dialog .dialog-top h2{font-size:21px}
.garden-editor-dialog .close-button{min-width:48px;min-height:48px}
.garden-editor{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(220px,1fr);gap:20px;min-height:0;flex:1;line-height:1.6}
.garden-editor-stage{min-width:0;align-self:start}
.garden-editor-instruction{font-size:16px;font-weight:800;margin:0 0 10px;color:#345c46}
.garden-editor-scene{position:relative;width:100%;height:320px;overflow:hidden;border-radius:20px;isolation:isolate;background:#e5eedb;border:2px solid #d5e3c9}
.garden-editor-world{position:absolute;top:0;left:0;transform-origin:top left;pointer-events:none;isolation:isolate}
.garden-editor-painting{position:absolute;inset:0;width:100%;height:100%;z-index:-1}
.garden-editor-furniture{position:absolute;aspect-ratio:1;transform:translate(-50%,calc(-100% * var(--item-foot,.98)));isolation:isolate}
.garden-editor-furniture:before{content:"";position:absolute;left:50%;top:calc(100% * var(--item-foot,.98));width:65%;height:7%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(ellipse,var(--ground-shadow),transparent 72%);filter:blur(1px);z-index:-1}
.garden-editor-furniture.is-preview .garden-item-art{filter:drop-shadow(0 0 3px #fff) drop-shadow(0 0 5px #d9aa44)}
.garden-editor-pet{position:absolute;transform:translate(-50%,-97.5%)}
.garden-editor-pet .dressed-pet,.garden-editor-pet svg{width:100%;height:100%}
.garden-editor-pet:before{content:"";position:absolute;left:50%;bottom:0;width:55%;height:13px;transform:translateX(-50%);background:radial-gradient(ellipse,var(--ground-shadow),transparent 72%);filter:blur(1px);z-index:-1}
.garden-editor-place,.garden-editor-trial{position:absolute;top:12px;max-width:65%;border-radius:13px;padding:5px 10px;background:#fffef7eb;color:#345a40;font-size:12px;z-index:105}
.garden-editor-place{left:10px}.garden-editor-trial{right:10px;background:#fff4ce;color:#735015;font-weight:800}
.garden-editor-targets{position:absolute;inset:0;z-index:110;pointer-events:none}
.garden-editor-target{position:absolute;transform:translateX(-50%);width:70px;min-width:56px;min-height:58px;padding:4px;border:2px solid #fff;background:#fffef5ed;color:#34583f;border-radius:16px;box-shadow:0 3px 8px #263d3425;pointer-events:auto;line-height:1.35}
.garden-editor-target span{display:block;font-size:18px;font-weight:900}.garden-editor-target b{font-size:13px;white-space:nowrap}
.garden-editor-target.selected{background:#416e50;color:white;border-color:#fff2a3;box-shadow:0 0 0 3px #efd680}
.garden-editor-target:not(:disabled):active{transform:translateX(-50%) scale(.96)}
.garden-editor-status{display:flex;align-items:center;gap:10px;min-height:65px;margin:10px 0 6px;padding:4px 10px;background:#edf3e8;border-radius:14px;color:#345a40}
.garden-editor-status p{min-width:0}.garden-editor-status b{display:block;font-size:15px}.garden-editor-status p>span{display:block;font-size:13px}
.garden-editor-mini{width:48px;height:48px;flex:none;display:grid;place-items:center;font-size:26px}
.garden-editor-replace-note{font-size:12px;color:#705725;margin:0 0 7px}
.garden-editor-actions{display:flex;gap:9px}.garden-editor-actions button{min-height:56px;min-width:68px;padding:10px 13px;font-size:16px;line-height:1.4;border-radius:15px}.garden-editor-actions .primary{flex:1;background:#426e50;color:white;box-shadow:0 3px 0 #2b5036}.garden-editor-actions .primary:disabled{background:#e3e9dc;color:#64765e;box-shadow:none}.garden-editor-actions .secondary{background:#fffef8;border:2px solid #d4dfc9}
.garden-editor-shelf{min-height:0;display:flex;flex-direction:column;overflow:hidden;background:#f1f4eb;border:1px solid #dce4d4;border-radius:18px;padding:12px}
.garden-editor-shelf h3{flex:none;font-size:15px;margin:0 0 9px;color:#41644b}
.garden-editor-catalog{overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:3px 5px 8px 3px;align-content:start}
.garden-editor-choice{display:flex;flex-direction:column;align-items:center;min-width:0;min-height:137px;background:#fffef8;border:2px solid #e0e7d7;border-radius:14px;padding:8px 5px;position:relative;color:#345440;text-align:center;line-height:1.5}
.garden-editor-choice-art{position:relative;display:block;width:100%;height:75px}.garden-editor-choice-art .garden-item-art{width:100%;height:100%}
.garden-editor-choice-mark{position:absolute;right:0;top:0;width:23px;height:23px;border-radius:50%;background:#edf3e4;color:#537448;display:grid;place-items:center;font-size:18px;font-weight:800}
.garden-editor-choice b{font-size:12px;margin:4px 0 2px}.garden-editor-choice small{font-size:10px;color:#52674a}
.garden-editor-choice b>span{display:inline-block;white-space:nowrap}
.garden-editor-choice.selected{border-color:#527950;background:#edf4df;box-shadow:0 0 0 2px #efd680}.garden-editor-choice.selected .garden-editor-choice-mark{background:#426e50;color:#fff}
.garden-editor-choice:disabled{background:#ebeee6;color:#677261}.garden-editor-choice:disabled .garden-item-art{filter:grayscale(.8);opacity:.55}.garden-editor-choice:disabled .garden-editor-choice-mark{font-size:13px}
.garden-editor-shelf-note{font-size:11px;margin:7px 0 0;color:#576e4f;flex:none}
.garden-editor :is(button):focus-visible{outline:3px solid #b77226;outline-offset:2px}
@media(max-width:650px){
 dialog:has(.garden-editor-dialog){width:calc(100vw - 12px);max-height:calc(100dvh - 12px);border-radius:19px}
 .dialog-shell.garden-editor-dialog{padding:12px;height:calc(100dvh - 14px)}
 .garden-editor-dialog .dialog-top{margin-bottom:6px}.garden-editor-dialog .dialog-top h2{font-size:18px}.garden-editor-dialog .close-button{min-height:44px;min-width:44px}
 .garden-editor{display:flex;flex-direction:column;gap:10px}.garden-editor-stage{flex:none;align-self:stretch}.garden-editor-instruction{font-size:14px;margin-bottom:7px}
 .garden-editor-scene{border-radius:16px}.garden-editor-place,.garden-editor-trial{font-size:11px;padding:4px 7px;top:9px}.garden-editor-target{width:62px;min-height:56px;border-radius:14px}.garden-editor-target b{font-size:12px}
 .garden-editor-status{min-height:52px;margin:7px 0 5px;padding:3px 7px;gap:7px}.garden-editor-mini{width:39px;height:39px}.garden-editor-status b{font-size:13px}.garden-editor-status p>span{font-size:12px}
 .garden-editor-actions button{min-height:54px;padding:8px 11px;font-size:14px}.garden-editor-replace-note{font-size:11px;margin-bottom:4px}
 .garden-editor-shelf{flex:1;padding:9px;min-height:120px}.garden-editor-shelf h3{font-size:13px;margin-bottom:4px}.garden-editor-catalog{gap:7px;grid-template-columns:repeat(3,minmax(0,1fr))}.garden-editor-choice{min-height:108px;padding:5px 3px}.garden-editor-choice-art{height:54px}.garden-editor-choice b{font-size:11px}.garden-editor-choice small{font-size:9px}.garden-editor-shelf-note{margin-top:3px;font-size:10px}
}
@media(max-height:650px) and (max-width:650px){
 .garden-editor-status{min-height:40px;margin-top:4px}.garden-editor-mini{width:30px;height:30px}.garden-editor-instruction{font-size:12px}.garden-editor-shelf{min-height:88px}.garden-editor-dialog .dialog-top h2{font-size:16px}.garden-editor-actions button{min-height:48px}
}
@media(max-width:360px){.garden-editor-catalog{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-height:480px) and (min-width:651px){
 .dialog-shell.garden-editor-dialog{padding:10px 16px}.garden-editor-dialog .dialog-top{margin-bottom:5px}.garden-editor-dialog .dialog-top h2{font-size:17px}.garden-editor-dialog .close-button{min-height:44px;min-width:44px}
 .garden-editor{gap:14px}.garden-editor-instruction{font-size:13px;margin-bottom:5px}.garden-editor-status{position:absolute;width:1px;height:1px;min-height:0;padding:0;margin:0;overflow:hidden;clip-path:inset(50%)}
 .garden-editor-actions{margin-top:8px}.garden-editor-actions button{min-height:48px;padding:8px 12px;font-size:14px}.garden-editor-target{width:60px;min-height:56px}.garden-editor-target b{font-size:12px}.garden-editor-shelf{padding:8px}
 .garden-editor-replace-note{font-size:11px;margin-top:4px;margin-bottom:0}
}
@media(prefers-reduced-motion:reduce){.garden-editor button{transition:none}}
