@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-0.ttf)format("truetype")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-1.ttf)format("truetype")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-700.ttf)format("truetype")}:root{--text-primary:#040710e8;--text-secondary:#1a1d27b3;--text-muted:#1a1d278f;--surface:#fff;--surface-subtle:#0210410a;--surface-muted:#0210410f;--border-subtle:#0210410f;--nutrition:#d6f2b3;--protection:#e7d7ff;--repot:#fcefcf;--success:#4bb745;--elevation-small:0 4px 6px -2px #08090d0d, 0 10px 15px -3px #08090d1a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text-primary);font-synthesis:none;-webkit-font-smoothing:antialiased;background:#fff;font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}html,body{background:#fff;min-height:100%;margin:0}body{font-size:1rem}button,a{font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}button{border:0}button:disabled{opacity:1;cursor:default}a{text-decoration:none}img{display:block}h1,h2,h3,p{margin:0}:focus-visible{outline:2px solid var(--text-primary);outline-offset:3px}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.bonsai-app{width:min(100%,420px);min-height:100dvh;padding:24px 16px calc(96px + env(safe-area-inset-bottom,0px));background:var(--surface);margin-inline:auto;position:relative;overflow:clip}.dashboard-header{align-items:center;gap:16px;min-height:44px;display:flex}.profile-photo{object-fit:cover;border-radius:50%;flex:0 0 44px;width:44px;height:44px}.date-location{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.current-date{font-size:1rem;font-weight:600;line-height:1.25}.location{color:var(--text-muted);font-size:.75rem;line-height:1.16667}.weather-badge{background:var(--surface-subtle);border-radius:9999px;flex:0 0 88px;justify-content:center;align-items:center;gap:8px;padding:12px;line-height:1.25;display:flex}.weather-badge img{flex:0 0 20px;width:20px;height:20px}.dashboard-sections{flex-direction:column;gap:16px;margin-top:40px;display:flex}.section-heading{justify-content:space-between;align-items:center;min-height:52px;padding-block:12px;display:flex}.section-heading h2{font-size:1.25rem;font-weight:600;line-height:1.4}.calendar-link{background:0 0;border-radius:9999px;flex-shrink:0;min-height:28px;padding:7px 12px;font-size:.75rem;font-weight:600;line-height:1.16667}.card-rail{overscroll-behavior-x:contain;scrollbar-width:none;scroll-snap-type:x mandatory;gap:8px;margin:8px -16px 0;padding-inline:16px;scroll-padding-inline:16px;display:flex;overflow-x:auto}.card-rail::-webkit-scrollbar{display:none}.card-rail>*{scroll-snap-align:start;flex-shrink:0}.empty-events-banner{background:var(--surface-muted);border-radius:24px;align-items:center;gap:20px;min-height:88px;margin-top:8px;padding:12px 16px;display:flex}.empty-events-banner p{overflow-wrap:break-word;flex:1;min-width:0;font-size:1.25rem;font-weight:600;line-height:1.4}.empty-events-banner img{object-fit:contain;flex:0 0 64px;width:64px;height:64px}.today-card{isolation:isolate;text-align:left;cursor:pointer;aspect-ratio:1;background:var(--surface-subtle);width:min(368px,100vw - 52px);color:inherit;border-radius:24px;padding:0;display:block;position:relative;overflow:hidden}.today-photo{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.today-photo--hornbeam{width:161.25%;max-width:none;height:161.25%;top:-61.25%;left:-30.2%}.today-shade{pointer-events:none;height:96px;position:absolute;inset:auto 0 0}.today-shade:after{content:"";background:linear-gradient(#0000,#040710cc);position:absolute;inset:0}.today-shade>span{position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000);mask-image:linear-gradient(#0000,#000)}.today-shade>span:nth-child(2){top:15%}.today-shade>span:nth-child(3){top:30%}.today-shade>span:nth-child(4){top:45%}.today-shade>span:nth-child(5){top:60%}.today-care{flex-direction:column;gap:4px;display:flex;position:absolute;top:16px;right:16px}.care-badge{border-radius:12px;flex:0 0 40px;justify-content:center;align-items:center;width:40px;height:40px;padding:8px;display:inline-flex}.care-badge img{width:24px;height:24px}.care-badge--nutrition{background:var(--nutrition)}.care-badge--protection{background:var(--protection)}.care-badge--repot{background:var(--repot)}.today-details{color:#fff;flex-direction:column;gap:4px;display:flex;position:absolute;bottom:16px;left:16px;right:16px}.today-details h3{font-size:1.5rem;font-weight:600;line-height:1.33333}.today-details p{font-size:.875rem;line-height:1.14286}.upcoming-card{text-align:left;cursor:pointer;background:var(--surface-subtle);width:200px;color:inherit;border-radius:24px;flex-direction:column;gap:8px;padding:0 0 16px;display:flex;overflow:hidden}.upcoming-image-block{width:100%;padding:4px;position:relative}.upcoming-photo-crop{aspect-ratio:1;border-radius:20px;width:100%;position:relative;overflow:hidden}.upcoming-photo{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.upcoming-photo--acer{object-fit:fill;width:173.75%;max-width:none;height:139%;top:-39%;left:-37.26%}.upcoming-photo--shohin{width:134.41%;max-width:none;height:134.41%;top:-34.06%;left:-14.21%}.date-badge{background:var(--surface);color:var(--text-secondary);letter-spacing:.025em;white-space:nowrap;border-radius:9999px;align-items:center;gap:4px;padding:4px 8px;font-size:.625rem;font-weight:600;line-height:1.2;display:inline-flex;position:absolute;bottom:12px;left:12px}.date-badge img{width:16px;height:16px}.upcoming-details{flex-direction:column;gap:4px;padding-inline:16px;display:flex}.upcoming-details h3{text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:600;line-height:1.25;overflow:hidden}.upcoming-details p{color:var(--text-secondary);font-size:.75rem;line-height:1.16667}.upcoming-care{align-items:flex-start;gap:4px;padding-inline:16px;display:flex}.bottom-navigation{z-index:10;width:min(100%,420px);padding:16px 24px calc(8px + env(safe-area-inset-bottom,0px));pointer-events:none;background:0 0;margin-inline:auto;position:fixed;bottom:0;left:0;right:0}.navigation-surface{border-top:1px solid var(--border-subtle);background:var(--surface);box-shadow:var(--elevation-small);pointer-events:auto;border-radius:9999px;justify-content:center;align-items:center;padding:4px;display:flex}.navigation-item{letter-spacing:.025em;background:0 0;border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;min-width:0;padding:8px 0;font-size:.625rem;font-weight:600;line-height:1.2;display:flex;position:relative}.navigation-item img{width:24px;height:24px}.navigation-item.is-current{background:var(--surface-subtle);border-radius:9999px}.navigation-badge{color:#fff;background:var(--success);border-radius:9999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding-inline:4px;display:flex;position:absolute;top:6px;left:calc(50% + 13.75px);transform:translate(-50%)}@media (max-width:360px){.dashboard-header{gap:12px}.weather-badge{flex-basis:76px;padding-inline:8px}.today-details h3{font-size:1.25rem}.bottom-navigation{padding-inline:16px}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}.dashboard-tree-photo{position:absolute;inset:0;overflow:hidden}.dashboard-tree-photo img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.dashboard-profile-photo{object-fit:cover;border-radius:50%;flex-shrink:0;width:44px;height:44px}.dashboard-header .date-location{flex:1;min-width:0}.dashboard-header .location{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.today-header{flex-direction:column;gap:16px;display:flex}.today-header-info{align-items:center;gap:16px;min-height:48px;display:flex}.today-header .date-location{gap:8px}.today-header .location{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.today-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:48px;height:48px}.weather-insight{background:var(--surface-subtle);border-radius:16px;align-items:center;gap:16px;min-height:64px;padding:12px;display:flex}.weather-value{flex-shrink:0;align-items:center;gap:8px;display:flex}.weather-value strong{font-size:20px;font-weight:600;line-height:28px}.weather-copy{flex-direction:column;gap:4px;min-width:0;display:flex}.weather-copy strong{font-size:16px;font-weight:600;line-height:20px}.weather-copy p{color:var(--text-secondary);font-size:14px;line-height:16px}.today-sections{flex-direction:column;gap:40px;margin-top:40px;display:flex}.today-tasks,.today-upcoming,.today-next{flex-direction:column;gap:20px;min-width:0;display:flex}.today-tasks>h2,.today-next h2,.today-full-empty h2{letter-spacing:-.7px;font-size:28px;font-weight:700;line-height:36px}.today-upcoming{gap:20px}.today-upcoming>h2{font-size:18px;font-weight:600;line-height:24px}.today-rail{overscroll-behavior-x:contain;scrollbar-width:none;scroll-snap-type:x mandatory;align-items:stretch;gap:8px;margin-inline:-16px;padding-inline:16px;scroll-padding-inline:16px;display:flex;overflow-x:auto}.today-rail::-webkit-scrollbar{display:none}.task-tree-card{background:var(--surface-subtle);scroll-snap-align:start;border-radius:24px;flex-direction:column;flex:0 0 min(368px,100vw - 52px);gap:12px;min-width:0;padding-bottom:16px;display:flex;overflow:hidden}.task-tree-open{text-align:left;cursor:pointer;background:0 0;flex-direction:column;gap:12px;width:100%;padding:0;display:flex}.task-tree-image{aspect-ratio:1;border-radius:20px;margin:8px 8px 0;position:relative;overflow:hidden}.task-tree-image>img{object-fit:cover;width:100%;height:100%}.task-tree-details{flex-direction:column;gap:4px;width:100%;min-width:0;padding-inline:16px;display:flex}.task-tree-details h3{text-overflow:ellipsis;white-space:nowrap;font-size:20px;font-weight:600;line-height:28px;overflow:hidden}.task-tree-details p{color:var(--text-secondary);font-size:14px;line-height:16px}.task-events{flex-direction:column;gap:4px;margin-top:auto;padding-inline:16px;display:flex}.task-event{border-radius:8px;align-items:center;gap:8px;min-height:24px;padding:4px 8px;display:flex}.task-event--nutrition{background:var(--nutrition)}.task-event--protection{background:var(--protection)}.task-event--repot{background:var(--repot)}.task-event>img{flex-shrink:0;width:16px;height:16px}.task-event-copy{flex-direction:column;flex:1;gap:4px;min-width:0;font-size:12px;line-height:14px;display:flex}.task-event-copy strong{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.task-event>button{background:var(--text-primary);color:#fff;cursor:pointer;border-radius:9999px;flex-shrink:0;padding:6px 10px;font-size:10px;font-weight:600;line-height:11.667px}.task-event>button:disabled{opacity:.5}.task-tree-card--compact{flex-basis:180px;gap:8px;min-height:290px}.task-tree-card--compact .task-tree-open{gap:8px}.task-tree-card--compact .task-tree-image{margin:4px 4px 0}.task-tree-card--compact .task-tree-details h3{font-size:16px;line-height:20px}.task-tree-card--compact .task-tree-details p{font-size:12px;line-height:14px}.task-date{color:#fff;letter-spacing:.25px;white-space:nowrap;background:#171b2a6b;border-radius:9999px;align-items:center;gap:4px;padding:4px 8px;font-size:10px;font-weight:600;line-height:12px;display:flex;position:absolute;bottom:8px;left:8px}.task-date img{width:16px;height:16px}.today-next{gap:16px}.today-next-copy{flex-direction:column;gap:8px;display:flex}.today-next-copy p,.today-full-empty p,.today-upcoming-empty p{color:var(--text-secondary);font-size:16px;line-height:22px}.today-upcoming-empty{background:var(--surface-subtle);border-radius:24px;justify-content:space-between;align-items:center;gap:16px;min-height:88px;padding:12px 16px;display:flex}.today-upcoming-empty>div{flex-direction:column;gap:4px;display:flex}.today-upcoming-empty h2{font-size:20px;font-weight:600;line-height:28px}.today-upcoming-empty>img{flex-shrink:0}.today-full-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:max(360px,100dvh - 364px);display:flex}.today-full-empty img{margin-bottom:16px}.today-full-empty h2{margin-bottom:8px}.today-loading,.today-error{color:var(--text-secondary);margin-top:40px}
