/* Growing — visual refresh. No changes to stored records or application rules. */
:root,:root[data-theme=dark]{--bg:#090e0c;--bg2:#101713;--card:#131b16;--line:#283329;--ink:#f2f5ec;--mute:#a3aea2;--leaf:#b3e64b;--led:#b3e64b;--led2:#8ec735;--ring:#b3e64b;--btn:#243222;--btnink:#f2f5ec;--navbg:rgba(13,20,15,.96);--shadow:0 14px 35px -24px #000;color-scheme:dark}
:root[data-theme=light]{--bg:#f3f5ed;--bg2:#eaf0e1;--card:#fff;--line:#d4ddca;--ink:#172017;--mute:#53624f;--leaf:#426b0a;--led:#426b0a;--led2:#597f16;--ring:#608c25;--btn:#e2ebd5;--btnink:#24351a;--navbg:rgba(248,251,242,.96);--shadow:0 14px 35px -24px #687a50;color-scheme:light}
body{background:var(--bg);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;line-height:1.55;letter-spacing:-.015em}
body::before{background:radial-gradient(ellipse at 10% 0,rgba(153,194,70,.09),transparent 48%);opacity:1;z-index:-1}
h1,h2,h3,.big{letter-spacing:-.045em}h3{font-weight:650}.h{font-size:.7rem;letter-spacing:.14em;font-weight:650;margin:25px 2px 12px}
.wrap{max-width:760px;padding:24px 20px 130px}.top{min-height:60px;margin-bottom:26px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.logoimg{width:45px;height:45px;border-radius:12px;box-shadow:none}.hi{flex:1}.hi b{font-size:1.15rem}.hi span{font-size:.75rem;display:block;margin-top:3px}
.card,.item,.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);backdrop-filter:none}.card{padding:20px;margin-bottom:16px}.card h3{margin-bottom:14px}
.btn{border-radius:10px;min-height:44px;padding:11px 17px;font-size:.88rem;font-weight:650;transition:background .18s,transform .18s}.btn.led,.btn.pick,.fab{background:#b3e64b;color:#17200d;box-shadow:none}.btn.alt{border:1px solid var(--line)}.btn.sm{min-height:40px;border-radius:9px;font-size:.79rem}.btn:hover{filter:brightness(1.08)}
input,select,textarea{border:1px solid var(--line);border-radius:9px;background:var(--bg2);padding:13px 12px;min-height:48px;font-size:16px}label{font-size:.78rem;font-weight:550;letter-spacing:0;margin-bottom:17px}textarea{min-height:100px;resize:vertical}:focus-visible{outline:2px solid var(--leaf);outline-offset:4px}input:focus,textarea:focus,select:focus{border-color:var(--leaf)}
nav.tabs{bottom:0;width:100%;max-width:760px;border:1px solid var(--line);border-bottom:0;border-radius:18px 18px 0 0;padding:10px 6px max(12px,env(safe-area-inset-bottom));backdrop-filter:blur(20px);box-shadow:0 -12px 40px -25px #000;gap:0}
nav.tabs button{font-size:.62rem;color:var(--mute);gap:5px;min-height:52px;padding:7px 1px;line-height:1.2}nav.tabs button .ti{width:23px;height:23px;padding:0;border:0;border-radius:0;background:none;stroke:currentColor;box-shadow:none;stroke-width:1.6}nav.tabs button.on{color:var(--leaf);background:rgba(155,195,72,.07);border-radius:10px}nav.tabs button.on .ti{background:none;border:0;stroke:var(--leaf);box-shadow:none}
.quick,.quick.mgrid{gap:10px;padding:0;margin-bottom:16px}.tile,.quick .tile,.quick.mgrid .tile{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:15px 6px;gap:9px;font-size:.75rem;box-shadow:none}.tile>span{width:32px;height:32px;border:0;border-radius:0;background:none;box-shadow:none;font-size:1.45rem}.tile>span .ti{width:27px;height:27px;stroke:var(--leaf)}.tile small{font-size:.65rem}.tile:active{border:1px solid var(--leaf)}
.tent{border-radius:18px;background:radial-gradient(ellipse at 50% 35%,#2b3b1c 0, #142018 52%,#0e1711 90%);border:1px solid #3a492d;box-shadow:none;padding:18px 18px 0}.tent h2{font-size:1.6rem}.hpill{background:#b3e64b;color:#17200d;border-radius:6px;font-size:.73rem;letter-spacing:.03em}.hpill.dk{background:#10190f;border:1px solid #52663e}.hn{border:1px solid #7c9e48;background:#172416;box-shadow:none;color:#eff5e8}.hn.bad{box-shadow:none}.hexwrap::before{background:radial-gradient(circle,rgba(162,201,85,.18),transparent 68%)}.hname{color:#cedcbb}.cue{font-size:.72rem;background:rgba(20,29,15,.8);border:1px solid #50613b}
.mini{border-radius:12px;background:radial-gradient(ellipse at 50% 20%,#344824,#101b13)}.gcard{padding:18px}.ginfo b{font-size:1.13rem}.ginfo .mute{font-size:.82rem}.ginfo>div:last-child{font-size:.76rem;margin-top:5px}.gstat{border-top:1px solid var(--line);padding-top:13px;font-size:.75rem;margin:15px 0}.gbtns{gap:7px}.gdel{font-size:.9rem;opacity:.6}.big{background:none;color:var(--leaf);font-size:2.65rem;font-variant-numeric:tabular-nums}
.sheet{background:var(--card);border-radius:22px 22px 0 0;padding:25px 20px 32px}.ov{background:rgba(0,0,0,.72);backdrop-filter:blur(8px)}.item{padding:15px;border-radius:13px}.ico{border-radius:10px;font-size:1.2rem}.ph{border-radius:10px}.tag,.rec,.warn{border-radius:5px}.chips label{border-width:1px;font-size:.76rem}.chips label.on{background:rgba(160,200,70,.1)}.cd.sel{background:#b3e64b;color:#18210d}.fab{width:54px;height:54px;bottom:100px}.tlbar{height:5px}.tlbar i{border-radius:2px}.tlm{height:15px;top:-5px;width:2px;box-shadow:none}.tll{font-size:.65rem;margin-top:11px}.offb{font-size:.75rem}.alert,.ok,.err{font-size:.85rem}.sb{gap:12px}.panel{padding:12px}.panel b{font-size:.86rem}
/* Sign-in is intentionally calm and compact on small screens. */
.auth{max-width:450px;margin:0 auto;padding:52px 24px 50px;min-height:100svh}.auth .logoimg{width:76px;height:76px;border-radius:18px;margin:0 auto 20px}.auth-brand{text-align:center;margin:0;font-size:2.7rem;font-weight:800;letter-spacing:-.07em}.auth-kicker{text-align:center;color:var(--leaf);font-size:.65rem;font-weight:650;letter-spacing:.32em;margin:6px 0 30px}.auth>p.mute{font-size:.87rem;max-width:300px;margin:12px auto 28px}.auth .card{padding:24px;background:var(--card);border-radius:18px}.auth-heading{font-size:1.35rem;margin:0 0 5px}.auth-subtitle{font-size:.8rem;color:var(--mute);margin:0 0 24px}.auth-footer{font-size:.68rem;color:var(--mute);text-align:center;margin-top:25px;letter-spacing:.03em}.auth .btn{min-height:48px}.auth #swap{font-size:.8rem}.auth .chk{font-size:.75rem;line-height:1.5}
@media(min-width:1000px){.wrap{padding-top:38px}.auth{padding-top:70px}.card{padding:22px}.quick{gap:14px}nav.tabs{bottom:18px;border:1px solid var(--line);border-radius:18px;padding:8px}}
@media(max-width:370px){.wrap{padding:16px 12px 120px}.auth{padding:30px 16px}.auth .card{padding:18px}.gbtns{grid-template-columns:1fr 1fr}.gbtns>:last-child{grid-column:1/-1}.quick,.quick.mgrid{gap:7px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Reference-inspired visual revision: animation remains the central visual. */
:root:not([data-theme="light"]){--bg:#080d0b;--bg2:#0d1411;--card:#101814;--line:#29342b;--leaf:#a8df3e;--led:#a8df3e;--led2:#91c432;--mute:#a5b0a6}
body::before{background:radial-gradient(ellipse at 85% 0,rgba(170,211,76,.075),transparent 42%),radial-gradient(ellipse at 0 70%,rgba(65,100,56,.045),transparent 45%)}
.wrap{max-width:680px;padding:22px 18px 125px}.top{margin-bottom:22px;border-bottom:0;padding-bottom:8px}.top .logoimg{width:39px;height:39px;border-radius:9px}.hi b{font-size:1.13rem;letter-spacing:-.035em}.hi span{font-size:.7rem;letter-spacing:.015em}.card{border-radius:12px;padding:17px;border-color:var(--line);box-shadow:0 8px 28px -22px #000}.card .mute{line-height:1.55}.h{font-size:.65rem;letter-spacing:.15em;margin-top:24px}.btn{border-radius:7px}.btn.led,.btn.pick,.fab{background:#a8df3e;color:#17200d}.btn.alt{background:transparent}.btn.sm{border-radius:7px}
/* Framed animation panel, without a photo cover or photo overview. */
.tent{position:relative;border-radius:13px;border:1px solid #3b4b30;background:radial-gradient(ellipse at 50% 32%,#26391c 0%,#142116 47%,#0b140e 90%);padding:16px 16px 5px;box-shadow:inset 0 1px 0 rgba(219,246,181,.05)}
.tent::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(135deg,rgba(190,222,139,.04),transparent 40%,rgba(0,0,0,.12))}.tent h2{font-size:1.5rem;letter-spacing:-.04em}.hbar{gap:12px}.hpill{border-radius:5px;padding:5px 9px;font-size:.7rem;background:#a8df3e}.hpill.dk{color:#dbeacb;background:#152013;border-color:#415833}.hname{font-size:.82rem;letter-spacing:.01em}.hexwrap{max-width:360px;aspect-ratio:300/320;margin:8px auto}.hexplant{left:16%;top:8%;width:68%}.hexsvg{opacity:.45}.hn{width:53px;height:53px;border-radius:11px;background:rgba(12,23,14,.94);border:1px solid #526d37;font-size:.59rem}.hn b{font-size:.95rem;color:#b3e64b;font-variant-numeric:tabular-nums}.hn.bad{border-color:#a3854c}.cues{gap:5px;margin-bottom:10px}.cue{border-radius:5px;padding:4px 7px;font-size:.66rem;background:#152012;border-color:#3d5030}
/* Quiet two-column reading rhythm for manually recorded values. */
.row{gap:10px}.row>.card{min-width:0;padding:14px}.big{font-size:2.35rem;letter-spacing:-.06em;color:var(--leaf)}table{font-size:.82rem}td{padding:10px 0;border-bottom:1px solid var(--line)}td:last-child{font-variant-numeric:tabular-nums}input,select,textarea{border-radius:6px}.panel{border-radius:9px}.tag{font-size:.7rem}.gcard{padding:16px}.mini{width:83px;height:99px;border-radius:8px;background:radial-gradient(ellipse at 50% 25%,#304422,#101b12)}.ginfo b{font-size:1.05rem}.gstat{gap:8px 14px;font-size:.71rem}.gbtns .btn{font-size:.75rem}.gdel{top:9px;right:8px}.gcard:hover{border-color:#4c6040}.item{border-radius:10px;margin-bottom:10px}.day{position:relative;padding-left:13px;border-left:1px solid var(--line)}.dh{font-size:.75rem;margin-bottom:10px}.dh::before{content:"";position:absolute;left:-4px;top:7px;width:7px;height:7px;border-radius:50%;background:var(--leaf)}.ico{width:35px;height:35px;border-radius:7px;font-size:1.05rem}
.quick,.quick.mgrid{gap:9px}.tile,.quick .tile,.quick.mgrid .tile{border-radius:9px;padding:13px 5px;font-size:.72rem;gap:7px}.tile>span{width:28px;height:28px}.tile>span .ti{width:24px;height:24px;stroke-width:1.5}.hubst{padding:19px 17px;border-left:2px solid var(--leaf)}.hubst b{font-size:1rem}.hubst .mute{font-size:.75rem}.hubr b{color:var(--leaf);font-size:1.25rem}.hub #hubq{font-size:.87rem;background:var(--bg2);border-radius:9px}.sheet{border-radius:18px 18px 0 0}.sheet::before{content:"";display:block;width:36px;height:4px;background:var(--line);border-radius:3px;margin:-12px auto 20px}
nav.tabs{max-width:680px;border-radius:14px 14px 0 0;border-color:var(--line);padding-top:8px;background:var(--navbg)}nav.tabs button{font-size:.6rem;gap:5px}nav.tabs button.on{background:transparent;color:var(--leaf)}nav.tabs button.on::after{content:"";height:3px;width:14px;border-radius:3px;background:var(--leaf);margin-top:1px}nav.tabs button .ti{width:22px;height:22px;stroke-width:1.5}.fab{box-shadow:0 5px 20px #0006;font-size:1.8rem;width:49px;height:49px}.auth .card{border-radius:13px}.auth .logoimg{border-radius:16px}.auth-kicker{color:var(--leaf)}
:root[data-theme="light"] .tent{background:radial-gradient(ellipse at 50% 32%,#d9e9bd,#b2cb96);color:#182811;border-color:#8ca475}:root[data-theme="light"] .hname{color:#314a22}:root[data-theme="light"] .gcard:hover{border-color:#81996d}
@media(min-width:1000px){.wrap{padding-top:32px}nav.tabs{border-radius:13px;bottom:16px}.tent{padding:21px 24px 9px}.hexwrap{max-width:370px}}
@media(max-width:420px){.row{grid-template-columns:repeat(2,minmax(0,1fr))}.row>label{min-width:0}.row>.card{padding:12px}.row .big{font-size:1.9rem}.row input,.row select{padding-left:8px;padding-right:8px}}
@media(max-width:350px){.wrap{padding-left:12px;padding-right:12px}.row{grid-template-columns:1fr}.hn{width:46px;height:46px}.hn b{font-size:.82rem}.hexplant{left:19%;width:62%}.tent{padding-left:10px;padding-right:10px}}

/* Navigation gestures and optional mascot. */
.nav-back{display:grid;place-items:center;flex:none;width:38px;height:38px;border:1px solid var(--line);border-radius:9px;background:var(--bg2);color:var(--ink);cursor:pointer}.nav-back svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.swipe-back-active::after{content:'‹';position:fixed;left:10px;top:45%;display:grid;place-items:center;width:40px;height:65px;border:1px solid var(--leaf);border-radius:16px;background:var(--card);color:var(--leaf);font-size:2rem;z-index:100;pointer-events:none}.hi::before{content:'GROWING';display:block;color:var(--leaf);font-size:.61rem;font-weight:800;letter-spacing:.23em;margin-bottom:3px}.top{gap:12px}.hub .quick{grid-template-columns:repeat(3,minmax(0,1fr))}.hub .tile{min-height:95px}.hubst{background:linear-gradient(115deg,var(--card),var(--bg2));border-radius:12px}.hubr{padding-left:12px;border-left:1px solid var(--line)}
.companion-launcher{position:fixed;left:max(12px,calc((100vw - 680px)/2 + 14px));bottom:calc(94px + env(safe-area-inset-bottom));z-index:7;display:flex;align-items:center;gap:6px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:0 12px 0 3px;box-shadow:0 8px 28px #0004;cursor:pointer;max-width:155px;min-height:50px}.companion-launcher img{height:66px;width:48px;object-fit:contain;margin-top:-17px;filter:drop-shadow(0 3px 5px #0003);pointer-events:none}.companion-launcher span{font-size:.68rem;font-weight:650;letter-spacing:.02em}.companion-launcher:hover{border-color:var(--leaf)}.companion-launcher:active{transform:scale(.97)}
dialog.ov{margin:0;border:0;padding:0;width:100%;max-width:none;height:100%;max-height:none;color:var(--ink);background:transparent;overflow:hidden;align-items:flex-end}dialog.ov::backdrop{background:rgba(2,7,4,.8);backdrop-filter:blur(10px)}.mascot-tour-card{position:relative;max-width:440px;width:100%;padding:18px 23px calc(25px + env(safe-area-inset-bottom));text-align:center;border:1px solid var(--line);background:var(--card);max-height:94svh;overflow-y:auto}.tour-close{position:absolute;right:15px;top:15px;display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:50%;background:var(--bg2);color:var(--mute);font-size:1.5rem;cursor:pointer;z-index:2}.tour-art{display:flex;justify-content:center;align-items:center;height:235px;margin:-10px -10px 10px;background:radial-gradient(ellipse at 50% 65%,rgba(166,210,76,.15),transparent 65%)}.tour-art img{height:235px;width:185px;object-fit:contain;filter:drop-shadow(0 12px 12px #0003)}.eyebrow{font-size:.6rem;line-height:1.5;font-weight:750;letter-spacing:.15em;color:var(--leaf);margin:0 0 10px}.mascot-tour h2{font-size:1.65rem;letter-spacing:-.05em;margin:0 0 12px}.tour-copy{font-size:.86rem;line-height:1.7;color:var(--mute);margin:0 auto;min-height:94px;max-width:335px}.tour-progress{display:flex;justify-content:center;gap:6px;margin:20px 0}.tour-progress span{width:6px;height:6px;background:var(--line);border-radius:4px}.tour-progress .active{width:22px;background:var(--leaf)}.tour-actions{display:grid;grid-template-columns:1fr 1.45fr;gap:10px}.tour-actions .btn{min-height:47px}.companion-card{position:relative;max-width:440px;padding:25px 22px calc(25px + env(safe-area-inset-bottom))}.companion-header{display:flex;gap:14px;align-items:center;padding-right:35px;margin-bottom:15px}.companion-header img{width:67px;height:90px;object-fit:contain}.companion-header h2{font-size:1.45rem;margin:0}.companion-header .eyebrow{font-size:.55rem;margin-bottom:5px}.companion-copy{font-size:.89rem;line-height:1.75;color:var(--ink)}.companion-disclaimer{font-size:.68rem;color:var(--mute);margin:15px 0 22px}.companion-card>.btn{display:block;width:100%;margin-top:10px}.mascot-tour-card::before,.companion-card::before{display:none}
@media(min-width:700px){dialog.ov{align-items:center}.mascot-tour-card,.companion-card{border-radius:20px}.tour-art{height:265px}.tour-art img{height:265px}}
@media(max-height:730px){.tour-art{height:165px}.tour-art img{height:165px}.tour-copy{min-height:0}.mascot-tour-card{padding-top:15px}.tour-progress{margin:15px 0}.mascot-tour h2{font-size:1.4rem}}
@media(max-width:350px){.mascot-tour-card{padding-left:17px;padding-right:17px}.tour-copy{font-size:.81rem}.companion-launcher{padding-right:8px;max-width:125px}.companion-launcher img{height:58px;width:42px}.companion-launcher span{font-size:.62rem}.hub .quick{grid-template-columns:repeat(3,minmax(0,1fr))}}
dialog.ov:not([open]){display:none}.hi{text-align:left}

/* Growing identity and animated Sour sign-in scene. */
.auth-growing{max-width:1050px;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:40px;padding:35px;min-height:100svh}.auth-scene{min-width:0;position:relative}.watering-scene{position:relative;height:490px;max-width:390px;margin:0 auto;overflow:hidden;border-radius:24px;background:radial-gradient(ellipse at 50% 55%,rgba(174,217,76,.11),transparent 70%)}.watering-art{display:block;width:100%;height:100%;object-fit:contain;animation:sour-water-sway 4s ease-in-out infinite;transform-origin:50% 90%;filter:drop-shadow(0 15px 16px #0003)}.watering-drops{position:absolute;left:83%;top:59%;width:12%;height:18%;pointer-events:none;transform:rotate(11deg)}.watering-drops i{position:absolute;top:0;left:15%;width:4px;height:9px;border-radius:60% 60% 70% 70%;background:#9ee6ec;opacity:0;animation:sour-water-drop 1.35s linear infinite}.watering-drops i:nth-child(2){left:35%;animation-delay:.32s}.watering-drops i:nth-child(3){left:55%;animation-delay:.68s}.watering-drops i:nth-child(4){left:70%;animation-delay:1s}.scene-motion{position:absolute;left:50%;transform:translateX(-50%);bottom:3px;border:1px solid var(--line);border-radius:20px;background:var(--bg2);padding:6px 12px;white-space:nowrap;font-size:.6rem;color:var(--mute);cursor:pointer}.growing-lockup{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:18px}.growing-lockup img{border-radius:12px}.growing-lockup h1{font-size:2rem;letter-spacing:-.06em;line-height:1;margin:0;font-weight:850}.growing-lockup span{display:block;font-size:.66rem;letter-spacing:.035em;color:var(--mute);margin-top:6px}.auth-panel{min-width:0}.auth-growing .auth-panel .card{padding:30px;border-radius:18px}.auth-growing .auth-heading{font-size:1.7rem;margin:10px 0 8px;letter-spacing:-.05em}.auth-growing .auth-subtitle{text-align:left;margin:0 0 28px}.auth-growing .auth-footer{margin-top:18px}.auth-growing .eyebrow{font-size:.58rem}.watering-scene.is-paused .watering-art,.watering-scene.is-paused .watering-drops i{animation-play-state:paused}.watering-scene.is-paused .watering-drops{visibility:hidden}
@keyframes sour-water-sway{0%,100%{transform:rotate(-.7deg) translateY(0)}50%{transform:rotate(.7deg) translateY(-4px)}}
@keyframes sour-water-drop{0%{transform:translate(0,-3px);opacity:0}12%{opacity:.85}85%{opacity:.65}100%{transform:translate(-14px,58px);opacity:0}}
/* Sour follows a real menu walkthrough with a focused spotlight. */
dialog.guided-tour{background:transparent;backdrop-filter:none}.guided-tour::backdrop{background:transparent;backdrop-filter:none}.tour-spotlight{position:fixed;border:1px solid var(--leaf);border-radius:12px;box-shadow:0 0 0 300vmax rgba(2,7,4,.77);pointer-events:none;transition:left .25s ease,top .25s ease,width .25s ease,height .25s ease}.tour-spotlight[hidden]{display:none}.guided-card{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);width:calc(100% - 28px);max-width:420px;max-height:calc(100svh - 36px);overflow:auto;padding:23px 22px 20px;border-radius:18px;border:1px solid var(--line);box-shadow:0 18px 70px #0009;text-align:left;animation:guided-card-in .25s ease-out}.guided-card::before{display:none}.guided-card .tour-copy{min-height:0;font-size:.8rem;line-height:1.65;margin:0;max-width:none;padding-right:1px}.guided-card h2{font-size:1.35rem;margin:0 0 11px;max-width:280px}.guided-card .eyebrow{padding-right:50px;font-size:.57rem;margin-bottom:12px}.guided-mascot{float:right;width:80px;height:112px;margin:20px 0 4px 12px;shape-outside:ellipse(50% 50%);animation:sour-tour-hello .8s ease both;transform-origin:50% 90%}.guided-mascot img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 6px #0004)}.guided-card .tour-progress{clear:both;margin:18px 0}.guided-card .tour-actions .btn{min-height:43px}.guided-card .tour-close{width:31px;height:31px;right:12px;top:12px}
@keyframes sour-tour-hello{0%{transform:translateY(15px) rotate(-8deg);opacity:0}40%{transform:translateY(-4px) rotate(5deg);opacity:1}70%{transform:rotate(-3deg)}100%{transform:translateY(0) rotate(0)}}
@keyframes guided-card-in{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
/* Local question-and-answer panel, including keyboard-friendly controls. */
.sour-conversation{max-height:240px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.sour-conversation:empty{display:none}.sour-bubble{border:1px solid var(--line);background:var(--bg2);border-radius:10px;padding:11px 12px;margin:10px 0;font-size:.79rem;line-height:1.65;overflow-wrap:anywhere}.sour-bubble b{display:block;color:var(--leaf);font-size:.62rem;letter-spacing:.04em;margin-bottom:3px}.sour-bubble p{margin:0}.sour-bubble.user{margin-left:30px;background:var(--card)}.sour-bubble.user b{color:var(--mute)}#sour-question{margin-top:20px}#sour-question label{margin-bottom:7px}.sour-input-row{display:flex;align-items:center;gap:8px}.sour-input-row input{min-width:0;margin:0;flex:1}.sour-input-row .btn{padding:12px 15px;min-height:48px}.sour-suggestions{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}.sour-suggestions button{border:1px solid var(--line);border-radius:18px;padding:6px 10px;color:var(--mute);background:var(--bg2);font-size:.65rem;cursor:pointer}.companion-card{max-height:90svh;overflow:auto}.companion-card .companion-copy{font-size:.82rem}.companion-card .companion-disclaimer{font-size:.65rem;line-height:1.6}.companion-launcher img{animation:sour-tour-hello .7s ease both}
@media(max-width:720px){.auth-growing{display:block;max-width:460px;padding:17px 21px 35px}.watering-scene{height:238px;max-width:300px;border-radius:18px}.growing-lockup{margin:9px 0 23px}.growing-lockup h1{font-size:1.8rem}.growing-lockup img{height:39px;width:39px;border-radius:10px}.auth-growing .auth-panel .card{padding:23px}.auth-growing .auth-heading{font-size:1.45rem}.auth-growing .auth-subtitle{margin-bottom:24px}.watering-drops{left:74%;top:58%;width:9%}.scene-motion{font-size:.55rem;padding:4px 9px}}
@media(max-width:350px){.auth-growing{padding:12px 15px 28px}.watering-scene{height:206px}.auth-growing .auth-panel .card{padding:19px}.growing-lockup{margin-bottom:20px}.guided-card{padding:21px 16px 17px}.guided-mascot{width:62px;height:95px;margin-left:8px}.guided-card .tour-copy{font-size:.76rem}.guided-card h2{font-size:1.25rem}.sour-input-row{gap:5px}.sour-input-row .btn{padding:11px}}
@media(prefers-reduced-motion:reduce){.watering-art,.watering-drops i,.guided-mascot,.companion-launcher img{animation:none!important}.watering-drops{display:none}.tour-spotlight{transition:none}.scene-motion{display:none}}
dialog.guided-tour::backdrop{background:transparent;backdrop-filter:none}.tour-spotlight{z-index:0}.guided-card{z-index:1}
/* Feedback and durable offline status. */
#sync-status{position:sticky;top:0;z-index:10;max-width:680px;margin:0 auto;padding:8px 16px;background:var(--bg2);border-bottom:1px solid var(--line);color:var(--leaf);font-size:.69rem;line-height:1.5}#sync-status[hidden]{display:none}.feedback-intro{font-size:.83rem;margin-bottom:22px}.feedback-thread{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:16px;background:var(--card);border:1px solid var(--line);border-radius:12px;text-align:left;margin-bottom:11px;cursor:pointer}.feedback-thread>span:first-child{min-width:0}.feedback-thread b{display:block;font-size:.9rem;overflow-wrap:anywhere}.feedback-thread small{display:block;color:var(--mute);font-size:.66rem;margin-top:5px}.feedback-preview{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--mute);font-size:.77rem;max-width:min(66vw,460px);margin-top:7px}.feedback-badge{flex:none;white-space:nowrap;border-radius:20px;padding:4px 8px;background:var(--leaf);color:var(--bg);font-size:.65rem;font-weight:700}.feedback-message{padding:15px 16px;border:1px solid var(--line);background:var(--card);border-radius:12px;margin:11px 18px 11px 0;overflow-wrap:anywhere}.feedback-message.own{margin:11px 0 11px 18px;background:var(--bg2)}.feedback-message.system{margin:14px 0;border-style:dashed;background:transparent}.feedback-message header{display:flex;align-items:center;justify-content:space-between;gap:9px;font-size:.7rem}.feedback-message header b{color:var(--leaf)}.feedback-message header small{font-size:.62rem;color:var(--mute)}.feedback-message p{font-size:.85rem;line-height:1.7;white-space:pre-wrap;margin:10px 0 0}#feedback-compose{margin-top:22px}#feedback-compose textarea{margin-bottom:16px;min-height:115px}.feedback-messages{margin-top:20px}.sync-pending-item p{font-size:.8rem}.sync-pending-item b{font-size:.86rem}#offline-prepare,#offline-toggle,#sync-retry{display:block;width:100%;margin-top:10px}#app .top .logoimg[role=button]{cursor:pointer;transition:transform .2s}#app .top .logoimg[role=button]:hover{transform:rotate(-6deg) scale(1.07)}#app .top .logoimg[role=button]:active{transform:scale(.93)}.sour-wave{animation:sour-friendly-wave 1.2s ease both;transform-origin:50% 85%}.sour-celebrate img{animation:sour-success-hop .7s ease both!important}
@keyframes sour-friendly-wave{0%{transform:rotate(-8deg) translateY(7px)}25%{transform:rotate(6deg) translateY(-3px)}50%{transform:rotate(-5deg)}75%{transform:rotate(3deg)}100%{transform:rotate(0)}}
@keyframes sour-success-hop{0%,100%{transform:translateY(0)}35%{transform:translateY(-10px) rotate(-5deg)}65%{transform:translateY(-3px) rotate(4deg)}}
@media(prefers-reduced-motion:reduce){.sour-wave,.sour-celebrate img{animation:none!important}#app .top .logoimg[role=button]{transition:none}#app .top .logoimg[role=button]:hover{transform:none}}

.feedback-thread>span:first-child{flex:1}.feedback-preview{width:100%;max-width:100%}
/* Decorative companions and receipt-based costs. */
.avatar-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.avatar-option{margin:0;cursor:pointer;position:relative;min-width:0}.avatar-option input{position:absolute;width:1px;height:1px;opacity:0;min-height:0;margin:0;padding:0}.avatar-option>span{display:flex;align-items:center;flex-direction:column;gap:8px;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--card);height:100%}.avatar-option img{display:block;width:100%;aspect-ratio:1;height:auto;object-fit:contain;border-radius:8px;background:#101814}.avatar-option b{font-size:.67rem;line-height:1.45;text-align:center;color:var(--ink);overflow-wrap:anywhere}.avatar-option input:checked+span{border-color:var(--leaf);box-shadow:0 0 0 1px var(--leaf)}.avatar-option input:focus-visible+span{outline:2px solid var(--leaf);outline-offset:3px}.avatar-save{position:sticky;bottom:88px;padding:12px 0;background:linear-gradient(transparent,var(--bg) 20%)}.avatar-save button{width:100%}.ledger-hint{font-size:.75rem;line-height:1.65}.ledger-preview{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px;border:1px solid var(--line);border-radius:10px;background:var(--bg2);margin:17px 0 10px}.ledger-preview span{font-size:.74rem;color:var(--mute)}.ledger-preview b{font-size:1.6rem;color:var(--leaf);font-variant-numeric:tabular-nums}.ledger-preview .invalid{font-size:.8rem;color:var(--mute)}#ledger-entry>button{width:100%;margin-top:9px}.ledger-defaults summary{font-size:.85rem;padding:6px 0}.ledger-row header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.ledger-row header>div{min-width:0}.ledger-row header b{font-size:.88rem;overflow-wrap:anywhere}.ledger-row small{display:block;color:var(--mute);font-size:.65rem;line-height:1.5;margin-top:6px}.ledger-row strong{flex:none;color:var(--leaf);font-size:1.1rem;font-variant-numeric:tabular-nums}.ledger-row-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}#ledger-defaults button{width:100%}.companion-launcher{max-width:205px}.companion-launcher span{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.companion-header h2{overflow-wrap:anywhere}.companion-header img{border-radius:8px}.guided-mascot img{border-radius:10px}
@media(min-width:700px){.avatar-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.avatar-option b{font-size:.76rem}}
@media(max-width:350px){.avatar-grid{gap:7px}.avatar-option>span{padding:6px}.avatar-option b{font-size:.61rem}.ledger-preview{padding:12px}.ledger-preview b{font-size:1.3rem}}
/* Companion team and progressive forms */
[hidden]{display:none!important}.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.team-choice{padding:10px 5px;display:flex;flex-direction:column;align-items:center;text-align:center;cursor:pointer;color:inherit;min-width:0}.team-choice.selected{border-color:var(--lime,#9bdd32)}.team-choice span:not(.team-art),.team-choice small{font-size:.72rem;overflow-wrap:anywhere}.team-art{display:block;width:150px;height:200px;background-image:url('companions-team.png');background-size:300% 100%;background-repeat:no-repeat;margin:0 auto 12px;animation:team-float 4s ease-in-out infinite}.team-start{background-position:0% 50%}.team-observe{background-position:50% 50%;animation-delay:-1s}.team-daily{background-position:100% 50%;animation-delay:-2s}.team-choice .team-art{width:100%;height:150px}.team-content>.team-art{float:right;width:110px;height:160px;margin-left:12px}.team-content:after{content:'';display:table;clear:both}.team-content fieldset{border:0;padding:0;margin:0;min-width:0}.team-content legend{font-weight:700;margin:10px 0}.team-actions{display:flex;gap:8px;margin-top:16px}.team-content dd{margin:0 0 10px;overflow-wrap:anywhere}.team-content dt{color:var(--muted,#9aa598);font-size:.8rem}.team-due{display:block;margin:10px auto;max-width:95%;white-space:normal}.experience-hint{grid-column:1/-1}.team-content textarea{max-width:100%}@keyframes team-float{50%{transform:translateY(-5px)}}@media(max-width:400px){.team-choice .team-art{height:115px}.team-choice small{display:none}}@media(prefers-reduced-motion:reduce){.team-art{animation:none}}

.team-motion-paused .team-art{animation-play-state:paused}

.companion-launcher .team-small{width:38px;height:55px;margin:0;flex-shrink:0}
/* Online admin, compact mobile cards and safe long-text layout. */
.admin-nav{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:18px}.admin-nav .btn{white-space:normal}.admin-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-counts>button{margin:0;display:flex;flex-direction:column;align-items:center;color:inherit;cursor:pointer}.admin-counts b{font-size:2rem;color:var(--leaf)}.admin-counts span{font-size:.8rem}.admin-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-row>div{min-width:0;overflow-wrap:anywhere}.admin-row p{margin:5px 0}.admin-row>.btn{flex:none}.admin-details{display:grid;grid-template-columns:1fr 1fr;gap:7px}.admin-details dd{margin:0;overflow-wrap:anywhere}.admin-shares{border:1px solid var(--line);border-radius:10px;margin:15px 0;padding:12px}.admin-shares .check,.admin-view .check{display:flex;align-items:center;gap:8px}.admin-view .check input{width:20px;min-height:20px}.admin-json{margin:16px 0}.admin-json textarea{font:13px/1.6 ui-monospace,monospace;max-width:100%;overflow:auto;white-space:pre}.admin-view .team-actions{flex-wrap:wrap}.admin-view .team-actions>.btn{white-space:normal}.admin-dialog{width:min(92vw,500px);max-height:85dvh;overflow:auto;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:18px;padding:24px}.admin-dialog::backdrop{background:#0009}.admin-dialog .btn{margin-top:12px}.admin-dialog input{font-family:ui-monospace,monospace}.admin-view p,.admin-view small{overflow-wrap:anywhere}@media(min-width:700px){.admin-counts{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:350px){.admin-row{align-items:flex-start;flex-direction:column}}
/* Separate editorial fruit/vegetable knowledge library. */
.orchard-mascot{float:right;width:85px;height:130px;margin:0 0 10px 12px}.orchard-view>.card:after{content:'';display:table;clear:both}.orchard-article p{white-space:pre-wrap;overflow-wrap:anywhere}.orchard-article h4{margin:18px 0 6px}.orchard-article a{color:var(--leaf);overflow-wrap:anywhere;text-decoration:underline}.orchard-article li{margin:8px 0}.orchard-source{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.orchard-sources{margin:16px 0}.orchard-view input,.orchard-view textarea{max-width:100%}.orchard-view .team-actions{flex-wrap:wrap}.orchard-view .team-actions .btn{white-space:normal}
/* Generic camera capture and single-frame timelapse viewer. */
.tl-view .btn{white-space:normal}.tl-view .tl-stage{aspect-ratio:16/9;background:#000;border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center}.tl-stage img{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain}.tl-view p{overflow-wrap:anywhere}.tl-camera-dialog{width:min(95vw,640px);max-height:94dvh;overflow:auto;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:18px;padding:18px}.tl-camera-dialog::backdrop{background:#000b}.tl-camera-dialog video{display:block;width:100%;aspect-ratio:16/9;object-fit:contain;background:#000;border-radius:10px}.tl-camera-dialog .team-actions{display:flex;flex-wrap:wrap;gap:8px}.tl-camera-dialog .btn{white-space:normal}.tl-view input[type=range]{width:100%}.tl-view #tl-video-download{display:inline-block;margin-top:12px}.tl-view input[type=file]{max-width:100%}
/* CMS-style backend: persistent desktop sidebar and accessible mobile drawer. */
.cms-shell{--cms-side:248px;min-height:100dvh;background:var(--bg)}.cms-sidebar{position:fixed;inset:0 auto 0 0;width:var(--cms-side);background:#111815;border-right:1px solid #29352c;overflow:auto;z-index:110;padding:24px 15px;display:flex;flex-direction:column;color:#e7efe6}.cms-brand{display:flex;gap:11px;align-items:center;padding:0 10px 24px}.cms-brand img{width:38px;height:44px;object-fit:contain}.cms-brand b{display:block;font-size:1.1rem;letter-spacing:.08em}.cms-brand small{font-size:.6rem;letter-spacing:.16em;color:#9cc950}.cms-nav-label{font-size:.6rem;color:#859385;letter-spacing:.16em;margin:12px 14px}.cms-nav.admin-nav{display:flex;flex-direction:column;gap:4px;margin:0}.cms-nav-item{border:0;background:transparent;color:#b7c4b7;display:flex;align-items:center;gap:12px;border-radius:9px;padding:12px 14px;text-align:left;cursor:pointer;font:inherit;font-size:.82rem;min-height:43px}.cms-nav-item:hover{background:#1a251c;color:#fff}.cms-nav-item.selected{background:#a1d83a;color:#132307;font-weight:700}.cms-nav-dot{width:7px;height:7px;border:1px solid currentColor;border-radius:2px;flex:none}.cms-sidebar-footer{margin-top:26px;padding:18px 13px;border-top:1px solid #29352c;font-size:.8rem}.cms-sidebar-footer p{margin:9px 0}.cms-sidebar-footer small{color:#91a08f;font-size:.68rem}.cms-role{display:inline-block;border:1px solid #526b38;border-radius:5px;padding:3px 7px;color:#b6e47b;font-size:.6rem;letter-spacing:.1em}.cms-main{min-width:0;margin-left:var(--cms-side)}.cms-toolbar{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 32px;background:var(--card)}.cms-breadcrumb{font-size:.78rem;color:var(--mute)}.cms-content{padding:30px 32px 60px;max-width:1500px;margin:auto}.cms-content>h1{font-size:clamp(1.65rem,3vw,2.2rem);margin:8px 0 24px;letter-spacing:-.04em}.cms-content .admin-view.wrap,.cms-content .tl-view.wrap,.cms-content .feedback-view.wrap{width:100%;max-width:none;padding:0;margin:0}.cms-content .admin-counts{grid-template-columns:repeat(3,minmax(0,1fr))}.cms-content .admin-counts>button{padding:22px 12px;text-align:center}.cms-content .admin-counts b{font-size:2.4rem}.cms-content .orchard-view>.top,.cms-content .tl-view>.top,.cms-content .feedback-view>.top{display:none}.cms-content .tl-view,.cms-content .orchard-view{max-width:1000px}.cms-close,#cms-menu-toggle{display:none}.cms-overlay{position:fixed;inset:0;border:0;background:#0009;z-index:105}.cms-mode #companion-launcher{display:none}.cms-mode #sync-status{margin-left:248px}.cms-content .card{background:var(--card)}.cms-content .feedback-intro{margin-top:0}@media(max-width:900px){.cms-sidebar{transform:translateX(-105%);visibility:hidden;transition:transform .18s ease}.cms-main{margin-left:0}.cms-menu-open .cms-sidebar{transform:translateX(0);visibility:visible}.cms-toolbar{height:68px;padding:12px 16px}.cms-content{padding:24px 16px 48px}.cms-breadcrumb{display:none}#cms-menu-toggle,.cms-close{display:block}.cms-close{margin-left:auto;border:0;background:transparent;color:#d4e3ce;font-size:1.6rem;cursor:pointer}.cms-drawer-open body{overflow:hidden}.cms-content .admin-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.cms-mode #sync-status{margin-left:0}}@media(max-width:350px){.cms-content{padding-left:12px;padding-right:12px}.cms-toolbar{padding-left:12px;padding-right:12px}.cms-content .admin-counts>button{padding:16px 6px}}@media(prefers-reduced-motion:reduce){.cms-sidebar{transition:none}}

.cms-content .bridge-view.wrap{width:100%;max-width:1000px;padding:0;margin:0}.cms-content .bridge-view>.top{display:none}#bridge-code{max-width:100%;width:100%;font:12px/1.6 monospace;overflow-wrap:anywhere}
/* Keep long administration menus in one scrollable column on small screens. */
.cms-nav.admin-nav{flex-wrap:nowrap;flex-shrink:0}.cms-sidebar>*{flex-shrink:0}
.cms-sidebar{height:100dvh;max-height:100dvh;overflow-y:auto;overscroll-behavior:contain}
