:root{color-scheme:light;--bg-soft: radial-gradient(circle at top, rgba(50, 196, 255, .08), transparent 30%), radial-gradient(circle at top right, rgba(255, 196, 41, .08), transparent 24%), linear-gradient(180deg, #f6f8fc 0%, #eef2f8 100%);--card: rgba(255, 255, 255, .95);--text: #221858;--muted: #6d678a;--border: rgba(34, 24, 88, .08);--coral: #ef4f91;--mint: #26baf7;--gold: #f3be27;--navy: #221858;--soft: #f3f5fb;--danger: #c9496b;--success: #2086b8;--shadow: 0 18px 40px rgba(34, 24, 88, .08);--radius-xl: 28px;--radius-lg: 20px;--radius-md: 16px}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{font-family:Segoe UI,Helvetica Neue,Arial,sans-serif;color:var(--text);background:var(--bg-soft)}button,input,select{font:inherit}a{color:inherit;text-decoration:none}.shell{width:min(100%,760px);margin:0 auto;padding:0 16px 96px;overflow-x:clip}.page,.auth-layout,.metrics-grid,.settings-grid,.chip-grid,.double-grid,.preview-list{display:grid;gap:18px}.list-stack{display:grid;gap:12px}.auth-layout{min-height:100vh;place-items:center}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:20px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overflow:hidden}.auth-card{width:min(100%,460px);display:grid;gap:16px;padding:26px 18px 20px}.auth-logo-row{display:flex;justify-content:center;width:100%}.auth-intro{display:grid;gap:8px}.app-header,.section-heading,.action-row,.title-inline,.list-row,.compact-actions,.preview-total,.bottom-nav,.water-manual-row{display:flex;align-items:center;gap:12px}.app-header,.section-heading,.list-row,.preview-total{justify-content:space-between}.section-heading{align-items:flex-start;gap:14px;flex-wrap:wrap}.section-heading>*{min-width:0}.app-header{margin-bottom:12px;padding:22px 20px 8px}.app-header-inner{display:grid;gap:10px;width:100%}.app-header-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;width:100%}.app-header-logo-wrap{display:flex;align-items:center;justify-content:flex-start;width:176px;height:54px;overflow:hidden}.brand-logo{display:block;height:auto;filter:drop-shadow(0 8px 16px rgba(34,24,88,.1))}.brand-logo-horizontal{width:176px;max-width:none;height:auto;margin-left:-6px;margin-top:-2px}.auth-logo{display:block;width:min(100%,194px);height:auto;margin:0;filter:drop-shadow(0 12px 22px rgba(34,24,88,.12))}.app-header-title,.auth-title,.section-title,.metric-value{margin:0;font-family:Georgia,Times New Roman,serif}.app-header-title{max-width:260px;margin-top:0;font-size:clamp(1.95rem,5.4vw,2.7rem);line-height:.92;letter-spacing:-.03em}.app-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.auth-title{line-height:.98}.app-header-action{min-height:46px;padding:10px 18px;border-radius:16px;flex-shrink:0;margin-top:0}.app-header-action.active{background:var(--navy);color:#fff;border-color:#22185833}.eyebrow{margin:0 0 8px;color:var(--muted);font-size:.76rem;letter-spacing:.08em;text-transform:uppercase}.helper-text{margin:0;color:var(--muted);line-height:1.45}.feedback-banner{margin:8px 0 2px;padding:14px 16px;border-radius:18px;background:linear-gradient(135deg,#26baf71f,#ef4f911f),#ffffffdb;border:1px solid rgba(34,24,88,.08);color:var(--text);box-shadow:inset 0 1px #ffffffbf}.feedback-kicker{display:inline-block;margin-bottom:6px;color:var(--navy);font-size:.76rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.feedback-message{margin:0;color:var(--text);font-size:1rem;font-weight:700;line-height:1.35}.ai-coach-card{gap:18px}.ai-coach-copy,.ai-coach-recent{display:grid;gap:8px}.ai-coach-card .chip-grid{gap:12px}.ai-coach-action-row{margin-top:2px}.ai-coach-send{width:100%}.ai-response-card{padding:14px 16px;border-radius:18px;background:linear-gradient(135deg,#ffc4291f,#26baf71f),#ffffffe6;border:1px solid rgba(34,24,88,.08)}.ai-response-label{margin:0 0 6px;color:var(--navy);font-size:.76rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.ai-response-text{margin:0;color:var(--text);font-weight:600;line-height:1.45}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.consistency-score{display:grid;gap:2px;justify-items:end;text-align:right}.consistency-score span{color:var(--muted);font-size:.76rem;letter-spacing:.08em;text-transform:uppercase}.consistency-score strong{color:var(--navy);font-size:1.55rem;line-height:1}.consistency-summary-grid{gap:12px}.insights-card{gap:18px}.insights-heading,.insights-copy{display:grid}.insights-heading{grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}.insights-copy{gap:6px}.insight-step{font-weight:500}.reset-button{margin-top:6px;align-self:flex-start;background:linear-gradient(135deg,#fff5e8fa,#ffecd6fa);color:#8a4d1e;border-color:#f3be2757;box-shadow:0 10px 20px #f3be2724,inset 0 1px #ffffffb8}.reset-button:hover{background:linear-gradient(135deg,#fff8eefa,#ffefddfa);border-color:#f3be2780}.reset-button:focus-visible{outline:3px solid rgba(243,190,39,.18);outline-offset:2px}.field{display:grid;gap:8px;margin:0;min-width:0}.field span{font-size:.94rem;font-weight:600}.input{width:100%;max-width:100%;min-width:0;min-height:54px;padding:14px 16px;border:1px solid rgba(34,24,88,.1);border-radius:var(--radius-md);background:#fffffff5;color:var(--text);display:block}input[type=date].input{-webkit-appearance:none;-moz-appearance:none;appearance:none;inline-size:100%}.input:focus{outline:2px solid rgba(38,186,247,.16);border-color:#26baf773}.primary-button,.ghost-button,.chip-button,.nav-link{min-height:52px;border:1px solid transparent;border-radius:18px;padding:14px 16px;cursor:pointer;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease,transform .14s ease}.primary-button:hover,.ghost-button:hover,.chip-button:hover,.nav-link:hover{transform:translateY(-1px)}.primary-button{background:var(--navy);color:#fff;font-weight:700;border-color:#22185847;box-shadow:0 10px 20px #22185824}.ghost-button,.nav-link{background:#ffffffe0;color:var(--text);border-color:#22185814}.nav-link{flex:1;text-align:center}.nav-link.active{background:var(--navy);color:#fff;border-color:#22185833}.full-width{width:100%}.small-button{min-height:42px;padding:10px 12px}.text-link{margin-top:2px;color:var(--muted)}.progress-track{height:14px;background:#eef1f8;border-radius:999px;overflow:hidden;margin-top:12px}.progress-fill{height:100%;border-radius:999px}.progress-fill.coral{background:linear-gradient(90deg,#f784b1,var(--coral))}.progress-fill.mint{background:linear-gradient(90deg,#79dffd,var(--mint))}.chip-button{display:grid;gap:6px;text-align:left;background:#ffffffeb;border:1px solid var(--border)}.chip-button.soft{background:#f8faff}.chip-button span{color:var(--muted);font-size:.9rem}.list-row,.preview-card,.scanner-card,.preview-edit-card{background:#ffffffdb;border:1px solid rgba(33,22,79,.08);border-radius:var(--radius-lg);padding:14px}.preview-edit-card{display:grid;gap:12px}.preview-edit-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.meal-pill{background:#f3be2726;color:#8e6800;border-radius:999px;padding:6px 10px;font-size:.8rem}.error-text{color:var(--danger);margin:0}.success-text{color:var(--success)}.danger-text{color:var(--danger)}.recent-block{margin-top:8px}.quick-add-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.history-summary-card,.history-detail-card{gap:18px}.goals-hero-card,.goals-hero-copy,.goals-optional-stack,.goals-results-stack,.goals-feedback-stack,.settings-link-card,.settings-main-card,.settings-fast-repeat-card,.goals-targets-card,.recipe-helper-card,.recipe-builder-card{display:grid}.goals-hero-card,.goals-results-stack,.settings-link-card,.settings-main-card,.settings-fast-repeat-card,.goals-targets-card,.recipe-helper-card,.recipe-builder-card{gap:16px}.goals-hero-copy,.goals-optional-stack,.goals-feedback-stack{gap:8px}.goals-link-button,.settings-link-button{justify-content:center}.goals-warning-copy{margin-top:-4px}.goals-action-row{margin-top:8px;margin-bottom:2px}.goals-subtitle{display:block;margin-bottom:10px;color:var(--navy)}.goals-empty-state{margin-top:2px}.goals-meal-split .list-row{padding:0;border:0;background:transparent}.recipe-summary-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.recipe-ingredient-card{gap:14px}.recipe-detail-actions{flex-wrap:wrap}.recipe-detail-actions>*{flex:1 1 150px}.history-range-row,.history-filter-row,.history-summary-grid,.trend-label-row,.history-day-top,.history-day-metrics{display:grid;gap:12px}.history-range-row{grid-template-columns:repeat(3,minmax(0,1fr))}.history-range-button{justify-items:center}.history-range-button.active{background:var(--navy);color:#fff;border-color:#22185833}.history-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.history-mini-stat,.trend-card,.history-day-button,.history-meal-card{background:#ffffffe0;border:1px solid rgba(34,24,88,.08);border-radius:20px}.history-mini-stat{padding:14px;display:grid;gap:4px}.history-mini-stat span{color:var(--muted);font-size:.82rem}.history-mini-stat strong{color:var(--navy);font-size:1.2rem}.history-day-button{padding:16px;text-align:left;cursor:pointer;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.history-day-button:hover{transform:translateY(-1px);border-color:#22185829}.history-day-button.active{border-color:#26baf757;box-shadow:0 12px 24px #22185814}.history-status-pill{align-self:start;padding:7px 10px;border-radius:999px;font-size:.8rem;font-weight:700;background:#2218580f}.history-status-pill.on-track{background:#26baf71f;color:var(--success)}.history-status-pill.over-calories{background:#ef4f911f;color:var(--danger)}.history-status-pill.low-protein{background:#f3be2729;color:#8e6800}.history-status-pill.missed-logging{background:#6d678a1f;color:var(--muted)}.history-day-metrics{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:10px;color:var(--muted);font-size:.92rem}.history-meal-card,.trend-card{padding:14px}.trend-title{margin:0;font-family:Georgia,Times New Roman,serif;color:var(--text)}.trend-chart-shell{display:grid;gap:12px}.trend-chart{width:100%;height:140px}.trend-axis{stroke:#2218581a;stroke-width:1}.trend-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.trend-dot{stroke:#fff;stroke-width:2}.trend-label-row{grid-template-columns:repeat(auto-fit,minmax(72px,1fr))}.trend-label-pill{padding:10px;border-radius:16px;background:#2218580a;display:grid;gap:3px}.trend-label-pill strong{color:var(--navy);font-size:.92rem}.trend-label-pill span{color:var(--muted);font-size:.78rem}.quick-add-header-row .eyebrow{margin:0}.inline-toggle-button{padding:0;border:0;background:transparent;color:var(--navy);font-size:.88rem;font-weight:700;cursor:pointer}.inline-toggle-button:hover{text-decoration:underline}.water-total{color:var(--navy);font-size:1rem;white-space:nowrap}.water-chip-grid{margin-top:16px}.water-manual-row{align-items:end;margin-top:4px}.water-manual-row .field{flex:1}.water-add-button{min-width:132px}.food-action-row{align-items:stretch;margin-top:6px;margin-bottom:8px}.food-action-grid{flex-wrap:wrap}.food-action-button{flex:1;min-width:140px}.photo-button{display:inline-flex;align-items:center;justify-content:center;gap:8px}.photo-button-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:#22185814;color:var(--navy);font-weight:800;line-height:1}.scanner-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:12px 14px;background:linear-gradient(180deg,#26baf71f,#26baf70a);color:var(--navy);border:1px solid rgba(38,186,247,.32);border-radius:18px;box-shadow:inset 0 1px #ffffffb3}.scanner-button-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;background:#26baf729;color:var(--navy);font-size:.95rem;line-height:1;flex-shrink:0}.scanner-button:hover{border-color:#26baf76b;background:linear-gradient(180deg,#26baf729,#26baf712)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:16px;background:#22185842;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal-card{width:min(100%,560px);max-height:min(88vh,760px);overflow:auto;background:#fffffffa;border:1px solid rgba(34,24,88,.08);border-radius:28px;padding:18px;box-shadow:0 24px 60px #22185838;display:grid;gap:16px}.celebration-overlay{background:#22185857}.warning-overlay{background:#130f2d85}.special-message-overlay{background:#22185847}.celebration-card{position:relative;width:min(100%,560px);overflow:hidden;background:radial-gradient(circle at top,rgba(255,196,41,.22),transparent 35%),radial-gradient(circle at top right,rgba(239,79,145,.18),transparent 30%),#fffffffa;border:1px solid rgba(34,24,88,.08);border-radius:28px;padding:24px 18px 18px;box-shadow:0 28px 64px #22185842;display:grid;gap:14px}.warning-card{width:min(100%,520px);background:radial-gradient(circle at top,rgba(109,103,138,.12),transparent 38%),#fbfbfefa;border:1px solid rgba(34,24,88,.12);border-radius:28px;padding:22px 18px 18px;box-shadow:0 28px 64px #0e0c2047;display:grid;gap:14px}.special-message-card{width:min(100%,520px);background:radial-gradient(circle at top left,rgba(255,196,41,.14),transparent 34%),radial-gradient(circle at top right,rgba(239,79,145,.12),transparent 30%),#fffffffa;border:1px solid rgba(34,24,88,.1);border-radius:28px;padding:22px 18px 18px;box-shadow:0 28px 64px #22185833;display:grid;gap:14px}.special-message-title{max-width:280px;line-height:.98}.special-message-copy{margin:0;max-width:360px;color:var(--text);font-weight:600;line-height:1.5}.warning-title{max-width:320px;line-height:.96}.warning-copy{margin:0;max-width:360px;color:var(--muted);font-weight:600;line-height:1.45}.warning-step{padding:14px;background:#2218580a;border:1px solid rgba(34,24,88,.08);border-radius:18px;color:var(--text);font-weight:600;line-height:1.4}.warning-button{margin-top:4px}.celebration-title{max-width:280px;font-size:clamp(2rem,6vw,2.7rem);line-height:.95}.celebration-copy{margin:0;max-width:320px;color:var(--text);font-weight:600;line-height:1.45}.fireworks-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.firework,.spark{position:absolute;border-radius:999px;opacity:.9;animation:burst 1.8s ease-out infinite}.firework{width:110px;height:110px;background:radial-gradient(circle,rgba(255,255,255,0) 34%,transparent 34%),conic-gradient(from 0deg,#26baf7 0,#26baf7 25%,#f3be27 25%,#f3be27 50%,#ef4f91 50%,#ef4f91 75%,#221858 75%,#221858);mask:radial-gradient(circle,transparent 0 42%,black 43% 50%,transparent 51%)}.spark{width:14px;height:14px;background:linear-gradient(135deg,#f3be27,#ef4f91)}.firework-one{top:8%;right:10%}.firework-two{top:18%;left:4%;animation-delay:.4s}.firework-three{top:2%;left:42%;animation-delay:.8s}.spark-one{top:26%;right:22%}.spark-two{top:14%;left:26%;animation-delay:.5s}.spark-three{top:30%;left:58%;animation-delay:1s}@keyframes burst{0%{transform:scale(.2);opacity:0}25%{opacity:.95}to{transform:scale(1.05);opacity:0}}.modal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.textarea-input{min-height:104px;resize:vertical}.recovery-plan{display:grid;gap:14px}.recovery-intro{margin:0;font-weight:700;color:var(--text)}.recovery-grid{gap:12px}.plan-chip,.plan-step{background:#ffffffe0;border:1px solid rgba(34,24,88,.08);border-radius:18px}.plan-chip{padding:14px;display:grid;gap:4px}.plan-chip span{color:var(--muted);font-size:.84rem}.plan-chip strong{font-size:1.2rem;color:var(--navy)}.plan-step{padding:14px;color:var(--text);font-weight:600;line-height:1.4}.hero-copy{display:grid;gap:8px}.hero-copy .eyebrow{margin-bottom:0}.hero-copy .helper-text{margin-top:-2px}.hero-card{gap:16px}.hero-card .field,.hero-card .input{min-width:0}.weight-form-grid{gap:14px}.double-grid>*{min-width:0}.weight-action-row{margin-top:6px;padding-bottom:2px}.settings-save-button{margin-top:10px}.settings-link-card .helper-text,.settings-main-card .helper-text,.settings-fast-repeat-card .helper-text,.goals-targets-card .helper-text{max-width:36ch}.settings-action-row{margin-top:10px;margin-bottom:10px}.settings-action-button{flex:1}.bottom-nav{position:fixed;left:16px;right:16px;bottom:16px;width:min(calc(100% - 32px),728px);margin:0 auto;justify-content:space-between;padding:8px;border-radius:24px;background:#fffffff5;border:1px solid var(--border);box-shadow:var(--shadow);gap:8px}@media(min-width:700px){.metrics-grid,.settings-grid,.chip-grid,.double-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.list-row,.preview-total{align-items:flex-start;flex-direction:column}.action-row>*{width:100%}.food-action-row{gap:10px}.modal-overlay{padding:12px}.modal-card{border-radius:24px;padding:16px}.food-action-button{min-width:calc(50% - 6px);padding-left:12px;padding-right:12px}.scanner-button{flex:1}.scanner-button span:last-child{line-height:1.1}.photo-button{flex:1}.settings-action-row{gap:10px}.hero-card{padding-right:18px;padding-left:18px;gap:14px}.hero-card .input{min-height:52px}.water-manual-row{align-items:stretch;flex-direction:column}.water-add-button{width:100%}.compact-actions{width:100%;flex-wrap:wrap}.compact-actions>*{flex:1}.app-header{padding:20px 16px 4px}.app-header-inner{gap:8px}.app-header-top{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 12px}.app-header-logo-wrap{width:168px;height:50px;align-self:center}.brand-logo-horizontal{width:168px;margin-left:-4px;margin-top:2px}.app-header-actions{gap:6px;justify-content:flex-end;align-self:center}.app-header-toggle{display:none}.app-header-action{min-height:40px;padding:8px 12px;font-size:.9rem;border-radius:15px}.app-header-title{max-width:220px;font-size:clamp(1.65rem,8vw,2.1rem);line-height:.94}.bottom-nav{gap:6px}.nav-link{min-height:50px;padding:12px 10px;font-size:.92rem}.quick-add-header-row{align-items:flex-start;flex-direction:column;gap:6px}.history-summary-grid,.history-day-metrics,.history-filter-row,.preview-edit-grid,.recipe-summary-grid,.insights-heading{grid-template-columns:1fr}.consistency-score{justify-items:start;text-align:left}}
