@font-face{font-family:Glacial Indifference;src:url(/assets/glacial-indifference-700-DVq2OKe3.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{color-scheme:light;--background: #faf7ff;--foreground: #16111d;--card: rgba(255, 255, 255, .82);--card-foreground: #1f1a27;--border: rgba(92, 61, 173, .12);--input: rgba(92, 61, 173, .12);--muted: #f1ebff;--muted-foreground: #655f70;--primary: #7c3aed;--primary-foreground: #ffffff;--secondary: #ede9fe;--secondary-foreground: #4c1d95;--accent: #8b5cf6;--accent-foreground: #ffffff;--danger: #b91c1c;--danger-foreground: #ffffff;--danger-muted: #fef2f2;--danger-border: rgba(185, 28, 28, .35);--ring: rgba(124, 58, 237, .3);--macro-kcal-bg: #fff4e5;--macro-kcal-fg: #92400e;--macro-protein-bg: #e8f4ff;--macro-protein-fg: #1d4ed8;--macro-carbs-bg: #ecfdf5;--macro-carbs-fg: #047857;--macro-fats-bg: #fef9c3;--macro-fats-fg: #854d0e;--shadow: 0 20px 40px rgba(66, 44, 122, .08);--shadow-control: 0 1px 6px rgba(32, 33, 36, .18);--radius: .25rem;--control-height: 48px;--font-title: "Glacial Indifference", "Century Gothic", "Trebuchet MS", sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,rgba(167,139,250,.2),transparent 30%),var(--background);color:var(--foreground);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}.ff-shell{min-height:100vh}.ff-container{width:min(1120px,calc(100% - 2rem));margin:0 auto}.ff-card{border:1px solid var(--border);background:var(--card);color:var(--card-foreground);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.ff-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;height:var(--control-height);border-radius:var(--radius);border:1px solid transparent;padding:0 1.15rem;font-size:.95rem;font-weight:600;line-height:1.25;text-decoration:none;cursor:pointer;box-shadow:none;transition:border-color .15s ease,background .15s ease,filter .15s ease}a.ff-button{box-sizing:border-box}.ff-button:hover{filter:brightness(.92)}.ff-button:focus-visible,.ff-input:focus-visible,.ff-select:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.ff-button-primary,a.ff-button-primary{background:linear-gradient(135deg,var(--primary),var(--accent));color:var(--primary-foreground)}.ff-button-secondary,a.ff-button-secondary{background:#ffffffb8;color:var(--foreground);border-color:var(--border)}.ff-button-danger,a.ff-button-danger{background:var(--danger);color:var(--danger-foreground);border-color:var(--danger)}.ff-button-round{width:var(--control-height);height:var(--control-height);padding:0;flex-shrink:0;background:#fff;color:var(--foreground);border-color:var(--border)}.ff-input,.ff-select{width:100%;height:var(--control-height);border:1px solid var(--input);background:#ffffffb3;border-radius:var(--radius);color:var(--foreground);padding:0 1rem;font-size:.95rem;font-weight:400;line-height:1.25;font-family:inherit}.ff-select{cursor:pointer}.ff-badge{display:inline-flex;align-items:center;gap:.35rem;border-radius:var(--radius);background:var(--secondary);color:var(--secondary-foreground);padding:.45rem .75rem;font-size:.8rem;font-weight:600}.ff-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--primary);color:#fff;font-size:.7rem;font-weight:700;line-height:18px;box-sizing:border-box}.ff-count-badge.is-empty{visibility:hidden}.ff-badge-kcal{background:var(--macro-kcal-bg);color:var(--macro-kcal-fg)}.ff-badge-protein{background:var(--macro-protein-bg);color:var(--macro-protein-fg)}.ff-badge-carbs{background:var(--macro-carbs-bg);color:var(--macro-carbs-fg)}.ff-badge-fats{background:var(--macro-fats-bg);color:var(--macro-fats-fg)}.ff-badge-verified{background:#ecfdf5;color:#047857}.ff-badge-allergen{background:var(--secondary);color:var(--secondary-foreground)}.ff-heading{font-family:var(--font-title);letter-spacing:-.04em;line-height:1}.ff-section-title{margin:0;font-family:var(--font-title);font-size:clamp(1.75rem,3vw,2.5rem);letter-spacing:-.04em}.ff-slider{position:relative;display:flex;align-items:center;width:100%;height:24px;padding-inline:9px;box-sizing:border-box;overflow:visible;-webkit-user-select:none;user-select:none;touch-action:none}.ff-slider-track{position:relative;height:4px;flex-grow:1;border-radius:999px;background:var(--muted)}.ff-slider-range{position:absolute;height:100%;background:var(--primary);border-radius:999px}.ff-slider-thumb{display:block;width:18px;height:18px;background:#fff;border:2px solid var(--primary);border-radius:50%;box-shadow:0 1px 4px #2021243d}.ff-slider-thumb:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.ff-checkbox{appearance:none;-webkit-appearance:none;display:inline-grid;place-content:center;width:1.1rem;height:1.1rem;margin:0;border:2px solid color-mix(in oklab,var(--primary) 35%,var(--border));border-radius:.3rem;background:var(--background);color:var(--primary-foreground);cursor:pointer;vertical-align:middle;flex-shrink:0;transition:background-color .12s ease,border-color .12s ease}.ff-checkbox:before{content:"";width:.55rem;height:.55rem;transform:scale(0);transition:transform .12s ease;box-shadow:inset 1em 1em currentColor;clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0,43% 62%)}.ff-checkbox:checked{background:var(--primary);border-color:var(--primary)}.ff-checkbox:checked:before{transform:scale(1)}.ff-checkbox:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.ff-checkbox:disabled{opacity:.5;cursor:not-allowed}.ff-checkbox-lg{width:1.45rem;height:1.45rem;border-radius:.35rem}.ff-checkbox-lg:before{width:.75rem;height:.75rem}@media(prefers-reduced-motion:reduce){.ff-checkbox,.ff-checkbox:before{transition:none}}.ff-brand-lockup{--ff-brand-scale: clamp(.55rem, 2.2vw, 1rem);display:grid;grid-template-columns:auto 1fr;align-items:center;gap:calc(var(--ff-brand-scale) * 1.15);font-size:var(--ff-brand-scale);text-align:left}@media(max-width:799px){.ff-brand-lockup{--ff-brand-scale: clamp(.45rem, 1.8vw, .78rem)}}.ff-brand-mark{display:block;width:4.25em;height:auto}.ff-brand-lockup--mark-title .ff-brand-mark{width:3.5em}.ff-brand-lockup--mark{display:block;--ff-brand-scale: 1rem}.ff-brand-lockup--mark .ff-brand-mark{width:2.75rem}.ff-brand-text{display:grid;gap:.35em;min-width:0}.ff-brand-name{margin:0;font-family:var(--font-title);font-size:3.25em;font-weight:700;letter-spacing:-.01em;line-height:1;color:var(--foreground)}.ff-brand-lockup--mark-title .ff-brand-name{font-size:3.75em}.ff-brand-tagline{margin:0;font-family:inherit;font-size:1.35em;font-weight:400;line-height:1.35;color:var(--muted-foreground);white-space:nowrap}.ff-brand-tagline-slot{display:inline-block;overflow:hidden;vertical-align:bottom;white-space:nowrap}.ff-brand-tagline-slot.is-ready{transition:width .45s cubic-bezier(.22,1,.36,1)}.ff-brand-tagline-ending{display:inline-block;font-weight:600;color:var(--foreground);opacity:0;transform:translateY(.35em);transition:opacity .28s ease,transform .28s ease}.ff-brand-tagline-ending.is-visible{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){.ff-brand-tagline-slot{transition:none}.ff-brand-tagline-ending{opacity:1;transform:none;transition:none}}.ff-tooltip-content{z-index:80;max-width:16rem;padding:.45rem .65rem;border-radius:var(--radius);background:var(--foreground);color:var(--primary-foreground);font-size:.75rem;font-weight:500;line-height:1.35;box-shadow:var(--shadow-control);-webkit-user-select:none;user-select:none;animation:ff-tooltip-in .12s ease-out}.ff-tooltip-arrow{fill:var(--foreground)}@keyframes ff-tooltip-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.ff-tooltip-content{animation:none}}.ff-toast-host{position:fixed;right:1.25rem;bottom:1.25rem;z-index:80;pointer-events:none}.ff-toast{pointer-events:auto;min-width:12rem;max-width:min(22rem,calc(100vw - 2.5rem));padding:.85rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--card-solid, #fff);box-shadow:var(--shadow);color:var(--foreground);font-size:.9rem;opacity:0;transform:translateY(.6rem);transition:opacity .18s ease,transform .18s ease}.ff-toast-in{opacity:1;transform:translateY(0)}.ff-toast-success{border-color:color-mix(in srgb,#15803d 30%,var(--border));background:#f0fdf4;color:#166534}.ff-toast-error{border-color:color-mix(in srgb,#b91c1c 35%,var(--border));background:#fef2f2;color:#991b1b}@media(prefers-reduced-motion:reduce){.ff-toast{transition:none}}.ff-modal-overlay{position:fixed;inset:0;z-index:2000;background:#16111d73}.ff-modal{position:fixed;top:50%;left:50%;z-index:2001;width:min(26rem,calc(100vw - 2.5rem));max-height:min(90dvh,40rem);overflow:auto;transform:translate(-50%,-50%);padding:1.25rem 1.35rem;border:1px solid var(--border);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow);color:var(--foreground)}.ff-modal-title{margin:0;font-size:1.1rem;font-weight:700;line-height:1.3}.ff-modal-body{margin-top:.65rem;font-size:.95rem;line-height:1.5;color:var(--muted-foreground)}.ff-modal-body>:first-child{margin-top:0}.ff-modal-body>:last-child{margin-bottom:0}.ff-modal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:1.1rem}.ff-restaurant-list-item{display:grid;grid-template-columns:72px minmax(0,1fr);gap:.75rem;align-items:start;min-height:calc(72px + .7rem);box-sizing:border-box;padding:.35rem;border-radius:var(--radius);color:inherit;text-decoration:none}.ff-restaurant-list-item:hover{background:#1c19170a}.ff-restaurant-list-item.is-selected{background:#1c19170f}.ff-restaurant-list-item-thumb{width:72px;height:72px;object-fit:cover;border-radius:var(--radius);background:#e7e5e4;flex-shrink:0}.ff-restaurant-list-item-thumb-wrap{position:relative;width:72px;height:72px;flex-shrink:0}.ff-restaurant-list-item-thumb-wrap .ff-restaurant-list-item-thumb{display:block;width:100%;height:100%}.ff-restaurant-list-item-thumb-logo{object-fit:contain;padding:.35rem;box-sizing:border-box}.ff-restaurant-list-item-thumb-wrap .ff-restaurant-list-item-thumb-placeholder{display:flex;align-items:center;justify-content:center;text-align:center;color:var(--muted-foreground);font-size:1.15rem;font-weight:700;letter-spacing:.02em;line-height:1;-webkit-user-select:none;user-select:none}.ff-restaurant-list-item-verified{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:0;color:var(--primary);cursor:help}.ff-restaurant-list-item-verified:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:2px}.ff-restaurant-list-item-verified svg{display:block}.ff-restaurant-list-item>div{display:grid;gap:.4rem;min-width:0;align-content:start}.ff-restaurant-list-item-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;min-width:0}.ff-restaurant-list-item-title{display:inline-flex;align-items:center;gap:.35rem;min-width:0;flex:1}.ff-restaurant-list-item-heading strong,.ff-restaurant-list-item-title strong{min-width:0;font-size:1.05rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff-restaurant-list-item-heading .ff-badge,.ff-restaurant-list-item-badge{flex-shrink:0;margin-top:.1rem;padding:.2rem .5rem;font-size:.7rem}.ff-restaurant-list-item-dishes{overflow:hidden;color:var(--muted-foreground);font-size:.8rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap;min-height:1.08rem}.ff-restaurant-list-item-meta-bone{min-height:1.08rem}.ff-restaurant-list-item-skeleton{min-height:calc(72px + .7rem);overflow:hidden;pointer-events:none}.ff-skeleton-bone{display:block;background:linear-gradient(90deg,#e7e5e4,#f5f5f4,#e7e5e4 90%);background-size:200% 100%;animation:ff-skeleton-shimmer 1.2s ease-in-out infinite;border-radius:var(--radius)}.ff-skeleton-bone-title{height:calc(1.05rem * 1.3);width:58%;flex:1;min-width:0;max-width:12rem}.ff-skeleton-bone-badge{height:1.1rem;width:4.25rem;flex-shrink:0;margin-top:.1rem}.ff-skeleton-bone-preview{height:1.08rem;width:92%}.ff-skeleton-bone-preview-secondary{width:72%}@keyframes ff-skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.ff-full-screen-loader{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:var(--background);color:var(--muted-foreground)}.ff-full-screen-loader-spinner{width:1.75rem;height:1.75rem;border:2.5px solid var(--border-strong, #d9cdf7);border-top-color:var(--primary);border-radius:50%;animation:ff-full-screen-loader-spin .7s linear infinite}.ff-full-screen-loader-label{margin:0;font-size:.9rem;font-weight:600;letter-spacing:.01em}@keyframes ff-full-screen-loader-spin{to{transform:rotate(360deg)}}html,body,#root{height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:radial-gradient(1200px 600px at 10% -10%,#ede9fe,transparent 55%),radial-gradient(900px 500px at 100% 0%,#f5f3ff,transparent 50%),var(--background);color:var(--foreground)}.workshop-shell{min-height:100%;box-sizing:border-box;padding:24px}.workshop-shell-center{display:grid;place-items:center}.workshop-chat{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:16px;min-height:100%}.workshop-card{width:min(100%,420px);display:flex;flex-direction:column;gap:12px;padding:24px}.workshop-title{margin:0;font-size:1.75rem;font-weight:700;letter-spacing:-.02em}.workshop-muted{margin:0;color:var(--muted-foreground);font-size:.95rem;line-height:1.45}.workshop-muted code{font-size:.85em}.workshop-form{display:flex;flex-direction:column;gap:10px;margin-top:8px}.workshop-label{font-size:.85rem;font-weight:600}.workshop-error{margin:0;color:var(--danger);font-size:.9rem}.workshop-header{display:flex;flex-direction:column;gap:6px}.workshop-pending{margin-top:8px;padding:12px 14px;border:1px solid var(--border-strong, var(--border));border-radius:4px;background:#fff;font-size:.9rem}.workshop-pending-clear{background:transparent}.workshop-pending-banner{font-weight:700;color:var(--secondary-foreground);background:var(--secondary);padding:8px 10px;border-radius:4px;margin-bottom:10px}.workshop-pending-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px}.workshop-approval-link{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--primary);text-decoration:none}.workshop-approval-link:hover{text-decoration:underline}.workshop-previews{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 10px;padding:10px 12px;border-radius:4px;border:1px solid var(--border-strong, var(--border));background:color-mix(in srgb,var(--primary) 6%,#fff)}.workshop-previews-label{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted-foreground)}.workshop-previews-links{display:flex;flex-wrap:wrap;gap:8px}.workshop-preview-link{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:4px;background:var(--primary);color:var(--primary-foreground)!important;font-weight:600;font-size:.9rem;text-decoration:none}.workshop-preview-link:hover{filter:brightness(1.05)}.workshop-bubble .workshop-previews{margin-top:10px;margin-bottom:0}.workshop-pending-body{margin:0;padding:12px;max-height:280px;overflow:auto;font-size:.85rem;line-height:1.45;background:var(--muted);border-radius:4px;border:1px solid var(--border)}.workshop-md{word-break:break-word}.workshop-md>:first-child{margin-top:0}.workshop-md>:last-child{margin-bottom:0}.workshop-md h1,.workshop-md h2,.workshop-md h3,.workshop-md h4{margin:.85em 0 .4em;font-size:1em;font-weight:700;line-height:1.3}.workshop-md h1{font-size:1.15em}.workshop-md h2{font-size:1.05em}.workshop-md p,.workshop-md ul,.workshop-md ol{margin:0 0 .65em}.workshop-md ul,.workshop-md ol{padding-left:1.25rem}.workshop-md li+li{margin-top:.2em}.workshop-md code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;padding:.1em .3em;border-radius:3px;background:color-mix(in srgb,var(--foreground) 8%,transparent)}.workshop-bubble-user .workshop-md code{background:color-mix(in srgb,#fff 22%,transparent)}.workshop-md pre{margin:0 0 .65em;padding:10px 12px;overflow:auto;border-radius:4px;background:color-mix(in srgb,var(--foreground) 8%,transparent)}.workshop-md pre code{padding:0;background:none}.workshop-md a{color:var(--primary);word-break:break-all}.workshop-bubble-user .workshop-md a{color:inherit;text-decoration:underline}.workshop-md strong{font-weight:700}.workshop-md hr{border:none;border-top:1px solid var(--border);margin:.85em 0}.workshop-pending a{color:var(--primary);word-break:break-all}.workshop-transcript{flex:1;display:flex;flex-direction:column;gap:12px;padding:8px 0 16px}.workshop-msg{display:flex;flex-direction:column;gap:4px;max-width:92%}.workshop-msg-user{align-self:flex-end;align-items:flex-end}.workshop-msg-label{font-size:.75rem;font-weight:600;color:var(--muted-foreground);letter-spacing:.02em}.workshop-bubble{max-width:100%;padding:12px 14px;border-radius:4px;line-height:1.45;word-break:break-word}.workshop-bubble a{color:var(--primary);word-break:break-all}.workshop-bubble-user{background:var(--primary);color:var(--primary-foreground)}.workshop-bubble-assistant{align-self:flex-start;background:var(--card-solid, #fff);border:1px solid var(--border-strong, var(--border))}.workshop-bubble-assistant.is-error{border-color:var(--danger-border);background:var(--danger-muted)}.workshop-bubble-status{align-self:flex-start;color:var(--muted-foreground);font-size:.9rem;padding:4px 0}.workshop-composer{display:flex;flex-direction:column;gap:10px;position:sticky;bottom:0;padding-bottom:8px;background:linear-gradient(to top,var(--background) 70%,transparent)}.workshop-textarea{width:100%;box-sizing:border-box;min-height:96px;resize:vertical;border:1px solid var(--border-strong, var(--border));border-radius:4px;padding:12px 14px;font:inherit;background:#fff;color:var(--foreground)}.workshop-textarea:focus{outline:2px solid var(--ring);outline-offset:1px}.workshop-textarea:disabled{opacity:.7}
