:root{--bg: #f0eadf;--card: #fffdfa;--surface-secondary: #f7f1e8;--sand: #e8d8be;--primary: #1b6457;--primary-secondary: #25836f;--primary-soft: rgba(27, 100, 87, .1);--amber: #b86e25;--amber-soft: rgba(184, 110, 37, .12);--text: #171915;--text-secondary: #43463f;--text-tertiary: #6b6e67;--border: rgba(26, 26, 26, .12);--border-soft: rgba(26, 26, 26, .07);--shadow: 0 5px 18px rgba(58, 46, 29, .06);--radius-card: 18px;--radius-control: 14px;--ease-out: cubic-bezier(.22, 1, .36, 1);--accent: var(--primary);--muted: var(--text-tertiary);--danger: #a8442d;--nav-h: 62px;--dock-h: 58px}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;-webkit-text-size-adjust:100%}html,body,#root{background:var(--bg)}body{font-family:Nunito Sans,system-ui,-apple-system,sans-serif;color:var(--text);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;overflow-x:hidden}h1,h2,h3{font-family:Montserrat,system-ui,sans-serif;font-weight:600;letter-spacing:-.01em;color:var(--text)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow);padding:16px}.secondary-surface{background:var(--surface-secondary);border:1px solid var(--border-soft);border-radius:var(--radius-control)}.section-title{font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-tertiary);margin:4px 2px 10px}.muted{color:var(--text-tertiary)}.small{font-size:13px}.hint{color:var(--text-tertiary);font-size:12px}.danger{color:var(--danger)}.empty-state{color:var(--text-tertiary);font-size:14px;text-align:center;padding:18px 12px}.error{color:var(--danger);background:#a8442d14;border:1px solid rgba(168,68,45,.18);border-radius:var(--radius-control);padding:9px 12px;font-size:13px;margin-top:10px}.success-banner{color:var(--primary);background:var(--primary-soft);border-radius:var(--radius-control);padding:9px 12px;font-size:13px;margin-top:10px}.btn-primary,button.primary,.big-btn{font-family:Montserrat,system-ui,sans-serif;font-weight:600;font-size:14px;background:var(--primary);color:#fff;border-radius:var(--radius-control);padding:12px 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:background .2s var(--ease-out),transform .12s var(--ease-out)}.btn-primary:active,button.primary:active,.big-btn:active{background:#17564b;transform:translateY(1px)}.btn-primary:disabled,button.primary:disabled,.big-btn:disabled{opacity:.45;cursor:default;transform:none}.big-btn{width:100%}.btn-secondary,button.secondary{font-weight:600;font-size:13px;background:var(--surface-secondary);border:1px solid var(--border-soft);color:var(--primary);border-radius:var(--radius-control);padding:9px 14px;transition:background .2s var(--ease-out),transform .12s var(--ease-out)}.btn-secondary:active,button.secondary:active{background:var(--sand);transform:translateY(1px)}.btn-link,.link{color:var(--primary);font-size:13px;font-weight:600;text-decoration:none;padding:6px 2px}.icon-btn{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);background:var(--surface-secondary);border:1px solid var(--border-soft);transition:background .2s var(--ease-out)}.icon-btn:active{background:var(--sand)}.app-frame{max-width:560px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.app-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;padding-top:max(10px,env(safe-area-inset-top));background:#f0eadfeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-soft)}.app-header h1{font-size:19px}.app-header .subtitle{font-size:12px;color:var(--text-tertiary)}.brand-name{font-family:Montserrat,system-ui,sans-serif;font-weight:700;font-size:13px;letter-spacing:.13em;color:var(--primary)}.brand-date{font-size:13px;color:var(--text-secondary);margin-top:1px}.sync-pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--primary);background:var(--primary-soft);border-radius:999px;padding:5px 10px;white-space:nowrap}.sync-pill.err{color:var(--danger);background:#a8442d1a}.app-content{flex:1;padding:14px 16px;padding-bottom:calc(var(--nav-h) + var(--dock-h) + env(safe-area-inset-bottom) + 20px);display:flex;flex-direction:column;gap:12px}.date-nav{display:flex;align-items:center;gap:8px}.nav-btn{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);background:var(--card);border:1px solid var(--border)}.nav-btn:disabled{opacity:.35}.date-text{position:relative;flex:1;text-align:center;font-family:Montserrat,system-ui,sans-serif;font-weight:600;font-size:14px}.date-text input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;width:100%;height:100%}.today-pill{font-size:12px;font-weight:600;color:var(--primary);background:var(--primary-soft);border-radius:999px;padding:5px 11px}.status-summary{display:grid;grid-template-columns:repeat(3,1fr);padding:14px 4px}.status-cell{text-align:center;padding:0 6px;min-width:0}.status-cell+.status-cell{border-left:1px solid var(--border-soft)}.status-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--primary-soft);color:var(--primary);margin-bottom:6px}.status-label{font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:var(--text-tertiary)}.status-value{font-family:Montserrat,system-ui,sans-serif;font-weight:600;font-size:20px;letter-spacing:-.02em;margin-top:2px;white-space:nowrap}.status-hint{font-size:11px;color:var(--text-tertiary);margin-top:3px;line-height:1.3}.red-flag-card{padding:16px 18px;border-color:#b86e2559;background:linear-gradient(var(--amber-soft),var(--amber-soft)),var(--card)}.red-flag-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}.red-flag-icon{display:inline-flex;color:var(--amber)}.red-flag-kicker{font-family:Montserrat,system-ui,sans-serif;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--amber)}.red-flag-item+.red-flag-item{margin-top:12px}.red-flag-title{font-family:Montserrat,system-ui,sans-serif;font-size:15px;font-weight:600;color:var(--text)}.red-flag-detail{margin:4px 0 0;font-size:13px;line-height:1.45;color:var(--text-secondary)}.red-flag-doctor{margin:12px 0 0;padding:10px 12px;font-size:12px;line-height:1.45;color:var(--text-secondary)}.rec-card{padding:16px 18px}.rec-loading{display:flex;align-items:center;gap:8px;color:var(--text-tertiary);font-size:13px}.rec-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.rec-kicker{font-family:Montserrat,system-ui,sans-serif;font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--primary)}.rec-conf{font-size:11px;color:var(--text-tertiary);white-space:nowrap}.rec-title{margin:8px 0 0;font-family:Montserrat,system-ui,sans-serif;font-size:17px;font-weight:600;line-height:1.3;color:var(--text)}.rec-line{margin:8px 0 0;font-size:13px;line-height:1.5;color:var(--text-secondary)}.rec-effect{margin:8px 0 0;font-size:13px;line-height:1.5;color:var(--primary)}.rec-critic,.rec-risks{margin:10px 0 0;padding:10px 12px;font-size:12px;line-height:1.45;color:var(--text-secondary)}.rec-risks-toggle{margin-top:10px;padding:0;border:0;background:none;font-family:inherit;font-size:12px;color:var(--text-tertiary);text-decoration:underline;cursor:pointer}.rec-check{margin-top:12px;font-size:12px;color:var(--text-tertiary)}.rec-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.rec-btn{flex:1 1 auto;min-height:40px;padding:0 14px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface-secondary);font-family:inherit;font-size:13px;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:transform .12s var(--ease-out),filter .12s var(--ease-out)}.rec-btn.primary{border-color:transparent;background:var(--primary);color:#fffdfa}.rec-btn:active{transform:translateY(1px);filter:brightness(.97)}.rec-btn:disabled{opacity:.55;cursor:default}.rec-decided{margin-top:14px;padding:10px 12px;border-radius:var(--radius-control);background:var(--primary-soft);font-size:13px;font-weight:600;color:var(--primary)}.rec-due{border-color:#1b645759}.plan-hero{padding:18px}.plan-hero-head{display:flex;align-items:center;gap:10px}.ai-badge{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--primary);color:#fff;flex:none}.plan-hero-kicker{flex:1;font-family:Montserrat,system-ui,sans-serif;font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--text-tertiary)}.plan-refresh-btn{width:30px;height:30px;flex:none}.plan-hero-title{font-size:22px;line-height:1.2;margin:12px 0 0}.plan-hero-sub{font-size:14px;color:var(--text-secondary);margin-top:6px}.plan-hero-signals{font-size:13px;color:var(--text-tertiary);margin-top:4px}.plan-hero-note{font-size:13px;color:var(--text-secondary);margin-top:8px}.plan-hero-actions{display:flex;align-items:center;gap:12px;margin-top:14px;flex-wrap:wrap}.plan-hero-actions .btn-primary{flex:1;min-width:150px}.plan-hero-why{margin-top:12px;padding:12px;font-size:13px;color:var(--text-secondary)}.load-bar{margin-top:16px}.load-track{position:relative;height:10px;border-radius:999px;background:var(--sand);border:none}.load-zone{position:absolute;top:0;bottom:0;background:#25836f57;border-radius:999px}.load-marker{position:absolute;top:50%;width:16px;height:16px;border-radius:50%;background:var(--primary);border:2px solid var(--card);transform:translate(-50%,-50%);transition:left .5s var(--ease-out)}.load-marker-value{position:absolute;left:50%;bottom:18px;transform:translate(-50%);font-family:Montserrat,system-ui,sans-serif;font-size:11px;font-weight:600;color:var(--primary);white-space:nowrap}.load-legend{display:flex;justify-content:space-between;gap:6px;margin-top:10px;font-size:11px;color:var(--text-tertiary)}.load-legend .active{color:var(--text-secondary);font-weight:600}.plan-detail{margin-top:14px;display:flex;flex-direction:column;gap:10px}.plan-focus{font-size:14px;color:var(--text-secondary)}.plan-meal{display:flex;gap:12px;padding:12px}.plan-meal-photo{width:64px;height:64px;object-fit:cover;border-radius:12px;flex:none}.plan-meal-body{min-width:0;flex:1}.plan-meal-slot{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-tertiary)}.plan-meal-title{font-family:Montserrat,system-ui,sans-serif;font-weight:600;font-size:15px;margin-top:2px}.plan-meal-items{list-style:none;margin-top:6px;font-size:13px}.plan-meal-items .item-name{color:var(--text-secondary)}.plan-meal-items .item-meta{color:var(--text-tertiary);font-size:12px}.plan-meal-rationale{font-size:12px;color:var(--text-tertiary);margin-top:6px}.plan-recovery{padding:12px;font-size:13px;color:var(--text-secondary)}.duo-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.duo-card{display:flex;flex-direction:column;gap:8px;min-width:0}.duo-head{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--primary)}.duo-head.accent{color:var(--amber)}.duo-value{font-family:Montserrat,system-ui,sans-serif;font-weight:600;font-size:21px;letter-spacing:-.02em;line-height:1.15;overflow-wrap:anywhere}.duo-value.small{font-size:14px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.duo-of{font-size:13px;font-weight:500;color:var(--text-tertiary)}.duo-sub{font-size:12px;color:var(--text-secondary)}.duo-illustration{display:flex;align-items:center;justify-content:center;color:var(--amber);opacity:.55;padding:6px 0}.duo-card .btn-secondary{margin-top:auto}.mini-track{height:7px;border-radius:999px;background:var(--sand);border:none;overflow:hidden}.mini-fill{height:100%;background:var(--primary);border-radius:999px;transition:width .5s var(--ease-out)}.timeline{padding:4px 16px}.timeline-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:13px 0;position:relative;transition:transform .12s var(--ease-out)}.timeline-row+.timeline-row{border-top:1px solid var(--border-soft)}.timeline-row:active{transform:scale(.985)}.timeline-slot{flex:none;width:88px;font-family:Montserrat,system-ui,sans-serif;font-size:11px;font-weight:600;line-height:1.25;color:var(--primary);padding-left:12px;padding-right:6px;border-left:2px solid var(--primary-soft)}.timeline-body{flex:1;min-width:0}.timeline-title{display:block;font-size:14px;font-weight:600;color:var(--text);overflow-wrap:anywhere}.timeline-meta{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;color:var(--text-tertiary);margin-top:2px}.timeline-chev{flex:none;color:var(--text-tertiary)}.macros-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.macro-cell{padding:12px 10px;min-width:0;text-align:center}.m-name{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary)}.m-val{font-family:Montserrat,system-ui,sans-serif;font-weight:600;font-size:19px;margin-top:2px}.m-target{font-size:11px;color:var(--text-tertiary)}.macro-bar{height:6px;border-radius:999px;background:var(--sand);border:none;overflow:hidden;margin-top:8px}.macro-bar>div{height:100%;background:var(--primary);border-radius:999px;transition:width .5s var(--ease-out)}.m-delta{font-size:11px;color:var(--text-tertiary);margin-top:5px}.day-strip{display:grid;grid-template-columns:repeat(3,1fr);padding:14px 4px;color:var(--primary)}.strip-cell{text-align:center;padding:0 6px;min-width:0}.strip-cell+.strip-cell{border-left:1px solid var(--border-soft)}.strip-label{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary);margin-top:4px}.strip-value{font-family:Montserrat,system-ui,sans-serif;font-weight:600;font-size:16px;color:var(--text);margin-top:1px;white-space:nowrap}.strip-cell.deficit{color:var(--amber)}.insight-card{display:flex;flex-direction:column;gap:8px}.insight-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.insight-title{display:flex;align-items:center;gap:8px;font-family:Montserrat,system-ui,sans-serif;font-weight:600;font-size:15px;color:var(--primary)}.insight-refresh-btn{font-size:13px;color:var(--text-tertiary);background:var(--surface-secondary);border:1px solid var(--border-soft);border-radius:var(--radius-control);padding:5px 10px;flex:none}.insight-advice{font-size:14px;color:var(--text-secondary)}.insight-actions{list-style:none;display:flex;flex-direction:column;gap:6px}.insight-actions li{font-size:13px;color:var(--text-secondary);padding:9px 12px;background:var(--surface-secondary);border-radius:var(--radius-control)}.insight-loading{display:flex;align-items:center;gap:10px;color:var(--text-tertiary)}.ai-limit-card{display:flex;flex-direction:column;gap:10px}.ai-limit-head{font-family:Montserrat,system-ui,sans-serif;font-weight:600;color:var(--primary)}.ai-limit-title{display:inline-flex;align-items:center;gap:8px;font-size:15px}.ai-limit-body{display:flex;align-items:center;gap:16px}.ai-limit-ring{position:relative;flex:none}.ai-limit-track{fill:none;stroke:var(--sand);stroke-width:8}.ai-limit-progress{fill:none;stroke:var(--primary);stroke-width:8;stroke-linecap:round}.ai-limit-ring-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.ai-limit-used{font-family:Montserrat,system-ui,sans-serif;font-weight:600;font-size:18px}.ai-limit-limit{font-size:11px;color:var(--text-tertiary)}.ai-limit-text{min-width:0}.ai-limit-message{font-weight:600;font-size:14px}.ai-limit-sub{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-tertiary);margin-top:4px}.ai-limit-countdown{font-variant-numeric:tabular-nums;font-weight:600;color:var(--text-secondary)}.ai-limit-retry{margin-top:10px;font-size:13px;font-weight:600;color:var(--primary);background:var(--surface-secondary);border-radius:var(--radius-control);padding:8px 14px}.card h2{font-size:14px;font-weight:600;color:var(--text-secondary);margin-bottom:10px}.workouts-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.btn-add-workout{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--primary);background:var(--primary-soft);border-radius:999px;padding:5px 11px}.workout-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0}.workout-row+.workout-row{border-top:1px solid var(--border-soft)}.workout-left{min-width:0}.workout-type{font-weight:600;font-size:14px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.workout-badge{font-size:10px;font-weight:600;text-transform:uppercase;color:var(--text-tertiary);background:var(--surface-secondary);border-radius:999px;padding:2px 7px}.workout-meta{font-size:12px;color:var(--text-tertiary)}.workout-right{display:flex;align-items:center;gap:8px;flex:none}.workout-cal{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--amber);white-space:nowrap}.workout-del{width:28px;height:28px}.sleep-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.sleep-main{display:flex;align-items:baseline;gap:12px}.sleep-duration{font-family:Montserrat,system-ui,sans-serif;font-weight:600;font-size:26px;letter-spacing:-.02em}.sleep-unit{font-size:12px;font-weight:500;color:var(--text-tertiary);margin-left:2px}.sleep-score{font-family:Montserrat,system-ui,sans-serif;font-weight:600;font-size:16px;color:var(--primary);background:var(--primary-soft);border-radius:999px;padding:3px 11px}.sleep-score.score-bad{color:var(--amber);background:var(--amber-soft)}.sleep-phases{display:flex;flex-wrap:wrap;gap:6px;font-size:11px;color:var(--text-tertiary)}.sleep-phases span{background:var(--surface-secondary);border-radius:999px;padding:3px 9px;white-space:nowrap}.fa-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.fa-main{flex:none}.fa-value{font-family:Montserrat,system-ui,sans-serif;font-weight:600;font-size:30px;letter-spacing:-.02em;color:var(--primary)}.fa-label{font-size:11px;color:var(--text-tertiary)}.fa-side{display:flex;gap:12px;flex-wrap:wrap;flex:1;min-width:0;justify-content:flex-end}.fa-stat{text-align:right;min-width:0}.fa-stat-label{overflow-wrap:anywhere}.fa-stat-label{display:block;font-size:11px;color:var(--text-tertiary)}.fa-stat-val{font-family:Montserrat,system-ui,sans-serif;font-weight:600;font-size:15px}.meals-section{display:flex;flex-direction:column;gap:10px}.meal-group{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow);overflow:hidden}.meal-group-head{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:13px 16px;text-align:left}.meal-group-head-left{display:flex;align-items:center;gap:8px;min-width:0}.meal-type{font-family:Montserrat,system-ui,sans-serif;font-weight:600;font-size:14px}.meal-group-meta{font-size:12px;color:var(--text-tertiary)}.meal-group-chev{color:var(--text-tertiary);transition:transform .25s var(--ease-out)}.meal-group-chev.collapsed{transform:rotate(-90deg)}.meal-group-body{padding:0 16px 12px;display:flex;flex-direction:column;gap:10px}.meal-card{background:var(--surface-secondary);border:1px solid var(--border-soft);border-radius:var(--radius-control);padding:12px}.meal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.meal-head-left{min-width:0}.meal-title{font-weight:600;font-size:14px;overflow-wrap:anywhere}.meal-total{font-family:Montserrat,system-ui,sans-serif;font-weight:600;font-size:14px;white-space:nowrap}.meal-items{list-style:none;margin-top:8px;display:flex;flex-direction:column;gap:5px}.meal-item{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}.meal-item .item-name{color:var(--text-secondary);min-width:0;overflow-wrap:anywhere}.item-cal{color:var(--text-tertiary);font-size:12px;white-space:nowrap}.meal-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.profile-grid,.garmin-stats,.target-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:10px}.profile-cell,.target-stat{background:var(--surface-secondary);border:1px solid var(--border-soft);border-radius:var(--radius-control);padding:11px;min-width:0}.p-label,.t-label{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary)}.p-val,.t-val{font-family:Montserrat,system-ui,sans-serif;font-weight:600;font-size:17px;margin-top:2px}.t-unit{font-size:11px;font-weight:500;color:var(--text-tertiary);margin-left:2px}.weight-stats{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}.weight-current{font-family:Montserrat,system-ui,sans-serif;font-weight:600;font-size:30px;letter-spacing:-.02em}.weight-deltas{display:flex;gap:12px;font-size:12px;color:var(--text-tertiary);flex-wrap:wrap}.weight-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0}.weight-row+.weight-row{border-top:1px solid var(--border-soft)}.w-date{font-size:13px;color:var(--text-secondary)}.w-val{font-family:Montserrat,system-ui,sans-serif;font-weight:600;font-size:15px}.weight-chart{width:100%;height:auto;overflow:visible}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row>input,.row>select{flex:1;min-width:0}.row.wide{display:flex;flex-direction:column;align-items:stretch;gap:6px}input,select,textarea{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-control);padding:11px 13px;font-size:15px;width:100%;transition:border-color .2s var(--ease-out)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary-secondary)}label{font-size:13px;color:var(--text-secondary)}input.inline,.editable{width:auto;min-width:72px}.auth-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 18px}.auth-card{width:100%;max-width:400px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow);padding:26px 22px;display:flex;flex-direction:column;gap:12px}.auth-card h1{font-size:24px}.auth-subtitle{font-size:14px;color:var(--text-tertiary)}.dashboard{display:flex;flex-direction:column;gap:12px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#2620186b;display:flex;align-items:flex-end;justify-content:center;padding:0}.modal{width:100%;max-width:560px;max-height:92dvh;overflow-y:auto;background:var(--card);border-radius:22px 22px 0 0;padding:20px 18px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px;animation:sheet-up .32s var(--ease-out) both}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.modal-header h2{font-size:17px;margin:0}.modal-close{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--text-tertiary);background:var(--surface-secondary)}.popover{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow);padding:8px}.photo-input-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.photo-pick-btn{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--primary);background:var(--surface-secondary);border:1px solid var(--border-soft);border-radius:var(--radius-control);padding:10px 14px}.photo-preview{max-width:100%;border-radius:var(--radius-control)}.photo-remove{font-size:12px;color:var(--danger)}.draft-list{display:flex;flex-direction:column;gap:8px}.draft-item{background:var(--surface-secondary);border:1px solid var(--border-soft);border-radius:var(--radius-control);padding:11px}.item-grid{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.item-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.item-name{font-size:14px}.item-meta{font-size:12px;color:var(--text-tertiary)}.add-item{font-size:13px;font-weight:600;color:var(--primary)}.total{font-family:Montserrat,system-ui,sans-serif;font-weight:600;font-size:15px}.warn{color:var(--amber)}.ask-ai-dock{position:fixed;left:0;right:0;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom));z-index:25;max-width:560px;margin:0 auto;padding:8px 16px;background:linear-gradient(to top,var(--bg) 62%,rgba(240,234,223,0))}.ask-ai{width:100%}.tabs{position:fixed;left:0;right:0;bottom:0;z-index:40;max-width:560px;margin:0 auto;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(4,1fr);background:var(--card);border-top:1px solid var(--border)}.tabs button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;font-weight:600;color:var(--text-tertiary);position:relative;transition:color .2s var(--ease-out)}.tabs button.active{color:var(--primary)}.tabs button.active:before{content:"";position:absolute;top:0;width:26px;height:3px;border-radius:0 0 3px 3px;background:var(--primary)}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes sheet-up{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}@keyframes ai-pulse{0%,to{box-shadow:0 0 #1b645700}40%{box-shadow:0 0 0 7px #1b64571f}}.app-content>*{animation:rise .4s var(--ease-out) both}.app-content>*:nth-child(1){animation-delay:0ms}.app-content>*:nth-child(2){animation-delay:50ms}.app-content>*:nth-child(3){animation-delay:.1s}.app-content>*:nth-child(4){animation-delay:.15s}.app-content>*:nth-child(5){animation-delay:.2s}.app-content>*:nth-child(n+6){animation-delay:.25s}.ai-badge{animation:ai-pulse 1.6s var(--ease-out) .4s 1}.card{transition:transform .12s var(--ease-out)}.meal-group-head:active{transform:scale(.985)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:400px){.app-content{padding-left:12px;padding-right:12px}.status-value{font-size:18px}.plan-hero-title{font-size:20px}.duo-value{font-size:19px}.timeline-slot{width:84px}.macros-row{gap:8px}.m-val{font-size:17px}}@media(max-width:340px){.duo-row{grid-template-columns:1fr}}
