/* Screen-specific layout and responsive rules. */
.hero-art{position:absolute;top:-44px;right:-54px;z-index:-1;width:198px;height:198px;border:1px solid var(--border);border-radius:50%;opacity:.9;pointer-events:none;}
.hero-art::before{position:absolute;top:34px;right:34px;width:128px;height:128px;border:1px solid var(--border);border-radius:50%;content:"";}
.hero-art::after{position:absolute;right:61px;bottom:33px;width:7px;height:7px;background:var(--accent);border-radius:50%;box-shadow:0 0 0 5px var(--accent-soft);content:"";}
.hero-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:12px;} .hero-top{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px;}
.hero-tag{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;font-weight:650;} .hero-tag strong{color:var(--text);font-weight:650;}
.hero-status{color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:999px;padding:4px 9px;font-size:10.5px;font-weight:650;line-height:1.2;white-space:nowrap;}
.today-title{color:var(--text);font-size:clamp(24px,6.2vw,31px);font-weight:800;line-height:1.08;letter-spacing:-.04em;} .today-copy{max-width:48ch;color:var(--muted);font-size:13.5px;line-height:1.5;}
.hero-meta{display:flex;align-items:center;flex-wrap:wrap;gap:7px 14px;color:var(--muted);font-size:12.5px;font-weight:500;} .hero-meta span{display:inline-flex;align-items:center;gap:6px;}
.hero-meta .icon{width:15px;height:15px;color:var(--muted-2);} .hero-chips{display:flex;flex-wrap:wrap;gap:6px;} .hero-action{width:100%;margin-top:1px;}
.rest-badge{display:grid;width:46px;height:46px;place-items:center;color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:50%;}
.rest-badge .icon{width:21px;height:21px;} .stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;} .stat-card{position:relative;overflow:hidden;min-width:0;}
.stat-link{display:flex;min-height:108px;padding:12px;flex-direction:column;justify-content:space-between;gap:12px;border-radius:inherit;} .stat-link:focus-visible{outline-offset:-4px;} .stat-link:active{opacity:.86;}
.stat-top{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11.5px;font-weight:650;line-height:1.2;} .stat-top .icon{width:16px;height:16px;color:var(--muted-2);}
.stat-chevron{width:14px !important;height:14px !important;margin-left:auto;color:var(--muted-2);} .stat-main{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;min-width:0;}
.stat-value{display:block;color:var(--text);font-size:25px;font-weight:800;line-height:1;letter-spacing:-.04em;white-space:nowrap;} .stat-value .stat-divider{color:var(--muted-2);font-weight:500;}
.stat-meta{display:block;margin-top:4px;color:var(--muted);font-size:10.5px;line-height:1.35;white-space:normal;} .stat-note{display:block;margin-top:2px;color:var(--muted-2);font-size:9.5px;line-height:1.35;white-space:normal;} .stat-extra{display:block;color:var(--muted-2);font-size:9.5px;}
.stat-viz{display:flex;min-width:32px;align-items:flex-end;justify-content:flex-end;padding-bottom:1px;} .stat-mini-bars{display:flex;align-items:flex-end;gap:3px;height:24px;}
.stat-mini-bars span{width:4px;border-radius:3px;background:var(--track);} .stat-mini-bars span:nth-child(1){height:10px;} .stat-mini-bars span:nth-child(2){height:14px;} .stat-mini-bars span:nth-child(3){height:18px;}
.stat-mini-bars span:nth-child(4){height:23px;} .stat-mini-bars span.is-filled{background:var(--accent);} .stat-dots{display:flex;align-items:center;gap:4px;}
.stat-dots i{display:block;width:6px;height:6px;border-radius:50%;background:var(--track);} .stat-dots i.is-filled{background:var(--accent);}
.stat-quick{position:absolute;right:10px;bottom:10px;z-index:2;display:grid;width:44px;height:44px;place-items:center;color:var(--accent-text);background:var(--surface-2);border:1px solid var(--border);border-radius:50%;transition:background-color .2s ease-out,border-color .2s ease-out,transform .16s ease-out;}
.stat-quick:active{transform:scale(.94);} .stat-quick[aria-disabled="true"]{color:var(--muted-2);background:var(--surface-2);cursor:default;} .stat-quick[aria-disabled="true"]:active{transform:none;}
.stat-quick .icon{width:17px;height:17px;} .stat-card--water .stat-link{padding-right:56px;} .stat-card--water .stat-meta{white-space:normal;}
.ring{--ring-size:52px;--ring-stroke:4.5px;position:relative;display:inline-grid;width:var(--ring-size);height:var(--ring-size);flex:none;place-items:center;} .ring svg{width:100%;height:100%;overflow:visible;}
.ring-track,.ring-value{fill:none;stroke-width:var(--ring-stroke);} .ring-track{stroke:var(--track);} .ring-value{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .25s var(--ease),stroke .2s ease-out;}
.ring-center{position:absolute;inset:0;display:grid;place-items:center;color:var(--text);font-size:calc(var(--ring-size) * .19);font-weight:750;line-height:1;letter-spacing:-.04em;} .goal-card{padding:18px;}
.goal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;} .goal-head h2{margin-top:4px;color:var(--text);font-size:17px;font-weight:750;line-height:1.25;letter-spacing:-.02em;}
.goal-delta{display:inline-flex;align-items:center;gap:4px;min-height:29px;padding:3px 9px;flex:none;color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:999px;font-size:11.5px;font-weight:700;white-space:nowrap;}
.goal-delta .icon{width:13px;height:13px;} .goal-current{display:flex;align-items:flex-end;gap:10px;margin-top:14px;} .goal-current strong{color:var(--text);font-size:38px;font-weight:800;line-height:.93;letter-spacing:-.055em;}
.goal-current strong small{margin-left:2px;color:var(--muted);font-size:15px;font-weight:500;letter-spacing:0;} .goal-remaining{padding-bottom:3px;color:var(--muted);font-size:11.5px;line-height:1.35;}
.goal-remaining b{color:var(--text);font-weight:700;} .goal-track-wrap{margin-top:14px;} .goal-track{position:relative;width:100%;height:9px;background:var(--track);border-radius:999px;}
.goal-fill{position:absolute;inset:0 auto 0 0;width:var(--goal-p);background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 72%,var(--carbs)));border-radius:inherit;}
.goal-marker{position:absolute;top:50%;left:var(--goal-p);width:17px;height:17px;background:var(--surface);border:4px solid var(--accent);border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 3px var(--surface);}
.goal-ends{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;color:var(--muted);font-size:10.5px;} .goal-ends b{color:var(--text);font-weight:650;} .goal-chart{margin-top:14px;padding-top:2px;}
.goal-chart svg{width:100%;height:auto;overflow:visible;}
.chart-line{fill:none;stroke:var(--accent);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:draw-line .25s var(--ease) forwards;}
.chart-area{opacity:0;animation:fade-in .25s ease-out forwards;} .chart-grid{stroke:var(--border);stroke-width:1;stroke-dasharray:3 6;} .chart-dot{fill:var(--surface);stroke:var(--accent);stroke-width:1.6;}
.chart-dot--last{fill:var(--accent);stroke:var(--surface);stroke-width:2.4;} .chart-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px;color:var(--muted);font-size:10.5px;line-height:1.4;}
.chart-caption b{color:var(--text);font-weight:650;} .macro-card{padding:18px;} .macro-list{display:flex;flex-direction:column;gap:13px;margin-top:15px;} .macro-row{display:flex;flex-direction:column;gap:6px;}
.macro-label{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px;line-height:1.3;} .macro-label > span:first-child{display:inline-flex;align-items:center;gap:7px;}
.macro-dot{width:7px;height:7px;border-radius:2px;background:var(--protein);} .macro-letter{color:var(--text);font-size:10px;font-weight:750;} .macro-row--fat .macro-dot{background:var(--fats);}
.macro-row--carb .macro-dot{background:var(--carbs);} .macro-label b{color:var(--text);font-weight:700;} .macro-label .macro-target{color:var(--muted);font-weight:500;}
.bar-track{width:100%;height:8px;overflow:hidden;background:var(--track);border-radius:999px;}
.bar-fill{display:block;width:var(--bar-w);height:100%;border-radius:inherit;transform-origin:left center;animation:bar-in .24s var(--ease) both;} .bar-fill--protein{background:var(--protein);} .bar-fill--fat{background:var(--fats);}
.bar-fill--carb{background:var(--carbs);} .week-card{padding:12px;} .week-card .card-head{padding:2px 3px 10px;}
.message-card{padding:18px;}
.message-head{display:flex;align-items:center;gap:10px;} .message-ident{display:flex;flex-direction:column;gap:1px;} .message-ident strong{color:var(--text);font-size:13.5px;font-weight:700;line-height:1.25;}
.message-ident span{color:var(--muted);font-size:10.5px;line-height:1.35;} .message-mark{display:grid;width:32px;height:32px;margin-left:auto;place-items:center;color:var(--accent-text);background:var(--accent-soft);border-radius:10px;}
.message-mark .icon{width:16px;height:16px;} .message-text{margin-top:15px;color:var(--text);font-size:14px;line-height:1.6;}
.next-meal-card{display:flex;align-items:center;gap:13px;padding:16px;transition:border-color .2s ease-out,background-color .2s ease-out,transform .16s ease-out;} .next-meal-card:active{transform:scale(.995);}
.next-meal-time{display:flex;width:60px;min-height:60px;flex:none;flex-direction:column;align-items:center;justify-content:center;gap:1px;color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--radius-sm);}
.next-meal-time strong{font-size:16px;font-weight:800;line-height:1.1;letter-spacing:-.03em;} .next-meal-time span{color:var(--accent-text);font-size:9px;font-weight:650;line-height:1.2;}
.next-meal-copy{display:flex;min-width:0;flex:1;flex-direction:column;gap:3px;} .next-meal-copy .eyebrow{font-size:10px;} .next-meal-copy strong{color:var(--text);font-size:14px;font-weight:700;line-height:1.3;}
.next-meal-copy small{color:var(--muted);font-size:11.5px;line-height:1.35;} .next-meal-arrow{display:grid;width:32px;height:32px;flex:none;place-items:center;color:var(--muted);background:var(--surface-2);border-radius:50%;}
.next-meal-arrow .icon{width:15px;height:15px;} .home-side{display:grid;min-width:0;align-items:start;gap:12px;} .home-side > *{width:100%;min-width:0;} .week-panel{padding:12px;} .week-panel .card-head{padding:1px 2px 10px;}
.session-card{position:relative;overflow:hidden;padding:20px;margin-top:12px;}
.session-card::after{position:absolute;top:-64px;right:-64px;width:184px;height:184px;border:1px solid var(--border);border-radius:50%;content:"";pointer-events:none;}
.session-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.session-title{position:relative;z-index:1;margin-top:8px;color:var(--text);font-size:clamp(24px,6vw,30px);font-weight:800;line-height:1.08;letter-spacing:-.04em;} .session-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px;}
.session-meta .chip{min-height:28px;background:var(--surface-2);} .session-progress{margin-top:18px;}
.progress-label{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:11.5px;line-height:1.3;} .progress-label b{color:var(--text);font-weight:700;}
.progress-track{width:100%;height:7px;margin-top:7px;overflow:hidden;background:var(--track);border-radius:999px;}
.progress-fill{width:var(--progress);height:100%;background:var(--accent);border-radius:inherit;transform-origin:left center;animation:bar-in .24s var(--ease) both;}
.note-card{padding:18px;}
.note-head{display:flex;align-items:center;gap:9px;} .note-ident{display:flex;flex-direction:column;gap:1px;} .note-ident strong{color:var(--text);font-size:12.5px;font-weight:700;} .note-ident span{color:var(--muted);font-size:10.5px;}
.note-text{margin-top:12px;color:var(--text);font-size:12.5px;line-height:1.6;} .note-sign{margin-top:10px;color:var(--muted);font-size:10.5px;}
.finish-dock{position:fixed;bottom:calc(80px + env(safe-area-inset-bottom));left:50%;z-index:46;width:min(520px,calc(100% - 32px));padding:8px;background:var(--surface);border:1px solid var(--border-strong);border-radius:16px;box-shadow:var(--float-shadow);transform:translateX(-50%);}
.finish-dock .btn{width:100%;min-height:48px;} .dock-spacer{height:84px;} body.has-dock .page{padding-bottom:calc(170px + env(safe-area-inset-bottom));} .day-picker{padding:8px;margin-bottom:12px;}
.food-days{display:flex;gap:4px;overflow-x:auto;padding-bottom:2px;scroll-snap-type:x proximity;scrollbar-width:thin;}
.food-day{position:relative;display:flex;min-width:48px;flex:0 0 auto;min-height:58px;padding:7px 6px 6px;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--text);border:1px solid transparent;border-radius:var(--radius-sm);scroll-snap-align:start;transition:color .2s ease-out,background-color .2s ease-out,border-color .2s ease-out;}
.food-day .food-day-name{display:inline-flex;align-items:center;gap:3px;color:var(--muted);font-size:10px;font-weight:650;line-height:1.2;} .food-day .food-day-date{color:var(--text);font-size:15px;font-weight:750;line-height:1.2;letter-spacing:-.02em;} .food-day .food-day-dot{width:4px;height:4px;flex:none;background:var(--accent);border-radius:50%;}
.food-day.is-today .food-day-name{color:var(--accent-text);} .food-day[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent-line);}
.food-day[aria-pressed="true"] .food-day-name,.food-day[aria-pressed="true"] .food-day-date{color:var(--accent-text);} .food-day:hover{background:var(--surface-2);} .food-day:active{transform:scale(.97);}
.food-day[aria-pressed="true"]:hover{background:var(--accent-soft);} .nutrition-layout{display:grid;gap:14px;} .nutrition-main,.nutrition-side{display:flex;min-width:0;flex-direction:column;gap:12px;} .target-card{padding:18px;}
.target-top{display:flex;align-items:center;justify-content:space-between;gap:14px;} .target-copy{display:flex;min-width:0;flex-direction:column;gap:4px;} .target-copy .eyebrow{font-size:11px;}
.target-value{color:var(--text);font-size:clamp(30px,7vw,38px);font-weight:800;line-height:1;letter-spacing:-.055em;white-space:nowrap;}
.target-value small{margin-left:3px;color:var(--muted);font-size:14px;font-weight:500;letter-spacing:0;} .target-left{color:var(--muted);font-size:11.5px;line-height:1.35;} .target-left b{color:var(--text);font-weight:650;}
.target-ring{flex:none;} .target-card .macro-list{margin-top:16px;gap:11px;}
.advice-line{display:flex;align-items:flex-start;gap:7px;margin-top:15px;padding-top:13px;color:var(--muted);border-top:1px solid var(--border);font-size:11.5px;line-height:1.5;}
.advice-line .icon{width:14px;height:14px;margin-top:1px;flex:none;color:var(--accent-text);} .meal-section{display:flex;flex-direction:column;gap:10px;}
.meal-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:2px 2px 1px;} .meal-section-head h2{color:var(--text);font-size:18px;font-weight:750;letter-spacing:-.025em;}
.meal-section-head span{color:var(--muted);font-size:11.5px;} .meal-list{display:grid;gap:10px;} .meal-card{padding:16px;} .meal-card.is-eaten{border-color:color-mix(in srgb,var(--accent) 26%,var(--border));}
.meal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;} .meal-name-row{display:flex;align-items:center;gap:8px;}
.meal-name-row h3{color:var(--text);font-size:16px;font-weight:750;line-height:1.2;letter-spacing:-.02em;} .meal-time{color:var(--muted);font-size:11px;font-weight:500;line-height:1.2;}
.meal-kcal{flex:none;color:var(--text);font-size:13px;font-weight:750;line-height:1.3;white-space:nowrap;} .meal-kcal small,.meal-kcal > span:last-child{color:var(--muted);font-size:10px;font-weight:500;}
.meal-kcal-label{display:block;margin-bottom:1px;color:var(--muted);font-size:9.5px;font-weight:500;text-align:right;} .dishes{margin-top:10px;border-top:1px solid var(--border);}
.dish-item{border-bottom:1px solid var(--border);} .dish-item:last-child{border-bottom:0;padding-bottom:1px;}
.dish{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main chevron" "meta chevron";width:100%;min-height:44px;padding:9px 0;align-items:center;column-gap:8px;color:inherit;background:none;border:0;text-align:left;cursor:pointer;}
.dish:focus-visible{outline:2px solid var(--focus);outline-offset:-3px;border-radius:8px;}
.dish-main{grid-area:main;display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
.dish-chevron{grid-area:chevron;width:16px;height:16px;color:var(--muted-2);transition:color .2s ease-out,transform .16s ease-out;}
.dish:hover .dish-chevron{color:var(--muted);transform:translateX(1px);} .dish:active .dish-chevron{transform:translateX(2px);}
.dish-name{color:var(--text);font-size:13px;font-weight:600;line-height:1.4;} .dish-kcal{flex:none;color:var(--muted);font-size:10.5px;line-height:1.4;white-space:nowrap;}
.dish-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 7px;margin-top:2px;color:var(--muted);font-size:10px;line-height:1.35;} .dish-grams{color:var(--muted-2);}
.dish-sep{width:2px;height:2px;border-radius:50%;background:var(--muted-2);} .meal-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;}
.meal-total{display:flex;min-width:0;flex-direction:column;gap:1px;color:var(--muted);font-size:10px;line-height:1.35;} .meal-total span{color:var(--muted-2);font-size:9.5px;}
.meal-total strong{color:var(--muted);font-size:10.5px;font-weight:550;}
.meal-toggle,.supp-toggle{display:inline-flex;min-width:108px;min-height:44px;padding:0 13px;flex:none;align-items:center;justify-content:center;gap:6px;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;font-size:12px;font-weight:650;line-height:1;white-space:nowrap;transition:color .2s ease-out,background-color .2s ease-out,border-color .2s ease-out,transform .16s ease-out;}
.meal-toggle:active,.supp-toggle:active{transform:scale(.97);} .meal-toggle .icon,.supp-toggle .icon{width:15px;height:15px;}
.meal-toggle[aria-pressed="true"],.supp-toggle[aria-pressed="true"]{color:var(--accent-text);background:var(--accent-soft);border-color:var(--accent-line);} .water-card{padding:18px;}
.water-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;} .water-count{color:var(--text);font-size:26px;font-weight:800;line-height:1;letter-spacing:-.045em;}
.water-count small{color:var(--muted);font-size:12px;font-weight:500;letter-spacing:0;} .water-copy{margin-top:4px;color:var(--muted);font-size:10.5px;line-height:1.4;}
.water-glasses{display:grid;grid-template-columns:repeat(4,minmax(44px,1fr));gap:7px;margin-top:14px;}
.glass-button{display:flex;min-height:52px;align-items:center;justify-content:center;color:var(--muted-2);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);transition:color .2s ease-out,background-color .2s ease-out,border-color .2s ease-out,transform .16s ease-out;}
.glass-button:active{transform:scale(.95);} .glass-button .icon{width:21px;height:21px;} .glass-button[aria-pressed="true"]{color:var(--accent-text);background:var(--accent-soft);border-color:var(--accent-line);}
.week-chart-card{padding:18px;} .week-chart{position:relative;height:104px;margin:15px 0 0;}
.chart-target-line{position:absolute;right:0;bottom:var(--target-line);left:0;z-index:1;border-top:1px dashed var(--border-strong);pointer-events:none;}
.chart-target-line span{position:absolute;top:-8px;right:0;padding-left:5px;color:var(--muted-2);background:var(--surface);font-size:9px;line-height:1;} .week-bars{display:flex;height:100%;align-items:flex-end;gap:7px;}
.week-col{position:relative;display:flex;height:100%;flex:1;align-items:flex-end;justify-content:center;}
.week-col .plan-tick{position:absolute;right:17%;bottom:var(--plan-line);left:17%;z-index:2;height:1px;background:var(--border-strong);}
.week-bar-fill{display:block;width:min(16px,74%);height:var(--bar-h);min-height:2px;background:var(--accent);border-radius:5px 5px 2px 2px;opacity:.48;transform-origin:bottom center;animation:bar-up .24s var(--ease) both;}
.week-col.is-selected .week-bar-fill,.week-col.is-today .week-bar-fill{opacity:1;} .week-axis{display:flex;gap:7px;margin-top:6px;} .week-axis span{flex:1;color:var(--muted-2);font-size:9.5px;line-height:1.2;text-align:center;}
.week-axis span.is-accent{color:var(--accent-text);font-weight:650;} .chart-legend{display:flex;align-items:center;gap:12px;margin-top:12px;color:var(--muted);font-size:9.5px;}
.norm-card{padding:18px;} .norm-list{margin-top:13px;} .norm-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px solid var(--border);}
.norm-row:first-child{border-top:0;padding-top:0;} .norm-row dt{color:var(--muted);font-size:11.5px;line-height:1.4;} .norm-row dd{margin:0;color:var(--text);font-size:11.5px;font-weight:650;line-height:1.4;text-align:right;}
.norm-row--total{padding-top:9px;} .norm-row--total dt{color:var(--text);font-weight:650;} .norm-row--total dd{color:var(--accent-text);font-size:13px;font-weight:800;}
.norm-note{margin-top:11px;padding-top:10px;color:var(--muted-2);border-top:1px solid var(--border);font-size:10.5px;line-height:1.45;}
.chart-legend span{display:inline-flex;align-items:center;gap:4px;} .legend-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);} .legend-dot--plan{width:7px;height:1px;border-radius:0;background:var(--border-strong);}
.tips-card{padding:18px;} .tips-list{margin-top:11px;} .tip{display:flex;gap:9px;padding:10px 0;border-top:1px solid var(--border);} .tip:first-child{border-top:0;padding-top:0;} .tip:last-child{padding-bottom:0;}
.tip-num{padding-top:2px;flex:none;color:var(--accent-text);font-size:9px;font-weight:750;letter-spacing:.04em;} .tip p{color:var(--muted);font-size:11.5px;line-height:1.55;} .course-card{position:relative;overflow:hidden;padding:20px;}
.course-card::before{position:absolute;top:-76px;right:-64px;width:200px;height:200px;background:var(--accent-soft);border-radius:50%;content:"";pointer-events:none;}
.course-top{position:relative;display:flex;align-items:flex-start;gap:12px;}
.course-icon{display:grid;width:42px;height:42px;flex:none;place-items:center;color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:13px;} .course-icon .icon{width:20px;height:20px;}
.course-copy{display:flex;min-width:0;flex-direction:column;gap:4px;} .course-title{color:var(--text);font-size:clamp(19px,5vw,23px);font-weight:800;line-height:1.15;letter-spacing:-.035em;}
.course-sub{color:var(--muted);font-size:11px;line-height:1.4;} .course-progress{position:relative;display:flex;gap:4px;margin-top:18px;} .course-progress span{height:6px;flex:1;background:var(--track);border-radius:999px;}
.course-progress span.is-done{background:var(--accent);} .course-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:11px;padding-top:14px;border-top:1px solid var(--border);}
.today-supp{display:flex;flex-direction:column;gap:3px;} .today-supp .eyebrow{font-size:10px;} .today-supp strong{color:var(--text);font-size:19px;font-weight:800;line-height:1.15;letter-spacing:-.03em;}
.today-supp strong span{color:var(--muted);font-size:11px;font-weight:500;letter-spacing:0;} .today-supp small{color:var(--muted);font-size:10.5px;} .supp-dots{display:flex;align-items:center;gap:5px;padding-bottom:4px;}
.supp-dots i{display:block;width:7px;height:7px;border-radius:50%;background:var(--track);} .supp-dots i.is-done{background:var(--accent);}
.info-callout{display:flex;align-items:flex-start;gap:9px;margin-top:12px;padding:13px 14px;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:11.5px;line-height:1.55;}
.info-callout .icon{width:16px;height:16px;margin-top:1px;flex:none;color:var(--muted);} .info-callout p{min-width:0;} .supp-grid{display:grid;align-items:start;gap:12px;margin-top:16px;} .supp-group{overflow:hidden;}
.supp-group-head{display:flex;align-items:center;gap:10px;padding:15px 16px 12px;} .supp-group-icon{display:grid;width:32px;height:32px;flex:none;place-items:center;color:var(--muted);background:var(--surface-2);border-radius:10px;}
.supp-group-icon .icon{width:17px;height:17px;} .supp-group-title{display:flex;flex-direction:column;gap:1px;} .supp-group-title h2{color:var(--text);font-size:14.5px;font-weight:750;line-height:1.2;letter-spacing:-.01em;}
.supp-group-title span{color:var(--muted);font-size:10px;line-height:1.35;} .supp-items{border-top:1px solid var(--border);} .supp-item{padding:14px 16px 15px;border-top:1px solid var(--border);} .supp-item:first-child{border-top:0;}
.supp-item.is-taken{background:linear-gradient(90deg,var(--accent-soft),transparent 42%);} .supp-item-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;} .supp-name{min-width:0;flex:1;}
.supp-name h3{color:var(--text);font-size:14px;font-weight:700;line-height:1.3;letter-spacing:-.012em;} .supp-dose{margin-top:3px;color:var(--muted);font-size:10.5px;line-height:1.4;} .supp-dose b{color:var(--text);font-weight:650;}
.supp-toggle{min-width:102px;min-height:44px;padding:0 11px;font-size:11.5px;} .supp-why{margin-top:10px;color:var(--muted);font-size:11.5px;line-height:1.55;} .supp-why span{color:var(--text);font-weight:650;}
.supp-note{display:flex;align-items:flex-start;gap:6px;margin-top:8px;color:var(--muted-2);font-size:10.5px;line-height:1.45;} .supp-note .icon{width:13px;height:13px;margin-top:1px;flex:none;}
@media (min-width:768px){
  .topbar-inner{max-width:900px;padding-right:24px;padding-left:24px;} .page{max-width:900px;padding:24px 24px calc(108px + env(safe-area-inset-bottom));} .screen-head{margin-bottom:20px;} .screen-head h1{font-size:40px;}
  .dash-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;} .today-card,.stats-grid,.week-card,.home-side{grid-column:1 / -1;} .goal-card,.macro-card{min-width:0;}
  .home-side{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;} .today-card{padding:24px;} .hero-content{max-width:650px;} .today-title{max-width:24ch;} .hero-action{width:auto;min-width:220px;} .stats-grid{gap:12px;}
  .stat-link{min-height:124px;padding:15px;} .stat-value{font-size:28px;} .week-card{padding:16px;} .food-days{gap:6px;} .day-picker{padding:10px;}
  .nutrition-layout{grid-template-columns:minmax(0,1fr) 292px;align-items:start;gap:16px;} .nutrition-main,.nutrition-side{gap:16px;} .meal-card{padding:17px;} .target-card{padding:20px;}
  .supp-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px;} .course-card{padding:24px;} .course-bottom{align-items:center;} .toast{bottom:24px;} .course-title{font-size:23px;}
  .session-card{margin-top:16px;padding:24px;} .week-panel{padding:16px;}
}
@media (min-width:1024px){
  .topbar,.bottom-nav{display:none;} .sidebar{display:flex;} .main{margin-left:var(--sidebar-w);} .page{max-width:1080px;padding:32px 32px 34px;} .app-footer{padding-top:34px;} .screen-head{margin-bottom:22px;}
  .screen-head h1{font-size:42px;} .dash-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;} .today-card,.stats-grid{grid-column:1 / -1;} .goal-card{grid-column:span 7;} .macro-card{grid-column:span 5;}
  .week-card{grid-column:span 7;} .home-side{display:flex;grid-column:span 5;flex-direction:column;gap:16px;} .stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;} .stat-link{min-height:118px;}
  .today-card{min-height:236px;padding:26px;} .today-card .hero-content{max-width:760px;} .today-title{max-width:26ch;} .hero-art{top:-72px;right:-36px;width:264px;height:264px;}
  .hero-art::before{top:45px;right:45px;width:172px;height:172px;} .hero-art::after{right:80px;bottom:44px;} .today-card .btn--primary{min-width:238px;} .goal-card{padding:20px;} .macro-card{padding:20px;} .week-card{padding:16px;}
  .message-card{padding:18px;} .nutrition-layout{grid-template-columns:minmax(0,1fr) 318px;gap:16px;} .food-days{gap:6px;} .target-card{padding:20px;} .meal-card{padding:17px;} .supp-grid{margin-top:20px;}
  .session-card{margin-top:18px;}
  .finish-dock{right:auto;bottom:22px;left:calc(var(--sidebar-w) + (100vw - var(--sidebar-w)) / 2);width:min(560px,calc(100vw - var(--sidebar-w) - 64px));transform:translateX(-50%);} .toast{bottom:24px;} body.has-dock .toast{bottom:92px;}
  body.has-dock .app-footer{padding-bottom:16px;} .dock-spacer{height:24px;} body.has-dock .page{padding-bottom:118px;}
}
@media (max-width:389px){
  .food-days{gap:3px;}
}
@media (max-width:359px){
  .page{padding-right:12px;padding-left:12px;} .topbar-inner{padding-right:12px;padding-left:12px;} .brand-name{font-size:21px;} .today-card{padding:17px;} .today-title{font-size:24px;} .stats-grid{gap:8px;} .stat-link{padding:12px;}
  .stat-value{font-size:22px;} .stat-top{font-size:10.5px;} .stat-meta{font-size:9.5px;} .ring{--ring-size:38px !important;} .stat-card--water .stat-link{padding-right:53px;} .stat-quick{right:8px;bottom:8px;width:44px;height:44px;}
  .week-card{padding:10px;} .week-card .card-head{padding-left:2px;padding-right:2px;} .day-picker{padding:6px;} .meal-card{padding:14px;} .meal-foot{flex-wrap:wrap;} .meal-toggle{width:100%;min-width:0;} .target-card{padding:15px;}
  .target-ring .ring{--ring-size:78px !important;} .target-value{font-size:27px;} .target-value small{font-size:12px;} .target-copy{gap:3px;} .meal-head{gap:8px;} .meal-kcal{font-size:12px;} .meal-name-row{gap:6px;}
  .meal-name-row h3{font-size:15px;} .water-card,.week-chart-card,.tips-card,.course-card{padding:15px;} .supp-item-head{flex-wrap:wrap;} .supp-toggle{width:100%;min-width:0;} .session-card{padding:17px;}
  .finish-dock{width:calc(100% - 24px);} .toast{max-width:calc(100% - 24px);font-size:12px;}
}

/* Brand lockup, avatars, shared layout helpers. */
.brand--logo{min-width:0;align-items:flex-start;gap:5px;} .brand-mark{display:block;width:auto;height:27px;color:var(--text);} .brand-caption{max-width:100%;color:var(--text);font-size:9px;font-weight:600;line-height:1;letter-spacing:.13em;white-space:nowrap;} .brand--side .brand-mark{height:42px;} .brand--side .brand-caption{font-size:10.5px;letter-spacing:.15em;}
.avatar--client{font-size:15px;} .avatar--button{width:44px;height:44px;border:1px solid var(--border);font-size:15.5px;box-shadow:0 1px 0 rgba(255,255,255,.04) inset;} .avatar--xl{width:74px;height:74px;font-size:26px;letter-spacing:-.03em;} .client-chevron{width:16px !important;height:16px !important;margin-left:auto;color:var(--muted-2);}
.visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0,0,0,0) !important;white-space:nowrap !important;border:0 !important;}
.page-title{color:var(--text);font-size:clamp(29px,7.4vw,38px);font-weight:800;line-height:1.04;letter-spacing:-.04em;} .page-lead{max-width:62ch;color:var(--muted);font-size:13.5px;line-height:1.5;}
.btn--ghost{color:var(--text);background:var(--surface-2);border-color:var(--border);} .link-button{display:inline-flex;min-height:44px;align-items:center;color:var(--accent-text);font-size:12.5px;font-weight:700;text-decoration:underline;text-decoration-color:var(--accent-line);text-underline-offset:3px;}
.progress-fill{display:block;width:var(--progress,0%);height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-hover));border-radius:inherit;animation:bar-in .24s var(--ease) both;}

/* Weekly measurement reminder on the home screen. */
.measure-reminder{display:flex;min-height:64px;padding:12px 14px;align-items:center;gap:11px;margin-bottom:12px;color:var(--text);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--radius-sm);animation:fade-in .25s var(--ease) both;}
.measure-reminder-icon{display:grid;width:38px;height:38px;flex:none;place-items:center;color:var(--accent-text);background:color-mix(in srgb,var(--surface) 68%,transparent);border-radius:10px;} .measure-reminder-icon .icon{width:19px;height:19px;} .measure-reminder-copy{display:flex;min-width:0;flex:1;flex-direction:column;gap:2px;} .measure-reminder-copy strong{font-size:12.5px;font-weight:700;line-height:1.3;} .measure-reminder-copy span{color:var(--muted);font-size:11px;line-height:1.35;} .measure-reminder-cta{display:inline-flex;flex:none;align-items:center;gap:2px;color:var(--accent-text);font-size:12px;font-weight:700;} .measure-reminder-cta .icon{width:14px;height:14px;}
.message-contact{display:inline-flex;min-height:44px;padding:0 14px;align-items:center;gap:7px;color:var(--accent-text);background:var(--surface-2);border:1px solid var(--border);border-radius:10px;font-size:12.5px;font-weight:700;} .message-contact .icon{width:15px;height:15px;}

/* Pending activation: the questionnaire was sent, access is not open yet. */
.pending-card{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px;padding:16px;animation:fade-in .25s var(--ease) both;}
.pending-icon{display:grid;width:40px;height:40px;flex:none;place-items:center;color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:12px;} .pending-icon .icon{width:19px;height:19px;}
.pending-body{display:flex;min-width:0;flex:1;flex-direction:column;gap:5px;}
.pending-title{margin:0;color:var(--text);font-size:15px;font-weight:750;line-height:1.25;letter-spacing:-.02em;}
.pending-text{margin:0;color:var(--muted);font-size:12.5px;line-height:1.5;}
.pending-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px;}

/* Empty start for a new client: no demo history, nothing to plot yet. */
.goal-note{margin:0;color:var(--muted);font-size:12px;line-height:1.5;} .goal-start-action{width:100%;margin-top:14px;}
.next-steps{padding:16px;margin-bottom:12px;animation:fade-in .25s var(--ease) both;}
.next-steps-list{display:flex;margin:12px 0 0;padding:0;flex-direction:column;gap:11px;list-style:none;}
.next-step{display:flex;align-items:flex-start;gap:10px;}
.next-step-num{display:grid;width:22px;height:22px;flex:none;place-items:center;color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:50%;font-size:11px;font-weight:750;line-height:1;}
.next-step-copy{display:flex;min-width:0;flex-direction:column;gap:2px;} .next-step-copy strong{color:var(--text);font-size:13px;font-weight:700;line-height:1.3;} .next-step-copy span{color:var(--muted);font-size:12px;line-height:1.45;}
.next-steps-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;} .next-steps-actions .btn{flex:1 1 180px;}

/* Navigation sheets and modal dialogs. */
.sheet-layer{position:fixed;inset:0;z-index:90;display:flex;align-items:flex-end;justify-content:center;} .sheet-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.62);opacity:0;transition:opacity .2s ease-out;} .sheet{position:relative;display:flex;width:100%;max-height:90dvh;flex-direction:column;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-bottom:0;border-radius:22px 22px 0 0;box-shadow:var(--float-shadow);outline:none;transform:translateY(102%);transition:transform .22s var(--ease);}
.sheet-layer.is-open .sheet-backdrop{opacity:1;} .sheet-layer.is-open .sheet{transform:translateY(0);} .sheet-head{display:flex;flex:none;padding:16px 16px 12px;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);} .sheet-title{color:var(--text);font-size:18px;font-weight:800;line-height:1.2;letter-spacing:-.025em;} .sheet-close{width:44px;height:44px;flex:none;} .sheet-body{min-height:0;padding:16px 16px calc(20px + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;} body.is-sheet-open{overflow:hidden;}
.sheet-lead{margin-bottom:14px;color:var(--muted);font-size:13px;line-height:1.5;} .contact-sheet-list{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;} .contact-sheet-row{display:flex;min-height:62px;padding:10px 12px;align-items:center;gap:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);} .contact-sheet-icon{display:grid;width:40px;height:40px;flex:none;place-items:center;color:var(--accent-text);background:var(--accent-soft);border-radius:11px;} .contact-sheet-icon .icon{width:18px;height:18px;} .contact-sheet-copy{display:flex;min-width:0;flex:1;flex-direction:column;gap:1px;} .contact-sheet-copy strong{color:var(--text);font-size:14px;font-weight:700;} .contact-sheet-copy span{color:var(--muted);font-size:12px;} .contact-sheet-chevron{color:var(--muted-2);} .contact-sheet-chevron .icon{width:16px;height:16px;} .contact-sheet-cancel{width:100%;}
.install-sheet{display:flex;flex-direction:column;gap:12px;} .install-sheet .btn{width:100%;} .install-block{display:flex;padding:13px;align-items:flex-start;gap:11px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);} .install-block-icon{display:grid;width:36px;height:36px;flex:none;place-items:center;color:var(--accent-text);background:var(--accent-soft);border-radius:10px;} .install-block-icon .icon{width:17px;height:17px;} .install-block h3{color:var(--text);font-size:13.5px;font-weight:700;line-height:1.3;} .install-block ol{margin-top:6px;padding-left:17px;list-style:decimal;color:var(--muted);font-size:12px;line-height:1.55;} .install-block li + li{margin-top:2px;} .install-other{border:1px solid var(--border);border-radius:var(--radius-sm);} .install-other summary{display:flex;min-height:44px;padding:0 13px;align-items:center;color:var(--muted);font-size:12.5px;font-weight:650;cursor:pointer;} .install-other[open]{padding-bottom:10px;background:var(--surface-2);} .install-other .install-block{margin:0 10px;background:var(--surface);} .install-note{display:flex;align-items:flex-start;gap:6px;color:var(--muted-2);font-size:11px;line-height:1.45;} .install-note .icon{width:14px;height:14px;flex:none;margin-top:1px;}

.recipe-sheet{display:flex;flex-direction:column;}
.recipe-name{color:var(--text);font-size:16px;font-weight:750;line-height:1.25;letter-spacing:-.02em;}
.recipe-facts{margin-top:3px;color:var(--muted);font-size:12px;line-height:1.4;font-variant-numeric:tabular-nums;}
.recipe-macros{margin-top:1px;color:var(--muted-2);font-size:11px;line-height:1.4;font-variant-numeric:tabular-nums;}
.recipe-title{margin-top:16px;color:var(--muted-2);font-size:9.5px;font-weight:650;letter-spacing:.04em;text-transform:uppercase;}
.recipe-list{margin-top:6px;border-top:1px solid var(--border);} .recipe-row{display:flex;min-height:34px;padding:7px 0;align-items:baseline;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);color:var(--text);font-size:12.5px;line-height:1.35;} .recipe-row > span:last-child{flex:none;color:var(--muted);font-variant-numeric:tabular-nums;}
.recipe-steps{margin-top:8px;padding-left:18px;list-style:decimal;color:var(--muted);font-size:12.5px;line-height:1.5;} .recipe-steps li{padding-left:2px;} .recipe-steps li + li{margin-top:6px;}
.recipe-note{margin-top:12px;padding:9px 11px;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:11.5px;line-height:1.45;}
.recipe-foot{margin-top:14px;color:var(--muted-2);font-size:11px;line-height:1.45;} .recipe-sheet .contact-sheet-cancel{margin-top:16px;}

/* Profile screen. */
.profile-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;} .identity-card,.contact-card,.subscription-card,.settings-card,.actions-card{padding:18px;min-width:0;} .identity-card{display:flex;flex-direction:column;gap:14px;} .identity-main{display:flex;align-items:center;gap:14px;} .identity-avatar{display:grid;width:74px;height:74px;flex:none;overflow:hidden;place-items:center;background:var(--avatar-bg);border-radius:50%;} .identity-avatar img{width:100%;height:100%;object-fit:cover;} .identity-copy{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:4px;} .identity-copy h2{color:var(--text);font-size:23px;font-weight:800;line-height:1.1;letter-spacing:-.035em;} .goal-chip{display:inline-flex;min-height:25px;padding:3px 9px;align-items:center;color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:999px;font-size:11px;font-weight:650;line-height:1.25;} .identity-photo{width:100%;}
.contact-list{margin-top:10px;} .contact-list > div{display:flex;min-height:44px;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--border);} .contact-list > div:first-child{border-top:0;} .contact-list dt{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12.5px;} .contact-list dt .icon{width:15px;height:15px;color:var(--muted-2);} .contact-list dd{min-width:0;color:var(--text);font-size:12.5px;font-weight:650;text-align:right;overflow-wrap:anywhere;}
.theme-setting{display:flex;margin-top:12px;align-items:center;justify-content:space-between;gap:12px;} .theme-label{color:var(--muted);font-size:12.5px;} .segmented{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:3px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;} .segment{position:relative;display:block;min-width:0;} .segment input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;} .segment span{display:flex;min-height:40px;padding:0 12px;align-items:center;justify-content:center;gap:6px;color:var(--muted);border-radius:9px;font-size:12px;font-weight:650;line-height:1;transition:background-color .2s ease-out,color .2s ease-out;} .segment span .icon{width:15px;height:15px;} .segment input:checked + span{color:var(--text);background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.16);} .segment input:focus-visible + span{outline:2px solid var(--focus);outline-offset:2px;}
.action-list{margin-top:8px;} .action-row{display:grid;width:100%;min-height:56px;grid-template-columns:34px minmax(0,1fr) 20px;align-items:center;gap:11px;border-top:1px solid var(--border);text-align:left;} .action-row:first-child{border-top:0;} .action-icon{display:grid;width:34px;height:34px;place-items:center;color:var(--accent-text);background:var(--accent-soft);border-radius:10px;} .action-icon .icon{width:16px;height:16px;} .action-label{min-width:0;color:var(--text);font-size:13.5px;font-weight:600;} .action-chevron{color:var(--muted-2);} .action-chevron .icon{width:16px;height:16px;}

/* Supplements accordion. */
.supplements-card{padding:0;overflow:hidden;} .supplements-toggle{display:flex;width:100%;min-height:66px;padding:14px 18px;align-items:center;justify-content:space-between;gap:12px;text-align:left;} .supplements-head-copy{display:flex;min-width:0;flex-direction:column;gap:3px;} .supplements-head-copy strong{color:var(--text);font-size:16px;font-weight:700;line-height:1.25;letter-spacing:-.015em;} .supplements-chevron{display:grid;width:32px;height:32px;flex:none;place-items:center;color:var(--muted);} .supplements-chevron .icon{width:18px;height:18px;transition:transform .2s var(--ease);} .supplements-toggle[aria-expanded="true"] .supplements-chevron .icon{transform:rotate(180deg);} .supplements-body{padding:0 18px 6px;border-top:1px solid var(--border);} .supplements-body .info-callout{margin-top:14px;} .supp-list{margin-top:2px;} .supp-list .supp-item{padding:14px 0;border-top:1px solid var(--border);} .supp-list .supp-item:first-child{border-top:0;} .supp-name{color:var(--text);font-size:14.5px;font-weight:700;line-height:1.3;letter-spacing:-.012em;} .supp-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 10px;margin-top:8px;} .supp-facts dt{color:var(--muted-2);font-size:9.5px;font-weight:650;line-height:1.35;letter-spacing:.04em;text-transform:uppercase;} .supp-facts dd{color:var(--text);font-size:11.5px;font-weight:600;line-height:1.4;} .supp-why{display:block;margin-top:9px;color:var(--muted);font-size:11.5px;line-height:1.5;} .supp-why span{display:inline;margin-right:5px;color:var(--accent-text);font-weight:700;}

/* Reports: status, measurement form, dynamics, history. */
.report-status{display:flex;padding:16px;align-items:center;gap:12px;margin-bottom:12px;} .report-status--due{background-image:linear-gradient(180deg,var(--accent-soft),transparent 80%);border-color:var(--accent-line);} .report-status-icon{display:grid;width:44px;height:44px;flex:none;place-items:center;color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:13px;} .report-status-icon .icon{width:20px;height:20px;} .report-status-copy{min-width:0;flex:1;} .report-status-copy h2{color:var(--text);font-size:14.5px;font-weight:700;line-height:1.3;} .report-status-copy p{margin-top:3px;color:var(--muted);font-size:11.5px;line-height:1.45;} .report-status .btn{flex:none;min-height:44px;padding:0 13px;font-size:12.5px;}
.measure-form{padding:18px;margin-bottom:12px;} .measure-form-head h2{color:var(--text);font-size:19px;font-weight:800;line-height:1.2;letter-spacing:-.025em;} .measure-form-head p{margin-top:4px;color:var(--muted);font-size:12px;line-height:1.45;} .measure-guidance{display:flex;padding:11px 12px;align-items:flex-start;gap:8px;margin:13px 0 4px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;} .measure-guidance > span{flex:none;color:var(--muted-2);} .measure-guidance .icon{width:15px;height:15px;margin-top:1px;} .measure-guidance p{color:var(--muted);font-size:11px;line-height:1.5;}
.measure-group{min-width:0;margin:0;padding:0;border:0;} .measure-group + .measure-group{margin-top:14px;padding-top:14px;border-top:1px solid var(--border);} .measure-group legend{padding:0;margin-bottom:9px;color:var(--muted);font-size:10.5px;font-weight:700;line-height:1.3;letter-spacing:.09em;text-transform:uppercase;} .measure-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px;} .measure-field{min-width:0;} .measure-label-row{display:flex;min-height:20px;align-items:center;justify-content:space-between;gap:4px;} .measure-label-row label{min-width:0;color:var(--text);font-size:12px;font-weight:650;line-height:1.3;} .field-help{display:grid;width:44px;height:44px;flex:none;margin:-12px -8px -12px 0;place-items:center;color:var(--muted-2);border-radius:50%;} .field-help .icon{width:14px;height:14px;} .field-help[aria-expanded="true"]{color:var(--accent-text);background:var(--accent-soft);} .measure-input-wrap{position:relative;display:flex;align-items:center;margin-top:4px;} .measure-input-wrap input{width:100%;min-width:0;height:46px;padding:0 42px 0 12px;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:10px;font-size:15px;font-weight:650;outline:none;transition:border-color .2s ease-out,background-color .2s ease-out;} .measure-input-wrap input:focus{border-color:var(--accent-line);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft);} .measure-unit{position:absolute;right:11px;color:var(--muted-2);font-size:11px;font-weight:600;pointer-events:none;} .field-hint{margin-top:4px;color:var(--muted-2);font-size:10px;line-height:1.35;} .field-delta{margin-top:3px;color:var(--muted-2);font-size:10.5px;font-weight:650;line-height:1.35;} .field-error{margin-top:3px;color:#FF9C7A;font-size:10.5px;font-weight:650;line-height:1.35;} .measure-field.is-invalid .measure-input-wrap input{border-color:#FF8A65;background:rgba(255,107,0,.06);box-shadow:none;} .field-help-text{margin-top:7px;padding:9px 10px;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;} .field-help-text strong{display:block;color:var(--text);font-size:10.5px;font-weight:700;} .field-help-text p{margin-top:2px;color:var(--muted);font-size:10.5px;line-height:1.5;} .measure-form-actions{display:grid;grid-template-columns:1fr;gap:8px;margin-top:18px;} .measure-form-actions .btn{width:100%;}
.dynamics-card{padding:18px;margin-bottom:12px;} .metric-chips{display:flex;gap:6px;margin:12px -18px 4px;padding:0 18px 4px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;} .metric-chips::-webkit-scrollbar{display:none;} .metric-chip{display:inline-flex;min-height:44px;padding:0 11px;flex:none;align-items:center;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;font-size:11.5px;font-weight:650;line-height:1;white-space:nowrap;} .metric-chip.is-active{color:var(--accent-text);background:var(--accent-soft);border-color:var(--accent-line);} .metric-chart{margin:8px 0 0;} .metric-chart svg{width:100%;height:auto;overflow:visible;} .chart-grid{stroke:var(--border);stroke-width:1;} .chart-axis{fill:var(--muted-2);font-size:10px;font-weight:600;font-family:var(--font);} .chart-area{opacity:.9;} .chart-line{fill:none;stroke:var(--accent);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dashoffset:1;animation:draw-line .45s var(--ease) forwards;} .chart-dot{fill:var(--surface);stroke:var(--accent);stroke-width:2;} .chart-dot--last{fill:var(--accent);} .chart-caption{display:flex;margin-top:6px;align-items:center;justify-content:space-between;color:var(--muted-2);font-size:10.5px;} .dynamics-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:13px;padding-top:13px;border-top:1px solid var(--border);} .dynamics-summary dt{color:var(--muted-2);font-size:9.5px;font-weight:650;line-height:1.35;letter-spacing:.04em;text-transform:uppercase;} .dynamics-summary dd{margin-top:2px;color:var(--text);font-size:13px;font-weight:700;line-height:1.3;} .dynamics-summary dd.is-down{color:#6FBF8B;} .dynamics-summary dd.is-up{color:#FF9C7A;}
.history-card{padding:18px;} .history-scroll{margin:12px -18px 0;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;} .history-table{width:100%;min-width:420px;border-collapse:collapse;font-size:11.5px;} .history-table th,.history-table td{padding:8px 8px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--border);} .history-table thead th{color:var(--muted-2);font-size:10px;font-weight:650;letter-spacing:.02em;} .history-table th:first-child,.history-table td:first-child{position:sticky;left:0;z-index:1;padding-left:18px;text-align:left;background:var(--surface);} .history-table thead th:first-child{z-index:2;} .history-table tbody th{color:var(--muted);font-weight:650;} .history-value{display:block;color:var(--text);font-weight:650;} .history-diff{display:block;margin-top:1px;color:var(--muted-2);font-size:9.5px;font-weight:600;} .history-table tr:last-child th,.history-table tr:last-child td{border-bottom:0;} .history-note{margin-top:9px;color:var(--muted-2);font-size:10.5px;line-height:1.45;}
:root[data-theme="light"] .field-error{color:#A83318;} :root[data-theme="light"] .measure-field.is-invalid .measure-input-wrap input{border-color:#C0392B;background:rgba(192,57,43,.05);} :root[data-theme="light"] .dynamics-summary dd.is-down{color:#1F7A46;} :root[data-theme="light"] .dynamics-summary dd.is-up{color:#A83318;}

/* Static re-renders keep their entry animations out of the way. */
.screen.is-static,.screen.is-static *{animation:none !important;} .screen.is-static .ring-value{transition:none !important;}

@media (hover:hover){
  .brand--logo:hover{opacity:.86;} .contact-sheet-row:hover,.action-row:hover,.supplements-toggle:hover{background:var(--surface-3);} .metric-chip:hover{color:var(--text);border-color:var(--border-strong);} .metric-chip.is-active:hover{color:var(--accent-text);border-color:var(--accent-line);}
  .field-help:hover{color:var(--text);background:var(--surface-2);} .avatar--button:hover{border-color:var(--border-strong);} .link-button:hover{color:var(--text);} .message-contact:hover{color:var(--text);border-color:var(--border-strong);} .measure-reminder:hover{border-color:var(--accent);}
}

@media (min-width:768px){
  .measure-fields{grid-template-columns:repeat(3,minmax(0,1fr));} .measure-form-actions{grid-template-columns:auto auto;justify-content:flex-start;} .measure-form-actions .btn{width:auto;} .profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;} .identity-card,.actions-card{grid-column:1 / -1;} .identity-card{flex-direction:row;align-items:center;justify-content:space-between;} .identity-photo{width:auto;flex:none;} .sheet-layer{align-items:center;padding:24px;} .sheet{width:min(480px,100%);max-height:min(720px,88dvh);border-bottom:1px solid var(--border);border-radius:20px;transform:translateY(14px) scale(.98);opacity:0;transition:transform .2s var(--ease),opacity .18s ease-out;} .sheet-layer.is-open .sheet{transform:translateY(0) scale(1);opacity:1;} .sheet-head{padding:16px 18px;} .sheet-body{padding:18px 18px 20px;}}
@media (min-width:1024px){
  .brand--side .brand-mark{height:46px;} .measure-form,.dynamics-card,.history-card{padding:20px;} .metric-chips{margin-right:-20px;margin-left:-20px;padding-right:20px;padding-left:20px;} .history-scroll{margin-right:-20px;margin-left:-20px;} .history-table th:first-child,.history-table td:first-child{padding-left:20px;} .report-status{padding:18px;} .report-status-copy h2{font-size:15.5px;} .profile-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);} .identity-card{grid-column:1 / -1;} .actions-card{grid-column:auto;}
}
@media (max-width:359px){
  .brand-mark{height:24px;} .brand-caption{font-size:8px;letter-spacing:.1em;} .measure-fields{grid-template-columns:minmax(0,1fr);} .supp-facts{grid-template-columns:minmax(0,1fr);gap:4px;} .identity-card,.contact-card,.subscription-card,.settings-card,.actions-card,.measure-form,.dynamics-card,.history-card{padding:15px;} .metric-chips{margin-right:-15px;margin-left:-15px;padding-right:15px;padding-left:15px;} .history-scroll{margin-right:-15px;margin-left:-15px;} .history-table th:first-child,.history-table td:first-child{padding-left:15px;} .report-status{flex-wrap:wrap;} .report-status .btn{width:100%;}
}
