@import "https://fonts.googleapis.com/css2?family=Archivo:wght@500;700;800;900&family=Manrope:wght@400;500;600;700;800&display=swap";.cd-backdrop[data-v-79386bbb]{z-index:3000;padding:var(--space-4);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#00000047;place-items:center;display:grid;position:fixed;inset:0}.cd-card[data-v-79386bbb]{text-align:center;background:#fffffff5;border-radius:20px;width:min(380px,100%);padding:24px 22px 18px;box-shadow:0 0 0 .5px #00000014,0 24px 60px -12px #00000059}.cd-icon[data-v-79386bbb]{width:44px;height:44px;color:var(--nav-text);background:#0000000d;border-radius:50%;place-items:center;margin:0 auto 14px;display:grid}.cd-icon.is-danger[data-v-79386bbb]{background:var(--danger-soft);color:var(--danger)}.cd-title[data-v-79386bbb]{color:var(--nav-text-strong);font-family:var(--font-body);font-size:var(--text-lg);letter-spacing:-.01em;margin:0;font-weight:700}.cd-message[data-v-79386bbb]{color:var(--nav-text-muted);font-size:var(--text-sm);margin:8px 0 0;line-height:1.5}.cd-actions[data-v-79386bbb]{gap:10px;margin-top:20px;display:flex}.cd-btn[data-v-79386bbb]{min-height:40px;font:inherit;font-size:var(--text-sm);cursor:pointer;border:none;border-radius:12px;flex:1;padding:0 14px;font-weight:600;transition:background .15s,transform .1s}.cd-btn[data-v-79386bbb]:active{transform:scale(.98)}.cd-btn[data-v-79386bbb]:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.cd-btn-secondary[data-v-79386bbb]{color:var(--nav-text-strong);background:#0000000f}.cd-btn-secondary[data-v-79386bbb]:hover{background:#00000017}.cd-btn-primary[data-v-79386bbb]{background:var(--brand);color:#fff}.cd-btn-primary[data-v-79386bbb]:hover{background:var(--brand-hover)}.cd-btn-danger[data-v-79386bbb]{background:var(--danger);color:#fff}.cd-btn-danger[data-v-79386bbb]:hover{background:#b92727}.cd-enter-active[data-v-79386bbb],.cd-leave-active[data-v-79386bbb]{transition:opacity .2s}.cd-enter-active .cd-card[data-v-79386bbb],.cd-leave-active .cd-card[data-v-79386bbb]{transition:transform .28s cubic-bezier(.32,.72,0,1),opacity .2s}.cd-enter-from[data-v-79386bbb],.cd-leave-to[data-v-79386bbb]{opacity:0}.cd-enter-from .cd-card[data-v-79386bbb]{opacity:0;transform:scale(.94)translateY(6px)}.cd-leave-to .cd-card[data-v-79386bbb]{opacity:0;transform:scale(.98)}@media (width<=480px){.cd-actions[data-v-79386bbb]{flex-direction:column-reverse}}@media (prefers-reduced-motion:reduce){.cd-enter-active[data-v-79386bbb],.cd-leave-active[data-v-79386bbb],.cd-enter-active .cd-card[data-v-79386bbb],.cd-leave-active .cd-card[data-v-79386bbb]{transition:none}}:root{--brand:#f6883f;--brand-hover:#e87a30;--brand-soft:#fff1e2;--brand-green:#4bab3e;--brand-green-dark:#388e3c;--brand-amber:#db8c00;--bg:#fff;--bg-subtle:#faf8f5;--bg-elevated:#faf8f5;--bg-warm:#fffbec;--surface:#fff;--surface-muted:#f7f6f4;--surface-neutral:#f0eeea;--divider:#f3f3f3;--pro-canvas:radial-gradient(ellipse 130% 95% at 100% -15%, #ff9e3a29 0%, #ffbe7812 42%, transparent 72%), radial-gradient(ellipse 90% 70% at 0% 100%, #ffe4c459 0%, transparent 58%), linear-gradient(168deg, #fff9f1 0%, #fffbec 40%, #fff4e3 100%);--border-card:#e8dfd2;--shadow-card:0 1px 2px #1c191a0a, 0 4px 20px #1c191a12;--text:#1c191a;--text-secondary:#45403d;--text-muted:#807b76;--text-placeholder:#bdb5b0;--border:#f0efec;--border-strong:#d8d4cd;--success:#388e3c;--success-soft:#e8f5e9;--danger:#d32f2f;--danger-soft:#fde8e8;--warning:#f9a825;--warning-soft:#fff3e0;--macro-protein:#de5a5a;--macro-protein-soft:#fde8e8;--macro-fat:#caa33e;--macro-fat-soft:#fdf5e0;--macro-carbs:#59af57;--macro-carbs-soft:#e8f5e8;--macro-fiber:#7b61ff;--macro-fiber-soft:#ede8ff;--nav-bg:#fbfbfd;--nav-border:#e5e5ea;--nav-text:#3a3a3c;--nav-text-strong:#1d1d1f;--nav-text-muted:#6e6e73;--nav-hover:#0000000a;--nav-active-bg:#0000000f;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-pill:999px;--shadow-sm:0 2px 12px #0000000a;--shadow-md:0 4px 24px #0000000f;--shadow-brand:0 4px 20px #f6883f24;--sidebar-width:264px;--sidebar-rail-width:68px;--ease-nav:cubic-bezier(.32, .72, 0, 1);--header-height:60px;--content-max:1440px;--overlay-z:150;--font-display:"Archivo", system-ui, sans-serif;--font-body:"Manrope", system-ui, sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-base:.9375rem;--text-lg:1.0625rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--leading-normal:1.5;--leading-relaxed:1.6;font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--text);background:var(--bg)}*,:before,:after{box-sizing:border-box}body{background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;margin:0}body.pro-overlay-open{overflow:hidden}#app{min-height:100vh}.pro-canvas-decor{isolation:isolate;background:var(--pro-canvas);position:relative}.pro-canvas-decor--fullscreen{overflow:hidden}.pro-canvas-decor:after{content:"";top:calc(var(--header-height,0px) - 12px);aspect-ratio:948/1071;opacity:.09;pointer-events:none;z-index:0;background:url(/loop.svg) 50%/contain no-repeat;width:min(52vw,420px);position:fixed;right:-4%;transform:rotate(-14deg)}.pro-canvas-decor.auth-loop-bg:after{aspect-ratio:auto;opacity:.13;background:url(/loop.svg) 50%/cover no-repeat;width:auto;animation:none;position:fixed;inset:0 auto 0 0;transform:none}.pro-canvas-decor__body{z-index:1;position:relative}@media (width<=767px){.pro-canvas-decor:after{opacity:.08;width:min(70vw,280px);right:-18%}}@media (prefers-reduced-motion:no-preference){.pro-canvas-decor:after{animation:18s ease-in-out infinite alternate pro-loop-drift}}@keyframes pro-loop-drift{0%{transform:rotate(-14deg)translate(0)}to{transform:rotate(-12deg)translate(-8px,10px)}}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,h4{font-family:var(--font-display);color:var(--text);margin:0;line-height:1.25}p{margin:0}.card{background:var(--surface);border:1px solid var(--border-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.card-header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--divider);justify-content:space-between;align-items:center;display:flex}.card-header h2{font-size:var(--text-base);font-weight:900}.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);font-family:var(--font-display);font-weight:700;font-size:var(--text-sm);cursor:pointer;border:1px solid #0000;padding:.625rem 1rem;transition:background-color .15s,border-color .15s,box-shadow .15s;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-hover)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg-subtle);border-color:var(--border-strong)}.btn-ghost{color:var(--brand);font-family:var(--font-body);background:0 0;font-weight:600}.btn-ghost:hover:not(:disabled){background:var(--brand-soft)}.icon-btn{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-md);width:40px;height:40px;color:var(--text-muted);cursor:pointer;justify-content:center;align-items:center;transition:background-color .15s;display:inline-flex}.icon-btn:hover{background:var(--brand-soft)}.badge{border-radius:var(--radius-pill);font-family:var(--font-display);font-weight:700;font-size:var(--text-xs);white-space:nowrap;align-items:center;padding:.25rem .625rem;display:inline-flex}.badge-success{background:var(--success-soft);color:var(--success)}.badge-warning{background:var(--warning-soft);color:var(--brand)}.badge-neutral{background:var(--surface-neutral);color:var(--text-secondary)}.badge-brand{background:var(--brand-soft);color:var(--brand-amber)}.avatar{border-radius:var(--radius-pill);font-family:var(--font-display);color:#fff;flex-shrink:0;justify-content:center;align-items:center;font-weight:900;display:inline-flex}.search-input{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);display:flex}.search-input input{min-width:0;font-size:var(--text-sm);background:0 0;border:none;outline:none;flex:1}.search-input input::placeholder{color:var(--text-placeholder)}.filter-group{gap:var(--space-1);padding:var(--space-1);background:var(--surface-neutral);border-radius:var(--radius-md);display:flex}.filter-pill{border-radius:var(--radius-sm);font-family:var(--font-display);font-weight:700;font-size:var(--text-xs);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:.375rem .75rem;transition:all .15s}.filter-pill.is-active{background:var(--surface);color:var(--text);box-shadow:0 1px 4px #00000014}.progress-track{border-radius:var(--radius-pill);background:var(--surface-neutral);overflow:hidden}.progress-fill{border-radius:var(--radius-pill);height:100%;transition:width .3s}.muted{color:var(--text-muted)}.error-text{color:var(--danger);font-size:var(--text-sm);font-weight:600}.ok-text{color:var(--success);font-weight:600;font-size:var(--text-sm)}.btn-sm{font-size:var(--text-xs);border-radius:var(--radius-sm);padding:.38rem .7rem;font-weight:700;line-height:1.2}.btn-ai{background:var(--text);color:#fff;border-radius:var(--radius-md);font-family:var(--font-display);font-weight:700;font-size:var(--text-xs);cursor:pointer;border:none;align-items:center;gap:6px;padding:.55rem .95rem;display:inline-flex}.btn-ai:disabled{opacity:.55;cursor:not-allowed}.page-full{width:100%;max-width:none}.form-grid{gap:var(--space-5);width:100%;display:grid}@media (width>=1100px){.form-grid--recipe{grid-template-columns:minmax(0,1fr) minmax(280px,360px);align-items:start}}@media (width>=1400px){.form-grid--recipe{grid-template-columns:minmax(0,1.4fr) minmax(300px,380px)}}.field-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.field-grid--nutrition{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.ingredient-grid{gap:var(--space-2);grid-template-columns:minmax(180px,1fr) 110px 72px auto;align-items:end;display:grid}@media (width<=720px){.ingredient-grid{grid-template-columns:1fr 1fr}}.reorder-list{flex-direction:column;gap:6px;display:flex;position:relative}.reorder-item{position:relative}.reorder-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:8px 10px;transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s,border-color .22s,opacity .22s;display:grid}.reorder-card.is-compact{padding:5px 8px}.reorder-item.is-dragging .reorder-card{opacity:.42;transform:scale(.99)}.reorder-item.is-drop-target .reorder-card{border-color:var(--brand);box-shadow:var(--shadow-brand)}.reorder-drop-marker{background:var(--brand);pointer-events:none;z-index:2;border-radius:999px;height:2px;position:absolute;top:-4px;left:10px;right:10px;box-shadow:0 0 8px #f6883f66}.reorder-drop-marker.is-after{top:auto;bottom:-4px}.reorder-delete{width:28px;height:28px;color:var(--text-placeholder);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;font-size:1.1rem;line-height:1;transition:background-color .15s,color .15s;display:inline-flex}.reorder-delete:hover{background:var(--danger-soft);color:var(--danger)}.editor-toolbar{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.editor-toolbar .btn-quiet{color:var(--text-muted);font-weight:600}.reorder-move{transition:transform .26s cubic-bezier(.2,.8,.2,1)}.reorder-enter-active,.reorder-leave-active{transition:opacity .18s,transform .18s}.reorder-enter-from,.reorder-leave-to{opacity:0;transform:translateY(-6px)}.reorder-leave-active{width:calc(100% - 2px);position:absolute}.empty-state{padding:var(--space-8) var(--space-6);text-align:center;color:var(--text-muted)}.empty-state h3{margin-bottom:var(--space-2);font-size:var(--text-base);color:var(--text-muted)}.empty-state p{font-size:var(--text-sm);color:var(--text-placeholder)}.badge-pill-staging{border-radius:var(--radius-pill);background:var(--warning-soft);color:var(--brand-amber);font-family:var(--font-display);font-weight:800;font-size:var(--text-xs);letter-spacing:.04em;padding:.25rem .75rem;display:inline-block}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-placeholder)}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}.ui-page{gap:var(--space-4);width:100%;max-width:760px;padding-bottom:var(--space-8);flex-direction:column;margin:0 auto;display:flex}.ui-hero{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-6);border:1px solid var(--border-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);background:linear-gradient(#fffdf8 0%,#fff8ec 100%);flex-wrap:wrap;animation:.45s cubic-bezier(.2,.8,.2,1) backwards ui-in;display:flex}.ui-hero,.rc-hero,.mp-hero,.ap-hero,.dash-hero{isolation:isolate;position:relative;overflow:hidden}.ui-hero:before,.rc-hero:before,.mp-hero:before,.ap-hero:before,.dash-hero:before{content:"";aspect-ratio:948/1071;z-index:-1;opacity:.2;pointer-events:none;background:url(/loop.svg) 50%/100% 100% no-repeat;width:88.5%;position:absolute;top:50%;left:15%;transform:translate(-50%,-50%)rotate(90deg)}.ui-eyebrow{font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0;font-weight:700}.ui-title{font-family:var(--font-display);letter-spacing:-.02em;margin:2px 0 0;font-size:clamp(1.25rem,1.05rem + .9vw,1.75rem);font-weight:900;line-height:1.15}.ui-lead{font-size:var(--text-sm);color:var(--text-muted);margin:4px 0 0}.ui-card{padding:var(--space-5) var(--space-6);border:1px solid var(--border-card);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-card);animation:.45s cubic-bezier(.2,.8,.2,1) backwards ui-rise}.ui-card-head{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.ui-card-title{font-family:var(--font-display);font-size:var(--text-base);letter-spacing:-.01em;margin:0;font-weight:900}.ui-card-sub{font-size:var(--text-xs);color:var(--text-muted);margin:2px 0 0}.ui-rows{margin:0;padding:0;list-style:none}.ui-row{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);border-bottom:1px solid var(--divider);font-size:var(--text-sm);flex-wrap:wrap;padding:12px 0;display:flex}.ui-row:last-child{border-bottom:none;padding-bottom:0}.ui-row:first-child{padding-top:0}.ui-row-label{color:var(--text-muted);font-weight:600}.ui-row-value{text-align:right;word-break:break-word;min-width:0;font-weight:700}.ui-row-main{flex-direction:column;gap:2px;min-width:0;display:flex}.ui-row-title{font-weight:700}.ui-row-sub{font-size:var(--text-xs);color:var(--text-muted)}.ui-row-actions{flex-wrap:wrap;gap:6px;display:flex}.ui-field{font-size:var(--text-sm);flex-direction:column;gap:6px;font-weight:700;display:flex}.ui-field+.ui-field,.ui-field+.ui-switch,.ui-switch+.ui-field{margin-top:var(--space-3)}.ui-input{box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-muted);width:100%;color:var(--text);font:inherit;font-size:var(--text-sm);padding:10px 14px;font-weight:500;transition:border-color .2s,background .2s,box-shadow .2s}.ui-input::placeholder{color:var(--text-placeholder)}.ui-input:focus-visible{border-color:var(--brand);background:var(--surface);outline:none;box-shadow:0 0 0 3px #f6883f2e}.ui-input:disabled{opacity:.5;cursor:not-allowed}textarea.ui-input{resize:vertical;min-height:5.5rem}.ui-help{font-size:var(--text-xs);color:var(--text-muted);margin:0;font-weight:500}.ui-help.is-ok{color:var(--success)}.ui-help.is-bad{color:var(--danger)}.ui-switch{align-items:center;gap:var(--space-3);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--text-sm);font-weight:700;display:flex}.ui-switch input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.ui-switch-track{border-radius:var(--radius-pill);background:var(--border-strong);flex-shrink:0;width:46px;height:28px;transition:background .2s;position:relative}.ui-switch-track:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .2s cubic-bezier(.2,.8,.2,1);position:absolute;top:2px;left:2px;box-shadow:0 2px 4px #1c191a40}.ui-switch input:checked+.ui-switch-track{background:var(--brand-green)}.ui-switch input:checked+.ui-switch-track:after{transform:translate(18px)}.ui-switch input:focus-visible+.ui-switch-track{outline:2px solid var(--brand);outline-offset:2px}.btn-pill{border-radius:var(--radius-pill);padding-inline:var(--space-5)}.btn-pill.btn-sm{font-size:var(--text-xs);padding:5px 14px}.btn-primary.btn-pill:disabled{background:var(--surface-neutral);color:var(--text-muted);opacity:1}.btn-primary.btn-pill:not(:disabled){box-shadow:0 6px 16px -6px #f6883f99}.ui-banner{border-radius:var(--radius-md);font-size:var(--text-sm);margin:0;padding:10px 16px;font-weight:700}.ui-banner--ok{background:var(--success-soft);color:var(--success)}.ui-banner--err{background:var(--danger-soft);color:var(--danger)}.ui-link{color:var(--brand);font-size:var(--text-sm);align-items:center;gap:6px;font-weight:700;text-decoration:none;display:inline-flex}.ui-link:hover{text-underline-offset:2px;text-decoration:underline}.ui-code{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-xs);word-break:break-all;white-space:pre-wrap;padding:10px 14px;line-height:1.5;display:block}.ui-disclosure>summary{justify-content:space-between;align-items:center;gap:var(--space-3);cursor:pointer;font-family:var(--font-display);font-size:var(--text-base);font-weight:900;list-style:none;display:flex}.ui-disclosure>summary::-webkit-details-marker{display:none}.ui-disclosure>summary:after{content:"›";color:var(--text-muted);font-size:22px;line-height:1;transition:transform .2s}.ui-disclosure[open]>summary:after{transform:rotate(90deg)}.ui-disclosure[open]>summary{margin-bottom:var(--space-3)}.ui-skeleton{border-radius:var(--radius-lg);background:linear-gradient(90deg, var(--surface-muted) 0%, var(--bg-elevated) 50%, var(--surface-muted) 100%);background-size:200% 100%;height:64px;animation:1.3s linear infinite ui-shimmer}@keyframes ui-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes ui-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes ui-shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.ui-hero,.ui-card,.ui-skeleton{animation:none}}@media (width<=767px){.ui-hero,.ui-card{padding:var(--space-4)}.ui-row-value{text-align:left}.card-header{gap:var(--space-2);padding:var(--space-3) var(--space-4);flex-wrap:wrap}.filter-group{-webkit-overflow-scrolling:touch;scrollbar-width:none;max-width:100%;overflow-x:auto}.filter-group::-webkit-scrollbar{display:none}.btn,.icon-btn{min-height:44px}.icon-btn{min-width:44px}}
