@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./plus-jakarta-sans-vietnamese-wght-normal.qRpaaN48.woff2) format("woff2-variations");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./plus-jakarta-sans-latin-ext-wght-normal.DmpS2jIq.woff2) format("woff2-variations");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./plus-jakarta-sans-latin-wght-normal.eXO_dkmS.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans Variable;src:local("Plus Jakarta Sans Variable Variable"),url(../_fonts/1PkpziInpbAeZgH6LBhqMQZBFMlF9d-Wx6VXf5tr3Y8-J6R0W8WQwVaMMivfYd_nuuYMOfjUNvXy2kvj15VBZFA.woff2) format(woff2-variations);font-display:swap;unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-weight:200 800;font-style:normal}@font-face{font-family:"Plus Jakarta Sans Variable Fallback: BlinkMacSystemFont";src:local("BlinkMacSystemFont");size-adjust:136.3733%;ascent-override:76.1146%;descent-override:16.2788%;line-gap-override:0%}@font-face{font-family:"Plus Jakarta Sans Variable Fallback: Segoe UI";src:local("Segoe UI");size-adjust:128.1128%;ascent-override:81.0224%;descent-override:17.3285%;line-gap-override:0%}@font-face{font-family:"Plus Jakarta Sans Variable Fallback: Helvetica Neue";src:local("Helvetica Neue");size-adjust:126.2222%;ascent-override:82.2359%;descent-override:17.588%;line-gap-override:0%}@font-face{font-family:"Plus Jakarta Sans Variable Fallback: Arial";src:local("Arial");size-adjust:127.4112%;ascent-override:81.4685%;descent-override:17.4239%;line-gap-override:0%}@font-face{font-family:"Plus Jakarta Sans Variable Fallback: Noto Sans";src:local("Noto Sans");size-adjust:119.8312%;ascent-override:86.6218%;descent-override:18.5261%;line-gap-override:0%}@font-face{font-family:Plus Jakarta Sans Variable;src:local("Plus Jakarta Sans Variable Variable"),url(../_fonts/4hgSadfgKP8SR68aIC4_VtZ6opqUcMF2H5uuuwBYIBU-WgJRj0P5Lr4CI_1ZpEpRbveqOUNUvlwXKvvw8DMWBTo.woff2) format(woff2-variations);font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-weight:200 800;font-style:normal}@font-face{font-family:Plus Jakarta Sans Variable;src:local("Plus Jakarta Sans Variable Variable"),url(../_fonts/lrlMzAf8-S_KN-wtKXbo8uFGN_sCfvD-fHVqP4oTQnk-ITFi7Y9nvczM7T4PT0AOjEM4wjLvqC50ZlcQ08YdSKY.woff2) format(woff2-variations);font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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-weight:200 800;font-style:normal}@font-face{font-family:Plus Jakarta Sans Variable;src:local("Plus Jakarta Sans Variable Variable"),url(../_fonts/6ZIxpLxyOuvI4MiBJnqJQZ5aMjBS3-0_wnkFnj0cFg-vUGkENQn7QDnA9VFQcp13vuxADDoGgwGVDDXI2VLNZQ.woff2) format(woff2-variations);font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:200 800;font-style:normal}@font-face{font-family:"Plus Jakarta Sans Variable Fallback: BlinkMacSystemFont";src:local("BlinkMacSystemFont");size-adjust:112.3639%;ascent-override:92.3784%;descent-override:19.7572%;line-gap-override:0%}@font-face{font-family:"Plus Jakarta Sans Variable Fallback: Segoe UI";src:local("Segoe UI");size-adjust:105.5577%;ascent-override:98.3348%;descent-override:21.0311%;line-gap-override:0%}@font-face{font-family:"Plus Jakarta Sans Variable Fallback: Helvetica Neue";src:local("Helvetica Neue");size-adjust:104%;ascent-override:99.8077%;descent-override:21.3462%;line-gap-override:0%}@font-face{font-family:"Plus Jakarta Sans Variable Fallback: Arial";src:local("Arial");size-adjust:104.9796%;ascent-override:98.8763%;descent-override:21.147%;line-gap-override:0%}@font-face{font-family:"Plus Jakarta Sans Variable Fallback: Noto Sans";src:local("Noto Sans");size-adjust:98.7342%;ascent-override:105.1308%;descent-override:22.4846%;line-gap-override:0%}:root{color-scheme:light;--bg:#f1f4ee;--surface:#fff;--surface-2:#f3f6ef;--surface-3:#e9eee2;--ink:#16241c;--ink-dim:#5c6b60;--ink-mute:#93a196;--line:#e3e9dc;--line-2:#d6decb;--primary:#1da06b;--primary-dark:#158457;--primary-soft:#e1f3e9;--kcal:#1da06b;--protein:#e8743b;--fat:#ebb13b;--carbs:#3e92cc;--fiber:#8c9a57;--danger:#e05a5a;--sh-sm:0 1px 2px rgba(22,36,28,.05);--sh-md:0 6px 20px rgba(22,36,28,.08);--sh-lg:0 16px 44px rgba(22,36,28,.16);--r-card:22px;--r-el:16px;--r-pill:999px;--card:var(--surface);--card-border:var(--line);--text:var(--ink);--text-dim:var(--ink-dim);--text-mute:var(--ink-mute);--accent-blue:var(--primary);--accent-blue-bg:var(--primary-soft);--amber:var(--fat);--amber-bg:#fcf4e2;--amber-border:#f1e2be;--green:var(--primary);--macro-kcal:var(--kcal);--macro-protein:var(--protein);--macro-fat:var(--fat);--macro-carbs:var(--carbs);--macro-fiber:var(--fiber)}html.dark{color-scheme:dark;--bg:#0f1215;--surface:#191d22;--surface-2:#222830;--surface-3:#2c333c;--ink:#f2f5f8;--ink-dim:#b6bec8;--ink-mute:#8a94a0;--line:#2a313a;--line-2:#3a424d;--primary-soft:#242c35;--sh-sm:0 1px 2px rgba(0,0,0,.4);--sh-md:0 8px 24px rgba(0,0,0,.5);--sh-lg:0 18px 50px rgba(0,0,0,.6);--amber-bg:#2a2413;--amber-border:#4a3f20}*,:after,:before{box-sizing:border-box}*{scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:99px}::-webkit-scrollbar-track{background:transparent}body,html{background:var(--bg);color:var(--ink)}body{font-family:Plus Jakarta Sans Variable,"Plus Jakarta Sans Variable Fallback: BlinkMacSystemFont","Plus Jakarta Sans Variable Fallback: Segoe UI","Plus Jakarta Sans Variable Fallback: Helvetica Neue","Plus Jakarta Sans Variable Fallback: Arial","Plus Jakarta Sans Variable Fallback: Noto Sans",Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;font-size:15px;margin:0}@media(hover:none)and (pointer:coarse){input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px!important}}.app-shell{padding:48px 24px 80px}.container{max-width:1040px;margin:0 auto}.page-header{margin-bottom:36px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.page-header-text{min-width:0;flex:1}.page-title{font-size:32px;font-weight:600;letter-spacing:-.02em;color:#f3f4f6;margin-bottom:8px}.page-subtitle{color:var(--text-mute);font-size:14px}.menu-wrap{flex-shrink:0}.menu-btn{background:transparent;border:1px solid var(--card-border);border-radius:8px;padding:8px 10px;cursor:pointer;display:flex;flex-direction:column;gap:3px;transition:border-color .15s}.menu-btn:hover{border-color:#3d424b}.menu-btn span{width:18px;height:2px;background:var(--text-dim);border-radius:1px;transition:background-color .15s}.menu-btn:hover span{background:var(--text)}.menu-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:180px;background:var(--card);border:1px solid var(--card-border);border-radius:10px;padding:6px;box-shadow:0 8px 24px #0006;z-index:30;display:flex;flex-direction:column}.menu-item{background:transparent;border:none;color:var(--text);text-align:left;padding:9px 12px;border-radius:7px;font:inherit;font-size:13.5px;cursor:pointer;transition:background-color .15s,color .15s}.menu-item:hover{background:#2a2e35}.menu-item:focus-visible{outline:2px solid var(--accent-blue);outline-offset:-2px}.menu-item.menu-item-logout:hover{color:#f87171}.tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:36px}.tab{padding:9px 22px;background:transparent;color:var(--text-dim);border:1px solid var(--card-border);border-radius:12px;cursor:pointer;font:inherit;font-size:14px;transition:all .15s ease}.tab:hover{color:var(--text);border-color:#3d424b}.tab.active{background:#2a2e35;color:#f3f4f6;border-color:#4b5563}.period-switch{display:inline-flex;background:var(--surface-3);border-radius:var(--r-pill);padding:4px;gap:2px;margin-bottom:18px}.period-opt{padding:7px 16px;background:none;color:var(--ink-dim);border:none;border-radius:var(--r-pill);cursor:pointer;font:inherit;font-size:13px;font-weight:700;transition:all .15s ease}.period-opt:hover{color:var(--ink)}.period-opt.active{background:var(--surface);color:var(--ink);box-shadow:var(--sh-sm)}.day{display:none;animation:fade .25s ease}.day.active{display:block}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:22px}@media(max-width:720px){.stat-grid{grid-template-columns:1fr}}.stat-card{background:var(--card);border:1px solid var(--card-border);border-radius:16px;padding:22px 26px}.stat-label{color:var(--text-dim);font-size:14px;margin-bottom:10px}.stat-value{font-size:52px;font-weight:600;line-height:1.05;letter-spacing:-.03em;color:#f3f4f6;margin-bottom:8px}.stat-value.protein{color:var(--green)}.stat-unit{color:var(--text-mute);font-size:13px}.rings-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:22px}@media(max-width:600px){.rings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.ring-card{min-width:0;background:var(--card);border:1px solid var(--card-border);border-radius:14px;padding:12px 10px 10px;text-align:center}.ring-label{color:var(--text-mute);font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px}.ring-wrap{height:124px;min-width:0}.day-nav-wrap,.ring-wrap{position:relative}.day-nav-content{min-width:0}.day-nav-btn{position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;padding:12px;color:var(--text-mute);cursor:pointer;font:inherit;font-size:32px;line-height:1;transition:color .15s}.day-nav-btn:hover{color:var(--text)}.day-nav-btn:disabled{opacity:.3;cursor:default}.day-nav-btn.day-prev{left:-52px}.day-nav-btn.day-next{right:-52px}@media(max-width:1100px){.day-nav-btn.day-prev{left:-10px}.day-nav-btn.day-next{right:-10px}.day-nav-btn{font-size:26px;padding:8px}}.day-jump-today{margin-left:10px;padding:3px 10px;font-size:11px;font-weight:600;background:var(--primary-soft);color:var(--primary);border:1px solid var(--primary-soft);border-radius:999px;cursor:pointer;font-family:inherit;line-height:1.4;transition:background-color .15s}.day-jump-today:hover{background:var(--primary-soft);filter:brightness(.97)}.day-today-tag{margin-left:10px;padding:3px 10px;font-size:11px;font-weight:500;background:#a3e63521;color:var(--green);border:1px solid rgba(163,230,53,.28);border-radius:999px;letter-spacing:0}.today-empty{background:var(--card);border:1px solid var(--card-border);border-radius:16px;padding:32px 24px;text-align:center;color:var(--text-mute);font-size:14px}.info-banner{background:#506ea021;border:1px solid rgba(120,150,200,.22);border-radius:12px;padding:14px 18px;margin-bottom:28px;color:#b6c8e0;font-size:13.5px;display:flex;gap:11px;align-items:flex-start;line-height:1.55}.info-banner svg{flex-shrink:0;margin-top:2px;opacity:.85}.info-banner strong{color:#d6e2f2;font-weight:600}.day-card{background:var(--card);border:1px solid var(--card-border);border-radius:16px;padding:18px 24px 8px;margin-bottom:16px}.day-card-header{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:14px}.day-card-title{font-size:19px;font-weight:600;color:#f3f4f6;letter-spacing:-.01em}.day-card-date{color:var(--text-mute);font-size:13px;font-weight:400;margin-left:6px;letter-spacing:0}.day-card-stats{font-size:13px;color:var(--text-dim)}.day-card-stats .kcal-val{color:var(--macro-kcal)}.day-card-stats .protein-val{color:var(--macro-protein)}.day-card-stats .fat-val{color:var(--macro-fat)}.day-card-stats .carbs-val{color:var(--macro-carbs)}.day-card-stats .fiber-val{color:var(--macro-fiber)}.meal-expandable>summary{list-style:none;cursor:pointer;outline:none}.meal-expandable>summary::-webkit-details-marker{display:none}.meal-expandable>summary::marker{content:""}.meal-expandable>summary:focus-visible>.day-row{box-shadow:inset 0 0 0 2px var(--accent-blue-bg)}.day-row-clickable{position:relative;padding-right:30px;margin:0 6px;border-radius:12px;transition:background-color .15s ease}.day-row-clickable:hover{background-color:#ffffff07}.meal-expandable[open]>summary .day-row-clickable{background-color:#ffffff05}.day-row-clickable .chevron{position:absolute;right:8px;top:22px;width:7px;height:7px;border-right:1.5px solid var(--text-mute);border-bottom:1.5px solid var(--text-mute);transform:rotate(45deg);transition:transform .2s ease,top .2s ease}.meal-expandable[open]>summary .chevron{transform:rotate(-135deg);top:26px}.day-row-recipe{margin:0 6px;padding:4px 0 24px;border-top:1px dashed #2c3038;animation:row-expand .18s ease-out}.day-row-recipe .meta{margin-top:14px;margin-bottom:18px}.day-row-recipe .macros{margin-top:18px}@keyframes row-expand{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:none}}@media(max-width:600px){.day-row-clickable{margin:0 4px}.day-row-clickable .chevron{top:14px;right:6px}.meal-expandable[open]>summary .chevron{top:18px}.day-row-recipe{margin:0 4px}}.day-row{display:grid;grid-template-columns:92px 1fr auto;gap:16px;padding:14px 0;border-top:1px solid #2c3038;align-items:start}.day-row.day-row-clickable{grid-template-columns:28px 92px 1fr auto}.meal-check{width:22px;height:22px;border:1.5px solid #4b5563;border-radius:6px;background:transparent;cursor:pointer;position:relative;margin-top:3px;padding:0;transition:border-color .15s,background-color .15s;flex-shrink:0}.meal-check.checked,.meal-check:hover{border-color:var(--green)}.meal-check.checked{background:#a3e6352e}.meal-check.checked:after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid var(--green);border-width:0 2px 2px 0;transform:rotate(45deg)}.meal-check:disabled{opacity:.4;cursor:wait}.meal-eaten>summary .day-row-title{text-decoration:line-through}.meal-eaten>summary .day-row-desc,.meal-eaten>summary .day-row-label,.meal-eaten>summary .day-row-stats,.meal-eaten>summary .day-row-title{opacity:.45}.day-row-label{color:var(--text-mute);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding-top:3px}.day-row-content{min-width:0}.day-row-title{color:#f3f4f6;font-weight:500;font-size:15px;margin-bottom:4px}.day-row-desc{color:var(--text-dim);font-size:13px;line-height:1.5}.day-row-stats{text-align:right;white-space:nowrap;padding-top:2px}.day-row-stats .kcal{color:#f3f4f6;font-weight:600;font-size:14px;display:block}.day-row-stats .protein{color:var(--green);font-size:12.5px;display:block;margin-top:3px}.badge{font-size:11px;color:var(--text-mute);background:#2a2e35;padding:2px 8px;border-radius:8px;margin-left:6px;font-weight:500}@media(max-width:600px){.day-row{grid-template-columns:1fr;gap:6px}.day-row-stats{text-align:left;padding-top:4px}.day-row-stats .kcal,.day-row-stats .protein{display:inline;margin:0 10px 0 0}.day-row.day-row-clickable{grid-template-columns:28px 1fr;gap:6px 10px}.day-row.day-row-clickable>.day-row-content,.day-row.day-row-clickable>.day-row-label,.day-row.day-row-clickable>.day-row-stats{grid-column:2}}.meal-label{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;margin:36px 0 14px}.meal-label,.meta{color:var(--text-mute)}.meta{display:flex;flex-wrap:wrap;gap:22px;font-size:13.5px;margin-bottom:28px}.meta-item{display:inline-flex;align-items:center;gap:7px}.meta-item svg{width:14px;height:14px;opacity:.75}.recipe-body{display:grid;grid-template-columns:1fr 1.15fr;gap:44px;margin-bottom:4px}@media(max-width:720px){.recipe-body{grid-template-columns:1fr;gap:28px}}.col-label{color:var(--text-mute);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;margin-bottom:14px}.ingredients{list-style:none;padding:0;margin:0}.ingredients li{display:flex;justify-content:space-between;align-items:baseline;padding:11px 0;border-bottom:1px solid #2c3038;color:#d6d9dd}.ingredients li:last-child{border-bottom:none}.ingredients .amount{color:var(--text-dim);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:16px;display:inline-flex;align-items:center;gap:6px}.amount-edit-trigger{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:transparent;border:none;cursor:pointer;color:var(--text-mute);border-radius:6px;opacity:0;transition:opacity .12s ease,color .12s ease,background .12s ease}.ingredients li:hover .amount-edit-trigger{opacity:1}.amount-edit-trigger:hover{color:var(--text);background:#2c3038}.amount-edit-trigger:disabled{cursor:default;opacity:.4}.amount-edit{display:inline-flex;align-items:center;gap:6px;margin-left:16px;white-space:nowrap}.amount-edit-input{width:64px;padding:4px 6px;background:#1a1d23;border:1px solid #2c3038;border-radius:6px;color:var(--text);font-size:13px;font-variant-numeric:tabular-nums}.amount-edit-input:focus{outline:none;border-color:var(--accent,#6ee7b7)}.amount-edit-input:disabled{opacity:.5}.amount-edit-unit{color:var(--text-dim);font-size:13px}.amount-edit-unit-select{padding:4px 6px;background:#1a1d23;border:1px solid #2c3038;border-radius:6px;color:var(--text);font-size:13px}.amount-edit-unit-select:focus{outline:none;border-color:var(--accent,#6ee7b7)}.amount-edit-unit-select:disabled{opacity:.5}.amount-edit-note{width:140px;padding:4px 6px;background:#1a1d23;border:1px solid #2c3038;border-radius:6px;color:var(--text);font-size:13px}.amount-edit-note:focus{outline:none;border-color:var(--accent,#6ee7b7)}.amount-edit-note:disabled{opacity:.5}.amount-edit-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;line-height:1;border:1px solid #2c3038;border-radius:6px;cursor:pointer;background:#1a1d23;color:var(--text);font-size:14px}.amount-edit-btn:hover{background:#2c3038}.amount-edit-btn:disabled{cursor:default;opacity:.5}.amount-edit-btn.save{color:#6ee7b7}.amount-edit-btn.cancel{color:var(--text-mute)}.amount-edit-btn.delete{color:#f87171}.amount-edit-error{color:#f87171;font-size:12px;margin-left:6px}.amount-delete-trigger:hover{color:#f87171}.amount-delete-confirm{color:var(--text-dim);font-size:13px}.steps{list-style:none;padding:0;margin:0}.steps li{display:grid;grid-template-columns:28px 1fr;gap:14px;margin-bottom:16px;color:#d6d9dd;line-height:1.6}.steps li:last-child{margin-bottom:0}.step-num{width:26px;height:26px;border-radius:50%;background:var(--accent-blue-bg);color:var(--accent-blue);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;margin-top:1px}.tip{background:var(--amber-bg);border:1px solid var(--amber-border);border-radius:10px;padding:13px 16px;margin-top:22px;color:#d8b078;font-size:13.5px;display:flex;gap:10px;align-items:flex-start;line-height:1.55}.tip svg{flex-shrink:0;margin-top:1px}.macros{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}.chip{background:#2a2e35;border:1px solid #353a42;border-radius:999px;padding:7px 14px;color:var(--text-dim);font-size:13px}.chip strong{color:#f3f4f6;font-weight:600;margin-right:4px}.chart-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:16px;margin-top:16px}@media(max-width:820px){.chart-grid{grid-template-columns:1fr}}.chart-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:20px 22px;box-shadow:var(--sh-sm)}.chart-wrap{position:relative;height:280px;margin-top:12px}.chart-card--full{grid-column:1/-1}.chart-wrap--doughnut{height:384px}.shop-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}@media(max-width:720px){.shop-grid{grid-template-columns:1fr}}.shop-card{background:var(--card);border:1px solid var(--card-border);border-radius:16px;padding:22px 26px}.shop-card h3{font-size:13px;color:var(--text-mute);font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin-bottom:14px}.shop-list{list-style:none;padding:0;margin:0}.shop-list li{display:flex;align-items:center;padding:9px 0;border-bottom:1px solid #2c3038}.shop-list li:last-child{border-bottom:none}.shop-list label{display:flex;align-items:center;gap:11px;flex:1;color:#d6d9dd;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.shop-list input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:17px;height:17px;border:1.5px solid #4b5563;border-radius:5px;background:transparent;cursor:pointer;flex-shrink:0;position:relative;transition:all .15s}.shop-list input[type=checkbox]:hover{border-color:var(--accent-blue)}.shop-list input[type=checkbox]:checked{background:var(--accent-blue-bg);border-color:var(--accent-blue)}.shop-list input[type=checkbox]:checked:after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:solid var(--accent-blue);border-width:0 2px 2px 0;transform:rotate(45deg)}.shop-list input[type=checkbox]:checked~span{text-decoration:line-through;color:var(--text-mute)}.shop-list .amount{color:var(--text-dim);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:12px;font-size:14px}.shop-list input[type=checkbox]:checked+span+.amount{color:var(--text-mute)}.shop-actions{display:flex;gap:10px;margin-bottom:20px}.shop-btn{padding:8px 16px;background:transparent;color:var(--text-dim);border:1px solid var(--card-border);border-radius:10px;cursor:pointer;font:inherit;font-size:13px;transition:all .15s}.shop-btn:hover{color:var(--text);border-color:#3d424b}.shop-note{background:var(--amber-bg);border:1px solid var(--amber-border);border-radius:12px;padding:16px 20px;margin-top:18px;color:#d8b078;font-size:13.5px;line-height:1.6}.shop-note strong{color:#e0c08c}.foot{margin-top:48px;padding:16px 18px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-card);color:var(--ink-dim);font-size:13.5px;line-height:1.6}.foot strong{color:var(--text)}.modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px}.modal--over-drawer{z-index:120}.modal-backdrop{position:absolute;inset:0;background:#0a0c0eb3;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-card{position:relative;z-index:1;background:var(--card);border:1px solid var(--card-border);border-radius:18px;padding:24px 28px 20px;max-width:560px;width:100%;max-height:calc(100vh - 48px);overflow-y:auto;box-shadow:0 20px 60px #00000080}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.modal-header h2{font-size:19px;font-weight:600;color:#f3f4f6;letter-spacing:-.01em;margin:0}.modal-close{background:transparent;border:none;color:var(--text-mute);font-size:24px;line-height:1;padding:4px 10px;cursor:pointer;border-radius:6px;transition:color .15s,background-color .15s}.modal-close:hover{color:var(--text);background:#2a2e35}.profile-form{display:flex;flex-direction:column;gap:18px}.form-section{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 14px}.form-section-label{grid-column:1/-1;color:var(--text-mute);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin-bottom:2px}.form-full{grid-column:1/-1}.profile-form label{display:flex;flex-direction:column;gap:5px;color:var(--text-dim);font-size:12px}.profile-form input,.profile-form select{background:#1a1c1f;border:1px solid #2c3038;border-radius:8px;color:var(--text);padding:8px 10px;font:inherit;font-size:14px;font-variant-numeric:tabular-nums}.profile-form input:focus,.profile-form select:focus{outline:none;border-color:var(--accent-blue)}.form-actions{display:flex;align-items:center;gap:10px;margin-top:4px;padding-top:16px;border-top:1px solid #2c3038}.form-cancel,.form-submit{background:transparent;color:var(--text);border:1px solid var(--card-border);border-radius:8px;padding:8px 18px;font:inherit;font-size:13px;cursor:pointer;transition:all .15s}.form-submit{background:var(--accent-blue-bg);color:var(--accent-blue);border-color:#93b8e34d}.form-submit:hover{background:#93b8e32e}.form-cancel:hover,.form-msg{color:var(--text-mute)}.form-msg{font-size:12.5px;margin-left:auto}.loading{text-align:center;padding:60px 20px;color:var(--text-mute);font-size:14px}.drawer{position:fixed;inset:0;z-index:110;display:flex;justify-content:flex-end}.drawer.drawer--stacked{z-index:130}.drawer-backdrop{position:absolute;inset:0;background:#0a0c0eb3;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.drawer-card{position:relative;z-index:1;display:flex;flex-direction:column;width:100%;max-width:420px;height:100%;background:var(--card);border-left:1px solid var(--card-border);box-shadow:-20px 0 60px #00000080;overflow-y:auto}.drawer-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:22px 24px 18px;border-bottom:1px solid var(--card-border)}.drawer-header h2{font-size:18px;font-weight:600;color:#f3f4f6;letter-spacing:-.01em;margin:0;word-break:break-word}.drawer-body{padding:22px 24px 28px}.drawer-loading{display:flex;align-items:center;gap:10px;color:var(--text-mute);font-size:14px;padding:18px 0}.drawer-spinner{width:16px;height:16px;border-radius:50%;border:2px solid #3d424b;border-top:2px solid var(--accent-blue);animation:drawer-spin .7s linear infinite}@keyframes drawer-spin{to{transform:rotate(1turn)}}.drawer-header-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.drawer-edit-btn{background:transparent;color:var(--text-dim);border:1px solid var(--card-border);border-radius:8px;padding:5px 12px;font:inherit;font-size:12.5px;cursor:pointer;transition:color .15s,border-color .15s,background-color .15s}.drawer-edit-btn:hover{color:var(--text);border-color:#3d424b;background:#2a2e35}.food-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:18px}.food-cat{color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;background:#2a2e35;border:1px solid #353a42;border-radius:999px;padding:3px 10px}.food-cat,.food-manufacturer{font-size:11px;font-weight:600}.food-manufacturer{display:inline-flex;align-items:center;vertical-align:middle;color:var(--accent-blue);letter-spacing:.02em;background:var(--accent-blue-bg);border:1px solid rgba(147,184,227,.3);border-radius:999px;padding:2px 8px;line-height:1.3;white-space:nowrap}.food-manufacturer--inline{margin-left:8px}.food-basis{color:var(--text-mute);font-size:12.5px}.macro-panel{background:color-mix(in srgb,var(--card) 86%,#fff 14%);border:1px solid var(--card-border);border-radius:16px;padding:20px 20px 18px}.macro-kcal{display:flex;align-items:baseline;gap:8px;margin-bottom:16px}.macro-kcal-value{font-size:40px;font-weight:700;line-height:1;color:var(--macro-kcal);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.macro-kcal-unit{font-size:14px;color:var(--text-mute);font-weight:500}.macro-bar{display:flex;height:10px;border-radius:999px;overflow:hidden;background:#1a1c1f;margin-bottom:16px}.macro-bar-seg{height:100%;transition:width .3s ease}.macro-bar-seg.is-protein{background:var(--macro-protein)}.macro-bar-seg.is-carbs{background:var(--macro-carbs)}.macro-bar-seg.is-fat{background:var(--macro-fat)}.macro-legend{display:flex;flex-direction:column;gap:9px}.macro-leg{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--text-dim)}.macro-leg-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.macro-leg.is-protein .macro-leg-dot{background:var(--macro-protein)}.macro-leg.is-carbs .macro-leg-dot{background:var(--macro-carbs)}.macro-leg.is-fat .macro-leg-dot{background:var(--macro-fat)}.macro-leg.is-fiber .macro-leg-dot{background:var(--macro-fiber)}.macro-leg-name{flex:1}.macro-leg-val{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}.food-form{display:flex;flex-direction:column;gap:16px}.food-form-grid,.food-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.food-form-field{display:flex;flex-direction:column;gap:5px;min-width:0}.food-form-label{color:var(--text-dim);font-size:12px}.food-form-section-label{color:var(--text-mute);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin:4px 0 -4px}.food-form input:where(:not([type=checkbox],[type=radio])),.food-form select,.food-form textarea{background:#1a1c1f;border:1px solid #2c3038;border-radius:8px;color:var(--text);padding:8px 10px;font:inherit;font-size:14px;line-height:1.4;font-variant-numeric:tabular-nums;width:100%;min-width:0;box-sizing:border-box}.food-form select{appearance:none;-webkit-appearance:none;-moz-appearance:none;height:auto;padding-right:28px;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%238a9099' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.food-form textarea{resize:vertical;line-height:1.5}.food-form input:where(:not([type=checkbox],[type=radio])):focus,.food-form select:focus,.food-form textarea:focus{outline:none;border-color:var(--accent-blue)}.food-form input:disabled,.food-form select:disabled,.food-form textarea:disabled{opacity:.5;cursor:not-allowed}.food-form input.has-error,.food-form select.has-error{border-color:#e07a7a}.food-form-error{color:#e89a9a;font-size:12px}.food-form-msg-error{margin:0;color:#e89a9a;font-size:13px;line-height:1.5}.food-form-actions{display:flex;align-items:center;gap:10px;padding-top:14px;border-top:1px solid #2c3038}.drawer-notes{margin-top:24px}.drawer-notes p{margin:8px 0 0;color:#d6d9dd;font-size:13.5px;line-height:1.6;white-space:pre-wrap}.drawer-notfound{padding:12px 0}.drawer-notfound-title{margin:0 0 8px;color:var(--text-dim);font-size:15px;font-weight:500}.drawer-notfound-sub{margin:0;color:var(--text-mute);font-size:13.5px;line-height:1.6}.drawer-enter-active,.drawer-leave-active{transition:opacity .2s ease}.drawer-enter-active .drawer-card,.drawer-leave-active .drawer-card{transition:transform .22s cubic-bezier(.4,0,.2,1)}.drawer-enter-from,.drawer-leave-to{opacity:0}.drawer-enter-from .drawer-card,.drawer-leave-to .drawer-card{transform:translate(100%)}.ingredient-name{background:transparent;border:none;padding:0;margin:0;font:inherit;color:inherit;text-align:left;cursor:pointer;border-radius:4px;transition:color .12s ease}.ingredient-name:hover{color:var(--accent-blue);text-decoration:underline;text-underline-offset:2px}.ingredient-name:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}.login-body{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--card-border);border-radius:16px;padding:36px 28px;box-shadow:0 8px 32px #0006}.login-title{margin:0 0 6px;font-size:22px;font-weight:600;color:var(--text)}.login-hint{margin:0 0 24px;font-size:14px;color:var(--text-dim)}.login-form{gap:16px}.login-field,.login-form{display:flex;flex-direction:column}.login-field{gap:6px}.login-field>span{font-size:12px;color:var(--text-dim);font-weight:500}.login-field>input{width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--card-border);border-radius:10px;padding:12px 14px;color:var(--text);font-size:15px;outline:none;transition:border-color .15s}.login-field>input:focus{border-color:var(--green)}.login-submit{background:var(--green);color:#14160f;border:none;border-radius:10px;padding:12px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s,opacity .15s}.login-submit:hover:not(:disabled){background:#b9f047}.login-submit:disabled{opacity:.6;cursor:not-allowed}.login-error{margin-top:4px;padding:10px 12px;border-radius:8px;background:#f8717114;border:1px solid rgba(248,113,113,.25);color:#f87171;font-size:13px;line-height:1.4}.login-divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--text-dim);font-size:12px}.login-divider:after,.login-divider:before{content:"";flex:1;height:1px;background:var(--card-border)}.login-sso{width:100%;box-sizing:border-box;background:transparent;color:var(--text);border:1px solid var(--card-border);border-radius:10px;padding:12px;font-size:14px;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s}.login-sso:hover{border-color:var(--green);background:#ffffff08}.app{--maxw:460px;min-height:100vh;background:var(--bg);color:var(--ink);position:relative;margin:0 auto;max-width:var(--maxw);overflow:hidden}@media(min-width:900px){.app{--maxw:1080px}}.topbar{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 86%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:18px 20px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{font-size:20px;font-weight:800;letter-spacing:-.02em;color:var(--primary)}.topbar-actions{gap:8px}.icon-btn,.topbar-actions{display:flex;align-items:center}.icon-btn{width:42px;height:42px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);justify-content:center;cursor:pointer;color:var(--ink-dim);box-shadow:var(--sh-sm);transition:.15s}.icon-btn:hover:not(:disabled){color:var(--ink);border-color:var(--line-2)}.icon-btn:disabled{cursor:default;opacity:.7}.icon-btn svg{width:19px;height:19px}.icon-btn .spinning{animation:shell-spin .8s linear infinite}@keyframes shell-spin{to{transform:rotate(1turn)}}.avatar{width:42px;height:42px;border-radius:var(--r-pill);background:var(--primary);color:#fff;font-weight:800;font-size:15px;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--sh-sm)}.scroll{padding:4px 16px 120px}@media(min-width:900px){.scroll{padding:8px 40px 120px;max-width:820px;margin:0 auto}}.menu-wrap{position:relative}.menu-pop{position:absolute;top:52px;right:0;z-index:40;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-el);box-shadow:var(--sh-lg);padding:6px;min-width:190px}.menu-pop>button{display:block;width:100%;text-align:left;background:none;border:none;padding:10px 12px;border-radius:10px;font:inherit;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer}.menu-pop>button:hover{background:var(--surface-2)}.menu-pop>button.lg:hover{color:var(--danger)}.theme-seg{display:flex;gap:4px;background:var(--surface-3);border-radius:var(--r-pill);padding:4px;margin:4px 0}.theme-seg button{flex:1;border:none;background:none;border-radius:var(--r-pill);padding:7px 0;display:flex;align-items:center;justify-content:center;color:var(--ink-mute);cursor:pointer;transition:.15s}.theme-seg button svg{width:17px;height:17px}.theme-seg button.on{background:var(--surface);color:var(--primary);box-shadow:var(--sh-sm)}.botnav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;justify-content:center;pointer-events:none}.botnav-inner{pointer-events:auto;width:100%;max-width:var(--maxw,460px);background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--line);display:flex;padding:8px 6px calc(8px + env(safe-area-inset-bottom))}.navi{flex:1;background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;color:var(--ink-mute);border-radius:14px}.navi svg{width:22px;height:22px}.navi span{font-size:10px;font-weight:700;letter-spacing:.01em}.navi.on{color:var(--primary)}@media(min-width:900px){.botnav{bottom:22px}.botnav-inner{max-width:540px;border:1px solid var(--line);border-radius:var(--r-pill);box-shadow:var(--sh-lg);padding:8px 14px}.navi{flex-direction:row;gap:8px;padding:9px 14px}.navi span{font-size:12.5px}.navi svg{width:19px;height:19px}.navi:not(.on) span{display:none}.navi.on{background:var(--primary-soft)}}.shell-toast{position:fixed;left:50%;bottom:96px;transform:translate(-50%);z-index:80;background:var(--ink);color:var(--bg);font-size:13.5px;font-weight:700;padding:11px 18px;border-radius:var(--r-pill);box-shadow:var(--sh-lg);animation:shell-tin .25s ease;max-width:calc(var(--maxw, 460px) - 40px);text-align:center}.shell-toast.err{background:var(--danger);color:#fff}@keyframes shell-tin{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.push-banner{position:fixed;left:50%;bottom:calc(92px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:78;width:calc(100% - 28px);max-width:432px;display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--sh-lg);animation:shell-tin .25s ease}.push-banner-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.push-banner-text strong{font-size:13.5px;font-weight:800;letter-spacing:-.01em;color:var(--ink)}.push-banner-text span{font-size:12px;font-weight:600;line-height:1.45;color:var(--ink-dim)}.push-banner-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.push-banner-cta{border:none;background:var(--primary);color:#fff;border-radius:var(--r-pill);padding:9px 14px;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap;box-shadow:var(--sh-sm);transition:background .15s}.push-banner-cta:hover{background:var(--primary-dark)}.push-banner-x{width:34px;height:34px;flex-shrink:0;padding:0;border:none;background:var(--surface-2);color:var(--ink-mute);border-radius:var(--r-pill);cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative}.push-banner-x:after{content:"";position:absolute;inset:-5px}.push-banner-x:hover{color:var(--ink)}.push-banner-x svg{width:14px;height:14px}@media(max-width:420px){.push-banner{flex-direction:column;align-items:stretch}.push-banner-actions{justify-content:space-between}.push-banner-cta{flex:1}}@media(min-width:900px){.push-banner{max-width:540px}}
