:root{color:#17211d;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f7f5ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.app-shell{background:linear-gradient(#ec6f521f,#0000 260px),#f7f5ef;min-height:100vh;padding-bottom:86px}.bottom-nav{z-index:30;padding:8px 10px calc(8px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffdf8f5;border-top:1px solid #17211d1a;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{color:#69746e;border-radius:8px;place-items:center;gap:3px;min-height:54px;font-size:.76rem;font-weight:800;text-decoration:none;display:grid}.bottom-nav a.active{color:#123f2f;background:#e5f4ec}.app-header{z-index:10;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f7f5eff0;border-bottom:1px solid #17211d1a;justify-content:space-between;align-items:center;gap:14px;min-height:64px;padding:12px 16px;display:flex;position:sticky;top:0}.brand-mark{color:#fff;background:#17211d;border-radius:8px;place-items:center;width:38px;height:38px;display:grid}.app-header nav{align-items:center;gap:8px;display:flex}.app-header a{color:#17211d;background:#fffdf8;border:1px solid #17211d1f;border-radius:8px;align-items:center;gap:8px;min-height:40px;padding:0 12px;text-decoration:none;display:inline-flex}.app-header a.active{color:#123f2f;background:#e9f5ee;border-color:#22765666}.directory-page{width:min(100%,760px);margin:0 auto;padding:18px 16px 32px}.today-page,.goals-page,.account-page,.auth-page,.history-page{width:min(100%,760px);margin:0 auto;padding:10px 12px 24px}.page-heading{padding:10px 0 18px}.page-heading h1{letter-spacing:0;margin:10px 0 8px;font-size:2.1rem;line-height:1.05}.page-heading p{color:#5c6861;margin:0}.history-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.history-heading h1{font-size:1.7rem}.history-period-switch{background:#fffdf8;border:1px solid #17211d1a;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));min-width:144px;padding:3px;display:grid}.history-period-switch button{color:#5c6861;background:0 0;border:0;border-radius:6px;min-height:34px;font-size:.82rem;font-weight:900}.history-period-switch button[aria-pressed=true]{color:#123f2f;background:#eaf7ef}.directory-hero{padding:8px 0 18px}.directory-kicker{color:#227656;align-items:center;gap:8px;font-size:.9rem;font-weight:700;display:inline-flex}.directory-hero h1{letter-spacing:0;margin:10px 0 8px;font-size:2.35rem;line-height:1.02}.directory-hero p{color:#5c6861;margin:0;font-size:1rem}.directory-search{gap:8px;margin-bottom:16px;display:grid}.directory-search label{color:#3e4a44;font-size:.9rem;font-weight:700}.search-control{color:#5c6861;background:#fffdf8;border:1px solid #17211d21;border-radius:8px;align-items:center;gap:10px;min-height:48px;padding:0 13px;display:flex;box-shadow:0 10px 24px #17211d0f}.search-control input{color:#17211d;background:0 0;border:0;outline:0;width:100%;min-width:0}.search-control input::placeholder{color:#8a928d}.product-list{gap:10px;display:grid}.product-card{background:#fffdf8;border:1px solid #17211d1a;border-radius:8px;grid-template-columns:58px minmax(0,1fr);gap:12px;padding:12px;display:grid;box-shadow:0 12px 26px #17211d0f}.product-card__image{object-fit:cover;background:#ece7db;border-radius:8px;width:58px;height:58px}.product-card__body{gap:9px;min-width:0;display:grid}.product-card__header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.product-card h2{overflow-wrap:anywhere;letter-spacing:0;min-width:0;margin:0;font-size:1rem;line-height:1.25}.icon-link{color:#227656;background:#f3faf5;border:1px solid #17211d1f;border-radius:8px;flex:none;place-items:center;width:34px;height:34px;text-decoration:none;display:inline-grid}.calorie-line{color:#c64f34;align-items:center;gap:6px;font-size:.98rem;display:inline-flex}.macro-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0;display:grid}.macro-grid div{background:#eef4ed;border-radius:8px;justify-content:center;align-items:center;gap:4px;min-height:30px;display:flex}.macro-grid dt,.macro-grid dd{margin:0}.macro-grid dt{color:#5c6861;font-size:.8rem;font-weight:800}.macro-grid dd{color:#17211d;font-size:.9rem;font-weight:800}.notice{color:#3e4a44;background:#fffdf8;border:1px solid #17211d1a;border-radius:8px;padding:14px}.route-loading{width:min(100% - 32px,760px);margin:18px auto}.today-toolbar{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.today-toolbar h1{letter-spacing:0;margin:0;font-size:1.28rem;line-height:1.05}.today-toolbar__actions{flex:none;align-items:center;gap:7px;display:flex}.compact-date-button,.toolbar-icon-button{color:#123f2f;background:#fffdf8;border:1px solid #17211d1f;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:36px;font-size:.82rem;font-weight:900;display:inline-flex}.compact-date-button{background:#eaf7ef;padding:0 10px}.compact-date-button span,.toolbar-icon-button span{white-space:nowrap}.toolbar-icon-button{min-width:54px;padding:0 9px}.today-summary{background:#fffdf8;border:1px solid #17211d1a;border-radius:8px;gap:9px;padding:11px;display:grid;box-shadow:0 8px 18px #17211d0d}.summary-topline{justify-content:space-between;align-items:center;gap:10px;display:flex}.muted-label{color:#227656;margin:0;font-size:.78rem;font-weight:900}.goal-pill,.goal-link{color:#123f2f;background:#e5f4ec;border-radius:8px;align-items:center;min-height:28px;padding:0 9px;font-size:.72rem;font-weight:900;text-decoration:none;display:inline-flex}.calorie-progress{align-items:baseline;gap:7px;display:flex}.calorie-progress strong{letter-spacing:0;font-size:1.46rem;line-height:1}.calorie-progress span,.remaining,.over-limit{color:#5c6861}.progress-track{background:#e6e1d8;border-radius:999px;height:6px;overflow:hidden}.progress-track div{border-radius:inherit;background:#227656;height:100%}.remaining,.over-limit{margin:0;font-size:.84rem;font-weight:900}.over-limit{color:#b44831}.summary-macros{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.summary-macros span{color:#26322d;background:#eef4ed;border-radius:8px;justify-content:center;align-items:center;min-height:28px;font-size:.76rem;font-weight:900;display:flex}.meal-list{gap:8px;margin-top:8px;display:grid}.meal-card{background:#fffdf8;border:1px solid #17211d1a;border-radius:8px;padding:10px;box-shadow:0 8px 18px #17211d0a}.meal-card__header{justify-content:space-between;align-items:center;gap:10px;display:flex}.meal-card h2,.meal-entry h3,.selected-product h3{overflow-wrap:anywhere;letter-spacing:0;margin:0}.meal-card h2{font-size:.98rem}.meal-card p,.meal-entry p,.selected-product p{color:#5c6861;margin:2px 0 0;font-size:.78rem;font-weight:700}.round-action{color:#fff;background:#227656;border:0;border-radius:8px;place-items:center;width:38px;height:38px;display:inline-grid}.meal-header-actions{flex:none;align-items:center;gap:6px;display:flex}.subtle-icon-button{color:#227656;background:#eaf7ef;border:1px solid #2276562e;border-radius:8px;place-items:center;width:36px;height:36px;display:inline-grid}.soft-empty{color:#68736d;margin:0;font-size:.82rem;font-weight:800}.empty-meal-actions{justify-content:space-between;align-items:center;gap:8px;min-height:34px;margin-top:7px;display:flex}.empty-meal-actions button,.manual-product-button{color:#123f2f;background:#e5f4ec;border:0;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:34px;padding:0 10px;font-size:.8rem;font-weight:900;display:inline-flex}.meal-entry-list{gap:7px;margin-top:8px;display:grid}.meal-entry{background:#f7f5ef;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;display:grid}.product-result img,.selected-product img{object-fit:cover;background:#e6e1d8;border-radius:8px;width:36px;height:36px}.meal-entry h3{font-size:.88rem}.entry-actions{gap:6px;display:flex}.entry-actions button,.sheet-header button,.inline-icon-button,.favorite-toggle{color:#227656;background:#fffdf8;border:1px solid #17211d1a;border-radius:8px;place-items:center;width:34px;height:34px;display:inline-grid}.sheet-backdrop{z-index:50;background:#17211d52;align-items:flex-end;display:flex;position:fixed;inset:0}.food-sheet{width:100%;max-height:88vh;padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:#fffdf8;border-radius:14px 14px 0 0;gap:14px;display:grid;overflow:auto;box-shadow:0 -18px 40px #17211d2e}.sheet-header,.selected-product{justify-content:space-between;align-items:center;gap:12px;display:flex}.sheet-header h2{letter-spacing:0;margin:2px 0 0;font-size:1.35rem}.confirm-close,.form-error,.success-message{border-radius:8px;padding:10px;font-size:.9rem;font-weight:800}.confirm-close{color:#5b3a26;background:#fbefd9;align-items:center;gap:8px;display:flex}.confirm-close button{color:#fff;background:#227656;border:0;border-radius:8px;min-height:32px}.sheet-search{gap:8px;display:grid}.sheet-search label,.grams-field,.auth-form label,.json-import-field,.goal-form label{color:#3e4a44;font-size:.86rem;font-weight:900}.product-picker{gap:10px;display:grid}.quick-product-section,.product-result-list{gap:8px;display:grid}.product-result-row{grid-template-columns:minmax(0,1fr) 38px;align-items:center;gap:8px;display:grid}.product-result{text-align:left;background:#f7f5ef;border:1px solid #17211d17;border-radius:8px;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px;width:100%;min-height:58px;padding:8px;display:grid}.product-result span{gap:3px;min-width:0;display:grid}.product-result strong{overflow-wrap:anywhere}.product-result small{color:#5c6861;font-weight:800}.favorite-toggle{width:38px;height:38px}.selected-product-panel,.goal-form,.auth-form,.manual-product-form{gap:12px;display:grid}.selected-product{background:#f7f5ef;border-radius:8px;padding:10px}.selected-product>div{flex:1;min-width:0}.selected-product-actions{flex:none;align-items:center;gap:7px;display:flex}.selected-product button,.form-section-title button{color:#123f2f;background:#e5f4ec;border:0;border-radius:8px;min-height:34px;font-weight:900}.grams-field,.auth-form label,.json-import-field,.goal-form label,.manual-product-form label{gap:7px;display:grid}.grams-field input,.auth-form input,.goal-form input,.manual-product-form input{color:#17211d;background:#fffdf8;border:1px solid #17211d21;border-radius:8px;width:100%;min-height:46px;padding:0 12px}.json-import-field textarea{resize:vertical;color:#17211d;background:#fffdf8;border:1px solid #17211d21;border-radius:8px;width:100%;min-height:260px;padding:12px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.84rem;line-height:1.45}.form-section-title{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.form-section-title h3{margin:2px 0 0;font-size:1.12rem}.form-section-title h2{letter-spacing:0;align-items:center;gap:8px;margin:2px 0 0;font-size:1.25rem;display:inline-flex}.manual-macro-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.sheet-total{background:#eaf7ef;border-radius:8px;gap:8px;padding:12px;display:grid}.sheet-total strong{font-size:1.4rem}.sheet-total div{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.sheet-total div span{background:#fffdf8;border-radius:8px;place-items:center;min-height:30px;font-weight:900;display:grid}.form-error{color:#8d2f1f;background:#fee8df}.success-message{color:#123f2f;background:#e5f4ec}.primary-button{color:#fff;background:#227656;border:0;border-radius:8px;min-height:48px;font-weight:900}.primary-button:disabled{color:#77827d;background:#e5e1d8}.sheet-submit{position:sticky;bottom:0}.mini-calendar{background:#fffdf8;border:1px solid #17211d1a;border-radius:8px;gap:10px;margin-bottom:12px;padding:12px;display:grid;box-shadow:0 10px 22px #17211d0f}.mini-calendar header{justify-content:space-between;align-items:center;gap:10px;display:flex}.mini-calendar header button,.calendar-day-grid button{color:#26322d;background:#f7f5ef;border:0;border-radius:8px}.mini-calendar header button{place-items:center;width:36px;height:36px;display:inline-grid}.calendar-weekdays,.calendar-day-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.calendar-weekdays span{color:#69746e;text-align:center;font-size:.72rem;font-weight:900}.calendar-day-grid button{min-height:36px;font-weight:900}.calendar-day-grid button.is-muted{color:#9aa39e;background:#fbfaf6}.calendar-day-grid button.is-today{color:#123f2f;background:#e5f4ec}.calendar-day-grid button.is-selected{color:#fff;background:#227656}.sheet-note{color:#5c6861;margin:0;font-size:.9rem;font-weight:700}.history-summary,.history-list,.history-analytics{gap:10px;display:grid}.history-summary{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px}.history-summary div,.history-day{background:#fffdf8;border:1px solid #17211d1a;border-radius:8px;box-shadow:0 10px 22px #17211d0d}.history-summary div{align-content:center;gap:4px;min-height:76px;padding:10px;display:grid}.history-summary span,.history-day small{color:#5c6861;font-size:.78rem;font-weight:800}.history-summary strong{font-size:1rem}.history-analytics{margin-bottom:12px}.history-chart{background:#fffdf8;border:1px solid #17211d1a;border-radius:8px;gap:8px;padding:12px;display:grid;box-shadow:0 10px 22px #17211d0d}.history-chart__head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.history-chart__head h2{letter-spacing:0;margin:0;font-size:.98rem;line-height:1.15}.history-chart__head span{color:#5c6861;white-space:nowrap;font-size:.76rem;font-weight:900}.history-line-chart{width:100%;height:142px;display:block;overflow:visible}.history-chart__grid-line{stroke:#17211d1a;stroke-width:1px;vector-effect:non-scaling-stroke}.history-chart__line{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:3px;vector-effect:non-scaling-stroke}.history-chart__point{stroke:#fffdf8;stroke-width:2px;vector-effect:non-scaling-stroke}.history-chart__tick{fill:#6d7772;font-size:.64rem;font-weight:800}.history-chart__legend{color:#3e4a44;flex-wrap:wrap;gap:8px 12px;font-size:.78rem;font-weight:900;display:flex}.history-chart__legend span{align-items:center;gap:5px;display:inline-flex}.history-chart__legend i{border-radius:999px;width:9px;height:9px;display:inline-block}.history-day{grid-template-columns:76px minmax(0,1fr);gap:3px 12px;padding:12px;text-decoration:none;display:grid}.history-day>span{color:#227656;grid-row:span 2;font-weight:900}.macro-input-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.mode-control{border:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:0;display:grid}.mode-control legend{color:#3e4a44;grid-column:1/-1;font-size:.86rem;font-weight:900}.mode-control label{background:#f7f5ef;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:42px;display:flex}.mode-control input{width:auto;min-height:auto}.auth-form,.account-card,.goal-panel{background:#fffdf8;border:1px solid #17211d1a;border-radius:8px;box-shadow:0 10px 22px #17211d0d}.auth-form,.goal-panel{padding:14px}.auth-mode-switch{background:#f0ece2;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:4px;display:grid}.auth-mode-switch button{color:#5c6861;background:0 0;border:0;border-radius:8px;min-height:40px;font-weight:900}.auth-mode-switch button.is-active{color:#123f2f;background:#fffdf8;box-shadow:0 6px 16px #17211d14}.account-card{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:13px;display:flex}.account-card strong{overflow-wrap:anywhere;margin-top:3px;font-size:1rem;display:block}.account-card button{color:#123f2f;background:#e5f4ec;border:0;border-radius:8px;flex:none;justify-content:center;align-items:center;gap:7px;min-height:40px;padding:0 11px;font-weight:900;display:inline-flex}.external-token-panel{gap:12px;margin-bottom:12px;display:grid}.external-token-status{background:#f7f5ef;border-radius:8px;gap:3px;padding:10px;display:grid}.external-token-status p,.external-token-status small,.compact-help{margin:0}.external-token-status p{color:#17211d;font-size:.92rem;font-weight:900}.external-token-status small,.compact-help{color:#5c6861;font-size:.8rem;font-weight:800}.token-actions{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.secondary-button,.primary-link-button{color:#123f2f;background:#e5f4ec;border:0;border-radius:8px;justify-content:center;align-items:center;gap:7px;min-height:42px;padding:0 12px;font-weight:900;text-decoration:none;display:inline-flex}.secondary-button:disabled{color:#77827d;background:#e5e1d8}.external-link-field{color:#3e4a44;gap:7px;font-size:.86rem;font-weight:900;display:grid}.external-link-field textarea{resize:vertical;color:#17211d;background:#fffdf8;border:1px solid #17211d21;border-radius:8px;width:100%;min-height:96px;padding:10px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.78rem;line-height:1.45}.external-import-page{place-items:center;width:min(100%,520px);min-height:100vh;margin:0 auto;padding:18px 16px;display:grid}.external-import-card{background:#fffdf8;border:1px solid #17211d1a;border-radius:8px;gap:14px;width:100%;padding:18px;display:grid;box-shadow:0 14px 30px #17211d14}.external-import-card svg{color:#227656}.external-import-card.is-error svg{color:#b44831}.external-import-card.is-loading svg{animation:.8s linear infinite spin}.external-import-card h1,.external-import-card p{margin:0}.external-import-card h1{letter-spacing:0;margin-top:3px;font-size:1.6rem;line-height:1.05}.external-import-card p:not(.muted-label){color:#5c6861;margin-top:7px;font-weight:800}@keyframes spin{to{transform:rotate(360deg)}}.pager{grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin-top:18px;display:grid}.pager button{color:#fff;background:#227656;border:0;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:42px;display:inline-flex}.pager button:disabled{color:#7b8580;background:#e5e1d8}.pager span{color:#5c6861;font-size:.9rem;font-weight:800}@media (width>=720px){.directory-page,.today-page,.goals-page,.account-page,.auth-page,.history-page{padding-top:26px}.directory-hero h1{font-size:3rem}.product-list,.meal-list{grid-template-columns:repeat(2,minmax(0,1fr))}.food-sheet{border-radius:14px 14px 0 0;width:min(560px,100% - 32px);margin:0 auto}}
