@font-face{font-family:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces Fallback;src:local("Times New Roman");ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.00%;size-adjust:115.45%}.__className_5994bd{font-family:Fraunces,Fraunces Fallback;font-style:normal}.__variable_5994bd{--font-fraunces:"Fraunces","Fraunces Fallback"}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/adb45196eddef626-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d0ba92e140f0dc-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Instrument Sans Fallback;src:local("Arial");ascent-override:94.42%;descent-override:24.33%;line-gap-override:0.00%;size-adjust:102.74%}.__className_42a419{font-family:Instrument Sans,Instrument Sans Fallback;font-style:normal}.__variable_42a419{--font-instrument:"Instrument Sans","Instrument Sans Fallback"}:root{--cream:#faf4e8;--cream-2:#f2e9d6;--surface:#fffdf8;--surface-2:#f6efe0;--forest:#14532d;--forest-2:#1b5e3a;--green:#2d6a4f;--green-soft:#e3efe6;--mint:#a7dcbb;--mint-soft:#d8f3dc;--ink:#1e2a22;--muted:#5c6b60;--muted-2:#8a978c;--line:#e7ddc7;--line-strong:#d8ccae;--danger:#a3231b;--danger-bg:#f7e5df;--danger-line:#e0aca2;--warn:#855200;--warn-bg:#f7edd6;--warn-line:#e6c888;--ok:#1e6b45;--ok-bg:#ddefe2;--info:#1f5b6b;--info-bg:#dceef2;--radius:18px;--radius-sm:12px;--radius-pill:999px;--shadow-sm:0 1px 2px rgba(20,50,30,0.05),0 2px 8px rgba(20,50,30,0.04);--shadow:0 2px 4px rgba(20,50,30,0.05),0 10px 30px rgba(20,50,30,0.07);--shadow-lg:0 12px 40px rgba(20,50,30,0.16);--font-display:var(--font-fraunces),"Iowan Old Style",Georgia,"Times New Roman",serif;--font-body:var(--font-instrument),system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--header-h:64px;--bottombar-h:68px;--maxw:1080px;color-scheme:light}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font-body);color:var(--ink);background-color:var(--cream);background-image:radial-gradient(1200px 600px at 100% -10%,rgba(167,220,187,.28),transparent 60%),radial-gradient(900px 500px at -10% 0,rgba(216,243,220,.35),transparent 55%);background-attachment:fixed;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-size:16px}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;color:var(--forest);line-height:1.15;margin:0;letter-spacing:-.01em}h1{font-size:clamp(1.6rem,1.2rem + 2vw,2.3rem);font-optical-sizing:auto}h2{font-size:clamp(1.25rem,1.05rem + 1vw,1.6rem)}h3{font-size:1.12rem}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}p{margin:0 0 .6rem}:focus-visible{outline:3px solid var(--forest-2);outline-offset:2px;border-radius:6px}.muted{color:var(--muted)}.small{font-size:.85rem}.tiny{font-size:.76rem}.center{text-align:center}.nowrap{white-space:nowrap}.tabular{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.app{min-height:100dvh;display:flex;flex-direction:column}.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 clamp(14px,3vw,28px)}.page{flex:1 1;padding-top:20px;padding-bottom:calc(var(--bottombar-h) + 32px)}@media (min-width:768px){.page{padding-top:28px;padding-bottom:48px}}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:18px;flex-wrap:wrap}.page-head .subtitle{color:var(--muted);margin:4px 0 0}.stack{gap:18px}.stack,.stack-sm{display:flex;flex-direction:column}.stack-sm{gap:10px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.grow{flex:1 1}.header{position:-webkit-sticky;position:sticky;top:0;z-index:40;background:rgba(250,244,232,.85);-webkit-backdrop-filter:saturate(140%) blur(10px);backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line)}.header-inner{height:var(--header-h);justify-content:space-between;gap:14px}.brand,.header-inner{display:flex;align-items:center}.brand{gap:10px;font-family:var(--font-display);font-weight:600;color:var(--forest);font-size:1.12rem;letter-spacing:-.01em}.brand:hover{text-decoration:none}.brand-mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(150deg,var(--forest),var(--green));display:grid;place-items:center;color:var(--mint-soft);flex:none;box-shadow:var(--shadow-sm)}.brand-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw}.topnav{display:none;gap:4px}.topnav,.topnav a{align-items:center}.topnav a{display:inline-flex;gap:7px;padding:9px 13px;border-radius:var(--radius-pill);color:var(--muted);font-weight:500;font-size:.94rem}.topnav a:hover{background:var(--green-soft);color:var(--forest);text-decoration:none}.topnav a.active{background:var(--forest);color:#fff}.topnav a.active svg{color:var(--mint)}@media (min-width:768px){.topnav{display:flex}}.bottombar{position:fixed;left:0;right:0;bottom:0;z-index:40;height:calc(var(--bottombar-h) + env(safe-area-inset-bottom, 0px));padding-bottom:env(safe-area-inset-bottom,0);background:rgba(255,253,248,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);display:flex}.bottombar a{flex:1 1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);font-size:.62rem;line-height:1.1;font-weight:500;padding:6px 1px;min-height:44px;text-align:center;overflow:hidden;text-overflow:ellipsis}.bottombar a:hover{text-decoration:none}.bottombar a.active{color:var(--forest)}.bottombar a.active .tab-icon{background:var(--mint-soft);color:var(--forest)}.tab-icon{width:36px;height:24px;border-radius:var(--radius-pill);display:grid;place-items:center;flex:none;transition:background .15s ease}@media (min-width:768px){.bottombar{display:none}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:clamp(16px,2.4vw,22px)}.card.pad-lg{padding:clamp(20px,3vw,30px)}.card-title{display:flex;align-items:center;gap:9px;margin-bottom:14px}.card-title h2,.card-title h3{margin:0}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:12px;gap:12px}@media (min-width:620px){.stat-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:900px){.stat-grid{grid-template-columns:repeat(4,1fr)}}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow-sm);flex-direction:column;min-height:118px}.stat,.stat-label{display:flex;gap:6px}.stat-label{font-size:.82rem;color:var(--muted);align-items:center;font-weight:500}.stat-value{font-family:var(--font-display);font-size:1.9rem;font-weight:600;color:var(--forest);line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-value .unit{font-family:var(--font-body);font-size:.9rem;color:var(--muted);font-weight:500;margin-left:4px}.stat-sub{font-size:.8rem;color:var(--muted);margin-top:auto}.stat-accent{background:linear-gradient(155deg,var(--forest),var(--green));border-color:transparent;color:#fff}.stat-accent .stat-label,.stat-accent .stat-sub{color:rgba(255,255,255,.82)}.stat-accent .stat-value{color:#fff}.stat-accent .stat-value .unit{color:rgba(255,255,255,.82)}.delta{font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.delta.down{color:var(--ok)}.delta.up{color:var(--danger)}.delta.flat{color:var(--muted)}.progress{height:12px;background:var(--surface-2);border-radius:var(--radius-pill);overflow:hidden;border:1px solid var(--line)}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--green),var(--mint));border-radius:var(--radius-pill);transition:width .5s cubic-bezier(.22,1,.36,1)}.progress.on-dark{background:rgba(255,255,255,.22);border-color:transparent}.progress.on-dark>span{background:var(--mint)}.btn{--btn-bg:var(--surface);--btn-fg:var(--forest);--btn-bd:var(--line-strong);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font-family:var(--font-body);font-size:1rem;font-weight:600;line-height:1;padding:13px 18px;min-height:48px;border-radius:var(--radius-sm);border:1px solid var(--btn-bd);background:var(--btn-bg);color:var(--btn-fg);display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .06s ease,box-shadow .15s ease,background .15s ease,opacity .15s ease;text-align:center}.btn:hover{text-decoration:none;box-shadow:var(--shadow-sm)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{--btn-bg:linear-gradient(150deg,var(--forest),var(--green));--btn-fg:#fff;--btn-bd:transparent;box-shadow:var(--shadow-sm)}.btn-primary:hover{box-shadow:var(--shadow)}.btn-mint{--btn-bg:var(--mint-soft);--btn-fg:var(--forest);--btn-bd:var(--mint)}.btn-ghost{--btn-bg:transparent;--btn-bd:transparent;--btn-fg:var(--green)}.btn-danger{--btn-bg:#fff;--btn-fg:var(--danger);--btn-bd:var(--danger-line)}.btn-danger:hover{--btn-bg:var(--danger-bg)}.btn-block{width:100%}.btn-lg{min-height:56px;font-size:1.06rem;padding:16px 22px}.btn-sm{min-height:38px;padding:8px 12px;font-size:.88rem;font-weight:500}.btn-icon{min-height:44px;min-width:44px;padding:10px}.field{display:flex;flex-direction:column;gap:6px}.field-label,.field>label{font-weight:600;font-size:.9rem;color:var(--ink)}.field .hint{font-size:.78rem;color:var(--muted)}.input,select.input,textarea.input{font-family:var(--font-body);font-size:1.05rem;padding:12px 14px;min-height:50px;border-radius:var(--radius-sm);border:1.5px solid var(--line-strong);background:var(--surface);color:var(--ink);width:100%;transition:border-color .15s ease,box-shadow .15s ease}.input:focus,select.input:focus,textarea.input:focus{outline:none;border-color:var(--forest-2);box-shadow:0 0 0 3px rgba(45,106,79,.18)}.input[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 3px rgba(163,35,27,.14)}textarea.input{min-height:90px;resize:vertical;line-height:1.45}.field-error{color:var(--danger);font-size:.82rem;font-weight:500}.form-grid{display:grid;grid-template-columns:1fr;grid-gap:16px;gap:16px}@media (min-width:560px){.form-grid.two{grid-template-columns:1fr 1fr}.form-grid.three{grid-template-columns:repeat(3,1fr)}}.segmented{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-pill);padding:5px;gap:8px;flex-wrap:wrap}.segmented button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--muted);font-family:var(--font-body);font-weight:600;font-size:.9rem;padding:8px 14px;min-height:40px;border-radius:var(--radius-pill);cursor:pointer}.segmented button.active{background:var(--forest);color:#fff}.check{display:inline-flex;align-items:center;gap:10px;padding:12px 14px;border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;min-height:50px;font-weight:500;-webkit-user-select:none;-moz-user-select:none;user-select:none}.check input{width:22px;height:22px;accent-color:var(--green)}.check.checked{border-color:var(--green);background:var(--green-soft);color:var(--forest)}.check-block{width:100%;display:flex}.wellbeing{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:10px;gap:10px}.wellbeing button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:66px;padding:8px 4px;border-radius:var(--radius-sm);border:1.5px solid var(--line-strong);background:var(--surface);color:var(--muted);cursor:pointer;text-align:center;transition:background .12s ease,color .12s ease,border-color .12s ease}.wellbeing button:hover{border-color:var(--green)}.wellbeing button .wb-num{font-family:var(--font-display);font-size:1.25rem;font-weight:600;line-height:1}.wellbeing button .wb-label{font-size:.66rem;line-height:1.05;font-weight:500}.wellbeing button.active{background:var(--forest);color:#fff;border-color:transparent}.wellbeing button.active .wb-label{color:rgba(255,255,255,.9)}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-pill);font-size:.78rem;font-weight:600;border:1px solid transparent;white-space:nowrap}.badge-dot{width:8px;height:8px;border-radius:50%;background:currentColor}.badge.ok{background:var(--ok-bg);color:var(--ok);border-color:#bfe0ca}.badge.low{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-line)}.badge.high{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-line)}.badge.neutral{background:var(--surface-2);color:var(--muted);border-color:var(--line)}.notice{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);font-size:.92rem}.notice svg{flex:none;margin-top:1px}.notice-danger{background:var(--danger-bg);border-color:var(--danger-line);color:#6b1712}.notice-danger strong{color:var(--danger)}.notice-warn{background:var(--warn-bg);border-color:var(--warn-line);color:#5b3900}.notice-info{background:var(--info-bg);border-color:#b8dbe3;color:#133e49}.notice-mint{background:var(--mint-soft);border-color:var(--mint);color:var(--forest)}.notice-ok{background:var(--ok-bg);border-color:#bfe0ca;color:#12492e}.toast{position:fixed;left:50%;bottom:calc(var(--bottombar-h) + 18px);transform:translateX(-50%);z-index:60;background:var(--forest);color:#fff;padding:12px 18px;border-radius:var(--radius-pill);box-shadow:var(--shadow-lg);font-weight:500;font-size:.92rem;max-width:90vw;animation:toast-in .2s ease}@media (min-width:768px){.toast{bottom:24px}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.modal-backdrop{position:fixed;inset:0;z-index:70;background:rgba(20,40,28,.42);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;padding:18px;animation:fade .15s ease}@keyframes fade{0%{opacity:0}}.modal{background:var(--surface);border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow-lg);width:100%;max-width:460px;padding:22px;animation:pop .16s cubic-bezier(.22,1,.36,1)}@keyframes pop{0%{opacity:0;transform:scale(.96)}}.modal h3{margin-bottom:8px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px;flex-wrap:wrap}.entry-item{display:grid;grid-template-columns:1fr auto;grid-gap:10px 16px;gap:10px 16px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.entry-date{font-family:var(--font-display);font-weight:600;color:var(--forest);font-size:1.05rem}.entry-metrics{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:8px;font-size:.9rem;color:var(--muted)}.entry-metrics b{color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.entry-actions{display:flex;gap:8px;align-items:flex-start}.metric-pill{display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-pill);padding:3px 10px;font-size:.82rem;color:var(--muted)}.metric-pill b{color:var(--ink)}.chart-wrap{width:100%;overflow-x:auto}.chart-svg{width:100%;height:auto;display:block}.chart-svg .axis{stroke:var(--line-strong);stroke-width:1}.chart-svg .grid{stroke:var(--line);stroke-width:1;stroke-dasharray:3 4}.chart-svg .axis-label{fill:var(--muted-2);font-size:11px;font-family:var(--font-body)}.chart-svg .line{fill:none;stroke:var(--green);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.chart-svg .area{fill:url(#areaGrad);opacity:.9}.chart-svg .dot{fill:var(--green)}.chart-svg .dot-active{fill:var(--forest);stroke:var(--mint);stroke-width:3}.chart-svg .bar{fill:var(--green);rx:4}.chart-svg .threshold{stroke:var(--danger);stroke-width:1.5;stroke-dasharray:5 4;opacity:.7}.chart-svg .threshold-high{stroke:var(--warn)}.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:.8rem;color:var(--muted);margin-top:10px}.legend span{display:inline-flex;align-items:center;gap:6px}.legend .swatch{width:14px;height:3px;border-radius:2px;background:var(--green)}.legend .swatch.dot{width:10px;height:10px;border-radius:50%;background:var(--forest);border:2px solid var(--mint)}.plan-day{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.plan-day-head{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:var(--surface-2);border-bottom:1px solid var(--line)}.plan-day-head .day-name{font-family:var(--font-display);font-weight:600;color:var(--forest);text-transform:capitalize}.plan-day-head.is-today .day-name:after{content:"•";color:var(--green);margin-left:6px}.plan-session{display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--line)}.plan-session:first-child{border-top:none}.plan-session .sess-info{flex:1 1;min-width:0}.plan-session .sess-label{font-weight:600}.plan-session .sess-meta{font-size:.8rem;color:var(--muted)}.plan-session.done{background:var(--green-soft)}.plan-check{width:30px;height:30px;border-radius:50%;border:2px solid var(--line-strong);background:var(--surface);display:grid;place-items:center;cursor:pointer;flex:none;color:transparent;transition:all .15s ease}.plan-check.on{background:var(--green);border-color:var(--green);color:#fff}.workout-item{display:grid;grid-template-columns:1fr auto;grid-gap:10px 16px;gap:10px 16px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.workout-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.workout-type{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:var(--radius-pill);background:var(--green-soft);color:var(--forest);font-weight:600;font-size:.82rem;border:1px solid var(--mint)}.workout-type.bike{background:var(--mint-soft)}.workout-type.gym{background:#e9e6f5;border-color:#cdc6e6;color:#3f356b}.workout-type.walk{background:var(--green-soft)}.workout-type.other{background:var(--surface-2);border-color:var(--line-strong);color:var(--muted)}.workout-when{font-family:var(--font-display);font-weight:600;color:var(--forest)}.exercise-row{display:grid;grid-template-columns:1fr;grid-gap:10px;gap:10px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}@media (min-width:620px){.exercise-row{grid-template-columns:2fr 1fr 1fr 1fr auto;align-items:end}}.exercise-list{display:flex;flex-direction:column;gap:10px}.exercise-summary{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:.85rem;color:var(--muted)}.verdict{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:var(--radius-pill);font-size:.8rem;font-weight:600;border:1px solid transparent}.verdict.progress{background:var(--ok-bg);color:var(--ok);border-color:#bfe0ca}.verdict.noChange{background:var(--surface-2);color:var(--muted);border-color:var(--line-strong)}.verdict.notEnoughData{background:var(--info-bg);color:var(--info);border-color:#b8dbe3}.verdict.regress{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-line)}.verdict.higher,.verdict.lower,.verdict.notComparable{background:var(--surface-2);color:var(--muted);border-color:var(--line-strong);font-weight:500}.compare-table td.metric-name{font-weight:600;white-space:normal}.compare-table td .neutral-tag{font-size:.72rem;color:var(--muted-2);display:block;font-weight:400}.record-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}.record-value{font-family:var(--font-display);font-weight:600;color:var(--forest);font-size:1.1rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.table-wrap{width:100%;overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:.86rem}table.data td,table.data th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}table.data th{color:var(--muted);font-weight:600;background:var(--surface-2)}table.data td.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}table.data tr td.low{color:var(--danger);font-weight:700}table.data tr td.high{color:var(--warn);font-weight:700}.divider{height:1px;background:var(--line);border:none;margin:4px 0}.empty{text-align:center;color:var(--muted);padding:30px 16px}.spinner{width:22px;height:22px;border:3px solid var(--mint-soft);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.loading-screen{min-height:50vh;display:grid;place-items:center}.skip-link{position:absolute;left:-9999px;top:0;background:var(--forest);color:#fff;padding:10px 16px;border-radius:0 0 10px 0;z-index:100}.skip-link:focus{left:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}@media print{.bottombar,.header,.no-print,.toast{display:none!important}body{background:#fff;background-image:none}.page{padding:0}.card{box-shadow:none;border:1px solid #ccc;page-break-inside:avoid;break-inside:avoid}table.data th{background:#f0f0f0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-only{display:block!important}}.print-only{display:none}.form-grid.four{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px}@media (min-width:560px){.form-grid.four{grid-template-columns:repeat(2,1fr)}}@media (min-width:900px){.form-grid.four{grid-template-columns:repeat(4,1fr)}}.meal-item-row{border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px;background:var(--surface-2);display:flex;flex-direction:column;gap:12px}.meal-item-list{margin:8px 0 0;padding-left:18px;font-size:.9rem;color:var(--muted)}.meal-item-list b{color:var(--ink)}.water-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.water-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}.quick-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;padding:12px;border:1px dashed var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-2)}.suggest-wrap{position:relative}.suggest-list{position:absolute;top:100%;left:0;right:0;z-index:30;margin:4px 0 0;padding:4px;list-style:none;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow);max-height:260px;overflow-y:auto}.suggest-list button{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;border:none;background:transparent;padding:9px 10px;border-radius:8px;cursor:pointer;font-family:var(--font-body);font-size:.92rem;color:var(--ink);min-height:44px}.suggest-list button:focus-visible,.suggest-list button:hover{background:var(--green-soft)}.suggest-macros{font-size:.78rem;color:var(--muted)}.favorite-list,.template-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.favorite-list li,.template-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);flex-wrap:wrap}.favorite-list .meta,.template-list .meta{font-size:.82rem;color:var(--muted)}.timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.timeline-item{display:grid;grid-template-columns:54px 26px 1fr;align-items:start;grid-gap:10px;gap:10px;padding:10px 8px;border-left:3px solid var(--line-strong);background:var(--surface)}.timeline-item+.timeline-item{border-top:1px solid var(--line)}.timeline-item.glucose{border-left-color:var(--danger-line)}.timeline-item.meal{border-left-color:var(--mint)}.timeline-item.water{border-left-color:#b8dbe3}.timeline-item.workout{border-left-color:var(--green)}.timeline-item.meds{border-left-color:var(--warn-line)}.timeline-time{font-size:.86rem;color:var(--muted);padding-top:1px}.timeline-icon{color:var(--muted);display:grid;place-items:center}.timeline-body{font-size:.94rem;min-width:0}.timeline-detail{color:var(--muted)}.glucose-quick{width:100%;padding:10px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-2)}@media (max-width:520px){.timeline-item{grid-template-columns:46px 22px 1fr;gap:8px}}.picker{border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px;background:var(--surface)}.product-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:6px;gap:6px}.product-row{display:flex;align-items:center;gap:10px;width:100%;padding:8px;text-align:left;background:transparent;border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;font:inherit;color:inherit}.product-row:focus-visible,.product-row:hover{border-color:var(--green);background:var(--bg-soft,rgba(167,220,187,.12))}.product-thumb{width:44px;height:44px;object-fit:cover;border-radius:8px;flex:none;background:var(--line)}.product-thumb.placeholder{display:block}.product-info{display:grid;grid-gap:2px;gap:2px;min-width:0}.product-info b{overflow-wrap:anywhere}.scanner{display:grid;grid-gap:8px;gap:8px;justify-items:start;margin-top:12px}.scanner-video{width:100%;max-width:420px;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-sm);background:#000}.totals-row{display:flex;flex-wrap:wrap;gap:6px}.picker .field.grow{flex:1 1 200px;min-width:180px}.login-wrap{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:420px}