:root{--bg:#f5f5f7;--bg-soft:#ececf0;--card:#ffffff;--text:#00001e;--text-2:rgba(60,60,67,0.6);--text-3:rgba(60,60,67,0.4);--border:#e3e8f7;--brand:#4375ff;--brand-ink:#2b55cc;--brand-soft:rgba(67,117,255,0.14);--brand-shadow:0 10px 24px -10px rgba(67,117,255,0.65);--shadow:0 8px 24px -14px rgba(44,45,48,0.28);--radius:16px;--warm:#ff6b8b;--amber:#b57b00;--amber-soft:rgba(239,159,39,0.16);--danger:#d8213c;--success:#1f8f45}html[data-theme=dark]{color-scheme:dark;--bg:#0e0e10;--bg-soft:#17171a;--card:#1a1a1d;--text:#ececf1;--text-2:rgba(235,235,245,0.62);--text-3:rgba(235,235,245,0.4);--border:#2a2a2f;--brand:#4375ff;--brand-ink:#9fb9ff;--brand-soft:rgba(67,117,255,0.22);--brand-shadow:0 10px 24px -12px rgba(67,117,255,0.9);--shadow:0 8px 24px -14px rgba(0,0,0,0.8);--amber:#ef9f27;--amber-soft:rgba(239,159,39,0.14)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,HarmonyOS Sans,Noto Sans SC,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}.wrap{width:100%;max-width:1000px;margin:0 auto;padding:0 20px}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:20;-webkit-backdrop-filter:saturate(180%) blur(18px);backdrop-filter:saturate(180%) blur(18px);background:color-mix(in srgb,var(--bg) 76%,transparent);border-bottom:1px solid transparent}.nav-inner{height:62px;justify-content:space-between;gap:16px}.brand,.nav-inner{display:flex;align-items:center}.brand{gap:10px;font-size:15px;font-weight:500}.brand img{width:30px;height:30px;border-radius:9px;display:block}.nav-actions{display:flex;align-items:center;gap:8px}.icon-btn{width:34px;height:34px;display:grid;place-items:center;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text-2);transition:color .2s,border-color .2s}.icon-btn:hover{color:var(--text);border-color:var(--brand)}.nav-login{font-size:13px;padding:8px 16px;border-radius:999px;background:var(--brand);color:#fff}.hero{padding:84px 0 56px;text-align:center}.hero-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2);border:1px solid var(--border);background:var(--card);border-radius:999px;padding:5px 12px;margin-bottom:22px}.hero-badge i{width:6px;height:6px;border-radius:50%;background:var(--brand);display:inline-block}.hero h1{font-size:clamp(34px,6vw,46px);line-height:1.16;letter-spacing:-.02em;margin:0 0 16px;font-weight:600}.hero p{margin:0 auto;max-width:560px;font-size:16px;color:var(--text-2)}.hero-cta{margin-top:32px;display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap}.btn-primary{display:inline-flex;align-items:center;gap:8px;font-size:16px;font-weight:500;padding:15px 38px;border-radius:999px;background:var(--brand);color:#fff;border:none;box-shadow:var(--brand-shadow);transition:transform .18s ease,filter .18s ease}.btn-primary:hover{transform:translateY(-1px);filter:brightness(1.04)}.btn-ghost{font-size:14px;padding:12px 22px;border-radius:999px;border:1px solid var(--border);color:var(--text-2);background:var(--card)}.hero-note{margin-top:18px;font-size:12px;color:var(--text-3)}.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));grid-gap:14px;gap:14px;padding-bottom:64px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.card-ico{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-ink);font-size:22px;line-height:1;margin-bottom:14px}.card h3{margin:0 0 6px;font-size:15px;font-weight:500}.card p{margin:0;font-size:13px;color:var(--text-2)}.footer{border-top:1px solid var(--border);padding:26px 0 40px;text-align:center;font-size:12px;color:var(--text-3)}.footer a{color:var(--text-2)}.auth-shell{min-height:calc(100vh - 62px);display:grid;place-items:center;padding:40px 20px 80px}.auth-card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--border);border-radius:20px;padding:28px;box-shadow:var(--shadow)}.auth-card h1{font-size:20px;margin:0 0 6px;font-weight:500}.auth-card .sub{font-size:13px;color:var(--text-2);margin:0 0 22px}.field{margin-bottom:14px}.field label{display:block;font-size:12px;color:var(--text-2);margin-bottom:6px}.field input{width:100%;padding:11px 13px;font-size:14px;border-radius:11px;border:1px solid var(--border);background:var(--bg);color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s}.field input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.btn-block{width:100%;padding:12px;border-radius:11px;border:none;background:var(--brand);color:#fff;font-size:14px;font-weight:500;margin-top:6px}.btn-block:disabled{opacity:.6;cursor:not-allowed}.form-msg{font-size:13px;margin-top:12px;min-height:18px}.form-msg.err{color:var(--danger)}.auth-foot{margin-top:20px;padding-top:16px;border-top:1px solid var(--border);font-size:12px;color:var(--text-3);line-height:1.7}.app-head{display:flex;align-items:center;justify-content:space-between;padding:28px 0 10px;gap:16px;flex-wrap:wrap}.app-head h1{font-size:22px;margin:0;font-weight:500}.app-head p{margin:4px 0 0;font-size:13px;color:var(--text-2)}.panel{margin-top:20px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}.panel h2{font-size:15px;margin:0 0 10px;font-weight:500}.panel p{margin:0;font-size:13px;color:var(--text-2)}.tag{display:inline-block;font-size:11px;padding:3px 9px;border-radius:999px;background:var(--brand-soft);color:var(--brand-ink);margin-left:8px;vertical-align:middle}.tag-warm{background:var(--amber-soft);color:var(--amber)}.muted{color:var(--text-3);font-size:12px}@media (max-width:760px){.hero{padding:56px 0 40px}.features{grid-template-columns:1fr;padding-bottom:48px}.hero-cta .btn-primary{width:100%;justify-content:center}}.app-main{padding-top:8px;padding-bottom:40px}.app-nav{justify-content:space-between;gap:12px;padding:14px 0 8px;margin-bottom:6px}.app-nav,.app-nav-left{display:flex;align-items:center}.app-nav-left{flex:none}.app-nav-brand{display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:var(--text)}.app-nav-brand img{width:30px;height:30px;border-radius:9px;display:block}.app-nav-center{justify-content:center;gap:4px;flex:1 1}.app-nav-center,.app-nav-right{display:flex;align-items:center}.app-nav-right{flex:none;gap:8px}.app-nav-item{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:14px;padding:9px 16px;border-radius:999px;color:var(--text-2);border:1px solid transparent;transition:color .2s,background .2s}.app-nav-ico{display:grid;place-items:center}.app-nav-ico svg{width:17px;height:17px;display:block}.app-nav-label{line-height:1}.app-nav-item:hover{color:var(--text)}.app-nav-item.on{color:var(--brand-ink);background:var(--brand-soft)}.app-nav-item.cta{font-weight:600;padding:10px 26px;margin:0 10px;box-shadow:var(--brand-shadow)}.app-nav-item.cta,.app-nav-item.cta.on,.app-nav-item.cta:hover{background:var(--brand);color:#fff}@media (max-width:760px){.app-nav{position:fixed;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom, 0px));z-index:40;gap:0;margin:0;padding:6px;background:color-mix(in srgb,var(--bg) 80%,transparent);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border:1px solid var(--border);border-radius:28px;box-shadow:var(--shadow)}.app-nav-left{display:none}.app-nav-center{flex:1 1;gap:2px}.app-nav-right{display:none}.app-nav-item{flex:1 1;flex-direction:column;gap:4px;font-size:12px;padding:9px 0;border-radius:20px;color:var(--text-3)}.app-nav-ico svg{width:22px;height:22px}.app-nav-item.on{background:var(--brand-soft);color:var(--brand)}.app-nav-item.cta{flex:1.15 1;font-size:12px;font-weight:600;padding:9px 0;margin:0 2px;box-shadow:none;border-radius:20px}.app-nav-item.cta,.app-nav-item.cta.on{background:var(--brand);color:#fff}.app-main{padding-bottom:112px}}.page-title{font-size:22px;font-weight:500;margin:14px 0 18px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.page-sub{font-size:12px;color:var(--text-3);font-weight:400}.settings-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-head .page-title{margin-bottom:18px}.settings-head-actions{display:flex;align-items:center;gap:8px;flex:none}.record-modes{display:flex;gap:8px;margin-bottom:16px}.record-mode{flex:1 1;height:62px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border-radius:16px;border:1px solid var(--border);background:var(--card);color:var(--text-2);font-size:13px;font-weight:500;cursor:pointer;transition:border-color .18s,color .18s,background .18s}.record-mode.on,.record-mode:hover{border-color:var(--brand);color:var(--brand-ink)}.record-mode.on{background:var(--brand-soft)}.record-mode.primary{flex:1.3 1;border:none;background:var(--brand);color:#fff;box-shadow:0 6px 16px -6px var(--brand)}.record-mode.primary:hover{color:#fff;filter:brightness(1.04)}.proxy-hint{margin:10px 0 0;padding:8px 10px;border-radius:10px;background:var(--brand-soft);color:var(--brand-ink);font-size:12px;line-height:1.5}@media (min-width:760px){.record-mode{flex-direction:row;height:52px;gap:8px;font-size:14px}}.btn-primary.small{font-size:14px;padding:11px 24px;box-shadow:none}.btn-ghost.tiny{font-size:12px;padding:6px 12px}.preview{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--bg-soft)}.preview img{display:block;width:100%;max-height:380px;object-fit:contain}.preview-change{position:absolute;right:10px;bottom:10px;font-size:12px;padding:6px 12px;border-radius:999px;border:none;background:rgba(0,0,0,.55);color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.field-block{margin-top:22px}.field-block>label{display:block;font-size:12px;color:var(--text-2);margin-bottom:10px}.muted-inline{color:var(--text-3);font-size:12px;margin-left:6px}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{font-size:13px;padding:8px 16px;border-radius:999px;border:1px solid var(--border);background:var(--card);color:var(--text-2)}.chip.on{background:var(--brand);border-color:var(--brand);color:#fff}.ratio-range{width:100%;accent-color:var(--brand)}.ratio-hint{display:flex;justify-content:space-between;font-size:11px;color:var(--text-3);margin-top:4px}.record-note{font-size:12px;color:var(--text-3);text-align:center;margin-top:14px}.today-bar{display:flex;align-items:center;gap:16px;padding:16px 18px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap}.today-label{flex:none;font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--brand-soft);color:var(--brand-ink)}.today-kcal{font-size:26px;font-weight:500;letter-spacing:-.01em}.today-unit{font-size:12px;color:var(--text-3);margin-left:3px}.today-macros{display:flex;gap:12px;font-size:12px;color:var(--text-2)}.today-count{margin-left:auto;font-size:12px;color:var(--text-3)}.daily-summary{margin-top:14px;padding:16px 18px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.daily-summary-title{font-size:13px;font-weight:500;color:var(--text-2);margin:0 0 10px}.daily-summary-stats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.daily-summary-stats span{font-size:12px;padding:4px 10px;border-radius:999px;background:var(--bg-soft);color:var(--text-2)}.daily-summary-text{font-size:14px;line-height:1.7;color:var(--text);margin:0}.daily-summary-empty{font-size:14px;color:var(--text-2);margin:0}.summary-entry{display:grid;grid-template-columns:56px minmax(0,1fr);grid-gap:12px;gap:12px;padding:12px 0}.summary-entry-time{display:flex;flex-direction:column;font-size:12px;color:var(--text-3);padding-top:2px}.summary-entry-time span{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-2);font-size:13px}.summary-entry-time em{font-style:normal;font-size:11px;margin-top:3px;align-self:flex-start;padding:2px 8px;border-radius:999px;background:var(--brand-soft);color:var(--brand-ink)}.summary-entry-body{background:var(--brand-soft);border:1px solid var(--border);border-radius:14px;padding:14px 16px}.summary-entry-title{font-size:14px;font-weight:600;color:var(--text);margin:0 0 10px}.family-alerts{margin-top:14px;padding:16px 18px;background:var(--amber-soft);border:1px solid var(--amber);border-radius:var(--radius)}.family-alerts-title{font-size:13px;font-weight:600;color:var(--amber);margin:0 0 10px}.family-alert{display:flex;align-items:flex-start;gap:8px;font-size:13px;line-height:1.6;color:var(--text);padding:6px 0}.family-alert+.family-alert{border-top:1px solid rgba(0,0,0,.06)}.family-alert-name{flex:none;font-weight:600;color:var(--amber)}.member-stats{padding:16px 18px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.member-stats-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}.member-stats-sub{font-size:12px;color:var(--text-3)}.member-stat-list{display:flex;flex-direction:column;gap:10px}.member-stat{padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--bg)}.member-stat.self{border-color:color-mix(in srgb,var(--brand) 40%,var(--border));background:color-mix(in srgb,var(--brand-soft) 40%,var(--bg))}.member-stat-top{display:flex;align-items:center;gap:8px}.member-stat-avatar{width:30px;height:30px;border-radius:50%;object-fit:cover;flex:none;background:var(--bg-soft)}.member-stat-avatar.fallback{display:grid;place-items:center;font-size:13px;color:var(--text-2)}.member-stat-top strong{font-size:14px;font-weight:600}.member-stat-meals{margin-left:auto;font-size:12px;color:var(--text-3)}.member-stat-nums{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-size:12px;color:var(--text-2)}.member-stat-alert{margin-top:8px;padding:8px 10px;border-radius:8px;background:var(--amber-soft);color:var(--text);font-size:12px;line-height:1.6}.member-stat-alert-tag{display:inline-block;font-weight:600;color:var(--amber);margin-right:6px}.day{margin-top:26px}.day-label{font-size:13px;color:var(--text-2);font-weight:500;margin:0 0 10px 2px}.meal{display:grid;grid-template-columns:56px minmax(0,1fr);grid-gap:12px;gap:12px;padding:12px 0;border-top:1px solid var(--border)}.meal:first-of-type{border-top:none}.meal-time{display:flex;flex-direction:column;font-size:12px;color:var(--text-3);padding-top:2px}.meal-time span{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-2);font-size:13px}.meal-time em{font-style:normal;font-size:11px;margin-top:2px}.meal-body{display:flex;gap:12px;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:12px}.meal-photo{flex:none;width:76px;height:76px;border-radius:10px;overflow:hidden;background:var(--bg-soft)}.meal-photo img{width:100%;height:100%;object-fit:cover;display:block}.meal-main{min-width:0;flex:1 1}.meal-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.food{font-size:12px;padding:3px 9px;border-radius:999px;background:var(--bg-soft);color:var(--text)}.food i{font-style:normal;margin-left:4px;font-size:11px}.food i,.food.low{color:var(--text-3)}.food.low{border:1px dashed var(--border);background:transparent}.meal-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--text-3);align-items:center}.meal-meta strong{font-size:13px;color:var(--text);font-weight:500}.ratio-tag{padding:1px 7px;border-radius:999px;background:var(--amber-soft);color:var(--amber)}.skeleton .sk-photo{width:76px;height:76px;border-radius:10px;background:var(--bg-soft);flex:none}.sk-lines{flex:1 1;display:flex;flex-direction:column;gap:8px;justify-content:center}.sk-line{height:10px;border-radius:999px;background:var(--bg-soft);display:block;animation:pulse 1.6s ease-in-out infinite}.sk-line.w70{width:70%}.sk-line.w50{width:50%}.sk-line.w30{width:30%}.sk-note{position:absolute;opacity:0}@keyframes pulse{0%,to{opacity:.55}50%{opacity:1}}.failed-body{align-items:center;gap:12px}.failed-ico{width:34px;height:34px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--amber-soft);color:var(--amber);font-size:16px;font-weight:500}.failed-title{margin:0;font-size:13px}.failed-sub{margin:2px 0 0;font-size:11px;color:var(--text-3)}.failed-actions{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}.empty{text-align:center;color:var(--text-3);font-size:13px;padding:30px 0}.empty-card{text-align:center;padding:40px 20px;border:1px dashed var(--border);border-radius:var(--radius);margin-top:24px}.empty-card p{color:var(--text-2);font-size:14px;margin:0 0 16px}.fab{position:-webkit-sticky;position:sticky;bottom:24px;float:right;width:52px;height:52px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;box-shadow:var(--brand-shadow)}.detail-photo{border-radius:var(--radius);overflow:hidden;background:var(--bg-soft);margin-bottom:18px}.detail-photo img{display:block;width:100%;max-height:520px;object-fit:contain}.item-list{margin:4px 0 16px}.item-row{display:grid;grid-template-columns:minmax(0,1fr) 64px 84px;grid-gap:8px;gap:8px;font-size:13px;padding:9px 0;border-bottom:1px solid var(--border);align-items:center}.item-row:last-child{border-bottom:none}.item-name{display:flex;align-items:center;gap:6px}.low-tag{font-size:10px;color:var(--text-3);border:1px solid var(--border);border-radius:999px;padding:1px 6px}.item-amount,.item-kcal{text-align:right;color:var(--text-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px;padding-top:14px;border-top:1px solid var(--border)}.totals span{display:block;font-size:11px;color:var(--text-3);margin-bottom:3px}.totals strong{font-size:14px;font-weight:500}.detail-actions{display:flex;gap:8px;margin-top:18px}.home-hero{padding:26px 0 8px}.home-eyebrow{font-size:12px;color:var(--text-3);margin:0 0 10px}.home-title{font-size:28px;font-weight:500;letter-spacing:-.02em;margin:0 0 8px}.home-title span{color:var(--brand);margin-left:2px}.home-sub{font-size:13px;color:var(--text-2);margin:0 0 20px;max-width:480px}.home-actions{display:flex;gap:10px;flex-wrap:wrap}.mini-list{display:flex;flex-direction:column}.mini-row{display:grid;grid-template-columns:44px 52px minmax(0,1fr) auto;grid-gap:8px;gap:8px;font-size:13px;padding:10px 0;border-bottom:1px solid var(--border);align-items:center}.mini-row:last-child{border-bottom:none}.mini-time{color:var(--text-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:12px}.mini-type{color:var(--text-2);font-size:12px}.mini-items{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-kcal{color:var(--text-3);font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.field-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.settings-actions{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.form-msg.ok{color:var(--success)}@media (max-width:560px){.meal{grid-template-columns:46px minmax(0,1fr)}.meal-photo{width:64px;height:64px}.today-macros{order:3;width:100%}.field-row{gap:0}.field-row,.totals{grid-template-columns:1fr}.totals{gap:8px}}.rec{margin-top:18px}.rec-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.rec-head h2{font-size:17px;font-weight:500;margin:0}.rec-summary{font-size:12px;color:var(--text-2);margin:4px 0 0;max-width:460px}.rec-list{display:flex;flex-direction:column;gap:8px}.rec-item{display:flex;gap:12px;align-items:flex-start;background:var(--card);border-left:1px solid var(--border);border:1px solid var(--border);border-left-width:3px;border-radius:12px;padding:12px 14px}.rec-item.slot-staple{border-left-color:#d9a441}.rec-item.slot-protein{border-left-color:#d96a4a}.rec-item.slot-veg{border-left-color:#4c9a52}.rec-item.slot-drink{border-left-color:#4a86c8}.rec-item.slot-fruit{border-left-color:#c76aa0}.rec-main{flex:1 1;min-width:0}.rec-title{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.rec-title strong{font-size:14px;font-weight:500}.rec-slot{font-size:10px;color:var(--text-3);border:1px solid var(--border);border-radius:999px;padding:1px 6px}.rec-portion{font-size:11px;color:var(--text-3)}.rec-liked{font-size:10px;color:var(--success);background:rgba(31,143,69,.12);border-radius:999px;padding:1px 7px}.rec-nums{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--text-3);margin-top:6px}.rec-kcal{color:var(--text);font-size:12px;font-weight:500}.rec-reason{font-size:12px;color:var(--text-2);margin:6px 0 0}.rec-toggle{background:none;border:none;padding:0;margin-top:6px;font-size:11px;color:var(--brand-ink)}.rec-detail{margin-top:8px;padding-top:8px;border-top:1px dashed var(--border)}.rec-ings{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.ing{font-size:11px;background:var(--bg-soft);border-radius:999px;padding:2px 8px}.ing,.rec-steps{color:var(--text-2)}.rec-steps{margin:0;padding-left:18px;font-size:12px;line-height:1.7}.rec-actions{display:flex;flex-direction:column;gap:4px;flex:none}.rec-btn{font-size:11px;padding:4px 9px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text-2);white-space:nowrap}.rec-btn:hover{border-color:var(--brand);color:var(--brand-ink)}.rec-btn.on{border-color:var(--success);color:var(--success)}.rec-foot{font-size:11px;color:var(--text-3);margin:12px 0 0}.rec-skeleton{display:flex;flex-direction:column;gap:10px}.rec-error,.rec-skeleton{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:18px}.rec-error{font-size:13px;color:var(--text-2)}.rec-error p{margin:0 0 12px}.rec-error-actions{display:flex;gap:8px}.rec-empty{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;background:var(--card);border:1px dashed var(--border);border-radius:14px;padding:28px 20px}.rec-empty-title{margin:0;font-size:14px;font-weight:500}.rec-empty-hint{margin:0 0 8px;font-size:12px;color:var(--text-3);max-width:420px}.rec-empty-link{font-size:11px;color:var(--brand-ink);margin-top:2px}.rec-inline-error{margin:0 0 8px;font-size:12px;color:var(--danger)}.today-strip{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px;padding:10px 14px;border:1px solid var(--border);border-radius:999px;background:var(--card);font-size:12px;color:var(--text-3)}.today-strip b{font-size:14px;color:var(--text);font-weight:500}.today-strip a{margin-left:auto;color:var(--brand-ink);font-size:12px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.stat-grid span{display:block;font-size:11px;color:var(--text-3);margin-bottom:3px}.stat-grid strong{font-size:15px;font-weight:500}.fact-list{flex-direction:column}.fact,.fact-list{display:flex;gap:8px}.fact{align-items:center;font-size:13px;padding:7px 0;border-bottom:1px solid var(--border)}.fact:last-child{border-bottom:none}.fact-kind{font-size:10px;padding:1px 7px;border-radius:999px;background:var(--bg-soft);color:var(--text-2);flex:none}.fact-kind.kind-like{background:rgba(31,143,69,.12);color:var(--success)}.fact-kind.kind-dislike{background:var(--amber-soft);color:var(--amber)}.text-link{color:var(--brand-ink);font-size:13px}@media (max-width:560px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rec-actions{flex-direction:row;flex-wrap:wrap;width:100%}.rec-item{flex-direction:column}}.rec-head>.btn-ghost{flex:none;white-space:nowrap;align-self:flex-start}.field select{width:100%;padding:11px 13px;font-size:14px;border-radius:11px;border:1px solid var(--border);background:var(--bg);color:var(--text);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-3) 50%),linear-gradient(135deg,var(--text-3) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.field select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.diet-insights{display:flex;flex-direction:column;gap:14px;margin-bottom:8px}.advice-text{font-size:15px;line-height:1.7;margin:0 0 14px}.advice-empty{font-size:15px;color:var(--text-2);margin:0}.insight-alert{display:flex;align-items:flex-start;gap:8px;margin-top:14px;padding:12px 14px;border-radius:12px;background:var(--amber-soft);color:var(--amber);font-size:13px;line-height:1.6}.insight-alert-tag{flex:none;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--amber);color:#fff;margin-top:1px}.advice-highlights{display:flex;flex-wrap:wrap;gap:8px}.advice-chip{font-size:12px;padding:6px 12px;border-radius:999px;background:var(--brand-soft);color:var(--brand-ink)}.insight-cols{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.insight-cols.three{grid-template-columns:repeat(3,minmax(0,1fr))}.insight-cols.three .stat-grid.two{grid-template-columns:1fr}.insight-col-title{font-size:12px;font-weight:500;color:var(--text-2);margin:0 0 10px}.stat-grid.two{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px}.advice-gaps{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;padding-top:14px;border-top:1px dashed var(--border)}.advice-gaps-title{font-size:12px;color:var(--text-2);font-weight:500}.gap-chip{font-size:12px;padding:5px 10px;border-radius:999px;background:var(--amber-soft);color:var(--amber)}.eat-actions{gap:12px;margin:8px 0 4px}.eat-actions,.eat-btn{display:flex;flex-direction:column}.eat-btn{align-items:flex-start;gap:4px;text-align:left;padding:18px 20px;border-radius:16px;border:1px solid var(--border);background:var(--card);color:var(--text);transition:border-color .2s,transform .15s}.eat-btn:hover:not(:disabled){border-color:var(--brand);transform:translateY(-1px)}.eat-btn:disabled{opacity:.45;cursor:not-allowed}.eat-btn-ico{font-size:22px;line-height:1}.eat-btn-main{font-size:16px;font-weight:600}.eat-btn-sub{font-size:12px;color:var(--text-2)}.eat-back{margin-bottom:12px}@media (max-width:560px){.insight-cols,.insight-cols.three{grid-template-columns:1fr}}.section-title{font-size:16px;font-weight:500;margin:32px 0 12px}.family-setup{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px;margin-top:6px}.setup-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.setup-card h2{font-size:15px;font-weight:500;margin:0 0 6px}.setup-sub{font-size:12px;color:var(--text-3);margin:0 0 14px;line-height:1.6}.input{width:100%;padding:11px 13px;font-size:14px;border-radius:11px;border:1px solid var(--border);background:var(--bg);color:var(--text);outline:none;margin-bottom:10px;font-family:inherit}.input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.code-input{letter-spacing:.22em;font-size:17px;text-transform:uppercase;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.family{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow)}.family-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.family-name{font-size:18px;font-weight:500;margin:0 0 4px}.family-sub{font-size:12px;color:var(--text-3);margin:0}.family-head-actions{display:flex;gap:6px;flex-wrap:wrap}.family-code{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;padding:12px 14px;border-radius:12px;background:var(--brand-soft);border:1px solid transparent}.code-value{font-size:22px;letter-spacing:.3em;font-weight:500;color:var(--brand-ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.code-actions{display:flex;gap:6px;margin-left:auto}.member-list{margin-top:16px;border-top:1px solid var(--border)}.member{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.member:last-child{border-bottom:none}.member-avatar{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:15px;background:var(--bg-soft);color:var(--text-2);border:1px solid var(--border)}.member-avatar.self{background:var(--brand-soft);color:var(--brand-ink);border-color:transparent}.member-main{flex:1 1;min-width:0}.member-title{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.member-title strong{font-size:14px;font-weight:500}.member-badge{font-size:10px;padding:1px 7px;border-radius:999px;background:var(--bg-soft);color:var(--text-3);border:1px solid var(--border)}.member-badge.owner{background:var(--brand-soft);color:var(--brand-ink);border-color:transparent}.member-meta{margin:3px 0 0}.member-meta,.member-remove{font-size:11px;color:var(--text-3)}.member-remove{flex:none;padding:4px 10px;border-radius:8px;border:1px solid var(--border);background:transparent}.member-remove:hover{border-color:#d9534f;color:#d9534f}.family-settings{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:13px;cursor:pointer}.switch-row i{display:block;font-style:normal;font-size:11px;color:var(--text-3);margin-top:2px}.switch-row input{flex:none;width:18px;height:18px;accent-color:var(--brand)}.family-actions{display:flex;gap:8px;margin-top:16px}.family-hint{font-size:11px;color:var(--text-3);margin:12px 0 0}.family-empty{margin-top:18px}.empty-hint{font-size:12px!important;color:var(--text-3)!important;margin:0!important}.family-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px!important;color:var(--text)!important;cursor:pointer;margin-bottom:12px}.family-toggle .muted-inline{display:block;margin-left:0;margin-top:2px}.family-toggle input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:44px;height:26px;flex:none;border-radius:999px;background:var(--bg-soft);border:1px solid var(--border);position:relative;cursor:pointer;transition:background .2s,border-color .2s}.family-toggle input[type=checkbox]:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s}.family-toggle input[type=checkbox]:checked{background:var(--brand);border-color:var(--brand)}.family-toggle input[type=checkbox]:checked:after{transform:translateX(18px)}.people-chips{display:flex;gap:8px;flex-wrap:wrap}.person-chip{display:inline-flex;align-items:center;gap:4px;font-size:13px;padding:8px 14px;border-radius:999px;border:1px solid var(--border);background:var(--card);color:var(--text-3);position:relative}.person-chip.on{background:var(--brand-soft);border-color:transparent;color:var(--brand-ink)}.person-chip.locked{cursor:default}.person-chip i{font-style:normal;font-size:10px;padding:0 5px;border-radius:999px;background:var(--brand);color:#fff}.split-list{display:flex;flex-direction:column;gap:6px}.split-row{display:grid;grid-template-columns:72px minmax(0,1fr) 40px;grid-gap:10px;gap:10px;align-items:center}.split-name{font-size:12px;color:var(--text-2);display:flex;align-items:center;gap:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.split-name i{font-style:normal;font-size:9px;color:var(--brand-ink)}.split-value{font-size:12px;text-align:right;color:var(--text-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.split-total{margin-top:10px;font-size:12px;color:var(--text-2)}.split-total.over{color:#d9534f}.by-tag{font-size:11px;color:var(--text-3);margin-left:auto}.meal-people{display:flex;align-items:center;margin-top:8px}.person-avatar{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:500;background:var(--bg-soft);color:var(--text-2);border:2px solid var(--card);margin-left:-7px}.person-avatar:first-child{margin-left:0}.person-avatar.me{background:var(--brand);color:#fff;border-color:var(--brand)}.meal-people-note{margin-left:8px;font-size:11px;color:var(--text-3)}.meal-avatars{display:flex;justify-content:flex-end;margin-top:8px}.slot-soup{border-left-color:#6f8fa8}.seg{display:inline-flex;padding:3px;border-radius:999px;background:var(--bg-soft);border:1px solid var(--border);margin:18px 0 0}.seg button{font-size:12px;padding:6px 14px;border-radius:999px;border:none;background:transparent;color:var(--text-2)}.seg button.on{background:var(--card);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.08)}.rec-warn{background:var(--amber-soft);border-radius:10px;padding:10px 12px;margin-bottom:10px}.rec-warn p{font-size:12px;color:var(--amber);margin:0;line-height:1.6}.rec-warn p+p{margin-top:4px}.rec-shopping{margin-top:12px;padding-top:10px;border-top:1px dashed var(--border)}.rec-shopping .rec-ings{margin-top:8px}@media (max-width:560px){.family-setup{grid-template-columns:1fr}.split-row{grid-template-columns:60px minmax(0,1fr) 36px}.code-value{font-size:19px}}.field-hint{font-size:11px;color:var(--text-3);margin:8px 0 0}.today-sup{margin-top:12px;padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:var(--card)}.today-sup-head{display:flex;align-items:baseline;gap:8px;margin-bottom:10px}.today-sup-title{font-size:12px;color:var(--text-2)}.today-sup-count{font-size:11px;color:var(--text-3)}.today-sup-link{margin-left:auto;font-size:11px;color:var(--brand-ink)}.today-sup-chips{display:flex;gap:8px;flex-wrap:wrap}.sup-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:12px}.sup-chip.done{border-color:transparent;background:rgba(31,143,69,.1);color:var(--success)}.sup-chip:disabled{opacity:.6}.sup-chip-extra{font-size:10px;color:var(--text-3)}.sup-chip.done .sup-chip-extra{color:var(--success);opacity:.8}.sup-list{display:flex;flex-direction:column;gap:8px;margin-top:6px}.sup-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-left:1px solid var(--border);border:1px solid var(--border);border-left-width:3px;border-radius:12px;background:var(--card)}.sup-item.done{border-left-color:var(--success)}.sup-main{flex:1 1;min-width:0}.sup-title{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.sup-title strong{font-size:14px;font-weight:500}.sup-dose{font-size:12px;color:var(--text-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sup-freq{font-size:11px;color:var(--text-3)}.sup-nutri{font-size:10px;padding:1px 7px;border-radius:999px;background:var(--brand-soft);color:var(--brand-ink)}.sup-progress{font-size:11px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sup-note,.sup-progress{color:var(--text-3);margin:4px 0 0}.sup-note{font-size:11px}.sup-actions{display:flex;align-items:center;gap:6px;flex:none}.sup-btn{font-size:12px;padding:6px 14px;border-radius:999px;border:1px solid var(--brand);background:var(--brand);color:#fff;white-space:nowrap}.sup-btn.done{background:rgba(31,143,69,.12);border-color:transparent;color:var(--success)}.sup-mini{font-size:11px;padding:5px 9px;border-radius:8px;background:transparent;color:var(--text-3)}.sup-form,.sup-mini{border:1px solid var(--border)}.sup-form{margin-top:18px;padding:18px;border-radius:var(--radius);background:var(--card)}.sup-form h2{font-size:15px;font-weight:500;margin:0 0 14px}.sup-presets{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.sup-switch{margin:16px 0;padding:12px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.sup-nutri-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sup-form-actions{display:flex;gap:8px;align-items:center;margin-top:14px;flex-wrap:wrap}.btn-ghost.danger{color:#d9534f;border-color:rgba(217,83,79,.4)}.sup-add{margin-top:14px;width:100%;padding:11px;border:1px dashed var(--border);border-radius:12px;background:transparent;color:var(--text-2);font-size:13px}.sup-add:hover{border-color:var(--brand);color:var(--brand-ink)}.sup-hint{font-size:11px;color:var(--text-3);margin:14px 0 0;line-height:1.6}@media (max-width:560px){.sup-nutri-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sup-item{align-items:flex-start}}.admin-nav{display:flex;gap:4px;padding:4px;border-radius:999px;background:var(--bg-soft);border:1px solid var(--border);margin-bottom:18px;overflow-x:auto;scrollbar-width:none}.admin-nav::-webkit-scrollbar{display:none}.admin-nav-link{font-size:12px;padding:7px 14px;border-radius:999px;color:var(--text-2);white-space:nowrap;flex:none}.admin-nav-link.on{background:var(--card);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.08)}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:10px;gap:10px}.admin-card{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:var(--card)}.admin-card-title{font-size:11px;color:var(--text-3)}.admin-card-value{font-size:24px;font-weight:500;letter-spacing:-.01em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.admin-card-sub{font-size:11px;color:var(--text-3);line-height:1.5}.admin-mini-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto auto;grid-gap:10px;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border);font-size:12px}.admin-mini-row:last-child{border-bottom:none}.admin-mini-name{font-weight:500}.admin-mini-mail,.admin-mini-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-mini-mail{color:var(--text-3)}.admin-mini-time{font-size:11px}.admin-badge,.admin-mini-time{color:var(--text-3);white-space:nowrap}.admin-badge{font-size:10px;padding:1px 7px;border-radius:999px;background:var(--bg-soft);border:1px solid var(--border)}.admin-badge.admin{background:var(--brand-soft);color:var(--brand-ink);border-color:transparent}.admin-badge.warn{background:var(--amber-soft);color:var(--amber);border-color:transparent}.admin-search{display:flex;gap:8px;align-items:center;margin-bottom:14px}.admin-search .input{margin-bottom:0;flex:1 1}.admin-users{display:flex;flex-direction:column;gap:8px}.admin-user{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:var(--card)}.admin-user.disabled{opacity:.62}.admin-user-main{flex:1 1;min-width:220px}.admin-user-title{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.admin-user-title strong{font-size:14px;font-weight:500}.admin-user-mail{font-size:12px;color:var(--text-2);margin:3px 0 0}.admin-user-meta{font-size:11px;color:var(--text-3);margin:4px 0 0;line-height:1.6}.admin-user-toggle{flex:none;font-size:11px;padding:5px 12px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text-2)}.admin-user-form{flex-basis:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px;padding-top:12px;border-top:1px solid var(--border);margin-top:4px}.admin-user-checks{grid-column:1/-1;display:flex;gap:18px;flex-wrap:wrap;font-size:12px;color:var(--text-2)}.admin-user-checks label{display:inline-flex;align-items:center;gap:6px}.admin-user-checks input{accent-color:var(--brand)}.admin-user-actions{grid-column:1/-1;display:flex;gap:8px}.admin-user-hint{grid-column:1/-1;font-size:11px;color:var(--text-3);margin:0}.admin-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.btn-ghost.on{border-color:var(--brand);color:var(--brand-ink);background:var(--brand-soft)}.admin-toolbar-hint{font-size:11px;color:var(--text-3)}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:10px;gap:10px}.media-cell{margin:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--card)}.media-cell.deleted{opacity:.5}.media-thumb{display:block;aspect-ratio:1;background:var(--bg-soft);overflow:hidden}.media-thumb img{width:100%;height:100%;object-fit:cover;display:block}.media-cell figcaption{display:flex;flex-direction:column;gap:2px;padding:8px 10px}.media-name{font-size:12px;color:var(--text)}.media-del,.media-meta{font-size:10px;color:var(--text-3)}.media-del{margin-top:4px;align-self:flex-start;padding:3px 9px;border-radius:6px;border:1px solid var(--border);background:transparent}.media-del:hover{border-color:#d9534f;color:#d9534f}.audit-list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:12px;background:var(--card);overflow:hidden}.audit-row{display:grid;grid-template-columns:128px 92px minmax(0,1fr) minmax(0,1.2fr) 108px;grid-gap:10px;gap:10px;padding:9px 12px;font-size:11px;border-bottom:1px solid var(--border);align-items:center}.audit-row:last-child{border-bottom:none}.audit-time{color:var(--text-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.audit-action{color:var(--text)}.audit-actor{color:var(--text-2)}.audit-actor,.audit-target{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-ip,.audit-target{color:var(--text-3)}.audit-ip{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.admin-pager{display:flex;align-items:center;gap:10px;justify-content:center;margin-top:16px}.admin-pager-info{font-size:11px;color:var(--text-3)}@media (max-width:560px){.admin-user-form{grid-template-columns:1fr}.admin-mini-row{grid-template-columns:minmax(0,1fr) auto;row-gap:2px}.admin-mini-mail{grid-column:1}.admin-mini-time{grid-column:1/-1}.audit-row{grid-template-columns:96px minmax(0,1fr) auto;row-gap:2px}.audit-ip,.audit-target{grid-column:2/-1;text-align:left}.media-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}}.account-line{display:flex;align-items:baseline;gap:12px;font-size:13px;padding:7px 0;border-bottom:1px solid var(--border)}.account-line:last-of-type{border-bottom:none}.account-line span{width:72px;flex:none;font-size:12px;color:var(--text-3)}.account-line strong{font-weight:500;word-break:break-all}.pw-form{margin-top:4px}.avatar-nickname{display:flex;flex-direction:column;gap:18px}.an-row{display:flex;align-items:center;gap:14px}.an-row-end{align-items:flex-end}.an-avatar{flex:none;width:64px;height:64px;border-radius:50%;overflow:hidden;background:var(--bg-soft);border:1px solid var(--border)}.an-avatar img{width:100%;height:100%;object-fit:cover;display:block}.an-avatar-fallback{width:100%;height:100%;display:grid;place-items:center;font-size:24px;color:var(--text-2)}.an-avatar-actions{display:flex;flex-direction:column;gap:6px}.an-avatar-actions .muted{margin:0}.create-user-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.create-user-hint{font-size:11px;color:var(--text-3);margin:0;line-height:1.6}.create-user{padding:18px;margin-bottom:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card)}.create-user-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.create-user-head h2{font-size:15px;font-weight:500;margin:0}.create-user .field-row{margin-bottom:0}.pw-row{display:flex;gap:6px;align-items:center}.pw-row input{flex:1 1;min-width:0}.pw-row .btn-ghost{flex:none}.create-user-done{margin-top:14px;padding:12px 14px;border-radius:12px;background:var(--brand-soft)}.create-user-done p{margin:0 0 8px;font-size:13px;color:var(--brand-ink)}.admin-user-newpw code,.create-user-done code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;padding:1px 6px;border-radius:5px;background:var(--card)}.admin-user-name{color:var(--text);font-weight:500;margin-right:8px}.admin-user-newpw{grid-column:1/-1;font-size:12px;color:var(--success);background:rgba(31,143,69,.1);border-radius:10px;padding:10px 12px;margin:0;line-height:1.7}@media (max-width:560px){.create-user{padding:14px}}.link-like{background:none;border:none;padding:0;font:inherit;cursor:pointer;color:var(--brand-ink)}.link-like:disabled{color:var(--text-3);cursor:default}.notice{font-size:12px;line-height:1.7;color:var(--amber);background:var(--amber-soft);border-radius:12px;padding:12px 14px;margin:0 0 16px}.textarea{min-height:84px;resize:vertical;line-height:1.7}.record-seg{margin:0 0 18px}.invite-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.invite-created{margin-top:12px;padding:12px 14px;border-radius:12px;background:var(--brand-soft)}.invite-created p{margin:0 0 8px;font-size:12px;color:var(--brand-ink)}.invite-codes{display:flex;gap:8px;flex-wrap:wrap}.invite-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;letter-spacing:.12em;padding:6px 12px;border-radius:8px;border:1px solid transparent;background:var(--card);color:var(--text)}.invite-code:hover{border-color:var(--brand)}.invite-list{display:flex;flex-direction:column;gap:8px;margin-top:18px}.invite-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--card);flex-wrap:wrap}.invite-row.dead{opacity:.6}.invite-main{flex:1 1;min-width:200px}.invite-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.invite-code-static{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;letter-spacing:.12em;color:var(--text)}.invite-meta{font-size:11px;color:var(--text-3);margin:4px 0 0;line-height:1.6}.invite-actions{display:flex;gap:6px;flex-wrap:wrap}@media (max-width:560px){.invite-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.invite-row{align-items:flex-start}}.account-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.account-actions,.diet-preferences .fact{align-items:center}.fact-text{flex:1 1;min-width:0;word-break:break-all}.fact-del{flex:none;border:none;background:transparent;color:var(--text-3);font-size:12px;padding:3px 8px;border-radius:8px}.fact-del:hover:not(:disabled){color:var(--danger);background:var(--danger-soft,rgba(216,33,60,.1))}.fact-del:disabled{opacity:.5;cursor:not-allowed}.chart-avg,.chart-cal{width:100%}.chart-legend{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:10px}.legend-item{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2)}.legend-item i{width:11px;height:11px;border-radius:3px;display:inline-block;flex:none}.legend-item .legend-line{width:16px;height:0;border-top:2px solid var(--text);border-radius:0}.chart-svg{display:block;width:100%;height:auto}.chart-axis{font-size:11px;fill:var(--text-3)}.avg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:18px 16px;gap:18px 16px}.avg-group{padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--bg-soft)}.avg-group-title{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--text);margin-bottom:12px}.avg-group-title i{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none}.avg-unit{font-size:11px;color:var(--text-3);font-weight:400;margin-left:2px}.avg-bars{display:flex;align-items:stretch;gap:8px}.avg-col{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0}.avg-val{font-size:11px;color:var(--text-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.avg-bar-track{width:100%;height:110px;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid var(--border)}.avg-bar{width:62%;max-width:30px;min-height:2px;border-radius:5px 5px 0 0}.avg-tick{font-size:11px;color:var(--text-3);white-space:nowrap}@media (max-width:560px){.avg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.meal-comment{margin:8px 0 0;font-size:13px;line-height:1.6;color:var(--text-2);padding-left:2px}.micro-details{margin-top:8px;font-size:12px;color:var(--text-3)}.micro-details>summary{cursor:pointer;list-style:none;color:var(--brand-ink);font-size:12px}.micro-details>summary::-webkit-details-marker{display:none}.micro-grid{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:8px;color:var(--text-2)}.micro-note{margin:6px 0 0;font-size:11px;color:var(--text-3)}.meal-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px}.meal-delete{border:none;background:none;padding:0;font-size:12px;color:var(--text-3);cursor:pointer;margin-left:auto}.meal-delete:hover{color:#d8213c}.summary-next{margin:10px 0 0;font-size:13px;color:var(--brand-ink);background:var(--brand-soft);border-radius:10px;padding:8px 10px;line-height:1.6}.today-comment .tc-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.today-comment .tc-head h2{margin:0}.tc-status{font-size:12px;color:var(--text-3);white-space:nowrap}.tc-status.done{color:var(--brand-ink)}.tc-text{margin:0;font-size:14px;line-height:1.75}.tc-next{display:flex;gap:8px;align-items:flex-start;margin-top:12px;padding:10px 12px;border-radius:12px;background:var(--brand-soft);font-size:13px;line-height:1.6;color:var(--brand-ink)}.tc-next-tag{flex:none;font-weight:600}.tc-micro{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:12px}.tc-micro span{font-size:12px;color:var(--text-2);background:var(--bg-soft);border-radius:999px;padding:4px 10px}.tc-empty-title{margin:4px 0 6px;font-size:16px;font-weight:600}.tc-empty-sub{margin:0 0 14px;font-size:13px;color:var(--text-2);line-height:1.6}.next-meal-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;height:48px;margin-top:16px;border:none;border-radius:14px;background:var(--brand);color:#fff;font-size:15px;font-weight:500;cursor:pointer;box-shadow:0 6px 16px -6px var(--brand)}.next-meal-btn:hover{filter:brightness(1.04)}.next-meal-arrow{transition:transform .18s}.next-meal-btn:hover .next-meal-arrow{transform:translateX(3px)}.next-meal-wrap{margin-top:14px}.rec-head-actions{display:flex;align-items:center;gap:8px;flex:none}.share-mask{position:fixed;inset:0;background:rgba(0,0,0,.42);display:grid;place-items:center;padding:20px;z-index:60}.share-card{width:100%;max-width:420px;background:var(--card);border-radius:18px;padding:20px;box-shadow:0 20px 60px -20px rgba(0,0,0,.45)}.share-card h3{margin:0 0 8px;font-size:16px}.share-sub{margin:0 0 12px;color:var(--text-2)}.share-sub,.share-url{font-size:12px;line-height:1.6}.share-url{display:block;word-break:break-all;background:var(--bg-soft);border-radius:10px;padding:10px;color:var(--text)}.share-actions{display:flex;gap:10px;margin-top:12px}.share-expire{margin:10px 0 0;font-size:12px;color:var(--text-3)}.share-close{display:block;width:100%;margin-top:16px;border:none;background:none;color:var(--text-3);font-size:13px;cursor:pointer}.share-page .share-summary{display:flex;flex-wrap:wrap;gap:8px 14px;margin-bottom:14px;font-size:13px;color:var(--text-2)}.share-page .share-summary span{background:var(--bg-soft);border-radius:999px;padding:5px 12px}.share-foot{margin:24px 0 40px;text-align:center;font-size:12px;color:var(--text-3)}.share-expired{margin-top:40px}.family-advice-actions{margin-top:16px}.family-stats{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.family-stats-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.member-tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}.member-tab{flex:none;border:1px solid var(--border);background:var(--card);color:var(--text-2);border-radius:999px;padding:6px 14px;font-size:13px;cursor:pointer;white-space:nowrap}.member-tab.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink)}.member-tab i{font-style:normal;font-size:10px;opacity:.7;margin-left:3px}.family-stats-title{margin:0 0 10px;font-size:14px;color:var(--text-2);font-weight:500}.ai-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.ai-filter{border:1px solid var(--border);border-radius:999px;padding:5px 12px;font-size:12px;color:var(--text-2);text-decoration:none;white-space:nowrap}.ai-filter.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink)}.ai-list{display:grid;grid-gap:8px;gap:8px}.ai-row{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:10px 12px;font-size:12px}.ai-row.error{border-color:#f0c2c8}.ai-row-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.ai-scene{font-weight:600;color:var(--text)}.ai-status,.ai-user{color:var(--text-2)}.ai-status{border-radius:999px;padding:2px 8px;background:var(--bg-soft)}.ai-status.error{background:#fde8ea;color:#b3172c}.ai-nums{margin-left:auto;color:var(--text-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ai-row-body{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:6px;color:var(--text-3);line-height:1.55}.ai-model{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.ai-brief{color:var(--text-2)}.ai-error{color:#b3172c}.detail-comment{margin:12px 0 0;padding:10px 12px;border-radius:12px;background:var(--brand-soft);color:var(--brand-ink);font-size:13px;line-height:1.6}.micro-table{margin-top:14px;font-size:13px}.micro-table-head,.micro-table-row{display:grid;grid-template-columns:1fr 90px 90px;grid-gap:8px;gap:8px;padding:7px 0;align-items:center}.micro-table-head{font-size:12px;color:var(--text-3);border-bottom:1px solid var(--border)}.micro-table-head span:not(:first-child),.micro-table-row span:not(:first-child){text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.micro-table-row+.micro-table-row{border-top:1px solid var(--border)}.micro-foot{margin:10px 0 0;font-size:11px;line-height:1.6}.account-lines{margin-top:16px}@media (max-width:760px){.micro-table-head,.micro-table-row{grid-template-columns:1fr 76px 72px;font-size:12px}}.person-chip:disabled{opacity:.45;cursor:not-allowed}.tc-bare{background:var(--bg-soft);border:1px solid var(--border);border-radius:14px;padding:14px 16px;margin-bottom:18px}.tc-bare .tc-head h2{font-size:15px}.summary-family-tag{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;background:var(--brand-soft);color:var(--brand-ink);font-size:11px;font-weight:400;vertical-align:2px}:root{--text-2:#2d2d38;--text-3:#56565f}html[data-theme=dark]{--text-2:rgba(240,240,248,0.9);--text-3:rgba(240,240,248,0.68)}body{font-size:16px;text-size-adjust:100%}.panel p{color:var(--text);font-size:15px;line-height:1.72}.panel p.advice-empty,.panel p.micro-note,.panel p.muted,.panel p.record-note{color:var(--text-2)}.panel h2{font-size:17px;font-weight:600}.page-title{font-size:24px}.muted,.page-sub{font-size:13.5px;color:var(--text-2)}.muted-inline{font-size:13px;color:var(--text-2)}.field-block>label,.field>label{font-size:14px}.tag{font-size:12px}.input,.textarea,input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{font-size:16px!important;line-height:1.6}.record-mode{font-size:14.5px}.preview-change,.proxy-hint,.record-note{font-size:13.5px}.capture-note{margin:10px 0 2px;font-size:13px;color:var(--text-3);text-align:center;letter-spacing:.2px}.form-msg{font-size:14px}.chip{font-size:14.5px;padding:9px 17px}.ratio-hint{font-size:12.5px}.text-supplement-tip{margin:6px 0 0;font-size:13px;line-height:1.6;color:var(--text-2)}.meal-time em,.summary-entry-time em,.today-label{font-size:12px}.meal-time,.summary-entry-time,.today-count,.today-macros,.today-unit{font-size:13px}.meal-time span,.summary-entry-time span{font-size:14px}.day-label{font-size:15px}.food{font-size:13.5px;padding:4px 10px}.food i{font-size:12px}.meal-meta{font-size:13px}.meal-meta strong{font-size:15px}.meal-comment{font-size:14.5px;color:var(--text)}.daily-summary-text,.summary-entry-title{font-size:15px}.daily-summary-stats span{font-size:13px}.summary-next{font-size:14.5px;display:flex;gap:6px;align-items:baseline}.summary-next-tag{flex:none;font-weight:600}.micro-details,.micro-grid{font-size:13px}.micro-note{font-size:12px}.failed-title{font-size:14.5px}.failed-sub{font-size:12.5px}.empty,.rec-error{font-size:14px}.person-avatar{width:28px;height:28px;position:relative;overflow:hidden;font-size:12.5px}.person-avatar-initial{line-height:1}.person-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.tc-status{font-size:12.5px}.tc-text{font-size:15.5px;color:var(--text)}.tc-next{font-size:14.5px}.tc-micro span{font-size:13px}.tc-empty-title{font-size:17px}.tc-empty-sub{font-size:14px}.advice-text{font-size:16px;line-height:1.78;color:var(--text)}.advice-chip{font-size:13px}.insight-alert{font-size:14px}.insight-alert-tag{font-size:12px}.member-stat-alert,.member-stat-meals,.member-stat-nums,.member-stats-sub{font-size:13px}.member-tab{font-size:14px}.ai-row{font-size:13px}.ai-scene,.ai-updating{font-size:13.5px}.ai-updating{display:flex;align-items:center;gap:8px;margin:0 0 14px;padding:10px 14px;border-radius:12px;background:var(--brand-soft);color:var(--brand-ink);line-height:1.5}.ai-updating-dot{flex:none;width:8px;height:8px;border-radius:50%;background:currentColor;animation:ai-pulse 1.1s ease-in-out infinite}@keyframes ai-pulse{0%,to{opacity:.28;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.ai-updating-dot{animation:none}}.panel p.advice-text{font-size:16px;line-height:1.78;color:var(--text)}.panel p.tc-text{font-size:15.5px;line-height:1.78;color:var(--text)}.panel p.tc-empty-title{font-size:17px;font-weight:600;color:var(--text)}.panel p.tc-empty-sub{color:var(--text-2)}.btn-ghost.lg{font-size:16px;padding:15px 30px;color:var(--text)}.btn-block.ghost{margin-top:12px;background:var(--card);color:var(--text);border:1px solid var(--border);box-shadow:none}.form-tip{margin:0 0 16px;padding:10px 12px;border-radius:12px;background:var(--brand-soft);color:var(--brand-ink);font-size:13px;line-height:1.6}.field-hint{margin:6px 0 0;font-size:12.5px;line-height:1.5;color:var(--text-2)}.field-hint.err{color:#b3172c}.pwa-tip{margin:0 0 20px;padding:14px 16px;border-radius:14px;background:var(--bg-soft);border:1px solid var(--border)}.pwa-tip-title{margin:0 0 6px;font-size:14px;font-weight:600;color:var(--text)}.pwa-tip p{margin:0 0 8px;line-height:1.65}.pwa-tip p,.pwa-tip ul{font-size:13px;color:var(--text-2)}.pwa-tip ul{margin:0;padding-left:18px;display:grid;grid-gap:6px;gap:6px;line-height:1.6}.pwa-tip li strong{color:var(--text)}