.auth-feedback p:empty{margin:0;padding:0}.auth-card button[aria-disabled=true]{cursor:wait;opacity:.65}.auth-card{grid-column:1/-1}.auth-form{gap:.65rem;max-width:440px;display:grid}.auth-form label{font-weight:650}.auth-form input,.auth-form select{width:100%;min-width:0;min-height:48px;font:inherit;border:1px solid var(--line-strong);border-radius:var(--radius);color:var(--ink);background:#ffffff73;padding:.75rem;font-size:1rem}.auth-form .button{margin-top:.5rem}.text-button{color:var(--ink);text-underline-offset:4px;background:0 0;border:none;min-height:44px;padding:.75rem 0;text-decoration:underline}.small-print{max-width:65ch;font-size:.85rem}.account-email{overflow-wrap:anywhere}.auth-card .form-error{color:var(--danger);margin-top:1rem}.form-message{border-radius:var(--radius);background:var(--tint);margin-top:1rem;padding:1rem}.nutrition-form{gap:.65rem;max-width:680px;margin-top:1.5rem;display:grid}.nutrition-form label{font-weight:650;display:block}.nutrition-form input:not([type=checkbox]),.nutrition-form select{font:inherit;border:1px solid var(--line-strong);border-radius:var(--radius);width:100%;min-width:0;min-height:48px;color:var(--ink);background:#ffffff73;padding:.7rem;font-size:1rem}.nutrition-form input[type=checkbox]{vertical-align:middle;width:1.4rem;height:1.4rem;accent-color:var(--accent);margin-right:.65rem}.nutrition-form fieldset{border:1px solid var(--line);border-radius:var(--radius);min-width:0;margin:1rem 0;padding:1rem}.nutrition-form legend{font-weight:700}.nutrition-input-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.nutrition-result{background:var(--tint);border-radius:var(--radius);overflow-wrap:anywhere;margin:1.5rem 0;padding:1.25rem}.nutrition-result dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.nutrition-result dt{font-size:.85rem}.nutrition-result dd{font-family:var(--display);font-stretch:var(--condensed);color:var(--accent-text);margin:.2rem 0 0;font-size:2rem;font-weight:800;line-height:1}@media (width<=420px){.nutrition-input-grid{grid-template-columns:1fr}}.barcode-camera-entry{gap:.75rem;max-width:680px;margin:1rem 0;display:grid}.barcode-camera-button{white-space:normal;gap:.75rem;width:100%;min-height:60px}.barcode-camera-button svg{fill:none;stroke:currentColor;stroke-width:2px;flex:0 0 28px;width:28px;height:28px}.barcode-camera-entry p{margin:0}.scanner{max-width:680px;margin-top:1rem}.scanner-view{aspect-ratio:4/3;background:var(--ink);border-radius:var(--radius);position:relative;overflow:hidden}.scanner-video{object-fit:cover;width:100%;height:100%;display:block}.scanner-frame{border:3px solid var(--on-accent);border-radius:var(--radius);pointer-events:none;position:absolute;inset:25% 10%}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-vietnamese-wdth-normal-rJmnGBSt.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-ext-wdth-normal-7khWdh9v.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-wdth-normal-DY7AcnAa.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{--chalk:#e8eaec;--graphite:#1b1f24;--blue:#1f3bd1;--bg:var(--chalk);--ink:var(--graphite);--muted:#1b1f24b8;--line:#1b1f2424;--line-strong:#1b1f2499;--tint:#1b1f240d;--accent:var(--blue);--on-accent:var(--chalk);--accent-text:var(--blue);--danger:#a3221b;--radius:6px;--condensed:72%;--display:"Archivo Variable", "Arial Narrow", sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-variant-numeric:tabular-nums;font-family:Archivo Variable,system-ui,sans-serif;font-stretch:100%;line-height:1.55}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:3px}button{font:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.6}:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.skip-link{background:var(--ink);color:var(--bg);z-index:5;padding:.75rem 1rem;position:absolute;top:-6rem;left:1rem}.skip-link:focus{top:1rem}.site-header{justify-content:space-between;align-items:center;gap:1rem;max-width:1080px;margin:auto;padding:1.25rem 1.5rem;display:flex}.brand{font-family:var(--display);font-stretch:var(--condensed);letter-spacing:-.01em;align-items:center;gap:.6rem;font-size:1.35rem;font-weight:800;text-decoration:none;display:flex}.brand-mark{background:var(--ink);width:34px;height:34px;color:var(--bg);border-radius:50%;place-items:center;font-size:1.1rem;display:grid}.status,.badge{color:var(--muted);border:1px solid var(--line);border-radius:2rem;padding:.3rem .75rem;font-size:.78rem;font-weight:500}.status{text-align:right;max-width:50%}.primary-nav{border-bottom:2px solid var(--ink);gap:.25rem;max-width:1080px;margin:0 auto;padding:0 1.5rem;display:flex}.primary-nav a{border-radius:var(--radius) var(--radius) 0 0;min-width:70px;min-height:48px;color:var(--muted);justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1rem;font-size:.95rem;font-weight:600;text-decoration:none;display:flex}.primary-nav a:hover{color:var(--ink);background:var(--tint)}.primary-nav a[aria-current=page]{background:var(--accent);color:var(--on-accent)}.nav-symbol{font-size:1.1rem}main{max-width:1080px;min-height:60vh;margin:auto;padding:0 1.5rem}main:focus{outline:none}.page-heading{max-width:760px;padding:3rem 0 2rem}h1,h2{font-family:var(--display);font-stretch:var(--condensed);font-weight:800}h1{letter-spacing:-.02em;margin:0 0 1rem;font-size:clamp(2.75rem,9vw,5.5rem);line-height:.95}.intro{color:var(--muted);max-width:58ch;font-size:1.1rem}h2{margin:0 0 .75rem;font-size:1.75rem;line-height:1.1}h3{margin:1rem 0 .5rem;font-size:1.05rem;font-weight:700;line-height:1.4}p{margin:0 0 1rem}.button,.pwa-notice button{background:var(--accent);color:var(--on-accent);border:2px solid var(--accent);border-radius:var(--radius);justify-content:center;align-items:center;min-height:48px;padding:.8rem 1.3rem;font-weight:650;text-decoration:none;display:inline-flex}.button:hover,.pwa-notice button:hover{background:var(--ink);border-color:var(--ink)}.button.button-secondary,.pwa-notice .secondary{color:var(--ink);border-color:var(--ink);background:0 0}.button.button-secondary:hover,.pwa-notice .secondary:hover{background:var(--tint)}.setup-card,.content-card{border-top:2px solid var(--ink);padding:1.5rem 0 2rem}.content-card+.content-card,.content-card+.setup-card,.setup-card+.content-card{margin-top:1rem}.setup-card{grid-template-columns:1.4fr 1fr;gap:1rem 2.5rem;display:grid}.setup-card p,.feature-card p,.content-card p{color:var(--muted);max-width:65ch}.empty-metric{border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;justify-content:center;gap:.4rem;padding:1.25rem;display:flex}.empty-metric strong{font-family:var(--display);font-stretch:var(--condensed);color:var(--accent-text);font-size:1.5rem;font-weight:800;line-height:1.1}.empty-metric span{color:var(--muted);font-size:.9rem}.notice{border-top:1px solid var(--line);grid-column:1/-1;margin-bottom:0;padding-top:1rem;font-size:.9rem}.roadmap{margin-top:2.5rem}.roadmap>h2{margin-bottom:1rem}.feature-grid,.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.feature-card{border:1px solid var(--line-strong);border-radius:var(--radius);min-width:0;padding:1.25rem 1.5rem;text-decoration:none;display:block}.feature-card:hover{background:var(--tint);border-color:var(--ink)}.feature-card p{margin:0}.empty-state{max-width:760px;padding:2rem 0}.empty-symbol{margin-bottom:1rem;font-size:2rem;display:block}.empty-state h2{margin-top:1.3rem}.text-link{text-underline-offset:4px;align-items:center;min-height:44px;display:inline-flex}.pwa-notice{border:1px solid var(--line-strong);border-radius:var(--radius);margin-top:1.5rem;padding:1.2rem}.notice-actions{flex-wrap:wrap;gap:.75rem;display:flex}footer{border-top:1px solid var(--line);max-width:1080px;color:var(--muted);margin:3rem auto 0;padding:1.5rem;font-size:.8rem}@media (width<=700px){.site-header,main{padding-left:1rem;padding-right:1rem}.site-header{padding-top:1rem;padding-bottom:1rem}.page-heading{padding:1.5rem 0 1rem}.setup-card,.feature-grid,.settings-grid{grid-template-columns:1fr}.status{font-size:.7rem}.primary-nav{z-index:3;background:var(--ink);padding:.4rem .4rem calc(.4rem + env(safe-area-inset-bottom));border:0;grid-template-columns:repeat(5,minmax(0,1fr));gap:.25rem;display:grid;position:fixed;bottom:0;left:0;right:0}.primary-nav a{border-radius:var(--radius);color:#e8eaecbf;flex-direction:column;gap:0;min-width:0;min-height:54px;padding:.2rem;font-size:.72rem}.primary-nav a:hover{color:var(--bg);background:#e8eaec14}.nav-symbol{font-size:1.2rem}footer{padding-bottom:calc(7rem + env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:no-preference){a,button{transition:background-color .15s,color .15s}}.home-grid{grid-template-columns:1.15fr 1fr 1fr;gap:1rem;margin-bottom:2.5rem;display:grid}.tile-today{grid-row:span 2;min-width:0}.tile,.tile-today .content-card{border:1px solid var(--line);background:#ffffff8c;border-radius:10px;flex-direction:column;min-width:0;height:100%;padding:1.4rem 1.5rem;text-decoration:none;display:flex}.tile:hover{border-color:var(--line-strong)}.tile-symbol{color:var(--blue);margin-bottom:1.25rem;font-size:1.3rem;line-height:1}.tile h2{margin-bottom:.4rem;font-size:1.6rem}.tile p{color:var(--muted);font-size:.95rem}.tile-status{border-top:1px solid var(--line);color:var(--muted);margin-top:auto;padding-top:.75rem;font-size:.8rem}.tile-today .content-card h2{font-size:2.25rem}.tile-today .nutrition-result{background:0 0;padding:0}.tile-today .nutrition-result dl{grid-template-columns:1fr}.tile-today .nutrition-result dd{font-size:1.35rem}.tile-today .content-card>:last-child{margin-top:auto}@media (width<=900px){.home-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tile-today{grid-area:auto/1/auto/-1}}@media (width<=520px){.home-grid{grid-template-columns:1fr}}
