/* V2: proportions and hierarchy follow approved 7-11 / 8 / 6 references. */
#app{container-type:inline-size}
main:has(.garden-scene){padding-bottom:calc(77px + env(safe-area-inset-bottom));background:#fbfcfb}
.garden-scene{height:calc(126cqw + env(safe-area-inset-top));min-height:0;padding:0;isolation:isolate;overflow:hidden;color:#101f1b}
.garden-scene:before{background-size:100% 100%;background-position:center;filter:none;transform:none}
.garden-title{position:absolute;inset:calc(24px + env(safe-area-inset-top)) 14px auto 17px;min-height:0;display:flex;justify-content:space-between;align-items:flex-start;gap:5px;z-index:3}
.garden-heading{display:flex;align-items:flex-start;gap:7px;min-width:0}
.garden-heading>.icon{width:35px;height:43px;stroke:#3f7829;stroke-width:1.5;margin-top:1px}
.garden-heading h1{font-size:1.47rem;letter-spacing:.01em;line-height:1.2;margin:2px 0 5px;font-weight:650;white-space:nowrap}
.garden-heading p{font-size:.82rem;line-height:1.3;color:#596b80;margin:0;white-space:nowrap}
.garden-badges{gap:7px;min-width:108px;display:grid}
.garden-badges .garden-badge{background:#fffffff2;display:flex;align-items:center;gap:7px;padding:8px 10px;border-radius:28px;min-height:37px;font-size:.82rem;text-align:left;color:#112b21;box-shadow:0 2px 14px #a0946c09}
.garden-badge>.icon:first-child{width:23px;height:26px;color:#3e762e}
.garden-badge>.icon:last-child{width:12px;height:17px;margin-left:auto}
.garden-badge span{line-height:1.25;white-space:nowrap}
.garden-badge small{display:block;color:#637089;font-size:.82rem;margin-top:3px}
.garden-badges .green-badge{color:#285a27}
.green-badge b{font-size:1.08rem;font-weight:600;margin-left:3px}
.scene-note{top:calc(35cqw + env(safe-area-inset-top));left:auto;right:15%;transform:none;padding:10px 17px;min-width:88px;white-space:normal;border-radius:48% 50% 43% 9%;font-size:.86rem;line-height:1.35;color:#18201c;background:#fffdf8f5;text-align:left;z-index:2;box-shadow:0 3px 10px #bb976615}
.scene-note:after{content:"";position:absolute;bottom:-4px;left:8px;width:15px;height:16px;background:#fffdf8;clip-path:polygon(100% 0,0 100%,20% 0)}
.character-wrap{position:absolute;width:88%;max-width:none;aspect-ratio:1;left:6%;top:calc(28cqw + env(safe-area-inset-top));margin:0;z-index:1}
.character-wrap>img.character{object-fit:contain}
.character-shadow{bottom:7%;width:100%;opacity:.65}
.character-wrap>.plant-photo{width:77%;height:77%;margin:14% auto 0;aspect-ratio:1;border-radius:18px;background:#fff8;box-shadow:0 10px 22px #56371118}
.scene-actions{position:absolute;inset:calc(54cqw + env(safe-area-inset-top)) 12px auto;z-index:3}
.scene-actions>div{gap:24px}
.scene-actions .scene-action{padding:8px 10px;display:flex;align-items:center;gap:6px;max-width:none;min-height:38px;border-radius:24px;font-size:.82rem;line-height:1.3;color:#1a2820;background:#fffffff2;box-shadow:0 3px 14px #d4cfa026;white-space:nowrap}
.scene-action>.icon:first-child{width:23px;height:23px;stroke:#3e6b25;stroke-width:2}
.scene-action>.icon:last-child{width:11px;height:15px;stroke:#26352b;stroke-width:1.7}
.scene-bottom{position:absolute;left:26%;right:12px;bottom:16px;display:flex;gap:7px;align-items:stretch;margin:0;padding:0;z-index:4}
.scene-bottom .scene-name{flex:1.55;border-radius:30px;padding:5px 3px;min-height:49px;gap:0;text-align:center;min-width:0;background:#fffffff5}
.scene-name .grow{text-align:center}
.scene-name b{display:block;font-size:.96rem;line-height:1.3;font-weight:600;white-space:normal;overflow-wrap:anywhere}
.scene-name .muted{font-size:.75rem;line-height:1.3;color:#65728b;margin-top:3px}
.scene-bottom .scene-name .icon-btn{min-width:25px;min-height:36px;width:25px;padding:0;color:#142234}
.scene-name .icon-btn .icon{width:17px;height:20px}
.garden-claim{flex:1;min-width:0;border-radius:28px;background:linear-gradient(120deg,#459f60,#207a3f);border:1.5px solid #fffffff0;color:#fff;padding:8px 10px;display:flex;gap:3px;align-items:center;justify-content:center;font-size:.87rem;white-space:nowrap;box-shadow:0 4px 14px #46642920}
.garden-claim b{font-weight:500}
.garden-claim .icon{width:13px;height:18px}
.garden-panel{margin-top:-1px;padding:0 16px 13px;border-radius:23px 23px 0 0;background:linear-gradient(#fff,#fafbfa);box-shadow:0 -3px 20px #efe6c414;z-index:4;position:relative}
.garden-care-heading{display:flex;align-items:center;gap:9px;min-height:49px;padding:9px 0 5px}
.garden-care-heading h2{font-size:1.13rem;line-height:1.3;white-space:nowrap;margin:0;font-weight:650}
.garden-care-heading h2>span{font-size:.9rem;font-weight:500;color:#65718a;margin-left:3px}
.garden-care-heading .progress{flex:1;min-width:28px;max-width:79px;height:7px;background:#e8e9eb}
.garden-care-heading .progress i{background:#66935e}
.garden-progress-label{font-size:.78rem;white-space:nowrap;color:#5c6b83}
.garden-progress-label b{color:#172326;font-weight:600}
.garden-care-heading>.text-link{font-size:.78rem;white-space:nowrap;gap:1px;color:#52627a;margin-left:auto;padding:0;min-height:34px}
.garden-care-heading>.text-link .icon{width:13px;height:17px}
.garden-task-list{display:grid;gap:8px}
.garden-task-row{display:flex;align-items:center;gap:12px;width:100%;min-height:65px;padding:5px 8px 5px 5px;background:linear-gradient(110deg,#fff,#fcfdfc);border:1px solid #f4f5f3;border-radius:15px;text-align:left;box-shadow:0 4px 14px #28321e07}
.task-photo{width:65px;height:53px;border-radius:9px;flex-shrink:0;overflow:hidden;background:#f0f5ed;display:grid;place-items:center}
.task-photo img{width:100%;height:100%;object-fit:cover}
.task-photo.photo-placeholder{min-height:53px;padding:0}
.task-photo.photo-placeholder>.icon{width:25px;height:25px}
.task-photo.photo-placeholder .muted{display:none}
.task-copy{flex:1;min-width:0;display:grid;gap:3px}
.task-copy>b{font-size:1rem;line-height:1.3;font-weight:600;color:#101d21}
.task-copy>small{font-size:.82rem;color:#65718a;line-height:1.35}
.garden-task-row>.icon{width:18px;height:21px;color:#53617a}
.garden-corners-title{margin:15px 0 9px;gap:5px}
.garden-corners-title h2{font-size:1.12rem;font-weight:650;color:#17201d}
.garden-corners-title h2 .muted{font-size:1rem;font-weight:400;margin-left:3px}
.garden-corners-title>.text-link{font-size:.79rem;min-height:30px;color:#53617a}
.garden-corners-title>.text-link .icon{width:14px;height:18px}
.garden-corners{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.garden-corner{display:flex;align-items:center;padding:4px;gap:8px;border-radius:13px;background:#fff;border:1px solid #f5f6f2;text-align:left;box-shadow:0 3px 12px #25321e07;min-width:0;min-height:62px}
.corner-photo{width:45%;height:57px;flex-shrink:0;border-radius:9px;overflow:hidden;background:#f1f5ef;display:grid;place-items:center}
.corner-photo img{width:100%;height:100%;object-fit:cover}
.corner-photo.photo-placeholder{min-height:57px;padding:0}
.corner-photo.photo-placeholder>.icon{width:23px;height:23px}
.corner-photo.photo-placeholder .muted{display:none}
.corner-copy{min-width:0;display:grid;gap:5px}
.corner-copy>b{font-size:.82rem;font-weight:600;line-height:1.3;overflow-wrap:anywhere}
.corner-copy>small{font-size:.72rem;color:#67718a;white-space:nowrap;display:flex;align-items:center;gap:3px}
.corner-copy .icon{width:14px;height:16px;color:#4f8b35}
.garden-task-empty{display:flex;align-items:center;gap:10px;border-radius:14px;background:#f5f8f3;padding:12px;color:#64755f;font-size:.9rem;margin-top:5px}
.garden-task-empty .icon{width:26px;height:26px}
.garden-task-empty small{display:block;margin-top:3px;font-size:.78rem;color:#83917b}
.garden-empty-art{position:absolute;inset:23% 10% 13%;border-radius:40px;background:#fff7;display:grid;place-content:center;text-align:center;color:#47653f}
.garden-empty-art>.icon{width:65px;height:65px;margin:auto}
.garden-empty-art p{font-size:1rem;line-height:1.7;margin-top:10px}
.garden-scene.is-empty .scene-bottom{left:22px;right:22px}
.nav{border-radius:24px 24px 0 0;padding:4px 10px calc(5px + env(safe-area-inset-bottom));box-shadow:0 -4px 18px #34422d05}
.nav button{min-height:57px;gap:3px;font-size:.75rem;font-weight:400;padding:5px 2px;color:#6b7181}
.nav .icon{width:26px;height:26px;stroke-width:1.7}
.nav button.active{background:linear-gradient(130deg,#f1f6eb,#f7faf2);color:#245f28;font-weight:600}
.visual-review-banner{font-size:11px;background:#e8eee4;color:#53644d;text-align:center;line-height:24px;height:24px;position:relative;z-index:10;letter-spacing:.02em}
.approved-photo{background-image:url('assets/garden-approved-reference.png');background-size:588.275862% 1724.299065%;background-repeat:no-repeat}
.approved-photo-monstera{background-position:7.637482% 68.698964%}
.approved-photo-pothos{background-position:7.637482% 77.10138%}
.approved-photo-snake{background-position:63.366337% 89.700806%}
.profile-head .plant-photo{border-radius:12px}
.profile-head p>.icon{width:15px;height:15px;vertical-align:-3px}
.profile-head{gap:13px}
.profile-head h2{font-weight:600}
.care-actions button.primary{background:none;color:var(--ink);padding:0;border-radius:0}
.care-actions{margin:12px 0 15px}
.care-actions .icon{border:1px solid #edf2ed;box-shadow:none}
.hero-assistant h1{font-size:1.6rem;line-height:1.4}
.entry{background:linear-gradient(120deg,#f2faf6,#f8fcfa);border-radius:13px}
.entry>.icon{background:#e5f3ea;border-radius:50%;padding:13px;width:66px;height:66px;margin-bottom:10px}
.entry b{font-weight:600;font-size:1.02rem}
.empty{padding:21px 12px}
html.dark main:has(.garden-scene){background:var(--bg)}
html.dark .garden-panel{background:var(--paper)}
html.dark .garden-task-row,html.dark .garden-corner{background:var(--bg);border-color:var(--line)}
html.dark .task-copy>b,html.dark .garden-corners-title h2,html.dark .garden-care-heading h2{color:var(--ink)}
@container (max-width:370px){.garden-title{left:13px;right:12px;top:22px}.garden-heading{gap:5px}.garden-heading>.icon{width:29px;height:37px}.garden-heading h1{font-size:1.35rem}.garden-heading p{font-size:.75rem}.garden-badges{min-width:99px}.garden-badges .garden-badge{font-size:.75rem;padding:7px 9px;gap:5px}.scene-actions{left:9px;right:9px}.scene-actions .scene-action{font-size:.76rem;padding:8px 9px;gap:4px}.scene-bottom{left:24%;right:9px;bottom:14px}.scene-name b{font-size:.84rem}.garden-claim{font-size:.78rem;padding:7px 8px}.garden-care-heading{gap:6px}.garden-care-heading h2{font-size:1.03rem}.garden-care-heading h2>span{font-size:.8rem}.garden-care-heading .progress{max-width:52px;min-width:18px}.garden-progress-label,.garden-care-heading>.text-link{font-size:.71rem}.garden-panel{padding-left:13px;padding-right:13px}.task-copy>b{font-size:.94rem}.task-copy>small{font-size:.77rem}.garden-corners-title h2{font-size:1.03rem}.corner-copy>b{font-size:.77rem}.corner-copy>small{font-size:.66rem}}
html[data-font=large] .garden-care-heading{flex-wrap:wrap;row-gap:3px}
html[data-font=large] .garden-care-heading .progress{min-width:35px;max-width:65px}
html[data-font=large] .garden-title{flex-wrap:wrap}
html[data-font=large] .garden-heading h1{font-size:1.2rem}
html[data-font=large] .garden-heading p{font-size:.7rem}
html[data-font=large] .garden-badges .garden-badge{font-size:.7rem}
.visual-review-banner{position:absolute;inset:0 0 auto;height:16px;line-height:16px;font-size:9px;background:#f5f7edf0;pointer-events:none}.garden-scene{height:calc(122cqw + env(safe-area-inset-top))}.character-wrap{top:calc(24cqw + env(safe-area-inset-top))}.scene-actions{top:calc(52cqw + env(safe-area-inset-top))}.scene-actions>div{gap:31px}.garden-heading>.icon,.green-badge>.icon:first-child{fill:#4e8b2b;stroke:#f6fff0;stroke-width:1.2}.nav button.active[data-go="garden"] .icon{fill:#2e712e;stroke:#f6fff0;width:30px;height:30px}.font-entry{background:#ffffffbd;border-radius:22px;padding:7px 12px;min-height:34px;color:#2f6a40;font-size:.77rem}.hero-assistant{min-height:278px;padding-top:20px;margin-bottom:2px}.hero-assistant .botanical{width:235px;height:240px;right:-45px;top:38px}.hero-assistant h1{margin-top:40px;margin-bottom:9px;max-width:230px;font-weight:650}.hero-assistant p{font-size:.82rem;margin:0 0 12px}.weather-row{margin-top:11px;gap:9px}.weather-row .text-link{font-size:.8rem;color:#263c32;min-height:30px;padding-left:0}.weather-separator{height:13px;width:1px;background:#bcc7be}.entry-grid{gap:7px}.entry{padding:13px 12px 14px}.entry>.icon{width:65px;height:65px;padding:15px;margin-bottom:9px}.entry .muted{font-size:.8rem;margin-top:4px}.entry .muted i{font-style:normal;display:inline-grid;place-items:center;margin-left:10px;width:23px;height:23px;background:#e6f3eb;border-radius:50%;font-size:1.2rem;color:#173a2c}.composer{margin:10px 0 0}.assistant-service-note{font-size:.7rem;color:#83917e;margin-top:6px;line-height:1.4}.section-title:has(+.recent-grid),.section-title:has(+.assistant-empty){margin:15px 0 8px}.section-title:has(+.recent-grid) h2,.section-title:has(+.assistant-empty) h2{font-size:1.03rem}.section-title .text-link .icon{width:13px;height:16px}.recent-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.recent-card{border:1px solid #eff3ef;background:#fff;overflow:hidden;border-radius:11px;padding:0;text-align:left;min-width:0}.recent-photo{height:97px;overflow:hidden;background:#edf4ea}.recent-photo img{width:100%;height:100%;object-fit:cover}.recent-photo.photo-placeholder{min-height:97px}.recent-copy{padding:7px 8px 8px}.recent-copy b{font-size:.87rem;display:flex;align-items:center;justify-content:space-between;font-weight:600}.recent-copy b>.icon{width:12px;height:15px}.recent-copy p{font-size:.76rem;color:#7b8594;line-height:1.35;margin:4px 0 0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.assistant-empty{display:flex;align-items:center;gap:10px;padding:18px 12px;background:#f3f8f1;border-radius:12px;color:#63775c;font-size:.84rem}.assistant-empty>.icon{width:28px;height:28px;color:#51803d}.assistant-empty small{display:block;margin-top:5px;color:#8b9787;font-size:.76rem}.assistant-mode{margin-top:13px;font-size:.65rem}
.profile-hero{padding-top:24px;padding-bottom:12px}.profile-hero .botanical{width:185px;height:225px;right:-27px;top:-5px;opacity:.55}.profile-hero .botanical:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--bg),transparent 75%)}.profile-hero>.row{position:relative;z-index:1}.profile-hero h1{font-size:1.23rem;margin-bottom:21px}.profile-hero .avatar{width:55px;height:55px}.profile-hero+.stats{margin-top:4px;background:#ffffffdc;border:1px solid #f1f4ef;box-shadow:0 4px 18px #254e3110;padding:8px 3px}.settings-group{border-radius:12px;margin:15px 0;padding:0 13px;box-shadow:0 3px 14px #23452a04}.settings-group .list-row{min-height:51px;padding:11px 0}.settings-group .list-row b{font-size:.9rem}.library-banner{height:160px;margin-top:13px;border-radius:12px}.subentry{padding:10px 11px;border-radius:10px;gap:9px}.subentry small{font-size:.72rem}.search{border-radius:10px;margin-top:12px;margin-bottom:9px}.search input{padding:10px 0;font-size:.8rem}.chips{gap:5px;margin-top:9px;margin-bottom:10px}.chip{font-size:.76rem;padding:6px 11px;min-height:32px}.plant-card .body{padding:7px 8px 8px}.plant-card .body b{font-size:.9rem;font-weight:600}.plant-card .body p{font-size:.74rem;margin:3px 0}.plant-card .plant-photo{aspect-ratio:1.32}.grid.list .plant-card .plant-photo{aspect-ratio:1}.profile-head .plant-photo{aspect-ratio:1;min-height:0}.profile-head .plant-photo.photo-placeholder{height:145px}.profile-head p{font-size:.78rem}.profile-head .muted{font-size:.76rem}.profile-head+.stats .stat b{font-size:.94rem}.profile-head+.stats .stat span{font-size:.72rem}.profile-head~.card{box-shadow:none;border-radius:12px}.profile-head~.card>.row>b{font-size:.86rem!important}.profile-head~.section-title{margin-top:16px;margin-bottom:8px}.profile-head~.section-title h2{font-size:.95rem}.care-actions .icon{width:42px;height:42px;padding:10px}.care-actions button{font-size:.76rem}.event{padding:10px 0}.event h3,.event .row>b{font-size:.89rem}.event p{font-size:.82rem}.event .event-photo{width:74px;height:74px}.grid{gap:8px}
.profile-head+.stats{padding:3px;margin:10px 0}.profile-head+.stats .stat{padding:4px 3px}.profile-head+.stats .stat b{font-size:.92rem;line-height:1.3}.profile-head+.stats .stat span{font-size:.7rem;line-height:1.3}.current-care{background:#f1f7f1;border-radius:12px;padding:7px 11px 5px;margin:11px 0 15px;border:1px solid #eef4ed}.current-care-title{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:23px}.current-care-title b{font-size:.84rem;font-weight:600}.current-care-title .icon-btn{min-width:23px;min-height:23px;padding:0;color:#bdc8bf}.current-care-title .icon{width:13px;height:16px}.current-care-row{display:flex;align-items:center;gap:8px;margin:7px 0 0}.reminder-thumb{width:45px;height:45px;border-radius:8px;overflow:hidden;flex-shrink:0;background:#e7f0e3;display:grid;place-items:center}.reminder-thumb img{width:100%;height:100%;object-fit:cover}.reminder-thumb.photo-placeholder{min-height:45px}.reminder-thumb.photo-placeholder .muted{display:none}.current-care-row b{font-size:.84rem;line-height:1.3;font-weight:600}.current-care-row small{display:block;margin-top:3px;color:#8a9489;font-size:.68rem;line-height:1.3}.current-care-row .primary{font-size:.78rem;padding:6px 12px;min-height:31px;border-radius:8px;white-space:nowrap}.current-care>.text-link{margin-left:auto;width:max-content;min-height:24px;padding:2px 0;font-size:.67rem;color:#567b66}.current-care>.text-link .icon{width:12px;height:14px}.profile-record-row{display:flex;border:1px solid #eef2ee;border-radius:11px;margin:7px 0;background:#fff;gap:4px;align-items:center;padding-right:4px}.profile-record{display:flex;gap:9px;align-items:center;text-align:left;padding:7px;flex:1;min-width:0}.record-thumb{width:55px;height:55px;flex-shrink:0;border-radius:8px;overflow:hidden;background:#edf3e8;display:grid;place-items:center}.record-thumb img{width:100%;height:100%;object-fit:cover}.record-thumb.photo-placeholder{min-height:55px}.record-thumb.photo-placeholder .muted{display:none}.profile-record>span{flex:1;min-width:0;position:relative}.profile-record b{display:block;font-size:.84rem;font-weight:600;padding-right:58px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-record small{display:block;margin-top:5px;font-size:.72rem;line-height:1.35;color:#7e8990;max-height:2.7em;overflow:hidden}.profile-record time{position:absolute;right:0;top:2px;font-size:.6rem;color:#929ba5}.profile-record-row>.icon-btn{min-width:22px;min-height:35px;padding:0}.profile-record-row>.icon-btn>.icon{width:16px;height:20px}main:has(.profile-head)>.empty{padding:16px 8px}.current-care+.section-title{margin-top:10px}.current-care+.section-title h2{font-size:.95rem}html.dark .current-care{background:var(--soft);border-color:var(--line)}html.dark .profile-record-row{background:var(--bg);border-color:var(--line)}
.plant-card .pin{color:#718379;background:#ffffffec}.plant-card .pin.is-pinned{color:#32684f}.plant-card .pin.is-pinned>.icon{fill:#32684f;stroke:#32684f}
