:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:var(--lightningcss-light,#f5f0e1)var(--lightningcss-dark,#14160f);--bg-glow:var(--lightningcss-light,#d9622e24)var(--lightningcss-dark,#e8783f24);--bg-glow-2:var(--lightningcss-light,#1b8c641a)var(--lightningcss-dark,#3fd39a12);--surface:var(--lightningcss-light,#fffdf8)var(--lightningcss-dark,#1d2016);--surface-2:var(--lightningcss-light,#f3ecdb)var(--lightningcss-dark,#262a1d);--surface-3:var(--lightningcss-light,#e9e0c9)var(--lightningcss-dark,#313627);--ink:var(--lightningcss-light,#1f2a1c)var(--lightningcss-dark,#f3efe0);--ink-2:var(--lightningcss-light,#4f5946)var(--lightningcss-dark,#c9c5ae);--muted:var(--lightningcss-light,#7d826e)var(--lightningcss-dark,#9c9a86);--border:var(--lightningcss-light,#1f2a1c1a)var(--lightningcss-dark,#ffffff14);--border-strong:var(--lightningcss-light,#1f2a1c33)var(--lightningcss-dark,#ffffff2e);--accent:var(--lightningcss-light,#c8521c)var(--lightningcss-dark,#ec7e44);--accent-strong:var(--lightningcss-light,#a8410f)var(--lightningcss-dark,#f39462);--accent-ink:var(--lightningcss-light,#fffdf8)var(--lightningcss-dark,#1a1408);--accent-wash:var(--lightningcss-light,#c8521c1a)var(--lightningcss-dark,#ec7e4426);--protein:var(--lightningcss-light,#1b8c64)var(--lightningcss-dark,#4fd1a0);--protein-wash:var(--lightningcss-light,#1b8c641f)var(--lightningcss-dark,#4fd1a024);--warning:var(--lightningcss-light,#9a6400)var(--lightningcss-dark,#f2b53f);--critical:var(--lightningcss-light,#b6362f)var(--lightningcss-dark,#f07a72);--shadow-near:var(--lightningcss-light,#1f2a1c0f)var(--lightningcss-dark,#0006);--shadow-far:var(--lightningcss-light,#1f2a1c59)var(--lightningcss-dark,#000000b3);--shadow-sm:0 1px 2px var(--shadow-near);--shadow-md:0 1px 2px var(--shadow-near), 0 14px 34px -18px var(--shadow-far);--radius-xl:22px;--radius-lg:16px;--radius-sm:12px;--font-display:"Fraunces", Georgia, serif;--font-body:"Karla", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Consolas, monospace}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{background:radial-gradient(60rem 30rem at 0% -10%, var(--bg-glow), transparent 60%), radial-gradient(50rem 30rem at 110% 0%, var(--bg-glow-2), transparent 55%), var(--bg);min-height:100vh;color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;background-attachment:fixed;margin:0;font-size:16px;line-height:1.5}.shell{max-width:560px;padding:calc(18px + env(safe-area-inset-top)) 16px calc(28px + env(safe-area-inset-bottom));margin:0 auto}h1,h2{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:600;line-height:1.15}.masthead{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.brand{align-items:center;gap:12px;min-width:0;display:flex}.logo{flex:none}.logo rect{fill:var(--accent)}.logo path{fill:none;stroke:var(--accent-ink);stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round}.masthead h1{font-size:26px}.masthead p{color:var(--ink-2);margin:1px 0 0;font-size:13.5px}.masthead-side{flex-direction:column;flex:none;align-items:flex-end;gap:8px;display:flex}.theme-toggle span{min-height:30px;padding:0 8px}.theme-toggle svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.theme-toggle .icon-fill{fill:currentColor;stroke:none}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.target-chip{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:999px;flex-direction:column;flex:none;align-items:flex-end;padding:6px 14px;display:flex}.chip-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:10.5px;font-weight:700}.chip-value{font-family:var(--font-display);color:var(--accent);font-variant-numeric:tabular-nums;font-size:17px;font-weight:700;line-height:1.1}.layout{flex-direction:column;gap:14px;display:flex}.column{flex-direction:column;gap:14px;min-width:0;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);min-width:0;padding:18px 16px 20px;position:relative}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:16px;display:flex}.card h2{font-size:21px}.eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:0 0 2px;font-size:11px;font-weight:700}fieldset{border:none;min-width:0;margin:0;padding:0}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px;display:grid}.span-2{grid-column:1/-1}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field label,.field-label{color:var(--ink-2);font-size:13px;font-weight:700}.input-wrap{flex:1 1 0;min-width:0;position:relative}.suffix{color:var(--muted);pointer-events:none;font-size:13.5px;font-weight:600;position:absolute;top:50%;right:12px;transform:translateY(-50%)}input[type=number],input[type=text],input[type=search],input[type=email],input[type=password],select{width:100%;min-width:0;min-height:46px;font:inherit;color:var(--ink);background:var(--surface-2);border-radius:var(--radius-sm);border:1.5px solid #0000;padding:10px 12px;font-weight:600;transition:border-color .15s,background-color .15s,box-shadow .15s}.input-wrap input{font-family:var(--font-mono);font-variant-numeric:tabular-nums;padding-right:52px}input[type=number]{appearance:textfield}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}select{appearance:none;cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 19px),calc(100% - 14px);background-repeat:no-repeat;background-size:5px 5px;padding-right:38px}input[type=number]:hover,input[type=text]:hover,input[type=search]:hover,input[type=email]:hover,input[type=password]:hover,select:hover{background-color:var(--surface-3)}input:focus-visible,select:focus-visible{border-color:var(--accent);background-color:var(--surface);box-shadow:0 0 0 4px var(--accent-wash);outline:none}input[aria-invalid=true]{border-color:var(--critical);background-color:color-mix(in srgb, var(--critical) 8%, var(--surface))}.pair{gap:8px;display:flex}.segmented{background:var(--surface-2);border-radius:999px;padding:3px;display:inline-flex}.segmented label{display:flex;position:relative}.segmented input,.goal-option input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.segmented span{min-height:34px;color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;padding:0 13px;font-size:13.5px;font-weight:700;transition:background-color .15s,color .15s;display:flex}.segmented input:checked+span{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-sm), 0 0 0 1px var(--border)}.segmented input:focus-visible+span,.goal-option input:focus-visible+.goal-tile{outline:2px solid var(--accent);outline-offset:2px}.goal-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.goal-option{display:flex;position:relative}.goal-tile{border:1.5px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-2);color:var(--ink-2);text-align:center;flex-direction:column;flex:1;align-items:center;gap:6px;padding:12px 6px 10px;font-size:13.5px;font-weight:700;transition:border-color .15s,background-color .15s,color .15s,transform .15s;display:flex}.goal-tile svg{background:var(--surface);fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;border-radius:50%;width:26px;height:26px;padding:4px}.goal-option:hover .goal-tile{background:var(--surface-3)}.goal-option input:checked+.goal-tile{border-color:var(--accent);background:var(--accent-wash);color:var(--accent-strong)}.goal-option input:checked+.goal-tile svg{background:var(--accent);stroke:var(--accent-ink)}.lose-fields{margin-top:14px}.target-card h2{margin-bottom:14px}.prompt{border:1.5px dashed var(--border-strong);border-radius:var(--radius-lg);color:var(--ink-2);align-items:center;gap:12px;margin:0;padding:18px 16px;display:flex}.prompt:before{content:"";background:radial-gradient(circle at center, var(--surface) 0 38%, transparent 39%), conic-gradient(var(--accent) 0 30%, var(--protein) 30% 55%, var(--surface-3) 55% 100%);border-radius:50%;flex:none;width:34px;height:34px}.prompt.error{color:var(--critical);border-color:color-mix(in srgb, var(--critical) 45%, transparent);background:color-mix(in srgb, var(--critical) 6%, transparent);font-weight:700}.prompt.error:before{background:var(--critical);width:20px;height:20px;-webkit-mask:radial-gradient(circle,#000 0 26%,#0000 27%) 50%/100% 100%;mask:radial-gradient(circle,#000 0 26%,#0000 27%) 50%/100% 100%}.ledger{background:var(--surface-2);border-radius:var(--radius-lg);padding:4px 14px}.step{grid-template-columns:22px minmax(0,1fr) auto;align-items:baseline;gap:2px 8px;padding:11px 0;display:grid}.step+.step{border-top:1px dashed var(--border-strong)}.step .op{font-family:var(--font-mono);color:var(--muted);font-weight:600}.step .label{min-width:0;font-weight:700}.step .value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-size:15px;font-weight:600}.step .formula{font-family:var(--font-mono);color:var(--muted);overflow-wrap:anywhere;grid-column:2/-1;font-size:12px}.result{border-radius:var(--radius-lg);background:linear-gradient(135deg, var(--accent-wash), transparent 70%), var(--surface);border:1.5px solid color-mix(in srgb, var(--accent) 35%, transparent);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;margin-top:14px;padding:16px;display:grid}.result-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:700;display:block}.calories{font-family:var(--font-display);color:var(--accent);font-variant-numeric:tabular-nums;font-size:44px;font-weight:700;line-height:1}.calories small{font-family:var(--font-body);color:var(--ink-2);font-size:15px;font-weight:700}.protein{border-radius:var(--radius-sm);background:var(--protein-wash);color:var(--protein);flex-direction:column;align-items:center;padding:8px 14px;display:flex}.protein strong{font-family:var(--font-display);font-size:24px;line-height:1.05}.protein span{font-size:12px;font-weight:700}.protein-note{font-family:var(--font-mono);color:var(--muted);margin:8px 2px 0;font-size:12px}.warning{border-radius:var(--radius-sm);color:var(--ink);background:color-mix(in srgb, var(--warning) 13%, transparent);border:1px solid color-mix(in srgb, var(--warning) 40%, transparent);margin:12px 0 0;padding:11px 14px;font-size:14px;line-height:1.45}.footnote{text-align:center;color:var(--muted);margin-top:18px;font-size:12px}.tabbar{z-index:10;padding:6px 16px calc(6px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);justify-content:center;gap:8px;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{max-width:180px;min-height:52px;font:inherit;color:var(--muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1 1 0;align-items:center;gap:2px;padding:6px 0 4px;font-size:12.5px;font-weight:700;display:flex}.tab svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.tab[aria-current=page]{color:var(--accent)}.tab[aria-current=page] svg{stroke-width:2.3px}.tab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.shell{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.icon-button{width:40px;height:40px;color:var(--ink-2);background:var(--surface-2);cursor:pointer;border:none;border-radius:50%;flex:none;place-items:center;padding:0;transition:background-color .15s,color .15s;display:grid}.icon-button svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.icon-button:hover{background:var(--surface-3);color:var(--ink)}.icon-button:focus-visible,.link-button:focus-visible,.add-button:focus-visible,.primary-button:focus-visible,.food-row:focus-visible,.day:focus-visible,.stepper button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.link-button{font:inherit;color:var(--accent);text-underline-offset:3px;cursor:pointer;background:0 0;border:none;padding:0;font-weight:700;text-decoration:underline}.primary-button{width:100%;min-height:50px;font:inherit;color:var(--accent-ink);background:var(--accent);cursor:pointer;border:none;border-radius:999px;padding:12px 18px;font-size:16px;font-weight:700;transition:background-color .15s,transform .1s}.primary-button:hover{background:var(--accent-strong)}.primary-button:active{transform:scale(.98)}.badge{color:var(--accent);background:var(--accent-wash);border-radius:999px;flex:none;padding:3px 10px;font-size:12px;font-weight:700}.week-card{padding-bottom:14px}.week-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px;display:flex}.week-title{text-align:center;min-width:0}.week-title h2{font-size:18px}.week-title .link-button{font-size:13px}.day-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.day{font:inherit;color:var(--ink);background:var(--surface-2);cursor:pointer;border:1.5px solid #0000;border-radius:14px;flex-direction:column;align-items:center;gap:1px;padding:8px 0 7px;transition:background-color .15s,color .15s,border-color .15s;display:flex}.day:hover{background:var(--surface-3)}.day-name{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11.5px;font-weight:700}.day-number{font-family:var(--font-display);font-size:19px;font-weight:600;line-height:1.2}.day-meter{background:var(--surface-3);border-radius:999px;width:60%;height:4px;margin-top:3px;overflow:hidden}.day-meter span{background:var(--accent);border-radius:inherit;height:100%;display:block}.day.is-today{border-color:var(--accent)}.day.is-selected{color:var(--accent-ink);background:var(--accent)}.day.is-selected .day-name{color:inherit;opacity:.85}.day.is-selected .day-meter{background:color-mix(in srgb, var(--accent-ink) 30%, transparent)}.day.is-selected .day-meter span{background:var(--accent-ink)}.week-layout{flex-direction:column;gap:14px;margin-top:14px;display:flex}.summary-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.summary-head h2{font-size:22px}.summary-total{margin:0;font-size:17px}.summary-total strong{font-family:var(--font-display);font-size:26px}.summary-note{color:var(--ink-2);margin:10px 0 0;font-size:14px}.meter+.meter{margin-top:14px}.meter-label{color:var(--ink-2);justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px;font-size:14px;font-weight:700;display:flex}.meter-label strong{font-family:var(--font-display);color:var(--ink);font-size:20px}.bar{background:var(--surface-2);border-radius:999px;height:12px;overflow:hidden}.bar span{border-radius:inherit;background:var(--accent);height:100%;transition:width .3s;display:block}.meter-protein .bar span{background:var(--protein)}.meter-note{color:var(--muted);text-align:right;margin:4px 0 0;font-size:13px;font-weight:600}.meter.is-over .bar span{background:var(--warning)}.meter.is-over .meter-note{color:var(--warning)}.meals{flex-direction:column;gap:14px;display:flex}.meal{padding-bottom:14px}.meal-head{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.meal-head h3{font-family:var(--font-display);margin:0;font-size:19px;font-weight:600}.meal-total{font-family:var(--font-mono);color:var(--ink-2);font-size:13px;font-weight:600}.meal-empty{color:var(--muted);margin:0 0 10px;font-size:14px}.entries{margin:0 0 10px;padding:0;list-style:none}.entry{border-radius:var(--radius-sm);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;margin:0 -6px;padding:9px 6px;display:grid}.entry+.entry{border-top:1px solid var(--border)}.entry.is-new{animation:1.2s ease-out flash}@keyframes flash{0%{background:var(--accent-wash)}to{background:0 0}}.entry-main{flex-direction:column;min-width:0;display:flex}.entry-name{overflow-wrap:anywhere;font-weight:700}.entry-meta{color:var(--muted);font-size:13px}.stepper{background:var(--surface-2);border-radius:999px;align-items:center;display:flex}.stepper button{width:34px;height:34px;font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:50%;padding:0;font-size:18px;font-weight:700}.stepper button:hover:not(:disabled){background:var(--surface-3)}.stepper button:disabled{color:var(--muted);opacity:.4;cursor:default}.stepper span{text-align:center;min-width:26px;font-family:var(--font-mono);font-weight:600}.entry .remove{width:34px;height:34px;color:var(--muted);background:0 0}.entry .remove:hover{color:var(--critical);background:color-mix(in srgb, var(--critical) 10%, transparent)}.add-button{width:100%;min-height:44px;font:inherit;color:var(--accent);border:1.5px dashed color-mix(in srgb, var(--accent) 45%, transparent);border-radius:var(--radius-sm);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:6px;font-weight:700;transition:background-color .15s;display:flex}.add-button:hover{background:var(--accent-wash)}.add-button svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;width:18px;height:18px}.sheet{width:100%;max-width:100%;max-height:88dvh;color:var(--ink);background:var(--surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-md);border:none;margin:auto 0 0;padding:0}.sheet[open]{flex-direction:column;animation:.22s ease-out rise;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}.sheet::backdrop{background:#0a0c0873}.sheet-head{align-items:center;gap:10px;padding:14px 16px 10px;display:flex}.sheet-head h2{flex:1;font-size:20px}.sheet-step{min-height:0;padding:0 16px calc(18px + env(safe-area-inset-bottom));flex-direction:column;gap:12px;display:flex;overflow-y:auto}.sheet-step[hidden]{display:none}.sheet-intro{color:var(--ink-2);margin:0;font-size:14px}.food-list{flex-direction:column;display:flex}.group-name{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:14px 0 4px;font-size:11.5px;font-weight:700}.food-row{font:inherit;text-align:left;color:var(--ink);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:1px;padding:10px 8px;display:flex}.food-row:hover{background:var(--surface-2)}.food-name{font-weight:700}.food-meta{color:var(--muted);font-size:13px}.food-row.new-food{border:1.5px dashed var(--border-strong);margin-top:4px}.food-row.new-food .food-name{color:var(--accent)}.no-match{color:var(--ink-2);margin:8px 0}.chosen-name{font-family:var(--font-display);margin:0;font-size:24px;font-weight:600}.portion-hint{color:var(--ink-2);margin:-6px 0 0;font-size:14px}.amount-options{flex-wrap:wrap;gap:8px;display:flex}.amount-option{display:flex;position:relative}.amount-option input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.amount-option span{min-height:42px;color:var(--ink-2);background:var(--surface-2);border:1.5px solid #0000;border-radius:999px;align-items:center;padding:0 14px;font-weight:700;display:flex}.amount-option input:checked+span{color:var(--accent-strong);background:var(--accent-wash);border-color:var(--accent)}.amount-option input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.amount-total{font-family:var(--font-display);color:var(--accent);margin:4px 0;font-size:22px;font-weight:600}@media (width>=900px){.tabbar{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:none;border-radius:999px;gap:4px;margin-bottom:20px;padding:4px;display:inline-flex;position:static}.tab{border-radius:999px;flex-direction:row;gap:8px;min-height:40px;padding:0 18px;font-size:14.5px}.tab svg{width:20px;height:20px}.tab[aria-current=page]{color:var(--accent-ink);background:var(--accent)}.shell{padding-bottom:40px}.week-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);align-items:start;gap:20px;margin-top:20px;display:grid}.day-summary{position:sticky;top:24px}.sheet{border-radius:var(--radius-xl);width:min(480px,100% - 32px);max-height:80vh;margin:auto}}.hall-picker{flex-wrap:wrap;gap:6px;margin-bottom:4px;display:flex}.hall{min-height:36px;font:inherit;color:var(--ink-2);background:var(--surface-2);cursor:pointer;border:1.5px solid #0000;border-radius:999px;padding:0 14px;font-size:14px;font-weight:700}.hall:hover{background:var(--surface-3)}.hall[aria-pressed=true]{color:var(--accent-strong);background:var(--accent-wash);border-color:var(--accent)}.hall:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.menu-status p{color:var(--ink-2);margin:8px 0 0;font-size:13.5px}.menu-status.error p:first-child{color:var(--critical);font-weight:700}.match-prompt{border-radius:var(--radius-sm);background:var(--accent-wash);margin:0;padding:10px 12px;font-size:14px;font-weight:600}.food-row.unmatched .food-meta{color:var(--accent);font-weight:600}.estimate-note{color:var(--ink-2);margin:-6px 0 0;font-size:14px}.estimate-note .link-button{margin-left:4px;font-size:14px}.account-card{margin-bottom:14px}.account-intro,.account-email{color:var(--ink-2);margin:0 0 12px}.account-email strong{color:var(--ink);overflow-wrap:anywhere}.account-form .form-grid,.account-form .prompt{margin-bottom:12px}.account-note{color:var(--ink-2);margin:0 0 12px;font-size:13.5px}.signed-in .account-note{margin:10px 0 0}.button-row{flex-wrap:wrap;gap:10px;margin-bottom:12px;display:flex}.button-row .primary-button,.button-row .secondary-button{white-space:nowrap;flex:140px;width:auto;padding-inline:12px;font-size:15px}.secondary-button{min-height:50px;font:inherit;color:var(--accent);border:1.5px solid var(--accent);cursor:pointer;background:0 0;border-radius:999px;padding:12px 18px;font-size:16px;font-weight:700;transition:background-color .15s}.secondary-button:hover{background:var(--accent-wash)}.secondary-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.primary-button:disabled,.secondary-button:disabled{opacity:.55;cursor:progress}.sync-status{color:var(--ink-2);align-items:center;gap:8px;margin:0 0 14px;font-size:14px;font-weight:600;display:flex}.sync-status:before{content:"";background:var(--muted);border-radius:50%;flex:none;width:9px;height:9px}.sync-status.is-synced:before{background:var(--protein)}.sync-status.is-syncing:before{background:var(--accent);animation:1s ease-in-out infinite alternate pulse}.sync-status.is-offline:before{background:var(--warning)}.sync-status.is-error{color:var(--critical)}.sync-status.is-error:before{background:var(--critical)}@keyframes pulse{to{opacity:.3}}.google-button{width:100%;min-height:50px;font:inherit;color:var(--ink);background:var(--surface);border:1.5px solid var(--border-strong);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:12px 18px;font-size:15.5px;font-weight:700;transition:background-color .15s;display:flex}.google-button:hover{background:var(--surface-2)}.google-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.google-button:disabled{opacity:.55;cursor:progress}.google-button svg{width:20px;height:20px}.divider{color:var(--muted);align-items:center;gap:12px;margin:16px 0;font-size:13px;font-weight:600;display:flex}.divider:before,.divider:after{content:"";background:var(--border-strong);flex:1;height:1px}.password-checklist{color:var(--muted);flex-wrap:wrap;gap:4px 14px;margin:6px 0 0;padding:0;font-size:13px;font-weight:600;list-style:none;display:flex}.password-checklist li:before{content:"○ "}.password-checklist li.is-met{color:var(--protein)}.password-checklist li.is-met:before{content:"✓ "}.show-password{color:var(--ink-2);cursor:pointer;align-items:center;gap:8px;margin:12px 0;font-size:14px;font-weight:600;display:flex}.show-password input{width:18px;height:18px;accent-color:var(--accent);margin:0}.link-card{text-align:center;max-width:440px;margin:8px auto 0;padding:32px 24px 28px}.link-icon{width:72px;height:72px;color:var(--accent);background:var(--accent-wash);border-radius:50%;place-items:center;margin:0 auto 18px;display:grid}.link-icon svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:36px;height:36px}.link-icon[data-kind=done]{color:var(--protein);background:var(--protein-wash)}.link-icon[data-kind=problem]{color:var(--warning);background:color-mix(in srgb, var(--warning) 14%, transparent)}.link-icon[data-kind=working] svg{animation:1s ease-in-out infinite alternate pulse}.link-card h2{margin-bottom:8px;font-size:26px}.link-message{max-width:34ch;color:var(--ink-2);overflow-wrap:anywhere;margin:0 auto 22px}.link-card .account-form{text-align:left}.link-card .primary-button{margin-top:4px}.verify-banner{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--warning) 13%, transparent);border:1px solid color-mix(in srgb, var(--warning) 40%, transparent);margin:0 0 14px;padding:10px 12px;font-size:14px}.verify-banner p{margin:0 0 6px}.methods{border-top:1px solid var(--border);margin:0 0 16px;padding:14px 0 0}.methods-title{color:var(--ink-2);margin:0 0 6px;font-size:13px;font-weight:700}.method-list{margin:0 0 12px;padding:0;list-style:none}.method-list li{justify-content:space-between;gap:10px;padding:6px 0;font-weight:600;display:flex}.method-state{color:var(--muted);font-size:13.5px}.method-state.is-on{color:var(--protein)}.methods .secondary-button{width:100%;margin-bottom:10px}#add-password-form{margin-bottom:10px}#add-password-form .field{margin-bottom:12px}@media (width<=360px){.masthead p{display:none}.calories{font-size:38px}}@media (width>=900px){.shell{max-width:1040px;padding-top:36px}.masthead{margin-bottom:26px}.masthead h1{font-size:32px}.layout{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}.column{gap:20px}.card{padding:24px 24px 26px}.target-card{position:sticky;top:24px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
