:root{color-scheme:light;font-family:Inter,Aptos,Segoe UI,sans-serif;--font-heading: "DM Serif Display", Georgia, serif;--colour-bg: #f7f2e8;--colour-surface: #fcfaf6;--colour-primary: #5f8f8b;--colour-primary-deep: #3f6864;--colour-primary-soft: #e6edec;--colour-secondary: #9a8fb5;--colour-secondary-deep: #675c86;--colour-secondary-soft: #eeebf4;--colour-success: #a8b89a;--colour-success-deep: #5c6f4d;--colour-success-soft: #eef2e9;--colour-highlight: #cfa6a3;--colour-highlight-deep: #96534e;--colour-highlight-soft: #f7ebea;--colour-text: #2f3133;--colour-text-muted: #77736d;--colour-border: #d8d1c7;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--shadow-card: 0 4px 18px rgba(47, 49, 51, .06);--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--text-page-title: 2rem;--text-h1: 1.7rem;--text-section: 1.35rem;--text-card-heading: 1.02rem;--text-title: .96rem;--text-body: .92rem;--text-small: .82rem;--text-micro: .72rem;--text-kpi: 1.65rem}*{box-sizing:border-box}body{margin:0;color:var(--colour-text);font-size:var(--text-body);line-height:1.35;background:var(--colour-bg)}strong{font-variant-numeric:tabular-nums}button,input{font:inherit}button{cursor:pointer}.page{height:100vh;position:relative;padding:6px;overflow:hidden}.login-page{min-height:100vh;position:relative;padding:12px}.shell{position:relative;z-index:1;max-width:1480px;margin:0 auto;height:calc(100vh - 12px);padding:10px 14px 12px;border-radius:var(--radius-lg);background:transparent;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:12px;overflow:hidden}.topbar,.hero-grid,.panel-grid,.metric-row,.nav-pills,.profile-chip,.brand,.section-heading{display:flex}.topbar,.section-heading,.section-heading.compact{justify-content:space-between;align-items:center}.section-heading,.section-heading.compact{min-height:28px}.topbar{gap:20px;flex-wrap:wrap;padding:2px 2px 8px;border-bottom:1px solid var(--colour-border)}.brand{align-items:center;gap:12px}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:var(--radius-md);background:var(--colour-primary-soft);color:var(--colour-primary-deep);border:1px solid var(--colour-border)}.brand h1{margin:0;font-family:var(--font-heading);font-size:var(--text-h1);line-height:1.1;font-weight:400;color:var(--colour-text)}.eyebrow{display:block;color:var(--colour-secondary-deep);font-size:var(--text-micro);letter-spacing:.07em;text-transform:uppercase;font-weight:600}.nav-pills{gap:4px;flex:1 1 280px;justify-content:center;flex-wrap:wrap}.pill,.submit-button{border:0;border-radius:var(--radius-sm)}.pill{padding:10px 16px;min-height:40px;background:transparent;color:var(--colour-text-muted);font-weight:500;transition:background .14s ease,color .14s ease}.pill:hover{background:var(--colour-primary-soft);color:var(--colour-primary-deep)}.pill.active,.pill.active:hover{background:var(--colour-primary);color:#fff}.profile-chip{align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-sm);background:var(--colour-surface);border:1px solid var(--colour-border)}.account-menu{position:relative}.profile-trigger{border:0}.profile-chip strong,.metric-card strong{display:block;font-size:var(--text-title);line-height:1.2;font-weight:700;overflow-wrap:anywhere}.profile-chip span{color:var(--colour-text-muted);font-size:var(--text-small);line-height:1.35;overflow-wrap:anywhere}.section-heading h2,.section-heading.compact h2{margin:4px 0 0;font-family:var(--font-heading);font-size:var(--text-section);line-height:1.15;font-weight:400;color:var(--colour-text)}.section-heading.compact h2{font-family:inherit;font-size:var(--text-card-heading);font-weight:600;line-height:1.2}.avatar-bubble{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--colour-secondary-soft);color:var(--colour-secondary-deep);font-weight:700;font-size:var(--text-small)}.avatar-image{width:24px;height:24px;border-radius:999px;object-fit:cover;display:block}.account-caret{color:var(--colour-text-muted);transition:transform .14s ease}.account-caret.is-open{transform:rotate(180deg)}.account-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:160px;padding:6px;border-radius:var(--radius-md);background:var(--colour-surface);border:1px solid var(--colour-border);box-shadow:var(--shadow-card);z-index:20}.account-build-info{display:flex;flex-direction:column;gap:2px;padding:8px 12px 10px;margin-bottom:4px;border-bottom:1px solid var(--colour-border)}.account-build-label{color:var(--colour-text-muted);font-size:var(--text-micro);font-weight:700;letter-spacing:.07em;text-transform:uppercase}.account-build-info strong{font-size:var(--text-small);line-height:1.25;color:var(--colour-text)}.account-dropdown-item{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--colour-text);font-size:var(--text-title);text-align:left}.account-dropdown-item:hover{background:var(--colour-primary-soft)}.hero-grid{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(320px,1fr);align-items:start;gap:var(--space-md);min-height:0}.dashboard-grid{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(320px,1fr);align-items:stretch;gap:var(--space-md);min-height:0;flex:1 1 auto}.dashboard-main-stack{display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0}.hero-main{min-width:0;min-height:0;gap:4px;flex:0 0 auto}.glass-card.hero-main{padding-left:20px;padding-right:16px;padding-bottom:4px}.glass-card{display:flex;gap:var(--space-md);flex-direction:column;padding:14px 16px;border-radius:var(--radius-lg);background:var(--colour-surface);border:1px solid var(--colour-border);box-shadow:var(--shadow-card);min-height:0;overflow:hidden}.metric-row,.panel-grid{gap:var(--space-md)}.metric-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;align-content:start;margin-bottom:-2px}.date-nav{display:flex;align-items:center;gap:6px}.date-nav-button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--colour-border);border-radius:var(--radius-sm);background:var(--colour-surface);color:var(--colour-text-muted)}.date-nav-button:hover:not(:disabled){color:var(--colour-primary-deep);border-color:var(--colour-primary)}.date-nav-button:disabled{opacity:.35;cursor:default}.date-nav-label{min-width:64px;text-align:center;color:var(--colour-text-muted);font-size:var(--text-small);font-weight:600}.status-banner{display:flex;align-items:center;gap:10px;padding:7px 12px;border-radius:var(--radius-md);background:var(--colour-primary-soft);color:var(--colour-text);font-size:var(--text-small)}.status-banner strong{font-weight:700}.status-banner.tone-success{background:var(--colour-success-soft)}.status-banner.tone-highlight{background:var(--colour-highlight-soft)}.status-banner-icon{flex:0 0 auto;display:inline-flex}.status-banner.tone-success .status-banner-icon{color:var(--colour-success-deep)}.status-banner.tone-highlight .status-banner-icon{color:var(--colour-highlight-deep)}.status-banner.tone-primary .status-banner-icon{color:var(--colour-primary-deep)}.status-chip{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:var(--text-micro);font-weight:600;white-space:nowrap}.status-chip.tone-primary{background:var(--colour-primary-soft);color:var(--colour-primary-deep)}.status-chip.tone-success{background:var(--colour-success-soft);color:var(--colour-success-deep)}.status-chip.tone-highlight{background:var(--colour-highlight-soft);color:var(--colour-highlight-deep)}.status-chip.tone-muted{background:var(--colour-bg);color:var(--colour-text-muted);border:1px solid var(--colour-border)}.support-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;color:var(--colour-text-muted)}.card-section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid rgba(103,92,134,.14)}.support-card-header.card-section-header{margin-bottom:0;color:inherit}.card-section-title{display:inline-flex;align-items:center;gap:8px;min-width:0}.card-section-title strong{font-size:var(--text-title);line-height:1.2;font-weight:700;color:var(--colour-text)}.card-section-icon{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#ffffff8c;color:var(--colour-secondary-deep);border:1px solid rgba(103,92,134,.18);flex:0 0 auto}.meal-slot-list{flex:0 0 auto;min-height:auto;display:grid;gap:4px;align-content:start;overflow-y:visible}.nutrition-total{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:2px;padding:8px 12px;border-radius:var(--radius-md);background:var(--colour-primary-soft);border:1px solid var(--colour-primary)}.nutrition-total .meal-slot-main strong{color:var(--colour-primary-deep)}.meal-slot-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 12px;border-radius:var(--radius-sm);background:var(--colour-bg);border:1px solid var(--colour-border)}.meal-slot-row.is-missing{background:transparent;border-style:dashed}.meal-slot-row.is-missing .meal-slot-main strong{color:var(--colour-text-muted);font-weight:500}.meal-slot-main{min-width:0;display:grid;grid-template-columns:170px auto;align-items:center;gap:12px}.meal-slot-main strong{font-size:var(--text-title);line-height:1.15;font-weight:600;min-width:0}.nutrition-total .meal-slot-main{grid-template-columns:170px auto}.macro-chips{display:inline-grid;grid-template-columns:84px 84px;column-gap:6px;align-items:center}.macro{display:inline-flex;align-items:center;justify-content:center;min-width:0;padding:2px 8px;border-radius:999px;font-size:var(--text-micro);font-weight:600;white-space:nowrap;text-align:center}.macro-protein{background:var(--colour-secondary-soft);color:var(--colour-secondary-deep)}.macro-carbs{background:var(--colour-bg);color:var(--colour-text-muted);border:1px solid var(--colour-border)}.meal-slot-kcal{flex:0 0 auto;font-size:var(--text-title);font-weight:700;color:var(--colour-text)}.support-note-copy{color:var(--colour-text-muted);font-size:var(--text-body);line-height:1.5;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.rich-note-copy p,.rich-note-copy ul,.rich-note-copy ol{margin:0 0 .6rem}.hero-side-stack{display:flex;flex-direction:column;gap:var(--space-md);min-height:0;min-width:0;height:100%}.notes-card{align-self:stretch;min-width:0;min-height:0;flex:1 1 auto;gap:10px}.notes-card .support-note-copy{flex:1 1 auto;-webkit-line-clamp:unset;display:block;overflow:auto}.notes-card .notes-editor{flex:1 1 auto;min-height:0}.notes-actions{display:flex;align-items:center;gap:6px}.notes-edit-button,.notes-icon-button{border:0;display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:var(--radius-sm);background:var(--colour-bg);color:var(--colour-text);font-size:var(--text-small)}.notes-icon-button{padding:7px}.notes-icon-button.confirm,.notes-edit-button{background:var(--colour-primary-soft);color:var(--colour-primary-deep)}.notes-editor{min-height:100px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--colour-border);background:var(--colour-bg);color:var(--colour-text);font-size:var(--text-body);line-height:1.5;outline:none;overflow:auto}.empty-inline{color:var(--colour-text-muted);font-size:var(--text-small)}.daily-tip-card{background:var(--colour-secondary-soft);border-color:var(--colour-secondary)}.tip-section{display:flex;flex-direction:column;gap:10px}.tip-divider{height:1px;background:#675c8629;margin:2px 0}.tip-status-banner{display:block;color:var(--colour-text);font-size:var(--text-small);line-height:1.4}.tip-status-banner.tone-success span{color:var(--colour-success-deep)}.tip-status-banner.tone-highlight span{color:var(--colour-highlight-deep)}.tip-status-banner.tone-primary span{color:var(--colour-primary-deep)}.tip-status-banner.tone-muted span{color:var(--colour-text-muted)}.daily-tip-list{display:flex;flex-direction:column;gap:14px}.daily-tip-entry+.daily-tip-entry{padding-top:14px;border-top:1px solid rgba(95,143,139,.18)}.daily-tip-slot{margin:0 0 6px;color:var(--colour-secondary-deep);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.daily-tip-heading{font-family:var(--font-heading);font-size:1.1rem;font-weight:400;color:var(--colour-secondary-deep);margin:0 0 6px}.daily-tip-body{margin:0;color:var(--colour-text);font-size:var(--text-body);line-height:1.5}.daily-tip-empty{color:var(--colour-text-muted);font-size:var(--text-small)}.todo-card{gap:12px}.todo-form{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-radius:var(--radius-md);background:#fff6;border:1px solid rgba(103,92,134,.16)}.todo-input{width:100%;padding:9px 12px;border-radius:var(--radius-sm);border:1px solid var(--colour-border);background:var(--colour-surface);color:var(--colour-text)}.todo-time-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.todo-time-row label{display:grid;gap:6px;color:var(--colour-text-muted);font-size:var(--text-small)}.todo-weekdays{display:flex;flex-wrap:wrap;gap:6px}.weekday-pill{border:1px solid var(--colour-border);border-radius:999px;background:var(--colour-surface);color:var(--colour-text-muted);min-width:34px;padding:6px 10px;font-size:var(--text-small);font-weight:700}.weekday-pill.active{background:var(--colour-primary);border-color:var(--colour-primary);color:#fff}.todo-form-actions{display:flex;justify-content:flex-end}.todo-list{display:flex;flex-direction:column;gap:8px;min-height:0}.todo-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:start;padding:10px 0;border-top:1px solid rgba(103,92,134,.12)}.todo-row:first-child{border-top:0;padding-top:0}.todo-row.is-complete strong,.todo-row.is-complete p,.todo-row.is-complete .todo-meta{opacity:.6}.todo-check,.todo-delete{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--colour-border);border-radius:999px;background:var(--colour-surface);color:var(--colour-text-muted);padding:0}.todo-check.is-complete{background:var(--colour-success-soft);border-color:#5c6f4d33;color:var(--colour-success-deep)}.todo-copy{min-width:0;display:flex;flex-direction:column;gap:4px}.todo-copy strong{font-size:var(--text-title);line-height:1.2;color:var(--colour-text)}.todo-copy p{margin:0;color:var(--colour-text-muted);font-size:var(--text-small);line-height:1.4}.todo-meta{display:flex;flex-wrap:wrap;gap:8px 12px;color:var(--colour-text-muted);font-size:var(--text-micro)}.todo-meta span{display:inline-flex;align-items:center;gap:4px}.todo-empty{margin:0;color:var(--colour-text-muted);font-size:var(--text-small)}.metric-card{display:flex;flex-direction:column;gap:3px;min-width:0;padding:9px 12px;border-radius:var(--radius-md);background:var(--colour-surface);border:1px solid var(--colour-border)}.metric-progress-track{margin-top:auto;padding-top:6px;height:12px;overflow:hidden}.metric-progress-fill{display:block;height:6px;border-radius:999px;background:var(--colour-primary)}.metric-progress-fill.tone-success{background:var(--colour-success)}.metric-progress-fill.tone-highlight{background:var(--colour-highlight)}.metric-progress-fill.tone-muted{background:var(--colour-border)}.metric-label{display:flex;align-items:center;gap:8px;margin-bottom:2px;color:var(--colour-text-muted);font-size:var(--text-small);line-height:1.2;font-weight:500}.metric-inline-icon{display:inline-flex;align-items:center;justify-content:center;line-height:1}.metric-inline-icon svg{width:15px;height:15px}.metric-card strong{font-size:var(--text-kpi);line-height:1.1;letter-spacing:-.01em;font-weight:700;color:var(--colour-text)}.metric-card small{color:var(--colour-text-muted);font-size:var(--text-small)}.tone-primary.metric-card{background:var(--colour-primary-soft);border-color:transparent}.tone-primary .metric-inline-icon{color:var(--colour-primary-deep)}.tone-success.metric-card{background:var(--colour-success-soft);border-color:transparent}.tone-success .metric-inline-icon{color:var(--colour-success-deep)}.tone-highlight.metric-card{background:var(--colour-highlight-soft);border-color:transparent}.tone-highlight .metric-inline-icon{color:var(--colour-highlight-deep)}.tone-muted.metric-card{background:var(--colour-surface)}.tone-muted .metric-inline-icon{color:var(--colour-text-muted)}.section-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-sm);background:var(--colour-primary-soft);color:var(--colour-primary-deep);flex:0 0 auto}.secondary-stats{display:flex;gap:8px;margin-top:-6px;margin-bottom:-10px}.secondary-stat{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--radius-sm);background:var(--colour-bg);border:1px solid var(--colour-border);color:var(--colour-text-muted);font-size:var(--text-small)}.secondary-stat strong{color:var(--colour-text);font-size:var(--text-title);font-weight:700}.nutrition-card{flex:0 0 auto;min-height:auto;display:flex;flex-direction:column;gap:8px;padding:8px 10px 4px;border-radius:var(--radius-md);background:var(--colour-bg);border:1px solid var(--colour-border);overflow:hidden}.nutrition-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.nutrition-label{color:var(--colour-text-muted);font-size:var(--text-micro);letter-spacing:.07em;text-transform:uppercase;font-weight:600}.segmented{display:inline-flex;padding:3px;gap:2px;border-radius:var(--radius-sm);background:var(--colour-surface);border:1px solid var(--colour-border)}.segmented-option{border:0;padding:6px 14px;border-radius:6px;background:transparent;color:var(--colour-text-muted);font-size:var(--text-small);font-weight:600;transition:background .14s ease,color .14s ease}.segmented-option:hover{color:var(--colour-primary-deep)}.segmented-option.active{background:var(--colour-primary);color:#fff}.panel-grid{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;min-height:0;gap:12px}.panel-grid>.glass-card{min-width:0}.body-card{gap:8px;padding-top:10px;padding-bottom:10px;min-height:0;flex:1 1 auto}.body-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.body-headline{display:flex;align-items:center;flex-wrap:wrap;gap:6px 18px}.body-stat{display:flex;flex-direction:column;min-width:96px}.body-stat strong{font-size:1.35rem;letter-spacing:-.01em;line-height:1.1;color:var(--colour-text)}.body-stat span{color:var(--colour-text-muted);font-size:var(--text-small)}.body-toolbar{display:flex;align-items:center;gap:12px}.body-deltas{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.delta-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 11px;border-radius:999px;font-size:var(--text-small);font-weight:700;white-space:nowrap}.delta-chip em{font-style:normal;font-weight:500;opacity:.75}.delta-chip.down{background:var(--colour-success-soft);color:var(--colour-success-deep)}.delta-chip.up{background:var(--colour-highlight-soft);color:var(--colour-highlight-deep)}.delta-chip.subtle{background:var(--colour-bg);border:1px solid var(--colour-border)}.delta-chip.subtle.down{color:var(--colour-success-deep)}.delta-chip.subtle.up{color:var(--colour-highlight-deep)}.delta-chip.up svg{transform:scaleY(-1)}.chart-frame.body-chart{flex:1 1 auto;min-height:168px;height:auto}.chart-frame{height:92px;padding:6px 10px;border-radius:var(--radius-sm);background:var(--colour-bg);border:1px solid var(--colour-border)}.sparkline{width:100%;height:100%;display:block}.sparkline-point .sparkline-hit{fill:transparent}.sparkline-point .sparkline-dot{fill:var(--colour-primary-deep);stroke:var(--colour-surface);stroke-width:1.5px;opacity:0;transition:opacity .14s ease}.sparkline-point:hover .sparkline-dot{opacity:1}.chart-empty{height:100%;display:grid;place-items:center;color:var(--colour-text-muted);font-size:var(--text-small)}.empty-state{padding:18px;border-radius:var(--radius-md);background:var(--colour-bg);color:var(--colour-text-muted)}.login-card{position:relative;z-index:1;max-width:420px;margin:8vh auto 0;padding:28px;border-radius:var(--radius-lg);background:var(--colour-surface);border:1px solid var(--colour-border);box-shadow:var(--shadow-card)}.login-brand{margin-bottom:14px}.login-copy{margin-bottom:18px;color:var(--colour-text-muted);line-height:1.55;font-size:var(--text-body)}.login-card label{display:grid;gap:8px;margin-bottom:14px;color:var(--colour-text-muted);font-size:var(--text-small)}.login-card input{width:100%;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--colour-border);background:var(--colour-bg);color:var(--colour-text)}.submit-button{width:100%;padding:13px 18px;background:var(--colour-primary);color:#fff;font-weight:700}.form-error{margin-bottom:14px;padding:10px 14px;border-radius:var(--radius-sm);background:var(--colour-highlight-soft);color:var(--colour-highlight-deep);font-size:var(--text-small)}@media(max-width:980px){.page{height:auto;min-height:100vh;overflow:visible}.hero-grid,.dashboard-grid{display:flex;flex-direction:column}.shell{height:auto;padding:var(--space-md);display:block;overflow:visible}.shell>*+*{margin-top:var(--space-md)}.topbar{justify-content:center}.profile-chip{width:100%;justify-content:center}.panel-grid{grid-template-columns:1fr}.hero-side-stack{height:auto}.notes-card{flex:0 0 auto}.metric-row{grid-template-columns:repeat(2,minmax(0,1fr))}.secondary-stats{flex-wrap:wrap}.nav-pills{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scrollbar-width:none}.nav-pills::-webkit-scrollbar{display:none}.nav-pills .pill{flex:0 0 auto}}@media(max-width:640px){.page,.login-page{padding:14px}.topbar{gap:12px;padding:8px 0 12px}.brand{width:100%;justify-content:center}.nav-pills{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;overflow:visible}.nav-pills .pill{min-width:0;min-height:36px;padding:8px 6px;font-size:var(--text-small)}.profile-chip{width:auto;max-width:100%;margin:0 auto}.glass-card,.login-card{padding:var(--space-md);border-radius:var(--radius-md)}.metric-card{border-radius:var(--radius-sm)}.todo-time-row{grid-template-columns:1fr}.section-heading{gap:10px;align-items:flex-start}.date-nav{flex:0 0 auto}.meal-slot-row,.nutrition-total{align-items:flex-start}.meal-slot-kcal{font-size:var(--text-small);padding-top:2px}}
