:root{color-scheme:light;--brand-50: #f2f0ff;--brand-100: #e7e3ff;--brand-200: #d2cbff;--brand-300: #b3a7ff;--brand-400: #9384fb;--brand-500: #7c6cff;--brand-600: #6a57ef;--brand-700: #5946d8;--brand-ink: #3b3163;--accent-orange: #ff9f43;--accent-orange-ink: #a85b14;--accent-green: #25c971;--accent-green-ink: #1c8f52;--accent-rose: #ff5c6c;--accent-rose-ink: #c24a58;--accent-blue: #50b4dc;--accent-blue-ink: #3582a8;--bg: #f6f7fb;--bg-soft: #eef2f9;--surface: #ffffff;--surface-muted: #f8f9fd;--surface-sunken: #f1f3f9;--border: #e6e9f2;--border-strong: #d5dae8;--text: #1a2233;--text-secondary: #5c6577;--muted: #6f7889;--muted-soft: #97a0b1;--good: #159253;--warn: #c9741a;--danger: #d0475f;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--r-xs: 8px;--r-sm: 10px;--r-md: 14px;--r-lg: 18px;--r-xl: 24px;--r-pill: 999px;--font-sans: "MiSans", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-num: "SF Pro Display", "MiSans", ui-sans-serif, system-ui, sans-serif;--fs-11: 11px;--fs-12: 12px;--fs-13: 13px;--fs-14: 14px;--fs-16: 16px;--fs-18: 18px;--fs-20: 20px;--fs-24: 24px;--fs-30: 30px;--fs-38: 38px;--shadow-xs: 0 1px 2px rgba(20, 30, 55, .04);--shadow-sm: 0 1px 3px rgba(20, 30, 55, .06), 0 1px 2px rgba(20, 30, 55, .04);--shadow-md: 0 6px 20px rgba(24, 34, 58, .07);--shadow-lg: 0 18px 44px rgba(24, 34, 58, .12);--shadow-pop: 0 26px 64px rgba(26, 32, 52, .22);--shell-max: 1560px;--sidebar-w: 244px;--rail-w: 84px;--topbar-h: 68px;--focus-ring: 0 0 0 3px rgba(124, 108, 255, .35)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;min-width:320px;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-14);line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4,p{margin:0}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}a{color:inherit;text-decoration:none}input,select,textarea{font:inherit;color:inherit}img{display:block;max-width:100%}ul,ol{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px;border-radius:var(--r-xs)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:-48px;left:12px;z-index:100;padding:10px 16px;border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow-md);font-size:var(--fs-13);font-weight:600;transition:top .16s ease}.skip-link:focus{top:12px}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.eyebrow{color:var(--muted);font-size:var(--fs-11);font-weight:600;letter-spacing:.08em;text-transform:uppercase}.muted{color:var(--muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-sm)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3)}.section-head h2{font-size:var(--fs-18);font-weight:700;letter-spacing:-.01em}.section-head .hint{color:var(--muted);font-size:var(--fs-12)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;padding:0 15px;border-radius:var(--r-sm);border:1px solid transparent;font-size:var(--fs-13);font-weight:600;white-space:nowrap;transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .12s ease}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-primary{background:linear-gradient(135deg,var(--brand-500),var(--brand-600));color:#fff;box-shadow:0 8px 20px #6552e83d}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--brand-400),var(--brand-600))}.btn-ghost{background:var(--surface);border-color:var(--border);color:var(--text)}.btn-ghost:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-muted)}.btn-soft{background:var(--brand-50);color:var(--brand-700)}.btn-soft:hover:not(:disabled){background:var(--brand-100)}.btn-danger{background:#d0475f14;color:var(--danger)}.btn-danger:hover:not(:disabled){background:#d0475f24}.btn-sm{height:32px;padding:0 11px;font-size:var(--fs-12)}.icon-btn{width:36px;height:36px;display:inline-grid;place-items:center;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);transition:background .16s ease,color .16s ease,border-color .16s ease}.icon-btn:hover{background:var(--surface-muted);color:var(--text);border-color:var(--border-strong)}.pill{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border-radius:var(--r-pill);font-size:var(--fs-12);font-weight:600;background:var(--surface-sunken);color:var(--text-secondary)}.pill.good{background:#25c9711f;color:var(--good)}.pill.warn{background:#ff9f4324;color:var(--warn)}.pill.brand{background:var(--brand-50);color:var(--brand-700)}.tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:7px;font-size:var(--fs-11);font-weight:600;background:var(--surface-sunken);color:var(--text-secondary)}.tag.good{background:#25c9711f;color:var(--good)}.tag.brand{background:var(--brand-50);color:var(--brand-700)}.tag.warn{background:#ff9f4324;color:var(--accent-orange-ink)}.tag.rose{background:#ff5c6c1a;color:var(--accent-rose-ink)}.segmented{display:inline-flex;gap:3px;padding:4px;border-radius:var(--r-md);background:var(--surface-sunken)}.segmented-item{display:inline-flex;align-items:center;height:32px;padding:0 16px;border-radius:var(--r-sm);color:var(--muted);font-size:var(--fs-13);font-weight:600;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.segmented-item:hover{color:var(--text)}.segmented-item.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}@media(max-width:760px){.segmented{width:100%}.segmented-item{flex:1;justify-content:center;padding:0 8px}}.field{display:flex;flex-direction:column;gap:6px}.field>span{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:var(--fs-12);font-weight:600}.field>span .count{margin-left:auto;color:var(--muted-soft);font-weight:500}.input,.textarea,.select{width:100%;min-height:40px;padding:9px 12px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);font-size:var(--fs-13);transition:border-color .16s ease,box-shadow .16s ease}.input:hover,.textarea:hover,.select:hover{border-color:var(--border-strong)}.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--brand-300);box-shadow:0 0 0 3px #7c6cff24}.input::placeholder,.textarea::placeholder{color:var(--muted-soft)}.textarea{min-height:84px;resize:vertical;line-height:1.6}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--sp-3)}.form-error{display:flex;align-items:center;gap:6px;padding:9px 12px;border-radius:var(--r-sm);background:#d0475f14;color:var(--danger);font-size:var(--fs-12);font-weight:500}.search-box{position:relative;display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);color:var(--muted);transition:border-color .16s ease,box-shadow .16s ease}.search-box:focus-within{border-color:var(--brand-300);box-shadow:0 0 0 3px #7c6cff24}.search-box input{flex:1;min-width:0;border:0;outline:none;background:transparent;font-size:var(--fs-13);color:var(--text)}.search-box input::placeholder{color:var(--muted-soft)}.switch{position:relative;width:42px;height:24px;flex:none;border-radius:var(--r-pill);background:var(--border-strong);transition:background .2s ease}.switch:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #141e3733;transition:transform .2s ease}.switch.on{background:var(--brand-500)}.switch.on:after{transform:translate(18px)}.switch:disabled{opacity:.5;cursor:not-allowed}.progress{height:6px;border-radius:var(--r-pill);background:var(--surface-sunken);overflow:hidden}.progress>i{display:block;height:100%;border-radius:inherit;background:var(--brand-500);transition:width .35s ease}.link-quiet{display:inline-flex;align-items:center;gap:3px;color:var(--brand-600);font-size:var(--fs-12);font-weight:600}.link-quiet:hover{text-decoration:underline;text-underline-offset:3px}.icon-chip{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:var(--surface-sunken);color:var(--text-secondary)}.icon-chip.orange{background:#ff9f4321;color:var(--accent-orange-ink)}.icon-chip.green{background:#25c97121;color:var(--accent-green-ink)}.icon-chip.purple{background:var(--brand-50);color:var(--brand-600)}.icon-chip.rose{background:#ff5c6c1c;color:var(--accent-rose-ink)}.icon-chip.blue{background:#50b4dc21;color:var(--accent-blue-ink)}.good-text{color:var(--good);font-weight:700}.warn-text{color:var(--warn);font-weight:700}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:48px 24px;border-radius:var(--r-xl);border:1px dashed var(--border-strong);background:var(--surface-muted);text-align:center}.empty-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:var(--r-lg);background:var(--brand-50);color:var(--brand-600)}.empty h3{font-size:var(--fs-16);font-weight:700}.empty p{max-width:420px;color:var(--muted);font-size:var(--fs-13);line-height:1.65}.skeleton{border-radius:var(--r-md);background:linear-gradient(90deg,var(--surface-sunken) 25%,#f7f8fc 37%,var(--surface-sunken) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:15px;height:15px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:spin .7s linear infinite}.spinner.dark{border-color:var(--brand-200);border-top-color:var(--brand-600)}.shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);height:100vh;height:100dvh;overflow:hidden;background:var(--bg)}.shell.is-compact{grid-template-columns:var(--rail-w) minmax(0,1fr)}.sidebar{position:sticky;top:0;align-self:start;height:100vh;display:flex;flex-direction:column;gap:var(--sp-2);padding:22px 14px 16px;background:var(--surface);border-right:1px solid var(--border);z-index:20}.sidebar-head{display:flex;align-items:center;gap:8px;padding:4px 4px 18px 8px}.brand{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.sidebar-toggle{width:26px;height:26px;flex:none;display:grid;place-items:center;border-radius:8px;color:var(--muted);transition:background .16s ease,color .16s ease}.sidebar-toggle:hover{background:var(--surface-sunken);color:var(--text)}.sidebar-toggle-icon{transform:rotate(180deg);transition:transform .2s ease}.is-compact .sidebar-toggle-icon{transform:rotate(0)}.brand-mark{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:11px;background:linear-gradient(135deg,var(--brand-400),var(--brand-600));color:#fff;box-shadow:0 6px 16px #6552e847}.brand-copy{display:flex;flex-direction:column;min-width:0}.brand-copy b{font-size:var(--fs-14);letter-spacing:-.01em}.brand-copy small{color:var(--muted);font-size:var(--fs-11)}.nav{display:flex;flex-direction:column;gap:3px}.nav-item{display:flex;align-items:center;gap:11px;height:42px;padding:0 11px;border-radius:var(--r-sm);color:var(--text-secondary);font-size:var(--fs-13);font-weight:600;transition:background .16s ease,color .16s ease}.nav-item:hover{background:var(--surface-sunken);color:var(--text)}.nav-item.active{background:var(--brand-50);color:var(--brand-700)}.nav-icon{display:grid;place-items:center;flex:none}.sidebar-foot{margin-top:auto;display:flex;flex-direction:column;gap:6px;padding-top:var(--sp-3);border-top:1px solid var(--border)}.sidebar-user{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--r-sm);text-align:left;transition:background .16s ease}.sidebar-user:hover{background:var(--surface-sunken)}.sidebar-user-copy{display:flex;flex-direction:column;min-width:0;flex:1}.sidebar-user-copy b{font-size:var(--fs-13);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-copy small{color:var(--muted);font-size:var(--fs-11);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}a.sidebar-user{text-decoration:none}.sidebar-user.active{background:var(--brand-50)}.sidebar-user.active .sidebar-user-copy b{color:var(--brand-700)}.avatar{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,var(--brand-100),var(--brand-200));color:var(--brand-700);font-size:var(--fs-13);font-weight:700;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.small{width:28px;height:28px;font-size:var(--fs-12)}.avatar.large{width:64px;height:64px;font-size:var(--fs-20)}.is-compact .brand-copy,.is-compact .nav-label,.is-compact .sidebar-user-copy{display:none}.is-compact .sidebar-head{flex-direction:column;gap:6px;padding:4px 0 14px}.is-compact .brand,.is-compact .nav-item,.is-compact .sidebar-user{justify-content:center;padding-left:0;padding-right:0}.is-compact .sidebar-user{padding:8px 0}.main-area{min-width:0;min-height:0;display:flex;flex-direction:column}.topbar-mobile{display:none}.main{flex:1;min-width:0;min-height:0;width:100%;overflow-y:auto;overflow-x:hidden}.main-center{width:100%;max-width:1180px;margin:0 auto;padding:30px 32px 56px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-5)}.page-head h1{font-size:var(--fs-24);font-weight:700;letter-spacing:-.02em}.page-head p{margin-top:5px;color:var(--muted);font-size:var(--fs-13)}.page-actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.tabbar,.nav-scrim{display:none}.toast-stack{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:90;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{max-width:min(440px,calc(100vw - 32px));padding:10px 16px;border-radius:var(--r-sm);background:#1a2030f0;color:#fff;font-size:var(--fs-13);font-weight:500;box-shadow:var(--shadow-pop);animation:toast-in .22s ease both}.toast.error{background:#b23b4c}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dialog-layer{position:fixed;inset:0;display:grid;place-items:center;padding:24px}.dialog-backdrop{position:absolute;inset:0;background:#11172694;animation:fade-in .18s ease both}.dialog{position:relative;display:flex;flex-direction:column;width:100%;max-height:min(88vh,900px);background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--shadow-pop);animation:dialog-in .22s cubic-bezier(.22,1,.36,1) both;isolation:isolate}.dialog-sm{max-width:400px}.dialog-md{max-width:560px}.dialog-lg{max-width:760px}.dialog-xl{max-width:980px}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);padding:20px 22px 14px;border-bottom:1px solid var(--border)}.dialog-head h2{font-size:var(--fs-18);font-weight:700;letter-spacing:-.01em}.dialog-head p{margin-top:4px;color:var(--muted);font-size:var(--fs-12);line-height:1.55}.dialog-body{flex:1;min-height:0;overflow-y:auto;padding:18px 22px;display:flex;flex-direction:column;gap:var(--sp-4)}.dialog-body>.dish-detail-hero,.dialog-body>.share-card,.dialog-body>.detail-stats,.dialog-body>.badge-detail,.dialog-body>.cover-preview,.dialog-body>.vital-sheet-metric,.dialog-body>.kind-list,.dialog-body>.choice-grid,.dialog-body>.form-grid,.dialog-body>.photo-card-field{flex:none}.dialog-foot{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2);padding:14px 22px 18px;border-top:1px solid var(--border)}.confirm-message{color:var(--text-secondary);font-size:var(--fs-13);line-height:1.65}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-in{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:1024px){.shell{grid-template-columns:var(--rail-w) minmax(0,1fr)}.brand-copy,.nav-label,.sidebar-user-copy{display:none}.sidebar-head{flex-direction:column;gap:6px;padding:4px 0 14px}.brand,.nav-item,.sidebar-user{justify-content:center;padding-left:0;padding-right:0}.sidebar-user{padding:8px 0}.main-center{padding:24px 22px 48px}}@media(max-width:760px){.shell,.shell.is-compact{grid-template-columns:minmax(0,1fr)}.sidebar{position:fixed;top:0;left:0;width:248px;height:100vh;transform:translate(-102%);transition:transform .24s cubic-bezier(.22,1,.36,1);box-shadow:var(--shadow-lg)}.sidebar.open{transform:translate(0)}.sidebar.open .brand-copy,.sidebar.open .nav-label,.sidebar.open .sidebar-user-copy{display:flex}.sidebar.open .sidebar-head{flex-direction:row;gap:8px;padding:4px 4px 18px 8px}.sidebar.open .brand,.sidebar.open .nav-item,.sidebar.open .sidebar-user{justify-content:flex-start;padding-left:11px;padding-right:11px}.sidebar.open .sidebar-user{padding:8px}.nav-scrim{display:block;position:fixed;inset:0;z-index:19;background:#141a2a66;opacity:0;pointer-events:none;transition:opacity .2s ease}.nav-scrim.open{opacity:1;pointer-events:auto}.topbar-mobile{position:sticky;top:0;z-index:15;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);height:58px;padding:0 16px;background:var(--bg);border-bottom:1px solid var(--border)}.topbar-mobile-title{font-size:var(--fs-14);font-weight:700}.main-center{padding:18px 16px 96px}.page-head h1{font-size:var(--fs-20)}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:16;display:grid;grid-template-columns:repeat(5,1fr);gap:2px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--border);box-shadow:0 -6px 20px #18223a0f}.tab-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;border-radius:var(--r-sm);color:var(--muted);font-size:10px;font-weight:600;min-height:48px;justify-content:center}.tab-item small{font-size:10px}.tab-item.active{color:var(--brand-600);background:var(--brand-50)}.dialog-layer{padding:0;align-items:flex-end}.dialog{max-width:none;max-height:92vh;border-radius:var(--r-xl) var(--r-xl) 0 0;animation:sheet-in .24s cubic-bezier(.22,1,.36,1) both}.dialog-head{padding:16px 18px 12px}.dialog-body{padding:16px 18px}.dialog-foot{padding:12px 18px calc(14px + env(safe-area-inset-bottom))}.dialog-foot .btn{flex:1;height:44px}@keyframes sheet-in{0%{transform:translateY(24px);opacity:.6}to{transform:translateY(0);opacity:1}}.toast-stack{top:auto;bottom:calc(84px + env(safe-area-inset-bottom))}}.ai-fab{position:fixed;z-index:30;right:32px;bottom:28px;width:52px;height:52px;display:grid;place-items:center;border-radius:50%;color:#fff;background:linear-gradient(135deg,var(--brand-500),#35d0ff);box-shadow:0 10px 26px #5965e957;transition:transform .16s ease,box-shadow .16s ease}.ai-fab:hover{transform:translateY(-2px);box-shadow:0 14px 32px #5965e96b}.ai-fab:active{transform:scale(.96)}.ai-chat{display:flex;flex-direction:column;gap:var(--sp-3);min-height:340px}.ai-chat-list{flex:1;min-height:260px;max-height:min(46vh,420px);overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding-right:4px}.ai-chat-intro{display:flex;flex-direction:column;gap:var(--sp-3);color:var(--text-secondary);font-size:var(--fs-13);line-height:1.65}.ai-suggestions{display:flex;flex-wrap:wrap;gap:8px}.ai-suggestions button{padding:8px 12px;border-radius:var(--r-sm);color:var(--brand-600);background:var(--brand-50);font-size:var(--fs-12);font-weight:600;transition:background .16s ease}.ai-suggestions button:hover{background:var(--brand-100)}.ai-bubble{max-width:86%;padding:10px 14px;border-radius:var(--r-md);font-size:var(--fs-13);line-height:1.7;word-break:break-word}.ai-bubble.user{align-self:flex-end;white-space:pre-wrap;color:#fff;background:linear-gradient(135deg,var(--brand-500),var(--brand-600));border-bottom-right-radius:6px}.ai-line{display:block}.ai-bullet{display:inline-block;width:14px;color:var(--brand-500)}.ai-bubble.assistant{align-self:flex-start;color:var(--text);background:var(--surface-muted);border:1px solid var(--border);border-bottom-left-radius:6px}.ai-bubble.pending{display:flex;align-items:center;gap:4px;padding:14px}.ai-bubble.pending i{width:6px;height:6px;border-radius:50%;background:var(--muted-soft);animation:ai-typing 1.1s infinite ease-in-out}.ai-bubble.pending i:nth-child(2){animation-delay:.15s}.ai-bubble.pending i:nth-child(3){animation-delay:.3s}@keyframes ai-typing{0%,to{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}.ai-composer{display:flex;align-items:flex-end;gap:8px}.ai-composer .input{flex:1;min-height:42px;max-height:120px;resize:none;line-height:1.5;padding-top:11px;padding-bottom:11px}.ai-send{flex:none;width:42px;height:42px;padding:0;justify-content:center}@media(max-width:760px){.ai-fab{right:18px;bottom:calc(78px + env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){.ai-fab,.ai-fab:hover,.ai-fab:active{transition:none;transform:none}.ai-bubble.pending i{animation:none}}.ai-bubble-photo{display:block;max-width:220px;border-radius:var(--r-sm);margin-bottom:6px}.ai-attach{flex:none;width:42px;height:42px}.ai-composer-photo{position:relative;width:96px;height:72px;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--border)}.ai-composer-photo img{width:100%;height:100%;object-fit:cover}.ai-composer-photo .icon-btn{position:absolute;top:3px;right:3px;width:24px;height:24px;background:#11172699;border-color:transparent;color:#fff}.ai-meal-card{align-self:stretch;display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface-muted)}.ai-meal-card.saved{background:#25c97112;border-color:#25c97140}.ai-meal-card-head{display:flex;align-items:center;gap:8px;font-size:var(--fs-12)}.ai-meal-card-icon{width:24px;height:24px;flex:none;display:grid;place-items:center;border-radius:8px;color:var(--brand-600);background:var(--brand-50)}.ai-meal-card.saved .ai-meal-card-icon{color:var(--good);background:#25c97124}.ai-meal-card-head b{flex:1;font-weight:650}.ai-meal-card-total{color:var(--text-secondary);font-size:var(--fs-12);font-weight:700}.ai-meal-row{display:grid;grid-template-columns:minmax(0,1fr) 74px auto auto;align-items:center;gap:6px}.ai-meal-row .input{min-height:34px;padding:6px 9px;font-size:var(--fs-12)}.ai-meal-kcal{text-align:right}.ai-meal-unit{color:var(--muted);font-size:10px}.ai-meal-remove{width:30px;height:30px}.ai-meal-add{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:var(--r-xs);color:var(--brand-600);font-size:var(--fs-11);font-weight:600}.ai-meal-add:hover{background:var(--brand-50)}.ai-meal-choice{display:flex;flex-wrap:wrap;gap:5px}.ai-meal-choice .choice-chip{flex-direction:column;height:auto;padding:6px 10px;gap:0;font-size:var(--fs-11);line-height:1.3}.ai-meal-choice .choice-chip small{color:var(--muted-soft);font-size:9px;font-weight:500}.ai-meal-choice .choice-chip.active small{color:var(--brand-600)}.ai-meal-note{color:var(--muted);font-size:var(--fs-11);line-height:1.5}.ai-meal-save{align-self:flex-end;height:34px;padding:0 14px;font-size:var(--fs-12)}.ai-action-summary{padding:9px 12px;border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);font-size:var(--fs-12);line-height:1.6}.boot{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:14px;color:var(--muted);font-size:var(--fs-13)}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr);background:var(--bg)}.login-art{position:relative;display:flex;align-items:center;padding:64px clamp(32px,6vw,88px);overflow:hidden;background:linear-gradient(150deg,#241f3d,#332a5c 48%,#2b2450);color:#fff}.login-art-inner{position:relative;z-index:2;max-width:520px}.login-badge{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:var(--r-pill);background:#ffffff1a;border:1px solid rgba(255,255,255,.16);font-size:var(--fs-12);font-weight:600;letter-spacing:.02em}.login-art h1{margin-top:26px;font-size:clamp(30px,3.6vw,46px);line-height:1.16;letter-spacing:-.03em;font-weight:700}.login-art p{margin-top:18px;max-width:420px;color:#ffffff9e;font-size:var(--fs-14);line-height:1.75}.login-points{display:flex;flex-direction:column;gap:12px;margin-top:32px}.login-points li{display:flex;align-items:center;gap:9px;color:#ffffffd1;font-size:var(--fs-13)}.login-points svg{flex:none;color:#9df0c2}.login-orb{position:absolute;border-radius:50%;filter:blur(70px);pointer-events:none}.login-orb.one{width:300px;height:300px;top:-70px;right:-60px;background:#7c6cff8c}.login-orb.two{width:260px;height:260px;bottom:-80px;left:-60px;background:#25c97147}.login-panel{display:grid;place-items:center;padding:40px 24px}.login-form{width:100%;max-width:372px;display:flex;flex-direction:column;gap:14px}.login-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:var(--r-sm);background:var(--surface-sunken)}.login-tabs button{height:34px;border-radius:8px;color:var(--muted);font-size:var(--fs-13);font-weight:600;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.login-tabs button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.login-form h2{margin-top:10px;font-size:var(--fs-24);letter-spacing:-.02em}.login-sub{margin-top:-8px;margin-bottom:4px;color:var(--muted);font-size:var(--fs-12);line-height:1.6}.login-submit{height:46px;margin-top:6px;font-size:var(--fs-14)}.login-demo{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin-top:2px;padding:11px 14px;border-radius:var(--r-md);border:1px dashed var(--brand-200);background:var(--brand-50);color:var(--brand-700);text-align:left;transition:border-color .16s ease,background .16s ease}.login-demo:hover{border-color:var(--brand-300);background:var(--brand-100)}.login-demo>span{display:flex;flex-direction:column;gap:1px}.login-demo b{font-size:var(--fs-12)}.login-demo small{color:var(--muted);font-size:var(--fs-11)}.login-foot{margin-top:2px;color:var(--muted-soft);font-size:var(--fs-11);text-align:center;line-height:1.6}@media(max-width:900px){.login-page{grid-template-columns:minmax(0,1fr)}.login-art{display:none}.login-panel{min-height:100vh;align-items:center;padding:28px 20px}}.home-start{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:var(--sp-4);padding:40px 32px 34px;border-radius:var(--r-xl);border:1px solid var(--border);background:linear-gradient(150deg,#ffffff 0%,var(--brand-50) 100%);box-shadow:var(--shadow-sm);text-align:center}.home-start-icon{width:56px;height:56px;display:grid;place-items:center;border-radius:18px;background:var(--surface);color:var(--brand-600);box-shadow:var(--shadow-sm)}.home-start h2{margin-top:4px;font-size:var(--fs-20);letter-spacing:-.02em}.home-start>p{max-width:520px;color:var(--text-secondary);font-size:var(--fs-13);line-height:1.7}.home-start-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%;max-width:820px;margin-top:12px;text-align:left}.home-start-steps li{display:flex;gap:9px;padding:13px 14px;border-radius:var(--r-md);background:#ffffffb8;color:var(--text-secondary);font-size:var(--fs-12);line-height:1.6}.home-start-steps b{flex:none;width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:var(--brand-100);color:var(--brand-700);font-size:var(--fs-11)}.home-start-steps a{margin:0 2px;color:var(--brand-600);font-weight:600}.home-start-steps a:hover{text-decoration:underline;text-underline-offset:3px}.home-start-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px}.trend-card{padding:18px 20px 16px;border-radius:var(--r-xl);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm)}.trend-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}.trend-head h2{font-size:var(--fs-16);font-weight:700;letter-spacing:-.01em}.trend-head p{margin-top:3px;color:var(--muted);font-size:var(--fs-12)}.trend-tag{flex:none;padding:4px 9px;border-radius:8px;background:var(--surface-sunken);color:var(--muted);font-size:var(--fs-11)}.trend-tag b{color:var(--text)}.trend-hero{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(200px,.8fr);gap:var(--sp-5);padding:20px 22px 16px}.trend-hero-main{min-width:0;display:flex;flex-direction:column}.trend-hero-value{display:flex;align-items:baseline;gap:6px;margin-top:6px}.trend-hero-value strong{font-size:var(--fs-38);line-height:1;letter-spacing:-.03em}.trend-hero-value>span{color:var(--muted);font-size:var(--fs-12)}.trend-hero-value>span:last-child:not(:nth-child(2)){margin-left:4px;padding:2px 7px;border-radius:7px;background:#25c9711f;font-size:var(--fs-11);font-weight:700}.trend-hero-value .warn-text{background:#ff9f4324}.trend-foot{margin-top:6px;color:var(--muted);font-size:var(--fs-11);line-height:1.55}.trend-hero-media{display:flex;flex-direction:column;gap:8px;min-width:0}.trend-media-head{display:flex;align-items:baseline;justify-content:space-between;gap:6px}.trend-media-date{color:var(--muted-soft);font-size:var(--fs-11)}.trend-media-shot{flex:1;min-height:150px;border-radius:var(--r-md);overflow:hidden;background:var(--surface-sunken)}.trend-media-shot img{width:100%;height:100%;object-fit:cover}.trend-media-tabs{align-self:flex-start}.trend-media-tabs .segmented-item{height:26px;padding:0 11px;font-size:var(--fs-11)}.trend-media-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:150px;padding:14px;border-radius:var(--r-md);border:1px dashed var(--border-strong);background:var(--surface-muted);text-align:center}.trend-media-empty b{font-size:var(--fs-12)}.trend-media-empty small{max-width:190px;color:var(--muted);font-size:var(--fs-11);line-height:1.5}.home-trend-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:var(--sp-4);margin-top:var(--sp-4);align-items:stretch}.home-trend-grid>.trend-card{display:flex;flex-direction:column}.home-trend-grid>.trend-card .chart-bars-wrap{flex:1;display:flex;flex-direction:column;justify-content:flex-end}.home-trend-grid+.trend-card,.trend-card+.trend-card{margin-top:var(--sp-4)}.trend-split{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;padding-top:11px;border-top:1px solid var(--border)}.trend-split>div{display:flex;flex-direction:column;gap:2px;min-width:0}.trend-split span{color:var(--muted);font-size:var(--fs-11)}.trend-split b{font-size:var(--fs-14)}.trend-inline-action{display:inline-flex;align-items:center;gap:4px;margin-top:10px;color:var(--brand-600);font-size:var(--fs-12);font-weight:600}.trend-inline-action:hover{text-decoration:underline;text-underline-offset:3px}.trend-today-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:4px}.trend-today-list li{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:var(--r-md);background:var(--surface-sunken)}.trend-today-list li.done{background:#25c97117}.trend-today-list span{color:var(--muted);font-size:var(--fs-11)}.trend-today-list b{font-size:var(--fs-12);font-weight:700}.chart-line-wrap,.chart-bars-wrap{margin-top:4px}.chart-line,.chart-bars{width:100%;display:block;overflow:visible}.chart-grid{stroke:var(--border);stroke-width:1;stroke-dasharray:3 5}.chart-target-line{stroke:var(--border-strong);stroke-width:1.4;stroke-dasharray:5 5}.chart-axis{display:flex;color:var(--muted-soft);font-size:var(--fs-11)}.chart-axis-split{align-items:baseline;justify-content:space-between;gap:8px;margin-top:2px}.chart-axis-split b{color:var(--text);font-size:var(--fs-13)}.chart-axis-bars{position:relative;height:15px;margin-top:6px}.chart-axis-bars span{position:absolute;top:0;color:var(--muted-soft);font-size:var(--fs-11);line-height:1;white-space:nowrap}.chart-empty{padding:28px 0;color:var(--muted);font-size:var(--fs-12);text-align:center}@media(max-width:980px){.trend-hero{grid-template-columns:minmax(0,1fr)}.trend-media-shot,.trend-media-empty{min-height:180px}}@media(max-width:760px){.trend-card{padding:16px 16px 14px;border-radius:var(--r-lg)}.trend-hero{gap:var(--sp-4)}.trend-hero-value strong{font-size:var(--fs-30)}.home-trend-grid{grid-template-columns:minmax(0,1fr)}.trend-split{grid-template-columns:repeat(3,1fr)}.home-start{padding:28px 18px 24px}.home-start-steps{grid-template-columns:minmax(0,1fr)}.home-start-actions{width:100%;flex-direction:column}.home-start-actions .btn{width:100%}}.wo-kinds{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:7px}.wo-kind{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;height:60px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:var(--fs-11);font-weight:600;transition:border-color .16s ease,background .16s ease,color .16s ease}.wo-kind:hover{border-color:var(--brand-300);color:var(--brand-700)}.wo-kind.active{border-color:#7c6cff73;background:var(--brand-50);color:var(--brand-700);box-shadow:inset 0 0 0 1px #7c6cff29}.wo-panel{display:flex;flex-direction:column;gap:14px;padding:16px 18px 17px;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface)}.wo-panel-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.wo-panel-title h2{font-size:var(--fs-13);font-weight:700}.wo-panel-title span{color:var(--muted);font-size:var(--fs-11);font-weight:600}.wo-panel-head{display:flex;flex-direction:column;gap:10px}.wo-when{display:flex;gap:16px}.wo-when label{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:var(--fs-11);font-weight:600}.wo-when input{min-height:28px;padding:2px 0;border:0;border-bottom:1px dashed var(--border-strong);background:transparent;color:var(--text-secondary);font-family:var(--font-num);font-size:var(--fs-12);font-variant-numeric:tabular-nums}.wo-when input:focus{outline:none;border-bottom-color:var(--brand-400);color:var(--text)}.wo-name{width:100%;padding:0;border:0;background:transparent;color:var(--text);font-size:var(--fs-18);font-weight:700;letter-spacing:-.01em}.wo-name::placeholder{color:var(--muted-soft);font-weight:600}.wo-name:focus{outline:none}.wo-heroes{display:flex;flex-wrap:wrap;gap:22px;padding-top:12px;border-top:1px solid var(--border)}.wo-hero{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1 1 88px}.wo-hero>span{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.1em}.wo-hero-value{display:flex;align-items:baseline;gap:5px}.wo-hero-value input{width:calc(var(--digits, 4) * 1ch);max-width:100%;flex:0 1 auto;min-width:2ch;padding:0;border:0;background:transparent;color:var(--text);font-size:32px;font-weight:600;line-height:1.1;letter-spacing:-.03em;-moz-appearance:textfield}.wo-hero-value input::-webkit-outer-spin-button,.wo-hero-value input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.wo-hero-value input::placeholder{color:var(--muted-soft);opacity:.5}.wo-hero-value input:focus{outline:none}.wo-hero-value em{flex:none;color:var(--muted);font-size:var(--fs-12);font-style:normal;font-weight:600}.wo-derived{display:inline-flex;align-items:center;gap:6px;width:fit-content;padding:4px 10px;border-radius:var(--r-pill);background:var(--brand-50);color:var(--brand-700);font-size:var(--fs-11);font-weight:600;font-variant-numeric:tabular-nums}.wo-sets{display:flex;flex-direction:column}.wo-sets-head,.wo-set{display:grid;grid-template-columns:minmax(0,1fr) 68px 54px 54px 24px;align-items:center;gap:8px}.wo-sets-head{padding:0 2px 8px;border-bottom:1px solid var(--border);color:var(--text-secondary);font-size:var(--fs-11);font-weight:700;letter-spacing:.04em}.wo-sets-head span:nth-child(n+2){text-align:center}.wo-set{padding:5px 2px;border-top:1px solid var(--border)}.wo-set input{width:100%;min-width:0;min-height:32px;padding:4px 8px;border:0;border-radius:var(--r-xs);background:transparent;color:var(--text);font-size:var(--fs-13);transition:background .14s ease}.wo-set input:hover{background:var(--surface-muted)}.wo-set input:focus{outline:none;background:var(--surface-muted);box-shadow:inset 0 0 0 1px var(--brand-300)}.wo-set input::placeholder{color:var(--muted-soft)}.wo-set-name{font-weight:600}.wo-set-num{text-align:center;font-size:var(--fs-13);font-variant-numeric:tabular-nums}.wo-set-num::-webkit-outer-spin-button,.wo-set-num::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.wo-set-del{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;color:var(--muted-soft);opacity:0;transition:opacity .14s ease,color .14s ease,background .14s ease}.wo-set:hover .wo-set-del,.wo-set:focus-within .wo-set-del{opacity:1}.wo-set-del:hover:not(:disabled){background:#d0475f1a;color:var(--danger)}.wo-set-del:disabled{cursor:not-allowed;opacity:.25}.wo-add-row{display:inline-flex;align-items:center;justify-content:center;gap:5px;width:100%;min-height:34px;border-radius:var(--r-sm);border:1px dashed var(--border-strong);color:var(--muted);font-size:var(--fs-12);font-weight:600;transition:border-color .16s ease,color .16s ease,background .16s ease}.wo-add-row:hover{border-color:var(--brand-300);background:var(--brand-50);color:var(--brand-700)}.wo-extra{gap:12px;background:var(--surface-muted)}.wo-extra-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.wo-quiet-field{display:flex;flex-direction:column;gap:4px}.wo-quiet-field>span{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.08em}.wo-quiet-field input{min-height:32px;padding:4px 0;border:0;border-bottom:1px solid var(--border-strong);background:transparent;color:var(--text-secondary);font-size:var(--fs-12)}.wo-quiet-field input:focus{outline:none;border-bottom-color:var(--brand-400)}.wo-media-field{display:flex;flex-direction:column;gap:7px}.wo-media-label{display:flex;align-items:baseline;gap:6px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.08em}.wo-media-label small{color:var(--muted-soft);font-size:var(--fs-11);font-weight:600}.wo-media{display:flex;flex-wrap:wrap;gap:7px}.wo-media-item{position:relative;width:60px;height:60px;border-radius:var(--r-sm);overflow:hidden;background:var(--surface-sunken)}.wo-media-item img,.wo-media-item video{width:100%;height:100%;object-fit:cover}.wo-media-remove{position:absolute;top:3px;right:3px;width:16px;height:16px;display:grid;place-items:center;border-radius:50%;background:#1014209e;color:#fff}.wo-media-add{width:60px;height:60px;display:grid;place-items:center;border-radius:var(--r-sm);border:1px dashed var(--border-strong);background:transparent;color:var(--muted);transition:border-color .16s ease,color .16s ease,background .16s ease}.wo-media-add:hover:not(:disabled){border-color:var(--brand-300);background:var(--brand-50);color:var(--brand-700)}.wo-media-add:disabled{opacity:.6}@media(max-width:760px){.wo-kinds{grid-template-columns:repeat(4,minmax(0,1fr))}.wo-kind{height:54px;font-size:10px}.wo-heroes{gap:16px}.wo-hero-value input{font-size:26px}.wo-set-del{opacity:1}.wo-sets-head,.wo-set{grid-template-columns:minmax(0,1fr) 58px 44px 44px 24px;gap:5px}.wo-panel{padding:13px 14px 14px}}.activity-page{display:flex;flex-direction:column;gap:var(--sp-4)}.date-input{width:152px;min-height:38px;font-size:var(--fs-12)}.activity-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr);gap:var(--sp-4);align-items:start}.activity-card{padding:18px 20px}.week-chart{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;height:172px;margin-top:10px}.week-col{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}.week-value{color:var(--muted);font-size:10px;font-weight:600;height:14px}.week-bar-track{flex:1;width:100%;max-width:34px;display:flex;align-items:flex-end;border-radius:8px;background:var(--surface-sunken);overflow:hidden}.week-bar{display:block;width:100%;border-radius:8px;background:linear-gradient(180deg,var(--brand-300),var(--brand-500));transition:height .4s ease}.week-col.today .week-bar{background:linear-gradient(180deg,#ffc27a,var(--accent-orange))}.week-label{color:var(--muted);font-size:var(--fs-11);font-weight:600}.week-col.today .week-label{color:var(--accent-orange-ink)}.week-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.week-summary>div{display:flex;flex-direction:column;gap:2px}.week-summary span{color:var(--muted);font-size:var(--fs-11)}.week-summary b{font-size:var(--fs-14)}.activity-side{display:flex;flex-direction:column;gap:var(--sp-4)}.steps-card{padding-bottom:16px}.steps-value{display:flex;align-items:baseline;gap:6px}.steps-value strong{font-size:var(--fs-30);line-height:1}.steps-value span{color:var(--muted);font-size:var(--fs-11)}.steps-edit{display:flex;gap:7px}.activity-tip{display:flex;gap:12px;align-items:flex-start}.activity-tip b{font-size:var(--fs-13)}.activity-tip p{margin-top:4px;color:var(--muted);font-size:var(--fs-12);line-height:1.6}.activity-log{display:flex;flex-direction:column}.workout-list{display:flex;flex-direction:column;gap:8px}.workout-list li{display:flex;flex-direction:column;gap:9px;padding:11px 13px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface)}.workout-record-head{display:flex;align-items:center;gap:11px}.workout-icon{width:36px;height:36px;flex:none;display:grid;place-items:center;border-radius:var(--r-sm);color:var(--accent-green-ink);background:#25c97121}.workout-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.workout-copy b{font-size:var(--fs-13)}.workout-copy span{color:var(--muted);font-size:var(--fs-11);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workout-record-items{display:flex;flex-direction:column;gap:1px;margin-left:47px;padding:7px 10px;border-radius:var(--r-sm);background:var(--surface-muted)}.workout-record-items li{display:flex;align-items:baseline;gap:8px;padding:3px 0;border:0;background:none;font-size:var(--fs-12)}.workout-record-items span{flex:none;font-weight:600}.workout-record-items em{flex:1;min-width:0;color:var(--muted);font-size:var(--fs-11);font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workout-record-items b{flex:none;color:var(--accent-orange-ink);font-size:var(--fs-11)}.workout-record-media{display:flex;flex-wrap:wrap;gap:7px;margin-left:47px}.workout-record-media img,.workout-record-media video{width:92px;height:92px;border-radius:var(--r-sm);object-fit:cover;background:var(--surface-sunken)}.workout-record-note{margin-left:47px;color:var(--muted);font-size:var(--fs-11);line-height:1.6}.posture-list{display:flex;flex-direction:column;gap:12px}.posture-card{display:flex;flex-direction:column;gap:10px;padding:13px 15px 15px;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-xs)}.posture-card-head{display:flex;align-items:center;gap:10px}.posture-date{flex:none;padding:3px 8px;border-radius:7px;background:var(--brand-50);color:var(--brand-700);font-size:10px;font-weight:700}.posture-note{flex:1;min-width:0;color:var(--muted);font-size:var(--fs-11);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.posture-card-head .icon-btn{flex:none}.posture-card-head .icon-btn:first-of-type{margin-left:auto}.posture-shots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.posture-shot{position:relative;margin:0;aspect-ratio:3 / 4;border-radius:var(--r-sm);overflow:hidden;background:var(--surface-sunken)}.posture-shot img{width:100%;height:100%;object-fit:cover}.posture-shot figcaption{position:absolute;left:7px;bottom:7px;padding:2px 7px;border-radius:6px;background:#1014208c;color:#fff;font-size:10px;font-weight:700;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.posture-shot.is-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:1px dashed var(--border-strong);color:var(--muted-soft)}.posture-shot.is-empty span{font-size:var(--fs-12);font-weight:600}.posture-shot.is-empty small{font-size:10px}.posture-upload-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.posture-slot{display:flex;flex-direction:column;gap:6px}.posture-slot-label{color:var(--text-secondary);font-size:var(--fs-12);font-weight:700}.posture-slot-box{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;aspect-ratio:3 / 4;padding:10px;border-radius:var(--r-md);border:1.5px dashed var(--border-strong);background:var(--surface-muted);color:var(--muted);text-align:center;cursor:pointer;transition:border-color .16s ease,background .16s ease,color .16s ease}.posture-slot-box:hover{border-color:var(--brand-300);background:var(--brand-50);color:var(--brand-700)}.posture-slot-box small{font-size:10px;line-height:1.5}.posture-slot-box.has-image{padding:0;border-style:solid;border-color:transparent;background:var(--surface-sunken)}.posture-slot-box.has-image img{width:100%;height:100%;object-fit:cover}.posture-slot-remove{position:absolute;top:6px;right:6px;width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:#1014209e;color:#fff}@media(max-width:760px){.posture-shots,.posture-upload-grid{gap:7px}.posture-slot-box small{display:none}}.body-page{display:flex;flex-direction:column;gap:var(--sp-4)}.body-head{align-items:center}.history-toggle{display:flex;align-items:center;gap:8px;width:100%;min-width:0;text-align:left}.history-toggle svg{flex:none;color:var(--muted);transition:transform .18s ease}.history-toggle svg.open{transform:rotate(90deg)}.history-toggle h2{flex:none}.history-toggle .hint{margin-left:auto}.history-toggle:hover h2{color:var(--brand-700)}.history-panel{display:none}.body-history.is-open .history-panel{display:block}.body-history .vital-history{max-height:420px;overflow-y:auto;scrollbar-gutter:stable;padding:2px 4px 4px;margin:0 -4px}.body-summary{position:relative;display:flex;flex-direction:column;gap:22px;padding:24px 26px 26px;border-radius:24px;border:1px solid rgba(124,108,255,.14);background:radial-gradient(140% 120% at 100% 0%,rgba(124,108,255,.13),transparent 62%),radial-gradient(120% 130% at 0% 100%,rgba(46,213,115,.1),transparent 58%),linear-gradient(168deg,#fbfaff,#f7f6fd 46%,#f6fbf8);box-shadow:0 1px #ffffffe6 inset,0 1px 2px #1e28460a,0 14px 34px -14px #5448aa38;overflow:hidden;isolation:isolate}.body-summary:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(124,108,255,.42),transparent 42%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.body-summary-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.body-summary-id{display:flex;flex-direction:column;gap:5px;min-width:0}.body-summary-id b{font-size:var(--fs-24);font-weight:700;letter-spacing:-.02em}.body-summary-id span{color:var(--muted);font-size:var(--fs-12);letter-spacing:.01em}.body-summary-edit{display:inline-flex;align-items:center;gap:5px;flex:none;height:30px;padding:0 11px;border-radius:var(--r-pill);border:1px solid rgba(124,108,255,.2);background:#ffffffa8;color:var(--brand-700);font-size:var(--fs-11);font-weight:600;transition:background .16s ease,border-color .16s ease}.body-summary-edit:hover{border-color:#7c6cff61;background:#fff}.body-summary-vitals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding-top:20px;border-top:1px solid rgba(31,39,57,.07)}.body-summary-metric{display:flex;flex-direction:column;gap:7px;padding:0 20px}.body-summary-metric:first-child{padding-left:0}.body-summary-metric:last-child{padding-right:0}.body-summary-metric+.body-summary-metric{border-left:1px solid rgba(31,39,57,.07)}.body-summary-metric>span{color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.1em}.body-summary-metric p{display:flex;align-items:baseline;gap:4px;margin:0}.body-summary-metric b{font-size:34px;font-weight:600;line-height:1;letter-spacing:-.03em;color:var(--text)}.body-summary-metric em{color:var(--muted);font-size:13px;font-style:normal;font-weight:500}.body-summary-metric.is-alert b{color:var(--accent-orange-ink)}.body-summary-metric.is-alert em{color:var(--accent-orange-ink);font-weight:600}.body-summary-metric b.body-summary-blank{font-size:var(--fs-16);font-weight:600;color:var(--muted-soft);letter-spacing:0}.body-summary-hint{margin-top:14px;padding-top:12px;border-top:1px solid var(--border);color:var(--muted);font-size:var(--fs-12);line-height:1.6}.vital-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(186px,1fr));gap:11px}.vital-card{position:relative;display:flex;flex-direction:column;gap:8px;min-height:106px;padding:13px 14px;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-xs);text-align:left;transition:border-color .16s ease,box-shadow .16s ease,transform .12s ease}.vital-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.vital-card:active{transform:scale(.99)}.vital-card.tone-green{background:linear-gradient(145deg,#fff,#25c9710f)}.vital-card.tone-rose{background:linear-gradient(145deg,#fff,#ff5c6c0d)}.vital-card.tone-orange{background:linear-gradient(145deg,#fff,#ff9f430f)}.vital-card.tone-blue{background:linear-gradient(145deg,#fff,#50b4dc0f)}.vital-card.tone-violet{background:linear-gradient(145deg,#fff,#7c6cff0f)}.vital-card.is-alert{border-color:#ff9f438c;background:linear-gradient(145deg,#fff,#ff9f431a)}.vital-card.is-alert .vital-value strong{color:var(--accent-orange-ink)}.vital-head{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:var(--fs-11);font-weight:700}.vital-head .icon-chip{width:26px;height:26px;border-radius:8px;background:var(--brand-50);color:var(--brand-600)}.vital-card.tone-green .icon-chip{background:#25c97121;color:var(--accent-green-ink)}.vital-card.tone-rose .icon-chip{background:#ff5c6c1c;color:var(--accent-rose-ink)}.vital-card.tone-orange .icon-chip{background:#ff9f4321;color:var(--accent-orange-ink)}.vital-card.tone-blue .icon-chip{background:#50b4dc21;color:var(--accent-blue-ink)}.vital-date{margin-left:auto;color:var(--muted-soft);font-size:10px;font-style:normal;font-weight:600}.vital-value{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px;margin-top:auto}.vital-value strong{font-size:var(--fs-24);line-height:1}.vital-value em{color:var(--muted);font-size:var(--fs-11);font-style:normal}.vital-value .tag{margin-left:4px}.vital-empty{color:var(--muted-soft);font-size:var(--fs-12);font-weight:600}.vital-add{position:absolute;right:11px;bottom:11px;width:22px;height:22px;display:grid;place-items:center;border-radius:7px;background:var(--surface);color:var(--brand-600);box-shadow:var(--shadow-xs)}.vital-history{display:flex;flex-direction:column;gap:8px}.vital-history li{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface)}.vital-history-icon{width:32px;height:32px;flex:none;display:grid;place-items:center;border-radius:var(--r-sm);background:var(--brand-50);color:var(--brand-600)}.vital-history-icon.tone-green{background:#25c97121;color:var(--accent-green-ink)}.vital-history-icon.tone-rose{background:#ff5c6c1c;color:var(--accent-rose-ink)}.vital-history-icon.tone-orange{background:#ff9f4321;color:var(--accent-orange-ink)}.vital-history-icon.tone-blue{background:#50b4dc21;color:var(--accent-blue-ink)}.vital-history-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.vital-history-copy b{font-size:var(--fs-12)}.vital-history-copy span{font-size:var(--fs-12);color:var(--text-secondary)}.vital-history-copy small{color:var(--muted);font-size:var(--fs-11);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vital-history-time{color:var(--muted);font-size:var(--fs-11);flex:none}.vital-history-actions{display:flex;gap:3px;flex:none}.vital-sheet-metric{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:var(--r-md);background:var(--brand-50)}.vital-sheet-metric.tone-green{background:#25c97117}.vital-sheet-metric.tone-rose{background:#ff5c6c14}.vital-sheet-metric.tone-orange{background:#ff9f4317}.vital-sheet-metric.tone-blue{background:#50b4dc17}.vital-sheet-metric>div{display:flex;flex-direction:column}.vital-sheet-metric b{font-size:var(--fs-13)}.vital-sheet-metric small{color:var(--muted);font-size:var(--fs-11)}.section-head-actions{display:flex;align-items:center;gap:var(--sp-3)}.section-head-actions .btn{flex:none}.pill-section{display:flex;flex-direction:column}.pill-groups{display:flex;flex-direction:column;gap:18px}.pill-group{display:flex;flex-direction:column;gap:9px}.pill-group-head{display:flex;align-items:center;gap:9px}.pill-group-head h3{font-size:var(--fs-13);font-weight:700;letter-spacing:.01em}.pill-group-count{color:var(--muted);font-size:var(--fs-11);font-weight:600}.pill-list{display:flex;flex-direction:column;gap:9px}.pill-card{display:flex;align-items:flex-start;gap:12px;padding:13px 14px;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-xs)}.pill-icon{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:var(--r-sm);color:var(--brand-600);background:var(--brand-50)}.pill-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.pill-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pill-title b{font-size:var(--fs-13)}.pill-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;color:var(--text-secondary);font-size:var(--fs-12)}.pill-times{display:inline-flex;flex-wrap:wrap;gap:4px}.pill-times em{padding:1px 6px;border-radius:6px;background:var(--brand-50);color:var(--brand-700);font-size:10px;font-style:normal;font-weight:700}.pill-time-list{display:flex;flex-direction:column;align-items:flex-start;gap:7px}.pill-time-row{display:flex;align-items:center;gap:6px}.pill-time-row .input{width:132px}.pill-copy small{color:var(--muted);font-size:var(--fs-11)}.pill-actions{display:flex;gap:4px;flex:none}.visit-list{display:flex;flex-direction:column;gap:10px}.visit-card{padding:15px 16px;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-xs)}.visit-head{display:flex;align-items:flex-start;gap:9px}.visit-date{flex:none;padding:3px 8px;border-radius:7px;background:var(--brand-50);color:var(--brand-700);font-size:10px;font-weight:700}.visit-head>b{flex:1;min-width:0;font-size:var(--fs-13);line-height:1.55}.visit-actions{display:flex;gap:3px;flex:none}.visit-hospital{margin-top:8px;color:var(--muted);font-size:var(--fs-11)}.visit-advice{display:flex;align-items:flex-start;gap:8px;margin-top:10px;padding:9px 11px;border-radius:var(--r-sm);background:var(--surface-muted);color:var(--text-secondary);font-size:var(--fs-11);line-height:1.6}.visit-advice span{flex:none;padding:1px 5px;border-radius:5px;background:#25c97121;color:var(--accent-green-ink);font-size:9px;font-weight:700}.visit-advice.is-note span{background:var(--surface-sunken);color:var(--muted)}@media(max-width:760px){.body-summary{padding:18px 17px 19px;border-radius:20px}.body-summary-vitals{grid-template-columns:minmax(0,1fr);gap:14px}.body-summary-metric,.body-summary-metric:first-child,.body-summary-metric:last-child{padding:0}.body-summary-metric+.body-summary-metric{padding-top:14px;border-top:1px solid rgba(31,39,57,.07);border-left:0}.body-summary-metric b{font-size:28px}.vital-grid{grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px}.vital-history-time{display:none}.pill-card{flex-wrap:wrap}.pill-actions{width:100%;justify-content:flex-end}}.me-page{position:relative;display:flex;flex-direction:column;gap:var(--sp-4)}.profile-cover{position:absolute;top:0;left:-40px;right:-40px;height:74vh;z-index:0;overflow:hidden;pointer-events:none;-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 34%,rgba(0,0,0,.75) 46%,rgba(0,0,0,.3) 58%,transparent 68%,transparent 100%);mask-image:linear-gradient(180deg,#000 0%,#000 34%,rgba(0,0,0,.75) 46%,rgba(0,0,0,.3) 58%,transparent 68%,transparent 100%)}.profile-cover img,.profile-cover-fallback{width:100%;height:100%;object-fit:cover}.profile-cover-btn{pointer-events:auto}.profile-body{position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--sp-4);padding-top:25vh;padding-bottom:var(--sp-6)}.profile-hero{position:relative;margin:0 20px;padding:18px 20px;border-radius:var(--r-xl);border:1px solid var(--border);background:#fffffff0;box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.profile-cover-veil{position:absolute;inset:0;background:linear-gradient(180deg,#141a2a29,#141a2a05 30%,#141a2a00 45%);pointer-events:none}.profile-cover-btn{position:absolute;right:14px;top:14px;display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 11px;border-radius:var(--r-sm);background:#ffffff38;border:1px solid rgba(255,255,255,.34);color:#fff;font-size:var(--fs-12);font-weight:600;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.profile-cover-btn:hover{background:#ffffff52}.profile-identity{display:flex;align-items:center;gap:14px}.profile-avatar{position:relative;width:62px;height:62px;flex:none;display:grid;place-items:center;padding:0;border-radius:50%;border:3px solid #fff;background:linear-gradient(135deg,var(--brand-100),var(--brand-200));color:var(--brand-700);font-size:var(--fs-20);font-weight:700;box-shadow:var(--shadow-sm)}.profile-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.profile-avatar-edit{position:absolute;right:-3px;bottom:-3px;width:23px;height:23px;display:grid;place-items:center;border-radius:50%;color:#fff;background:linear-gradient(135deg,var(--brand-500),var(--brand-600));border:2px solid #fff;box-shadow:0 3px 8px #5448be4d}.profile-name{flex:1;min-width:0;padding:0;text-align:left}.profile-name h1{font-size:var(--fs-20);letter-spacing:-.02em}.profile-name p{margin-top:2px;color:var(--muted);font-size:var(--fs-12)}.profile-groups{display:flex;flex-direction:column;gap:var(--sp-4);margin:0 20px;padding-bottom:var(--sp-6)}.profile-group{display:flex;flex-direction:column;gap:8px}.profile-group-title h3{margin:0 3px;color:var(--muted);font-size:var(--fs-12);font-weight:700;letter-spacing:.04em}.profile-list{display:flex;flex-direction:column;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-xs);overflow:hidden}.profile-row{display:flex;align-items:center;gap:12px;width:100%;min-height:62px;padding:11px 15px;text-align:left;transition:background .16s ease}.profile-row+.profile-row{border-top:1px solid var(--border)}button.profile-row:hover{background:var(--surface-muted)}.profile-row-icon{width:36px;height:36px;flex:none;display:grid;place-items:center;border-radius:12px}.tone-green{color:var(--accent-green-ink);background:#25c97121}.tone-orange{color:var(--accent-orange-ink);background:#ff9f4324}.tone-rose{color:var(--accent-rose-ink);background:#ff5c6c1c}.tone-blue{color:var(--accent-blue-ink);background:#50b4dc21}.profile-row-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.profile-row-copy b{font-size:var(--fs-13);font-weight:650}.profile-row-copy small{color:var(--muted);font-size:var(--fs-11);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-row-badge{flex:none;padding:3px 8px;border-radius:8px;color:var(--accent-green-ink);background:#25c9711f;font-size:10px;font-weight:700}.server-pill{flex:none;display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:9px;font-size:10px;font-weight:700}.server-pill i{width:5px;height:5px;border-radius:50%;background:currentColor}.server-pill.idle{color:var(--muted);background:var(--surface-sunken)}.server-pill.connected{color:var(--good);background:#25c97121}.profile-row-chevron{flex:none;display:inline-grid;place-items:center;color:var(--muted-soft)}.secret-row{display:flex;gap:7px}.secret-row .input{flex:1;min-width:0}.profile-logout{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;height:46px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);color:var(--danger);font-size:var(--fs-13);font-weight:700;transition:background .16s ease,border-color .16s ease}.profile-logout:hover{border-color:#d0475f4d;background:#d0475f0d}.cover-preview{position:relative;aspect-ratio:16 / 9;border-radius:var(--r-lg);overflow:hidden;background:var(--surface-sunken)}.cover-preview img{width:100%;height:100%;object-fit:cover}.cover-preview-tag{position:absolute;left:10px;top:10px;padding:4px 9px;border-radius:7px;background:#141a2a8c;color:#fff;font-size:10px;font-weight:700;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.cover-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.cover-grid button{position:relative;height:68px;padding:0;border-radius:var(--r-sm);border:2px solid transparent;overflow:hidden;background:var(--surface-sunken);transition:border-color .16s ease,transform .14s ease}.cover-grid button:hover{transform:translateY(-1px)}.cover-grid button.selected{border-color:var(--brand-500)}.cover-grid img{width:100%;height:100%;object-fit:cover}.cover-check{position:absolute;right:5px;bottom:5px;width:18px;height:18px;display:grid;place-items:center;border-radius:50%;background:var(--brand-500);color:#fff}.upload-label{width:fit-content;cursor:pointer}.profile-form{display:flex;align-items:flex-start;gap:18px}.profile-form-fields{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--sp-3)}.profile-form-hint{color:var(--muted);font-size:var(--fs-11);line-height:1.5}.avatar-edit-loading{position:absolute;inset:0;border-radius:50%;background:#11172673}.avatar-edit-loading:after{content:"";position:absolute;inset:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:spin .7s linear infinite}.avatar-edit-photo{position:relative;width:76px;height:76px;margin-top:20px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--brand-50);color:var(--brand-700);font-size:var(--fs-20);font-weight:700;cursor:pointer;overflow:visible}.avatar-edit-photo img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:2px solid #fff;box-shadow:var(--shadow-sm)}.avatar-edit-photo input{display:none}.avatar-edit-camera{position:absolute;right:-1px;bottom:-1px;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;border:2px solid #fff;background:var(--accent-orange);color:#fff}.sub-list{display:flex;flex-direction:column;gap:9px}.sub-card{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-xs)}.sub-icon{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:var(--r-sm);background:#25c97121;color:var(--accent-green-ink)}.sub-icon.menu{background:var(--brand-50);color:var(--brand-600)}.sub-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.sub-copy b{font-size:var(--fs-13)}.sub-copy small{color:var(--muted);font-size:var(--fs-11);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sub-tags{display:flex;gap:5px;margin-top:3px}.sub-url-row{display:flex;gap:7px}.sub-url-row .input{flex:1}.sub-hint{color:var(--muted);font-size:var(--fs-11);line-height:1.6}@media(max-width:760px){.profile-cover{height:52vh}.profile-body{padding-top:26vh}.profile-hero{margin:0 12px;padding:15px 16px}.profile-identity{flex-wrap:wrap}.profile-identity .btn{width:100%}.profile-groups{margin:0 12px}.sub-url-row{flex-direction:column}}.cropper{display:flex;flex-direction:column;gap:var(--sp-4)}.cropper-stage{position:relative;width:min(320px,100%);aspect-ratio:1;margin:0 auto;border-radius:var(--r-md);overflow:hidden;background:var(--surface-sunken);touch-action:none}.cropper-canvas{display:block;width:100%;height:100%;cursor:grab}.cropper-canvas:active{cursor:grabbing}.cropper-mask{position:absolute;inset:0;border-radius:50%;pointer-events:none;box-shadow:0 0 0 9999px #1117268c;border:2px solid rgba(255,255,255,.85)}.cropper-zoom{display:flex;align-items:center;gap:10px;padding:0 4px;color:var(--muted)}.cropper-zoom input[type=range]{flex:1;accent-color:var(--brand-500)}.cropper-actions{display:flex;justify-content:flex-end;gap:var(--sp-2)}.food-page{display:flex;flex-direction:column;gap:var(--sp-4);position:relative;flex:1;min-height:0;overflow-y:auto}.main-center.food-layout{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.food-layout>.page-head{flex:none}.food-layout .library-page{overflow:hidden}.library-page>.library-head,.library-page>.filter-bar{flex:none}.library-page>.dish-grid,.library-page>.menu-grid{flex:1;min-height:0;align-content:start;grid-auto-rows:max-content;overflow-y:auto;scrollbar-gutter:stable;padding-bottom:4px}.library-page>.empty{flex:1;min-height:0;overflow-y:auto}.food-head{align-items:center}.intake-page{flex:1;min-height:0;overflow:hidden;gap:var(--sp-3)}.intake-head{position:relative;flex:none;display:flex;flex-direction:column;gap:var(--sp-3)}.intake-scroll{flex:1;min-height:0;overflow-y:auto;scrollbar-gutter:stable;padding:2px 4px 10px;margin:0 -4px}.intake-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.date-switcher{display:inline-flex;align-items:center;gap:2px;padding:4px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-xs)}.date-switcher-btn{display:inline-flex;align-items:center;gap:6px;padding:0 6px;border-radius:var(--r-sm);transition:background .16s ease}.date-switcher-btn:hover{background:var(--surface-muted)}.date-switcher-caret{flex:none;color:var(--muted);transform:rotate(90deg);transition:transform .2s ease}.date-switcher-caret.open{transform:rotate(-90deg)}.date-arrow{width:32px;height:32px;border-color:transparent;background:transparent;color:var(--muted)}.date-arrow:hover:not(:disabled){border-color:transparent;background:var(--surface-sunken);color:var(--text)}.date-arrow:disabled{opacity:.35;cursor:not-allowed}.date-switcher-copy{min-width:128px;display:flex;flex-direction:column;align-items:center;line-height:1.35}.date-switcher-copy b{font-size:var(--fs-14);letter-spacing:-.01em}.intake-date .flip,.date-arrow .flip,.icon-btn.subtle .flip{transform:rotate(180deg)}.intake-week-scrim{position:fixed;inset:0;z-index:7;background:transparent;cursor:default}.intake-week{position:absolute;z-index:8;top:50px;left:0;width:min(460px,calc(100vw - 48px));display:flex;align-items:center;gap:var(--sp-3);padding:6px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-lg);animation:panel-in .18s ease both}.intake-week-days{flex:1;min-width:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.intake-week-day{display:flex;flex-direction:column;align-items:center;gap:1px;padding:7px 4px 6px;border-radius:var(--r-sm);border:1px solid transparent;color:var(--muted);transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .12s ease}.intake-week-day small{font-size:10px;font-weight:600;letter-spacing:.01em}.intake-week-day b{font-size:var(--fs-15);font-weight:650;line-height:1.2;color:var(--text)}.intake-week-day:hover{background:var(--surface-muted)}.intake-week-day:active{transform:translateY(1px)}.intake-week-day.is-today small{color:var(--brand-600)}.intake-week-day.active{background:linear-gradient(150deg,var(--brand-500),var(--brand-600));box-shadow:0 6px 14px #6552e83d}.intake-week-day.active small,.intake-week-day.active b{color:#fff}.intake-layout{display:grid;grid-template-columns:minmax(0,1fr) 318px;gap:var(--sp-4);align-items:start}.intake-main,.intake-side{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}.meal-card{position:relative;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-xs);overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease}.meal-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.meal-card.breakfast{--meal-tone: var(--accent-orange);--meal-tint: rgba(255, 159, 67, .13);--meal-ink: var(--accent-orange-ink)}.meal-card.lunch{--meal-tone: var(--accent-green);--meal-tint: rgba(37, 201, 113, .13);--meal-ink: var(--accent-green-ink)}.meal-card.dinner{--meal-tone: var(--brand-500);--meal-tint: var(--brand-50);--meal-ink: var(--brand-700)}.meal-card.snack{--meal-tone: #e0a52a;--meal-tint: rgba(240, 180, 50, .15);--meal-ink: #96650c}.meal-card.extra-card{--meal-tone: var(--accent-blue);--meal-tint: rgba(80, 180, 220, .13);--meal-ink: var(--accent-blue-ink)}.meal-card-head{display:flex;align-items:center;gap:10px;padding:13px 14px 13px 10px}.meal-collapse{width:24px;height:24px;flex:none;display:grid;place-items:center;border-radius:7px;color:var(--muted-soft);transition:background .14s ease,color .14s ease}.meal-collapse:hover{background:var(--surface-sunken);color:var(--text-secondary)}.meal-caret{transform:rotate(90deg);transition:transform .2s ease}.meal-card.collapsed .meal-caret{transform:rotate(0)}.meal-card.collapsed .meal-card-head{padding-top:12px;padding-bottom:12px}.meal-glyph{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:12px;color:var(--meal-ink, var(--accent-orange-ink));background:var(--meal-tint, rgba(255, 159, 67, .13))}.meal-head-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.meal-name-line{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}.meal-name-line b{font-size:var(--fs-14);font-weight:700;letter-spacing:-.01em;white-space:nowrap}.meal-time{display:inline-flex;align-items:center;gap:3px;height:22px;padding:0 6px;border-radius:7px;color:var(--muted);background:var(--surface-muted);font-size:var(--fs-11);font-variant-numeric:tabular-nums;transition:background .16s ease,color .16s ease}.meal-time:hover{background:var(--surface-sunken);color:var(--text-secondary)}.meal-time.editing{background:var(--surface);box-shadow:inset 0 0 0 1px var(--brand-300);color:var(--text-secondary)}.meal-time input{width:92px;border:0;outline:none;background:transparent;color:inherit;font-size:var(--fs-11);font-variant-numeric:tabular-nums}.meal-time input::-webkit-calendar-picker-indicator{margin-left:2px;cursor:pointer;opacity:.55}.meal-time input::-webkit-calendar-picker-indicator:hover{opacity:.9}.save-state{display:inline-flex;align-items:center;gap:4px;color:var(--muted-soft);font-size:10px;font-weight:600;white-space:nowrap}.save-state.saved{color:var(--good)}.mini-spin{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--border-strong);border-top-color:var(--brand-500);animation:spin .7s linear infinite}.meal-kcal{display:flex;align-items:baseline;gap:3px;flex:none;min-width:66px;justify-content:flex-end}.meal-kcal strong{font-size:var(--fs-18);font-weight:700;letter-spacing:-.02em}.meal-kcal span{color:var(--muted);font-size:10px;font-weight:600}.meal-add{flex:none;display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 12px;border-radius:var(--r-pill);background:var(--meal-tint, var(--brand-50));color:var(--meal-ink, var(--brand-700));font-size:var(--fs-12);font-weight:650;transition:filter .16s ease,transform .12s ease}.meal-add:hover{filter:brightness(.96)}.meal-add:active{transform:translateY(1px)}.meal-card-body{padding:0 10px 9px}.meal-rows{display:flex;flex-direction:column;margin-left:34px}.meal-row{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr) auto 64px 30px;align-items:center;gap:10px;padding:7px 6px 7px 8px;border-radius:var(--r-sm);transition:background .14s ease}.meal-row:hover{background:var(--surface-muted)}.meal-row+.meal-row:before{content:"";position:absolute;top:0;left:8px;right:8px;height:1px;background:var(--border)}.meal-row-thumb{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:10px;overflow:hidden;color:var(--meal-ink, var(--accent-orange-ink));background:var(--meal-tint, rgba(255, 159, 67, .12))}.meal-row-thumb img{width:100%;height:100%;object-fit:cover}.meal-row-copy{display:flex;flex-direction:column;gap:1px;min-width:0}.meal-row-copy b{font-size:var(--fs-13);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meal-row-copy small{color:var(--muted);font-size:var(--fs-11);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meal-row-amount{display:flex;align-items:center;gap:6px;justify-content:flex-end}.amount-chip{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:7px;background:var(--surface-sunken);color:var(--text-secondary);font-size:var(--fs-11);font-weight:600;white-space:nowrap}.amount-qty{color:var(--muted);font-size:var(--fs-11);font-weight:700}.extra-time{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:var(--fs-11);font-variant-numeric:tabular-nums}.qty-stepper{display:inline-flex;align-items:center;height:30px;padding:0 2px;border-radius:8px;border:1px solid var(--border);background:var(--surface)}.qty-stepper button{width:22px;height:22px;display:grid;place-items:center;border-radius:6px;color:var(--text-secondary);font-size:var(--fs-13);font-weight:600;transition:background .14s ease,color .14s ease}.qty-stepper button:hover:not(:disabled){background:var(--surface-sunken);color:var(--text)}.qty-stepper button:disabled{opacity:.35;cursor:not-allowed}.qty-stepper span{min-width:20px;text-align:center;font-size:var(--fs-12);font-weight:650}.meal-row-kcal{display:flex;align-items:baseline;gap:2px;justify-content:flex-end}.meal-row-kcal b{font-size:var(--fs-13);font-weight:700}.meal-row-kcal small{color:var(--muted);font-size:9px;font-weight:600}.meal-row-del{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;color:var(--muted-soft);transition:background .14s ease,color .14s ease}.meal-row-del:hover,.meal-row-del:focus-visible{background:#d0475f17;color:var(--danger)}.meal-empty{display:flex;align-items:center;gap:9px;width:calc(100% - 34px);margin:0 0 2px 34px;padding:11px 12px;border-radius:var(--r-md);background:var(--surface-muted);color:var(--muted);font-size:var(--fs-12);text-align:left;transition:background .16s ease,color .16s ease}.meal-empty:hover{background:var(--meal-tint, var(--brand-50));color:var(--meal-ink, var(--brand-700))}.meal-empty-icon{width:22px;height:22px;flex:none;display:grid;place-items:center;border-radius:7px;background:var(--surface-sunken)}.meal-empty small{margin-left:auto;color:var(--muted-soft);font-size:var(--fs-11)}.energy-card{position:relative;padding:17px 17px 15px;border-radius:var(--r-lg);background:radial-gradient(180px 150px at 108% -14%,rgba(124,108,255,.1),transparent 72%),var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}.energy-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.energy-head p{margin-top:3px;color:var(--muted);font-size:var(--fs-11)}.energy-ring{--ring-deg: 0deg;width:156px;height:156px;margin:16px auto 14px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--brand-500) 0 var(--ring-deg),var(--surface-sunken) var(--ring-deg) 360deg);box-shadow:0 12px 30px #6552e829}.energy-ring.over{background:conic-gradient(var(--accent-orange) 0 var(--ring-deg),var(--surface-sunken) var(--ring-deg) 360deg);box-shadow:0 12px 30px #ff9f4338}.energy-ring-inner{width:122px;height:122px;display:grid;place-content:center;justify-items:center;gap:1px;border-radius:50%;background:var(--surface);text-align:center}.energy-ring-inner span{color:var(--muted);font-size:10px;font-weight:600}.energy-ring-inner strong{font-size:var(--fs-30);line-height:1.05;letter-spacing:-.04em}.energy-ring.over .energy-ring-inner strong{color:var(--accent-orange-ink)}.energy-ring-inner small{color:var(--muted-soft);font-size:9px;font-weight:600;letter-spacing:.06em}.energy-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.energy-stats>div{display:flex;flex-direction:column;align-items:center;gap:1px;padding:8px 4px;border-radius:var(--r-sm);background:var(--surface-muted)}.energy-stats span{color:var(--muted);font-size:10px;font-weight:600}.energy-stats b{font-size:var(--fs-13);font-weight:700}.macro-split{display:flex;flex-direction:column;gap:9px;margin-top:14px;padding-top:13px;border-top:1px solid var(--border)}.macro-row{display:grid;grid-template-columns:7px 40px minmax(0,1fr) 46px;align-items:center;gap:8px}.macro-dot{width:7px;height:7px;border-radius:50%}.macro-name{color:var(--muted);font-size:var(--fs-11);font-weight:600}.macro-track{height:6px;border-radius:var(--r-pill);background:var(--surface-sunken);overflow:hidden}.macro-track i{display:block;height:100%;border-radius:inherit;transition:width .35s ease}.macro-row b{text-align:right;font-size:var(--fs-12);font-weight:700}.macro-row b small{margin-left:1px;color:var(--muted);font-size:9px;font-weight:600}.energy-note{margin-top:12px;color:var(--muted-soft);font-size:10px;line-height:1.5}.dist-card{padding:15px 16px 14px;border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.side-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.side-head h2{font-size:var(--fs-13);font-weight:700}.side-total{color:var(--muted);font-size:var(--fs-11);font-weight:600;font-variant-numeric:tabular-nums}.dist-bar{display:flex;gap:2px;height:8px;margin:12px 0 13px;border-radius:var(--r-pill);overflow:hidden}.dist-bar i{display:block;height:100%;min-width:3px}.dist-bar i.breakfast,.dist-list li.breakfast .dist-dot,.dist-list li.breakfast .dist-track i{background:var(--accent-orange)}.dist-bar i.lunch,.dist-list li.lunch .dist-dot,.dist-list li.lunch .dist-track i{background:var(--accent-green)}.dist-bar i.dinner,.dist-list li.dinner .dist-dot,.dist-list li.dinner .dist-track i{background:var(--brand-500)}.dist-bar i.snack,.dist-list li.snack .dist-dot,.dist-list li.snack .dist-track i{background:#e0a52a}.dist-bar i.extra,.dist-list li.extra .dist-dot,.dist-list li.extra .dist-track i{background:var(--accent-blue)}.dist-bar i.dist-empty{width:100%;background:var(--surface-sunken)}.dist-list{display:flex;flex-direction:column;gap:8px}.dist-list li{display:grid;grid-template-columns:7px 30px minmax(0,1fr) 40px;align-items:center;gap:8px}.dist-dot{width:7px;height:7px;border-radius:50%}.dist-label{color:var(--muted);font-size:var(--fs-11);font-weight:600}.dist-track{height:5px;border-radius:var(--r-pill);background:var(--surface-sunken);overflow:hidden}.dist-track i{display:block;height:100%;border-radius:inherit;transition:width .35s ease}.dist-list b{text-align:right;font-size:var(--fs-11);font-weight:700;font-variant-numeric:tabular-nums}.icon-btn.subtle{width:30px;height:30px;border-color:transparent;background:transparent;color:var(--muted)}.icon-btn.subtle:hover{background:var(--surface-sunken);color:var(--danger)}.loading-bar{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--brand-400),transparent);animation:slide-bar 1.1s ease infinite}@keyframes slide-bar{0%{transform:translate(-100%)}to{transform:translate(100%)}}.dialog-total{margin-right:auto;color:var(--muted);font-size:var(--fs-12);font-weight:600}.dialog-total b{color:var(--text);font-size:var(--fs-15)}.quick-form{display:flex;flex-direction:column;gap:var(--sp-4)}.shortcut-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.shortcut-label{color:var(--muted);font-size:var(--fs-11);font-weight:700;letter-spacing:.04em}.choice-chip{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:32px;padding:0 13px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);font-size:var(--fs-12);font-weight:600;transition:border-color .16s ease,background .16s ease,color .16s ease}.choice-chip:hover{border-color:var(--border-strong)}.choice-chip.active{border-color:#7c6cff66;background:var(--brand-50);color:var(--brand-700)}.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px}.quick-search{position:relative}.quick-suggest{position:absolute;z-index:5;top:calc(100% + 4px);left:0;right:0;padding:5px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-md);max-height:260px;overflow-y:auto}.quick-suggest-row{display:flex;align-items:center;gap:9px;width:100%;padding:8px;border-radius:var(--r-sm);text-align:left}.quick-suggest-row:hover{background:var(--surface-muted)}.quick-suggest-copy{flex:1;min-width:0;display:flex;flex-direction:column}.quick-suggest-copy b{font-size:var(--fs-12)}.quick-suggest-copy small{color:var(--muted);font-size:var(--fs-11)}.quick-suggest-empty{margin-top:6px;color:var(--muted);font-size:var(--fs-11)}.quick-note{color:var(--muted);font-size:var(--fs-11)}.unit-input{position:relative;display:flex;align-items:center}.unit-input .input{padding-right:48px}.unit-input em{position:absolute;right:12px;color:var(--muted);font-size:var(--fs-11);font-style:normal;font-weight:600;pointer-events:none}.variant-chips{display:flex;flex-wrap:wrap;gap:7px}.variant-chip{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 11px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);text-align:left;transition:border-color .16s ease,background .16s ease}.variant-chip:hover{border-color:var(--brand-300)}.variant-chip.active{border-color:#7c6cff73;background:var(--brand-50)}.variant-chip b{font-size:var(--fs-13);color:var(--text)}.variant-chip span{color:var(--muted);font-size:10px}.picker-list{display:flex;flex-direction:column;gap:4px}.picker-group h4{margin:8px 2px 6px;color:var(--muted);font-size:var(--fs-11);font-weight:700;letter-spacing:.05em;text-transform:uppercase}.picker-item{display:flex;flex-direction:column}.picker-row{display:flex;align-items:center;gap:10px;width:100%;padding:8px 9px;border-radius:var(--r-sm);text-align:left;transition:background .16s ease}.picker-row:hover{background:var(--surface-muted)}.picker-row.selected{background:var(--brand-50)}.picker-item.open{margin-bottom:4px;border-radius:var(--r-md);border:1px solid var(--brand-200);background:var(--surface)}.picker-item.open .picker-row.selected{border-radius:var(--r-md) var(--r-md) 0 0}.picker-compose{display:flex;flex-direction:column;gap:9px;padding:10px 10px 11px;border-top:1px dashed var(--border)}.compose-bar{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.compose-field,.compose-qty{display:flex;flex-direction:column;gap:4px}.compose-field>span:first-child,.compose-qty>span:first-child{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.03em}.compose-input{display:inline-flex;align-items:center;gap:2px;width:84px;height:30px;padding:0 9px;border-radius:var(--r-xs);border:1px solid var(--border);background:var(--surface-muted);transition:border-color .16s ease,background .16s ease}.compose-input:focus-within{border-color:var(--brand-300);background:var(--surface)}.compose-input input{width:100%;min-width:0;border:0;outline:none;background:transparent;font-size:var(--fs-12);font-variant-numeric:tabular-nums}.compose-input input::-webkit-outer-spin-button,.compose-input input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.compose-input em{color:var(--muted);font-size:10px;font-style:normal}.compose-preset{display:inline-flex;align-items:center;height:30px;padding:0 10px;border-radius:var(--r-xs);background:var(--surface-muted);color:var(--text-secondary);font-size:var(--fs-12);font-weight:600}.compose-total{display:inline-flex;align-items:baseline;gap:3px;margin-left:auto;padding-bottom:6px}.compose-total b{font-size:var(--fs-16);font-weight:700;letter-spacing:-.02em}.compose-total small{color:var(--muted);font-size:10px;font-weight:600}.compose-add{height:30px;margin-bottom:1px}.compose-hint{display:flex;align-items:center;gap:8px;margin-top:-3px;color:var(--accent-orange-ink);font-size:var(--fs-11);font-weight:600}.compose-reset{color:var(--brand-600);font-size:var(--fs-11);font-weight:700;text-decoration:underline;text-underline-offset:2px}.compose-reset:hover{color:var(--brand-700)}.search-clear{width:20px;height:20px;flex:none;display:grid;place-items:center;border-radius:50%;color:var(--muted);background:var(--surface-sunken);transition:background .14s ease,color .14s ease}.search-clear:hover{background:var(--border-strong);color:var(--text)}.off-library-card{display:flex;align-items:center;gap:11px;width:100%;padding:11px 12px;border-radius:var(--r-md);border:1px dashed var(--brand-300);background:var(--brand-50);text-align:left;transition:border-color .16s ease,background .16s ease}.off-library-card:hover{border-color:var(--brand-400);background:var(--brand-100)}.off-library-card>svg{flex:none;color:var(--brand-500)}.off-library-icon{width:30px;height:30px;flex:none;display:grid;place-items:center;border-radius:9px;color:var(--brand-600);background:#fff}.off-library-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.off-library-copy b{font-size:var(--fs-13);font-weight:700;color:var(--brand-700);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.off-library-copy small{color:var(--brand-600);font-size:var(--fs-11);opacity:.78}.off-library-form{display:flex;flex-direction:column;gap:13px;padding:13px;border-radius:var(--r-md);border:1px solid var(--brand-200);background:var(--surface);animation:panel-in .18s ease both}.off-library-head{display:flex;align-items:center;gap:10px;padding-bottom:11px;border-bottom:1px dashed var(--border)}.off-library-form .compose-bar{padding-top:2px}.picker-thumb{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:var(--r-xs);overflow:hidden;color:var(--accent-orange-ink);background:#ff9f431f}.picker-thumb img{width:100%;height:100%;object-fit:cover}.picker-row-copy{flex:1;min-width:0;display:flex;flex-direction:column}.picker-row-copy b{font-size:var(--fs-13)}.picker-row-copy span{color:var(--muted);font-size:var(--fs-11)}.picker-plus{width:26px;height:26px;flex:none;display:grid;place-items:center;border-radius:8px;color:var(--brand-600);background:var(--brand-50)}.picker-empty{padding:18px;color:var(--muted);font-size:var(--fs-12);text-align:center}.share-card{position:relative;background:radial-gradient(220px 220px at 88% -6%,rgba(124,108,255,.42),transparent 72%),radial-gradient(200px 200px at -4% 104%,rgba(46,213,115,.2),transparent 70%),linear-gradient(165deg,#241f3d,#332a5c 42%,#3d2f5e 68%,#2a2347);overflow:hidden;border-radius:var(--r-xl);padding:20px 19px 16px;color:#fff;box-shadow:var(--shadow-lg)}.share-card-glow{display:none}.share-head{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.share-brand{color:#ffffff80;font-size:9px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.share-head h3{margin-top:5px;font-size:var(--fs-16);font-weight:650}.share-logo{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:var(--r-sm);color:#b9adff;background:#ffffff1a;border:1px solid rgba(255,255,255,.12)}.share-hero{position:relative;display:flex;align-items:center;gap:18px;margin-top:20px}.share-ring{--share-pct: 0deg;width:104px;height:104px;flex:none;display:grid;place-items:center;border-radius:50%;background:conic-gradient(from 200deg,#8b7cff 0 var(--share-pct),rgba(255,255,255,.12) var(--share-pct) 360deg);box-shadow:0 0 26px #7c6cff59}.share-ring-inner{width:82px;height:82px;display:grid;place-content:center;gap:2px;border-radius:50%;background:#2b2450;text-align:center}.share-ring-inner strong{font-size:var(--fs-20);letter-spacing:-.04em}.share-ring-inner small{color:#ffffff80;font-size:8px;letter-spacing:.06em}.share-hero-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.share-hero-label{color:#ffffff73;font-size:9px;font-weight:600;letter-spacing:.04em}.share-hero-pct{color:#c3b8ff;font-size:var(--fs-24);letter-spacing:-.04em}.share-hero-note{color:#fff9;font-size:var(--fs-11);font-weight:600}.share-macros{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:18px}.share-macro{padding:10px 11px;border-radius:var(--r-md);background:#ffffff12;border:1px solid rgba(255,255,255,.08)}.share-macro-bar{display:block;height:3px;margin-bottom:8px;border-radius:var(--r-pill);background:#ffffff21;overflow:hidden}.share-macro-bar i{display:block;height:100%;border-radius:inherit}.share-macro b{display:flex;align-items:baseline;gap:2px;font-size:var(--fs-15);line-height:1.2}.share-macro b small{color:#ffffff73;font-size:8px;font-weight:600}.share-macro-label{display:block;margin-top:3px;color:#ffffff73;font-size:8px}.share-meals{position:relative;margin-top:18px}.share-section-title{display:block;margin-bottom:9px;color:#ffffff6b;font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.share-meal-list{display:flex;flex-direction:column;gap:8px}.share-meal-group{padding:11px 12px 9px;border-radius:var(--r-md);background:#ffffff0f}.share-meal-head{display:flex;align-items:center;gap:7px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.07)}.share-meal-head b{font-size:var(--fs-12);color:#ffffffeb}.share-meal-count{padding:2px 6px;border-radius:6px;background:#ffffff14;color:#ffffff80;font-size:8px;font-weight:700}.share-meal-kcal{margin-left:auto;display:inline-flex;align-items:baseline;gap:2px;color:#c3b8ff;font-size:var(--fs-13)}.share-meal-kcal small{color:#fff6;font-size:8px}.share-dish-list{display:flex;flex-direction:column;gap:5px;padding-top:7px}.share-dish-list li{display:flex;align-items:baseline;gap:7px;padding-left:4px}.share-dish-name{color:#fffc;font-size:var(--fs-11)}.share-dish-note{color:#ffffff52;font-size:9px}.share-dish-kcal{margin-left:auto;flex:none;display:inline-flex;align-items:baseline;gap:2px;color:#ffffff8c;font-size:10px}.share-dish-kcal small{color:#ffffff4d;font-size:8px}.share-empty{padding:14px;border-radius:var(--r-md);background:#ffffff0d;color:#ffffff73;font-size:var(--fs-11);text-align:center}.share-foot{position:relative;display:flex;align-items:center;justify-content:center;gap:7px;margin-top:16px;padding-top:13px;border-top:1px solid rgba(255,255,255,.08);color:#ffffff57;font-size:8px;letter-spacing:.05em}.share-foot-dot{width:3px;height:3px;border-radius:50%;background:#ffffff47}.library-head{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.library-search{flex:1;min-width:220px}.filter-bar{position:relative;display:flex;align-items:center;gap:9px;min-width:0}.filter-bar .filter-row{flex:1;min-width:0;flex-wrap:nowrap;overflow:hidden}.filter-bar .filter-chip{flex:none}.filter-all-btn{width:32px;height:32px;flex:none;display:grid;place-items:center;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);transition:border-color .16s ease,background .16s ease,color .16s ease}.filter-all-btn:hover{border-color:var(--brand-300);color:var(--brand-700)}.filter-all-btn.open{border-color:#7c6cff80;background:var(--brand-50);color:var(--brand-700)}.filter-popover-backdrop{position:fixed;inset:0;z-index:30}.filter-panel{position:absolute;right:0;top:calc(100% + 7px);z-index:31;width:min(460px,calc(100vw - 48px));padding:13px 14px 14px;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-lg);animation:panel-in .18s ease both}@keyframes panel-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.filter-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.filter-panel-head>span{color:var(--muted);font-size:var(--fs-11);font-weight:700;letter-spacing:.05em}.filter-panel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:300px;overflow-y:auto}.filter-panel-option{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:34px;padding:0 10px;border-radius:var(--r-sm);border:1px solid transparent;background:var(--surface-muted);color:var(--text-secondary);font-size:var(--fs-12);font-weight:600;text-align:left;transition:border-color .16s ease,background .16s ease,color .16s ease}.filter-panel-option:hover{border-color:var(--border-strong);color:var(--text)}.filter-panel-option.active{border-color:#7c6cff73;background:var(--brand-50);color:var(--brand-700)}.filter-panel-option>span{display:inline-flex;align-items:center;gap:5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-panel-option small{flex:none;color:var(--muted-soft);font-size:10px;font-weight:600}.filter-panel-option.active small{color:var(--brand-500)}.filter-panel-star{width:5px;height:5px;flex:none;border-radius:50%;background:#d99a1c}.filter-row{display:flex;flex-wrap:wrap;gap:7px}.filter-row.inline{flex:1}.filter-chip{display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 12px;border-radius:var(--r-pill);border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);font-size:var(--fs-12);font-weight:600;transition:border-color .16s ease,background .16s ease,color .16s ease}.filter-chip small{color:var(--muted-soft);font-size:10px;font-weight:600}.filter-chip:hover{border-color:var(--border-strong)}.filter-chip.active{border-color:#7c6cff6b;background:var(--brand-50);color:var(--brand-700)}.filter-chip.active small{color:var(--brand-500)}.dish-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--sp-4)}.dish-card{display:flex;flex-direction:column;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-xs);overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease,transform .14s ease}.dish-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.dish-card-photo{position:relative;display:block;width:100%;height:132px;background:var(--surface-sunken);overflow:hidden}.dish-card-photo img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.dish-card:hover .dish-card-photo img{transform:scale(1.03)}.dish-card-fallback{width:100%;height:100%;display:grid;place-items:center;color:var(--accent-orange-ink);background:radial-gradient(circle at 30% 25%,rgba(255,159,67,.16),transparent 62%),radial-gradient(circle at 72% 78%,rgba(124,108,255,.14),transparent 60%),var(--surface-sunken)}.cat-badge{position:absolute;top:9px;left:9px;padding:3px 8px;border-radius:7px;background:#ffffffeb;color:var(--text-secondary);font-size:10px;font-weight:700;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.cat-badge.right{left:auto;right:9px}.kind-badge{position:absolute;top:9px;right:9px;padding:3px 8px;border-radius:7px;background:#1a20309e;color:#fff;font-size:10px;font-weight:700;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.dish-card-body{display:flex;align-items:center;padding:12px 14px 14px;text-align:left}.dish-card-name{flex:1;min-width:0;font-size:var(--fs-14);letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nutrient-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:3px}.nutrient-tags span{padding:2px 7px;border-radius:6px;background:#25c9711c;color:var(--accent-green-ink);font-size:10px;font-weight:600}.dish-detail-hero{position:relative;flex:none;aspect-ratio:2 / 1;max-height:380px;min-height:150px;border-radius:var(--r-lg);overflow:hidden;background:var(--surface-sunken)}.dish-detail-hero img{width:100%;height:100%;object-fit:cover}.dish-detail-cover{width:100%;height:100%;display:grid;place-items:center;color:var(--accent-orange-ink);background:linear-gradient(140deg,#ff9f4329,#7c6cff1f)}.detail-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.detail-stats>div{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 8px;border-radius:var(--r-md);background:var(--surface-muted);border:1px solid var(--border)}.detail-stats b{font-size:var(--fs-18)}.detail-stats span{color:var(--muted);font-size:var(--fs-11)}.detail-section{display:flex;flex-direction:column;gap:8px}.detail-list{display:flex;flex-direction:column;gap:7px}.detail-list li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface)}.detail-list li>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.detail-list b{font-size:var(--fs-13)}.detail-list span{color:var(--muted);font-size:var(--fs-11)}.detail-list>li>b{color:var(--accent-orange-ink)}.detail-empty{justify-content:center;color:var(--muted);font-size:var(--fs-12)}.switch-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface-muted)}.switch-row.disabled{opacity:.66}.switch-row>span{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.switch-row b{font-size:var(--fs-13)}.switch-row small{color:var(--muted);font-size:var(--fs-11)}input.switch{appearance:none;width:42px;height:24px;position:relative;flex:none;border-radius:var(--r-pill);background:var(--border-strong);cursor:pointer;transition:background .2s ease}input.switch:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #141e3733;transition:transform .2s ease}input.switch:checked{background:var(--brand-500)}input.switch:checked:after{transform:translate(18px)}input.switch:disabled{opacity:.5;cursor:not-allowed}.kind-list{display:flex;flex-direction:column;gap:9px}.kind-card{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);text-align:left;transition:border-color .16s ease,box-shadow .16s ease,transform .12s ease;color:var(--muted-soft)}.kind-card:hover{border-color:var(--brand-300);box-shadow:var(--shadow-sm)}.kind-icon{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:var(--r-sm);background:var(--brand-50);color:var(--brand-600)}.kind-icon.kind-commercial{background:#50b4dc24;color:var(--accent-blue-ink)}.kind-icon.kind-ingredient{background:#25c97121;color:var(--accent-green-ink)}.kind-copy{flex:1;min-width:0;display:flex;flex-direction:column}.kind-copy b{font-size:var(--fs-14);color:var(--text)}.dish-form{display:flex;flex-direction:column;gap:var(--sp-4)}.mode-switch{display:inline-flex;gap:3px;padding:4px;border-radius:var(--r-sm);background:var(--surface-sunken);width:fit-content}.mode-switch button{height:30px;padding:0 16px;border-radius:7px;color:var(--muted);font-size:var(--fs-12);font-weight:600;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.mode-switch button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-xs)}.field-hint{color:var(--accent-green-ink);font-size:var(--fs-11);font-weight:600}.mode-hint{margin:-2px 0 0;color:var(--muted);font-size:var(--fs-11);line-height:1.5}.mode-switch button:disabled{color:var(--muted-soft);cursor:not-allowed}.variant-editor{display:flex;flex-direction:column;gap:9px}.variant-card{padding:12px 13px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface-muted);display:flex;flex-direction:column;gap:10px}.variant-card-head{display:flex;align-items:center;justify-content:space-between}.variant-index{width:22px;height:22px;display:grid;place-items:center;border-radius:7px;background:var(--surface);border:1px solid var(--border);color:var(--muted);font-size:var(--fs-11);font-weight:700}.variant-summary{color:var(--accent-orange-ink);font-size:var(--fs-11);font-weight:600}.nutrient-toggle{display:inline-flex;align-items:center;gap:6px;width:fit-content;padding:5px 10px;border-radius:var(--r-xs);background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);font-size:var(--fs-11);font-weight:600}.nutrient-toggle:hover{border-color:var(--brand-300);color:var(--brand-700)}.nutrient-toggle .chevron{display:grid;place-items:center;transition:transform .18s ease}.nutrient-toggle .chevron.open{transform:rotate(90deg)}.nutrient-rows{display:flex;flex-direction:column;gap:7px;padding-top:2px}.nutrient-rows-title{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.04em}.nutrient-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) 34px 32px;align-items:center;gap:7px}.nutrient-row .input{min-height:34px;padding:6px 9px;font-size:var(--fs-12)}.nutrient-unit-btn{height:34px;display:grid;place-items:center;border-radius:var(--r-xs);border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);font-size:var(--fs-11);font-weight:700;letter-spacing:.02em;transition:border-color .16s ease,background .16s ease,color .16s ease}.nutrient-unit-btn:hover{border-color:var(--brand-300);background:var(--brand-50);color:var(--brand-700)}.nutrient-toggle-summary{color:var(--muted-soft);font-size:10px;font-weight:600}.nutrient-name{padding:0 2px;color:var(--text-secondary);font-size:var(--fs-12);font-weight:600}.nutrient-unit-fixed{height:34px;display:grid;place-items:center;color:var(--muted);font-size:var(--fs-11);font-weight:700}.nutrient-block{display:flex;flex-direction:column;gap:9px;min-width:0}.nutrient-with-field{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"field toggle" "panel panel";align-items:end;gap:0 12px}.nutrient-field{grid-area:field;min-width:0}.nutrient-field-toggle{grid-area:toggle;padding-bottom:1px}.nutrient-field-panel{grid-area:panel;margin-top:12px;margin-bottom:2px;padding:12px 14px;border-radius:var(--r-md);background:var(--surface-muted);border:1px solid var(--border)}.nutrient-field-toggle .nutrient-toggle{height:40px;padding:0 12px;font-size:var(--fs-12)}.nutrition-kcal-label{display:flex;flex-direction:column;gap:6px;min-width:0}.nutrition-kcal-label>span{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:var(--fs-12);font-weight:600}.nutrition-kcal-label>span .count{margin-left:auto;color:var(--muted-soft);font-weight:500}@media(max-width:760px){.nutrient-with-field{grid-template-columns:minmax(0,1fr);grid-template-areas:"field" "toggle" "panel";gap:8px}.nutrient-field-toggle{padding-bottom:0}.nutrient-field-toggle .nutrient-toggle{width:100%;justify-content:center}}.component-section{display:flex;flex-direction:column;gap:9px;padding-top:var(--sp-3);border-top:1px solid var(--border)}.ingredient-card{display:flex;flex-direction:column;gap:8px;padding:10px 11px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface-muted)}.ingredient-head{display:flex;align-items:center;gap:8px}.ingredient-index{width:20px;height:20px;flex:none;display:grid;place-items:center;border-radius:6px;background:var(--surface);border:1px solid var(--border);color:var(--muted);font-size:10px;font-weight:700}.ingredient-name{flex:1;min-width:0;min-height:34px;padding:6px 10px;font-size:var(--fs-12)}.ingredient-total{flex:none;min-width:56px;text-align:right;color:var(--accent-orange-ink);font-size:var(--fs-11);font-weight:700}.ingredient-fields{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px}.ingredient-field{display:flex;flex-direction:column;gap:3px}.ingredient-field>span{color:var(--muted);font-size:10px;font-weight:600}.ingredient-field .input{min-height:34px;padding:6px 10px;font-size:var(--fs-12)}.photo-card-field{display:flex;flex-direction:column;gap:8px;min-width:0}.photo-card-label{display:flex;align-items:baseline;gap:8px;color:var(--text-secondary);font-size:var(--fs-12);font-weight:600}.photo-card-label small{color:var(--muted-soft);font-size:var(--fs-11);font-weight:500}.photo-card{position:relative;width:100%;display:grid;place-items:center;border-radius:var(--r-lg);border:1.5px dashed var(--border-strong);background:var(--surface-muted);overflow:hidden;cursor:pointer;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.photo-card:hover,.photo-card:focus-visible{border-color:var(--brand-300);background:var(--brand-50)}.photo-card.dragging{border-color:var(--brand-500);background:var(--brand-50);box-shadow:0 0 0 4px #7c6cff1f}.photo-card.has-image{border-style:solid;border-color:transparent;background:var(--surface-sunken);box-shadow:var(--shadow-sm)}.photo-card.has-image:hover{box-shadow:var(--shadow-md)}.photo-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.photo-card.has-image:hover img{transform:scale(1.02)}.photo-card-scrim{position:absolute;inset:0;background:linear-gradient(180deg,#10142000 45%,#1014208c);opacity:0;transition:opacity .18s ease;pointer-events:none}.photo-card.has-image:hover .photo-card-scrim,.photo-card.has-image:focus-visible .photo-card-scrim{opacity:1}.photo-card-actions{position:absolute;right:12px;bottom:12px;display:flex;gap:7px;opacity:0;transform:translateY(4px);transition:opacity .18s ease,transform .18s ease}.photo-card.has-image:hover .photo-card-actions,.photo-card.has-image:focus-within .photo-card-actions{opacity:1;transform:translateY(0)}.photo-card-btn{display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 12px;border-radius:var(--r-sm);background:#fffffff0;color:var(--text);font-size:var(--fs-12);font-weight:600;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .16s ease,color .16s ease}.photo-card-btn:hover:not(:disabled){background:#fff}.photo-card-btn.danger{color:var(--danger)}.photo-card-btn.danger:hover:not(:disabled){background:#fff}.photo-card-btn:disabled{opacity:.6;cursor:not-allowed}.photo-card-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px;color:var(--muted);text-align:center}.photo-card-empty svg{color:var(--brand-500)}.photo-card-empty b{color:var(--text-secondary);font-size:var(--fs-13);font-weight:600}.photo-card-empty small{color:var(--muted-soft);font-size:var(--fs-11)}.photo-card-progress{position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,transparent,var(--brand-400),transparent);animation:slide-bar 1.1s ease infinite}.menu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-4)}.menu-card{display:flex;flex-direction:column;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-xs);overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease,transform .14s ease}.menu-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.menu-card-photo{position:relative;height:132px;width:100%;display:block;background:var(--surface-sunken);overflow:hidden}.menu-card-photo img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.menu-card:hover .menu-card-photo img{transform:scale(1.03)}.menu-card-fallback{width:100%;height:100%;display:grid;place-items:center;color:var(--brand-600);background:radial-gradient(circle at 28% 24%,rgba(124,108,255,.16),transparent 62%),radial-gradient(circle at 74% 80%,rgba(46,213,115,.14),transparent 60%),var(--surface-sunken)}.menu-card-body{display:flex;flex:1;flex-direction:column;gap:8px;padding:13px 14px 14px}.menu-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.menu-card-title{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left}.menu-card-title b{max-width:100%;font-size:var(--fs-14);letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-card-title span{max-width:100%;color:var(--muted);font-size:var(--fs-11);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-card-kcal{flex:none;display:inline-flex;align-items:baseline;gap:2px}.menu-card-kcal b{color:var(--accent-orange-ink);font-size:var(--fs-18);letter-spacing:-.02em}.menu-card-kcal small{color:var(--muted);font-size:10px;font-weight:600}.menu-dishes{display:flex;flex-wrap:wrap;gap:5px;max-height:46px;overflow:hidden}.menu-dishes span{max-width:100%;padding:3px 7px;border-radius:7px;color:#7d6238;background:#ff9f431f;font-size:10px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-dishes span.custom-entry{color:var(--brand-700);background:var(--brand-50);border:1px dashed var(--brand-300)}.menu-dishes .menu-dishes-empty{color:var(--muted);background:var(--surface-muted);font-weight:500}.menu-card-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:9px;border-top:1px solid var(--border)}.menu-card-meta{color:var(--muted);font-size:var(--fs-11);font-weight:600}.menu-card-actions .btn{flex:none}.apply-dishes{max-height:180px;padding:10px 11px;border-radius:var(--r-md);background:var(--surface-muted);border:1px solid var(--border);gap:5px}.apply-dishes span{color:var(--text-secondary);background:var(--surface);border:1px solid var(--border)}.chosen-list{display:flex;flex-direction:column;gap:6px}.chosen-list li{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:var(--r-sm);background:var(--surface-muted);border:1px solid var(--border)}.chosen-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.chosen-copy b{font-size:var(--fs-12);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chosen-copy small{color:var(--muted);font-size:var(--fs-11);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chosen-kcal{flex:none;color:var(--accent-orange-ink);font-size:var(--fs-12)}.menu-portion-foot{display:flex;align-items:center;justify-content:flex-end;gap:12px}.menu-portion-total{display:inline-flex;align-items:baseline;gap:3px;margin-right:auto}.menu-portion-total b{font-size:var(--fs-16);letter-spacing:-.02em}.menu-portion-total small{color:var(--muted);font-size:10px;font-weight:600}.menu-custom-form{display:flex;flex-direction:column;gap:12px;padding:13px;border-radius:var(--r-md);border:1px solid var(--brand-200);background:var(--surface);animation:panel-in .18s ease both}.menu-custom-actions{display:flex;justify-content:flex-end;gap:8px}.cat-add-row{display:flex;gap:8px}.cat-add-row .input{flex:1}.cat-manage-list{display:flex;flex-direction:column;gap:5px}.cat-manage-row{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface)}.star-btn{width:28px;height:28px;flex:none;display:grid;place-items:center;border-radius:8px;color:var(--muted-soft);background:var(--surface-sunken);transition:color .16s ease,background .16s ease}.star-btn.on{color:#d99a1c;background:#f5a62324}.star-btn:disabled{opacity:.4;cursor:not-allowed}.cat-label{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;padding:2px 0}.cat-label b{font-size:var(--fs-13)}.cat-label small{color:var(--muted);font-size:var(--fs-11)}.cat-label:hover b{color:var(--brand-700)}.cat-rename-input{flex:1;min-height:32px;font-size:var(--fs-12)}.cat-count{color:var(--muted-soft);font-size:var(--fs-11)}.cat-share{display:inline-flex;align-items:center;gap:7px;flex:none;color:var(--muted);font-size:var(--fs-11);font-weight:700;cursor:pointer}.cat-share:hover{color:var(--text-secondary)}.cat-share .switch{width:34px;height:20px}.cat-share .switch:after{width:14px;height:14px;top:3px;left:3px}.cat-share .switch.on:after{transform:translate(14px)}@media(max-width:520px){.cat-share>span{display:none}}.cat-empty{padding:18px;text-align:center;color:var(--muted);font-size:var(--fs-12)}.cat-hint{color:var(--muted);font-size:var(--fs-11);line-height:1.6}@media(max-width:1180px){.intake-layout{grid-template-columns:minmax(0,1fr)}.intake-side{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:start}}@media(max-width:760px){.library-head{align-items:stretch}.library-search{min-width:0;flex-basis:100%}.dish-grid{grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:11px}.dish-card-photo{height:108px}.meal-row{grid-template-columns:32px minmax(0,1fr) auto 28px;row-gap:7px;padding:8px 6px 8px 8px}.meal-rows{margin-left:26px;padding-left:8px}.meal-card-body{padding:0 8px 8px}.meal-empty{width:calc(100% - 34px);margin-left:26px}.meal-card-head{gap:8px;padding:12px 12px 12px 6px}.meal-glyph{width:34px;height:34px}.meal-row-thumb{width:32px;height:32px}.meal-row-kcal{grid-column:3;grid-row:1}.meal-row-del{grid-column:4;grid-row:1;opacity:1}.meal-row-amount{grid-column:2 / -1;grid-row:2;justify-content:flex-start}.meal-card-head{flex-wrap:wrap;padding:13px}.meal-add{height:30px;padding:0 11px}.meal-kcal{margin-left:auto}.intake-week{top:48px;width:auto;right:0}.intake-week-days{gap:2px}.intake-week-day{padding:7px 1px 6px;border-radius:var(--r-sm)}.intake-week-day b{font-size:var(--fs-14)}.date-switcher-copy{min-width:104px}.intake-side{grid-template-columns:minmax(0,1fr)}.ingredient-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ingredient-total{min-width:0}.menu-grid{grid-template-columns:minmax(0,1fr)}.dialog-foot .dialog-total{display:none}}.meal-photo{position:relative;flex:none;width:38px;height:38px}.meal-photo-btn{position:relative;width:100%;height:100%;padding:0;border:0;display:grid;place-items:center;border-radius:12px;color:var(--meal-ink, var(--accent-orange-ink));background:var(--meal-tint, rgba(255, 159, 67, .13));overflow:hidden;transition:box-shadow .18s ease}.meal-photo-btn:hover{box-shadow:0 0 0 2px var(--meal-tint, rgba(255, 159, 67, .13))}.meal-photo-btn img{width:100%;height:100%;object-fit:cover;object-position:50% 42%;transition:transform .3s cubic-bezier(.2,.8,.2,1)}.meal-photo.has-image .meal-photo-btn{box-shadow:inset 0 0 0 1px #10142014}.meal-photo.has-image .meal-photo-btn:hover img{transform:scale(1.05)}.meal-photo-dot{position:absolute;right:-2px;bottom:-2px;width:15px;height:15px;display:grid;place-items:center;border-radius:50%;background:var(--surface);color:var(--brand-600);box-shadow:0 0 0 2px var(--surface);opacity:.7;transition:opacity .16s ease}.meal-photo-btn:hover .meal-photo-dot{opacity:1}.meal-photo-remove{position:absolute;top:-4px;right:-4px;width:16px;height:16px;display:grid;place-items:center;border-radius:50%;background:var(--surface);border:1px solid var(--border);color:var(--muted);opacity:0;transition:opacity .16s ease,color .16s ease,border-color .16s ease}.meal-photo:hover .meal-photo-remove,.meal-photo:focus-within .meal-photo-remove{opacity:1}.meal-photo-remove:hover{color:var(--danger);border-color:var(--danger)}@media(max-width:760px){.meal-photo{width:34px;height:34px}.meal-photo-remove{opacity:1}}.quick-photo{display:flex;align-items:flex-start;gap:12px}.quick-photo-label{flex:none;padding-top:8px;color:var(--text-secondary);font-size:var(--fs-12);font-weight:600}.quick-photo-body{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.quick-photo-slot-wrap{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.quick-photo-slot{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:64px;height:64px;padding:0;border-radius:var(--r-sm);border:1px dashed var(--border-strong);background:var(--surface-muted);color:var(--muted);font-size:10px;font-weight:600;overflow:hidden;transition:border-color .16s ease,color .16s ease,background .16s ease}.quick-photo-slot:hover{border-color:var(--brand-300);color:var(--brand-700);background:var(--brand-50)}.quick-photo-slot.has-image{border:0;padding:0;box-shadow:inset 0 0 0 1px var(--border)}.quick-photo-slot.has-image img{width:100%;height:100%;object-fit:cover}.quick-photo-hint{color:var(--muted-soft);font-size:var(--fs-11)}
