.toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:12px;pointer-events:none}.toast{display:flex;align-items:center;gap:12px;padding:14px 16px;max-width:320px;min-width:280px;background:var(--soup-glass-bg);-webkit-backdrop-filter:var(--soup-glass-blur);backdrop-filter:var(--soup-glass-blur);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-md);box-shadow:var(--soup-shadow-lg);color:var(--soup-color-text);font-size:var(--soup-font-size-sm);pointer-events:auto;animation:toast-slide-in .3s ease-out}@keyframes toast-slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast--success{border-color:var(--soup-color-green)}.toast--success .toast__icon{color:var(--soup-color-green)}.toast--error{border-color:var(--soup-color-danger)}.toast--error .toast__icon{color:var(--soup-color-danger)}.toast--info{border-color:var(--soup-color-accent)}.toast--info .toast__icon{color:var(--soup-color-accent)}.toast__icon{width:20px;height:20px;flex-shrink:0}.toast__message{flex:1;line-height:1.4}.toast__close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:none;border:none;border-radius:var(--soup-radius-sm);color:var(--soup-color-text-muted);cursor:pointer;flex-shrink:0;transition:color .2s,background-color .2s}.toast__close:hover{color:var(--soup-color-text);background:var(--soup-glass-bg-hover)}.toast__close svg{width:16px;height:16px}@media(max-width:480px){.toast-container{bottom:16px;right:16px;left:16px}.toast{max-width:none;min-width:0;width:100%}}:root{--soup-color-bg: #0E0D0B;--soup-color-dark-bg: #0E0D0B;--soup-color-accent: #C2694A;--soup-color-accent-light: #D4855E;--soup-color-green: #6B8F71;--soup-color-warm: #8B6F4E;--soup-color-text: #E8E3DD;--soup-color-text-bright: #F5F0EB;--soup-color-text-muted: #9E9893;--soup-color-text-dim: #6A6560;--soup-color-text-soft: #B5B0AB;--soup-color-light: #F5F0EB;--soup-color-mid-gray: #9E9893;--soup-color-light-gray: rgba(255, 255, 255, .08);--soup-color-white: #FFFFFF;--soup-color-danger: #c0392b;--soup-glass-bg: rgba(255, 255, 255, .03);--soup-glass-bg-hover: rgba(255, 255, 255, .06);--soup-glass-bg-active: rgba(194, 105, 74, .1);--soup-glass-border: rgba(194, 105, 74, .12);--soup-glass-border-strong: rgba(194, 105, 74, .25);--soup-glass-border-hover: rgba(194, 105, 74, .4);--soup-glass-blur: blur(40px);--soup-border-subtle: rgba(255, 255, 255, .04);--soup-border-row: rgba(255, 255, 255, .03);--soup-spacing-xs: 4px;--soup-spacing-sm: 8px;--soup-spacing-md: 16px;--soup-spacing-lg: 24px;--soup-spacing-xl: 32px;--soup-spacing-xxl: 48px;--soup-radius-sm: 6px;--soup-radius-md: 10px;--soup-radius-lg: 16px;--soup-radius-pill: 100px;--soup-shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--soup-shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--soup-shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--soup-shadow-glow: 0 0 20px rgba(194, 105, 74, .15);--soup-font-body: "Inter", sans-serif;--soup-font-heading: "Playfair Display", serif;--soup-font-size-xs: 12px;--soup-font-size-sm: 14px;--soup-font-size-md: 16px;--soup-font-size-lg: 20px;--soup-font-size-xl: 24px;--soup-font-size-xxl: 32px;--soup-text-transform-heading: none;--soup-text-transform-ui: uppercase;--soup-letter-spacing-heading: normal;--soup-letter-spacing-ui: 1px;--soup-font-weight-heading: 400;--soup-font-weight-body: 300;--soup-font-style-heading: normal;--soup-accent-glow: rgba(194, 105, 74, .5);--soup-accent-glow-strong: rgba(212, 133, 94, .7);--soup-font-ui: var(--soup-font-body);--soup-border-width: 1px;--soup-color-sidebar-bg: #0E0D0B;--soup-color-sidebar-text: #9E9893;--soup-card-width: 280px;--soup-card-gap: 24px;--soup-font-size-page-title: 32px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{line-height:1.5}img,picture,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}a{color:inherit;text-decoration:none}ul,ol{list-style:none}.ui-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--soup-spacing-sm);padding:var(--soup-spacing-sm) var(--soup-spacing-md);font-family:var(--soup-font-body);font-size:10px;font-weight:500;letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui);line-height:1.5;color:var(--soup-color-accent);background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-sm);backdrop-filter:var(--soup-glass-blur);-webkit-backdrop-filter:var(--soup-glass-blur);cursor:pointer;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}.ui-button:hover:not(:disabled){background:var(--soup-glass-bg-hover);border-color:var(--soup-glass-border-hover);box-shadow:var(--soup-shadow-glow)}.ui-button:disabled{opacity:.4;cursor:not-allowed}.ui-button--primary{background:var(--soup-glass-bg-active);border-color:var(--soup-glass-border-strong);color:var(--soup-color-accent-light)}.ui-button--primary:hover:not(:disabled){background:var(--soup-glass-bg-active);border-color:var(--soup-glass-border-hover);box-shadow:var(--soup-shadow-glow)}.ui-button--secondary{background:var(--soup-glass-bg);border-color:var(--soup-border-subtle);color:var(--soup-color-text-muted)}.ui-button--secondary:hover:not(:disabled){background:var(--soup-glass-bg-hover);border-color:var(--soup-glass-border);color:var(--soup-color-text)}.ui-button--danger{background:#c0392b1a;border-color:#c0392b40;color:var(--soup-color-danger)}.ui-button--danger:hover:not(:disabled){background:#c0392b2e;border-color:#c0392b66;box-shadow:0 0 20px #c0392b26}.ui-button--small{padding:var(--soup-spacing-xs) var(--soup-spacing-sm);font-size:9px;letter-spacing:1.5px}.ui-input{display:block;width:100%;padding:var(--soup-spacing-sm) var(--soup-spacing-md);font-family:var(--soup-font-body);font-size:var(--soup-font-size-md);font-weight:var(--soup-font-weight-body);color:var(--soup-color-text);background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-sm);outline:none;backdrop-filter:var(--soup-glass-blur);-webkit-backdrop-filter:var(--soup-glass-blur);transition:border-color .2s ease,box-shadow .2s ease}.ui-input::placeholder{color:var(--soup-color-text-dim)}.ui-input:focus{border-color:var(--soup-glass-border-strong);box-shadow:0 0 0 1px var(--soup-glass-border)}.ui-input--error{border-color:#c0392b66}.ui-input--error:focus{border-color:var(--soup-color-danger);box-shadow:0 0 0 1px #c0392b40}.ui-textarea{display:block;width:100%;padding:var(--soup-spacing-sm) var(--soup-spacing-md);font-family:var(--soup-font-body);font-size:var(--soup-font-size-md);font-weight:var(--soup-font-weight-body);color:var(--soup-color-text);background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-sm);outline:none;resize:vertical;min-height:80px;backdrop-filter:var(--soup-glass-blur);-webkit-backdrop-filter:var(--soup-glass-blur);transition:border-color .2s ease,box-shadow .2s ease}.ui-textarea::placeholder{color:var(--soup-color-text-dim)}.ui-textarea:focus{border-color:var(--soup-glass-border-strong);box-shadow:0 0 0 1px var(--soup-glass-border)}.ui-select{display:block;width:100%;padding:var(--soup-spacing-sm) var(--soup-spacing-md);font-family:var(--soup-font-body);font-size:var(--soup-font-size-md);font-weight:var(--soup-font-weight-body);color:var(--soup-color-text);background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-sm);outline:none;appearance:none;background-image:url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><path fill="%239E9893" d="M6 8L1 3h10z"/></svg>');background-repeat:no-repeat;background-position:right 12px center;padding-right:32px;cursor:pointer;backdrop-filter:var(--soup-glass-blur);-webkit-backdrop-filter:var(--soup-glass-blur);transition:border-color .2s ease,box-shadow .2s ease}.ui-select:focus{border-color:var(--soup-glass-border-strong);box-shadow:0 0 0 1px var(--soup-glass-border)}.ui-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.ui-modal{position:relative;background:var(--soup-glass-bg);border:1px solid var(--soup-glass-border);border-radius:var(--soup-radius-lg);box-shadow:var(--soup-shadow-lg);backdrop-filter:var(--soup-glass-blur);-webkit-backdrop-filter:var(--soup-glass-blur);max-width:560px;width:100%;max-height:80%;display:flex;flex-direction:column;overflow:hidden}.ui-modal:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent);pointer-events:none}.ui-modal__header{display:flex;justify-content:space-between;align-items:center;padding:var(--soup-spacing-md) var(--soup-spacing-lg);border-bottom:1px solid var(--soup-glass-border)}.ui-modal__title{font-family:var(--soup-font-heading);font-size:var(--soup-font-size-lg);color:var(--soup-color-text-bright)}.ui-modal__close{background:none;border:none;font-size:var(--soup-font-size-xl);color:var(--soup-color-text-muted);cursor:pointer;padding:0;line-height:1;transition:color .15s ease}.ui-modal__close:hover{color:var(--soup-color-accent)}.ui-modal__body{padding:var(--soup-spacing-lg);overflow-y:auto;flex:1}.ui-modal__footer{display:flex;justify-content:flex-end;gap:var(--soup-spacing-sm);padding:var(--soup-spacing-md) var(--soup-spacing-lg);border-top:1px solid var(--soup-glass-border)}.ui-badge{display:inline-flex;align-items:center;padding:2px var(--soup-spacing-sm);font-family:var(--soup-font-ui);font-size:10px;font-weight:500;letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui);border-radius:var(--soup-radius-sm);line-height:1.5}.ui-badge--accent{background:var(--soup-glass-bg-active);border:var(--soup-border-width) solid var(--soup-glass-border);color:var(--soup-color-accent)}.ui-badge--green{background:#6b8f711a;border:var(--soup-border-width) solid rgba(107,143,113,.25);color:var(--soup-color-green)}.ui-card{display:flex;flex-direction:column;background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-lg);backdrop-filter:var(--soup-glass-blur);-webkit-backdrop-filter:var(--soup-glass-blur);padding:var(--soup-spacing-lg)}.ui-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--soup-spacing-xxl) var(--soup-spacing-lg);text-align:center}.ui-empty-state__icon{font-size:48px;margin-bottom:var(--soup-spacing-md);color:var(--soup-color-text-dim)}.ui-empty-state__message{font-size:var(--soup-font-size-lg);color:var(--soup-color-text-muted);margin-bottom:var(--soup-spacing-lg)}.ui-empty-state__action{margin-top:var(--soup-spacing-sm)}.ui-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--soup-spacing-xxl) var(--soup-spacing-lg);gap:var(--soup-spacing-md)}.ui-loading__spinner{width:32px;height:32px;border:3px solid var(--soup-glass-border);border-top-color:var(--soup-color-accent);border-radius:50%;animation:ui-spin .8s linear infinite}.ui-loading__text{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-muted)}@keyframes ui-spin{to{transform:rotate(360deg)}}body{font-family:var(--soup-font-body);font-size:var(--soup-font-size-md);font-weight:var(--soup-font-weight-body);color:var(--soup-color-text);background-color:var(--soup-color-bg)}h1,h2,h3,h4,h5,h6{font-family:var(--soup-font-heading);font-weight:var(--soup-font-weight-heading);font-style:var(--soup-font-style-heading);text-transform:var(--soup-text-transform-heading);letter-spacing:var(--soup-letter-spacing-heading);color:var(--soup-color-text-bright)}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px;background:var(--soup-color-bg)}.error-boundary__card{display:flex;flex-direction:column;align-items:center;padding:48px 40px;max-width:400px;width:100%;background:var(--soup-glass-bg);-webkit-backdrop-filter:var(--soup-glass-blur);backdrop-filter:var(--soup-glass-blur);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-lg);box-shadow:var(--soup-shadow-lg);text-align:center}.error-boundary__icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin-bottom:24px;background:#c0392b1a;border-radius:50%;color:var(--soup-color-danger)}.error-boundary__icon svg{width:32px;height:32px}.error-boundary__title{margin:0 0 12px;font-family:var(--soup-font-heading);font-size:var(--soup-font-size-xl);font-weight:600;color:var(--soup-color-text-bright)}.error-boundary__message{margin:0 0 32px;font-size:var(--soup-font-size-md);color:var(--soup-color-text-muted);line-height:1.5}.error-boundary__actions{display:flex;gap:12px}@media(max-width:480px){.error-boundary__card{padding:32px 24px}.error-boundary__actions{flex-direction:column;width:100%}.error-boundary__actions .ui-button{width:100%;text-align:center}}.app-nav{display:flex;flex-direction:column;width:220px;min-height:100%;background-color:var(--soup-color-sidebar-bg);border-right:var(--soup-border-width) solid var(--soup-border-subtle);padding:var(--soup-spacing-lg) 0;flex-shrink:0}.app-nav__brand{font-family:var(--soup-font-heading);font-size:var(--soup-font-size-xl);color:var(--soup-color-accent);padding:0 var(--soup-spacing-lg);margin-bottom:var(--soup-spacing-xl);font-weight:700}.app-nav__brand-sub{display:block;font-family:var(--soup-font-body);font-size:10px;font-weight:400;color:var(--soup-color-text-muted);letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui);margin-top:2px}.app-nav__list{display:flex;flex-direction:column;gap:2px;flex:1;overflow-y:auto}.app-nav__item{display:flex}.app-nav__link{display:flex;align-items:center;width:100%;padding:var(--soup-spacing-sm) var(--soup-spacing-lg);font-family:var(--soup-font-ui);font-size:var(--soup-font-size-md);color:var(--soup-color-sidebar-text);transition:background-color .15s ease,color .15s ease}.app-nav__link:hover{background-color:var(--soup-glass-bg-hover);color:var(--soup-color-text)}.app-nav__link--active{background-color:var(--soup-glass-bg-active);color:var(--soup-color-accent);border-left:3px solid var(--soup-color-accent);padding-left:21px}.app-nav__user{position:relative;margin-top:auto;padding:var(--soup-spacing-md) var(--soup-spacing-lg);border-top:1px solid var(--soup-border-subtle)}.app-nav__user-button{display:flex;align-items:center;gap:var(--soup-spacing-sm);width:100%;padding:var(--soup-spacing-sm);background:transparent;border:1px solid transparent;border-radius:var(--soup-radius-md);cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.app-nav__user-button:hover{background:var(--soup-glass-bg-hover);border-color:var(--soup-border-subtle)}.app-nav__user-avatar{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--soup-color-accent);border-radius:50%;font-size:var(--soup-font-size-xs);font-weight:600;color:var(--soup-color-bg);flex-shrink:0}.app-nav__user-name{flex:1;font-size:var(--soup-font-size-sm);color:var(--soup-color-text);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-nav__user-chevron{font-size:8px;color:var(--soup-color-text-muted)}.app-nav__user-menu{position:absolute;bottom:100%;left:var(--soup-spacing-lg);right:var(--soup-spacing-lg);margin-bottom:var(--soup-spacing-xs);background:var(--soup-color-bg);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-md);box-shadow:var(--soup-shadow-lg);overflow:hidden;z-index:100}.app-nav__user-info{display:flex;flex-direction:column;gap:2px;padding:var(--soup-spacing-sm) var(--soup-spacing-md)}.app-nav__user-email{font-size:var(--soup-font-size-sm);color:var(--soup-color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-nav__user-divider{height:1px;background:var(--soup-border-subtle)}.app-nav__user-menu-item{display:flex;align-items:center;width:100%;padding:var(--soup-spacing-sm) var(--soup-spacing-md);background:transparent;border:none;font-size:var(--soup-font-size-sm);color:var(--soup-color-text-muted);cursor:pointer;text-align:left;transition:background-color .15s ease,color .15s ease}.app-nav__user-menu-item:hover{background:var(--soup-glass-bg-hover);color:var(--soup-color-text)}.app-nav--collapsed{width:72px;align-items:center;padding:var(--soup-spacing-md) 0}.app-nav--collapsed .app-nav__brand{font-size:var(--soup-font-size-lg);padding:0;text-align:center;width:100%}.app-nav--collapsed .app-nav__link{flex-direction:column;justify-content:center;align-items:center;padding:var(--soup-spacing-sm) var(--soup-spacing-xs);font-size:11px;text-align:center;gap:2px}.app-nav--collapsed .app-nav__link--active{border-left:none;border-bottom:2px solid var(--soup-color-accent);padding-left:var(--soup-spacing-xs)}.app-nav--collapsed .app-nav__icon-label{font-weight:600;letter-spacing:.5px}.app-nav--collapsed .app-nav__user{padding:var(--soup-spacing-sm)}.app-nav--collapsed .app-nav__user-button{justify-content:center}.app-nav--collapsed .app-nav__user-menu{left:100%;right:auto;bottom:0;margin-bottom:0;margin-left:var(--soup-spacing-xs);min-width:200px}@media(max-width:768px){.app-nav{flex-direction:row;align-items:center;width:100%;min-height:auto;padding:var(--soup-spacing-sm) 0;overflow-x:auto;border-right:none;border-bottom:1px solid var(--soup-border-subtle)}.app-nav__brand{margin-bottom:0;margin-right:var(--soup-spacing-md);padding:0 var(--soup-spacing-md);white-space:nowrap;font-size:var(--soup-font-size-lg)}.app-nav__list{flex-direction:row;gap:0;flex:none;overflow-y:visible}.app-nav__link{white-space:nowrap;padding:var(--soup-spacing-sm) var(--soup-spacing-md)}.app-nav__link--active{border-left:none;border-bottom:2px solid var(--soup-color-accent);padding-left:var(--soup-spacing-md)}.app-nav__user{margin-top:0;margin-left:auto;padding:0 var(--soup-spacing-md);border-top:none;border-left:1px solid var(--soup-border-subtle)}.app-nav__user-name,.app-nav__user-chevron{display:none}.app-nav__user-menu{inset:100% 0 auto auto;margin-bottom:0;margin-top:var(--soup-spacing-xs);min-width:200px}}.app-layout{display:flex;min-height:100vh;background-color:var(--soup-color-bg)}.app-layout__content{flex:1;padding:var(--soup-spacing-xl);overflow-y:auto}@media(max-width:768px){.app-layout{flex-direction:column;height:100vh;height:100dvh}.app-layout__content{padding:0}}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--soup-spacing-lg);background-color:var(--soup-color-bg);background-image:radial-gradient(circle at 30% 20%,rgba(194,105,74,.05) 0%,transparent 50%),radial-gradient(circle at 70% 80%,rgba(194,105,74,.03) 0%,transparent 50%)}.login-page__card{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--soup-spacing-lg);padding:var(--soup-spacing-xxl);background:var(--soup-glass-bg);border:1px solid var(--soup-glass-border);border-radius:var(--soup-radius-lg);backdrop-filter:var(--soup-glass-blur);-webkit-backdrop-filter:var(--soup-glass-blur);box-shadow:var(--soup-shadow-lg);width:100%;max-width:400px}.login-page__card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent);border-radius:var(--soup-radius-lg) var(--soup-radius-lg) 0 0;pointer-events:none}.login-page__title{font-family:var(--soup-font-heading);font-size:var(--soup-font-size-page-title);color:var(--soup-color-accent)}.login-page__subtitle{font-size:var(--soup-font-size-md);color:var(--soup-color-text-muted);margin-top:calc(-1 * var(--soup-spacing-sm))}.login-page__tabs{display:flex;width:100%;border-radius:var(--soup-radius-md);overflow:hidden;border:1px solid var(--soup-border-subtle)}.login-page__tab{flex:1;padding:var(--soup-spacing-sm) var(--soup-spacing-md);background:transparent;border:none;font-size:var(--soup-font-size-sm);color:var(--soup-color-text-muted);cursor:pointer;transition:background-color .15s ease,color .15s ease}.login-page__tab:hover{background:var(--soup-glass-bg-hover);color:var(--soup-color-text)}.login-page__tab--active,.login-page__tab--active:hover{background:var(--soup-color-accent);color:var(--soup-color-bg)}.login-page__form{display:flex;flex-direction:column;gap:var(--soup-spacing-md);width:100%}.login-page__field{display:flex;flex-direction:column;gap:var(--soup-spacing-xs)}.login-page__label{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-muted)}.login-page__error{padding:var(--soup-spacing-sm) var(--soup-spacing-md);background:#e74c3c26;border:1px solid rgba(231,76,60,.3);border-radius:var(--soup-radius-sm);font-size:var(--soup-font-size-sm);color:var(--soup-color-danger)}.login-page__submit{width:100%;margin-top:var(--soup-spacing-sm)}.login-page__submit:disabled{opacity:.6;cursor:not-allowed}.login-page__demo-hint{font-size:var(--soup-font-size-xs);color:var(--soup-color-text-dim);text-align:center}@media(max-width:480px){.login-page{padding:var(--soup-spacing-md)}.login-page__card{padding:var(--soup-spacing-lg)}}.dietary-badges{display:flex;flex-wrap:wrap;gap:var(--soup-spacing-xs)}.dietary-badges__badge{display:inline-flex;align-items:center;padding:2px var(--soup-spacing-sm);font-family:var(--soup-font-ui);font-size:10px;font-weight:500;letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui);border-radius:var(--soup-radius-sm);line-height:1.5;background:#6b8f711a;border:var(--soup-border-width) solid rgba(107,143,113,.25);color:var(--soup-color-green)}.dietary-badges--compact .dietary-badges__badge{font-size:9px;padding:1px 6px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--soup-spacing-md);margin-bottom:var(--soup-spacing-xl)}.page-header__text{display:flex;flex-direction:column;gap:var(--soup-spacing-xs)}.page-header__title{font-family:var(--soup-font-heading);font-size:var(--soup-font-size-page-title);color:var(--soup-color-text-bright);line-height:1.2}.page-header__subtitle{font-size:var(--soup-font-size-md);color:var(--soup-color-text-muted)}.page-header__actions{display:flex;gap:var(--soup-spacing-sm);flex-shrink:0}@media(max-width:768px){.page-header{flex-direction:column;padding:var(--soup-spacing-md)}}.difficulty{display:inline-flex;align-items:center;gap:3px}.difficulty--text{font-size:10px;font-weight:500;letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui);color:var(--soup-color-text-muted)}.difficulty--easy{color:var(--soup-color-green)}.difficulty--medium{color:var(--soup-color-accent)}.difficulty--hard{color:var(--soup-color-danger)}.difficulty__dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--soup-color-text-dim)}.difficulty__dot--filled{background:var(--soup-color-accent)}.difficulty__bar{display:inline-block;width:12px;height:4px;border-radius:2px;background:var(--soup-color-text-dim)}.difficulty__bar--filled{background:var(--soup-color-accent)}.difficulty__pip{display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--soup-color-text-dim)}.difficulty__pip--filled{background:var(--soup-color-accent)}.difficulty__star{font-size:12px;color:var(--soup-color-text-dim)}.difficulty__star--filled{color:var(--soup-color-accent)}.time-display{display:flex;align-items:center;gap:var(--soup-spacing-md)}.time-display__segment{display:flex;flex-direction:column;align-items:center;gap:2px}.time-display__label{font-size:9px;font-weight:500;letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui);color:var(--soup-color-text-dim)}.time-display__value{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-muted);font-weight:400}.time-display__segment--total .time-display__value{color:var(--soup-color-accent);font-weight:500}.recipe-card{display:flex;flex-direction:column;background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-lg);backdrop-filter:var(--soup-glass-blur);-webkit-backdrop-filter:var(--soup-glass-blur);cursor:pointer;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease;overflow:hidden}.recipe-card:hover{background:var(--soup-glass-bg-hover);border-color:var(--soup-glass-border-hover);box-shadow:var(--soup-shadow-glow)}.recipe-card__body{display:flex;flex-direction:column;gap:var(--soup-spacing-sm);padding:var(--soup-spacing-lg)}.recipe-card__cuisine{font-family:var(--soup-font-ui);font-size:10px;font-weight:500;letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui);color:var(--soup-color-accent)}.recipe-card__title{font-family:var(--soup-font-heading);font-size:var(--soup-font-size-lg);color:var(--soup-color-text-bright);line-height:1.3}.recipe-card__desc{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-muted);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-card__footer{display:flex;align-items:center;justify-content:space-between;margin-top:var(--soup-spacing-xs)}.recipe-card__detail{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-dim)}.recipe-card__right{display:flex;align-items:center;gap:var(--soup-spacing-sm)}.recipe-card__fav{color:var(--soup-color-accent);font-size:14px}.catalog-entry{display:flex;align-items:center;justify-content:space-between;gap:var(--soup-spacing-md);padding:var(--soup-spacing-md) var(--soup-spacing-lg);border-bottom:1px solid var(--soup-border-row);cursor:pointer;transition:background-color .15s ease}.catalog-entry:hover{background:var(--soup-glass-bg-hover)}.catalog-entry__body{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.catalog-entry__title{font-family:var(--soup-font-heading);font-size:var(--soup-font-size-md);color:var(--soup-color-text-bright);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.catalog-entry__desc{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.catalog-entry__tags{display:flex;gap:var(--soup-spacing-sm);margin-top:2px}.catalog-entry__tag{font-size:10px;color:var(--soup-color-text-dim);letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui)}.catalog-entry__meta{display:flex;align-items:center;gap:var(--soup-spacing-sm);flex-shrink:0}.catalog-entry__detail{font-size:10px;color:var(--soup-color-text-muted);letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui)}.catalog-entry__fav{color:var(--soup-color-accent);font-size:14px}.recipe-card__diet-label{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:500;letter-spacing:.3px;padding:2px var(--soup-spacing-sm);border-radius:var(--soup-radius-sm);width:fit-content}.recipe-card__diet-label--approved{color:var(--soup-color-green, #6b8f71);background:#6b8f711f;border:var(--soup-border-width) solid rgba(107,143,113,.25)}.recipe-card__diet-label--subs{color:var(--soup-color-warning, #e6a817);background:#e6a81714;border:var(--soup-border-width) solid rgba(230,168,23,.25)}@media(max-width:480px){.recipe-card__body{padding:var(--soup-spacing-md)}.catalog-entry{padding:var(--soup-spacing-sm) var(--soup-spacing-md)}.catalog-entry__tags{display:none}}.recipe-form{display:flex;flex-direction:column;gap:var(--soup-spacing-lg);max-width:720px}.recipe-form__heading{font-family:var(--soup-font-heading);font-size:var(--soup-font-size-xl);color:var(--soup-color-text-bright)}.recipe-form__field{display:flex;flex-direction:column;gap:var(--soup-spacing-xs)}.recipe-form__field--small{flex:1;min-width:0}.recipe-form__label{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-muted);font-weight:500}.recipe-form__error{font-size:var(--soup-font-size-sm);color:var(--soup-color-danger)}.recipe-form__row{display:flex;gap:var(--soup-spacing-md)}.recipe-form__section{display:flex;flex-direction:column;gap:var(--soup-spacing-sm)}.recipe-form__section-header{display:flex;align-items:center;gap:var(--soup-spacing-sm)}.recipe-form__ingredient-row{display:flex;gap:var(--soup-spacing-xs);align-items:center}.recipe-form__ing-amount{width:60px;flex-shrink:0}.recipe-form__ing-unit{width:70px;flex-shrink:0}.recipe-form__ing-name{flex:2;min-width:0}.recipe-form__ing-notes{flex:1;min-width:0}.recipe-form__step-row{display:flex;gap:var(--soup-spacing-sm);align-items:flex-start}.recipe-form__step-num{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--soup-glass-bg-active);border:var(--soup-border-width) solid var(--soup-glass-border);color:var(--soup-color-accent);font-size:var(--soup-font-size-sm);font-weight:600;flex-shrink:0;margin-top:var(--soup-spacing-sm)}.recipe-form__step-text{flex:1;min-width:0}.recipe-form__step-timer{width:60px;flex-shrink:0}.recipe-form__remove-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:none;color:var(--soup-color-text-dim);font-size:18px;cursor:pointer;flex-shrink:0;border-radius:var(--soup-radius-sm);transition:color .15s ease,background-color .15s ease}.recipe-form__remove-btn:hover{color:var(--soup-color-danger);background:#c0392b1a}.recipe-form__row-actions{display:flex;gap:2px;flex-shrink:0;align-items:center}.recipe-form__move-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:none;border:none;color:var(--soup-color-text-dim);font-size:14px;cursor:pointer;flex-shrink:0;border-radius:var(--soup-radius-sm);transition:color .15s ease,background-color .15s ease}.recipe-form__move-btn:hover:not(:disabled){color:var(--soup-color-accent);background:var(--soup-glass-bg-active)}.recipe-form__move-btn:disabled{opacity:.25;cursor:default}.recipe-form__toggles{display:flex;flex-wrap:wrap;gap:var(--soup-spacing-xs)}.recipe-form__toggle{display:inline-flex;align-items:center;padding:4px var(--soup-spacing-sm);font-size:11px;font-weight:500;letter-spacing:.5px;color:var(--soup-color-text-dim);background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-border-subtle);border-radius:var(--soup-radius-sm);cursor:pointer;transition:color .15s ease,background-color .15s ease,border-color .15s ease}.recipe-form__toggle:hover{color:var(--soup-color-text);border-color:var(--soup-glass-border)}.recipe-form__toggle--active{color:var(--soup-color-accent);background:var(--soup-glass-bg-active);border-color:var(--soup-glass-border-strong)}.recipe-form__actions{display:flex;gap:var(--soup-spacing-sm);padding-top:var(--soup-spacing-md);border-top:1px solid var(--soup-border-row)}@media(max-width:768px){.recipe-form{padding:var(--soup-spacing-md)}.recipe-form__row{flex-direction:column}.recipe-form__ingredient-row{flex-wrap:wrap}.recipe-form__ing-amount,.recipe-form__ing-unit{width:calc(50% - 2px)}.recipe-form__ing-name,.recipe-form__ing-notes{flex:1 1 100%}}.cookbook-page{display:flex;flex-direction:column;gap:var(--soup-spacing-lg)}.cookbook-page__toolbar{display:flex;gap:var(--soup-spacing-sm);flex-wrap:wrap;align-items:center}.cookbook-page__search{flex:1;min-width:200px}.cookbook-page__filter-row{display:flex;gap:var(--soup-spacing-sm);flex-wrap:wrap;align-items:center}.cookbook-page__filter-select{min-width:120px}.cookbook-page__toggle{display:inline-flex;align-items:center;padding:4px var(--soup-spacing-sm);font-size:11px;font-weight:500;letter-spacing:.5px;color:var(--soup-color-text-dim);background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-border-subtle);border-radius:var(--soup-radius-sm);cursor:pointer;transition:color .15s ease,background-color .15s ease,border-color .15s ease}.cookbook-page__toggle:hover{color:var(--soup-color-text);border-color:var(--soup-glass-border)}.cookbook-page__toggle--active{color:var(--soup-color-accent);background:var(--soup-glass-bg-active);border-color:var(--soup-glass-border-strong)}.cookbook-page__clear-btn{background:none;border:none;font-size:var(--soup-font-size-sm);color:var(--soup-color-text-dim);cursor:pointer;padding:4px var(--soup-spacing-sm)}.cookbook-page__clear-btn:hover{color:var(--soup-color-accent)}.cookbook-page__diet-bar{display:flex;align-items:center;gap:var(--soup-spacing-sm);flex-wrap:wrap}.cookbook-page__diet-label{font-family:var(--soup-font-ui);font-size:10px;font-weight:500;letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui);color:var(--soup-color-text-dim);margin-right:var(--soup-spacing-xs)}.cookbook-page__diet-toggle{display:inline-flex;align-items:center;padding:4px var(--soup-spacing-sm);font-size:11px;font-weight:500;letter-spacing:.3px;color:var(--soup-color-text-dim);background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-border-subtle);border-radius:var(--soup-radius-sm);cursor:pointer;transition:color .15s ease,background-color .15s ease,border-color .15s ease}.cookbook-page__diet-toggle:hover{color:var(--soup-color-text);border-color:var(--soup-glass-border)}.cookbook-page__diet-toggle--active{color:var(--soup-color-green, #6b8f71);background:#6b8f711f;border-color:#6b8f714d}.cookbook-page__results-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--soup-spacing-sm)}.cookbook-page__count{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-dim)}.cookbook-page__sort{display:flex;align-items:center;gap:var(--soup-spacing-xs)}.cookbook-page__sort-label{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-dim)}.cookbook-page__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--soup-spacing-md)}.cookbook-page__grid--catalog{grid-template-columns:1fr;gap:0}@media(max-width:768px){.cookbook-page{padding:var(--soup-spacing-md)}.cookbook-page__grid{grid-template-columns:1fr}.cookbook-page__toolbar{flex-direction:column;align-items:stretch}.cookbook-page__search{min-width:unset}.cookbook-page__filter-row{flex-direction:column;align-items:stretch}}.servings-scaler{display:flex;align-items:center;gap:var(--soup-spacing-sm)}.servings-scaler__label{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-muted)}.servings-scaler__controls{display:flex;align-items:center;gap:0;border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-sm);overflow:hidden}.servings-scaler__btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--soup-glass-bg);border:none;color:var(--soup-color-accent);font-size:var(--soup-font-size-md);cursor:pointer;transition:background-color .15s ease}.servings-scaler__btn:hover:not(:disabled){background:var(--soup-glass-bg-hover)}.servings-scaler__btn:disabled{opacity:.3;cursor:not-allowed}.servings-scaler__value{display:flex;align-items:center;justify-content:center;min-width:36px;height:32px;font-size:var(--soup-font-size-md);font-weight:500;color:var(--soup-color-text-bright);border-left:var(--soup-border-width) solid var(--soup-glass-border);border-right:var(--soup-border-width) solid var(--soup-glass-border)}.servings-scaler__reset{background:none;border:none;font-size:var(--soup-font-size-sm);color:var(--soup-color-accent);cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}.servings-scaler__reset:hover{color:var(--soup-color-accent-light)}.recipe-detail{display:flex;flex-direction:column;gap:var(--soup-spacing-lg);max-width:720px}.recipe-detail__header{display:flex;justify-content:space-between;gap:var(--soup-spacing-md)}.recipe-detail__header-text{display:flex;flex-direction:column;gap:var(--soup-spacing-xs);min-width:0;flex:1}.recipe-detail__header-actions{display:flex;gap:var(--soup-spacing-sm);flex-shrink:0;align-items:flex-start}.recipe-detail__cuisine{font-family:var(--soup-font-ui);font-size:10px;font-weight:500;letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui);color:var(--soup-color-accent)}.recipe-detail__title{font-family:var(--soup-font-heading);font-size:var(--soup-font-size-xxl);color:var(--soup-color-text-bright);line-height:1.2}.recipe-detail__desc{font-size:var(--soup-font-size-md);color:var(--soup-color-text-muted);line-height:1.5}.recipe-detail__fav-btn{background:none;border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-sm);width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--soup-color-text-muted);cursor:pointer;transition:color .15s ease,border-color .15s ease}.recipe-detail__fav-btn:hover{color:var(--soup-color-accent);border-color:var(--soup-glass-border-hover)}.recipe-detail__fav-btn--active{color:var(--soup-color-accent)}.recipe-detail__close-btn{background:none;border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-sm);width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--soup-color-text-muted);cursor:pointer;transition:color .15s ease,border-color .15s ease}.recipe-detail__close-btn:hover{color:var(--soup-color-text);border-color:var(--soup-glass-border-hover)}.recipe-detail__meta{display:flex;align-items:center;gap:var(--soup-spacing-lg);flex-wrap:wrap;padding:var(--soup-spacing-md) 0;border-top:1px solid var(--soup-border-row);border-bottom:1px solid var(--soup-border-row)}.recipe-detail__dietary{padding-top:var(--soup-spacing-xs)}.recipe-detail__section{display:flex;flex-direction:column;gap:var(--soup-spacing-md)}.recipe-detail__section-title{font-family:var(--soup-font-heading);font-size:var(--soup-font-size-lg);color:var(--soup-color-text-bright)}.recipe-detail__ingredient-group{display:flex;flex-direction:column;gap:var(--soup-spacing-xs)}.recipe-detail__group-label{font-size:10px;font-weight:500;letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui);color:var(--soup-color-accent);margin-top:var(--soup-spacing-sm)}.recipe-detail__ingredients{display:flex;flex-direction:column;gap:0}.recipe-detail__ingredient{display:flex;align-items:baseline;gap:var(--soup-spacing-sm);padding:var(--soup-spacing-xs) 0;border-bottom:1px solid var(--soup-border-row)}.recipe-detail__ing-amount{font-size:var(--soup-font-size-sm);color:var(--soup-color-accent);min-width:80px;flex-shrink:0;font-weight:500}.recipe-detail__ing-name{font-size:var(--soup-font-size-md);color:var(--soup-color-text)}.recipe-detail__ing-notes{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-dim);font-style:italic}.recipe-detail__steps{display:flex;flex-direction:column;gap:var(--soup-spacing-md);counter-reset:none}.recipe-detail__step{display:flex;gap:var(--soup-spacing-md);align-items:flex-start}.recipe-detail__step-number{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--soup-glass-bg-active);border:var(--soup-border-width) solid var(--soup-glass-border);color:var(--soup-color-accent);font-size:var(--soup-font-size-sm);font-weight:600;flex-shrink:0}.recipe-detail__step-text{font-size:var(--soup-font-size-md);color:var(--soup-color-text);line-height:1.6;flex:1}.recipe-detail__step-timer{font-size:var(--soup-font-size-sm);color:var(--soup-color-accent);background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-sm);padding:2px var(--soup-spacing-sm);flex-shrink:0;white-space:nowrap}.recipe-detail__notes{font-size:var(--soup-font-size-md);color:var(--soup-color-text-soft);line-height:1.5;font-style:italic}.recipe-detail__tags{display:flex;flex-wrap:wrap;gap:var(--soup-spacing-xs)}.recipe-detail__tag{font-size:10px;font-weight:500;letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui);color:var(--soup-color-text-dim);background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-border-subtle);border-radius:var(--soup-radius-sm);padding:2px var(--soup-spacing-sm)}.recipe-detail__actions{display:flex;gap:var(--soup-spacing-sm);padding-top:var(--soup-spacing-md);border-top:1px solid var(--soup-border-row)}.recipe-detail__diet-warning{display:flex;align-items:flex-start;gap:var(--soup-spacing-sm);padding:var(--soup-spacing-md);background:#e6a81714;border:var(--soup-border-width) solid rgba(230,168,23,.25);border-radius:var(--soup-radius-md)}.recipe-detail__diet-warning-icon{font-size:var(--soup-font-size-lg);flex-shrink:0}.recipe-detail__diet-warning-text{display:flex;flex-direction:column;gap:4px}.recipe-detail__diet-warning-title{font-size:var(--soup-font-size-sm);font-weight:600;color:var(--soup-color-warning, #e6a817)}.recipe-detail__diet-warning-list{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-muted)}.recipe-detail__subs-btn{display:inline-flex;align-items:center;margin-top:var(--soup-spacing-sm);padding:4px var(--soup-spacing-md);background:#6b8f711f;border:var(--soup-border-width) solid rgba(107,143,113,.3);border-radius:var(--soup-radius-sm);color:var(--soup-color-green);font-family:var(--soup-font-ui);font-size:var(--soup-font-size-xs);font-weight:500;letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui);cursor:pointer}.recipe-detail__subs-btn:hover{background:#6b8f7133}.recipe-detail__subs-loading{display:block;margin-top:var(--soup-spacing-sm);font-size:var(--soup-font-size-sm);color:var(--soup-color-text-muted);font-style:italic}.recipe-detail__subs-error{display:block;margin-top:var(--soup-spacing-sm);font-size:var(--soup-font-size-sm);color:var(--soup-color-danger)}.recipe-detail__subs{display:flex;flex-direction:column;gap:var(--soup-spacing-sm);width:100%;margin-top:var(--soup-spacing-md);padding-top:var(--soup-spacing-md);border-top:1px solid rgba(230,168,23,.15)}.recipe-detail__subs-title{font-family:var(--soup-font-ui);font-size:10px;font-weight:500;letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui);color:var(--soup-color-green)}.recipe-detail__subs-list{display:flex;flex-direction:column;gap:var(--soup-spacing-sm)}.recipe-detail__subs-item{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--soup-spacing-sm)}.recipe-detail__subs-original{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-muted);text-decoration:line-through}.recipe-detail__subs-arrow{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-dim)}.recipe-detail__subs-alts{font-size:var(--soup-font-size-sm);color:var(--soup-color-green);font-weight:500}.recipe-detail__subs-note{width:100%;font-size:var(--soup-font-size-xs);color:var(--soup-color-text-dim);font-style:italic}.recipe-detail__subs-actions{display:flex;gap:var(--soup-spacing-xs);flex-shrink:0}.recipe-detail__sub-accept-btn,.recipe-detail__sub-regen-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:none;border:var(--soup-border-width) solid var(--soup-border-subtle);border-radius:var(--soup-radius-sm);color:var(--soup-color-text-dim);font-size:14px;cursor:pointer;transition:color .15s ease,background-color .15s ease,border-color .15s ease}.recipe-detail__sub-accept-btn:hover:not(:disabled){color:var(--soup-color-green);border-color:var(--soup-color-green);background:#6b8f711f}.recipe-detail__sub-regen-btn:hover:not(:disabled){color:var(--soup-color-accent);border-color:var(--soup-color-accent);background:var(--soup-glass-bg-active)}.recipe-detail__sub-accept-btn:disabled,.recipe-detail__sub-regen-btn:disabled{opacity:.4;cursor:default}.recipe-detail__subs-item--accepted{background:#6b8f7114;border-radius:var(--soup-radius-sm);padding:var(--soup-spacing-xs) var(--soup-spacing-sm)}.recipe-detail__subs-item--accepted .recipe-detail__subs-original{text-decoration:none;color:var(--soup-color-text-dim)}.recipe-detail__subs-item--accepted .recipe-detail__subs-alts{color:var(--soup-color-green)}.recipe-detail__sub-regen-loading{opacity:.6;animation:sub-pulse 1s ease-in-out infinite}@keyframes sub-pulse{0%,to{opacity:.6}50%{opacity:.3}}.recipe-detail__subs-bulk{display:flex;gap:var(--soup-spacing-sm);margin-top:var(--soup-spacing-sm)}@media(max-width:768px){.recipe-detail{padding:var(--soup-spacing-md)}.recipe-detail__meta{gap:var(--soup-spacing-sm)}.recipe-detail__ing-amount{min-width:60px}}.recipe-page{display:flex;flex-direction:column;gap:var(--soup-spacing-lg)}.recipe-page__back{display:inline-flex;align-items:center;gap:var(--soup-spacing-xs);background:none;border:none;font-size:var(--soup-font-size-sm);color:var(--soup-color-text-muted);cursor:pointer;padding:0;transition:color .15s ease}.recipe-page__back:hover{color:var(--soup-color-accent)}@media(max-width:768px){.recipe-page{padding:var(--soup-spacing-md)}}.step-timer{display:flex;flex-direction:column;align-items:center;gap:var(--soup-spacing-md);padding:var(--soup-spacing-lg);background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-lg)}.step-timer__ring{position:relative;width:140px;height:140px}.step-timer__ring svg{width:100%;height:100%;transform:rotate(-90deg)}.step-timer__ring-bg{fill:none;stroke:var(--soup-border-subtle);stroke-width:6}.step-timer__ring-progress{fill:none;stroke:var(--soup-color-accent);stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset .5s linear}.step-timer__ring-progress--warning{stroke:var(--soup-color-warning, #e6a817)}.step-timer__ring-progress--done{stroke:var(--soup-color-danger)}.step-timer__display{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px}.step-timer__time{font-family:var(--soup-font-ui);font-size:32px;font-weight:600;color:var(--soup-color-text-bright);letter-spacing:1px}.step-timer__time--done{color:var(--soup-color-danger)}.step-timer__label{font-size:10px;font-weight:500;letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui);color:var(--soup-color-text-dim)}.step-timer__controls{display:flex;gap:var(--soup-spacing-sm)}.step-timer__btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:var(--soup-border-width) solid var(--soup-glass-border);background:var(--soup-glass-bg);color:var(--soup-color-text);font-size:18px;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.step-timer__btn:hover{background:var(--soup-glass-bg-hover);border-color:var(--soup-glass-border-hover)}.step-timer__btn--primary{background:var(--soup-color-accent);border-color:var(--soup-color-accent);color:var(--soup-color-bg)}.step-timer__btn--primary:hover{opacity:.9}@keyframes step-timer-pulse{0%,to{opacity:1}50%{opacity:.4}}.step-timer__time--pulsing{animation:step-timer-pulse 1s ease-in-out infinite}@media(max-width:480px){.step-timer{padding:var(--soup-spacing-md)}.step-timer__ring{width:120px;height:120px}.step-timer__time{font-size:26px}}.cooking-steps{display:flex;flex-direction:column;gap:var(--soup-spacing-lg)}.cooking-steps__progress{display:flex;align-items:center;gap:var(--soup-spacing-xs)}.cooking-steps__progress-dot{width:10px;height:10px;border-radius:50%;background:var(--soup-border-subtle);transition:background-color .2s ease,transform .2s ease;flex-shrink:0}.cooking-steps__progress-dot--done{background:var(--soup-color-accent)}.cooking-steps__progress-dot--current{background:var(--soup-color-accent);transform:scale(1.4)}.cooking-steps__progress-label{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-dim);margin-left:var(--soup-spacing-sm)}.cooking-steps__card{display:flex;flex-direction:column;gap:var(--soup-spacing-lg);padding:var(--soup-spacing-xl);background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-lg);min-height:200px}.cooking-steps__step-header{display:flex;align-items:center;gap:var(--soup-spacing-md)}.cooking-steps__step-number{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--soup-glass-bg-active);border:var(--soup-border-width) solid var(--soup-glass-border-strong);color:var(--soup-color-accent);font-size:var(--soup-font-size-lg);font-weight:700;flex-shrink:0}.cooking-steps__step-meta{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-dim)}.cooking-steps__step-text{font-size:var(--soup-font-size-xl);color:var(--soup-color-text-bright);line-height:1.6}.cooking-steps__ingredients{display:flex;flex-direction:column;gap:var(--soup-spacing-xs);padding:var(--soup-spacing-md);background:var(--soup-glass-bg-active);border-radius:var(--soup-radius-md)}.cooking-steps__ingredients-title{font-size:10px;font-weight:500;letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui);color:var(--soup-color-accent);margin-bottom:var(--soup-spacing-xs)}.cooking-steps__ingredient-item{font-size:var(--soup-font-size-md);color:var(--soup-color-text);padding:4px 0}.cooking-steps__ingredient-amount{color:var(--soup-color-accent);font-weight:500}.cooking-steps__nav{display:flex;align-items:center;justify-content:space-between;gap:var(--soup-spacing-md)}.cooking-steps__nav-btn{display:flex;align-items:center;gap:var(--soup-spacing-xs);padding:var(--soup-spacing-sm) var(--soup-spacing-lg);font-size:var(--soup-font-size-md);font-weight:500;color:var(--soup-color-text);background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-md);cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.cooking-steps__nav-btn:hover{background:var(--soup-glass-bg-hover);border-color:var(--soup-glass-border-hover)}.cooking-steps__nav-btn:disabled{opacity:.3;cursor:not-allowed}.cooking-steps__nav-btn--finish{background:var(--soup-color-accent);border-color:var(--soup-color-accent);color:var(--soup-color-bg)}.cooking-steps__nav-btn--finish:hover{opacity:.9}.cooking-steps__complete{display:flex;flex-direction:column;align-items:center;gap:var(--soup-spacing-lg);padding:var(--soup-spacing-xxl) var(--soup-spacing-lg);text-align:center}.cooking-steps__complete-icon{font-size:64px}.cooking-steps__complete-title{font-family:var(--soup-font-heading);font-size:var(--soup-font-size-xxl);color:var(--soup-color-text-bright)}.cooking-steps__complete-text{font-size:var(--soup-font-size-md);color:var(--soup-color-text-muted)}.cooking-steps__complete-actions{display:flex;gap:var(--soup-spacing-sm)}.cooking-steps__phase-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:var(--soup-radius-sm);font-size:10px;font-weight:600;letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui);flex-shrink:0}.cooking-steps__phase-badge--prep{background:#4caf5026;color:#4caf50}.cooking-steps__phase-badge--cook{background:rgba(var(--soup-color-accent-rgb, 255, 152, 0),.15);color:var(--soup-color-accent)}.cooking-steps__phase-badge--finish{background:#ffb74d26;color:#ffb74d}.cooking-steps__tip{display:flex;align-items:flex-start;gap:var(--soup-spacing-sm);padding:var(--soup-spacing-sm) var(--soup-spacing-md);border-left:3px solid var(--soup-color-accent);background:var(--soup-glass-bg-active);border-radius:0 var(--soup-radius-sm) var(--soup-radius-sm) 0}.cooking-steps__tip-icon{flex-shrink:0;font-size:var(--soup-font-size-md)}.cooking-steps__tip-text{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-muted);line-height:1.5}.cooking-steps__overview{display:flex;flex-direction:column;gap:var(--soup-spacing-sm);padding:var(--soup-spacing-lg);background:var(--soup-glass-bg-active);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-lg)}.cooking-steps__overview-label{font-size:10px;font-weight:500;letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui);color:var(--soup-color-accent)}.cooking-steps__overview-text{font-size:var(--soup-font-size-md);color:var(--soup-color-text);line-height:1.5}.cooking-steps__phase-indicator{color:var(--soup-color-text-dim)}@media(max-width:768px){.cooking-steps__card{padding:var(--soup-spacing-lg)}.cooking-steps__step-text{font-size:var(--soup-font-size-lg)}.cooking-steps__step-number{width:32px;height:32px;font-size:var(--soup-font-size-md)}}.cook-mode-page{display:flex;flex-direction:column;gap:var(--soup-spacing-lg);max-width:720px}.cook-mode-page__top-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--soup-spacing-md)}.cook-mode-page__back{display:inline-flex;align-items:center;gap:var(--soup-spacing-xs);background:none;border:none;font-size:var(--soup-font-size-sm);color:var(--soup-color-text-muted);cursor:pointer;padding:0;transition:color .15s ease}.cook-mode-page__back:hover{color:var(--soup-color-accent)}.cook-mode-page__wake-lock{display:flex;align-items:center;gap:var(--soup-spacing-xs);font-size:var(--soup-font-size-sm);color:var(--soup-color-text-dim)}.cook-mode-page__wake-dot{width:8px;height:8px;border-radius:50%;background:var(--soup-border-subtle)}.cook-mode-page__wake-dot--active{background:#4caf50}.cook-mode-page__header{display:flex;flex-direction:column;gap:var(--soup-spacing-xs)}.cook-mode-page__title{font-family:var(--soup-font-heading);font-size:var(--soup-font-size-xxl);color:var(--soup-color-text-bright)}.cook-mode-page__subtitle{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-dim)}.cook-mode-page__plan-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--soup-spacing-md);min-height:200px;padding:var(--soup-spacing-xl);background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-lg);color:var(--soup-color-text-muted);font-size:var(--soup-font-size-sm)}@media(max-width:768px){.cook-mode-page{padding:var(--soup-spacing-md)}}.import-form{display:flex;flex-direction:column;gap:var(--soup-spacing-lg);max-width:720px}.import-form__intro{font-size:var(--soup-font-size-md);color:var(--soup-color-text-muted);line-height:1.5}.import-form__textarea{min-height:240px;font-family:var(--soup-font-body);font-size:var(--soup-font-size-sm);line-height:1.6;resize:vertical}.import-form__hint{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-dim);line-height:1.5}.import-form__actions{display:flex;gap:var(--soup-spacing-sm)}.import-form__sample-btn{background:none;border:none;font-size:var(--soup-font-size-sm);color:var(--soup-color-accent);cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}.import-form__sample-btn:hover{opacity:.8}@media(max-width:480px){.import-form__textarea{min-height:180px}}.import-review{display:flex;flex-direction:column;gap:var(--soup-spacing-lg);max-width:720px}.import-review__banner{display:flex;align-items:center;gap:var(--soup-spacing-sm);padding:var(--soup-spacing-md);background:var(--soup-glass-bg-active);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-md)}.import-review__banner-icon{font-size:var(--soup-font-size-xl);flex-shrink:0}.import-review__banner-text{display:flex;flex-direction:column;gap:2px}.import-review__banner-title{font-size:var(--soup-font-size-md);font-weight:600;color:var(--soup-color-text-bright)}.import-review__banner-detail{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-muted)}.import-review__back{display:inline-flex;align-items:center;gap:var(--soup-spacing-xs);background:none;border:none;font-size:var(--soup-font-size-sm);color:var(--soup-color-text-muted);cursor:pointer;padding:0;transition:color .15s ease}.import-review__back:hover{color:var(--soup-color-accent)}.import-page{display:flex;flex-direction:column;gap:var(--soup-spacing-lg)}@media(max-width:768px){.import-page{padding:var(--soup-spacing-md)}}.meal-slot{display:flex;align-items:center;gap:var(--soup-spacing-sm);padding:var(--soup-spacing-sm);min-height:36px;border-radius:var(--soup-radius-sm);transition:background-color .15s ease}.meal-slot:hover{background:var(--soup-glass-bg-hover)}.meal-slot__label{font-size:9px;font-weight:500;letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui);color:var(--soup-color-text-dim);width:52px;flex-shrink:0}.meal-slot__content{flex:1;min-width:0;display:flex;align-items:center;gap:var(--soup-spacing-xs)}.meal-slot__recipe-name{font-size:var(--soup-font-size-sm);color:var(--soup-color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.meal-slot__recipe-name:hover{color:var(--soup-color-accent)}.meal-slot__custom-meal{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-muted);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meal-slot__add-btn{background:none;border:var(--soup-border-width) dashed var(--soup-border-subtle);border-radius:var(--soup-radius-sm);padding:2px var(--soup-spacing-sm);font-size:var(--soup-font-size-sm);color:var(--soup-color-text-dim);cursor:pointer;transition:color .15s ease,border-color .15s ease}.meal-slot__add-btn:hover{color:var(--soup-color-accent);border-color:var(--soup-color-accent)}.meal-slot__remove-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:none;border:none;color:var(--soup-color-text-dim);font-size:14px;cursor:pointer;flex-shrink:0;border-radius:50%;opacity:0;transition:opacity .15s ease,color .15s ease}.meal-slot:hover .meal-slot__remove-btn{opacity:1}.meal-slot__remove-btn:hover{color:var(--soup-color-danger)}@media(max-width:768px){.meal-slot__remove-btn{opacity:1}.meal-slot__label{width:44px;font-size:8px}}.week-calendar{display:flex;flex-direction:column;gap:0}.week-calendar__day{display:flex;flex-direction:column;gap:0;padding:var(--soup-spacing-md) 0;border-bottom:1px solid var(--soup-border-row)}.week-calendar__day:last-child{border-bottom:none}.week-calendar__day-header{display:flex;align-items:baseline;gap:var(--soup-spacing-sm);padding:0 var(--soup-spacing-sm);margin-bottom:var(--soup-spacing-xs)}.week-calendar__day-name{font-family:var(--soup-font-heading);font-size:var(--soup-font-size-md);color:var(--soup-color-text-bright);font-weight:600}.week-calendar__day-name--today{color:var(--soup-color-accent)}.week-calendar__day-date{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-dim)}.week-calendar__slots{display:flex;flex-direction:column;gap:0}@media(min-width:900px){.week-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--soup-spacing-sm)}.week-calendar__day{border-bottom:none;padding:var(--soup-spacing-sm);background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-md)}.week-calendar__day-header{flex-direction:column;gap:2px;padding:0;margin-bottom:var(--soup-spacing-sm)}}.recipe-picker{display:flex;flex-direction:column;gap:var(--soup-spacing-md);min-width:320px}.recipe-picker__search{position:sticky;top:0;z-index:1}.recipe-picker__or{display:flex;align-items:center;gap:var(--soup-spacing-sm);font-size:var(--soup-font-size-sm);color:var(--soup-color-text-dim)}.recipe-picker__or:before,.recipe-picker__or:after{content:"";flex:1;height:1px;background:var(--soup-border-subtle)}.recipe-picker__custom-row{display:flex;gap:var(--soup-spacing-xs)}.recipe-picker__custom-input{flex:1;min-width:0}.recipe-picker__list{display:flex;flex-direction:column;gap:0;max-height:300px;overflow-y:auto}.recipe-picker__item{display:flex;align-items:center;justify-content:space-between;gap:var(--soup-spacing-sm);padding:var(--soup-spacing-sm) var(--soup-spacing-md);border-bottom:1px solid var(--soup-border-row);cursor:pointer;transition:background-color .15s ease}.recipe-picker__item:hover{background:var(--soup-glass-bg-hover)}.recipe-picker__item-info{display:flex;flex-direction:column;gap:2px;min-width:0}.recipe-picker__item-title{font-size:var(--soup-font-size-md);color:var(--soup-color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recipe-picker__item-meta{font-size:10px;color:var(--soup-color-text-dim);letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui)}.recipe-picker__empty{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-dim);text-align:center;padding:var(--soup-spacing-lg)}@media(max-width:480px){.recipe-picker{min-width:0}}.planner-page{display:flex;flex-direction:column;gap:var(--soup-spacing-lg)}.planner-page__week-nav{display:flex;align-items:center;gap:var(--soup-spacing-sm)}.planner-page__week-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-sm);color:var(--soup-color-text);font-size:var(--soup-font-size-lg);cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.planner-page__week-btn:hover{background:var(--soup-glass-bg-hover);border-color:var(--soup-glass-border-hover)}.planner-page__week-label{font-family:var(--soup-font-heading);font-size:var(--soup-font-size-lg);color:var(--soup-color-text-bright);flex:1;text-align:center}.planner-page__today-btn{font-size:var(--soup-font-size-sm);color:var(--soup-color-accent);background:none;border:none;cursor:pointer;padding:4px var(--soup-spacing-sm)}.planner-page__today-btn:hover{text-decoration:underline}@media(max-width:768px){.planner-page{padding:var(--soup-spacing-md)}}.shopping-item{display:flex;align-items:center;gap:var(--soup-spacing-sm);padding:var(--soup-spacing-sm) 0;border-bottom:1px solid var(--soup-border-row);transition:opacity .2s ease}.shopping-item--checked{opacity:.45}.shopping-item__checkbox{width:20px;height:20px;border-radius:4px;border:var(--soup-border-width) solid var(--soup-glass-border);background:var(--soup-glass-bg);cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:transparent;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.shopping-item__checkbox:hover{border-color:var(--soup-color-accent)}.shopping-item__checkbox--checked{background:var(--soup-color-accent);border-color:var(--soup-color-accent);color:var(--soup-color-bg)}.shopping-item__body{flex:1;min-width:0;display:flex;align-items:baseline;gap:var(--soup-spacing-sm)}.shopping-item__name{font-size:var(--soup-font-size-md);color:var(--soup-color-text)}.shopping-item--checked .shopping-item__name{text-decoration:line-through}.shopping-item__amount{font-size:var(--soup-font-size-sm);color:var(--soup-color-accent);font-weight:500;flex-shrink:0}.shopping-item__source{font-size:10px;color:var(--soup-color-text-dim);letter-spacing:var(--soup-letter-spacing-ui)}.shopping-item__remove{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:none;border:none;color:var(--soup-color-text-dim);font-size:14px;cursor:pointer;flex-shrink:0;border-radius:50%;opacity:0;transition:opacity .15s ease,color .15s ease}.shopping-item:hover .shopping-item__remove{opacity:1}.shopping-item__remove:hover{color:var(--soup-color-danger)}.shopping-list{display:flex;flex-direction:column;gap:var(--soup-spacing-lg)}.shopping-list__progress{display:flex;flex-direction:column;gap:var(--soup-spacing-xs)}.shopping-list__progress-bar{height:6px;background:var(--soup-border-subtle);border-radius:3px;overflow:hidden}.shopping-list__progress-fill{height:100%;background:var(--soup-color-accent);border-radius:3px;transition:width .3s ease}.shopping-list__progress-text{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-dim)}.shopping-list__group{display:flex;flex-direction:column;gap:0}.shopping-list__group-header{font-size:10px;font-weight:500;letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui);color:var(--soup-color-accent);padding:var(--soup-spacing-sm) 0;border-bottom:1px solid var(--soup-border-row)}.shopping-list__add-row{display:flex;gap:var(--soup-spacing-xs);padding-top:var(--soup-spacing-md)}.shopping-list__add-input{flex:1;min-width:0}.market-page{display:flex;flex-direction:column;gap:var(--soup-spacing-lg);max-width:640px}.market-page__actions{display:flex;gap:var(--soup-spacing-sm);flex-wrap:wrap}.market-page__list-name{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-dim);font-style:italic}@media(max-width:768px){.market-page{padding:var(--soup-spacing-md)}}.dietary-picker{position:relative}.dietary-picker__selected{display:flex;flex-wrap:wrap;gap:var(--soup-spacing-xs);margin-bottom:var(--soup-spacing-sm)}.dietary-picker__chip{display:inline-flex;align-items:center;gap:4px;padding:4px var(--soup-spacing-sm);font-family:var(--soup-font-ui);font-size:var(--soup-font-size-xs);font-weight:500;letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui);border-radius:var(--soup-radius-pill);background:#6b8f7126;border:var(--soup-border-width) solid rgba(107,143,113,.3);color:var(--soup-color-green)}.dietary-picker__chip-remove{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:none;border-radius:50%;background:#ffffff1a;color:var(--soup-color-text-muted);font-size:12px;line-height:1;cursor:pointer}.dietary-picker__chip-remove:hover{background:#c0392b4d;color:var(--soup-color-text)}.dietary-picker__input-wrap{position:relative}.dietary-picker__dropdown{position:absolute;top:100%;left:0;right:0;z-index:10;max-height:200px;overflow-y:auto;background:var(--soup-color-bg);border:var(--soup-border-width) solid var(--soup-glass-border-strong);border-radius:var(--soup-radius-md);margin-top:4px;box-shadow:var(--soup-shadow-md)}.dietary-picker__option{display:block;width:100%;padding:var(--soup-spacing-sm) var(--soup-spacing-md);border:none;background:none;color:var(--soup-color-text);font-family:var(--soup-font-body);font-size:var(--soup-font-size-sm);text-align:left;cursor:pointer}.dietary-picker__option:hover,.dietary-picker__option--highlighted{background:var(--soup-glass-bg-hover)}.dietary-picker__empty{padding:var(--soup-spacing-sm) var(--soup-spacing-md);color:var(--soup-color-text-muted);font-size:var(--soup-font-size-sm)}.diet-form{display:flex;flex-direction:column;gap:var(--soup-spacing-lg);max-width:640px}.diet-form__section{display:flex;flex-direction:column;gap:var(--soup-spacing-sm)}.diet-form__section-title{font-family:var(--soup-font-heading);font-size:var(--soup-font-size-lg);color:var(--soup-color-text-bright)}.diet-form__section-desc{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-dim);margin-bottom:var(--soup-spacing-xs)}.diet-form__toggles{display:flex;flex-wrap:wrap;gap:var(--soup-spacing-xs)}.diet-form__toggle{display:inline-flex;align-items:center;padding:6px var(--soup-spacing-md);font-size:var(--soup-font-size-sm);font-weight:500;color:var(--soup-color-text-dim);background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-border-subtle);border-radius:var(--soup-radius-sm);cursor:pointer;transition:color .15s ease,background-color .15s ease,border-color .15s ease}.diet-form__toggle:hover{color:var(--soup-color-text);border-color:var(--soup-glass-border)}.diet-form__toggle--active{color:var(--soup-color-accent);background:var(--soup-glass-bg-active);border-color:var(--soup-glass-border-strong)}.diet-form__list-items{display:flex;flex-wrap:wrap;gap:var(--soup-spacing-xs)}.diet-form__chip{display:inline-flex;align-items:center;gap:var(--soup-spacing-xs);padding:4px var(--soup-spacing-sm);font-size:var(--soup-font-size-sm);color:var(--soup-color-text);background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-sm)}.diet-form__chip-remove{display:flex;align-items:center;justify-content:center;width:16px;height:16px;background:none;border:none;color:var(--soup-color-text-dim);font-size:14px;cursor:pointer;padding:0;border-radius:50%;transition:color .15s ease}.diet-form__chip-remove:hover{color:var(--soup-color-danger)}.diet-form__add-row{display:flex;gap:var(--soup-spacing-xs);align-items:center}.diet-form__add-input{flex:1;min-width:0}.diet-form__actions{display:flex;gap:var(--soup-spacing-sm);padding-top:var(--soup-spacing-md);border-top:1px solid var(--soup-border-row)}@media(max-width:768px){.diet-form{padding:var(--soup-spacing-md)}}.pantry-page{display:flex;flex-direction:column;gap:var(--soup-spacing-lg)}.pantry-page__summary{display:flex;flex-wrap:wrap;gap:var(--soup-spacing-xs);padding:var(--soup-spacing-md);background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-md)}.pantry-page__summary-empty{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-dim);font-style:italic}@media(max-width:768px){.pantry-page{padding:var(--soup-spacing-md)}}.discover-page{display:flex;flex-direction:column;gap:var(--soup-spacing-xl)}.discover-page__hero{display:flex;flex-direction:column;align-items:center;gap:var(--soup-spacing-md);padding:var(--soup-spacing-xl);background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-lg);text-align:center}.discover-page__hero-title{font-family:var(--soup-font-heading);font-size:var(--soup-font-size-xxl);color:var(--soup-color-text-bright)}.discover-page__hero-recipe{font-size:var(--soup-font-size-lg);color:var(--soup-color-accent);font-weight:500}.discover-page__hero-desc{font-size:var(--soup-font-size-md);color:var(--soup-color-text-muted);max-width:480px}.discover-page__hero-actions{display:flex;gap:var(--soup-spacing-sm)}.discover-page__section{display:flex;flex-direction:column;gap:var(--soup-spacing-md)}.discover-page__section-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--soup-spacing-sm)}.discover-page__section-title{font-family:var(--soup-font-heading);font-size:var(--soup-font-size-lg);color:var(--soup-color-text-bright)}.discover-page__section-subtitle{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-dim)}.discover-page__row{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--soup-spacing-md)}.discover-page__cuisine-tags{display:flex;flex-wrap:wrap;gap:var(--soup-spacing-xs)}.discover-page__cuisine-tag{display:inline-flex;align-items:center;padding:6px var(--soup-spacing-md);font-size:var(--soup-font-size-sm);font-weight:500;color:var(--soup-color-text-dim);background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-border-subtle);border-radius:var(--soup-radius-sm);cursor:pointer;transition:color .15s ease,background-color .15s ease,border-color .15s ease}.discover-page__cuisine-tag:hover{color:var(--soup-color-accent);border-color:var(--soup-glass-border-strong);background:var(--soup-glass-bg-active)}.discover-page__cuisine-count{font-size:10px;color:var(--soup-color-text-dim);margin-left:var(--soup-spacing-xs)}@media(max-width:768px){.discover-page{padding:var(--soup-spacing-md)}.discover-page__row{grid-template-columns:1fr}}.settings-page{display:flex;flex-direction:column;gap:var(--soup-spacing-xl);max-width:720px}.settings-page__section{display:flex;flex-direction:column;gap:var(--soup-spacing-md)}.settings-page__section-title{font-family:var(--soup-font-heading);font-size:var(--soup-font-size-lg);color:var(--soup-color-text-bright)}.settings-page__section-desc{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-dim)}.settings-page__themes{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--soup-spacing-md)}.settings-page__theme-card{display:flex;flex-direction:column;border-radius:var(--soup-radius-md);overflow:hidden;cursor:pointer;border:2px solid transparent;transition:border-color .2s ease,transform .15s ease}.settings-page__theme-card:hover{transform:translateY(-2px)}.settings-page__theme-card--active{border-color:var(--soup-color-accent)}.settings-page__theme-preview{height:80px;display:flex;align-items:center;justify-content:center;gap:8px;padding:var(--soup-spacing-md)}.settings-page__theme-swatch{width:20px;height:20px;border-radius:50%;border:2px solid rgba(255,255,255,.2)}.settings-page__theme-sample-text{font-size:14px;font-weight:600}.settings-page__theme-info{padding:var(--soup-spacing-sm) var(--soup-spacing-md);background:var(--soup-glass-bg);border-top:var(--soup-border-width) solid var(--soup-glass-border)}.settings-page__theme-name{font-size:var(--soup-font-size-sm);font-weight:600;color:var(--soup-color-text-bright)}.settings-page__theme-desc{font-size:10px;color:var(--soup-color-text-dim);margin-top:2px}.settings-page__pref-row{display:flex;align-items:center;gap:var(--soup-spacing-md);padding:var(--soup-spacing-md) 0;border-bottom:1px solid var(--soup-border-row)}.settings-page__pref-label{flex:1;min-width:0}.settings-page__pref-title{font-size:var(--soup-font-size-md);color:var(--soup-color-text)}.settings-page__pref-desc{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-dim);margin-top:2px}.settings-page__pref-control{flex-shrink:0;min-width:100px}.settings-page__profile{display:flex;align-items:center;gap:var(--soup-spacing-md);padding:var(--soup-spacing-lg);background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-lg)}.settings-page__avatar{width:48px;height:48px;border-radius:50%;background:var(--soup-glass-bg-active);border:var(--soup-border-width) solid var(--soup-glass-border);display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--soup-color-accent);flex-shrink:0}.settings-page__profile-info{display:flex;flex-direction:column;gap:2px}.settings-page__profile-name{font-size:var(--soup-font-size-md);font-weight:600;color:var(--soup-color-text-bright)}.settings-page__profile-email{font-size:var(--soup-font-size-sm);color:var(--soup-color-text-dim)}@media(max-width:768px){.settings-page{padding:var(--soup-spacing-md)}.settings-page__themes{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.settings-page__pref-row{flex-direction:column;align-items:flex-start}}.character-picker{display:flex;flex-direction:column;gap:var(--soup-spacing-md)}.character-picker__title{font-family:var(--soup-font-heading);font-size:var(--soup-font-size-lg);color:var(--soup-color-text-bright);text-align:center}.character-picker__grid{display:flex;flex-wrap:wrap;gap:var(--soup-spacing-sm);justify-content:center}.character-picker__card{display:flex;flex-direction:column;align-items:center;gap:var(--soup-spacing-xs);width:140px;padding:var(--soup-spacing-md);border:2px solid var(--soup-glass-border);border-radius:var(--soup-radius-lg);background:var(--soup-glass-bg);cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,transform .15s ease}.character-picker__card:hover{border-color:var(--character-color, var(--soup-color-accent));transform:translateY(-2px)}.character-picker__card--selected{border-color:var(--character-color, var(--soup-color-accent));box-shadow:0 0 20px #c2694a4d;background:var(--soup-glass-bg-hover)}.character-picker__avatar{font-size:32px;line-height:1}.character-picker__name{font-size:var(--soup-font-size-md);font-weight:600;color:var(--soup-color-text-bright)}.character-picker__tagline{font-size:var(--soup-font-size-xs);color:var(--soup-color-text-muted);text-align:center}.character-picker--compact .character-picker__grid{gap:var(--soup-spacing-xs)}.character-picker--compact .character-picker__card{width:auto;flex-direction:row;padding:var(--soup-spacing-xs) var(--soup-spacing-sm)}.character-picker--compact .character-picker__avatar{font-size:20px}.character-picker--compact .character-picker__name{font-size:var(--soup-font-size-sm)}.souschef-chat{display:flex;flex-direction:column;height:100%;background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-lg);overflow:hidden}.souschef-chat__header{display:flex;align-items:center;gap:var(--soup-spacing-sm);padding:var(--soup-spacing-md);border-bottom:1px solid var(--soup-glass-border);background:var(--soup-glass-bg-hover)}.souschef-chat__avatar{font-size:28px;line-height:1}.souschef-chat__info{flex:1;display:flex;flex-direction:column}.souschef-chat__name{font-weight:600;color:var(--soup-color-text-bright)}.souschef-chat__tagline{font-size:var(--soup-font-size-xs);color:var(--soup-color-text-muted)}.souschef-chat__clear{padding:var(--soup-spacing-xs) var(--soup-spacing-sm);border:var(--soup-border-width) solid var(--soup-border-subtle);border-radius:var(--soup-radius-sm);background:transparent;font-size:var(--soup-font-size-xs);color:var(--soup-color-text-muted);cursor:pointer;transition:border-color .15s ease,color .15s ease}.souschef-chat__clear:hover{border-color:var(--soup-glass-border);color:var(--soup-color-text)}.souschef-chat__messages{flex:1;display:flex;flex-direction:column;gap:var(--soup-spacing-md);padding:var(--soup-spacing-md);overflow-y:auto}.souschef-chat__welcome{display:flex;flex-direction:column;gap:var(--soup-spacing-sm);padding:var(--soup-spacing-lg);text-align:center;color:var(--soup-color-text-muted)}.souschef-chat__welcome p{margin:0}.souschef-chat__message{display:flex;gap:var(--soup-spacing-sm);max-width:85%}.souschef-chat__message--user{align-self:flex-end;flex-direction:row-reverse}.souschef-chat__message--assistant{align-self:flex-start}.souschef-chat__message-avatar{flex-shrink:0;font-size:20px;line-height:1}.souschef-chat__message-content{display:flex;flex-direction:column;gap:var(--soup-spacing-sm);padding:var(--soup-spacing-sm) var(--soup-spacing-md);border-radius:var(--soup-radius-md)}.souschef-chat__message--user .souschef-chat__message-content{background:var(--soup-color-accent);color:var(--soup-color-bg)}.souschef-chat__message--assistant .souschef-chat__message-content{background:var(--soup-glass-bg-hover);color:var(--soup-color-text)}.souschef-chat__message-text{margin:0;line-height:1.5}.souschef-chat__typing{display:flex;gap:4px;padding:var(--soup-spacing-xs) 0}.souschef-chat__typing span{width:8px;height:8px;background:var(--soup-color-text-muted);border-radius:50%;animation:souschef-typing-bounce 1.4s ease-in-out infinite}.souschef-chat__typing span:nth-child(2){animation-delay:.2s}.souschef-chat__typing span:nth-child(3){animation-delay:.4s}@keyframes souschef-typing-bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}.souschef-chat__recipe-card{display:flex;flex-direction:column;gap:var(--soup-spacing-xs);padding:var(--soup-spacing-sm);background:var(--soup-glass-bg);border:var(--soup-border-width) solid var(--soup-glass-border);border-radius:var(--soup-radius-md)}.souschef-chat__recipe-name{font-family:var(--soup-font-heading);font-size:var(--soup-font-size-md);color:var(--soup-color-accent);margin:0}.souschef-chat__recipe-desc{font-size:var(--soup-font-size-sm);font-style:italic;color:var(--soup-color-text-muted);margin:0}.souschef-chat__recipe-meta{display:flex;flex-wrap:wrap;gap:var(--soup-spacing-sm);font-size:var(--soup-font-size-xs);color:var(--soup-color-text-muted)}.souschef-chat__recipe-section{margin-top:var(--soup-spacing-xs)}.souschef-chat__recipe-section h5{font-size:var(--soup-font-size-sm);font-weight:600;color:var(--soup-color-text-bright);margin:0 0 var(--soup-spacing-xs) 0}.souschef-chat__recipe-section ul,.souschef-chat__recipe-section ol{margin:0;padding-left:var(--soup-spacing-md);font-size:var(--soup-font-size-sm)}.souschef-chat__recipe-section li{margin-bottom:2px}.souschef-chat__save-btn{margin-top:8px;width:100%}.souschef-chat__ideas-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--soup-spacing-xs)}.souschef-chat__idea-item{display:flex;flex-direction:column;gap:2px;padding:var(--soup-spacing-xs) var(--soup-spacing-sm);background:var(--soup-glass-bg);border-radius:var(--soup-radius-sm)}.souschef-chat__idea-name{font-weight:600;color:var(--soup-color-accent)}.souschef-chat__idea-desc{font-size:var(--soup-font-size-sm);color:var(--soup-color-text)}.souschef-chat__idea-meta{display:flex;gap:var(--soup-spacing-sm);font-size:var(--soup-font-size-xs);color:var(--soup-color-text-muted)}.souschef-chat__fridge-results{display:flex;flex-direction:column;gap:var(--soup-spacing-md)}.souschef-chat__form{display:flex;gap:var(--soup-spacing-sm);padding:var(--soup-spacing-md);border-top:1px solid var(--soup-glass-border)}.souschef-chat__input{flex:1}.souschef-chat__send{flex-shrink:0}.souschef-page{display:flex;flex-direction:column;gap:var(--soup-spacing-lg);padding:var(--soup-spacing-xl);max-width:1000px;margin:0 auto;height:calc(100vh - 60px)}.souschef-page__character-btn{display:flex;align-items:center;gap:var(--soup-spacing-sm);padding:var(--soup-spacing-sm) var(--soup-spacing-md);border:2px solid var(--character-color, var(--soup-glass-border));border-radius:var(--soup-radius-md);background:var(--soup-glass-bg);cursor:pointer;transition:background .15s ease}.souschef-page__character-btn:hover{background:var(--soup-glass-bg-hover)}.souschef-page__character-avatar{font-size:24px;line-height:1}.souschef-page__character-name{font-weight:600;color:var(--soup-color-text-bright)}.souschef-page__character-toggle{font-size:10px;color:var(--soup-color-text-muted)}.souschef-page__character-dropdown{padding:var(--soup-spacing-md);background:var(--soup-glass-bg);border:1px solid var(--soup-glass-border);border-radius:var(--soup-radius-lg)}.souschef-page__tools{display:flex;gap:var(--soup-spacing-xs);border-bottom:1px solid var(--soup-border-subtle);padding-bottom:var(--soup-spacing-xs);overflow-x:auto}.souschef-page__tool{display:flex;align-items:center;gap:var(--soup-spacing-xs);padding:var(--soup-spacing-sm) var(--soup-spacing-md);border:none;border-radius:var(--soup-radius-sm) var(--soup-radius-sm) 0 0;background:transparent;font-size:var(--soup-font-size-sm);color:var(--soup-color-text-muted);cursor:pointer;white-space:nowrap;transition:color .15s ease,background .15s ease}.souschef-page__tool:hover{color:var(--soup-color-text);background:var(--soup-glass-bg-hover)}.souschef-page__tool--active{color:var(--soup-color-accent);background:var(--soup-glass-bg);border-bottom:2px solid var(--soup-color-accent);margin-bottom:-1px}.souschef-page__tool-icon{font-size:16px}.souschef-page__diet-notice{display:flex;align-items:center;gap:var(--soup-spacing-sm);padding:var(--soup-spacing-sm) var(--soup-spacing-md);background:#6b8f710f;border:var(--soup-border-width) solid rgba(107,143,113,.15);border-radius:var(--soup-radius-md);flex-wrap:wrap}.souschef-page__diet-label{font-family:var(--soup-font-ui);font-size:10px;font-weight:500;letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui);color:var(--soup-color-green);white-space:nowrap}.souschef-page__diet-allergies{display:flex;gap:var(--soup-spacing-xs);flex-wrap:wrap}.souschef-page__diet-allergy-badge{display:inline-flex;align-items:center;padding:1px 6px;font-size:9px;font-weight:500;letter-spacing:var(--soup-letter-spacing-ui);text-transform:var(--soup-text-transform-ui);border-radius:var(--soup-radius-sm);background:#e6a8171a;border:var(--soup-border-width) solid rgba(230,168,23,.25);color:var(--soup-color-warning, #e6a817)}.souschef-page__content{flex:1;min-height:0}.souschef-page__chat-container{height:100%}.souschef-page__tool-panel{display:flex;flex-direction:column;gap:var(--soup-spacing-lg);padding:var(--soup-spacing-lg);background:var(--soup-glass-bg);border:1px solid var(--soup-glass-border);border-radius:var(--soup-radius-lg)}.souschef-page__panel-title{font-family:var(--soup-font-heading);font-size:var(--soup-font-size-xl);color:var(--soup-color-text-bright);margin:0}.souschef-page__panel-desc{font-size:var(--soup-font-size-md);color:var(--soup-color-text-muted);margin:0}.souschef-page__form{display:flex;flex-direction:column;gap:var(--soup-spacing-sm)}.souschef-page__textarea{resize:vertical;min-height:80px}.souschef-page__form .ui-button{align-self:flex-start}.souschef-page__result{display:flex;flex-direction:column;gap:var(--soup-spacing-md);padding-top:var(--soup-spacing-md);border-top:1px solid var(--soup-border-subtle)}.souschef-page__result-message{font-size:var(--soup-font-size-md);color:var(--soup-color-text);font-style:italic}.souschef-page__recipe-card{display:flex;flex-direction:column;gap:var(--soup-spacing-md);padding:var(--soup-spacing-md);background:var(--soup-glass-bg-hover);border:1px solid var(--soup-glass-border);border-radius:var(--soup-radius-md)}.souschef-page__recipe-name{font-family:var(--soup-font-heading);font-size:var(--soup-font-size-xl);color:var(--soup-color-accent);margin:0}.souschef-page__recipe-desc{font-size:var(--soup-font-size-md);font-style:italic;color:var(--soup-color-text-muted);margin:0}.souschef-page__recipe-details{display:flex;flex-direction:column;gap:var(--soup-spacing-md)}.souschef-page__recipe-section h4{font-size:var(--soup-font-size-sm);font-weight:600;color:var(--soup-color-text-bright);margin:0 0 var(--soup-spacing-xs) 0}.souschef-page__recipe-section ul,.souschef-page__recipe-section ol{margin:0;padding-left:var(--soup-spacing-lg)}.souschef-page__recipe-section p{margin:0;font-size:var(--soup-font-size-sm);color:var(--soup-color-text)}.souschef-page__recipe-meta{display:flex;gap:var(--soup-spacing-lg);font-size:var(--soup-font-size-sm);color:var(--soup-color-text-muted)}.souschef-page__recipe-actions{display:flex;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--soup-border-subtle)}.souschef-page__ideas-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--soup-spacing-sm)}.souschef-page__idea-item{display:flex;flex-direction:column;gap:2px;padding:var(--soup-spacing-sm) var(--soup-spacing-md);background:var(--soup-glass-bg-hover);border-radius:var(--soup-radius-md)}.souschef-page__idea-name{font-family:var(--soup-font-heading);font-size:var(--soup-font-size-lg);color:var(--soup-color-accent)}.souschef-page__idea-desc{font-size:var(--soup-font-size-sm);color:var(--soup-color-text)}.souschef-page__idea-meta{display:flex;gap:var(--soup-spacing-sm);font-size:var(--soup-font-size-xs);color:var(--soup-color-text-muted)}.souschef-page__fridge-results{display:flex;flex-direction:column;gap:var(--soup-spacing-lg)}@media(max-width:768px){.souschef-page{padding:var(--soup-spacing-md)}.souschef-page__character-btn{justify-content:center}}
