@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap";:root{color:#2d2b27;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f5f1e9;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer}#root{min-height:100vh}.app-shell{background:#f5f1e9;min-height:100vh;display:flex}.sidebar{background:#f0ece4;border-right:1px solid #e5ded2;flex-direction:column;flex:0 0 234px;width:234px;padding:27px 16px 19px;display:flex}.brand{letter-spacing:-.7px;color:#2d2b27;align-items:center;gap:9px;padding:0 12px;font-size:20px;font-weight:700;display:flex}.brand-mark{color:#fff;background:#d9634a;border-radius:9px;place-items:center;width:28px;height:28px;display:inline-grid}.brand-dot,.period{color:#d9634a}.profile-mini{color:#2d2b27;text-align:left;background:0 0;border:0;border-bottom:1px solid #e1d9cd;align-items:center;gap:9px;width:100%;padding:27px 10px 29px;display:flex}.profile-mini:hover{background:#e8e2d8}.profile-mini>div:nth-child(2){flex:1}.profile-mini strong,.profile-mini span{display:block}.profile-mini strong{font-size:12px}.profile-mini span{color:#8a857c;margin-top:2px;font-size:10px}.avatar,.top-avatar{color:#fff;background:#41675d;border-radius:50%;place-items:center;font-size:10px;font-weight:700;display:grid}.avatar{width:30px;height:30px}.primary-nav{padding-top:24px}.nav-item{color:#807a71;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:12px;width:100%;padding:12px;font-size:13px;text-decoration:none;display:flex}.nav-item:hover,.nav-item.active{color:#2d2b27;background:#e4ded3}.nav-item.active{font-weight:600;box-shadow:inset 3px 0 #d9634a}.nav-subitem{color:#807a71;border-left:1px solid #ded6ca;border-radius:0 6px 6px 0;align-items:center;gap:10px;width:calc(100% - 21px);margin:2px 0 2px 21px;padding:9px 10px;font-size:12px;text-decoration:none;display:flex}.nav-subitem:hover,.nav-subitem.active{color:#2d2b27;background:#e4ded3}.nav-subitem.active{border-left:2px solid #d9634a;font-weight:600}.sidebar-bottom{margin-top:auto}.sync-note{color:#969086;align-items:center;gap:7px;margin:23px 10px 0;font-size:10px;display:flex}.sync-dot{background:#66a77a;border-radius:50%;width:6px;height:6px}.main-content{flex:1;min-width:0}.topbar{border-bottom:1px solid #e5ded2;justify-content:space-between;align-items:center;height:78px;padding:0 4.5vw;display:flex}.breadcrumbs{color:#a29b90;align-items:center;gap:10px;font-size:12px;display:flex}.breadcrumbs strong{color:#4c4841;font-weight:600}.topbar-actions{align-items:center;gap:12px;display:flex}.icon-button{color:#6f6a61;background:#f8f5ef;border:1px solid #e4ddd2;border-radius:50%;place-items:center;width:34px;height:34px;padding:0;display:inline-grid}.icon-button:hover{color:#d9634a;background:#fff}.top-avatar{width:31px;height:31px}.mobile-brand,.mobile-menu-button,.sidebar-backdrop{display:none}.page-wrap{max-width:1220px;margin:0 auto;padding:48px 4.5vw 60px}.welcome-row,.section-heading,.panel-heading{justify-content:space-between;align-items:flex-end;display:flex}.eyebrow{color:#a49b8d;text-transform:uppercase;letter-spacing:1.4px;margin:0 0 9px;font-size:9px;font-weight:700}.welcome-row h1{letter-spacing:-.9px;margin:0;font-family:Playfair Display,serif;font-size:clamp(28px,3vw,38px);line-height:1.05}.subtle{color:#8c867c;margin:12px 0 0;font-size:13px}.date-button,.select-button{color:#625d54;background:#faf8f3;border:1px solid #dfd7cb;border-radius:7px;align-items:center;gap:9px;padding:10px 12px;font-size:11px;display:flex}.select-button select{appearance:none;color:inherit;font-size:inherit;cursor:pointer;background:0 0;border:0;outline:0}.date-button{cursor:pointer;position:relative}.day-controls{align-items:center;gap:10px;display:flex}.day-type-button select{max-width:112px}.goal-group{border-top:1px solid #e9e2d8;padding-top:14px}.goal-group h3{color:#4c4841;margin:0 0 10px;font-size:12px}.date-picker{cursor:pointer;opacity:0;width:100%;height:100%;position:absolute;inset:0}.date-button svg:last-child,.select-button svg{color:#a29a8f}.summary-grid{grid-template-columns:1.55fr 1fr 1fr;gap:14px;margin-top:36px;display:grid}.target-card,.stat-card,.panel{background:#fbfaf7;border:1px solid #e6ded2;border-radius:11px}.target-card{color:#fff;background:#41675d;border-color:#41675d;padding:19px 22px 17px}.card-label{color:#787168;justify-content:space-between;align-items:center;font-size:11px;font-weight:600;display:flex}.target-card .card-label{color:#cfdfd8}.more-button{color:inherit;background:0 0;border:0;padding:0}.target-content{align-items:center;gap:24px;margin-top:18px;display:flex}.ring{background:conic-gradient(#efc55d var(--progress), #5c8277 0);border-radius:50%;flex:0 0 102px;place-items:center;width:102px;height:102px;display:grid;position:relative}.ring:before{content:"";background:#41675d;border-radius:50%;position:absolute;inset:8px}.ring>div{text-align:center;position:relative}.ring strong,.ring span{display:block}.ring strong{letter-spacing:-1px;font-size:23px}.ring span{color:#c4d4ce;margin-top:-2px;font-size:10px}.large-stat{letter-spacing:-.8px;margin:0;font-size:24px;font-weight:700}.large-stat span{letter-spacing:0;color:#c4d4ce;font-size:11px;font-weight:500}.target-copy{color:#c4d4ce;margin:4px 0 14px;font-size:10px}.progress-line{background:#668a7e;border-radius:8px;width:180px;height:5px;overflow:hidden}.progress-line span{border-radius:inherit;background:#efc55d;height:100%;display:block}.progress-label{color:#c4d4ce;justify-content:space-between;margin:7px 0 0;font-size:9px;display:flex}.macro-summary{color:#c4d4ce;border-top:1px solid #668a7e;gap:18px;margin-top:17px;padding-top:13px;font-size:10px;display:flex}.macro-summary strong{color:#fff;margin-right:3px;font-size:13px}.stat-card{min-height:168px;padding:19px 20px;position:relative;overflow:hidden}.stat-card.accent-yellow{background:#fbf5df;border-color:#eee2ba}.stat-card.accent-coral{background:#fbebe5;border-color:#f0d4c9}.stat-number{letter-spacing:-1.5px;color:#35322c;margin:18px 0 3px;font-size:30px;font-weight:700}.stat-number small{color:#8b8379;letter-spacing:0;font-size:11px;font-weight:500}.stat-change{margin:0;font-size:10px;font-weight:700}.stat-change span{color:#8d867c;font-weight:400}.positive{color:#609068}.mini-bars{align-items:flex-end;gap:5px;height:36px;display:flex;position:absolute;bottom:20px;right:20px}.mini-bars span{background:#e1ca80;border-radius:5px 5px 1px 1px;width:7px;display:block}.mini-bars span.highlight{background:#d49e27}.day-dots{flex-wrap:wrap;gap:5px;max-width:135px;margin-top:19px;display:flex}.day-dots span{background:#e7c9bc;border-radius:50%;width:8px;height:8px}.day-dots span.filled{background:#db765d}.meal-progress-dots{gap:7px;margin-top:22px;display:flex}.meal-progress-dots span{background:#e6d8a8;border-radius:4px;width:28px;height:6px}.meal-progress-dots span.filled{background:#d49e27}.focus-stat{color:#35322c;letter-spacing:-.6px;max-width:150px;min-height:48px;margin:18px 0 3px;font-size:19px;font-weight:700;line-height:1.15}.macro-remaining{gap:20px;margin-top:18px;display:flex}.macro-remaining strong,.macro-remaining span{display:block}.macro-remaining strong{color:#35322c;letter-spacing:-.8px;font-size:22px;line-height:1}.macro-remaining span{color:#8d867c;margin-top:6px;font-size:9px}.focus-rule{background:#db765d;border-radius:4px;width:42px;height:4px;margin-top:19px}.chart-grid{grid-template-columns:1.38fr 1fr;gap:14px;margin-top:14px;scroll-margin-top:24px;display:grid}.panel{padding:21px 22px 17px}.panel h2,.section-heading h2,.add-modal h2{letter-spacing:-.4px;margin:0;font-family:Playfair Display,serif;font-size:20px}.chart-legend{color:#928b80;gap:20px;margin-top:24px;font-size:10px;display:flex}.chart-legend span{align-items:center;gap:6px;display:flex}.rhythm-controls{align-items:flex-start;gap:8px;display:flex}.custom-range-controls{gap:6px;display:flex}.custom-range-controls label{color:#928b80;align-items:center;gap:4px;font-size:9px;font-weight:600;display:flex}.custom-range-controls input{color:#625d54;background:#faf8f3;border:1px solid #dfd7cb;border-radius:6px;width:111px;padding:8px 6px;font-size:10px}.legend-dot{border-radius:50%;width:7px;height:7px}.legend-dot.orange{background:#df684c}.legend-dot.green{background:#5d8b71}.legend-dot.yellow{background:#d49e27}.progress-macro-section{margin-top:14px}.progress-macro-heading{margin-bottom:14px}.progress-macro-heading h2{letter-spacing:-.5px;margin:0;font-family:Playfair Display,serif;font-size:25px}.macro-graphs-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.macro-graph-panel .panel-heading{align-items:center}.macro-graph-panel .panel-heading h2{letter-spacing:-.2px;font-family:DM Sans,sans-serif;font-size:15px}.macro-graph-panel .legend-line{border-top-color:#9e987e}.macro-chart-area{height:210px}.legend-line{border-top:1px dashed #9e987e;width:15px;height:1px}.chart-area{height:170px;margin-top:8px;position:relative}.monthly-total{align-items:baseline;gap:7px;margin-top:23px;display:flex}.monthly-total strong{letter-spacing:-1px;font-size:27px}.monthly-total span{color:#948c80;font-size:10px}.monthly-total b{color:#6c9d74;margin-left:auto;font-size:10px}.area-chart{height:161px;margin-top:14px}.log-section{margin-top:40px;scroll-margin-top:24px}.progress-view{color:#fff;background:#41675d;border:1px solid #e6ded2;border-radius:11px;margin-top:36px;padding:28px}.progress-view-heading{justify-content:space-between;align-items:flex-start;display:flex}.progress-view-heading .eyebrow{color:#b9d1c7}.progress-view-heading h2{letter-spacing:-.7px;margin:0;font-family:Playfair Display,serif;font-size:28px}.progress-view-heading p:last-child{color:#c7d9d2;margin:10px 0 0;font-size:12px}.progress-view-heading>svg{color:#efc55d}.progress-stats{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px;display:grid}.progress-stats div{background:#4c756a;border:1px solid #668a7e;border-radius:8px;padding:15px}.progress-stats span,.progress-stats strong{display:block}.progress-stats span{color:#c7d9d2;font-size:10px}.progress-stats strong{margin-top:7px;font-size:20px}.recipes-section{margin-top:36px}.recipes-page .welcome-row,.recipes-page .progress-view,.recipes-page .summary-grid,.recipes-page .chart-grid,.recipes-page .progress-macro-section,.recipes-page .log-section{display:none}.recipes-page .recipes-section{margin-top:0}.recipes-section .section-heading{margin-bottom:12px}.recipes-section .section-heading h2{margin:0;font-size:23px}.recipe-row{border-bottom:1px solid #e1d9cd;grid-template-columns:minmax(0,1.3fr) minmax(190px,1fr) auto auto;align-items:center;gap:12px;padding:14px 4px;display:grid}.recipe-title{align-items:center;gap:10px;min-width:0;display:flex}.recipe-icon{color:#b15b49;background:#f7ddd4;border-radius:8px;flex:0 0 32px;place-items:center;width:32px;height:32px;display:grid}.recipe-title strong,.recipe-title span,.recipe-nutrition strong,.recipe-nutrition span{display:block}.recipe-title strong,.recipe-nutrition strong{color:#37332d;font-size:11px}.recipe-title div,.recipe-nutrition{min-width:0}.recipe-title div span,.recipe-nutrition span{color:#938b80;text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:9px;overflow:hidden}.recipes-empty{color:#8c867c;padding:16px 0;font-size:12px}.progress-page .summary-grid,.progress-page .log-section{display:none}.progress-page .chart-grid{display:grid}.overview-page .monthly-panel,.overview-page .chart-grid,.overview-page .progress-macro-section,.overview-page .log-section,.daily-log-page .summary-grid,.daily-log-page .chart-grid,.daily-log-page .progress-macro-section{display:none}.section-heading{align-items:center}.daily-log-page .section-heading{margin-top:32px}.section-heading h2{font-size:25px}.daily-intake-summary{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px;display:grid}.intake-stat{background:#fbfaf7;border:1px solid #e6ded2;border-radius:8px;padding:14px 15px}.intake-stat.over{background:#fbebe5;border-color:#f0d4c9}.intake-stat.positive{background:#edf6ef;border-color:#c9dfd0}.intake-stat span,.intake-stat strong{display:block}.intake-label{color:#746d63;text-transform:uppercase;letter-spacing:.8px;font-size:10px;font-weight:700}.intake-stat strong{color:#35322c;margin-top:9px;font-size:20px}.intake-remaining{color:#609068;margin-top:4px;font-size:11px;font-weight:700}.intake-stat.over .intake-remaining{color:#b24f3c}.intake-stat.positive .intake-remaining{color:#609068}.intake-goal{color:#9c958b;margin-top:4px;font-size:9px}.add-button,.submit-button{color:#fff;background:#d9634a;border:0;border-radius:7px;align-items:center;gap:7px;padding:10px 14px;font-size:11px;font-weight:700;display:flex}.add-button:hover,.submit-button:hover{background:#c9523b}.meal-list{border-top:1px solid #e1d9cd;margin-top:16px}.meal-row{border-bottom:1px solid #e1d9cd;grid-template-columns:170px 1fr 78px;align-items:start;gap:25px;padding:19px 4px;display:grid}.meal-title{align-items:center;gap:10px;display:flex}.meal-title strong,.meal-title span{display:block}.meal-title strong{font-size:12px}.meal-title>div>span{color:#9c958b;margin-top:3px;font-size:10px}.meal-icon{border-radius:9px;place-items:center;width:31px;height:31px;display:grid}.meal-icon.breakfast{color:#bf8c16;background:#fbefc8}.meal-icon.lunch{color:#c65b43;background:#f7ddd4}.meal-icon.dinner{color:#628d6c;background:#dcebdc}.meal-icon.snacks{color:#8973ae;background:#e9e1f0}.meal-entries{flex-wrap:wrap;gap:8px 20px;display:flex}.food-entry{grid-template-columns:1fr auto auto;align-items:center;gap:9px;min-width:185px;display:grid}.food-entry strong,.food-entry span{display:block}.food-entry strong{font-size:11px;font-weight:600}.food-entry span{color:#9c958b;margin-top:2px;font-size:9px}.food-parts{flex-wrap:wrap;gap:4px 8px;margin-top:5px;display:flex}.food-parts span{color:#b09b72;font-size:9px}.food-entry b{white-space:nowrap;color:#615c53;font-size:10px}.remove-button{color:#b1aaa0;background:0 0;border:0;place-items:center;padding:2px;display:grid}.remove-button:hover{color:#d9634a}.meal-total{color:#6e685d;text-align:right;padding-top:4px;font-size:11px}.modal-backdrop{z-index:5;background:#27221b59;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0;overflow-y:auto}.add-modal{background:#fbfaf7;border:1px solid #e6ded2;border-radius:12px;width:min(100%,430px);max-height:calc(100dvh - 40px);padding:25px;overflow-y:auto;box-shadow:0 20px 70px #2a1f152e}.settings-modal{width:min(100%,470px)}.modal-heading{justify-content:space-between;align-items:flex-start;margin-bottom:22px;display:flex}.add-modal label{color:#746d63;margin-bottom:15px;font-size:11px;font-weight:600;display:block}.add-modal input,.add-modal select{color:#37332d;background:#fff;border:1px solid #dfd7cb;border-radius:6px;outline:none;width:100%;margin-top:7px;padding:11px 12px;font-size:12px;display:block}.add-modal input:focus,.add-modal select:focus{border-color:#d9634a;box-shadow:0 0 0 3px #d9634a18}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.nutrition-row{grid-template-columns:repeat(3,1fr)}.meal-row-input{grid-template-columns:1fr}.multipart-toggle{cursor:pointer;align-items:center;gap:8px;margin:0 0 16px!important;display:flex!important}.multipart-toggle input{accent-color:#d9634a;width:auto;margin:0}.parts-editor{background:#f7f3eb;border:1px solid #e5ded2;border-radius:8px;margin-bottom:15px;padding:13px}.parts-heading{color:#746d63;justify-content:space-between;align-items:center;font-size:11px;font-weight:700;display:flex}.add-part-button{color:#b15b49;background:0 0;border:0;align-items:center;gap:4px;padding:3px;font-size:10px;font-weight:700;display:flex}.parts-empty{color:#9c958b;margin:12px 0 2px;font-size:10px;line-height:1.5}.part-editor{grid-template-columns:minmax(65px,1.2fr) minmax(55px,.8fr) repeat(3,minmax(48px,.8fr)) auto;align-items:center;gap:5px;margin-top:10px;display:grid}.part-editor input{min-width:0;margin:0;padding:8px;font-size:10px}.parts-total{color:#6e685d;margin:13px 0 0;font-size:10px;font-weight:700}.submit-button{justify-content:center;width:100%;margin-top:7px}.recipe-modal{width:min(100%,650px)}.auth-loading{color:#817a70;background:#f5f1e9;align-content:center;place-items:center;gap:14px;min-height:100vh;display:grid}.auth-loading p{margin:0;font-size:12px}.auth-page{background:#f5f1e9;grid-template-columns:1.05fr .95fr;min-height:100vh;display:grid}.auth-intro{color:#fff;background:#41675d;flex-direction:column;padding:42px 8vw;display:flex}.auth-intro .brand{color:#fff;padding:0}.auth-intro .brand-dot{color:#efc55d}.auth-copy{max-width:490px;margin:auto 0}.auth-copy .eyebrow{color:#b9d1c7}.auth-copy h1{letter-spacing:-1.8px;max-width:480px;margin:0;font-family:Playfair Display,serif;font-size:clamp(38px,5vw,66px);line-height:1.03}.auth-copy p:last-child{color:#c7d9d2;max-width:350px;margin-top:24px;font-size:14px;line-height:1.7}.auth-rule{color:#b9d1c7;align-items:center;gap:11px;font-size:11px;display:flex}.auth-rule span{background:#9fbbb0;width:28px;height:1px}.auth-card{background:#fbfaf7;border:1px solid #e6ded2;border-radius:12px;place-self:center;width:min(100% - 48px,420px);padding:38px;box-shadow:0 18px 45px #40322214}.auth-card-heading h2{letter-spacing:-.7px;margin:0;font-family:Playfair Display,serif;font-size:27px}.auth-card-heading>p:last-child{color:#958d82;margin:9px 0 29px;font-size:12px}.auth-card label{color:#746d63;margin-bottom:16px;font-size:11px;font-weight:600;display:block}.auth-card input{color:#37332d;background:#fff;border:1px solid #dfd7cb;border-radius:6px;outline:none;width:100%;margin-top:7px;padding:12px;font-size:12px;display:block}.auth-card input:focus{border-color:#d9634a;box-shadow:0 0 0 3px #d9634a18}.auth-card .submit-button{justify-content:center;margin-top:8px}.submit-button:disabled{opacity:.6;cursor:wait}.mode-button{color:#b15b49;background:0 0;border:0;width:100%;margin-top:21px;font-size:11px}.mode-button:hover{color:#d9634a}.form-error,.inline-error{color:#b24f3c;background:#f9e5df;border-radius:6px;padding:9px 11px;font-size:11px}.form-error{margin:0 0 14px}.inline-error{margin:20px 0 -20px}.empty-chart{color:#a29a8f;place-items:center;height:100%;font-size:11px;display:grid}@media (width<=1000px){.sidebar{flex-basis:200px;width:200px}.summary-grid{grid-template-columns:1.4fr 1fr}.target-card{grid-row:span 2}.chart-grid{grid-template-columns:1fr}}@media (width<=700px){.sidebar{z-index:20;flex-basis:auto;width:min(282px,84vw);display:none;position:fixed;inset:0 auto 0 0;box-shadow:12px 0 28px #2d2b2726}.sidebar.open{display:flex}.sidebar-backdrop{z-index:10;background:#2d2b2740;border:0;width:100%;display:block;position:fixed;inset:0}.topbar{height:64px;padding:0 20px}.mobile-brand{padding:0;font-size:17px;display:flex}.mobile-menu-button{color:#6f6a61;background:#f8f5ef;border:1px solid #e4ddd2;border-radius:50%;order:-1;place-items:center;width:34px;height:34px;padding:0;display:inline-grid}.breadcrumbs{display:none}.page-wrap{padding:31px 20px 45px}.welcome-row{flex-direction:column;align-items:flex-start;gap:16px}.date-button{align-self:flex-start}.summary-grid{margin-top:28px;display:block}.target-card,.stat-card{margin-bottom:12px}.chart-grid{margin-top:12px}.panel{padding:18px 15px 14px}.meal-row{grid-template-columns:1fr auto;gap:14px}.meal-entries{grid-area:2/1/auto/-1;padding-left:41px}.meal-total{grid-area:1/2}.food-entry{min-width:100%}.chart-legend{gap:10px}.select-button{padding:8px 9px}.daily-intake-summary{gap:6px}.intake-stat{padding:11px 9px}.intake-stat strong{font-size:15px}.intake-remaining{font-size:9px}.nutrition-row{grid-template-columns:1fr 1fr}.nutrition-row label:first-child{grid-column:1/-1}.modal-backdrop{padding:12px 12px calc(24px + env(safe-area-inset-bottom));justify-content:flex-start;align-items:flex-start}.add-modal{max-height:none;margin:0 auto}.part-editor{grid-template-columns:1fr 1fr}.part-editor input:first-child{grid-column:1/-1}.part-editor .remove-button{justify-self:end}.progress-view{margin-top:28px;padding:20px}.progress-view-heading h2{font-size:23px}.progress-stats{grid-template-columns:1fr;gap:8px;margin-top:20px}.auth-page{display:block}.auth-intro{min-height:360px;padding:28px 25px}.auth-copy{margin:auto 0 0}.auth-copy h1{font-size:39px}.auth-copy p:last-child{margin-top:15px}.auth-rule{display:none}.auth-card{width:calc(100% - 40px);margin:-28px auto 30px;padding:28px 24px;position:relative}}
