:root{color-scheme:light;--bg: #f4f0e5;--bg-deep: #ebe5d7;--surface: #fffdf7;--surface-2: #f8f3e8;--surface-3: #f1eadb;--text: #20241f;--text-soft: #3e443d;--muted: #71766d;--line: #e4ddcd;--line-strong: #d7cebb;--primary: #1f6f63;--primary-strong: #16584f;--primary-soft: #e1efe9;--accent: #d89a3e;--accent-soft: #f5e8ce;--carbs: #c2872f;--carbs-soft: #f3e7cf;--protein: #2b8577;--protein-soft: #ddefe9;--fat: #c56851;--fat-soft: #f6e3dc;--danger: #b84e3c;--ok: #2f7d68;--shadow: 0 2px 5px rgba(50, 43, 30, .035), 0 10px 28px rgba(50, 43, 30, .055);--shadow-soft: 0 1px 3px rgba(50, 43, 30, .05);--radius: 20px;--radius-sm: 13px;--nav-height: 72px;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px)}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--bg: #151714;--bg-deep: #10120f;--surface: #1e211d;--surface-2: #252923;--surface-3: #2c312a;--text: #f0eee4;--text-soft: #d7d8ce;--muted: #a3a79b;--line: #343a31;--line-strong: #444b40;--primary: #69b6a4;--primary-strong: #83c9b8;--primary-soft: #243a34;--accent: #e5b15d;--accent-soft: #3c3222;--carbs: #e0ae5b;--carbs-soft: #3a3020;--protein: #64baa9;--protein-soft: #223932;--fat: #e38c74;--fat-soft: #3c2924;--danger: #ef8a76;--ok: #75c1ad;--shadow: 0 2px 5px rgba(0, 0, 0, .16), 0 12px 30px rgba(0, 0, 0, .2);--shadow-soft: 0 1px 3px rgba(0, 0, 0, .25)}}*,*:before,*:after{box-sizing:border-box}html{min-height:100%;background:var(--bg);scroll-padding-top:calc(68px + var(--safe-top));-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;background:radial-gradient(1000px 500px at 10% -10%,rgba(216,154,62,.09),transparent 65%),radial-gradient(900px 500px at 110% 8%,rgba(31,111,99,.08),transparent 62%),var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans SC,sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,textarea,select{font:inherit;color:inherit}button{border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed}input{min-width:0;width:100%;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:10px 12px;font-size:16px;outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}input:focus{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 15%,transparent)}input::placeholder{color:var(--muted);opacity:.75}h1,h2,h3,p{margin:0}h1,h2,h3{letter-spacing:-.02em;line-height:1.24}h1{font-size:clamp(25px,7vw,33px);font-weight:760}h2{font-size:19px;font-weight:720}h3{font-size:16px;font-weight:700}b,strong{font-weight:700}button:focus-visible,a:focus-visible{outline:2px solid var(--primary);outline-offset:3px}#root{min-height:100dvh}.eyebrow{display:block;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.muted{color:var(--muted)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.splash,.fatal-screen{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:32px;text-align:center}.brand-mark{display:inline-grid;place-items:center;border-radius:28%;overflow:hidden;box-shadow:0 8px 20px #1f6f6333;flex:none}.splash-word{font-size:28px;font-weight:780;letter-spacing:.2em;color:var(--text)}.splash-dots{display:flex;gap:6px;margin-top:6px}.splash-dots i{width:5px;height:5px;border-radius:50%;background:var(--primary);animation:pulse 1.2s ease-in-out infinite}.splash-dots i:nth-child(2){animation-delay:.15s}.splash-dots i:nth-child(3){animation-delay:.3s}@keyframes pulse{0%,to{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.fatal-screen h1{font-size:24px}.fatal-screen p{color:var(--muted);max-width:420px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft);padding:16px}.page-stack{display:flex;flex-direction:column;gap:13px;animation:fade-up .28s ease both}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:6px 3px 2px}.page-heading p{margin-top:6px;color:var(--muted);font-size:13px;max-width:42ch}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.section-head.compact{margin-bottom:10px}.section-head h2{margin-top:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:10px 16px;border-radius:12px;font-size:14px;font-weight:680;transition:transform .12s ease,background .15s ease,opacity .15s ease}.btn:active:not(:disabled){transform:scale(.985)}.btn:disabled{opacity:.5}.btn-primary{background:linear-gradient(145deg,#267d6f,var(--primary-strong));color:#fff;box-shadow:0 5px 14px #1f6f6329}@media(prefers-color-scheme:dark){.btn-primary{background:linear-gradient(145deg,#2c8071,#225f55);color:#f7fff9}}.btn-quiet{background:var(--surface-2);border:1px solid var(--line);color:var(--text-soft)}.btn-small{min-height:36px;padding:7px 12px;font-size:13px;border-radius:10px}.btn-danger-ghost{color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 25%,var(--line));background:transparent}.btn-danger-ghost:hover{background:color-mix(in srgb,var(--danger) 7%,transparent)}.text-btn{color:var(--primary);font-size:13px;font-weight:680;padding:5px 4px;border-radius:8px}.text-btn:hover{background:var(--primary-soft)}.icon-btn{width:40px;height:40px;display:inline-grid;place-items:center;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);color:var(--text-soft);flex:none}.icon-btn:hover:not(:disabled){background:var(--surface-3)}.icon-btn:disabled{opacity:.3}.icon-btn.small{width:33px;height:33px;border-radius:10px;background:transparent;border-color:transparent;color:var(--muted)}.icon-btn.small:hover{background:var(--surface-2);color:var(--text)}.icon-btn.danger:hover{color:var(--danger);background:var(--fat-soft)}.notice{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;border-radius:12px;font-size:13px;line-height:1.5}.notice svg{flex:none;margin-top:1px}.notice-error{background:color-mix(in srgb,var(--danger) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--danger) 25%,var(--line));color:color-mix(in srgb,var(--danger) 70%,var(--text))}.notice-warn{background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));color:color-mix(in srgb,var(--accent) 65%,var(--text))}.shell-notice{margin-bottom:12px}.field-label{display:flex;align-items:baseline;gap:7px;margin:12px 1px 6px;color:var(--text-soft);font-size:12px;font-weight:680}.field-label span{color:var(--muted);font-weight:450;font-size:11px}.form-hint{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:12px;margin-top:8px}.form-hint code{background:var(--surface-2);border:1px solid var(--line);padding:1px 5px;border-radius:5px;font-size:11px}.privacy-foot{display:flex;align-items:flex-start;gap:6px;color:var(--muted);font-size:11px;line-height:1.45;margin-top:12px}.privacy-foot svg{flex:none;margin-top:1px}.skeleton-list{display:flex;flex-direction:column;gap:10px}.skeleton{height:86px;border-radius:var(--radius);background:linear-gradient(100deg,var(--surface-2) 25%,var(--surface) 45%,var(--surface-2) 65%);background-size:200% 100%;animation:shimmer 1.4s ease infinite}.skeleton.tall{height:170px}@keyframes shimmer{to{background-position:-200% 0}}.empty-card{background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--radius);padding:32px 20px;text-align:center;color:var(--muted)}.empty-card.slim{padding:24px 18px}.empty-card h3{color:var(--text);margin:10px 0 4px}.empty-card p{font-size:13px;max-width:34ch;margin:0 auto}.empty-icon{width:52px;height:52px;margin:0 auto;display:grid;place-items:center;border-radius:50%;background:var(--primary-soft);color:var(--primary)}.app-shell{min-height:100dvh}.app-header{position:sticky;top:0;z-index:30;padding-top:var(--safe-top);background:color-mix(in srgb,var(--bg) 84%,transparent);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border-bottom:1px solid color-mix(in srgb,var(--line) 65%,transparent)}.app-header-inner{max-width:640px;margin:0 auto;height:62px;padding:0 16px;display:flex;align-items:center;gap:10px}.mini-brand{display:flex;align-items:center;gap:9px;padding:0;text-align:left;flex:1}.mini-mark{width:33px;height:33px;display:grid;place-items:center;border-radius:11px;background:linear-gradient(145deg,#2e8a78,#1c5c52);color:#f7f1e4;box-shadow:0 3px 8px #1f6f6333;flex:none}.mini-brand>span:last-child{display:flex;flex-direction:column;line-height:1.15}.mini-brand b{font-size:16px;letter-spacing:.08em}.mini-brand em{font-style:normal;color:var(--muted);font-size:9px;letter-spacing:.08em}.header-status{display:inline-flex;align-items:center;gap:5px;min-height:27px;padding:3px 9px;border-radius:999px;font-size:10.5px;font-weight:650;border:1px solid transparent;white-space:nowrap}.header-status i{width:5px;height:5px;border-radius:50%;background:currentColor}.header-status.ok{color:var(--ok);background:var(--primary-soft);border-color:color-mix(in srgb,var(--ok) 15%,transparent)}.header-status.pending,.header-status.syncing{color:color-mix(in srgb,var(--accent) 70%,var(--text));background:var(--accent-soft)}.header-status.offline{color:var(--muted);background:var(--surface-2);border-color:var(--line)}.header-status.syncing i{animation:pulse 1s ease infinite}.header-user{width:33px;height:33px;border-radius:50%;background:var(--accent-soft);color:color-mix(in srgb,var(--accent) 55%,var(--text));border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line));font-weight:700;font-size:14px;flex:none}.app-main{max-width:640px;margin:0 auto;padding:14px 16px calc(var(--nav-height) + var(--safe-bottom) + 28px)}.bottom-nav{position:fixed;left:50%;bottom:0;transform:translate(-50%);z-index:40;width:100%;max-width:640px;padding:6px 8px calc(6px + var(--safe-bottom));background:color-mix(in srgb,var(--surface) 92%,transparent);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);box-shadow:0 -8px 30px #322b1e0a}.bottom-nav button{min-height:55px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);border-radius:13px;font-size:10px;font-weight:600;letter-spacing:.02em;transition:color .15s ease,background .15s ease}.bottom-nav button.on{color:var(--primary);background:var(--primary-soft)}.nav-icon{position:relative;display:flex}.toast{position:fixed;z-index:80;left:50%;bottom:calc(var(--nav-height) + var(--safe-bottom) + 14px);transform:translate(-50%);max-width:min(88vw,420px);padding:9px 15px;border-radius:12px;background:color-mix(in srgb,var(--text) 92%,transparent);color:var(--bg);font-size:13px;line-height:1.4;text-align:center;box-shadow:0 8px 30px #0003;animation:toast-in .2s ease both}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,6px)}}.auth-page{position:relative;min-height:100dvh;max-width:520px;margin:0 auto;padding:calc(28px + var(--safe-top)) 18px calc(28px + var(--safe-bottom));display:flex;flex-direction:column;gap:22px;overflow:hidden}.auth-glow{position:fixed;width:330px;height:330px;border-radius:50%;filter:blur(75px);opacity:.38;pointer-events:none;z-index:0}.auth-glow-a{top:-150px;right:-120px;background:#7bb7a8}.auth-glow-b{bottom:-170px;left:-150px;background:#edc78e}.auth-hero,.auth-card,.auth-footer{position:relative;z-index:1}.auth-brand{display:flex;align-items:center;gap:13px;margin-bottom:26px}.auth-wordmark{font-size:23px;font-weight:780;letter-spacing:.12em;line-height:1.1}.auth-wordmark-sub{color:var(--muted);font-size:10px;letter-spacing:.18em;margin-top:3px}.auth-hero h1{font-size:clamp(34px,10vw,47px);font-weight:780;letter-spacing:-.045em;line-height:1.08;margin-bottom:14px}.auth-hero>p{color:var(--text-soft);font-size:14px;max-width:37ch;line-height:1.7}.auth-features{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}.auth-features span{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;background:color-mix(in srgb,var(--surface) 65%,transparent);border:1px solid var(--line);color:var(--text-soft);font-size:10.5px;font-weight:600;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.auth-card{background:color-mix(in srgb,var(--surface) 94%,transparent);border:1px solid var(--line);border-radius:26px;padding:18px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.auth-tabs{display:flex;gap:3px;padding:3px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;margin-bottom:18px}.auth-tabs button{flex:1;padding:7px 8px;border-radius:9px;color:var(--muted);font-size:12.5px;font-weight:650}.auth-tabs button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-soft)}.auth-card h2{font-size:22px}.auth-card-note{color:var(--muted);font-size:12px;margin-top:5px;margin-bottom:8px}.invite-banner{display:flex;gap:8px;align-items:flex-start;background:var(--primary-soft);color:var(--primary-strong);border:1px solid color-mix(in srgb,var(--primary) 20%,var(--line));border-radius:11px;padding:9px 10px;font-size:11.5px;line-height:1.5;margin:10px 0}.invite-banner svg{flex:none;margin-top:1px}.auth-form{margin-top:6px}.auth-form label>span{display:block;color:var(--text-soft);font-size:12px;font-weight:650;margin:12px 1px 5px}.input-with-action{position:relative}.input-with-action input{padding-right:42px}.input-action{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:36px;height:36px;display:grid;place-items:center;color:var(--muted);border-radius:9px}.auth-submit{width:100%;margin-top:16px}.auth-help{margin-top:14px;text-align:center;color:var(--muted);font-size:12px}.auth-help button{color:var(--primary);font-size:12px;font-weight:680;padding:2px 4px}.auth-tiny{margin-top:8px;text-align:center;color:var(--muted);font-size:10px;line-height:1.5}.auth-footer{display:flex;align-items:flex-start;justify-content:center;gap:6px;text-align:center;color:var(--muted);font-size:10.5px;padding:0 14px;line-height:1.6}.auth-footer svg{flex:none;margin-top:2px}.date-hero{padding:13px 13px 14px}.date-nav{display:flex;align-items:center;gap:6px}.date-center{flex:1;text-align:center;min-width:0}.date-center h1{font-size:20px;font-weight:730;margin:1px 0}.date-picker-label{display:inline-flex;align-items:center;gap:3px;color:var(--muted);font-size:10px;cursor:pointer}.date-picker-label input{width:112px;border:0;background:transparent;color:var(--muted);font-size:10px;padding:0;text-align:center;box-shadow:none;border-radius:0}.date-picker-label input:focus{box-shadow:none;border:0}.today-jump{display:block;margin:1px auto -2px}.weight-line{display:flex;align-items:center;gap:7px;margin-top:13px;padding-top:12px;border-top:1px solid var(--line);font-size:12px;color:var(--text-soft)}.weight-icon{width:27px;height:27px;display:grid;place-items:center;border-radius:8px;background:var(--primary-soft);color:var(--primary);flex:none}.weight-line input{width:70px;padding:4px 6px;text-align:center;border-radius:8px;font-size:15px;font-weight:700;background:var(--surface-2)}.weight-line .unit{color:var(--muted);font-size:11px}.privacy-note{margin-left:auto;display:inline-flex;align-items:center;gap:3px;color:var(--muted);font-size:9.5px}.multiplier-line{margin-top:9px;padding:7px 9px;border-radius:9px;background:var(--surface-2);color:var(--muted);font-size:10.5px}.multiplier-line b{color:var(--text-soft)}.multiplier-line span{opacity:.8}.sync-banner{display:flex;align-items:flex-start;gap:9px;border-radius:13px;padding:9px 11px;border:1px solid transparent;font-size:11.5px}.sync-banner>div{display:flex;flex-direction:column;line-height:1.4}.sync-banner strong{font-size:11.5px}.sync-banner span:not(.sync-banner-icon){opacity:.8;font-size:10.5px}.sync-banner-icon{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;flex:none}.sync-banner.ok{background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary-strong)}.sync-banner.ok .sync-banner-icon{background:color-mix(in srgb,var(--primary) 13%,transparent)}.sync-banner.pending,.sync-banner.syncing{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 20%,transparent);color:color-mix(in srgb,var(--accent) 60%,var(--text))}.sync-banner.offline{background:var(--surface-2);border-color:var(--line);color:var(--muted)}.nutrition-card{padding:17px 16px 14px}.kcal-badge{text-align:right;padding:2px 0 0 10px}.kcal-badge strong{font-size:22px;letter-spacing:-.04em}.kcal-badge span{color:var(--muted);font-size:9px;margin-left:3px}.macro-list{display:flex;flex-direction:column;gap:14px}.macro-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.macro-name{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:650}.macro-name i{width:7px;height:7px;border-radius:50%;background:currentColor}.macro-carbs .macro-name{color:var(--carbs)}.macro-protein .macro-name{color:var(--protein)}.macro-fat .macro-name{color:var(--fat)}.macro-value{font-size:11px;color:var(--muted)}.macro-value b{color:var(--text);font-size:15px;margin-right:1px}.progress-track{height:8px;border-radius:999px;background:var(--surface-3);overflow:hidden;margin:5px 0 3px}.progress-track span{display:block;height:100%;border-radius:inherit;transition:width .35s ease}.macro-carbs .progress-track span{background:var(--carbs)}.macro-protein .progress-track span{background:var(--protein)}.macro-fat .progress-track span{background:var(--fat)}.macro-note{color:var(--muted);font-size:9.5px}.macro-note.over{color:var(--danger)}.calorie-foot{margin-top:15px;padding-top:11px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:baseline;color:var(--muted);font-size:11px}.calorie-foot b{color:var(--text-soft);font-size:12px}.entry-card{padding:17px 16px}.editing-banner{display:flex;gap:7px;align-items:flex-start;background:var(--accent-soft);color:color-mix(in srgb,var(--accent) 55%,var(--text));border-radius:10px;padding:8px 10px;font-size:10.5px;line-height:1.5;margin-bottom:10px}.editing-banner svg{flex:none;margin-top:1px}.meal-chips{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:4px 0 2px}.meal-chips button{padding:7px 0;border-radius:9px;border:1px solid var(--line);color:var(--muted);font-size:12px;background:var(--surface-2)}.meal-chips button.on{border-color:var(--primary);color:var(--primary);background:var(--primary-soft);font-weight:700}.macro-inputs{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:9px}.macro-input>span{display:block;font-size:10.5px;font-weight:650;margin:0 1px 4px}.macro-input-carbs>span{color:var(--carbs)}.macro-input-protein>span{color:var(--protein)}.macro-input-fat>span{color:var(--fat)}.macro-input>div{position:relative}.macro-input input{padding:9px 24px 9px 9px;font-size:16px;font-weight:600;text-align:center;background:var(--surface)}.macro-input em{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-style:normal;font-size:10px;color:var(--muted);pointer-events:none}.add-meal-btn{width:100%;margin-top:14px}.meal-detail{display:flex;flex-direction:column;gap:10px}.meal-group{padding:13px 14px 4px}.meal-group-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding-bottom:6px}.meal-group-head h3{font-size:14px}.meal-group-head span{color:var(--muted);font-size:9.5px;white-space:nowrap}.meal-rows{display:flex;flex-direction:column}.meal-row{display:flex;align-items:center;gap:4px;padding:10px 0;border-top:1px solid var(--line);cursor:pointer}.meal-main{flex:1;min-width:0}.meal-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.meal-title strong{font-size:13.5px}.meal-macros{display:flex;flex-wrap:wrap;gap:7px;color:var(--muted);font-size:10px;margin-top:3px}.meal-kcal{color:var(--text-soft)}.meal-actions{display:flex;gap:1px;flex:none}.sync-tag{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;border-radius:999px;font-size:8.5px;font-weight:600;white-space:nowrap}.sync-tag.synced{color:var(--ok);background:var(--primary-soft)}.sync-tag.pending{color:color-mix(in srgb,var(--accent) 65%,var(--text));background:var(--accent-soft)}.sync-tag.error{color:var(--danger);background:var(--fat-soft)}.history-summary{display:flex;align-items:stretch;padding:15px 16px}.summary-main{display:flex;align-items:baseline;gap:4px;flex:none}.summary-main .eyebrow{align-self:center;margin-right:7px}.summary-main strong{font-size:32px;letter-spacing:-.05em}.summary-main>span:last-child{color:var(--muted);font-size:11px}.summary-divider{width:1px;background:var(--line);margin:3px 14px}.summary-side{min-width:0}.summary-side p{font-size:12px;margin-top:2px;color:var(--text-soft)}.summary-side p b{display:inline-block;margin-left:7px;font-size:11px}.summary-side p b.down{color:var(--primary)}.summary-side p b.up{color:var(--fat)}.history-list{display:flex;flex-direction:column;gap:9px}.history-row{width:100%;text-align:left;padding:14px;transition:transform .12s ease,border-color .15s ease}.history-row:hover{border-color:var(--line-strong)}.history-row:active{transform:scale(.995)}.history-row-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.history-row-top strong{display:block;font-size:14px}.history-weight{display:inline-flex;align-items:center;gap:3px;color:var(--muted);font-size:9.5px;margin-top:2px}.private-pill{display:inline-flex;align-items:center;gap:2px;font-style:normal;margin-left:3px;padding:1px 4px;border-radius:4px;background:var(--surface-2);font-size:8px}.history-kcal{text-align:right;line-height:1.1}.history-kcal b{font-size:17px}.history-kcal span{display:block;color:var(--muted);font-size:8px}.history-macros{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:10px 0 9px}.history-macro{border-radius:8px;padding:5px 7px;background:var(--surface-2);min-width:0}.history-macro>span{display:block;font-size:8px;color:var(--muted)}.history-macro b{font-size:12px}.history-macro em{font-style:normal;font-size:8px;color:var(--muted);margin-left:2px}.history-macro.carbs b{color:var(--carbs)}.history-macro.protein b{color:var(--protein)}.history-macro.fat b{color:var(--fat)}.history-row-foot{display:flex;align-items:center;gap:8px;padding-top:7px;border-top:1px solid var(--line);color:var(--muted);font-size:9px}.status-ok{color:var(--primary)}.status-neutral{color:var(--muted)}.open-day{margin-left:auto;display:inline-flex;align-items:center;gap:1px;color:var(--primary);font-weight:650}.friend-count{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--primary-soft);color:var(--primary);font-weight:750;font-size:17px;flex:none}.invite-card{background:radial-gradient(300px 160px at 110% -20%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 70%),var(--surface)}.invite-leaf{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--primary-soft);color:var(--primary)}.friend-code{width:100%;display:flex;align-items:center;justify-content:center;gap:9px;padding:13px 10px;border-radius:14px;border:1px dashed color-mix(in srgb,var(--primary) 35%,var(--line));background:var(--primary-soft);color:var(--primary-strong);font-size:22px;font-weight:760;letter-spacing:.16em;font-variant-numeric:tabular-nums}.friend-code svg{opacity:.55;flex:none}.invite-actions{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:9px}.invite-url{margin-top:8px;padding:7px 9px;border-radius:8px;background:var(--surface-2);color:var(--muted);font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:all;user-select:all}.add-friend-card .section-head svg{color:var(--primary)}.code-input-row{display:grid;grid-template-columns:1fr auto;gap:7px}.code-input-row input{text-transform:uppercase;letter-spacing:.12em;font-weight:650}.code-input-row .btn{padding-left:12px;padding-right:12px}.friend-section{display:flex;flex-direction:column;gap:8px}.count-bubble{min-width:22px;height:22px;display:grid;place-items:center;border-radius:999px;background:var(--accent);color:#fff;font-size:10px;font-weight:750;padding:0 6px}.request-card,.pending-card{display:flex;align-items:center;gap:10px;padding:12px}.avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,var(--accent-soft),var(--primary-soft));border:1px solid var(--line);color:var(--text-soft);font-weight:700;font-size:15px;flex:none}.muted-avatar{opacity:.72}.request-main{flex:1;min-width:0}.request-main strong,.pending-card strong{display:block;font-size:13.5px}.request-main span,.pending-card div span{display:block;color:var(--muted);font-size:9.5px;margin-top:1px}.request-actions{display:flex;gap:5px;flex:none}.pending-card>div:nth-child(2){flex:1;min-width:0}.friend-list{display:flex;flex-direction:column;gap:7px}.friend-card{display:flex;align-items:center;padding:4px 8px 4px 4px}.friend-open{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:7px 4px;text-align:left;color:var(--muted)}.friend-info{flex:1;min-width:0}.friend-info strong{display:block;color:var(--text);font-size:13.5px}.friend-info span{display:block;color:var(--muted);font-size:9px;margin-top:1px}.unfriend-btn{color:var(--muted);font-size:10px;padding:5px 6px;border-radius:7px;flex:none}.unfriend-btn:hover{color:var(--danger);background:var(--fat-soft)}.privacy-card{border:1px solid var(--line);border-radius:var(--radius);padding:15px 16px;background:var(--surface-2);display:flex;flex-direction:column;gap:12px}.privacy-card h3{font-size:14px}.privacy-row{display:flex;gap:9px;align-items:flex-start}.privacy-row>svg{color:var(--primary);flex:none;margin-top:2px}.privacy-row b{display:block;font-size:12px}.privacy-row span{display:block;color:var(--muted);font-size:10.5px;line-height:1.5;margin-top:1px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#1216125c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:flex-end;justify-content:center;animation:fade-in .18s ease both}@keyframes fade-in{0%{opacity:0}}.friend-sheet{width:min(100%,640px);max-height:88dvh;overflow-y:auto;background:var(--surface);border-radius:24px 24px 0 0;padding:7px 16px calc(18px + var(--safe-bottom));box-shadow:0 -20px 60px #0003;animation:sheet-up .26s cubic-bezier(.22,.8,.2,1) both}@keyframes sheet-up{0%{transform:translateY(40px);opacity:.6}}.sheet-handle{width:36px;height:4px;border-radius:999px;background:var(--line-strong);margin:3px auto 9px}.sheet-head{display:flex;align-items:center;gap:10px;padding:3px 0 10px}.sheet-head>div:nth-child(2){flex:1}.sheet-head h2{font-size:18px}.small-avatar{width:38px;height:38px}.friend-date-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 0 11px}.friend-date-nav>div{text-align:center}.friend-date-nav strong{display:block;font-size:13px}.friend-date-nav span{color:var(--muted);font-size:9px}.friend-total-strip{display:grid;grid-template-columns:1.25fr repeat(3,1fr);gap:1px;border-radius:12px;overflow:hidden;background:var(--line);border:1px solid var(--line);margin-bottom:13px}.friend-total-strip>div{background:var(--surface-2);padding:8px 7px}.friend-total-strip span{display:block;color:var(--muted);font-size:8px}.friend-total-strip b{font-size:15px;letter-spacing:-.03em}.friend-total-strip em{font-style:normal;color:var(--muted);font-size:8px;margin-left:2px}.friend-meal-blocks{display:flex;flex-direction:column;gap:9px}.friend-meal-block{border:1px solid var(--line);border-radius:12px;padding:9px 10px}.friend-meal-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:5px;margin-bottom:2px}.friend-meal-head strong{font-size:12px}.friend-meal-head span{color:var(--muted);font-size:8.5px}.friend-food-row{display:flex;justify-content:space-between;gap:8px;padding-top:5px;font-size:11.5px}.friend-food-row em{color:var(--muted);font-style:normal;font-size:9px;white-space:nowrap}.friend-empty-day{padding:24px 10px;text-align:center;color:var(--muted);font-size:12px}.sheet-loading{padding:30px;text-align:center;color:var(--muted);font-size:12px}.sheet-private{display:flex;gap:5px;align-items:center;color:var(--muted);font-size:9.5px;padding:13px 0 10px;line-height:1.4}.sheet-private svg{flex:none}.friend-sheet>.btn{width:100%}.account-card{display:flex;align-items:center;gap:12px;padding:14px}.large-avatar{width:48px;height:48px;font-size:20px}.account-main{flex:1;min-width:0}.account-main h2{font-size:18px;margin-top:1px}.account-main p{color:var(--muted);font-size:10px;margin-top:2px}.account-main p b{color:var(--text-soft);letter-spacing:.07em}.presence-dot{width:8px;height:8px;border-radius:50%;background:var(--muted);flex:none}.presence-dot.on{background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 14%,transparent)}.target-card .section-head svg{color:var(--primary);opacity:.75}.weight-setting{display:flex;align-items:center;gap:6px}.weight-setting input{width:100px;text-align:center;font-weight:700}.weight-setting span{color:var(--muted);font-size:11px}.multiplier-inputs{display:flex;flex-direction:column;gap:7px;margin-top:13px}.multiplier-inputs label{display:grid;grid-template-columns:8px 1fr 90px;align-items:center;gap:7px;font-size:12px;color:var(--text-soft)}.multiplier-inputs input{padding:7px 8px;text-align:center;font-size:14px;font-weight:650}.macro-dot{width:6px;height:6px;border-radius:50%}.macro-dot.carbs{background:var(--carbs)}.macro-dot.protein{background:var(--protein)}.macro-dot.fat{background:var(--fat)}.target-preview{margin-top:13px;padding:9px 10px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line)}.target-preview>span{display:block;color:var(--muted);font-size:9px;margin-bottom:2px}.target-preview div{font-size:10.5px;color:var(--muted)}.target-preview b{font-size:14px;margin:0 2px 0 7px}.target-preview b.carbs{color:var(--carbs)}.target-preview b.protein{color:var(--protein)}.target-preview b.fat{color:var(--fat)}.target-card .btn-primary{width:100%;margin-top:13px}.sync-settings-card .section-head{align-items:center}.sync-orb{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;flex:none}.sync-orb.ok{background:var(--primary-soft);color:var(--primary)}.sync-orb.pending{background:var(--accent-soft);color:var(--accent)}.sync-orb.offline{background:var(--surface-2);color:var(--muted)}.sync-detail{color:var(--muted);font-size:11.5px;line-height:1.55}.sync-error{margin-top:6px;color:var(--danger);font-size:10.5px;word-break:break-word}.sync-settings-card .btn-quiet{width:100%;margin-top:11px}.install-card .section-head svg{color:var(--primary)}.install-ok{display:flex;gap:6px;align-items:center;color:var(--primary);font-size:12px;padding:7px 0}.install-steps{margin:8px 0 0;padding-left:19px;color:var(--muted);font-size:11.5px;line-height:1.6}.install-steps li{margin-bottom:3px}.install-card .btn-primary{width:100%;margin-top:4px}.privacy-card h3{padding-bottom:1px}.logout-btn{width:100%}.app-footer{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:9.5px;padding:4px 4px 8px}@media(min-width:700px){.app-main{padding-top:22px}.card{padding:19px}.bottom-nav{border-radius:18px 18px 0 0;border-left:1px solid var(--line);border-right:1px solid var(--line)}.auth-page{padding-top:calc(42px + var(--safe-top))}.friend-sheet{border-radius:24px;margin-bottom:24px}.sheet-backdrop{align-items:center}}@media(max-width:360px){.app-main{padding-left:12px;padding-right:12px}.header-status{font-size:9px;padding:3px 7px}.macro-inputs{gap:4px}.friend-code{font-size:19px;letter-spacing:.1em}.history-macro em{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
