@import"https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,500&family=Karla:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";*,*:before,*:after{box-sizing:border-box}body{margin:0;background:#f8f8fa}.garden-app{font-family:Karla,system-ui,sans-serif;background:#f8f8fa;color:#3d3080;min-height:100vh}.app-shell{display:flex;min-height:100vh;width:100%}.sidebar{width:236px;flex-shrink:0;background:linear-gradient(180deg,#3d308008,#3d308000 120px),#f0eef8;border-right:1px solid #DDD8F0;padding:1.5rem 1rem;display:flex;flex-direction:column;gap:1.5rem;position:sticky;top:0;height:100vh;overflow-y:auto;z-index:100}.app-logo{font-family:Fraunces,serif;font-size:18px;color:#3d3080;font-weight:700;display:flex;align-items:center;gap:9px;margin:0;white-space:nowrap;flex-shrink:0;letter-spacing:-.2px;padding:0 .3rem}.tab-bar{display:flex;flex-direction:column;gap:.45rem;position:relative}.tab-bar:before{content:"";position:absolute;left:19px;top:4px;bottom:4px;width:1px;background:#ddd8f0}.tab-btn{position:relative;font-family:Karla,sans-serif;font-size:13.5px;font-weight:600;background:#fbfaff;border:1px solid #DDD8F0;cursor:pointer;padding:.65rem .8rem .65rem 1.9rem;border-radius:8px;color:#7b6fa8;display:flex;align-items:center;gap:.65rem;white-space:nowrap;transition:background .15s ease,border-color .15s ease,transform .1s ease;text-align:left}.tab-btn:before{content:"";position:absolute;left:14px;top:50%;transform:translateY(-50%);width:9px;height:9px;border-radius:50%;background:#f8f8fa;border:1.5px solid #DDD8F0;z-index:1}.tab-btn i{font-size:15px;flex-shrink:0}.tab-btn:hover{border-color:#9a94c0}.tab-btn:active{transform:scale(.98)}.tab-btn.active{background:#5a4fa0;color:#f8f8fa;border-color:#5a4fa0}.tab-btn.active:before{background:#f0c060;border-color:#1a1740}.sidebar-foot{margin-top:auto;padding-top:.9rem;border-top:1px solid #DDD8F0;display:flex;flex-direction:column;gap:.55rem}.btn-export{font-family:Karla,sans-serif;font-size:11.5px;font-weight:500;padding:5px 11px;border-radius:8px;border:1.5px solid #DDD8F0;background:#fff;color:#7b6fa8;cursor:pointer;display:flex;align-items:center;gap:4px;transition:all .14s;white-space:nowrap}.btn-export:hover{background:#3d3080;color:#fff;border-color:#3d3080}.main-col{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{background:#fff;border-bottom:1px solid #EEEAF8;position:sticky;top:0;z-index:90;box-shadow:0 1px 6px #3d30800f}.topbar-inner{padding:0 28px;height:56px;display:flex;align-items:center;justify-content:flex-end;gap:10px}.mobile-menu-btn{display:none;align-items:center;justify-content:center;background:#ede9f8;border:1.5px solid #DDD8F0;border-radius:9px;cursor:pointer;margin-right:auto;padding:5px 8px;flex-shrink:0}.mobile-menu-btn img{height:22px;width:auto;display:block}.mobile-menu-btn:hover{background:#ddd8f0}.mobile-menu-btn:active{transform:scale(.95)}.topbar-actions{display:flex;align-items:center;gap:8px}.app-inner{width:100%;padding:28px 32px 80px}@media (max-width: 900px){.sidebar{position:fixed;left:0;top:0;bottom:0;height:100vh;transform:translate(-100%);transition:transform .2s ease}.sidebar.mobile-open{transform:translate(0);box-shadow:4px 0 24px #3d308040}.app-shell{display:block}.main-col{width:100%}.app-inner{padding:20px 16px 70px}.topbar-inner{padding:0 12px;gap:6px}.mobile-menu-btn{display:flex}.btn-export-file{display:none}.topbar-actions{gap:6px;flex-wrap:nowrap;min-width:0}.topbar-actions>span,.topbar-actions>div,.topbar-actions>button{flex-shrink:0}.weather-tip-row,.plant-tracker-grid{grid-template-columns:1fr!important}.plant-tracker-sidebar{display:none!important}.plant-select-wrap{display:flex!important}.plant-add-desktop-only{display:none!important}}@media (max-width: 420px){.almanac-label{max-width:64px!important}}.plant-select-wrap{display:none}.plant-select{font-family:Karla,sans-serif;font-size:13.5px;font-weight:500;color:#3d3080;background:#fff;border:1.5px solid #DDD8F0;border-radius:10px;padding:9px 14px;cursor:pointer;max-width:100%;min-width:0;box-shadow:0 1px 6px #3d30800d;transition:border-color .15s}.plant-select:hover{border-color:#6b5fc4}.plant-select:focus{outline:none;border-color:#6b5fc4;box-shadow:0 0 0 3px #6b5fc426}.plant-select:disabled{cursor:default;color:#9a94c0}.hero-banner{background-size:cover;background-position:center;background-repeat:no-repeat;border-radius:20px;padding:2.5rem 2.8rem 2.2rem;margin-bottom:1.75rem;position:relative;overflow:hidden}.hero-date{font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:#ffffffbf;margin-bottom:14px}.hero-greeting{font-family:Fraunces,serif;font-size:46px;font-weight:700;font-style:italic;color:#fff;line-height:1.15;margin:0 0 14px;position:relative;z-index:1;letter-spacing:-.5px}.hero-sub{font-size:13px;font-style:italic;color:#fffc;position:relative;z-index:1;line-height:1.6;max-width:420px}.section-title{font-family:Fraunces,serif;font-size:22px;font-weight:700;color:#3d3080;margin:0 0 1.25rem;letter-spacing:-.2px}.section-title-sm{font-family:Karla,sans-serif;font-size:10.5px;font-weight:700;color:#e8a030;margin:0 0 .75rem;display:flex;align-items:center;gap:7px;text-transform:uppercase;letter-spacing:1.2px}.muted{color:#9a94c0;font-size:12.5px}.card{background:#fff;border-radius:18px;border:1px solid #EEEAF8;padding:1.4rem 1.5rem 1.2rem;box-shadow:0 2px 16px #3d30800f}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:1.75rem}.stat-card{background:#fff;border-radius:16px;border:1px solid #EEEAF8;padding:16px 14px 14px;text-align:center;box-shadow:0 2px 12px #3d30800d;position:relative;overflow:hidden}.stat-num{font-family:Fraunces,serif;font-size:30px;font-weight:700;line-height:1;margin-bottom:5px;letter-spacing:-1px}.stat-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.7px;color:#9a94c0}.plant-pill{cursor:pointer;padding:10px 13px;border-radius:13px;border:1.5px solid transparent;background:#fff;display:flex;justify-content:space-between;align-items:center;transition:all .15s;margin-bottom:6px;box-shadow:0 1px 6px #3d30800d}.plant-pill:hover{border-color:#ddd8f0;background:#fbfaff}.plant-pill.selected{border-color:#6b5fc4;background:#f0eef8;box-shadow:0 2px 12px #6b5fc426}.plant-name{font-size:13.5px;font-weight:500;color:#3d3080}.tag-pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:500;padding:3px 9px;border-radius:20px;margin-right:4px;margin-bottom:3px;letter-spacing:.1px}.update-card{background:#fff;border-radius:13px;border:1px solid #EEEAF8;padding:13px 15px;margin-bottom:0;transition:box-shadow .18s,border-color .18s;box-shadow:0 1px 6px #3d30800a}.update-card:hover{box-shadow:0 4px 16px #3d308017;border-color:#ddd8f0}.btn-primary{font-family:Karla,sans-serif;font-size:13px;font-weight:600;padding:8px 18px;border-radius:20px;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:filter .14s,transform .1s,box-shadow .14s;box-shadow:0 2px 8px #3d30802e}.btn-primary:hover{filter:brightness(1.07);box-shadow:0 4px 16px #3d308040}.btn-primary:active{transform:scale(.98)}.btn-ghost{font-family:Karla,sans-serif;font-size:12px;font-weight:500;padding:6px 14px;border-radius:20px;border:1.5px solid #DDD8F0;background:#fff;color:#7b6fa8;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:all .14s}.btn-ghost:hover{border-color:#6b5fc4;color:#3d3080;background:#f0eef8}.task-row{background:#fff;border-radius:14px;border:1px solid #EEEAF8;padding:12px 16px;display:flex;align-items:flex-start;gap:12px;margin-bottom:6px;transition:border-color .14s,box-shadow .14s;box-shadow:0 1px 5px #3d30800a}.task-row:hover{border-color:#ddd8f0;box-shadow:0 3px 12px #3d308014}.task-row.done{opacity:.45}.task-cb-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex-shrink:0;margin-top:2px;cursor:pointer}.task-cb-input{position:absolute;top:0;right:0;bottom:0;left:0;width:18px;height:18px;margin:0;opacity:0;cursor:pointer}.task-cb-box{width:18px;height:18px;border-radius:50%;border:1.5px solid #C8C0F0;background:#fff;display:flex;align-items:center;justify-content:center;transition:all .14s;pointer-events:none}.task-cb-input:checked+.task-cb-box{background:#6b5fc4;border-color:#6b5fc4}.task-cb-input:checked+.task-cb-box:after{content:"";width:5px;height:9px;border:1.5px solid white;border-left:none;border-top:none;transform:translateY(-1px) rotate(45deg)}.rec-banner{background:#fbfaff;border:1px solid #E8A03044;border-radius:16px;padding:14px 16px;margin-bottom:14px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#3d308073;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal-box{background:#fff;border-radius:22px;border:1px solid #EEEAF8;box-shadow:0 28px 64px #3d30802e;padding:1.6rem;width:460px;max-width:95vw;max-height:88vh;overflow-y:auto}input,select,textarea{font-family:Karla,sans-serif;font-size:13px;background:#f8f8fa;border:1.5px solid #DDD8F0;border-radius:10px;padding:9px 11px;color:#3d3080;outline:none;transition:border-color .15s,background .15s,box-shadow .15s;width:100%;display:block}input:focus,select:focus,textarea:focus{border-color:#6b5fc4;background:#fff;box-shadow:0 0 0 3px #6b5fc41f}.filter-chip{font-family:Karla,sans-serif;font-size:12px;font-weight:500;padding:5px 16px;border-radius:20px;border:1.5px solid #DDD8F0;background:#fff;color:#7b6fa8;cursor:pointer;transition:all .13s}.filter-chip.active{background:#3d3080;color:#fff;border-color:#3d3080;box-shadow:0 2px 10px #3d308038}.filter-chip:hover:not(.active){border-color:#6b5fc4;color:#3d3080;background:#f0eef8}.divider{height:1px;background:linear-gradient(90deg,transparent,#EEEAF8,transparent);margin:1.2rem 0;border:none}.annal-chapter{background:#fff;border-radius:20px;border:1px solid #EEEAF8;box-shadow:0 2px 16px #3d30800f;padding:1.4rem 1.6rem 1.5rem;margin-bottom:1.1rem;position:relative}.annal-chapter-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:.9rem;margin-bottom:.95rem;border-bottom:1px solid #F0EEF8}.annal-plant-name{font-family:Fraunces,serif;font-size:21px;font-weight:700;color:#3d3080;letter-spacing:-.2px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.annal-thumb{width:48px;height:48px;border-radius:12px;overflow:hidden;flex-shrink:0;background:#ede9f8;border:1px solid #F0EEF8;display:flex;align-items:center;justify-content:center}.annal-thumb img{width:100%;height:100%;object-fit:cover;display:block}.annal-almanac-badge{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:600;color:#9a94c0;background:#fbfaff;border:1px solid #EEEAF8;border-radius:20px;padding:4px 10px 4px 8px;white-space:nowrap;flex-shrink:0}.annal-entry-count{font-size:11px;color:#9a94c0;font-weight:500;margin-top:3px}.annal-timeline{position:relative;margin-left:5px;padding-left:22px;border-left:2px dashed #F0EEF8}.annal-timeline-item{position:relative;display:flex;align-items:flex-start;gap:10px;padding-bottom:.65rem}.annal-timeline-item:last-child{padding-bottom:0}.annal-timeline-dot{position:absolute;left:-29px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid #C8C0F0;display:flex;align-items:center;justify-content:center}.annal-timeline-dot i{font-size:8px;color:#6b5fc4}.annal-timeline-date{font-size:10.5px;font-weight:700;color:#7b6fa8;text-transform:uppercase;letter-spacing:.6px;width:76px;flex-shrink:0;padding-top:3px;line-height:1.4;white-space:nowrap}.annal-timeline-note{font-family:Fraunces,serif;font-size:14.5px;color:#3d3080;line-height:1.5;flex:1;min-width:0}.annal-year-label{font-size:10px;font-weight:700;color:#ddd8f0;text-transform:uppercase;letter-spacing:1.2px;margin:.2rem 0 .6rem -22px;padding-left:22px;position:relative}.annal-year-label:after{content:"";position:absolute;left:0;top:50%;width:12px;border-top:2px dashed #F0EEF8}.annal-tag-filter-bar{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:1.3rem}.garden-beetle-wrap{position:fixed;z-index:40;transition:left 2.4s cubic-bezier(.45,0,.4,1),top 2.4s cubic-bezier(.45,0,.4,1)}.garden-beetle{cursor:pointer;transition:rotate .9s ease-in-out;filter:drop-shadow(0 2px 3px rgba(30,60,25,.3))}.garden-beetle svg{display:block}.garden-beetle .beetle-leg{transform-box:view-box}.garden-beetle.scuttling .beetle-leg.leg-a{animation:beetle-step-a .5s ease-in-out infinite}.garden-beetle.scuttling .beetle-leg.leg-b{animation:beetle-step-b .5s ease-in-out infinite}@keyframes beetle-step-a{0%,to{transform:rotate(-13deg)}50%{transform:rotate(13deg)}}@keyframes beetle-step-b{0%,to{transform:rotate(13deg)}50%{transform:rotate(-13deg)}}.garden-beetle:not(.scuttling){animation:beetle-idle 3.2s ease-in-out infinite}@keyframes beetle-idle{0%,to{translate:0 0}50%{translate:0 -2px}}.journal-card{position:relative;background:repeating-linear-gradient(180deg,transparent 0px,transparent 30px,rgba(232,160,48,.1) 31px),linear-gradient(160deg,#fdfcf9,#fbfaf6 60%,#faf9f4);border:1px solid #EFEBE0;border-radius:20px;padding:1.5rem 1.75rem 1.5rem 3rem;box-shadow:0 4px 20px #8b691414,0 1px 3px #8b69140f;overflow:hidden;width:100%;display:flex;align-items:center;gap:24px}.journal-card:after{content:"";position:absolute;top:0;left:0;bottom:0;width:34px;background:#e8a0300a;border-right:1px dashed rgba(232,160,48,.3)}.journal-text{flex:1;min-width:0;position:relative;z-index:1}.journal-symbol{flex-shrink:0;width:200px;height:300px;align-self:center;display:flex;align-items:center;justify-content:center;font-size:56px;position:relative;z-index:1;overflow:hidden}.journal-symbol img{width:200px;height:300px;object-fit:cover;border-radius:14px}.journal-label{font-family:JetBrains Mono,monospace;font-size:11px;font-weight:500;color:#d98a28;text-transform:uppercase;letter-spacing:2px;margin:0 0 .4rem;position:relative;z-index:1}.journal-date{font-family:JetBrains Mono,monospace;font-size:15px;font-weight:500;color:#3d3080;letter-spacing:1.5px;margin:0 0 1.1rem;position:relative;z-index:1}.journal-body{font-family:JetBrains Mono,monospace;font-size:13.5px;line-height:1.85;color:#3d3080;position:relative;z-index:1}.journal-body p{margin:0 0 1.1em}.journal-body p:last-child{margin-bottom:0}@media (max-width: 900px){.journal-card{flex-direction:column;padding:1.5rem;align-items:stretch}.journal-card:after{display:none}.journal-symbol,.journal-symbol img{width:100%;height:200px}}
