/* Shared palette: vivid strokes, darker matching text, neutral controls. */
:root{--ink:#171717;--muted:#444444;--accent:#272727;--accent-hover:#080808;--accent-soft:var(--surface);--border:#B8B8B8;--control-border:#737373;--rule:#D5D5D5;--good:#176C0C;--bad:#D10C25;--warn:#A63D00;--good-fill:#75E000;--good-ink:#173D00;--warn-fill:#FF9800;--warn-ink:#4F2200;--bad-fill:#E11D2E;--bad-ink:#FFFFFF;--surface:#F7F7F7;--weight:#009B46;--weight-text:#007A32;--waist:#E3292E;--waist-text:#B91D25;--hip:#8B32D6;--hip-text:#7620B8;--michael:#2161E8;--michael-text:#184CB8;--lisa:#E5007D;--lisa-text:#B80064;--weight-soft:#F0F9F4;--waist-soft:#FDF2F2;--hip-soft:#F8F3FD;--michael-soft:#F2F6FE;--lisa-soft:#FDF0F7}
@font-face{font-family:Inter;src:url('inter-variable-v180.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}*{box-sizing:border-box}html{color-scheme:light}body{margin:0;background:#fff;color:var(--ink);font:.9375rem/1.5 Inter,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;-webkit-text-size-adjust:100%}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button{border:1px solid var(--control-border);border-radius:8px;background:#fff;color:inherit;min-height:44px;padding:9px 14px;font-weight:550}a{color:var(--accent)}button:hover{background:var(--accent-soft)}input,select{background:#fff;color:inherit;border:1px solid var(--control-border);border-radius:7px;padding:10px;min-height:44px;max-width:100%}input:not([type=checkbox]),select{width:100%}input[type=checkbox]{width:18px;height:18px;min-height:18px;accent-color:var(--accent)}label{display:grid;gap:6px;font-size:0.875rem;font-weight:550}form{display:grid;gap:17px}h1,h2,h3,p{margin:0}h1{font-size:1.8125rem;line-height:1.2;font-weight:650;letter-spacing:-.9px}h2{font-size:1.0625rem;font-weight:650;letter-spacing:-.25px}h3{font-size:0.9375rem}p+p{margin-top:12px}.muted{color:var(--muted)}.small{font-size:0.75rem}.eyebrow{font-size:0.625rem;letter-spacing:1.8px;font-weight:700;color:var(--muted);margin-bottom:8px}.app-header{height:76px;border-bottom:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1140px)/2));padding-top:env(safe-area-inset-top);gap:12px}.brand{display:flex;gap:11px;align-items:center;text-decoration:none;color:var(--ink);font-weight:700;font-size:1.25rem;letter-spacing:-.6px}.header-actions{display:flex;gap:7px;align-items:center}.icon-button{width:44px;min-width:44px;padding:6px;font-size:1.25rem;border-color:transparent}.primary{background:var(--ink);color:#fff;border-color:var(--ink);display:inline-flex;gap:15px;align-items:center;justify-content:center}.primary:hover{background:#344a5b}.secondary{background:var(--accent-soft)}.text-button{border:0;background:transparent;color:var(--accent);padding:7px 3px;font-size:0.8125rem}.quiet-link{font-size:0.8125rem}.check{display:flex;align-items:center;gap:8px;font-size:0.8125rem;font-weight:450}.auth-panel{max-width:420px;margin:70px auto 100px}.auth-panel h1{font-size:2.25rem;line-height:1.25;letter-spacing:-1.3px}.auth-panel>.muted{margin:18px 0 28px}.auth-panel>p:last-of-type{margin:14px 0}.auth-panel form .primary{margin-top:5px}.auth-panel .quiet-link{display:inline-block;margin-top:14px}main{max-width:1140px;margin:0 auto;padding:34px 24px 28px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:23px}.page-heading .muted{font-size:0.8125rem;margin-top:7px}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:9px;padding:3px;background:var(--accent-soft);gap:3px}.segmented button{border:0;background:transparent;color:var(--muted);min-width:85px;min-height:38px;padding:7px 17px}.segmented button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 1px 3px #00000012}.person-tabs{margin-bottom:24px}.panel{border:1px solid var(--border);border-radius:12px;padding:22px;background:white}.today-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px;background:#fff}.today-panel h2{font-size:1rem}.habit-controls{display:flex;gap:26px;align-items:center}.habit-control{display:flex;align-items:center;gap:12px}.habit-question{font-size:0.8125rem;font-weight:550}.answer-buttons{display:flex;gap:3px}.answer-buttons button{min-width:47px;padding:7px 10px;font-size:0.8125rem}.reset-answer{font-size:0.75rem;min-width:34px!important;color:var(--muted)}.chart-panel{margin-bottom:20px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.small-segment button{min-width:0;font-size:0.75rem;min-height:34px;padding:5px 12px}.range-tabs{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 14px}.range-tabs button{border-color:transparent;font-size:0.8125rem;min-height:40px;padding:7px 12px;color:var(--muted)}.range-tabs button[aria-pressed=true]{background:var(--accent-soft);color:var(--ink)}.metric-tabs{margin-bottom:14px}.metric-tabs button{font-size:0.8125rem}.chart-legend{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:4px}.legend-button{display:flex;gap:7px;align-items:center;border:0;padding:4px 8px;min-height:36px;font-size:0.75rem;font-weight:500}.legend-button[aria-pressed=false]{opacity:.45;text-decoration:line-through}.legend-line{width:25px;display:inline-block;border-top:3px solid}.legend-weight{border-color:var(--accent);color:var(--accent)}.legend-waist{border-color:var(--waist);color:var(--waist);border-top-style:dashed}.legend-hip{border-color:var(--hip);color:var(--hip);border-top-style:dotted}.legend-lisa{border-top-style:dashed}.chart-wrap{position:relative;min-height:220px}#chart{width:100%;height:auto;display:block;overflow:visible}#chart text{font:12px system-ui;fill:var(--muted)}#chart .axis-label{font-size:0.6875rem}#chart .point-hit{cursor:pointer}#chart .point-hit:focus{outline:none;stroke:var(--ink);stroke-width:2}.empty{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:var(--muted)}.chart-options{display:flex;gap:18px;align-items:center;border-top:1px solid var(--rule);padding-top:12px;margin-top:12px;font-size:0.75rem}.chart-options>label:first-child{display:flex;align-items:center;gap:8px;font-size:0.75rem;font-weight:450}.chart-options select{padding:5px 8px;min-height:36px;width:auto;font-size:0.75rem}.chart-tooltip{padding:10px 12px;border:1px solid var(--border);background:var(--accent-soft);border-radius:8px;margin:8px 0;font-size:0.8125rem}.chart-tooltip strong{margin-right:8px}.kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.kpi-card{border:1px solid var(--border);border-radius:10px;padding:18px}.kpi-heading{display:flex;align-items:center;justify-content:space-between}.kpi-value{font-size:1.8125rem;letter-spacing:-1px;line-height:1.3;margin:8px 0 2px;font-variant-numeric:tabular-nums}.kpi-value small{font-size:0.9375rem;letter-spacing:0;font-weight:400;color:var(--muted)}.kpi-date{font-size:0.6875rem;color:var(--muted);margin-bottom:17px}.kpi-rows{display:grid;gap:9px}.kpi-row{display:flex;justify-content:space-between;gap:10px;font-size:0.75rem;align-items:start}.kpi-row>span:first-child{color:var(--muted);flex-shrink:0}.kpi-row strong{font-size:0.8125rem;font-weight:550;font-variant-numeric:tabular-nums}.kpi-row small{font-size:0.6875rem;color:var(--muted);display:block;text-align:right}.kpi-row .detail-value{text-align:right}.forecast-row{border-top:1px solid var(--rule);padding-top:11px;margin-top:12px;font-size:0.75rem}.forecast-row>span{display:block;color:var(--muted);margin-bottom:3px}.forecast-row strong{font-size:0.8125rem;font-weight:550}.forecast-row p{font-size:0.6875rem;color:var(--muted);margin-top:5px}.health-row{display:flex;gap:18px;flex-wrap:wrap;padding:15px 2px 23px}.health-item{font-size:0.75rem;display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}.health-item strong{font-size:0.8125rem}.status{display:inline-flex;align-items:center;gap:4px;font-size:0.6875rem;font-weight:550}.status:before{content:'●';font-size:0.5rem}.good{color:var(--good)}.bad{color:var(--bad)}.warn{color:var(--warn)}.neutral{color:var(--muted)}.lower-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.calendar-nav{display:flex;gap:5px;align-items:center}.calendar-nav>span{font-size:0.8125rem;min-width:125px;text-align:center}.calendar-legend{display:flex;gap:11px;flex-wrap:wrap;align-items:center;font-size:0.625rem;color:var(--muted);margin-bottom:15px}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:14px}.weekday{text-align:center;font-size:0.625rem;color:var(--muted);padding:5px}.day{border:1px solid transparent;min-height:57px;padding:5px 2px;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:3px;font-size:0.75rem;border-radius:7px;font-variant-numeric:tabular-nums}.day:hover{border-color:var(--border)}.day.today{border-color:#7b8a96;background:var(--accent-soft)}.day-marks{display:flex;gap:7px;font-size:0.625rem;line-height:1.1}.habit-mark{display:inline-flex;align-items:center;gap:1px;min-width:15px}.history-item{padding:13px 0;border-bottom:1px solid var(--rule);display:flex;gap:10px;justify-content:space-between;align-items:center}.history-item:last-child{border-bottom:0}.history-item time{font-size:0.75rem;font-weight:550}.history-values{font-size:0.75rem;color:var(--muted);margin-top:4px}.history-item button{padding:6px;min-width:44px}.history-empty{color:var(--muted);font-size:0.8125rem;padding:20px 0}.history-panel .section-heading{margin-bottom:0}footer{max-width:1140px;margin:auto;display:flex;gap:15px;align-items:center;justify-content:space-between;padding:20px 24px calc(20px + env(safe-area-inset-bottom));font-size:0.6875rem;color:var(--muted);border-top:1px solid var(--rule)}dialog{width:min(560px,calc(100% - 28px));max-height:calc(100dvh - 40px);border:1px solid var(--border);border-radius:14px;padding:24px;color:var(--ink);overflow-y:auto}dialog::backdrop{background:#00000055}.modal-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-heading h2{font-size:1.25rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-actions{display:flex;justify-content:space-between;gap:12px;margin-top:4px}.danger-button{color:var(--bad);border-color:var(--bad)}.modal-copy{font-size:0.8125rem;line-height:1.65}.modal-copy h3{margin:20px 0 8px}.modal-copy p{margin:10px 0}.modal-copy ul{padding-left:19px}.modal-copy a{overflow-wrap:anywhere}.modal-habits{display:grid;gap:20px}.modal-habits .habit-control{justify-content:space-between;flex-wrap:wrap}.settings-section{padding:18px 0;border-top:1px solid var(--rule);margin-top:18px}.settings-section h3{margin-bottom:12px}.settings-section form{gap:12px}.settings-section .primary{justify-self:start}.settings-section p{font-size:0.75rem;color:var(--muted);margin:10px 0}.export-actions{display:flex;gap:10px;flex-wrap:wrap}.notice{padding:10px 24px;background:var(--accent-soft);text-align:center;font-size:0.75rem;border-bottom:1px solid var(--border)}.notice a{margin-left:12px}#message{position:fixed;top:85px;left:50%;transform:translateX(-50%);max-width:min(600px,calc(100% - 24px));padding:13px 18px;background:var(--ink);color:#fff;z-index:20;border-radius:8px;font-size:0.8125rem;box-shadow:0 3px 16px #0002}#sync-status{font-size:0.6875rem;color:var(--muted);max-width:140px;text-align:right}.update-banner{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);background:#fff;border:1px solid var(--control-border);box-shadow:0 4px 30px #0002;border-radius:10px;padding:12px 18px;display:flex;align-items:center;gap:16px;font-size:0.8125rem;z-index:12}.skip{position:absolute;top:-100px}.skip:focus{top:10px;left:10px;background:white;padding:10px;z-index:30}[hidden]{display:none!important}details{font-size:0.75rem}summary{cursor:pointer;min-height:32px;padding:5px 0}.baseline-list{font-size:0.6875rem;color:var(--muted)}.pending-label{font-size:0.6875rem;color:var(--warn)}.span-all{grid-column:1/-1}.import-preview{padding:12px;border:1px solid var(--border);border-radius:8px;margin:12px 0}.conflict-box{border:1px solid var(--control-border);border-radius:8px;padding:15px;margin-bottom:15px}.inline-error{color:var(--bad);font-size:0.8125rem;margin:10px 0}
@media(min-width:1100px){.chart-wrap{max-height:390px}#chart{max-height:390px}}@media(max-width:760px){main{padding:25px 16px}.app-header{height:66px;padding:0 16px;padding-top:env(safe-area-inset-top)}.brand{font-size:1.125rem;gap:8px}.brand img{width:29px;height:29px}.page-heading{gap:10px}.page-heading h1{font-size:1.625rem}.page-heading .primary{font-size:0.8125rem;padding:9px 12px}.today-panel{align-items:flex-start;flex-direction:column;gap:13px;padding:17px}.habit-controls{width:100%;justify-content:space-between;gap:12px}.habit-control{flex-direction:column;align-items:flex-start;gap:7px}.today-panel .habit-question{font-size:0.75rem}.panel{padding:17px}.section-heading{gap:8px}.small-segment button{font-size:0.6875rem;padding:5px 9px}.kpi-grid{gap:9px}.kpi-card{padding:12px}.kpi-value{font-size:1.5rem}.kpi-heading h3{font-size:0.8125rem}.kpi-row{flex-direction:column;gap:2px}.kpi-row small{text-align:left}.kpi-row .detail-value{text-align:left}.kpi-date{font-size:0.625rem}.forecast-row strong{font-size:0.75rem}.lower-grid{grid-template-columns:1fr}.health-row{gap:12px}.chart-options{gap:12px}.chart-options .check{font-size:0.75rem}.chart-wrap{min-height:180px}.auth-panel{margin:40px auto 70px}.auth-panel h1{font-size:2.0625rem}.modal-habits .habit-control{flex-direction:row;align-items:center}.chart-panel{padding:17px 12px}.chart-options>label:first-child{gap:5px}#sync-status{font-size:0.625rem;max-width:88px}footer{padding-left:16px;padding-right:16px}.person-tabs{width:100%}.person-tabs button{flex:1}.range-tabs{gap:0;justify-content:space-between}.range-tabs button{padding:7px 8px;font-size:0.75rem}.chart-legend{gap:2px}.legend-button{padding:4px 5px}.empty{font-size:0.75rem}.update-banner{width:calc(100% - 24px);gap:10px;padding:10px;font-size:0.75rem}}
@media(max-width:400px){.kpi-grid{grid-template-columns:1fr}.kpi-card{display:grid;grid-template-columns:110px 1fr;column-gap:12px}.kpi-heading,.kpi-value,.kpi-date{grid-column:1}.kpi-rows{grid-column:2;grid-row:1/5;gap:7px}.kpi-row{flex-direction:row;gap:5px}.kpi-row .detail-value{text-align:right}.kpi-row small{text-align:right}.forecast-row{grid-column:1/-1}.habit-controls{gap:6px}.answer-buttons button{min-width:43px}.brand{font-size:1rem}.header-actions{gap:0}.icon-button{min-width:40px;width:40px}.chart-options{flex-wrap:wrap}.eyebrow{letter-spacing:1.1px;font-size:0.5625rem}}
@media(prefers-reduced-motion:no-preference){button{transition:background .12s ease}}@media print{.header-actions,.today-panel,.chart-options,footer,.page-heading button{display:none}.panel,.kpi-card{break-inside:avoid}.lower-grid{display:block}}
.kpi-detail{border:0;border-radius:5px;background:transparent;padding:0 3px;min-height:40px;text-align:right;font-weight:400}.kpi-detail:hover{background:var(--accent-soft)}.kpi-row{align-items:center}.kpi-card .kpi-rows{gap:5px}@media(min-width:401px) and (max-width:760px){.kpi-detail{text-align:left;padding-left:0}}@media(max-width:400px){.kpi-detail{text-align:right}}

.today-panel{flex-direction:column;align-items:stretch;gap:14px}.today-panel>div:first-child{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.habit-controls{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}.habit-controls .habit-control{flex-direction:column;align-items:flex-start;gap:8px;min-width:0}.habit-controls .habit-question{min-height:39px}.day-marks{display:grid;grid-template-columns:repeat(3,10px);gap:2px;justify-content:center;max-width:100%}.habit-mark{display:flex;flex-direction:column;align-items:center;gap:2px;width:10px;min-width:0;font-size:0.625rem;line-height:1}.habit-letter{font-size:0.5625rem;font-weight:600}.calendar-legend strong{font-size:0.625rem}.day{gap:4px}
@media(max-width:760px){.habit-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 12px}.habit-controls .habit-control:first-child{grid-column:1/-1}.habit-controls .habit-control:first-child .habit-question{min-height:0}.habit-controls .habit-question{font-size:0.8125rem;min-height:39px}.today-panel{gap:15px}.today-panel>div:first-child{gap:8px}}
@media(max-width:350px){.habit-controls{grid-template-columns:1fr}.habit-controls .habit-question{min-height:0}.habit-controls .habit-control:first-child{grid-column:auto}}
/* Measurement colors also identify the corresponding values and legend. */
.good{color:var(--good)}.bad{color:var(--bad)}.warn{color:var(--warn)}
.answer-buttons button.active.good{background:var(--good-fill);border-color:var(--good);color:var(--good-ink)}.answer-buttons button.active.bad{background:var(--bad-fill);border-color:var(--bad);color:var(--bad-ink)}
.legend-weight{border-color:var(--weight);color:var(--weight)}.legend-waist{border-color:var(--waist);color:var(--waist)}.legend-hip{border-color:var(--hip);color:var(--hip)}.legend-person-lisa{border-top-style:dashed}
.metric-weight .kpi-value{color:var(--weight-text)}.metric-waist .kpi-value{color:var(--waist-text)}.metric-hip .kpi-value{color:var(--hip-text)}.kpi-value{font-weight:650}
.chart-navigation{display:flex;align-items:center;justify-content:center;gap:7px;margin:1px 0 12px;flex-wrap:wrap}.chart-navigation>span{font-size:0.875rem;font-weight:650;min-width:155px;text-align:center}.chart-navigation .icon-button{border:1px solid var(--border);border-radius:50%;font-size:1.4375rem}.chart-navigation .text-button{font-size:0.6875rem}
#chart text.chart-end-label{font-size:0.75rem;font-weight:700}#chart .chart-date-tick{font-size:0.625rem;fill:var(--muted)}#chart .chart-axis-number{font-size:0.6875rem;fill:var(--muted)}#chart .axis-unit{font-size:0.6875rem;font-weight:650;fill:var(--ink)}.chart-wrap{min-height:260px}.chart-tooltip details p{margin:5px 0;font-size:0.75rem}#chart-description>p{margin-top:4px;font-size:0.6875rem}
.picker-field{display:flex;align-items:stretch;gap:5px;min-width:0}.picker-field>input{min-width:0;flex:1;width:0}.native-picker{position:relative;display:inline-flex;justify-content:center;align-items:center;flex:0 0 44px;min-width:44px;height:44px;border:1px solid var(--control-border);border-radius:7px;background:var(--accent-soft);font-size:1.4375rem;color:#244453;cursor:pointer}.native-picker input{position:absolute;inset:0;width:100%;height:100%;min-width:0;opacity:0;cursor:pointer;padding:0;border:0}.native-picker:focus-within{outline:3px solid var(--accent);outline-offset:2px}
@media(max-width:760px){.chart-navigation>span{font-size:0.75rem;min-width:145px}.chart-navigation .icon-button{width:40px;min-width:40px;min-height:40px}.chart-panel .section-heading{align-items:center}#chart text.chart-end-label{font-size:0.6875rem}.chart-wrap{min-height:290px}.form-grid .picker-field>input{font-size:0.875rem;padding:8px 5px}.native-picker{flex-basis:40px;min-width:40px}}

#chart .chart-end-weight{fill:var(--weight-text)}#chart .chart-end-waist{fill:var(--waist)}#chart .chart-end-hip{fill:var(--hip-text)}

.person-michael .kpi-value{color:var(--michael-text)}.person-lisa .kpi-value{color:var(--lisa-text)}.tooltip-close{float:right;font-size:1.125rem;width:36px;min-width:36px;min-height:36px;margin:-5px -5px 0 8px}

.legend-button:disabled{opacity:1}

/* Strong, consistent actions and selection states; the main canvas stays white. */
.primary{background:var(--accent);border-color:var(--accent);color:#fff}.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.secondary{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}
.segmented{border-color:var(--border)}.segmented button{color:var(--ink)}.segmented button[aria-pressed=true]{background:var(--accent);color:#fff;box-shadow:none}
.range-tabs button{color:var(--accent);border-color:var(--border)}.range-tabs button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}
.eyebrow,.header-actions .icon-button,.chart-navigation .icon-button,.calendar-nav .icon-button{color:var(--accent)}
.answer-buttons button.good{border-color:var(--good)}.answer-buttons button.bad{border-color:var(--bad)}
.answer-buttons button.active.good{background:var(--good-fill);border-color:var(--good);color:var(--good-ink)}.answer-buttons button.active.bad{background:var(--bad-fill);border-color:var(--bad);color:var(--bad-ink)}
button:disabled{opacity:.6}.legend-button:disabled{opacity:1}.legend-button[aria-pressed=false]{opacity:1;color:var(--muted)}.legend-button[aria-pressed=false] .legend-line{opacity:.45}
.day.today{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.day>span:first-child{font-weight:650}
.habit-letter{font-weight:750}.habit-mark>span:last-child{display:grid;place-items:center;width:10px;height:11px;border-radius:2px;font-weight:750}
.habit-mark.good>span:last-child{background:var(--good-fill);color:var(--good-ink);box-shadow:inset 0 0 0 1px var(--good)}.habit-mark.bad>span:last-child{background:var(--bad-fill);color:var(--bad-ink)}
.status.good,.status.bad,.status.warn{padding:1px 5px;border-radius:4px}.status.good{--status-bg:var(--good-fill);background:var(--status-bg);color:var(--good-ink)}.status.bad{--status-bg:var(--bad-fill);background:var(--status-bg);color:var(--bad-ink)}.status.warn{--status-bg:var(--warn-fill);background:var(--status-bg);color:var(--warn-ink)}
.metric-weight .kpi-heading h3{color:var(--weight-text)}.metric-waist .kpi-heading h3{color:var(--waist-text)}.metric-hip .kpi-heading h3{color:var(--hip-text)}
.person-michael .kpi-heading h3{color:var(--michael-text)}.person-lisa .kpi-heading h3{color:var(--lisa-text)}.kpi-value{font-weight:700}
.metric-weight{border-top-color:var(--weight)}.metric-waist{border-top-color:var(--waist)}.metric-hip{border-top-color:var(--hip)}.person-michael{border-top-color:var(--michael)}.person-lisa{border-top-color:var(--lisa)}
.native-picker{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.danger-button:hover{background:#FDECEF}.notice{color:var(--ink)}.settings-section h3,.modal-heading h2{color:var(--ink)}
input::placeholder{color:var(--muted);opacity:1}.chart-navigation .icon-button:disabled,.calendar-nav .icon-button:disabled{color:var(--muted)}

/* One daily area: today's answers and the month calendar stay together. */
.daily-panel{margin-bottom:24px}.daily-panel>.section-heading{margin-bottom:15px}
.daily-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:28px;align-items:start}
.daily-panel .today-panel{padding:0;margin:0;gap:14px;min-width:0}
.daily-panel .today-panel h3{font-size:0.9375rem}.daily-panel .today-panel>div:first-child{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.daily-panel .habit-controls{display:grid;grid-template-columns:1fr;gap:13px}
.daily-panel .habit-controls .habit-control{grid-column:auto;flex-direction:row;align-items:center;justify-content:space-between;gap:12px}
.daily-panel .habit-controls .habit-question{min-height:0;font-size:0.8125rem;flex:1}.daily-panel .answer-buttons{flex-shrink:0}
.daily-calendar{min-width:0}.daily-calendar .calendar-nav{justify-content:space-between;margin-bottom:8px}
.daily-calendar .calendar{gap:3px;margin-bottom:8px}.daily-calendar .day{min-height:44px;padding:3px 2px}
.daily-calendar .calendar-legend{margin-bottom:8px}.daily-calendar>p{font-size:0.6875rem}
@media(max-width:760px){.daily-layout{grid-template-columns:minmax(0,1fr);gap:18px}.daily-calendar{padding-top:13px;border-top:1px solid var(--rule)}.daily-panel .habit-controls{gap:12px}.daily-panel .answer-buttons button{padding:7px 9px}}
@media(max-width:350px){.daily-panel .habit-controls .habit-control{gap:7px}.daily-panel .habit-controls .habit-question{font-size:0.75rem}.daily-panel .answer-buttons button{min-width:40px;padding:7px 7px}}

.daily-panel .answer-buttons button.good:disabled,.daily-panel .answer-buttons button.bad:disabled{opacity:1}

/* Compact chart controls and a stable readout inspired by activity dashboards. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.chart-panel>.section-heading{margin-bottom:3px}.chart-panel .range-tabs{display:flex;flex-wrap:nowrap;gap:0;margin:0 0 2px;border-bottom:1px solid var(--rule)}
.chart-panel .range-tabs button{flex:1;min-width:0;min-height:44px;padding:8px 3px;border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;color:var(--muted);font-size:0.8125rem}
.chart-panel .range-tabs button[aria-pressed=true]{background:transparent;border-bottom-color:var(--accent);color:var(--ink);font-weight:750}.chart-panel .range-tabs button:hover{background:#F5F5F5}
.chart-navigation{display:flex;flex-wrap:nowrap;gap:2px;margin:0}.chart-navigation>span{flex:1;min-width:0;font-size:0.75rem}.chart-navigation .icon-button{border:0;border-radius:5px;min-width:40px;width:40px;min-height:44px;color:var(--ink)}
.chart-navigation #chart-current{width:36px;min-width:36px;min-height:44px;padding:4px;font-size:1.3125rem;color:var(--ink)}.chart-panel .chart-legend{margin:0;gap:3px}.chart-panel .legend-button{min-height:36px}
.chart-readout{position:relative;padding:6px 0 8px;border-bottom:1px solid var(--rule);margin-bottom:5px}.chart-readout-heading{font-size:0.75rem;min-height:20px;padding-right:38px;color:var(--muted)}
.chart-clear-selection{position:absolute;right:-7px;top:-4px;width:44px;min-width:44px;min-height:44px;padding:5px;border:0;background:transparent;font-size:1.375rem}
.chart-readout-values{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:4px}.chart-readout-values[data-count="1"]{grid-template-columns:1fr}.chart-readout-values[data-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
.chart-readout-item{min-width:0;display:grid;grid-template-rows:16px 27px 15px}.chart-readout-label{font-size:0.6875rem;color:var(--muted)}.chart-readout-number{font-size:1.25rem;font-weight:750;line-height:1.25;letter-spacing:-.4px;white-space:nowrap;font-variant-numeric:tabular-nums}.chart-readout-number small{font-size:0.75rem;font-weight:500;letter-spacing:0}
.chart-readout-values[data-count="1"] .chart-readout-number{font-size:1.625rem}.chart-readout-meta{font-size:0.625rem;color:var(--muted);white-space:nowrap}.chart-readout-change{min-height:17px;font-size:0.6875rem;color:var(--muted);margin-top:3px;font-variant-numeric:tabular-nums}
.readout-weight{color:var(--weight-text)}.readout-waist{color:var(--waist-text)}.readout-hip{color:var(--hip-text)}
#chart{touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:crosshair}#chart.is-scrubbing{cursor:ew-resize}#chart:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}#chart .chart-value-bubble-text{fill:#fff;font-size:0.75rem;font-weight:750}
.chart-wrap{min-height:0}.chart-touch-hint{font-size:0.625rem;color:var(--muted);margin-top:1px}.chart-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;align-items:start;margin-top:3px}.chart-footer>#chart-description{padding-top:11px;font-size:0.6875rem}
.chart-display-options>summary{font-size:0.75rem;text-align:right;min-height:40px;padding:9px 0}.chart-display-options[open]{grid-column:1/-1}.chart-display-options[open]>summary{text-align:left}.chart-display-options .chart-options{margin:0;padding-top:8px;flex-wrap:wrap}.chart-explanation{font-size:0.6875rem;color:var(--muted);line-height:1.6;margin-top:10px}.chart-explanation p{margin:0 0 7px}
.chart-tooltip{padding:0;border:0;background:transparent;margin:4px 0}.chart-sample-details>summary{font-size:0.75rem;min-height:40px;padding:9px 0}.chart-sample-series{padding:9px 0;border-top:1px solid var(--rule);font-size:0.75rem}.chart-sample-series p{font-size:0.6875rem;margin:5px 0}.chart-sample-series strong{font-size:0.75rem}
@media(max-width:760px){.chart-panel{padding:14px 12px}.chart-panel .section-heading h2{font-size:1.0625rem}.chart-panel .small-segment button{font-size:0.6875rem;padding:5px 8px}.chart-readout-values{gap:6px}.chart-readout-number{font-size:1.1875rem}.chart-readout-meta{font-size:0.625rem}.chart-footer{gap:0 5px}}

.chart-readout-item.is-empty .chart-readout-number{color:var(--muted)}

.chart-readout-meta{overflow:hidden;text-overflow:ellipsis}@media(max-width:350px){.chart-readout-number{font-size:1.0625rem}}

/* Neutral overview panels; KPI cards use their own subtle opaque tint below. */
.person-tabs,.panel,.kpi-card{background:var(--surface)}
.daily-panel .today-panel,.daily-calendar{background:transparent}
.legend-person-michael{border-color:var(--michael);color:var(--michael)}
.legend-person-lisa{border-color:var(--lisa);color:var(--lisa);border-top-style:dashed}
.readout-michael,.health-person-michael h4{color:var(--michael-text)}
.readout-lisa,.health-person-lisa h4{color:var(--lisa-text)}

/* Health context belongs to the chart; dates stay visible independently of its range. */
.chart-health{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.health-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.health-heading h3{font-size:0.8125rem;margin:0}.health-heading button{font-size:0.75rem;min-height:44px;padding:5px 0}
.health-row{display:grid;gap:16px;padding:0}.health-person{min-width:0}.health-person h4{font-size:0.75rem;margin:0 0 8px}
.health-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.health-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:start;gap:5px 8px;font-size:0.75rem;min-width:0}
.health-label{font-weight:600}.health-item strong{font-size:0.9375rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.health-item .status,.health-item small{grid-column:1/-1;justify-self:start}.health-item small{font-size:0.625rem;color:var(--muted)}
.health-item .status{max-width:100%}.status:before{flex:none}.status.neutral{color:var(--muted)}
#health-note{margin:12px 0 0;line-height:1.55;font-size:0.6875rem}
@media(max-width:600px){.health-grid{grid-template-columns:1fr;gap:12px}.health-item{grid-template-columns:minmax(0,1fr) auto;gap:3px 10px}.health-item small{grid-column:2;grid-row:2;text-align:right;justify-self:end}.health-item .status{grid-column:1;grid-row:2}.health-heading{gap:0}.health-heading h3{font-size:0.75rem}.health-heading button{font-size:0.6875rem}.health-item strong{font-size:0.875rem}}
@media(max-width:350px){.health-item small{grid-column:1/-1;grid-row:3;text-align:left;justify-self:start}.health-item .status{grid-column:1/-1}}

/* Short sections and responsive, semantic tables replace the long help paragraphs. */
dialog.info-modal{width:min(780px,calc(100% - 24px))}
.medical-guide{font-size:0.8125rem;line-height:1.6}.medical-guide p{margin:8px 0}
.medical-guide .guide-intro{margin-top:0;color:var(--muted)}
.medical-guide>section{padding:16px 0;border-top:1px solid var(--rule)}
.medical-guide h3{font-size:0.9375rem;margin:0 0 8px}.medical-guide .guide-note{font-size:0.75rem;color:var(--muted);margin-bottom:0}
.medical-guide table{border-collapse:collapse;table-layout:fixed;width:100%;margin:12px 0 8px;font-size:0.75rem;line-height:1.5}
.medical-guide th,.medical-guide td{padding:9px 8px;text-align:left;vertical-align:top;overflow-wrap:anywhere;hyphens:auto;border-bottom:1px solid var(--rule);font-variant-numeric:tabular-nums}
.medical-guide thead th{background:var(--surface);font-weight:650;border-bottom:1px solid var(--border)}
.medical-guide tbody th{font-weight:500}.medical-guide table th:first-child{width:37%}.medical-guide .measurement-guide th:first-child{width:23%}
.medical-guide .status{font-size:0.6875rem;line-height:1.5;align-items:baseline}.medical-guide .measurement-label{font-weight:650}
.measurement-label.metric-weight{color:var(--weight-text)}.measurement-label.metric-waist{color:var(--waist-text)}.measurement-label.metric-hip{color:var(--hip-text)}
.guide-details{border-top:1px solid var(--rule)}.guide-details>summary{font-size:0.8125rem;font-weight:600;min-height:44px;padding:13px 0;cursor:pointer}
.guide-sources{list-style:none;padding:0;margin:0 0 14px}.guide-sources li{padding:9px 0;border-top:1px solid var(--rule)}.guide-sources a{display:block;color:var(--ink);text-decoration:underline;text-underline-offset:3px}.guide-sources span{display:block;font-size:0.75rem;color:var(--muted);margin-top:3px}
@media(max-width:600px){dialog.info-modal{padding:18px 14px}.medical-guide th,.medical-guide td{padding:8px 5px}.medical-guide table th:first-child{width:40%}.medical-guide .measurement-guide th:first-child{width:24%}}

/* Three small facts below the calendar; unanswered days retain a neutral assessment. */
.habit-summary{margin:12px 0 3px;padding-top:12px;border-top:1px solid var(--border)}
.habit-summary h3{font-size:0.75rem;margin:0 0 10px}
.habit-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0}
.habit-stat{min-width:0}.habit-stat dt{font-size:0.625rem;color:var(--muted);margin:0 0 4px}
.habit-stat dd{margin:0;display:flex;align-items:flex-start;flex-direction:column;gap:3px}
.habit-streak-note{font-size:.6875rem;line-height:1.5;color:var(--muted)}
.habit-stat .habit-streak-label{display:flex;align-items:center;gap:4px}
.streak-check{display:inline-grid;place-items:center;flex:none;width:12px;height:13px;border-radius:2px;background:var(--good-fill);color:var(--good-ink);box-shadow:inset 0 0 0 1px var(--good);font-size:10px;font-weight:750;line-height:1}
.habit-stat strong{font-size:1.0625rem;font-variant-numeric:tabular-nums;line-height:1.3;white-space:nowrap}
.habit-unit{font-size:0.625rem;color:var(--muted)}.habit-stat .status{font-size:0.625rem;line-height:1.5;align-items:baseline;overflow-wrap:anywhere}
.habit-details{margin-top:5px;font-size:0.6875rem;color:var(--muted);line-height:1.55}
.habit-details>summary{min-height:44px;padding:12px 0;cursor:pointer;font-size:0.6875rem}
.habit-details p{margin:0 0 9px}.habit-details table{width:100%;border-collapse:collapse;margin:9px 0;color:var(--ink);font-size:0.6875rem}
.habit-details caption{text-align:left;font-weight:600;margin-bottom:4px}
.habit-details th,.habit-details td{text-align:left;padding:6px 5px;border-bottom:1px solid var(--rule);font-weight:400}
.habit-details thead th{font-weight:600}.habit-details .status{font-size:0.625rem}
@media(max-width:350px){.habit-stats{gap:6px}.habit-stat strong{font-size:0.9375rem}}

/* Approximately 6% of each line color on white; person colors override metric colors. */
.kpi-card.metric-weight{background:var(--weight-soft)}
.kpi-card.metric-waist{background:var(--waist-soft)}
.kpi-card.metric-hip{background:var(--hip-soft)}
.kpi-card.person-michael{background:var(--michael-soft)}
.kpi-card.person-lisa{background:var(--lisa-soft)}
.history-panel{margin-top:20px}

/* The twin-bacon mark has a quiet light tile that blends into the header. */
.brand img{border-radius:8px;object-fit:contain}

/* A clear type hierarchy: strong titles and numbers, readable secondary text. */
body{font-optical-sizing:auto}
h1{font-weight:750;letter-spacing:-.035em}h2{font-weight:700;letter-spacing:-.02em}h3{font-weight:650}
.brand{font-weight:750}.kpi-value,.chart-readout-number{font-weight:750}
.kpi-date,.health-item small,.calendar-legend,.weekday,.chart-readout-meta,.chart-touch-hint,.habit-stat dt,.habit-unit{font-size:0.6875rem}
.chart-readout-item{grid-template-rows:18px minmax(28px,auto) minmax(16px,auto)}
.chart-readout-meta{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.4}
#chart .chart-date-tick{font-size:0.6875rem}#chart .chart-axis-number{font-size:0.75rem}
.forecast-row p{font-size:0.75rem}.habit-stat .status{font-size:0.6875rem}
.habit-open{font-size:0.6875rem;color:var(--muted)}.day:disabled{opacity:.75}

/* Two matching, compact overview rows below the calendar. */
.daily-overviews{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:6px}
.daily-overviews .habit-summary{min-width:0}
@media(max-width:760px){.daily-overviews{grid-template-columns:minmax(0,1fr);gap:0;margin-top:0}}

/* Readable, compact overviews: number and unit share a line; details use the header. */
.habit-summary{position:relative;margin:8px 0 0;padding-top:4px}
.habit-summary h3{display:flex;align-items:center;min-height:36px;margin:0 0 4px;padding-right:68px;line-height:1.35}
.habit-stats{gap:8px}.habit-stat dt{margin-bottom:2px}.habit-stat dd{gap:2px}
.habit-stat strong{font-size:1rem}
.habit-count>.status{padding:0;gap:2px;white-space:nowrap}
.habit-details{margin:0}.habit-details[open]{padding-top:8px}
.habit-details>summary{position:absolute;right:0;top:0;width:64px;min-height:44px;padding:12px 0;text-align:right;list-style-position:inside;font-size:0.6875rem}
@media(max-width:350px){.habit-stats{gap:6px}.habit-stat strong{font-size:0.9375rem}}

/* Saturated signal colors use contrasting ink; the compact row keeps its exact dimensions. */
.habit-count>.status.good,.habit-count>.status.warn,.habit-count>.status.bad{box-shadow:0 0 0 2px var(--status-bg)}

/* Preserve reflow with the browser's enlarged default text size. */
.app-header{height:auto;min-height:76px;flex-wrap:wrap;padding-bottom:8px;padding-top:max(8px,env(safe-area-inset-top))}
.page-heading,.section-heading{flex-wrap:wrap}
.person-tabs{flex-wrap:wrap}.person-tabs button{flex:1 1 auto;min-width:max-content}
.chart-panel .range-tabs{flex-wrap:wrap}.chart-panel .range-tabs button{flex:1 1 auto;min-width:max-content}
.habit-stats{grid-template-columns:repeat(auto-fit,minmax(min(100%,5em),1fr))}
.habit-count>.status{max-width:100%;white-space:normal;flex-wrap:wrap}
.habit-summary h3{padding-right:5rem;overflow-wrap:anywhere}.habit-details>summary{width:4.5rem}
.chart-readout-values{grid-template-columns:repeat(auto-fit,minmax(min(100%,5rem),1fr))}
.chart-readout-item{grid-template-rows:auto auto auto}.chart-readout-meta{white-space:normal;overflow:visible}
/* Calendar letters/checkmarks are compact symbols; full answers are accessible in the day dialog. */
.habit-mark{font-size:10px}
@media(max-width:760px){.app-header{min-height:66px}input,select{font-size:1rem}}
.primary:hover{background:var(--accent-hover)}
.daily-panel .habit-controls .habit-control{flex-wrap:wrap}.daily-panel .habit-controls .habit-question{flex:1 1 8em}
.chart-options label{max-width:100%;min-width:0;flex-wrap:wrap}.chart-options select{max-width:100%}
.kpi-grid{container-type:inline-size;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr))}
.kpi-row{flex-wrap:wrap}.kpi-card{min-width:0}footer{flex-wrap:wrap}
@media(max-width:760px){.kpi-card{grid-template-columns:7rem minmax(0,1fr)}}
@container(max-width:18em){.kpi-card{display:block}.kpi-rows{margin-top:12px}.kpi-row{gap:6px 12px}}
.daily-overviews,.chart-health{container-type:inline-size}
.health-label{min-width:0;overflow-wrap:anywhere}
@container(max-width:14em){.habit-summary h3{padding-right:0;overflow-wrap:normal}.habit-details>summary{position:static;width:auto;text-align:left}.health-item{grid-template-columns:1fr}.health-item strong{grid-row:2}.health-item .status{grid-row:3}.health-item small{grid-row:4}}
.segmented{max-width:100%;flex-wrap:wrap}.small-segment button,.metric-tabs button{flex:1 1 max-content;min-width:0}
.habit-mark b{font-size:9px}.habit-mark>span{font-size:10px}
#sync-status{max-width:8em;overflow-wrap:anywhere}
.habit-count>.status{gap:4px}
/* Keep the complete Austrian date visible beside the native picker on phones. */
@media(max-width:480px){#measurement-form label:has([name=date]),#measurement-form label:has([name=time]){grid-column:1/-1}}
/* Give explicit period units room while retaining large-text reflow. */
.habit-summary{container-type:inline-size}
.habit-stat:first-child strong{white-space:normal}
@container(min-width:15em){.habit-stats{grid-template-columns:minmax(0,.8fr) repeat(2,minmax(0,1.1fr))}}
/* One compact matrix keeps measurement dates, comparisons and goals aligned. */
.kpi-panel{border:1px solid var(--border);border-radius:10px;background:var(--surface);overflow:hidden}
.kpi-table-wrap{width:100%;overflow-x:auto}.kpi-table-wrap:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}
.kpi-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:17rem;font-size:.75rem;font-variant-numeric:tabular-nums;line-height:1.4}
.kpi-table .kpi-label-column{width:26%}
.kpi-table caption{text-align:left;padding:11px 12px;font-size:1rem;font-weight:700;color:var(--ink)}.kpi-table caption span{font-size:.75rem;color:var(--muted);font-weight:500}
.kpi-table th,.kpi-table td{padding:5px 4px;border-bottom:1px solid var(--rule);vertical-align:middle;text-align:center;overflow-wrap:anywhere}
.kpi-table th[scope=row]{text-align:left;padding-left:10px;font-weight:500;color:var(--muted)}
.kpi-table thead th{font-weight:700;border-top:1px solid var(--rule)}.kpi-table td,.kpi-table thead th+th{border-left:1px solid var(--rule)}
.kpi-table small,.kpi-table time{display:block;font-size:.6875rem;font-weight:400;color:var(--muted);line-height:1.4}.kpi-table time{white-space:nowrap}.kpi-table th time{display:inline}
.kpi-table td>strong{display:block;font-size:.875rem;font-weight:650}.kpi-table .kpi-value{font-size:1.125rem;line-height:1.3;letter-spacing:-.3px;margin:0;font-weight:750}
.kpi-table .kpi-detail,.kpi-table .kpi-forecast-button{display:grid;align-content:center;gap:2px;width:100%;min-height:44px;padding:3px 0;border:0;border-radius:4px;background:transparent;text-align:center;font-size:.75rem;color:inherit}
.kpi-table .kpi-detail strong,.kpi-table .kpi-forecast-button strong{font-size:.75rem;font-weight:600;line-height:1.35}
.kpi-table .kpi-detail:hover,.kpi-table .kpi-forecast-button:hover{background:#FFFFFF99}.kpi-table button:focus-visible{outline-offset:-2px}
.kpi-table .kpi-info{font-size:.625rem;color:var(--muted)}.kpi-empty{font-size:.6875rem;color:var(--muted)}
.kpi-table .metric-weight{background:var(--weight-soft)}.kpi-table .metric-waist{background:var(--waist-soft)}.kpi-table .metric-hip{background:var(--hip-soft)}
.kpi-table .metric-weight .kpi-col-name{color:var(--weight-text)}.kpi-table .metric-waist .kpi-col-name{color:var(--waist-text)}.kpi-table .metric-hip .kpi-col-name{color:var(--hip-text)}
.kpi-table .person-michael{background:var(--michael-soft)}.kpi-table .person-lisa{background:var(--lisa-soft)}
.kpi-table .person-michael .kpi-col-name{color:var(--michael-text)}.kpi-table .person-lisa .kpi-col-name{color:var(--lisa-text)}
.kpi-table tbody tr:last-child th,.kpi-table tbody tr:last-child td{border-bottom:0}
.kpi-table-note{margin:0;padding:7px 10px;border-top:1px solid var(--rule);font-size:.6875rem;line-height:1.4;color:var(--muted)}
@media(max-width:400px){.kpi-table th[scope=row]{padding-left:6px}.kpi-table caption{padding:9px 10px}}
.kpi-table .kpi-label-column{width:25%}
.kpi-table caption.sr-only,.kpi-table-note.sr-only{padding:0;border:0}
.kpi-table th,.kpi-table td{padding:4px 3px}.kpi-table td:has(button){padding-top:0;padding-bottom:0}
.kpi-table .kpi-forecast-button strong{text-decoration:underline dotted;text-underline-offset:3px}
@media(max-width:400px){.kpi-table th[scope=row]{padding-left:6px;padding-right:2px}}
.kpi-table{min-width:17.75rem}
.kpi-table th[scope=row],.kpi-table thead th:first-child{position:sticky;left:0;z-index:1;background:var(--surface)}
.kpi-table thead th:first-child{z-index:2}
/* Compact threshold rulers directly follow the measurement matrix. */
.health-panel{container-type:inline-size;margin-top:8px;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
.health-panel .health-heading{margin-bottom:4px}.health-panel .health-heading h3{font-size:.8125rem}.health-panel .health-heading button{min-height:44px;font-size:.6875rem;padding:4px 0}
.health-panel .health-row{gap:12px}.health-panel .health-person h4{margin:0 0 5px;font-size:.75rem}
.health-gauges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
.health-gauge{display:flex;flex-direction:column;min-width:0}
.health-gauge-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:1px 6px;line-height:1.4}
.health-gauge-label{font-size:.75rem;font-weight:600}.health-gauge-top>strong{font-size:.8125rem;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.health-gauge-status,.health-scale-overflow,.health-gauge-date{font-size:.6875rem;color:var(--muted)}.health-gauge-date{margin-left:auto;white-space:nowrap;font-variant-numeric:tabular-nums}
.health-ruler-wrap{padding:0 4px;margin-top:auto}
.health-ruler{display:block;width:100%;height:2.5em;overflow:visible;font-size:.6875rem}
.health-ruler text{fill:var(--muted);font-size:1em;font-family:inherit;font-variant-numeric:tabular-nums}
.health-ruler .ruler-band{stroke:var(--control-border);stroke-width:.6}
.health-ruler .band-good{fill:var(--good-fill)}.health-ruler .band-warn{fill:var(--warn-fill)}.health-ruler .band-bad{fill:var(--bad-fill)}.health-ruler .band-neutral{fill:var(--rule)}
.health-ruler .ruler-tick{stroke:var(--control-border);stroke-width:1}
.health-ruler .ruler-marker-halo{stroke:#fff;stroke-width:4}.health-ruler .ruler-marker{stroke:var(--ink);stroke-width:2}
.health-ruler .ruler-pointer circle{fill:var(--ink);stroke:#fff;stroke-width:1}
.health-panel #health-note{margin:5px 0 0;font-size:.6875rem;line-height:1.4}
@container(max-width:54rem){.health-gauges{grid-template-columns:1fr;gap:7px}}
/* A weekly calendar keeps today's routine and the trend close together. */
.daily-calendar .calendar-nav>span{min-width:0;flex:1;font-weight:600;font-variant-numeric:tabular-nums}
.calendar-actions{display:flex;flex-wrap:wrap;align-items:start;justify-content:space-between;gap:0 12px}
.calendar-actions>.text-button,.calendar-legend-details>summary{min-height:44px;font-size:.75rem;display:flex;align-items:center}
.calendar-legend-details{flex:0 1 auto;max-width:100%;font-size:.75rem}
.calendar-legend-details>summary{display:list-item;align-content:center;padding:10px 0;color:var(--muted)}
.calendar-legend-details[open]{flex-basis:100%}.calendar-legend-details .calendar-legend{margin:4px 0 8px;line-height:1.6}
#calendar-hint{font-size:.6875rem}
/* Current readings and useful changes lead; projections remain available but quieter. */
.kpi-table .kpi-primary>th[scope=row]{color:var(--ink);font-weight:650}
.kpi-table .kpi-primary .kpi-detail strong{font-weight:700;font-size:.8125rem}
.kpi-table [data-kpi-row=target] td>strong{font-weight:750}
.kpi-table .kpi-secondary .kpi-detail strong,.kpi-table .kpi-secondary .kpi-forecast-button strong{font-size:.6875rem;font-weight:500}
/* Every ruler opens its own explanation without increasing the compact scale height. */
.health-gauge-button{display:flex;flex-direction:column;gap:0;width:100%;height:100%;border:0;border-radius:5px;background:transparent;padding:0;text-align:left;font-weight:400;min-height:44px}
.health-gauge-button:hover{background:#00000005}.health-gauge-button .health-gauge-top{width:100%}
.health-gauge-button .health-ruler-wrap{display:block;align-self:stretch}.health-info-symbol{font-size:.6875rem;color:var(--muted);font-weight:400}
dialog.info-modal[open]{display:flex;flex-direction:column;overflow:hidden}
.info-modal .modal-heading{flex-shrink:0;margin-bottom:12px;gap:10px}
.info-modal #modal-content{overflow-y:auto;min-height:0;overscroll-behavior:contain}
.medical-guide h3:focus{outline:2px solid var(--accent);outline-offset:3px}
/* Suggested values are not measurements until explicitly entered or accepted. */
.measurement-field{min-width:0}.measurement-value-state{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 8px;min-height:24px}
.measurement-hint{font-size:.6875rem;color:var(--muted);line-height:1.4}
.measurement-value-state .accept-suggestion{font-size:.75rem;min-height:44px;flex-shrink:0}
.measurement-value-state .accept-suggestion:disabled{opacity:1;color:var(--muted);cursor:default}
.measurement-field:not(.span-all) .measurement-field-name{display:flex;align-items:end;min-height:3em}
/* Keep all actions for the signed-in person together, directly below the view switch. */
.person-tabs{margin-bottom:12px}
.entry-panel{container-type:inline-size;margin-bottom:20px;padding:14px 17px}
.entry-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 12px;margin-bottom:6px}
.entry-heading-label{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px}
.entry-heading h2{font-size:1rem}.entry-heading .small{font-size:.6875rem}
.entry-heading .primary{min-height:44px;font-size:.8125rem;padding:8px 12px}
.entry-panel .today-panel{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin:0;padding:0;background:transparent}
.entry-panel .today-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 8px}
.entry-panel .today-heading h3{font-size:.75rem}.entry-panel #today-date{font-size:.6875rem}
.entry-panel .habit-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 20px}
.entry-panel .habit-controls .habit-control{grid-column:auto;flex-direction:column;align-items:flex-start;gap:6px;min-width:0}
.entry-panel .habit-controls .habit-question{min-height:3em;font-size:.8125rem}
.entry-panel .answer-buttons{flex-shrink:0}.entry-panel .answer-buttons button{min-height:44px}
.daily-panel .daily-calendar{padding-top:0;border-top:0}
.daily-calendar .calendar-actions{margin-bottom:2px}
@container(max-width:48rem){.entry-panel .habit-controls{grid-template-columns:1fr;gap:6px}.entry-panel .habit-controls .habit-control{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 10px}.entry-panel .habit-controls .habit-question{min-height:0;flex:1 1 8em;font-size:.75rem}.entry-panel .answer-buttons button{min-width:44px;padding:7px 8px}}
@media print{.entry-panel{display:none}}
/* A second compact row translates ratio thresholds to waist centimetres. */
.health-ruler-ratio{height:3.9em}
.health-ruler .ruler-waist-equivalent{fill:var(--ink)}
@container(min-width:54.001rem){.health-ruler{height:3.9em}}
/* Keep weekly units intact while allowing compact table cells to wrap naturally. */
.kpi-table .kpi-weekly-rate{display:flex;flex-wrap:wrap;justify-content:center;gap:0 3px}
.kpi-weekly-rate>span{white-space:nowrap}.kpi-detail .kpi-info{font-weight:400}
