:root{color-scheme:light dark;--yolk: #f6b40a;--yolk-dark: #c98a00;--on-primary: #3a2a00;--primary-container: #ffe0a3;--secondary: #7a5c00;--cream: #f1e3c0;--olive: #56633a;--olive-text: #4a5531;--olive-container: #e6eccf;--shell: #fff7e6;--surface: #ffffff;--surface-low: #fffbf2;--surface-container: #fdf3dc;--surface-high: #f8ecd0;--surface-variant: #efe1c4;--outline: rgba(58, 42, 0, .12);--outline-strong: rgba(58, 42, 0, .22);--text: #291800;--text-muted: #6f6444;--danger: #c0392b;--positive: #2e7d32;--shadow-card: 0 2px 0 rgba(58, 42, 0, .06), 0 6px 20px rgba(58, 42, 0, .06);--shadow-pop: 0 12px 40px rgba(58, 42, 0, .22);--btn-press: #c98a00;--radius: 18px;--radius-lg: 24px;--maxw: 760px;--content-maxw: 1000px;--sidebar-w: 232px}@media (prefers-color-scheme: dark){:root{--yolk: #f6b40a;--yolk-dark: #ffca3d;--on-primary: #2a1e00;--primary-container: #4a3a12;--secondary: #e6c26f;--cream: #3a3118;--olive: #a8bd76;--olive-text: #b8cd86;--olive-container: #2c331f;--shell: #1b1710;--surface: #26211a;--surface-low: #201b14;--surface-container: #2c2517;--surface-high: #332a18;--surface-variant: #3a301d;--outline: rgba(255, 255, 255, .1);--outline-strong: rgba(255, 255, 255, .18);--text: #f7efdd;--text-muted: #b3a486;--danger: #ff6f61;--positive: #7cc47f;--shadow-card: 0 2px 0 rgba(0, 0, 0, .3), 0 6px 20px rgba(0, 0, 0, .3);--shadow-pop: 0 12px 40px rgba(0, 0, 0, .55);--btn-press: #9c6f00}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Nunito,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--shell);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{font-weight:900;letter-spacing:-.01em}button{font:inherit;font-weight:800;cursor:pointer;border:none;border-radius:12px;padding:10px 16px;background:var(--surface-high);color:var(--text);transition:transform .12s ease,box-shadow .12s ease,background .12s ease,filter .12s ease}button:hover:not(:disabled){filter:brightness(.97)}button:active:not(:disabled){transform:translateY(1px)}button.primary{background:var(--yolk);color:var(--on-primary);font-weight:900;border-radius:999px;box-shadow:0 4px 0 var(--btn-press)}button.primary:hover:not(:disabled){transform:translateY(2px);box-shadow:0 2px 0 var(--btn-press);filter:none}button.primary:active:not(:disabled){transform:translateY(4px);box-shadow:0 0 0 var(--btn-press)}button.ghost{background:transparent;box-shadow:none}button.ghost:hover:not(:disabled){background:#80640014;filter:none}button:disabled{opacity:.5;cursor:default}:where(button,a,input,select,textarea):focus-visible{outline:3px solid color-mix(in srgb,var(--yolk) 70%,transparent);outline-offset:2px}input,select,textarea{font:inherit;padding:11px 13px;border:1.5px solid var(--outline);border-radius:12px;background:var(--surface);color:var(--text);width:100%}input:focus,select:focus,textarea:focus{border-color:var(--yolk)}.app-shell{display:flex;min-height:100%}.sidebar{display:none}.main-col{flex:1;min-width:0;width:100%;max-width:var(--maxw);margin:0 auto;display:flex;flex-direction:column;min-height:100vh}.topbar{display:flex;align-items:center;gap:12px;padding:14px 16px;background:color-mix(in srgb,var(--yolk) 92%,transparent);color:var(--on-primary);position:sticky;top:0;z-index:5;-webkit-backdrop-filter:saturate(1.4) blur(6px);backdrop-filter:saturate(1.4) blur(6px)}.topbar h1{font-size:18px;margin:0;font-weight:900}.topbar-logo{width:30px;height:30px;border-radius:24%;flex:none;box-shadow:0 1px 4px #3a2a0040}.topbar select{width:auto;background:#ffffff8c;border-color:transparent;color:var(--on-primary);font-weight:800;border-radius:999px;padding:7px 12px}.topbar .spacer{flex:1}.topbar .icon-btn{background:#ffffff47;color:var(--on-primary);width:38px;height:38px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:17px}.topbar .icon-btn:hover:not(:disabled){background:#ffffff80;filter:none}.content{flex:1;padding:16px}.tabbar{display:flex;border-top:1px solid var(--outline);background:var(--surface-low);position:sticky;bottom:0;z-index:5;padding-bottom:env(safe-area-inset-bottom)}.tabbar button{flex:1;background:transparent;border-radius:0;padding:10px 6px 12px;color:var(--text-muted);font-size:12px;font-weight:700;display:flex;flex-direction:column;align-items:center;gap:3px}.tabbar button .tab-emoji{font-size:20px;filter:grayscale(.4);opacity:.75;transition:all .15s ease}.tabbar button.active{color:var(--yolk-dark)}.tabbar button.active .tab-emoji{filter:none;opacity:1;transform:translateY(-1px)}@media (min-width: 900px){.sidebar{display:flex;flex-direction:column;width:var(--sidebar-w);flex:none;padding:20px 14px;background:var(--surface-low);border-right:1px solid var(--outline);position:sticky;top:0;height:100vh}.sidebar .brand{display:flex;align-items:center;gap:10px;font-weight:900;font-size:1.05rem;padding:4px 10px 20px}.sidebar .brand .brand-logo{width:32px;height:32px;border-radius:24%;box-shadow:0 2px 6px #3a2a0033}.side-nav{display:flex;flex-direction:column;gap:4px}.side-nav button{display:flex;align-items:center;gap:12px;width:100%;justify-content:flex-start;text-align:left;padding:11px 14px;border-radius:12px;background:transparent;color:var(--text-muted);font-weight:800;font-size:15px}.side-nav button .tab-emoji{font-size:19px;filter:grayscale(.4);opacity:.8}.side-nav button:hover:not(.active){background:#80640014;color:var(--text);filter:none}.side-nav button.active{background:color-mix(in srgb,var(--yolk) 16%,transparent);color:var(--yolk-dark)}.side-nav button.active .tab-emoji{filter:none;opacity:1}.side-foot{margin-top:auto;display:flex;flex-direction:column;gap:4px}.main-col{max-width:none;margin:0}.tabbar{display:none}.topbar{padding:16px 32px;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--text);border-bottom:1px solid var(--outline)}.topbar h1{color:var(--text)}.topbar select{background:var(--surface);border:1.5px solid var(--outline);color:var(--text)}.topbar .icon-btn{background:var(--surface-high);color:var(--text)}.content{padding:28px 32px;max-width:var(--content-maxw);margin:0 auto;width:100%}}.sidebar-only{display:none}@media (min-width: 900px){.sidebar-only{display:initial}.mobile-only{display:none!important}}.card{background:var(--surface);border:1px solid var(--outline);border-radius:var(--radius);padding:16px;margin-bottom:14px;box-shadow:var(--shadow-card)}.calendar-view{max-width:620px;margin:0 auto}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.cal-head strong{font-size:1.15rem;font-weight:900}.cal-head>button{width:40px;height:40px;border-radius:50%;font-size:20px;padding:0;flex:none}.cal-title{display:flex;flex-direction:column;align-items:center;gap:1px}.cal-subtitle{font-size:12px}.cal-today{padding:2px 12px;font-size:12px;border-radius:999px;color:var(--yolk-dark);margin-top:3px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal-dow{text-align:center;font-size:12px;font-weight:800;color:var(--text-muted);padding:4px 0}.cal-cell{aspect-ratio:1;border-radius:14px;border:1px solid var(--outline);background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:2px;position:relative;transition:transform .1s ease,box-shadow .1s ease,background .1s ease}.cal-cell:not(.empty){cursor:pointer}.cal-cell:not(.empty):hover{transform:translateY(-2px);box-shadow:var(--shadow-card);background:var(--surface-low)}.cal-cell.empty{border:none;background:transparent}.cal-cell.today{outline:2.5px solid var(--yolk);border-color:transparent}.cal-cell .day{font-size:12px;font-weight:700;color:var(--text-muted);position:absolute;top:5px;left:7px}.cal-cell .eggs{font-size:19px;font-weight:900;color:var(--text)}.cal-cell .note-dot{width:6px;height:6px;border-radius:50%;background:var(--olive)}.cal-cell .glyphs{position:absolute;top:4px;right:5px;font-size:12px;line-height:1}.stat-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--surface-variant)}.stat-row:last-child{border-bottom:none}.stat-row .label{color:var(--text-muted)}.stat-row .value{font-weight:800}.stats-head{display:flex;align-items:center;gap:10px}.stats-head strong{font-size:1.05rem;font-weight:900}.period-switch{display:inline-flex;border-radius:999px;overflow:hidden;background:color-mix(in srgb,var(--surface) 70%,transparent);padding:3px;border:1px solid var(--outline)}.period-switch button{background:transparent;border:none;border-radius:999px;padding:5px 13px;font-size:13px;font-weight:800;color:var(--text-muted)}.period-switch button.active{background:var(--yolk);color:var(--on-primary)}.mode-toggle{border:1px solid var(--outline);border-radius:999px;background:color-mix(in srgb,var(--surface) 70%,transparent);padding:4px 9px;font-size:14px;line-height:1;filter:grayscale(.3)}.mode-toggle.active{background:var(--yolk);border-color:transparent;filter:none}.period-nav{display:flex;align-items:center;gap:6px;margin-top:6px}.period-nav .nav-arrow{width:30px;height:30px;padding:0;border-radius:50%;font-size:18px;flex:none}.period-nav .nav-arrow:disabled{opacity:.3}.trend-chip{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:800;padding:2px 7px;border-radius:999px}.trend-chip.up{color:var(--positive);background:color-mix(in srgb,var(--positive) 16%,transparent)}.trend-chip.down{color:var(--danger);background:color-mix(in srgb,var(--danger) 16%,transparent)}.trend-chip.flat{color:var(--text-muted);background:color-mix(in srgb,var(--text-muted) 16%,transparent)}.chart{margin-top:16px}.chart-bars{display:flex;align-items:flex-end;gap:3px;height:130px;border-bottom:2px solid var(--outline)}.chart-bar{flex:1;min-height:3px;border-radius:5px 5px 0 0;background:linear-gradient(var(--yolk),var(--yolk-dark));transition:opacity .12s ease}.chart-bar:hover{opacity:.75}.chart-axis{display:flex;justify-content:space-between;margin-top:6px;font-size:11px;font-weight:700;color:var(--text-muted)}.money-row{display:flex;justify-content:space-between;padding:5px 0}.money-row.cat{padding-left:16px;font-size:14px;color:var(--text-muted)}.money-divider{border-top:1px solid var(--surface-variant);margin:10px 0}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat-grid .card{margin:0}@media (min-width: 720px){.stat-grid{grid-template-columns:repeat(4,1fr)}}.stats-layout{display:flex;flex-direction:column;gap:12px}.stats-layout>*{margin-bottom:0}@media (min-width: 900px){.stats-layout{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}.stats-layout>.stats-title{grid-column:1 / -1}.stats-layout>.stat-grid{grid-column:1 / -1}}.note-item{padding:12px 0;border-bottom:1px solid var(--surface-variant)}.note-item .date{font-size:13px;color:var(--text-muted);margin-bottom:4px}.journal-day{margin-bottom:20px}.journal-date{font-size:13px;font-weight:900;color:var(--yolk-dark);margin-bottom:8px;text-transform:uppercase;letter-spacing:.03em}.journal-card{display:flex;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--outline);border-radius:14px;padding:13px;margin-bottom:8px;cursor:pointer;box-shadow:var(--shadow-card);transition:transform .1s ease}.journal-card:hover{transform:translate(2px)}.journal-card.note{background:var(--primary-container);border-color:transparent}.journal-eggcount{font-weight:900;margin-bottom:2px}.journal-glyph{font-size:22px;line-height:1;flex:none;display:inline-grid;place-items:center;width:44px;height:44px;background:var(--surface-high);border-radius:50%/60% 60% 40% 40%}.journal-card.note .journal-glyph{background:#ffffff80}.journal-event-title{font-weight:800}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#2918006b;display:flex;align-items:flex-end;justify-content:center;z-index:20;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade .18s ease}.modal{background:var(--surface);width:100%;max-width:var(--maxw);border-radius:24px 24px 0 0;padding:22px 18px calc(22px + env(safe-area-inset-bottom));box-shadow:var(--shadow-pop);max-height:90vh;overflow-y:auto;animation:sheet-up .22s cubic-bezier(.2,.7,.3,1)}.modal:focus-visible{outline:none}.modal h3{margin:0 0 16px;font-size:1.25rem}.row{display:flex;gap:10px;align-items:center}.row>*{flex:1}.dialog-actions{display:flex;gap:10px;align-items:center;margin-top:4px}.danger-text{color:var(--danger)}.field{margin-bottom:16px}.field label{display:block;font-size:13px;font-weight:700;color:var(--text-muted);margin-bottom:6px}@media (min-width: 720px){.backdrop{align-items:center;padding:24px}.modal{max-width:460px;border-radius:var(--radius-lg);max-height:88vh;overflow-y:auto;animation:pop-in .2s cubic-bezier(.2,.7,.3,1)}.backdrop.drawer{align-items:stretch;justify-content:flex-end;padding:0}.modal.manage{max-width:460px;border-radius:0;max-height:100vh;height:100vh;align-self:stretch;animation:slide-in .24s ease}}.backdrop.drawer{align-items:stretch}.modal.manage{border-radius:0;max-height:100vh;height:100vh}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes sheet-up{0%{transform:translateY(24px);opacity:.6}to{transform:translateY(0);opacity:1}}@keyframes pop-in{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}@keyframes slide-in{0%{transform:translate(30px);opacity:.4}to{transform:translate(0);opacity:1}}@media (prefers-reduced-motion: reduce){.backdrop,.modal{animation:none}*{transition-duration:.01ms!important}}.center-screen{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(120% 80% at 50% -10%,var(--primary-container),var(--shell) 60%)}.login-card{width:100%;max-width:400px;padding:28px 24px}.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:22px}.login-logo{width:52px;height:52px;border-radius:24%;box-shadow:0 4px 12px #3a2a0040;flex:none}.login-card h1{font-size:1.55rem}.error{color:var(--danger);font-size:14px;margin-top:8px;font-weight:700}.muted{color:var(--text-muted)}.or-divider{display:flex;align-items:center;gap:10px;margin:18px 0;color:var(--text-muted);font-size:13px;font-weight:700}.or-divider:before,.or-divider:after{content:"";flex:1;height:1px;background:var(--outline)}.google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;background:var(--surface);border:1.5px solid var(--outline);color:var(--text);font-weight:800;border-radius:999px;padding:12px}.google-btn .g-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#fff;color:#4285f4;font-weight:900;border:1px solid var(--outline)}.bird-picker{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.bird-chip{background:var(--surface);border:1.5px solid var(--outline);border-radius:999px;padding:7px 13px;font-size:14px;font-weight:700;color:var(--text)}.bird-chip.active{background:var(--primary-container);border-color:transparent;color:var(--on-primary)}.support-card{background:var(--olive-container);border:1px solid transparent;border-radius:var(--radius);padding:18px 20px;margin-bottom:14px;box-shadow:var(--shadow-card)}.support-card .support-head{display:flex;align-items:center;gap:12px}.support-card .support-grain{font-size:30px;line-height:1}.support-card h3{margin:0 0 2px;font-size:1.05rem;color:var(--olive-text)}.support-card p{margin:0;font-size:13px;color:var(--text-muted)}.support-card .support-btn{display:block;width:100%;margin-top:14px;text-align:center;text-decoration:none;background:var(--olive);color:#fff;font-weight:900;border-radius:999px;padding:11px;box-shadow:0 4px color-mix(in srgb,var(--olive) 70%,black)}.support-link{display:block;text-align:center;text-decoration:none;color:var(--text-muted);font-weight:700;font-size:14px;padding:16px 8px}.support-link b{color:var(--yolk-dark)}.stepper{display:flex;align-items:center;gap:14px}.stepper button{width:48px;height:48px;font-size:24px;border-radius:50%;padding:0;flex:none;background:var(--surface-high);font-weight:900}.stepper .count{flex:1;text-align:center;font-size:30px;font-weight:900}
