/* A quiet, tactile garden: one visual rhythm across the daily growth cycle. */
:root{--touch:44px}
button,input,select{min-height:var(--touch)}
button{touch-action:manipulation}
input[type=checkbox]{min-height:22px;min-width:22px}
input[type=range]{min-height:44px}
.card,.forest-detail,.forest-intro{overflow-wrap:anywhere}
.wf-grid>*,.lay>*,.wf-task>*,.row>*{min-width:0}
.wf-form{grid-template-columns:repeat(2,minmax(0,1fr))}
.wf-form .f:first-child{grid-column:1/-1}
.wf-form .btn{grid-column:1/-1}
.foot .mini{margin:8px 3px}
.inner-back{min-height:44px}
.has-modal{overflow:hidden}
.journal-words{max-width:68ch}
.journal-words:empty{display:none}
.growth-memory{margin-top:8px;margin-bottom:0}
.qc{margin-top:18px;padding:20px 24px}
.qt{font-size:21px}
.topnav .ni{min-height:46px}
@media(max-width:760px){
 header{padding:10px 16px;gap:10px;position:relative}
 .brand{flex:1}.brand strong{font-size:15px}.brand img{width:32px;height:32px}
 header .seg{order:3;width:100%}header .seg button{min-height:44px}
 .hr{gap:5px}.hr .m{display:none}.hr .mini{font-size:11px;padding:7px}
 .topnav-shell{position:fixed;bottom:0;left:0;right:0;z-index:10;padding:5px 6px calc(5px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);border-bottom:0;background:var(--paper);box-shadow:0 -4px 22px #3442380b}
 .topnav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));overflow:visible;gap:3px}
 .topnav .ni{padding:7px 2px;flex-direction:column;justify-content:center;gap:4px;font-size:11px;min-height:56px;border-radius:12px}
 .topnav .ni svg{width:21px;height:21px}
 body.in-app{padding-bottom:calc(82px + env(safe-area-inset-bottom,0px))}
 main.w{padding:22px 16px 28px}.ph{gap:12px;margin-bottom:18px}.ph h1{font-size:28px}.ph p{font-size:13px}
 .ph>.btn{width:100%}.card{padding:18px}.card h2{font-size:22px}
 .lay,.wf-grid,.calendar-layout{grid-template-columns:minmax(0,1fr)}
 .lay{gap:16px}.lay>.stack{display:flex;flex-direction:column}.lay>.stack>.card{margin-bottom:0}.lay>.stack>.card+.card{margin-top:16px}
 .row{flex-wrap:wrap}.hd{flex-wrap:wrap}.it select{max-width:100%}
 .acts{gap:8px}.acts>.mini{flex-grow:1}
 .mood{gap:4px}.mood button{min-height:48px;font-size:11px;padding:8px 1px}
 .ck,.tk{min-height:48px;font-size:14px;gap:12px}
 .ts{bottom:calc(88px + env(safe-area-inset-bottom,0px));width:max-content;max-width:calc(100vw - 28px);border-radius:16px;text-align:center}
 .mb{padding:0;align-items:end}.md{width:100%;max-height:90dvh;border-radius:22px 22px 0 0;padding:24px 20px calc(24px + env(safe-area-inset-bottom,0px));overscroll-behavior:contain}
 .md .acts{position:sticky;bottom:-1px;background:var(--paper);padding-top:10px}.md .acts .btn{flex:1}
 .forest-tree-card{flex-basis:170px}.forest-peek-copy small{white-space:normal}.forest-scrolls .mini{min-width:44px}
 .wf-head{gap:6px}.wf-head input[type=date]{flex:1;min-width:135px}.wf-task{grid-template-columns:1fr}.wf-actions select{flex:1}
 .cal-month-actions .mini{min-width:44px}.cal-day{min-height:44px}
 .stg{gap:4px}.stg button{font-size:11px;padding:8px 1px;min-height:48px}
}
@media(max-width:380px){main.w{padding-left:12px;padding-right:12px}.brand strong{font-size:13px}.card{padding:15px}.mood{grid-template-columns:repeat(3,1fr)}.mood button{font-size:12px}.stg{flex-wrap:wrap}.stg button{flex-basis:29%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
#sync-shell:has(#sync-status:empty){display:none!important}
.growth-guide{margin:0 0 18px;border:1px solid var(--line);border-radius:18px;background:var(--paper);padding:0 18px}
.growth-guide>summary{padding:14px 0;min-height:48px;font-size:14px}
.growth-guide .bg-guide{border:0;padding:0 0 18px;margin:0;background:transparent}
.grow-link-copy small{white-space:normal;overflow:visible;text-overflow:clip}

/* Owner's desk: a weekly brief above two practical work columns. */
.owner-brief{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:32px;background:#e8ecdf;border-color:#bbc6ae;margin-bottom:18px}
.owner-brief h2{font-size:30px;max-width:24ch;margin:12px 0}.owner-brief p{max-width:64ch;line-height:1.7}
.streak-oak{margin-top:24px;background:linear-gradient(125deg,#e8ecdf,#fffdf8 78%);border-color:#cbd5c1}
.oak-layout{display:grid;grid-template-columns:minmax(180px,1fr) minmax(0,1.6fr);align-items:center;gap:28px;margin:12px 0 22px}
.oak-art{background:radial-gradient(ellipse,#e1e9d9,transparent 72%);border-radius:50%;overflow:hidden}
.oak-art svg{display:block;width:100%;height:auto;transform-origin:50% 80%;animation:tree-grow .65s ease-out both}
.oak-stage{font:500 21px Georgia,serif;color:var(--forest)}
.oak-layout p{line-height:1.7}.oak-layout .acts:empty{display:none}
.oak-weeks{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:0;margin:0;border-top:1px solid #cbd5c1;border-bottom:1px solid #cbd5c1}
.oak-weeks li{padding:16px 14px;border-right:1px solid #cbd5c1;color:var(--muted)}
.oak-weeks li:last-child{border-right:0}.oak-weeks li.earned{background:#dfe8d6;color:var(--forest)}
.oak-weeks span{font:500 14px Georgia,serif;display:block}.oak-weeks strong{display:block;font:28px Georgia,serif;margin:8px 0;color:var(--forest)}.oak-weeks small{font-size:11px;line-height:1.5;display:block}
.oak-earned{font:500 16px Georgia,serif;color:var(--forest);margin:20px 0 12px}
.oak-pledge{font-size:12px;line-height:1.8;color:var(--muted);padding-top:14px;border-top:1px solid #cbd5c1;margin-bottom:0}
.oak-pledge h3{font:500 20px Georgia,serif;color:var(--forest);margin:0 0 10px}.oak-pledge p{margin:0}
.oak-impact{display:flex;align-items:center;gap:18px;margin-top:18px;padding:16px 18px;background:var(--pale);border:1px solid #cbd5c1;border-radius:12px;color:var(--forest)}
.oak-impact strong{font:500 42px Georgia,serif;flex-shrink:0;line-height:1.1}.oak-impact span{display:block;font:500 16px Georgia,serif;line-height:1.5}.oak-impact small{display:block;margin-top:4px;color:var(--muted);font-size:12px}
@media(max-width:650px){.oak-layout{grid-template-columns:1fr;gap:4px}.oak-art{max-width:300px;justify-self:center}.oak-weeks{grid-template-columns:repeat(2,minmax(0,1fr))}.oak-weeks li:nth-child(2){border-right:0}.oak-weeks li:nth-child(-n+2){border-bottom:1px solid #cbd5c1}.oak-layout .acts .btn{width:100%}}
.owner-week{border-left:1px solid #bbc6ae;padding:16px 0 16px 28px;display:flex;flex-direction:column;justify-content:center;gap:10px}.owner-week strong{font:64px Georgia,serif;color:var(--forest)}.owner-week span{font-size:14px;line-height:1.5}.owner-week small{font-size:11px;line-height:1.5;color:var(--muted)}
.owner-actions{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 24px}.owner-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:18px;background:var(--paper);margin-bottom:24px;overflow:hidden}.owner-counts button{background:transparent;border:0;border-right:1px solid var(--line);text-align:left;padding:20px;color:var(--forest);display:flex;flex-direction:column;gap:8px;font:inherit;cursor:pointer}.owner-counts button:last-child{border:0}.owner-counts button:hover{background:#e8ecdf}.owner-counts strong{font:34px Georgia,serif}.owner-counts span{font-size:13px;font-weight:600}.owner-counts small{color:var(--muted);font-size:11px}
.owner-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:22px;align-items:start}.owner-grid>*{min-width:0}.owner-section h3{margin:0 0 8px}.owner-section .row{gap:12px;flex-wrap:wrap}.owner-section .it:last-child{border-bottom:0}.owner-section .it .acts{flex-wrap:wrap}.owner-section .empty{padding:18px 0;text-align:left}.owner-review{background:#edf0e7}.owner-review p{line-height:1.7}.owner-section>.mini{margin-top:12px}
@media(max-width:850px){.owner-grid{grid-template-columns:1fr}.owner-brief{grid-template-columns:minmax(0,1fr) 165px;gap:20px}.owner-counts button{padding:16px}}
@media(max-width:550px){.owner-brief{grid-template-columns:1fr}.owner-brief h2{font-size:26px}.owner-week{border-left:0;border-top:1px solid #bbc6ae;padding:16px 0 0;display:grid;grid-template-columns:60px 1fr;align-items:center}.owner-week strong{font-size:44px;grid-row:span 2}.owner-week small{grid-column:2}.owner-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.owner-counts button:nth-child(2){border-right:0}.owner-counts button:nth-child(-n+2){border-bottom:1px solid var(--line)}.owner-actions{display:grid;grid-template-columns:1fr 1fr}.owner-actions button{font-size:12px;padding:10px}.owner-section .acts{width:100%}}

/* November 4: reachable header with Settings beside the logo. */
html { height:auto; min-height:100%; overflow-x:hidden; overflow-y:auto; }
body { display:block; position:static; height:auto; min-height:100%; overflow:visible; margin-top:0; }
#app { height:auto; max-height:none; overflow:visible; }
body.has-modal { overflow:hidden; }
header { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; justify-content:initial; gap:9px 12px; position:relative; top:auto; }
header .brand { grid-column:1; grid-row:1; min-width:0; }
header .hr { grid-column:2; grid-row:1; justify-self:end; }
header .seg { grid-column:1 / -1; grid-row:2; justify-self:start; }
#topnavitems button[data-v="settings"] { display:none; }
@media(max-width:760px) {
  header { padding-top:calc(10px + env(safe-area-inset-top,0px)); }
  header .hr .m { display:none; }
}
