@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-cyrillic-ext-wght-normal.20g3-bbbhdq0_.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-cyrillic-wght-normal.2cxlyxah-fd35.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-greek-ext-wght-normal.0mkxydxl0e43d.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-greek-wght-normal.1rx9vjatjkdar.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-vietnamese-wght-normal.2kcj5i_8uff48.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-latin-ext-wght-normal.3gdi_th3seg1n.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-latin-wght-normal.0gsaq8ukbf34m.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--ground:#f2f2f2;--accent:#ffb115;--accent-ink:#8a5a00;--accent-soft:#fff3d6;--ink:#1c1c1c;--card:#fff;--muted:#6b6b6b;--line:#e2e2e2;--grid:#ececec;--band:#1b7a3a1a;--danger:#b3261e;--danger-soft:#fdecea;--ok:#1b7a3a;--ok-soft:#e6f4ea;--radius:14px;--shadow:0 1px 2px #0000000a, 0 1px 8px #0000000a;--font:"Inter Variable", Inter, system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--ground);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}a{color:inherit}h1,h2,h3{margin:0;line-height:1.25}h1{letter-spacing:-.01em;font-size:24px;font-weight:700}h2{font-size:17px;font-weight:650}h3{font-size:14px;font-weight:650}p{margin:0}.muted{color:var(--muted)}.small{font-size:12.5px}.topbar{background:var(--card);border-bottom:1px solid var(--line)}.topbar-in{align-items:center;gap:14px;max-width:1180px;margin:0 auto;padding:12px 24px;display:flex}.brand{align-items:center;gap:10px;font-size:16px;font-weight:700;text-decoration:none;display:flex}.brand small{color:var(--muted);margin-left:2px;font-size:13px;font-weight:500}.topbar-right{align-items:center;gap:10px;margin-left:auto;display:flex}.wrap{max-width:1180px;margin:0 auto;padding:24px 24px 64px}.btn{border:1px solid var(--line);background:var(--card);height:38px;color:var(--ink);font:inherit;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:#f7f7f7}.btn-primary{background:var(--ink);border-color:var(--ink);color:#fff}.btn-primary:hover{background:#333}.btn-accent{background:var(--accent);border-color:var(--accent);color:var(--ink)}.btn-accent:hover{background:#ffa000}.btn-danger{color:var(--danger);border-color:#f0c8c4}.btn-sm{border-radius:8px;height:30px;padding:0 12px;font-size:13px}.btn-link{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}label.field{font-size:13px;font-weight:600;display:block}label.field>input,label.field>select{margin-top:6px;display:block}input[type=text],input[type=email],input[type=password],input[type=number],select{height:40px;font:inherit;color:var(--ink);background:#fff;border:1px solid #d4d4d4;border-radius:10px;width:100%;padding:0 12px;font-weight:400}input:focus-visible,select:focus-visible,.btn:focus-visible,a:focus-visible{outline-offset:1px;outline:3px solid #ffb1158c}.check{align-items:flex-start;gap:8px;font-weight:500;display:flex}.check input{width:16px;height:16px;accent-color:var(--ink);margin-top:3px}.form-row{align-content:start;gap:14px;display:grid}.notice{border-radius:10px;padding:10px 14px;font-size:13px}.notice-ok{background:var(--ok-soft);color:var(--ok)}.notice-err{background:var(--danger-soft);color:var(--danger)}.notice-info{background:var(--accent-soft);color:var(--accent-ink)}.app-note{color:var(--muted);white-space:nowrap;background:#f4f4f4;border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:12px;display:inline-flex}.auth{justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.auth-card{background:var(--card);width:100%;max-width:400px;box-shadow:var(--shadow);border-radius:18px;flex-direction:column;gap:18px;padding:32px 28px;display:flex}.auth-card .brand{justify-content:center}.auth-card h1{text-align:center;font-size:22px}.auth-card .sub{text-align:center;color:var(--muted)}.steps{color:var(--muted);justify-content:center;gap:8px;font-size:12px;display:flex}.steps span[aria-current=step]{color:var(--ink);font-weight:650}.code-input{letter-spacing:.4em;text-align:center;font-variant-numeric:tabular-nums;font-size:20px!important}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.acct-head{align-items:flex-start;gap:18px;display:flex}.avatar{background:var(--accent-soft);width:72px;height:72px;color:var(--accent-ink);object-fit:cover;border-radius:36px;flex-shrink:0;justify-content:center;align-items:center;font-size:26px;font-weight:700;display:flex;overflow:hidden}.acct-who{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.acct-who h1{overflow-wrap:anywhere}.facts{flex-wrap:wrap;gap:6px 18px;font-size:13px;display:flex}.facts dt{color:var(--muted);display:inline}.facts dd{margin:0 0 0 4px;font-weight:600;display:inline}.chips{vertical-align:middle;flex-wrap:wrap;gap:4px;display:inline-flex}.chip{color:#1b7a3a;background:#e6f4ea;border-radius:999px;padding:1px 9px;font-size:12px;font-weight:600;display:inline-block}.chip-allergy{background:var(--danger-soft);color:var(--danger)}.chip-none{color:var(--muted);background:#f1f1f1;font-weight:500}.acct-actions{align-items:center;gap:8px;display:flex}.tabs{border-bottom:1px solid var(--line);gap:4px;margin:20px 0 16px;display:flex;overflow-x:auto}.tabs a{color:var(--muted);white-space:nowrap;border-bottom:3px solid #0000;margin-bottom:-1px;padding:10px 14px;font-weight:600;text-decoration:none}.tabs a:hover{color:var(--ink)}.tabs a[aria-current=page]{color:var(--ink);border-bottom-color:var(--accent)}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin:4px 0 12px;display:flex}.seg{background:#e9e9e9;border-radius:10px;padding:3px;display:inline-flex}.seg a{color:var(--muted);border-radius:8px;padding:5px 12px;font-size:13px;font-weight:600;text-decoration:none}.seg a[aria-current=true]{background:var(--card);color:var(--ink);box-shadow:var(--shadow)}.grid{gap:14px;display:grid}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.stat .label{color:var(--muted);font-size:13px}.stat .value{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:700}.stat .foot{color:var(--muted);font-size:12.5px}.chart-card h2{font-size:15px}.chart-card .sub{color:var(--muted);margin-bottom:8px;font-size:12.5px}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart text{font-family:var(--font);fill:var(--muted);font-size:11px}.chart .bar{fill:var(--accent)}.chart .bar:hover,.chart .hit:hover+.bar{fill:#e89a00}.chart .bar-over{fill:#f5c45e}.chart .grid-line{stroke:var(--grid);stroke-width:1px}.chart .base-line{stroke:#cfcfcf;stroke-width:1px}.chart .band{fill:var(--band)}.chart .goal-line{stroke:var(--ok);stroke-width:1.5px;stroke-dasharray:4 3}.chart .line{fill:none;stroke:var(--ink);stroke-width:2px}.chart .dot{fill:var(--ink);stroke:var(--card);stroke-width:2px}.chart .hit{fill:#0000}.legend{color:var(--muted);flex-wrap:wrap;gap:14px;margin-top:6px;font-size:12px;display:flex}.legend i{vertical-align:middle;border-radius:2px;width:14px;height:8px;margin-right:5px;display:inline-block}.prog{border-bottom:1px solid #f1f1f1;grid-template-columns:150px 1fr 150px;align-items:center;gap:10px;padding:7px 0;font-size:13px;display:grid}.prog:last-child{border-bottom:none}.prog-track{background:#f0f0f0;border-radius:5px;height:10px;position:relative;overflow:hidden}.prog-band{background:var(--band);position:absolute;top:0;bottom:0}.prog-fill{background:var(--accent);border-radius:4px;position:absolute;top:2px;bottom:2px;left:0}.prog-val{text-align:right;font-variant-numeric:tabular-nums}.status{margin-left:6px;font-size:11.5px;font-weight:600}.status-ok{color:var(--ok)}.status-high{color:var(--danger)}.status-low{color:var(--accent-ink)}table.t{border-collapse:collapse;width:100%;font-size:13px}table.t th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 10px;font-size:12px;font-weight:600}table.t td{vertical-align:top;border-bottom:1px solid #f1f1f1;padding:8px 10px}table.t td.num,table.t th.num{text-align:right;font-variant-numeric:tabular-nums}table.t tr[aria-current=true] td{background:var(--accent-soft)}.t-wrap{overflow-x:auto}.meal-slot{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:12px 0 4px;font-size:12px;font-weight:600}.day-nav{align-items:center;gap:8px;display:flex}dl.ro{grid-template-columns:180px 1fr;gap:0;margin:0;display:grid}dl.ro dt,dl.ro dd{border-bottom:1px solid #f1f1f1;margin:0;padding:10px 0}dl.ro dt{color:var(--muted)}dl.ro dd{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.goals-table input{text-align:right;width:110px;height:34px}dialog.share{border:none;border-radius:18px;width:min(760px,100vw - 32px);max-height:calc(100vh - 48px);padding:0;box-shadow:0 20px 60px #00000040}dialog.share::backdrop{background:#0006}.share-head{border-bottom:1px solid var(--line);background:var(--card);z-index:1;justify-content:space-between;align-items:center;padding:18px 22px;display:flex;position:sticky;top:0}.share-body{flex-direction:column;gap:18px;padding:18px 22px 22px;display:flex}.share fieldset{border:1px solid var(--line);border-radius:12px;gap:8px;margin:0;padding:12px 14px;display:grid}.share legend{padding:0 4px;font-size:13px;font-weight:650}.radios{flex-wrap:wrap;gap:16px;display:flex}.consent{background:var(--accent-soft);border:1px dashed #d4a017;border-radius:12px;gap:8px;padding:12px 14px;display:grid}.consent .placeholder{color:var(--accent-ink);font-family:ui-monospace,Menlo,monospace;font-size:12.5px}.people li{border-bottom:1px solid #f1f1f1;justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 0;display:flex}.people{margin:0;padding:0;list-style:none}.pill{color:var(--muted);background:#f1f1f1;border-radius:999px;padding:1px 8px;font-size:11.5px;font-weight:600;display:inline-block}.pill-active{background:var(--ok-soft);color:var(--ok)}.pill-invited{background:var(--accent-soft);color:var(--accent-ink)}.pill-revoked,.pill-expired{color:var(--muted);background:#f1f1f1}.viewer-banner{color:#fff;background:#1c1c1c}.viewer-banner .topbar-in{color:#fff}.viewer-banner .brand small{color:#b8b8b8}.sharer-list{gap:10px;display:grid}.sharer{justify-content:space-between;align-items:center;gap:14px;text-decoration:none;display:flex}.sharer:hover{box-shadow:0 0 0 2px var(--accent)}@media (max-width:900px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2,.grid-3{grid-template-columns:1fr}.prog{grid-template-columns:110px 1fr 110px}dl.ro{grid-template-columns:1fr}dl.ro dt{border-bottom:none;padding-bottom:0}}@media (max-width:600px){.wrap{padding:16px 16px 48px}.topbar-in{padding:10px 16px}.acct-head{flex-wrap:wrap}.acct-actions{width:100%}}.goals-table td{vertical-align:middle}.grid>*{min-width:0}.t-wrap table.t td:first-child{white-space:nowrap}@media (max-width:600px){.prog{grid-template-columns:96px 1fr}.prog-val{text-align:left;grid-column:1/-1;margin-top:-4px;padding-left:96px}.grid-4{grid-template-columns:1fr 1fr}}.people .btn{white-space:nowrap}.viewer-who{color:#b8b8b8}@media (max-width:600px){.viewer-who{display:none}}.switch-row{cursor:pointer;border-bottom:1px solid #f1f1f1;justify-content:space-between;align-items:center;gap:14px;padding:8px 0;display:flex}.switch-row span{flex-direction:column;display:flex}.switch-row small{font-size:12.5px}.switch{appearance:none;cursor:pointer;background:#d4d4d4;border-radius:13px;flex-shrink:0;width:44px;height:26px;margin:0;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #00000040}.switch:checked{background:var(--ok)}.switch:checked:after{transform:translate(18px)}.switch:focus-visible{outline-offset:2px;outline:3px solid #ffb1158c}.pw-wrap{margin-top:6px;display:block;position:relative}label.field>.pw-wrap>input{margin-top:0;padding-right:46px}.pw-toggle{width:44px;height:40px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:0 10px 10px 0;justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0}.pw-toggle:hover{color:var(--ink)}.pw-toggle:focus-visible{outline-offset:-3px;outline:3px solid #ffb1158c}.pfacts{grid-template-columns:max-content minmax(0,1fr);align-items:start;gap:8px 14px;margin:0;font-size:13px;display:grid}.pfacts dt{color:var(--muted);white-space:nowrap;padding-top:2px}.pfacts dd{min-width:0;margin:0;font-weight:600}.pfacts .chips{flex-wrap:wrap;gap:6px;display:flex}.pfacts .chip{white-space:nowrap}.chips-more{display:inline-flex}.chips-more[open]{flex-basis:100%;display:block}.chips-more .chips-rest{flex-wrap:wrap;gap:6px;display:flex}.chips-more>summary{cursor:pointer;list-style:none;display:inline-flex}.chips-more>summary::-webkit-details-marker{display:none}.chips-more[open]>summary{display:none}.chip-more{color:var(--ink);text-underline-offset:2px;background:#f1f1f1;text-decoration:underline}.chips-more>summary:focus-visible .chip-more{outline-offset:1px;outline:3px solid #ffb1158c}@media (max-width:600px){.pfacts{grid-template-columns:1fr;gap:2px}.pfacts dd{margin-bottom:8px}}.last-weight{margin:2px 0 8px;font-size:13px}.macro-rows{gap:4px;margin-top:10px;display:grid}.macro-row{border-bottom:1px solid #f1f1f1;grid-template-columns:130px 150px minmax(0,1fr) 150px;align-items:center;gap:16px;padding:10px 0;display:grid}.macro-row:last-child{border-bottom:none}.macro-name{font-size:15px;font-weight:650}.macro-num{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:28px;font-weight:700}.macro-unit{color:var(--muted);font-size:13px}.macro-bar{background:#f0f0f0;border-radius:6px;height:12px;position:relative}.macro-band{background:var(--accent-soft);border-left:2px solid var(--accent);border-right:2px solid var(--accent);position:absolute;top:0;bottom:0}.macro-marker{background:var(--ink);border-radius:2px;width:4px;height:20px;margin-left:-2px;position:absolute;top:-4px;box-shadow:0 0 0 2px #fff}.macro-goal{margin-top:4px}.macro-meta{text-align:right;flex-direction:column;align-items:flex-end;gap:2px;display:flex}.macro-status{font-size:13px;font-weight:650}.st-within,.st-below{color:var(--accent-ink)}.st-above{color:var(--danger)}.st-none{color:var(--muted);font-weight:500}@media (max-width:760px){.macro-row{grid-template-columns:1fr auto;grid-template-areas:"name avg""bar bar""meta meta";gap:6px 10px}.macro-name{grid-area:name}.macro-avg{text-align:right;grid-area:avg}.macro-bar-wrap{grid-area:bar}.macro-meta{flex-direction:row;grid-area:meta;justify-content:space-between;align-items:baseline}}
