@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#162b35;--muted:#71838a;--line:#e4eceb;--bg:#f4f8f7;--white:#fff;--teal:#0f766e;--teal2:#14b8a6;--pale:#e7f6f3;--nav:#102c35;--red:#c2413b;--shadow:0 10px 30px #183a3510}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px 'DM Sans',Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:flex}.sidebar{width:245px;background:var(--nav);color:#e7f4f2;padding:25px 15px;display:flex;flex-direction:column;flex-shrink:0}.brand{display:flex;gap:11px;align-items:center;padding:0 9px 35px}.brand-icon{width:38px;height:38px;display:grid;place-items:center;background:linear-gradient(135deg,#2dd4bf,#0f766e);border-radius:12px;font-size:22px;color:white}.brand strong{font:800 15px Manrope,sans-serif;display:block}.brand small{font-size:9px;letter-spacing:1.3px;color:#91b7b4;display:block;margin-top:4px}.nav-label{font-size:10px;letter-spacing:1.5px;color:#70918f;padding:0 12px 12px}.nav{width:100%;border:0;background:transparent;color:#b7cdcb;text-align:left;padding:12px;border-radius:10px;display:flex;gap:12px;align-items:center;margin:3px 0;font-size:16px}.nav span{font-size:13px;font-weight:600}.nav:hover,.nav.active{background:#1b454b;color:white}.nav.active{box-shadow:inset 3px 0 #2dd4bf}.sidebar-bottom{margin-top:auto;border-top:1px solid #2b4b50;padding:18px 10px 0;display:flex;gap:8px;align-items:center;color:#a6c3c0;font-size:11px}.dot{width:7px;height:7px;border-radius:50%;background:#2dd4bf}.main{width:calc(100% - 245px);max-width:1600px;margin:0 auto;padding:27px 30px 20px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px;flex-wrap:wrap}.eyebrow,.welcome-tag{font-size:10px;letter-spacing:1.7px;font-weight:800;color:var(--teal)}h1,h2,h3,h4,p{margin-top:0}h1{font:800 28px Manrope,sans-serif;margin:5px 0 3px}h2{font:800 23px Manrope,sans-serif;margin-bottom:8px}h3{font:800 15px Manrope,sans-serif;margin-bottom:5px}h4{font-size:13px;margin:0 0 12px}.muted,.section-intro p,.panel-heading p{color:var(--muted);font-size:12px;margin:0}.top-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.status-pill{font-size:11px;padding:8px 10px;border-radius:30px;background:#fff3d8;color:#926c1b}.btn{border-radius:9px;padding:10px 13px;font-size:12px;font-weight:700;border:1px solid transparent}.btn-primary{background:var(--teal);color:white}.btn-primary:hover{background:#0b625c}.btn-outline{background:white;border-color:#d9e5e3;color:#39545a}.welcome{background:linear-gradient(112deg,#e2f5f0,#f0faf7 65%,#d4f1e9);border:1px solid #d8eee7;border-radius:17px;padding:26px 29px;display:flex;align-items:center;justify-content:space-between;margin-bottom:17px;overflow:hidden}.welcome h2{font-size:22px;max-width:590px;margin:10px 0 8px}.welcome p{font-size:12px;color:#58736f;margin-bottom:0}.welcome-mark{font-size:74px;color:#0f766e;opacity:.16;padding:0 25px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:17px}.kpi{background:white;border:1px solid var(--line);border-radius:14px;padding:17px;box-shadow:var(--shadow);min-width:0}.kpi-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:11px;margin-bottom:13px}.kpi-icon{width:29px;height:29px;border-radius:9px;display:grid;place-items:center;background:var(--pale);color:var(--teal);font-size:16px}.kpi strong{display:block;font:800 25px Manrope,sans-serif;letter-spacing:-.7px}.kpi strong i{font:500 11px 'DM Sans';color:var(--muted)}.kpi small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.content-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr);gap:15px;margin-bottom:15px}.panel{background:white;border:1px solid var(--line);border-radius:14px;padding:19px;box-shadow:var(--shadow);margin-bottom:16px;min-width:0}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:17px}.text-button{border:0;background:none;color:var(--teal);font-size:11px;font-weight:800;padding:4px}.chart-area{height:210px;display:flex;align-items:center;justify-content:center}.empty{padding:20px 12px;text-align:center;color:#82918f;font-size:12px;border:1px dashed #dbe7e4;border-radius:10px;background:#fbfdfc;width:100%}.goal-row{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px;margin:24px 0 11px}.goal-row strong{font:800 23px Manrope;color:var(--ink)}.progress{height:8px;border-radius:30px;background:#e8f0ee;overflow:hidden}.progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,#0f766e,#2dd4bf);border-radius:30px;transition:width .3s}.goal-foot{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted);margin-top:9px;gap:10px}.divider{height:1px;background:var(--line);margin:20px 0}.checklist{display:grid;gap:9px}.check-item{display:flex;align-items:center;gap:8px;font-size:11px;color:#52676a}.check-item input{accent-color:var(--teal)}.summary-line{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #edf2f0;font-size:12px}.summary-line:last-child{border:0}.summary-line strong{white-space:nowrap}.page{display:none}.page.active{display:block}.section-intro{margin:0 0 18px}.section-intro h2{margin-bottom:6px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid label{display:flex;flex-direction:column;gap:7px;color:#52666a;font-size:11px;font-weight:700}.form-grid input,.form-grid select,.water-target input{width:100%;padding:11px 12px;border:1px solid #dbe5e3;border-radius:9px;background:#fcfefd;color:var(--ink);outline:none;min-width:0}.form-grid input:focus,.form-grid select:focus{border-color:#65bcb0;box-shadow:0 0 0 3px #dff5f0}.span-2{grid-column:span 2}.form-actions{display:flex;gap:8px;flex-wrap:wrap}.form-message{font-size:11px;color:var(--teal);margin:0;min-height:0}.table-wrap{width:100%;overflow:auto}table{width:100%;border-collapse:collapse;min-width:590px}th{text-align:left;background:#f6faf9;color:#738581;font-size:10px;letter-spacing:.5px;text-transform:uppercase;padding:12px 10px;white-space:nowrap}td{border-bottom:1px solid #edf2f0;padding:12px 10px;font-size:11px;color:#40565a;vertical-align:middle}tbody tr:last-child td{border-bottom:0}.table-action{border:0;background:#fff0ef;color:var(--red);padding:6px 8px;border-radius:7px;font-size:10px;font-weight:700}.food-kpis{margin-top:0}.food-kpis .kpi strong{font-size:21px;margin-top:9px}.water-panel{text-align:center;padding:28px}.water-number strong{display:block;font:800 42px Manrope;color:var(--teal)}.water-number span{font-size:12px;color:var(--muted)}.water-progress{margin:22px 0 16px;height:11px}.water-target{display:flex;align-items:end;justify-content:center;gap:10px;max-width:400px;margin:0 auto 18px}.water-target label{flex:1;text-align:left;font-size:11px;color:var(--muted)}.water-target input{display:block;margin-top:6px}.quick-water{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.report-list{display:grid;gap:0}.report-item{display:flex;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid var(--line);font-size:12px}.report-item:last-child{border:0}.report-item span{color:var(--muted)}.note{font-size:10px;color:var(--muted);line-height:1.6;margin:12px 0 0}footer{padding:17px 2px 4px;color:#92a19f;font-size:10px}footer span{padding:0 5px}.toast{position:fixed;bottom:20px;right:20px;background:#173b3d;color:white;padding:13px 17px;border-radius:10px;box-shadow:var(--shadow);font-size:12px;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;z-index:99}.toast.show{opacity:1;transform:translateY(0)}.chart-svg{width:100%;height:200px}.chart-grid{stroke:#e7efed;stroke-width:1}.chart-line{fill:none;stroke:#0f766e;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-point{fill:#fff;stroke:#0f766e;stroke-width:2}.chart-label{font:10px 'DM Sans';fill:#7b908c}
@media(max-width:1050px){.sidebar{width:210px}.main{width:calc(100% - 210px);padding:22px 20px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid{grid-template-columns:1fr}.welcome-mark{padding:0 5px}}
@media(max-width:700px){.app-shell{display:block}.sidebar{width:100%;padding:13px 12px 10px;position:sticky;top:0;z-index:20}.brand{padding:0 5px 12px}.nav-label,.sidebar-bottom{display:none}.sidebar{display:block}.sidebar .nav{display:inline-flex;width:auto;padding:9px 10px;margin:2px;font-size:14px}.sidebar .nav span{font-size:11px}.main{width:100%;padding:20px 13px}.topbar{align-items:flex-start;margin-bottom:18px}h1{font-size:24px}.top-actions{width:100%}.status-pill{margin-right:auto}.welcome{padding:20px}.welcome h2{font-size:19px}.welcome-mark{display:none}.kpi-grid{gap:9px}.kpi{padding:13px}.kpi strong{font-size:22px}.content-grid{gap:10px}.panel{padding:15px;margin-bottom:12px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.water-target{align-items:stretch}.water-target .btn{white-space:nowrap}.quick-water .btn{flex:1}.lower-grid{margin-bottom:0}footer{line-height:1.7}}

.auth-overlay{position:fixed;inset:0;background:#0c2629a8;display:grid;place-items:center;padding:18px;z-index:100}
.auth-overlay[hidden]{display:none}.auth-card{width:min(100%,430px);background:#fff;border-radius:18px;padding:27px;position:relative;box-shadow:0 25px 80px #001d1c40}.auth-card h2{font-size:22px;margin:10px 0}.auth-card>p{line-height:1.6}.auth-close{position:absolute;right:16px;top:12px;border:0;background:#f1f6f5;border-radius:8px;width:32px;height:32px;font-size:22px;color:#39545a}.auth-form{display:grid;gap:13px;margin-top:20px}.auth-form label{display:grid;gap:7px;font-size:12px;font-weight:700;color:#52666a}.auth-form input{padding:12px;border:1px solid #dbe5e3;border-radius:9px;width:100%}.auth-form input:focus{outline:2px solid #b5e8df;border-color:#65bcb0}.auth-form .btn{width:100%}.auth-switch{margin-top:14px}.auth-card .note{margin-top:18px}

/* V1.3 smart calorie target */
.calorie-panel{margin-bottom:16px}.calorie-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:8px 0 16px}.calorie-summary>div{display:flex;flex-direction:column;gap:5px}.calorie-summary strong{font:800 20px Manrope,sans-serif}.small-note{font-size:11px;margin-top:8px}.macro-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px}.macro-head{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted);margin-bottom:8px}.macro-head strong{color:var(--ink);font-size:11px}.macro-progress{height:10px}.macro-grid .progress{height:7px}@media(max-width:700px){.calorie-summary{grid-template-columns:1fr 1fr}.macro-grid{grid-template-columns:1fr}.calorie-summary strong{font-size:17px}}

/* V1.4 Daily Menu Suggestions */
.menu-suggestions-panel{border-color:#d8ebe5;background:linear-gradient(135deg,#ffffff,#f7fcfa)}.menu-target-pill{font-size:10px;font-weight:800;color:#0f766e;background:#e0f5ef;border-radius:30px;padding:8px 11px;white-space:nowrap}.menu-day-note{font-size:11px;color:var(--muted);margin:-5px 0 14px}.daily-menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.daily-menu-card{border:1px solid #dce9e5;background:white;border-radius:12px;padding:14px;min-width:0;display:flex;flex-direction:column}.daily-menu-top{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:12px}.meal-chip{font-size:10px;font-weight:800;color:#0f766e;background:#e5f5f1;padding:6px 8px;border-radius:20px}.meal-kcal{font-size:11px;font-weight:800;white-space:nowrap}.daily-menu-card h4{font-size:14px;line-height:1.45;margin-bottom:5px}.daily-menu-note{font-size:11px;color:var(--muted);line-height:1.5;min-height:30px;margin-bottom:10px}.menu-ingredients{list-style:none;padding:0;margin:0 0 12px;display:grid;gap:7px}.menu-ingredients li{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:#40565a}.menu-ingredients li span{color:var(--muted);white-space:nowrap}.menu-macros{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:10px 0;border-top:1px solid #edf2f0;margin-top:auto}.menu-macros span{font-size:9px;color:var(--muted)}.menu-macros b{display:block;color:var(--ink);font-size:10px;margin-top:3px}.menu-actions{display:flex;gap:6px;flex-wrap:wrap}.menu-actions .btn{flex:1;padding:9px 7px;font-size:10px;white-space:nowrap}.menu-suggestions-panel .note{line-height:1.6}@media(max-width:1000px){.daily-menu-grid{grid-template-columns:1fr}.daily-menu-card{padding:15px}.daily-menu-note{min-height:0}.menu-actions .btn{flex:0 1 auto}}@media(max-width:700px){.menu-suggestions-panel .panel-heading{align-items:flex-start;flex-direction:column}.daily-menu-grid{grid-template-columns:1fr}.menu-macros span{font-size:10px}.menu-actions .btn{flex:1}}


/* V1.7 Daily actual calorie indicator */
.daily-calorie-status{background:#fff;border:1px solid #dce9e5;border-radius:12px;padding:14px 16px;margin:-2px 0 15px}.daily-calorie-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.daily-calorie-head>div{display:grid;gap:4px}.daily-calorie-label{font-size:11px;color:var(--muted)}.daily-calorie-head strong{font:800 20px Manrope,sans-serif;color:var(--ink)}.daily-calorie-head strong small{font:500 11px 'DM Sans',sans-serif;color:var(--muted)}.daily-calorie-badge{font-size:10px;font-weight:800;padding:7px 10px;border-radius:30px;background:#e2f5ed;color:#0f766e;white-space:nowrap}.daily-calorie-badge.is-over{background:#fff0ef;color:#b42318}.daily-calorie-track{height:9px;border-radius:30px;background:#e8f0ee;overflow:hidden;margin:11px 0 8px}.daily-calorie-track span{display:block;height:100%;border-radius:30px;background:linear-gradient(90deg,#0f766e,#2dd4bf);transition:width .25s}.daily-calorie-track span.is-over{background:#dc625b}.daily-calorie-foot{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:10px}.daily-calorie-foot span:first-child{font-weight:700;color:var(--teal)}@media(max-width:700px){.daily-calorie-status{padding:12px}.daily-calorie-head strong{font-size:18px}.daily-calorie-foot{flex-direction:column;gap:4px}}

/* V1.8 Budget-friendly snack suggestions */
.snack-recommendations{border-top:1px solid #e7efec;margin-top:16px;padding-top:15px}.snack-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}.snack-heading h4{font-size:13px;margin:0 0 4px;color:var(--ink)}.snack-heading p,.snack-footnote{font-size:10px;color:var(--muted);margin:0;line-height:1.5}.snack-remaining{background:#e2f5ed;color:#0f766e;border-radius:30px;padding:7px 10px;font-size:10px;font-weight:800;white-space:nowrap}.snack-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.snack-card{background:#fff;border:1px solid #dce9e5;border-radius:10px;padding:12px;min-width:0;display:flex;flex-direction:column;gap:7px}.snack-card-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.snack-card-top strong{font-size:11px;color:var(--ink)}.snack-card-top span{font-size:10px;font-weight:800;white-space:nowrap}.snack-card p{font-size:10px;color:var(--muted);margin:0}.snack-macros{font-size:9px;color:var(--muted);margin-top:auto;padding:6px 0}.snack-card .btn{font-size:10px;padding:8px}.snack-card .btn:disabled{opacity:.65;cursor:not-allowed}.snack-footnote{margin-top:9px}.snack-empty{font-size:11px;color:var(--muted);padding:12px;background:#fff;border:1px dashed #dce9e5;border-radius:10px}@media(max-width:900px){.snack-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.snack-grid{grid-template-columns:1fr}.snack-heading{flex-direction:column}}


/* V1.9 Daily review summary */
.daily-review{border-top:1px solid #e7efec;margin-top:16px;padding-top:15px}.review-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.review-metrics article{display:flex;flex-direction:column;gap:5px;border:1px solid #dce9e5;background:#fff;border-radius:10px;padding:13px;min-width:0}.review-metrics article span{font-size:10px;color:var(--muted)}.review-metrics article strong{font:800 17px Manrope,sans-serif;overflow-wrap:anywhere}.review-metrics article small{font-size:9px;line-height:1.5;color:var(--muted)}.review-message{margin-top:10px;padding:13px 14px;border-radius:10px;background:#eaf7f3;color:#245b53;font-size:11px;line-height:1.7}.daily-review .snack-heading{align-items:center}@media(max-width:800px){.review-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:450px){.review-metrics{grid-template-columns:1fr 1fr}.review-metrics article{padding:10px}.review-metrics article strong{font-size:15px}}


/* V2.0 Weekly evaluation */
.weekly-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:10px 0}.weekly-metrics article{display:flex;flex-direction:column;gap:6px;min-width:0;padding:13px;border:1px solid #dce9e5;border-radius:10px;background:#fff}.weekly-metrics article span{font-size:10px;color:var(--muted)}.weekly-metrics article strong{font:800 17px Manrope,sans-serif;overflow-wrap:anywhere}.weekly-metrics article small{font-size:9px;color:var(--muted);line-height:1.5}.weekly-evaluation .review-message{margin-bottom:0}@media(max-width:1000px){.weekly-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.weekly-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.weekly-metrics article strong{font-size:15px}.weekly-evaluation .panel-heading{align-items:flex-start;flex-direction:column}}


/* V2.2 Complete weekly evaluation chart */
.weekly-chart-wrap{border:1px solid #dce9e5;background:#fff;border-radius:12px;padding:14px;margin:12px 0}.weekly-chart-wrap h4{font-size:13px;margin:0 0 3px}.weekly-chart-wrap .panel-heading{margin-bottom:8px}.weekly-bars{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;align-items:end;min-height:150px}.weekly-bar-item{display:grid;grid-template-rows:18px 110px 20px;gap:5px;align-items:end;text-align:center;min-width:0}.weekly-bar-value{font-size:9px;color:var(--muted);white-space:nowrap}.weekly-bar-track{height:110px;background:linear-gradient(to top,transparent 49%,#e8f0ee 50%,transparent 51%);border-bottom:1px solid #dce9e5;display:flex;align-items:flex-end;justify-content:center}.weekly-bar-track span{display:block;width:min(55%,34px);min-height:0;border-radius:5px 5px 0 0;background:linear-gradient(180deg,#2dd4bf,#0f766e)}.weekly-bar-track span.over{background:linear-gradient(180deg,#fca5a5,#dc625b)}.weekly-bar-item small{font-size:9px;color:var(--muted);white-space:nowrap}.weekly-chart-legend{display:flex;justify-content:space-between;gap:12px;margin-top:10px;font-size:10px;color:var(--muted)}.weekly-chart-legend i{display:inline-block;width:8px;height:8px;background:#0f766e;border-radius:2px;margin-right:5px}@media(max-width:550px){.weekly-chart-wrap{padding:10px}.weekly-bars{gap:4px}.weekly-bar-item{grid-template-rows:18px 90px 24px}.weekly-bar-track{height:90px}.weekly-bar-item small{white-space:normal}.weekly-bar-value{font-size:8px}.weekly-chart-legend{flex-direction:column;gap:5px}}

/* Complete weekly meal plan and grocery list */
.weekly-plan-section{margin-top:24px;padding-top:22px;border-top:1px solid var(--line,#e2ece9)}
.weekly-menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0 22px}
.weekly-day-card,.shopping-list-panel{border:1px solid var(--line,#dce9e6);border-radius:14px;padding:14px;background:var(--panel,#fff);min-width:0}
.weekly-day-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:10px;border-bottom:1px solid var(--line,#e2ece9);margin-bottom:6px}
.weekly-day-head strong{font-size:15px}.weekly-day-head span{font-size:12px;color:var(--muted,#6b7f8a)}
.weekly-meal-line{display:grid;grid-template-columns:82px minmax(0,1fr);gap:4px 8px;padding:8px 0;border-bottom:1px solid var(--line,#edf2f0)}
.weekly-meal-line small{grid-column:1;color:var(--muted,#6b7f8a)}.weekly-meal-line strong{grid-column:2;font-size:13px}.weekly-meal-line span{grid-column:2;font-size:12px;color:var(--muted,#6b7f8a)}
.weekly-day-total{display:flex;justify-content:space-between;gap:8px;font-size:12px;padding-top:10px;color:var(--muted,#6b7f8a)}.weekly-day-total strong{color:var(--text,#163b46)}
.shopping-list-panel{margin-top:12px}.shopping-list-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
.shopping-item{display:flex;align-items:center;gap:8px;border:1px solid var(--line,#e2ece9);border-radius:10px;padding:10px;min-width:0;font-size:12px}.shopping-item input{flex:0 0 auto;accent-color:var(--primary,#117c72)}.shopping-name{flex:1;min-width:0}.shopping-item strong{white-space:nowrap;font-size:12px}.shopping-item input:checked+.shopping-name{text-decoration:line-through;color:var(--muted,#6b7f8a)}
@media(max-width:760px){.weekly-menu-grid,.shopping-list-grid{grid-template-columns:1fr}.weekly-meal-line{grid-template-columns:76px minmax(0,1fr)}}
@media print{.weekly-plan-section button{display:none}}
