:root{--walk-in: #0f2a2e;--liner: #e3e7ea;--ticket: #f3efe3;--probe: #1a9b8e;--zinc: #8b9aa0;--ink: #1a2226;--rail: 420px;--font-ui: "Atkinson Hyperlegible", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-ui);font-size:16px;line-height:1.45;color:var(--liner);background:radial-gradient(ellipse 100% 70% at 80% 0%,rgba(26,155,142,.16),transparent 50%),linear-gradient(165deg,#0c2226 0%,var(--walk-in) 45%,#0a1c20 100%)}.app-shell{max-width:var(--rail);min-height:100dvh;margin:0 auto;display:flex;flex-direction:column;padding:env(safe-area-inset-top) 0 calc(72px + env(safe-area-inset-bottom));animation:shell-in .42s ease-out}@keyframes shell-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.app-header{padding:1rem 1rem .5rem;border-bottom:1px solid rgba(227,231,234,.12)}.wordmark{margin:0;font-size:1.25rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ticket)}.subtitle{margin:.25rem 0 0;font-size:.8125rem;color:#e3e7eaa6}.app-main{flex:1;padding:1rem;overflow-y:auto}.tab-bar{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:min(100%,var(--rail));display:grid;grid-template-columns:repeat(4,1fr);gap:.25rem;padding:.5rem .75rem calc(.5rem + env(safe-area-inset-bottom));background:#0f2a2ef0;border-top:1px solid rgba(227,231,234,.14);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.tab-btn{border:none;background:transparent;color:#e3e7ea8c;font:inherit;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;padding:.45rem .15rem;cursor:pointer}.tab-btn[aria-current=page]{color:var(--ticket);background:#1a9b8e33}.tab-btn:focus-visible{outline:2px solid var(--probe);outline-offset:2px}.panel{display:flex;flex-direction:column;gap:1rem}.dash-head h2,.logger-controls h2,.onboard-form h2,.panel>h2{margin:0 0 .5rem;font-size:.9375rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.dash-day{margin:0 0 .75rem;font-family:var(--font-mono);font-size:.75rem;color:var(--zinc)}.macro-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.macro-cell{text-align:center;padding:.5rem .25rem;background:#0f2a2ea6;border:1px solid rgba(227,231,234,.08)}.macro-cell .label{display:block;font-size:.625rem;letter-spacing:.06em;text-transform:uppercase;color:#e3e7ea8c}.macro-cell .value{display:block;margin-top:.15rem;font-family:var(--font-mono);font-size:.9375rem;font-weight:600;color:var(--ticket)}.macro-cell .target{display:block;margin-top:.1rem;font-family:var(--font-mono);font-size:.6875rem;color:#e3e7ea73}.delta-over .value{color:#d4a27f}.delta-under .value{color:var(--probe)}.ticket{position:relative;background:var(--ticket);color:var(--ink);padding:.95rem .95rem .85rem;box-shadow:0 1px #1c242814,0 10px 28px #00000038;animation:ticket-in .38s cubic-bezier(.2,.8,.2,1)}@keyframes ticket-in{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}.ticket:before,.ticket:after{content:"";position:absolute;left:0;right:0;height:6px;background:radial-gradient(circle at 6px 3px,var(--walk-in) 3px,transparent 3.5px) repeat-x;background-size:12px 6px;opacity:.4}.ticket:before{top:-3px}.ticket:after{bottom:-3px}.ticket-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.65rem;padding-bottom:.45rem;border-bottom:1px dashed rgba(28,36,40,.28)}.ticket-head h3{margin:0;font-size:.8125rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.ticket-stamp{font-family:var(--font-mono);font-size:.6875rem;color:#1c242880}.ticket-lines{list-style:none;margin:0;padding:0}.ticket-line{display:grid;grid-template-columns:1fr auto;gap:.5rem;align-items:center;padding:.35rem 0;font-size:.875rem;border-bottom:1px dotted rgba(28,36,40,.14)}.ticket-line:last-child{border-bottom:none}.ticket-food{min-width:0}.ticket-line .grams,.grams-edit{font-family:var(--font-mono);font-size:.8125rem;font-weight:500;white-space:nowrap}.grams-edit{display:inline-flex;align-items:center;gap:.25rem;color:var(--ink)}.grams-edit input{width:4.25rem;padding:.25rem .35rem;border:1px solid rgba(28,36,40,.25);border-radius:0;background:#fffdf6;color:var(--ink);font-family:var(--font-mono);font-size:.8125rem;text-align:right}.line-remove{border:none;background:transparent;color:#1c242873;font-size:1rem;cursor:pointer;padding:0 .15rem}.ticket-total{margin-top:.65rem;padding-top:.55rem;border-top:2px solid rgba(28,36,40,.22);display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:.8125rem;font-weight:600}.ticket-empty{margin:0;font-size:.875rem;color:#1c24288c}.field-grid{display:grid;gap:.75rem}label{display:flex;flex-direction:column;gap:.35rem;font-size:.8125rem;color:#e3e7eacc}input,select,textarea,button.primary{font:inherit}input,select,textarea{padding:.55rem .65rem;border:1px solid rgba(227,231,234,.18);background:#0f2a2ed9;color:var(--liner);border-radius:0}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--probe);outline-offset:1px}button.primary{border:none;border-radius:0;padding:.7rem 1rem;background:var(--probe);color:var(--ticket);font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:transform .16s ease,background .16s ease}button.primary:hover:not(:disabled){transform:translateY(-1px)}button.primary:disabled{opacity:.45;cursor:not-allowed}button.ghost{border:1px solid rgba(227,231,234,.2);border-radius:0;padding:.45rem .75rem;background:transparent;color:var(--liner);font:inherit;font-size:.8125rem;cursor:pointer}.action-row{margin-top:.75rem;display:flex;flex-wrap:wrap;gap:.5rem}.search-row{display:flex;gap:.5rem;margin-top:.75rem}.search-row input{flex:1}.search-results{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.35rem}.search-results li button{width:100%;text-align:left;border:1px solid rgba(227,231,234,.12);border-radius:0;padding:.55rem .65rem;background:#0f2a2e80;color:var(--liner);font:inherit;font-size:.875rem;cursor:pointer;display:flex;justify-content:space-between;gap:.5rem;align-items:center}.search-results li{display:grid;grid-template-columns:1fr auto;gap:.35rem;align-items:stretch}.search-results li .star-btn{width:auto;padding:.45rem .55rem}.search-results li button:hover{border-color:var(--probe)}.quick-picks{display:flex;flex-direction:column;gap:.75rem}.quick-strip h3{margin:0 0 .35rem;font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;color:#e3e7ea8c}.quick-strip ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}.quick-strip li button{border:1px solid rgba(227,231,234,.16);background:#0f2a2e8c;color:var(--liner);font:inherit;font-size:.8125rem;padding:.4rem .55rem;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem}.line-edit-block{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.serving-presets{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.2rem}.serving-presets button{border:1px solid rgba(28,36,40,.2);background:#fffdf6;color:var(--ink);font-family:var(--font-mono);font-size:.625rem;padding:.15rem .3rem;cursor:pointer}.serving-presets button.serving-active{border-color:var(--probe);background:#1a9b8e2e}.ticket-recipe-group{list-style:none;padding:.25rem 0;border-bottom:1px dotted rgba(28,36,40,.14)}.recipe-group-head,.ticket-recipe .recipe-toggle{width:100%}.recipe-toggle{display:flex;justify-content:space-between;align-items:center;gap:.5rem;width:100%;border:none;background:transparent;color:inherit;font:inherit;padding:.2rem 0;cursor:pointer;text-align:left}.recipe-meta{font-family:var(--font-mono);font-size:.6875rem;color:#1c242880}.recipe-nested{margin-left:.5rem;padding-left:.5rem;border-left:2px solid rgba(28,36,40,.12)}.barcode-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#081214d1;display:flex;align-items:flex-end;justify-content:center;padding:1rem}.barcode-panel{width:min(100%,var(--rail));background:var(--walk-in);border:1px solid rgba(227,231,234,.16);padding:.85rem;display:flex;flex-direction:column;gap:.65rem}.barcode-head{display:flex;justify-content:space-between;align-items:center}.barcode-head h3{margin:0;font-size:.875rem;letter-spacing:.06em;text-transform:uppercase}.barcode-video,.barcode-region{width:100%;min-height:220px;background:#000;object-fit:cover}.status-pill{display:inline-block;padding:.15rem .4rem;font-family:var(--font-mono);font-size:.6875rem;background:#1a9b8e38;color:var(--probe)}.disclaimer{margin:0;font-size:.75rem;color:#e3e7ea73;line-height:1.4}.help-list{margin:.35rem 0 .75rem;padding-left:1.15rem;font-size:.8125rem;color:#e3e7eab3;line-height:1.45}.help-list strong{color:var(--liner);font-weight:700}.panel a{color:var(--probe)}.panel code{font-family:var(--font-mono);font-size:.85em}.sync-note{margin-bottom:.35rem}.workout-form{display:flex;flex-direction:column;gap:.65rem}.workout-form label,.set-row label{display:flex;flex-direction:column;gap:.25rem;font-size:.6875rem;letter-spacing:.05em;text-transform:uppercase;color:#e3e7ea8c}.workout-form input,.set-row input{font:inherit;font-size:.9375rem;letter-spacing:normal;text-transform:none;color:var(--liner);background:#0f2a2ea6;border:1px solid rgba(227,231,234,.12);padding:.55rem .65rem}.set-list h3{margin:.25rem 0;font-size:.8125rem;letter-spacing:.05em;text-transform:uppercase}.set-row{display:grid;grid-template-columns:1.6fr .7fr .7fr .6fr;gap:.4rem;margin-bottom:.5rem}.session-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.session-card{padding:.85rem;background:#0f2a2e8c;border:1px solid rgba(227,231,234,.1)}.session-head{display:flex;flex-direction:column;gap:.15rem;margin-bottom:.4rem}.session-meta{font-family:var(--font-mono);font-size:.75rem;color:var(--zinc)}.set-summary{margin:0 0 .65rem;padding-left:1.1rem;font-family:var(--font-mono);font-size:.8125rem;color:#e3e7eabf}.running-macros{margin:0;font-family:var(--font-mono);font-size:.8125rem;color:#e3e7eab3}.preview-block{margin-top:.5rem;padding-top:.75rem;border-top:1px solid rgba(227,231,234,.1)}.preview-block h3{margin:0 0 .5rem;font-size:.8125rem}.micro-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.micro-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .75rem;background:#0f2a2ea6;border:1px solid rgba(227,231,234,.08)}.micro-name{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;font-size:.875rem}.micro-amount{font-family:var(--font-mono);font-size:.875rem;font-weight:600;color:var(--ticket);white-space:nowrap}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (max-width: 390px){.app-main{padding:.85rem}.macro-strip{gap:.35rem}}.day-picker{display:flex;align-items:center;gap:.35rem;margin:.35rem 0 .75rem}.day-picker .dash-day{margin:0;flex:1;text-align:center;font-family:var(--font-mono)}.coaching-panel{margin:.75rem 0;padding:.75rem;background:#0f2a2e73;border:1px dashed rgba(227,231,234,.18)}.coaching-stats{display:grid;grid-template-columns:1fr 1fr;gap:.5rem .75rem;margin:0 0 .75rem}.coaching-stats dt{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--zinc)}.coaching-stats dd{margin:.1rem 0 0;font-family:var(--font-mono);font-size:.9rem;color:var(--ticket)}.weigh-row label{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;color:var(--zinc)}.vision-capture{margin:.75rem 0;padding:.65rem 0;border-top:1px solid rgba(227,231,234,.1)}.custom-food-form{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.macro-inputs{display:grid;grid-template-columns:repeat(4,1fr);gap:.35rem}.macro-inputs label,.custom-food-form>label{display:flex;flex-direction:column;gap:.2rem;font-size:.75rem;color:var(--zinc)}.file-label{display:inline-block;margin-bottom:.5rem}.file-label input[type=file]{display:none}.btn-like{display:inline-block;padding:.45rem .75rem;cursor:pointer}.provider-list,.activity-list{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.5rem}.provider-list li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem 0;border-bottom:1px solid rgba(227,231,234,.08)}.activity-list li{font-size:.8rem;color:#e3e7eabf;font-family:var(--font-mono)}
