.swift-app{--sa-primary:#008751;--sa-primary-hover:#007446;--sa-primary-active:#005c38;--sa-primary-soft:#e8f5ee;--sa-primary-soft-2:#d2ecdf;--sa-gold:#d4af37;--sa-gold-ink:#7a5d00;--sa-gold-soft:#f7edcf;--sa-bg:#f4f5f3;--sa-surface:#ffffff;--sa-surface-2:#eef1ef;--sa-surface-3:#e4e9e6;--sa-border:#e3e7e4;--sa-border-strong:#c6cfca;--sa-ink:#0b0f0d;--sa-ink-2:#27302c;--sa-muted:#56605a;--sa-muted-2:#6a746e;--sa-success:#0b7a4b;--sa-success-soft:#e8f6ef;--sa-warning:#a14a06;--sa-warning-soft:#fff6e5;--sa-error:#b91c1c;--sa-error-soft:#fef1f1;--sa-info:#1d4ed8;--sa-info-soft:#eef3ff;--sa-radius-xs:0.375rem;--sa-radius-sm:0.625rem;--sa-radius:0.875rem;--sa-radius-lg:1.25rem;--sa-radius-xl:1.75rem;--sa-radius-pill:999px;--sa-space-1:0.25rem;--sa-space-2:0.5rem;--sa-space-3:0.75rem;--sa-space-4:1rem;--sa-space-5:1.25rem;--sa-space-6:1.5rem;--sa-space-8:2rem;--sa-space-10:2.5rem;--sa-shadow-xs:0 1px 2px rgba(11,15,13,0.05);--sa-shadow:0 1px 2px rgba(11,15,13,0.04),0 1px 3px rgba(11,15,13,0.04);--sa-shadow-md:0 6px 18px -6px rgba(11,15,13,0.12),0 2px 4px -2px rgba(11,15,13,0.05);--sa-shadow-lg:0 18px 40px -12px rgba(11,15,13,0.22),0 4px 10px -4px rgba(11,15,13,0.08);--sa-shadow-sheet:0 -12px 32px -8px rgba(11,15,13,0.18);--sa-ring:0 0 0 3px rgba(0,135,81,0.18);--sa-ease:cubic-bezier(0.2,0.8,0.2,1);--sa-ease-out:cubic-bezier(0.16,1,0.3,1);--sa-dur-fast:150ms;--sa-dur:220ms;--sa-dur-slow:300ms;--sa-sidebar:16.5rem;--sa-topbar:3.75rem;--sa-tabbar:4rem;--sa-nav-h:0px;--sa-bar-safe:env(safe-area-inset-bottom,0px);color:var(--sa-ink);background:var(--sa-bg);font-family:var(--font-source-sans),"Source Sans 3",ui-sans-serif,system-ui,sans-serif;-webkit-tap-highlight-color:transparent}@media (max-width:1023.98px){.swift-app[data-tabbar=on]{--sa-nav-h:calc(var(--sa-tabbar) + env(safe-area-inset-bottom, 0px));--sa-bar-safe:0px}}.swift-app ::-moz-selection{background:var(--sa-primary-soft-2)}.swift-app ::selection{background:var(--sa-primary-soft-2)}.swift-app :focus{outline:none}.swift-app :focus-visible{outline:2px solid var(--sa-primary);outline-offset:2px}.swift-app .sa-input:focus-visible,.swift-app .sa-textarea:focus-visible{outline:none}.swift-app .sa-display,.swift-app .sa-headline,.swift-app .sa-section,.swift-app .sa-title,.swift-app h1,.swift-app h2,.swift-app h3{font-family:var(--font-sora),Sora,ui-sans-serif,system-ui,sans-serif;letter-spacing:-.025em}.swift-app .sa-display{font-size:clamp(1.75rem,1.2rem + 1.6vw,2.375rem);font-weight:700;line-height:1.1}.swift-app .sa-headline{font-size:clamp(1.375rem,1.1rem + .8vw,1.75rem);font-weight:700;line-height:1.18}.swift-app .sa-title{font-size:clamp(1.375rem,1.2rem + .5vw,1.625rem);font-weight:700;line-height:1.2}.swift-app .sa-food-title{font-size:clamp(1.75rem,1.3rem + 1.2vw,2.125rem);font-weight:700;line-height:1.12;letter-spacing:-.03em}.swift-app .sa-section{font-size:1.0625rem;font-weight:650;line-height:1.3}.swift-app .sa-body{font-size:.9375rem;line-height:1.55;color:var(--sa-ink-2)}.swift-app .sa-small{font-size:.875rem;line-height:1.45;color:var(--sa-muted)}.swift-app .sa-caption{font-size:.75rem;line-height:1.4;color:var(--sa-muted-2)}.swift-app .sa-overline{font-size:.6875rem;font-weight:700;line-height:1.2;letter-spacing:.12em;text-transform:uppercase;color:var(--sa-muted-2)}.swift-app .sa-num{font-variant-numeric:tabular-nums}:where(.swift-app .sa-btn){display:inline-flex}.swift-app .sa-btn{position:relative;align-items:center;justify-content:center;gap:.45rem;border-radius:var(--sa-radius-sm);font-size:.9rem;font-weight:650;line-height:1.1;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color var(--sa-dur-fast) ease,border-color var(--sa-dur-fast) ease,color var(--sa-dur-fast) ease,box-shadow var(--sa-dur-fast) ease,opacity var(--sa-dur-fast) ease,transform var(--sa-dur-fast) var(--sa-ease)}.swift-app .sa-btn:active:not(:disabled){transform:scale(.97)}.swift-app .sa-btn:not([class*=h-]){height:2.75rem}.swift-app .sa-btn:not([class*=px-]):not([class*=pl-]):not([class*=pr-]){padding-left:1.15rem;padding-right:1.15rem}.swift-app .sa-btn.sa-btn-sm:not([class*=h-]){height:2.25rem}.swift-app .sa-btn.sa-btn-sm{font-size:.8125rem}.swift-app .sa-btn.sa-btn-sm:not([class*=px-]){padding-left:.85rem;padding-right:.85rem}.swift-app .sa-btn.sa-btn-lg:not([class*=h-]){height:3.25rem}.swift-app .sa-btn.sa-btn-lg{font-size:1rem;border-radius:var(--sa-radius)}.swift-app .sa-btn:disabled,.swift-app .sa-btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.swift-app .sa-btn[data-loading=true]{cursor:progress;opacity:.85}.swift-app .sa-btn-primary{background:var(--sa-primary);color:#fff;box-shadow:0 1px 2px rgba(0,92,56,.25)}.swift-app .sa-btn-primary:hover:not(:disabled){background:var(--sa-primary-hover)}.swift-app .sa-btn-primary:active:not(:disabled){background:var(--sa-primary-active)}.swift-app .sa-btn-dark{background:var(--sa-ink);color:#fff}.swift-app .sa-btn-dark:hover:not(:disabled){background:#1d2420}.swift-app .sa-btn-gold{background:linear-gradient(135deg,#f2d974,var(--sa-gold) 55%,#c19a2a);color:#0b0f0d;box-shadow:0 1px 2px rgba(122,93,0,.25)}.swift-app .sa-btn-gold:hover:not(:disabled){filter:brightness(1.04)}.swift-app .sa-btn-secondary{border-width:1px;border-style:solid;background:var(--sa-surface);border-color:var(--sa-border-strong);color:var(--sa-ink)}.swift-app .sa-btn-secondary:hover:not(:disabled){border-color:var(--sa-muted-2);background:var(--sa-surface-2)}:where(.swift-app .sa-btn-ghost){background:transparent;color:var(--sa-ink-2)}.swift-app .sa-btn-ghost:hover:not(:disabled){background:var(--sa-surface-2)}.swift-app .sa-btn-danger{background:var(--sa-error-soft);color:var(--sa-error);border:1px solid #f9caca}.swift-app .sa-btn-danger:hover:not(:disabled){background:#fde3e3;border-color:#f3a9a9}.swift-app .sa-btn-danger-solid{background:var(--sa-error);color:#fff}.swift-app .sa-btn-danger-solid:hover:not(:disabled){background:#a11616}.swift-app .sa-icon-btn{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:var(--sa-radius-pill);color:var(--sa-ink-2);transition:background-color var(--sa-dur-fast) ease,transform var(--sa-dur-fast) var(--sa-ease)}.swift-app .sa-icon-btn:hover{background:var(--sa-surface-2)}.swift-app .sa-icon-btn:active{transform:scale(.94)}.swift-app .sa-spinner{display:inline-block;width:1em;height:1em;flex-shrink:0;border-radius:999px;border:2px solid;border-right:2px solid transparent;animation:sa-spin .7s linear infinite}.swift-app .sa-input{width:100%;border-radius:var(--sa-radius-sm);border-width:1px;border-style:solid;font-size:.9375rem;color:var(--sa-ink);outline:none;transition:border-color var(--sa-dur-fast) ease,box-shadow var(--sa-dur-fast) ease,background-color var(--sa-dur-fast) ease}.swift-app .sa-input::-moz-placeholder,.swift-app .sa-textarea::-moz-placeholder{color:#7d8681}.swift-app .sa-input::placeholder,.swift-app .sa-textarea::placeholder{color:#7d8681}:where(.swift-app .sa-input){border-color:var(--sa-border-strong);background:var(--sa-surface)}.swift-app .sa-input:not([class*=h-]){height:2.875rem}.swift-app .sa-input:not([class*=pl-]):not([class*=px-]){padding-left:.9rem}.swift-app .sa-input:not([class*=pr-]):not([class*=px-]){padding-right:.9rem}.swift-app .sa-input:hover:not(:focus):not(:disabled){border-color:var(--sa-muted-2)}.swift-app .sa-input:focus{border-color:var(--sa-primary);box-shadow:var(--sa-ring)}.swift-app .sa-input:disabled{background:var(--sa-surface-2);color:var(--sa-muted)}.swift-app .sa-input[aria-invalid=true]{border-color:var(--sa-error)}.swift-app .sa-textarea{width:100%;border-radius:var(--sa-radius-sm);border:1px solid var(--sa-border-strong);background:var(--sa-surface);padding:.75rem .9rem;font-size:.9375rem;outline:none;resize:vertical;transition:border-color var(--sa-dur-fast) ease,box-shadow var(--sa-dur-fast) ease}.swift-app .sa-textarea:focus{border-color:var(--sa-primary);box-shadow:var(--sa-ring)}@media (max-width:767.98px){.swift-app .sa-input,.swift-app .sa-textarea,.swift-app select{font-size:16px}}.swift-app .sa-card{border-width:1px;border-style:solid;border-radius:var(--sa-radius);box-shadow:var(--sa-shadow)}:where(.swift-app .sa-card){background:var(--sa-surface);border-color:var(--sa-border)}.swift-app .sa-card-hover{transition:border-color var(--sa-dur) ease,box-shadow var(--sa-dur) ease,transform var(--sa-dur) var(--sa-ease)}@media (hover:hover){.swift-app .sa-card-hover:hover{border-color:var(--sa-border-strong);box-shadow:var(--sa-shadow-md);transform:translateY(-2px)}}.swift-app .sa-card-hover:active{transform:scale(.985)}.swift-app .sa-pressable{transition:transform var(--sa-dur-fast) var(--sa-ease),background-color var(--sa-dur-fast) ease}.swift-app .sa-pressable:active{transform:scale(.97)}.swift-app .sa-row{display:flex;align-items:center;gap:.85rem;min-height:3.5rem;padding:.75rem 1rem;transition:background-color var(--sa-dur-fast) ease}.swift-app a.sa-row:hover,.swift-app button.sa-row:hover{background:var(--sa-surface-2)}.swift-app .sa-row-icon{justify-content:center;width:2.5rem;height:2.5rem;background:var(--sa-surface-2)}.swift-app .sa-chip,.swift-app .sa-row-icon{display:inline-flex;flex-shrink:0;align-items:center;border-radius:var(--sa-radius-pill);color:var(--sa-ink-2)}.swift-app .sa-chip{gap:.375rem;min-height:2.25rem;padding:0 .9rem;border:1px solid var(--sa-border);background:var(--sa-surface);font-size:.8125rem;font-weight:600;white-space:nowrap;transition:background-color var(--sa-dur-fast) ease,border-color var(--sa-dur-fast) ease,color var(--sa-dur-fast) ease,transform var(--sa-dur-fast) var(--sa-ease)}.swift-app .sa-chip:hover{border-color:var(--sa-border-strong)}.swift-app .sa-chip:active{transform:scale(.96)}.swift-app .sa-chip[aria-pressed=true],.swift-app .sa-chip[aria-selected=true],.swift-app .sa-chip[data-active=true]{background:var(--sa-ink);border-color:var(--sa-ink);color:#fff}.swift-app .sa-seg{display:inline-flex;gap:.25rem;padding:.25rem;border-radius:var(--sa-radius-sm);background:var(--sa-surface-2)}.swift-app .sa-seg-item{position:relative;display:inline-flex;flex:1 1 0;align-items:center;justify-content:center;gap:.375rem;min-height:2.25rem;padding:0 .9rem;border-radius:calc(var(--sa-radius-sm) - .2rem);font-size:.8125rem;font-weight:650;color:var(--sa-muted);transition:color var(--sa-dur-fast) ease,background-color var(--sa-dur-fast) ease,box-shadow var(--sa-dur-fast) ease}.swift-app .sa-seg-item:hover{color:var(--sa-ink)}.swift-app .sa-seg-item[aria-pressed=true],.swift-app .sa-seg-item[aria-selected=true],.swift-app .sa-seg-item[data-active=true]{background:var(--sa-surface);color:var(--sa-ink);box-shadow:var(--sa-shadow-xs),0 0 0 1px var(--sa-border)}.swift-app .sa-badge{display:inline-flex;align-items:center;gap:.35rem;height:1.5rem;padding:0 .6rem;border-radius:999px;font-size:.75rem;font-weight:650;white-space:nowrap}.swift-app .sa-badge:before{content:"";width:.375rem;height:.375rem;flex-shrink:0;border-radius:999px;background:currentColor;opacity:.85}.swift-app .sa-badge.sa-badge-plain:before{display:none}.swift-app .sa-badge-success{background:var(--sa-success-soft);color:var(--sa-success)}.swift-app .sa-badge-warning{background:var(--sa-warning-soft);color:var(--sa-warning)}.swift-app .sa-badge-error{background:var(--sa-error-soft);color:var(--sa-error)}.swift-app .sa-badge-info{background:var(--sa-info-soft);color:var(--sa-info)}.swift-app .sa-badge-neutral{background:var(--sa-surface-2);color:var(--sa-muted)}.swift-app .sa-skeleton{position:relative;overflow:hidden}:where(.swift-app .sa-skeleton){border-radius:var(--sa-radius-sm);background:var(--sa-surface-2)}.swift-app .sa-skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:sa-shimmer 1.4s ease-in-out infinite}:where(.swift-app .sa-skeleton.sa-skeleton-dark){background:rgba(255,255,255,.12)}.swift-app .sa-skeleton.sa-skeleton-dark:after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.14),transparent)}.swift-app .sa-action-bar{position:fixed;left:0;right:0;bottom:var(--sa-nav-h);z-index:40;border-top:1px solid var(--sa-border);background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(10px);padding:.75rem 1rem calc(.75rem + var(--sa-bar-safe));box-shadow:0 -8px 24px -14px rgba(11,15,13,.25)}.swift-app .sa-scroll-x{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.swift-app .sa-scroll-x::-webkit-scrollbar{display:none}@keyframes sa-spin{to{transform:rotate(1turn)}}@keyframes sa-shimmer{to{transform:translateX(100%)}}@keyframes sa-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes sa-fade-in{0%{opacity:0}to{opacity:1}}@keyframes sa-pop{0%{transform:scale(1)}40%{transform:scale(1.2)}to{transform:scale(1)}}.swift-app .sa-fade-up{animation:sa-fade-up var(--sa-dur-slow) var(--sa-ease-out) both}.swift-app .sa-fade-in{animation:sa-fade-in var(--sa-dur) ease both}.swift-app .sa-pop{animation:sa-pop .32s var(--sa-ease)}@media (prefers-reduced-motion:reduce){.swift-app *,.swift-app :after,.swift-app :before{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}.swift-app .animate-ping,.swift-app .sa-skeleton:after{display:none}.swift-app .sa-btn:active:not(:disabled),.swift-app .sa-card-hover:active,.swift-app .sa-card-hover:hover,.swift-app .sa-chip:active,.swift-app .sa-pressable:active{transform:none}.swift-app .sa-spinner{animation-duration:1.2s!important;animation-iteration-count:infinite!important}}