.landing-page{--landing-bg: var(--kn-bg);--landing-surface: var(--kn-surface);--landing-surface-low: var(--kn-surface-low);--landing-surface-container: var(--kn-surface-container);--landing-on-surface: var(--kn-ink);--landing-on-surface-variant: var(--kn-muted);--landing-primary: var(--kn-primary);--landing-primary-container: var(--kn-cta);--landing-on-primary-fixed: var(--kn-on-cta);--landing-primary-fixed: var(--kn-cta-fixed);--landing-secondary-container: var(--kn-secondary-container);--landing-on-secondary-container: var(--kn-ok-soft);--landing-tertiary-container: #aca9a5;--landing-on-tertiary-container: #3f3e3b;--landing-outline-variant: var(--kn-line);--landing-inverse-surface: #203243;--landing-nav-height: 5.6rem;--landing-gutter: 1rem;--landing-margin-desktop: 4rem;--landing-max: 80rem;--landing-font-display: var(--kn-font-display);--landing-font-body: var(--kn-font-body);--landing-shadow-soft: var(--kn-shadow-soft);--landing-shadow-card: var(--kn-shadow-card);min-height:100vh;background:var(--landing-bg);color:var(--landing-on-surface);font-family:var(--landing-font-body);font-size:1rem;line-height:1.5;padding-top:var(--landing-nav-height)}.legal-doc{--landing-bg: var(--kn-bg);--landing-surface: var(--kn-surface);--landing-on-surface: var(--kn-ink);--landing-on-surface-variant: var(--kn-muted);--landing-primary: var(--kn-primary);--landing-primary-container: var(--kn-cta);--landing-on-primary-fixed: var(--kn-on-cta);--landing-font-display: var(--kn-font-display);--landing-font-body: var(--kn-font-body);--landing-shadow-card: var(--kn-shadow-card)}.legal-doc--embedded .landing-legal-title{font-size:1.55rem}.legal-doc--embedded .landing-legal-draft{margin-bottom:1.25rem}.landing-page *,.landing-page *:before,.landing-page *:after{box-sizing:border-box}.landing-accent{color:var(--landing-primary)}.landing-squish:active{transform:scale(.98)}.landing-nav{position:fixed;inset:0 0 auto;z-index:50;min-height:var(--landing-nav-height);padding-block:.55rem;background:#f7f9ffeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--landing-shadow-soft)}.landing-nav-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:var(--landing-max);margin:0 auto;padding-inline:var(--landing-gutter)}@media(min-width:768px){.landing-nav-inner{padding-inline:var(--landing-margin-desktop)}}.landing-nav-brand{display:flex;align-items:flex-start;min-width:0;text-decoration:none;color:inherit}.landing-nav-brand-stack{display:inline-flex;flex-direction:column;align-items:stretch;gap:.12rem;min-width:0}.landing-nav-brand-row{display:flex;align-items:center;gap:.75rem}.landing-nav-logo{width:2.75rem;height:2.75rem;flex-shrink:0;object-fit:contain;display:block}.landing-nav-name{margin:0;font-family:var(--landing-font-display);font-size:2.15rem;font-weight:700;line-height:1.1;color:var(--landing-primary)}.landing-nav-origin{max-width:100%;font-size:.7rem;font-weight:500;line-height:1.35;color:var(--landing-on-surface-variant);letter-spacing:.01em}@media(min-width:480px){.landing-nav-origin{font-size:.74rem}}@media(min-width:768px){.landing-nav-logo{width:3rem;height:3rem}.landing-nav-name{font-size:2.35rem}.landing-nav-origin{font-size:.8rem}}.landing-nav-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.landing-lang{display:inline-flex;align-items:center;gap:.15rem;padding:.15rem;border-radius:999px;background:var(--landing-surface-low);border:1px solid rgba(221,193,174,.45)}.landing-lang-btn{border:0;background:transparent;color:var(--landing-on-surface-variant);font:inherit;font-size:.75rem;font-weight:600;padding:.35rem .55rem;border-radius:999px;cursor:pointer;transition:background .15s,color .15s}.landing-lang-btn.is-active{background:var(--landing-surface);color:var(--landing-primary);box-shadow:var(--landing-shadow-card)}.landing-lang-btn:not(.is-active):hover{color:var(--landing-on-surface)}.landing-btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;font:inherit;font-size:.875rem;font-weight:600;text-decoration:none;cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .15s}.landing-btn-primary{padding:.5rem 1rem;background:var(--landing-primary-container);color:var(--landing-on-primary-fixed)}.landing-btn-primary:hover{background:var(--landing-primary);color:#fff}.landing-btn-primary-lg{padding:.75rem 2rem;font-size:1.125rem}.landing-btn-outline{padding:.5rem 1rem;background:transparent;color:var(--landing-primary);border:1px solid var(--landing-primary);border-radius:.5rem}.landing-btn-outline:hover{background:var(--landing-surface-low)}.landing-btn-light{padding:1rem 2.5rem;background:var(--landing-bg);color:var(--landing-primary);font-size:1.125rem;font-weight:700;box-shadow:0 8px 24px #091d2e2e}.landing-btn-light:hover{background:var(--landing-surface-container);color:var(--landing-on-primary-fixed)}.landing-badge-soon{display:inline-block;padding:.75rem 2rem;border-radius:999px;background:#ff8c0026;color:var(--landing-primary);font-size:1.125rem;font-weight:600;border:1px dashed rgba(144,77,0,.35)}.landing-shell{width:100%;max-width:var(--landing-max);margin-inline:auto;padding-inline:var(--landing-gutter)}@media(min-width:768px){.landing-shell{padding-inline:var(--landing-margin-desktop)}}.landing-hero{padding:6.25rem 0;background:var(--landing-bg)}@media(min-width:768px){.landing-hero{padding:8.75rem 0}}.landing-hero-grid{display:flex;flex-direction:column;align-items:center;gap:3rem}@media(min-width:768px){.landing-hero-grid{flex-direction:row;align-items:center;gap:4rem}}.landing-hero-copy{flex:1;text-align:center}@media(min-width:768px){.landing-hero-copy{text-align:left}}.landing-display{margin:0 0 1.5rem;font-family:var(--landing-font-display);font-size:clamp(2rem,5vw,3rem);font-weight:700;line-height:1.15;letter-spacing:-.02em}.landing-lead{margin:0 0 1.5rem;max-width:36rem;font-size:1.125rem;line-height:1.55;color:var(--landing-on-surface-variant)}.landing-hero-copy .landing-lead{margin-inline:auto}@media(min-width:768px){.landing-hero-copy .landing-lead{margin-inline:0}}.landing-hero-art{flex:1;position:relative;width:100%}.landing-hero-art:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#ffdcc359;border-radius:3rem;transform:rotate(-3deg) scale(1.05);z-index:0}.landing-hero-art img{position:relative;z-index:1;display:block;width:100%;max-height:600px;object-fit:contain;filter:drop-shadow(0 24px 32px rgba(9,29,46,.15))}.landing-maintenance{margin:0;max-width:32rem;padding:1rem 1.15rem;background:var(--landing-surface-low);border:1px solid var(--landing-outline-variant);border-radius:.75rem;color:var(--landing-on-surface);line-height:1.5}.landing-invite-only{margin:.75rem 0 0;color:var(--landing-on-surface-variant);font-size:.9rem}.landing-features{padding:6.25rem 0;background:var(--landing-surface);border-block:1px solid rgba(221,193,174,.2)}@media(min-width:768px){.landing-features{padding:8.75rem 0}}.landing-section-head{margin-bottom:5rem;text-align:center}.landing-section-head h2{margin:0 0 1rem;font-family:var(--landing-font-display);font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700;line-height:1.2}.landing-section-head p{margin:0 auto;max-width:42rem;font-size:1.125rem;color:var(--landing-on-surface-variant)}.landing-features-grid{display:grid;gap:1rem}@media(min-width:768px){.landing-features-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}}.landing-feature-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1rem;padding:2.5rem;border-radius:1rem;border:1px solid rgba(221,193,174,.3);box-shadow:var(--landing-shadow-card);transition:box-shadow .2s}.landing-feature-card:hover{box-shadow:0 6px 20px #091d2e14}.landing-feature-card:nth-child(1),.landing-feature-card:nth-child(2){background:var(--landing-bg)}.landing-feature-card:nth-child(3),.landing-feature-card:nth-child(4){background:var(--landing-surface-container)}.landing-feature-icon{width:3rem;height:3rem;display:flex;align-items:center;justify-content:center;border-radius:999px}.landing-feature-icon svg{width:1.5rem;height:1.5rem}.landing-feature-icon--menu{background:var(--landing-secondary-container);color:var(--landing-on-secondary-container)}.landing-feature-icon--shopping{background:var(--landing-primary-container);color:var(--landing-on-primary-fixed)}.landing-feature-icon--expenses{background:var(--landing-tertiary-container);color:var(--landing-on-tertiary-container)}.landing-feature-icon--team{background:var(--landing-bg);color:var(--landing-primary);border:1px solid rgba(221,193,174,.35)}.landing-feature-card h3{margin:0;font-family:var(--landing-font-display);font-size:1.5rem;font-weight:600}.landing-feature-card p{margin:0;max-width:22rem;font-size:1.125rem;line-height:1.55;color:var(--landing-on-surface-variant);white-space:pre-line}.landing-feature-card img{width:100%;max-height:18rem;margin-top:auto;object-fit:contain;filter:drop-shadow(0 16px 24px rgba(9,29,46,.12))}.landing-mobile{padding:1.5rem 0;background:#ffdcc333}@media(min-width:768px){.landing-mobile{padding:0}}.landing-mobile-grid{display:flex;flex-direction:column-reverse;align-items:center;gap:1.5rem}@media(min-width:768px){.landing-mobile-grid{flex-direction:row;align-items:stretch;gap:4rem}}.landing-mobile-art{flex:1;position:relative;width:100%;display:flex;align-items:center}.landing-mobile-art:before{content:"";position:absolute;top:10%;right:10%;bottom:10%;left:10%;background:#ffdcc373;border-radius:999px;filter:blur(48px);z-index:0}.landing-mobile-art img{position:relative;z-index:1;display:block;width:100%;height:auto;max-height:none;object-fit:contain;filter:drop-shadow(0 24px 32px rgba(9,29,46,.15))}.landing-mobile-copy{flex:1;text-align:center}@media(min-width:768px){.landing-mobile-copy{display:flex;flex-direction:column;justify-content:center;text-align:left;padding-block:1rem}}.landing-motivation{padding:6.25rem 0;background:var(--landing-surface-low)}@media(min-width:768px){.landing-motivation{padding:8.75rem 0}}.landing-motivation h2{margin:0 0 3.75rem;text-align:center;font-family:var(--landing-font-display);font-size:clamp(1.75rem,4vw,3rem);font-weight:700;line-height:1.2}.landing-motivation-frame{position:relative;max-width:56rem;margin-inline:auto;border-radius:2rem;overflow:hidden;padding:.5rem}.landing-motivation-frame img{display:block;width:100%;object-fit:contain;filter:drop-shadow(0 24px 32px rgba(9,29,46,.15))}.landing-motivation-cta{position:absolute;inset:auto 0 0;z-index:2;padding:5rem 2.5rem 2.5rem;background:linear-gradient(to top,rgba(9,29,46,.9),transparent);display:flex;justify-content:center}.landing-footer{display:flex;flex-direction:column;align-items:center;gap:2rem;padding:5rem var(--landing-gutter);text-align:center;background:var(--landing-on-surface);color:var(--landing-primary-fixed)}.landing-footer-brand{margin:0;font-family:var(--landing-font-display);font-size:1.5rem;font-weight:700}.landing-footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem}.landing-footer-links a{color:#f7f9ffcc;text-decoration:none;font-size:1rem;transition:color .15s,opacity .15s}.landing-footer-links a:hover{color:var(--landing-primary-fixed);opacity:1}.landing-footer-copy{margin:0;color:#f7f9ff99;font-size:.875rem}.landing-legal{padding:2.5rem 0 4rem;min-height:calc(100vh - var(--landing-nav-height) - 12rem)}.landing-legal-inner{max-width:48rem;margin-inline:auto}.landing-legal-eyebrow{margin:0 0 .5rem;font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--landing-primary)}.landing-legal-title{margin:0 0 .5rem;font-family:var(--landing-font-display);font-size:clamp(1.85rem,4vw,2.5rem);font-weight:700;line-height:1.15;color:var(--landing-on-surface)}.landing-legal-updated{margin:0 0 .75rem;font-size:.9rem;color:var(--landing-on-surface-variant)}.landing-legal-draft{margin:0 0 2.5rem;padding:.75rem 1rem;border-radius:.75rem;background:#ff8c001f;border:1px solid rgba(144,77,0,.2);color:var(--landing-primary);font-size:.9rem;line-height:1.45}.landing-contact-intro{margin:0 0 2rem;font-size:1.08rem;line-height:1.6;color:var(--landing-on-surface-variant);white-space:pre-line}.landing-legal-body{display:flex;flex-direction:column;gap:1.75rem}.landing-legal-section h2{margin:0 0 .65rem;font-family:var(--landing-font-display);font-size:1.25rem;font-weight:600;color:var(--landing-on-surface)}.landing-legal-section p{margin:0 0 .75rem;font-size:1rem;line-height:1.65;color:var(--landing-on-surface-variant);white-space:pre-line}.landing-legal-section p:last-child{margin-bottom:0}.landing-legal-mascot{margin:.5rem 0 2.5rem;text-align:center}.landing-legal-mascot img{display:block;width:min(100%,280px);height:auto;margin-inline:auto;object-fit:contain;filter:drop-shadow(0 16px 28px rgba(9,29,46,.12))}.landing-legal-mascot--lg img{width:min(100%,490px)}.landing-legal-mascot figcaption{margin-top:1rem;font-size:.9rem;color:var(--landing-on-surface-variant)}.landing-contact-lead{margin:0 0 1.75rem;font-size:1.125rem;line-height:1.55;color:var(--landing-on-surface-variant)}.landing-contact-card{padding:1.5rem 1.75rem;border-radius:1rem;background:var(--landing-surface);border:1px solid rgba(221,193,174,.35);box-shadow:var(--landing-shadow-card)}.landing-contact-label{margin:0 0 .35rem;font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--landing-on-surface-variant)}.landing-contact-email{display:inline-block;font-family:var(--landing-font-display);font-size:clamp(1.35rem,3vw,1.75rem);font-weight:700;color:var(--landing-primary);text-decoration:none;word-break:break-all}.landing-contact-email:hover{color:var(--landing-primary-container)}.landing-contact-hint{margin:.75rem 0 0;font-size:.95rem;line-height:1.5;color:var(--landing-on-surface-variant)}.landing-contact-note{margin:1rem 0 0;font-size:.9rem;line-height:1.5;color:var(--landing-on-surface-variant)}.landing-contact-form{margin-top:0;padding:1.15rem;border-radius:1rem;border:1px solid rgba(221,193,174,.35);background:var(--landing-surface);box-shadow:var(--landing-shadow-card);display:grid;gap:.9rem}.landing-contact-field{display:grid;gap:.35rem;font-size:.92rem;color:var(--landing-on-surface)}.landing-contact-field span{font-weight:600}.landing-contact-field input,.landing-contact-field select,.landing-contact-field textarea{width:calc(100% - .85rem);margin-left:.85rem;border-radius:.75rem;border:1px solid rgba(221,193,174,.7);background:var(--landing-bg);color:var(--landing-on-surface);padding:.65rem .75rem;font:inherit}.landing-contact-field textarea{resize:vertical}.landing-contact-consent{display:flex;align-items:flex-start;gap:.45rem;color:var(--landing-on-surface-variant);font-size:.9rem}.landing-contact-count{margin-left:.85rem;font-size:.78rem;color:var(--landing-on-surface-variant)}.landing-contact-error{margin:-.35rem 0 0}.landing-contact-honeypot{position:absolute;left:-200vw;width:1px;height:1px;opacity:0;pointer-events:none}.landing-help-footer{margin:2.5rem 0 0;padding-top:1.5rem;border-top:1px solid rgba(221,193,174,.35);font-size:1.05rem;color:var(--landing-on-surface-variant)}.landing-help-footer a,.landing-help-footer .landing-help-contact{color:var(--landing-primary);font-weight:600;text-decoration:none}.landing-help-footer .landing-help-contact{display:inline;padding:0;border:none;background:none;font:inherit;cursor:pointer}.landing-help-footer a:hover,.landing-help-footer .landing-help-contact:hover{text-decoration:underline}.landing-auth{width:min(100%,26rem);margin:0 auto;padding:2rem var(--landing-gutter) 3.5rem}.landing-auth-title{margin:0 0 1.25rem;font-family:var(--landing-font-display);font-size:clamp(1.75rem,4vw,2.25rem);font-weight:700;line-height:1.15;color:var(--landing-on-surface);text-align:center}.landing-auth .panel{background:var(--landing-surface);border:1px solid rgba(221,193,174,.35);border-radius:1rem;box-shadow:var(--landing-shadow-card);padding:1.5rem 1.5rem 1.35rem;animation:none}.landing-auth .field{color:var(--landing-on-surface)}.landing-auth .field input{border-color:var(--landing-outline-variant);border-radius:.75rem;background:var(--landing-bg);color:var(--landing-on-surface)}.landing-auth .field input:focus{outline:2px solid rgba(255,140,0,.45);outline-offset:1px;border-color:var(--landing-primary)}.landing-auth .btn,.landing-auth a.btn{display:inline-flex;align-items:center;justify-content:center;width:100%;margin-top:.35rem;border-radius:9999px;background:var(--landing-primary-container);color:var(--landing-on-primary-fixed);font-weight:700;text-decoration:none;box-shadow:var(--landing-shadow-soft)}.landing-auth .btn:hover,.landing-auth a.btn:hover{background:var(--landing-primary);color:#fff}.landing-auth .btn:disabled,.landing-auth .btn:disabled:hover{background:var(--landing-primary-fixed);color:#2f150073;transform:none}.landing-auth .muted{color:var(--landing-on-surface-variant)}.landing-auth a{color:var(--landing-primary);font-weight:600}.landing-auth a:hover{color:var(--landing-primary-container)}.landing-auth button.linkish{color:var(--landing-primary)}.landing-auth .error{color:#b42318}.landing-auth .ok{color:var(--landing-on-secondary-container)}.landing-auth .password-toggle{color:var(--landing-on-surface-variant)}.landing-auth .password-toggle:hover,.landing-auth .password-toggle[aria-pressed=true]{color:var(--landing-on-surface);background:var(--landing-surface-low)}@font-face{font-family:Fraunces;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/fraunces-latin-ext-variable.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/fraunces-latin-variable.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/outfit-latin-ext-variable.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/outfit-latin-variable.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--kn-bg: #f7f9ff;--kn-surface: #ffffff;--kn-surface-low: #edf4ff;--kn-surface-container: #e3efff;--kn-surface-dim: #c9dcf3;--kn-ink: #091d2e;--kn-muted: #564334;--kn-primary: #904d00;--kn-primary-deep: #6e3900;--kn-cta: #ff8c00;--kn-on-cta: #2f1500;--kn-cta-fixed: #ffdcc3;--kn-line: #ddc1ae;--kn-outline: #867466;--kn-danger: #ba1a1a;--kn-ok: #2c5000;--kn-ok-soft: #407100;--kn-secondary-container: #b8f47a;--kn-shadow-soft: 0 4px 15px rgba(9, 29, 46, .05);--kn-shadow-card: 0 1px 3px rgba(9, 29, 46, .08);--kn-shadow: 0 12px 32px rgba(9, 29, 46, .1);--kn-radius: 1rem;--kn-radius-sm: .75rem;--kn-radius-pill: 9999px;--kn-font-display: "Fraunces", Georgia, serif;--kn-font-body: "Outfit", system-ui, sans-serif}:root{--bg0: var(--kn-bg);--bg1: var(--kn-surface-low);--bg2: var(--kn-surface-container);--surface: var(--kn-surface);--ink: var(--kn-ink);--muted: var(--kn-muted);--accent: var(--kn-cta);--accent-deep: var(--kn-primary);--on-accent: var(--kn-on-cta);--danger: var(--kn-danger);--ok: var(--kn-ok-soft);--line: color-mix(in srgb, var(--kn-line) 55%, transparent);--shadow: var(--kn-shadow);--radius: var(--kn-radius);--font-display: var(--kn-font-display);--font-body: var(--kn-font-body)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--kn-bg)}button,input,select{font:inherit}a{color:var(--accent-deep)}.app-shell{padding-bottom:5rem}.app-chrome{position:sticky;top:0;z-index:50;background:#f7f9ffeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:var(--kn-shadow-soft);padding-top:env(safe-area-inset-top,0px)}.app-chrome-inner,.app-main{max-width:1100px;margin:0 auto;padding-left:1rem;padding-right:1rem}.app-chrome-inner{padding-top:1rem;padding-bottom:.75rem}.app-main{padding-top:1.25rem}.brand{display:flex;align-items:center;gap:.65rem;font-family:var(--font-display);font-size:clamp(1.6rem,5vw,2.25rem);letter-spacing:-.03em;margin:0;color:var(--kn-primary);animation:rise .7s ease both}.brand-logo{width:clamp(1.75rem,5vw,2.5rem);height:clamp(1.75rem,5vw,2.5rem);flex-shrink:0;object-fit:contain;display:block}.app-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem 1.25rem}.app-header-brand{min-width:0;flex:1}.app-header-user{margin:.12rem 0 0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;font-weight:500;line-height:1.35;color:var(--muted);letter-spacing:.01em;animation:rise .7s ease .08s both}@media(min-width:480px){.app-header-user{font-size:.74rem}}.app-kitchen-meta{margin:.35rem 0 0;max-width:min(20rem,52vw);text-align:right;flex-shrink:0;animation:rise .7s ease .1s both}.app-kitchen-name{margin:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;white-space:normal;overflow-wrap:anywhere;font-family:var(--font-display);font-size:1.425rem;font-weight:600;color:var(--ink);letter-spacing:-.01em;text-align:right;line-height:1.2}.app-kitchen-role{margin:.1rem 0 0;font-size:1.275rem;color:var(--muted);line-height:1.2;text-align:right}.panel{background:var(--surface);border:1px solid color-mix(in srgb,var(--kn-line) 35%,transparent);border-radius:var(--radius);box-shadow:var(--kn-shadow-card);padding:1.25rem;animation:rise .55s ease both}.topnav{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem;margin:.75rem 0 0}.topnav-main{display:flex;flex-wrap:wrap;gap:.5rem;min-width:0}.topnav-actions{display:flex;align-items:center;gap:.35rem;margin-left:auto}.topnav-action-icons{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:flex-end}.topnav a,.topnav button.linkish{text-decoration:none;color:var(--kn-primary);background:var(--kn-surface-low);border:1px solid color-mix(in srgb,var(--kn-line) 45%,transparent);border-radius:var(--kn-radius-pill);padding:.45rem .9rem;cursor:pointer}.topnav a.nav-icon,.topnav button.nav-icon{display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;padding:0;border-radius:var(--kn-radius-sm)}.topnav a.active{background:var(--accent);border-color:transparent;color:var(--on-accent)}.btn{border:none;border-radius:var(--kn-radius-pill);padding:.65rem 1.1rem;background:var(--accent);color:var(--on-accent);font-weight:700;cursor:pointer;transition:transform .15s ease,background .15s ease,color .15s ease}.btn:hover{background:var(--accent-deep);color:#fff;transform:translateY(-1px)}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line);font-weight:600}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn:disabled:hover{transform:none}.btn.ghost:disabled{background:color-mix(in srgb,var(--ink) 6%,transparent);color:color-mix(in srgb,var(--ink) 42%,transparent);border-color:color-mix(in srgb,var(--ink) 18%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink) 6%,transparent)}.btn.ghost.week-active{background:var(--accent);border-color:transparent;color:var(--on-accent)}.btn.danger{background:var(--danger);color:#fff}.btn.danger:hover{background:#93000a;color:#fff;transform:translateY(-1px)}.btn.danger:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn.danger-ghost{background:transparent;color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);padding:.45rem .85rem;font-size:.9rem}.btn.danger-ghost:hover{background:color-mix(in srgb,var(--danger) 8%,transparent)}.settings-kitchen-table{--sk-icon: 1.75rem;--sk-gap: .55rem;--sk-created: 5.5rem;--sk-dish: 5.75rem;--sk-members: 4.25rem;--sk-actions: 6.5rem;display:grid;grid-template-columns:var(--sk-icon) minmax(6rem,1fr) var(--sk-created) var(--sk-dish) var(--sk-members) var(--sk-actions);column-gap:var(--sk-gap);align-items:center;overflow-x:auto;-webkit-overflow-scrolling:touch;min-width:0}.settings-kitchen-row{display:contents}.settings-kitchen-row>*{padding:.7rem 0;min-width:0}.settings-kitchen-head>*{padding-top:.15rem;padding-bottom:.4rem;align-self:end}.settings-kitchen-head>.settings-kitchen-name,.settings-kitchen-head>.settings-kitchen-meta{font-size:.68rem;font-weight:600;letter-spacing:.01em;line-height:1.2;color:var(--muted);white-space:nowrap;overflow:visible;text-overflow:unset}.settings-kitchen-head-rule,.settings-kitchen-row-rule{grid-column:1 / -1;height:0;border-bottom:1px solid var(--line);pointer-events:none}.settings-kitchen-head-rule{border-bottom-color:color-mix(in srgb,var(--line) 85%,var(--ink))}.settings-kitchen-icon-slot{display:flex;align-items:center;justify-content:center;width:var(--sk-icon);box-sizing:border-box}.settings-kitchen-icon{display:block;flex:0 0 auto;color:var(--ink);opacity:.85}.settings-kitchen-name{font-size:1.05rem;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-kitchen-meta{font-size:.82rem;color:var(--muted);white-space:nowrap}.settings-kitchen-members{text-align:center}.settings-kitchen-actions{display:flex;align-items:center;justify-content:flex-end;gap:.85rem;width:var(--sk-actions);box-sizing:border-box}.settings-kitchen-actions .icon-btn{padding:.3rem;line-height:0}.settings-kitchen-actions .icon-btn svg{display:block}@media(orientation:portrait){.settings-kitchen-table{--sk-created: 0px;grid-template-columns:var(--sk-icon) minmax(5.5rem,1fr) var(--sk-dish) var(--sk-members) var(--sk-actions)}.settings-kitchen-created{display:none}}.settings-meals-fieldset{border:1px solid var(--line);border-radius:8px;padding:.75rem 1rem 1rem;margin:1rem 0}.settings-meals-fieldset legend{padding:0 .35rem;font-weight:600}.settings-meals-list{list-style:none;padding:0;margin:.5rem 0 0;display:grid;gap:.45rem}.settings-meal-toggle svg{flex:0 0 auto;color:var(--ink);opacity:.8}.settings-transfer-box{margin:1rem 0;padding:.85rem;border:1px solid var(--line);border-radius:12px;background:#1c211f08}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.85rem}.field input,.field select{border:1px solid color-mix(in srgb,var(--kn-line) 70%,transparent);border-radius:var(--kn-radius-sm);padding:.65rem .8rem;background:var(--kn-bg);color:var(--ink)}.field input:focus,.field select:focus{outline:2px solid color-mix(in srgb,var(--kn-cta) 45%,transparent);outline-offset:1px;border-color:var(--kn-primary)}.password-field{position:relative;display:flex;align-items:center}.password-field input{width:100%;padding-right:2.75rem}.password-toggle{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;border:none;border-radius:10px;background:transparent;color:var(--muted);cursor:pointer}.password-toggle:hover,.password-toggle[aria-pressed=true]{color:var(--ink);background:#1c211f0f}.kitchen-cards{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));justify-content:center;max-width:56rem;margin:0 auto}.kitchen-card{display:flex;flex-direction:column;gap:.45rem;padding:1rem 1.1rem;border:1px solid color-mix(in srgb,var(--kn-line) 40%,transparent);border-radius:var(--kn-radius);background:var(--kn-surface);box-shadow:var(--kn-shadow-card);min-height:12.5rem}.kitchen-card-create{align-items:center;justify-content:space-between;text-align:center;border-style:dashed;background:var(--kn-surface-low)}button.kitchen-card-create,a.kitchen-card-link{font:inherit;color:inherit;text-decoration:none;cursor:pointer;width:100%;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}button.kitchen-card-create:hover,button.kitchen-card-create:focus-visible,a.kitchen-card-link:hover,a.kitchen-card-link:focus-visible{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:#ffffffd1;box-shadow:0 10px 28px #0a14101f}button.kitchen-card-create:hover .kitchen-enter,button.kitchen-card-create:focus-visible .kitchen-enter,a.kitchen-card-link:hover .kitchen-enter,a.kitchen-card-link:focus-visible .kitchen-enter{background:var(--accent-deep);color:#fff;transform:translateY(-1px)}button.kitchen-card-create:focus-visible,a.kitchen-card-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.kitchen-card-create.is-disabled{opacity:.72}.kitchen-create-plus{flex:1;display:flex;align-items:center;justify-content:center;font-size:4.5rem;line-height:1;font-weight:300;color:var(--accent);-webkit-user-select:none;user-select:none}.kitchen-prefs-customize{margin:0 0 1rem;border:1px solid var(--line);border-radius:10px;background:#1c211f05}.kitchen-prefs-customize>summary{list-style:none;cursor:pointer;padding:.7rem .85rem;font-weight:600;-webkit-user-select:none;user-select:none}.kitchen-prefs-customize>summary::-webkit-details-marker{display:none}.kitchen-prefs-customize>summary:before{content:"";display:inline-block;width:.45rem;height:.45rem;margin-right:.55rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .15s ease;vertical-align:.1rem}.kitchen-prefs-customize[open]>summary:before{transform:rotate(45deg);vertical-align:.15rem}.kitchen-prefs-customize-body{padding:0 .85rem .85rem}.kitchen-prefs-customize-body .settings-meals-fieldset{margin-bottom:0}.kitchen-create-limit{margin:0;font-size:.9rem}.kitchen-card-create .kitchen-enter{margin-top:auto}.field-hint{font-size:.82rem}.kitchen-card-name{margin:0;font-family:var(--font-display);font-size:1.35rem;line-height:1.2;min-height:3.24rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;word-break:break-word}.kitchen-card-role{margin:0;font-size:.92rem;min-height:1.35em}.kitchen-card-members{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem;min-height:1.4rem;color:var(--muted)}.kitchen-card-members-count{display:inline-flex;align-items:center;gap:.25rem;font-weight:600;color:var(--ink)}.user-icon{width:1.15rem;height:1.15rem}.kitchen-card-date{margin:0;font-size:.88rem;min-height:1.3em}.kitchen-enter{margin-top:auto;width:100%;text-align:center;font-size:1.05rem;padding:.85rem 1rem;text-decoration:none;box-sizing:border-box;pointer-events:none}.home-page{display:flex;flex-direction:column;gap:0}.home-page .panel{position:relative;z-index:1}.home-mascot{display:block;width:100%;height:auto;object-fit:contain;margin-top:-5%;position:relative;z-index:0;pointer-events:none;-webkit-user-select:none;user-select:none}.icon-btn{border:none;background:transparent;cursor:pointer;padding:.15rem;opacity:.7}.icon-btn:hover{opacity:1}.icon-btn--sm{padding:.2rem;font-size:0;line-height:0}.icon-btn--sm svg{display:block}.members-mascot{width:50%;margin-inline:auto;display:block;height:auto;pointer-events:none;-webkit-user-select:none;user-select:none}.shopping-empty-mascot{width:25%;margin-inline:auto;display:block;height:auto;pointer-events:none;-webkit-user-select:none;user-select:none}.row{display:flex;gap:.5rem;flex-wrap:wrap}.error{color:var(--danger);margin:.5rem 0}.ok{color:var(--ok);margin:.5rem 0}.muted{color:var(--muted)}button.linkish{background:none;border:none;color:var(--accent-deep);cursor:pointer;padding:0;font:inherit;text-decoration:underline}.nested-body,.admin-panel-body,.admin-ops-body{padding-left:1rem}.nested-detail,.admin-panel-detail,.admin-ops-detail{margin:.5rem 0 0;padding-left:1rem}.settings-panel{width:100%;max-width:none}.settings-title{font-family:var(--font-display);margin-top:0;font-size:1.35rem}.members-panel{position:relative;width:100%;max-width:none;padding-bottom:4.5rem}.members-heading{min-width:0;margin-bottom:1rem}.members-heading-row{display:flex;align-items:center;gap:.45rem}.members-title{font-family:var(--font-display);margin:0;font-size:1.35rem;flex:1;min-width:0}.members-roles-help-btn{flex:0 0 auto;opacity:.75}.members-roles-help{margin:0;padding-left:1.15rem;display:flex;flex-direction:column;gap:.65rem}.members-roles-help-note{margin:1rem 0 0}.members-kitchen-name{margin:.25rem 0 0}.members-list{list-style:none;margin:0;padding:0}.members-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;padding:.75rem .65rem;margin:0 -.65rem;border-bottom:1px solid var(--line);border-radius:10px}.members-row.is-self{background:color-mix(in srgb,var(--accent) 10%,transparent);box-shadow:inset 3px 0 0 var(--accent)}.members-row-info{flex:1;min-width:0}.members-row-name{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem .55rem}.members-you-badge{display:inline-block;padding:.1rem .45rem;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.02em;color:var(--accent-deep);background:color-mix(in srgb,var(--accent) 18%,#fff)}.members-owner-badge{display:inline-block;padding:.1rem .45rem;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.02em;color:var(--ink);background:color-mix(in srgb,var(--ink) 8%,#fff);border:1px solid var(--line)}.members-row-meta{display:flex;align-items:center;gap:.35rem;margin-left:auto}.members-role-control{min-width:7.5rem;text-align:left}span.members-role-control{display:inline-flex;align-items:center;min-height:2rem;padding:0 .15rem}.members-expel-btn,.members-expel-slot{flex:0 0 2.25rem;width:2.25rem;height:2.25rem;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}.btn.danger-ghost.members-expel-btn{padding:.3rem;line-height:0;overflow:visible}.members-expel-btn svg{display:block;flex-shrink:0}.members-pending{margin-top:1.5rem}.members-section-title{font-family:var(--font-display);margin:0 0 .65rem;font-size:1.15rem}.members-footer{position:absolute;right:1rem;bottom:1rem;display:flex;justify-content:flex-end;pointer-events:none}.members-footer>*{pointer-events:auto}.members-invite-url{display:block;word-break:break-all;margin-top:.5rem}.settings-subtitle{margin:0 0 1rem}.settings-section{padding:1.1rem 0;border-top:1px solid var(--line)}.settings-section:first-of-type{border-top:none;padding-top:.25rem}.settings-section-title{font-family:var(--font-display);margin:0 0 .65rem;font-size:1.15rem}.settings-legal-links{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;margin-top:.65rem}.settings-legal-link{display:inline;padding:.2rem 0;border:none;background:none;color:var(--accent-deep);font:inherit;font-weight:600;cursor:pointer;text-align:left}.settings-legal-link:hover{text-decoration:underline}.settings-readonly{margin-bottom:1.1rem}.settings-readonly-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .75rem}.settings-readonly-label{font-size:.9rem;font-weight:600}.settings-readonly-value{margin:0;font-size:1.05rem;word-break:break-all}.settings-display-name-input{width:min(100%,18ch);max-width:100%;flex:1 1 auto}.settings-name-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.settings-name-row .settings-display-name-input{width:min(100%,18ch);flex:0 1 auto}.settings-name-row .btn{flex:0 0 auto;white-space:nowrap}.settings-password-block{margin-top:1.15rem}.settings-password-block .btn{margin-top:.35rem}.settings-locale-select{display:inline-block;width:auto;max-width:100%;margin:0 0 .65rem;border:1px solid var(--line);border-radius:12px;padding:.55rem .75rem;background:#fff}.settings-form{margin-top:.25rem}.admin-ops-intro{margin:0 0 .5rem}.admin-ops-row{display:flex;flex-direction:column;gap:.35rem;padding:.85rem 0;border-bottom:1px solid var(--line)}.admin-ops-head{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:.75rem}.admin-ops-head strong{margin:0;min-width:0}.admin-ops-detail{margin:0;padding-left:1rem}.admin-geo-json{margin:.35rem 0 .75rem;padding:.65rem .75rem;max-height:14rem;overflow:auto;font-size:.78rem;line-height:1.35;white-space:pre-wrap;word-break:break-word;border:1px solid var(--line);border-radius:8px;background:#0000000a}.admin-ops-row select{min-width:12rem;max-width:100%;padding:.45rem .6rem;border-radius:10px;border:1px solid var(--line);flex-shrink:0}.admin-ops-message{border-bottom:none}.admin-ops-message .field{margin-bottom:.75rem}.admin-toggle{display:inline-flex;align-items:center;gap:.45rem;font-size:.95rem;white-space:nowrap;flex-shrink:0}.admin-panel textarea{width:100%;margin-top:.35rem;padding:.55rem .75rem;border:1px solid var(--line);border-radius:10px;font:inherit;resize:vertical}.admin-root{padding-bottom:5rem}.admin-main{max-width:900px;margin:0 auto;padding:1.25rem 1rem 0}.admin-panel{margin-bottom:1rem}.admin-panel h2{font-family:var(--font-display);margin-top:0;font-size:1.2rem}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.75rem}.admin-stats div{display:flex;flex-direction:column;gap:.15rem}.admin-stats strong{font-size:1.5rem;font-family:var(--font-display)}.admin-stats span{color:var(--muted);font-size:.85rem}.admin-list{list-style:none;padding:0;margin:.5rem 0 0}.admin-list li{padding:.4rem 0;border-bottom:1px solid var(--line);font-size:.95rem}.admin-contact-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem}.admin-contact-list li{padding:.6rem 0}.admin-contact-list li.is-unseen{border-left:3px solid var(--kn-cta, #ff8c00);padding-left:.5rem}.admin-contact-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.4rem .8rem}.admin-contact-message{margin:.35rem 0;white-space:pre-wrap}.admin-contact-actions{display:flex;flex-wrap:wrap;gap:.35rem}.admin-catalog-table{display:flex;flex-direction:column;margin-top:.65rem;font-size:.9rem;border:1px solid var(--line);border-radius:10px;overflow:auto;background:#fff}.admin-catalog-head,.admin-catalog-row{display:grid;grid-template-columns:4.5rem minmax(8rem,1.6fr) minmax(5rem,.9fr) 3.5rem minmax(8rem,1.1fr);gap:.35rem .65rem;align-items:center;padding:.4rem .65rem;min-width:32rem}.admin-catalog-head{font-weight:600;font-size:.8rem;color:var(--muted);background:#1c211f0a;border-bottom:1px solid var(--line);position:sticky;top:0}.admin-catalog-row{border-bottom:1px solid rgba(0,0,0,.06)}.admin-catalog-row:last-child{border-bottom:none}.admin-catalog-row:nth-child(2n){background:#1c211f05}.admin-catalog-head>:first-child,.admin-catalog-row>:first-child{text-align:right}.admin-catalog-count{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.admin-catalog-name{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-search{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0 1rem}.admin-search input,.admin-search select{flex:1 1 220px;min-width:0;padding:.55rem .75rem;border:1px solid var(--line);border-radius:10px}.admin-search select{flex:0 1 180px}.admin-sort{display:contents}.admin-section-title{font-family:var(--font-display);font-size:1.35rem;margin:0 0 .75rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.admin-uid{font-family:ui-monospace,monospace;font-size:.8rem;word-break:break-all}.admin-window-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0 1rem}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.week-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:space-between;margin-bottom:1rem}.week-nav{flex-wrap:nowrap;gap:.35rem;max-width:100%}.week-nav .btn{flex:1 1 auto;min-width:0;padding:.5rem .55rem;font-size:.82rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media(min-width:700px){.week-nav .btn{flex:0 0 auto;padding:.65rem 1.1rem;font-size:inherit}}.week-grid{display:grid;gap:.75rem}@media(min-width:900px){.week-grid{grid-template-columns:repeat(7,minmax(0,1fr))}}.day-col{border:1px solid var(--line);border-radius:14px;padding:.65rem;background:#ffffff8c;min-height:140px}.day-col.day-past{background:#b4b4b947;border-color:#a0a0a88c}.day-col.day-past h3{color:#8a8a92}.day-col.day-today{background:#ffffff8c;border-color:var(--ok);box-shadow:inset 0 0 0 1px #27ae603d}.day-col.day-today h3{color:var(--ok);font-weight:700}.day-col h3{margin:0 0 .5rem;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.meal-block{margin-bottom:.65rem;border-radius:10px;padding:.2rem;transition:background .15s ease,outline .15s ease}.meal-block.droppable.drag-over{background:#e07a3d1f;outline:2px dashed var(--accent)}.meal-block h4{margin:0 .2rem .4rem;font-size:.78rem;color:var(--ink)}.meal-block-title{display:flex;align-items:center;gap:.35rem;box-sizing:border-box;width:calc(100% - .4rem);padding:.22rem .45rem;border-radius:8px;background:color-mix(in srgb,var(--ink) 9%,var(--kn-surface, #fff));line-height:1.2}.meal-block-title svg{flex:0 0 auto;opacity:.9}.meal-add-dish{display:flex;align-items:center;justify-content:center;width:100%;min-height:2.5rem;margin-top:.25rem;padding:.35rem;font-size:1.75rem;font-weight:300;line-height:1;color:var(--muted)}.meal-add-dish:hover{color:var(--accent)}.dish-card{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.45rem;padding:.45rem .5rem;font-size:.92rem;border:1px solid var(--line);border-radius:10px;background:#ffffffb8;transition:color .2s ease,opacity .15s ease,background .15s ease}.dish-card.draggable{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.dish-card.draggable:active{cursor:grabbing;background:#e07a3d14;border-color:#e07a3d73;box-shadow:inset 0 0 0 1px #e07a3d33}.dish-card.dragging{opacity:.45;background:#e07a3d2e;border-color:#e07a3dcc;box-shadow:inset 0 0 0 2px #e07a3d8c}.dish-card.draggable:active.needs,.dish-card.draggable:active.ok,.dish-card.dragging.needs,.dish-card.dragging.ok{background:color-mix(in srgb,var(--kn-cta) 20%,transparent);border-color:color-mix(in srgb,var(--kn-cta) 85%,transparent)}.dish-card.long-press-ready{background:color-mix(in srgb,var(--kn-cta) 24%,transparent);border-color:color-mix(in srgb,var(--kn-cta) 95%,transparent);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--kn-cta) 70%,transparent),0 0 0 2px color-mix(in srgb,var(--kn-cta) 24%,transparent)}.dish-card.needs{color:var(--danger);font-weight:600;border-color:#c0392b47}.dish-card.ok{color:var(--ok);border-color:#2d6a4f47}.dish-card-main{display:flex;align-items:flex-start;gap:.4rem}.dish-card .status-icon{flex:0 0 auto;width:1rem;height:1rem;margin-top:.15rem}@media(min-width:900px){.dish-card-main{flex-direction:column;align-items:center;gap:.28rem}.dish-card .status-icon{margin-top:0}.dish-card .dish-label{width:100%;text-align:center}.dish-card-actions{justify-content:center;padding-left:0}}.dish-card .dish-label{flex:1;min-width:0;line-height:1.25;word-break:break-word}.dish-card-actions{display:flex;flex-wrap:wrap;gap:.35rem;padding-left:.5rem;flex-shrink:0}@media(min-width:900px){.dish-card-actions{padding-left:0;gap:.25rem}}.dish-card-actions .icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:clamp(1.6rem,4vw,2.5rem);min-height:clamp(1.6rem,4vw,2.5rem);padding:.4rem;font-size:1.25rem;line-height:1;border-radius:10px;background:#1c211f0f;opacity:1}@media(max-width:699px){.dish-card-actions .icon-btn{min-width:clamp(1.8rem,5vw,2.85rem);min-height:clamp(1.8rem,5vw,2.85rem)}}.dish{display:flex;align-items:flex-start;gap:.35rem;padding:.35rem .25rem;font-size:.92rem;transition:color .2s ease,opacity .15s ease,background .15s ease;border-radius:8px}.dish.draggable{cursor:grab}.dish.draggable:active{cursor:grabbing}.dish.dragging{opacity:.45}.dish.needs{color:var(--danger);font-weight:600}.dish.ok{color:var(--ok)}.dish .cart,.dish .cart-spacer,.dish .status-icon{flex:0 0 auto;width:1rem;height:1rem;margin-top:.15rem}.dish .cart-spacer{visibility:hidden}.dish .dish-label{flex:1;min-width:0}.dish .actions{margin-left:auto;display:flex;gap:.25rem}.menu-edit-toggle{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:999px;border:1px solid var(--line);background:#ffffffa6;opacity:1;color:var(--ink)}.menu-edit-toggle.is-locked{background:var(--accent);border-color:var(--accent);color:#fff}.menu-edit-fab{position:fixed;right:max(.85rem,env(safe-area-inset-right,0px));bottom:max(.85rem,env(safe-area-inset-bottom,0px));z-index:200;width:3.1rem;height:3.1rem;margin:0;padding:0;background:#fff;box-shadow:var(--shadow);opacity:1}.menu-edit-fab.is-locked{background:var(--accent);border-color:var(--accent);color:#fff}.menu-edit-fab .menu-edit-icon{width:1.75rem;height:1.75rem}.menu-edit-icon{width:1.55rem;height:1.55rem;display:block}.menu-edit-icon--chef{background-color:currentColor;-webkit-mask:var(--chef-edit-icon) center / contain no-repeat;mask:var(--chef-edit-icon) center / contain no-repeat}.dish-edit-form{display:flex;flex-direction:column;min-height:0;flex:1 1 auto;overflow:hidden}.dish-edit-form>*:not(.ingredient-list){flex-shrink:0}.ingredient-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-bottom:.5rem}.ingredient-row--purchased{opacity:.55;color:var(--muted)}.ingredient-row--purchased .ingredient-view{background:#0000000a}.ingredient-view{display:flex;flex:1;gap:.75rem;align-items:center;min-width:0;padding:.65rem .8rem;border:1px solid var(--line);border-radius:12px;background:#fff}.ingredient-view--editable{cursor:text}.ingredient-view--editable:hover{border-color:#2d6a4f73}.ingredient-view-name{flex:2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ingredient-view-name.shopping-product-name{display:inline-flex;overflow:visible;text-overflow:unset;white-space:normal}.ingredient-view-qty{width:4rem;text-align:right;flex-shrink:0}.ingredient-view-unit{width:7rem;flex-shrink:0}.dish-name-heading{font-weight:600;margin:0 0 .5rem}.dish-name-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.dish-name-view{flex:1;min-width:0;padding:.65rem .8rem;border:1px solid var(--line);border-radius:12px;background:#fff}.dish-name-view--editable{cursor:text}.dish-name-view--editable:hover{border-color:#2d6a4f73}.dish-name-view .shopping-product-name{max-width:100%}.dish-name-view>span:not(.shopping-product-name){display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dish-card .dish-label .shopping-product-name{max-width:100%}@media(min-width:900px){.dish-card .dish-label .shopping-product-name{justify-content:center}}.dish-card .dish-label .catalog-chip--dish{display:inline;max-width:none;padding:0;border:none;border-radius:0;background:none;color:inherit;font-weight:700;line-height:inherit}.dish-card .dish-label .catalog-chip__label{white-space:normal;overflow:visible;text-overflow:unset}.dish-card .dish-label .shopping-product-suffix{font-weight:400}.dish-name-input{flex:1;min-width:0}.qty-input__field{width:5.25rem;text-align:right;border:1px solid var(--line);border-radius:12px;padding:.45rem .4rem;background:#fff}.qty-input{display:inline-flex;align-items:center;gap:.15rem;flex-shrink:0}.qty-input__step{flex-shrink:0;align-self:stretch;width:1.6rem;min-height:1.85rem;padding:0;border:1px solid var(--line);border-radius:8px;background:#fff;color:inherit;font:inherit;line-height:1;cursor:pointer}.qty-input__step:hover,.qty-input__step:focus-visible{border-color:var(--accent)}.qty-input__step:disabled{opacity:.45;cursor:not-allowed}.qty-input__step:disabled:hover,.qty-input__step:disabled:focus-visible{border-color:var(--line)}.ingredient-edit-toggle{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:999px;border:1px solid var(--line);background:#ffffffa6;opacity:1;color:var(--ink);flex-shrink:0}.ingredient-edit-toggle.is-editing{background:var(--accent);border-color:var(--accent);color:#fff}.ingredient-edit-toggle .menu-edit-icon{width:1.2rem;height:1.2rem}.ingredient-delete{flex-shrink:0;font-size:1rem;line-height:1}.ingredient-delete-summary{margin:.75rem 0 0;display:grid;gap:.5rem}.ingredient-delete-summary div{display:grid;grid-template-columns:6rem 1fr;gap:.5rem}.ingredient-delete-summary dt{margin:0;color:var(--muted);font-weight:500}.ingredient-list{overflow-y:auto;overscroll-behavior:contain;min-height:0;max-height:calc(6 * 3.2rem)}.ingredient-delete-summary dd{margin:0;font-weight:600}.qty-unset{font-weight:700;color:var(--kn-danger, #ba1a1a)}.qty-split{display:inline;white-space:nowrap}.qty-sep{font-size:1em}.qty-dec{font-size:.8em}.qty-input__field--split{cursor:text;font:inherit;color:inherit;min-width:4.5rem}.qty-input__field--split:hover,.qty-input__field--split:focus-visible{border-color:var(--accent)}.qty-unset-input::placeholder{color:var(--kn-danger, #ba1a1a);font-weight:700;opacity:1}.recommended-open{flex-shrink:0;align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;width:auto;min-height:2.25rem;margin:.15rem 0 .85rem;padding:.35rem .75rem .35rem .5rem;border:none;border-radius:10px;background:var(--kn-cta);color:var(--kn-on-cta);font:inherit;font-weight:600;font-size:.92rem;line-height:1.2;cursor:pointer;opacity:1}.recommended-open:hover,.recommended-open:focus-visible{opacity:1;background:var(--kn-primary);color:#fff}.recommended-hint{margin:0 0 .75rem}.recommended-urls{min-width:0;margin:0}.recommended-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:0 0 .75rem}.recommended-toolbar .recommended-urls{flex:1 1 auto;min-width:0}.recommended-toolbar.is-open{flex-direction:column;align-items:stretch;margin-bottom:.35rem}.recommended-mark-all{flex-shrink:0;margin:0 0 0 auto;align-self:center}.recommended-toolbar.is-open .recommended-mark-all{margin:.35rem 0 0 auto;align-self:flex-end}.recommended-urls summary{cursor:pointer;font-weight:600}.recommended-urls-list{list-style:none;margin:.45rem 0 0;padding:0;max-height:9rem;overflow-y:auto}.recommended-urls-list a{display:flex;align-items:center;gap:.45rem;min-width:0;overflow:hidden;padding:.4rem .25rem;color:inherit;text-decoration:none}.recommended-urls-list a span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recommended-urls-list a:hover{color:var(--accent-deep)}.recommended-urls-list a svg,.recommended-urls-icon{flex:0 0 16px;width:16px;height:16px;min-width:16px;min-height:16px;display:block}.recommended-modal-body{display:flex;flex-direction:column;min-height:0;flex:1 1 auto;overflow:hidden}.recommended-modal-body>*:not(.recommended-list){flex-shrink:0}.recommended-list{list-style:none;margin:0;padding:0;min-height:0;max-height:calc(6 * 3.2rem);overflow-y:auto;overscroll-behavior:contain}.recommended-list>li{margin:0 0 .5rem;padding:0}.recommended-row{display:flex;align-items:center;gap:.5rem;box-sizing:border-box;width:100%;margin:0;padding:.65rem .8rem;border:1px solid var(--line);border-radius:12px;background:#fff;font:inherit;color:inherit;text-align:left;-webkit-appearance:none;-moz-appearance:none;appearance:none}button.recommended-row{cursor:pointer}button.recommended-row:hover,button.recommended-row:focus-visible{border-color:var(--accent-deep, var(--accent))}.recommended-row--marked{background:color-mix(in srgb,var(--accent) 12%,#fff)}.recommended-row__name{flex:2;min-width:0;font-weight:600}.recommended-row__group{flex:1;min-width:0;color:var(--muted);font-size:.9rem}.recommended-row__locked{flex-shrink:0;color:var(--muted);font-size:.85rem}.recommended-row__toggle{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;font-size:1.2rem;line-height:1}.shopping-week{margin-bottom:1.25rem}.shopping-week h3{margin:0 0 .5rem;font-family:var(--font-display);font-size:1.1rem}.checklist{list-style:none;margin:0;padding:0}.checklist li{display:flex;flex-direction:column;align-items:stretch;gap:.35rem;padding:.75rem 0;border-bottom:1px solid var(--line);animation:fadeIn .35s ease both}.shopping-item-row{display:flex;align-items:center;gap:.75rem;width:100%}.checklist li.bought .shopping-item-label,.checklist li.bought span{text-decoration:line-through;color:var(--muted);transition:color .25s ease}.checklist input[type=checkbox]{width:1.2rem;height:1.2rem;accent-color:var(--ok)}.checklist input[type=checkbox]:disabled{cursor:not-allowed}.checklist input[type=checkbox].is-pending{pointer-events:none;cursor:not-allowed}.shopping-toggle-error{margin:0 0 .75rem;font-size:.9rem}.shopping-others{margin-top:1rem}.shopping-others h4{margin:0 0 .35rem;font-family:var(--font-display);font-size:1rem;color:var(--muted)}.shopping-item-label{flex:1;min-width:0}.shopping-expand{flex:0 0 auto;margin-left:0;font-size:.85rem;line-height:1;color:var(--muted)}.shopping-manual-actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0;margin-left:.25rem}.shopping-qty-edit-name{font-weight:600;margin:0 0 .75rem}.shopping-past-warn{flex:0 0 auto;margin-left:auto;color:#c47a1a;font-size:1rem;line-height:1}.shopping-past-warn-copy{display:flex;flex-direction:column;gap:.55rem}.shopping-past-warn-row{margin:0;line-height:1.4}.shopping-past-warn-label,.shopping-past-warn-cooked{color:var(--muted)}.shopping-past-warn-value{color:var(--ink);font-weight:400}.shopping-past-warn-cooked{margin:.35rem 0 0;line-height:1.4}.shopping-past-warn-howto{margin:0;font-size:.85rem;line-height:1.35;color:var(--muted)}.shopping-past-warn-dish{margin:0 0 .35rem;font-weight:600}.shopping-past-warn--static{display:inline-flex;align-items:center;justify-content:center;min-width:1.75rem;min-height:1.75rem;pointer-events:none;-webkit-user-select:none;user-select:none}.shopping-item-row .shopping-expand{margin-left:0}.shopping-item-row .shopping-past-warn+.shopping-expand{margin-left:0}.shopping-item-row:not(:has(.shopping-past-warn)) .shopping-expand{margin-left:auto}.shopping-sources{list-style:none;margin:0 0 0 2rem;padding:.15rem 0 .25rem}.shopping-sources li{display:block;padding:.2rem 0;border:none;font-size:.85rem;color:var(--muted);animation:none}.shopping-source-row{display:flex!important;flex-direction:row!important;align-items:center;gap:.35rem}.shopping-source-row>span{flex:1;min-width:0}.shopping-source-row .shopping-past-warn{margin-left:.25rem;font-size:.9rem;min-width:1.75rem;min-height:1.75rem}.shopping-remove{flex:0 0 auto;margin-left:auto;font-size:1rem;min-width:2rem;min-height:2rem}.shopping-panel{position:relative;display:flex;flex-direction:column;max-height:calc(100dvh - 18rem);padding-bottom:.85rem;overflow:hidden}.shopping-panel>.week-toolbar,.shopping-panel>.shopping-bulk-toggle,.shopping-panel>.shopping-toggle-error,.shopping-panel>.shopping-footer{flex-shrink:0}.shopping-list-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:.15rem}.shopping-bulk-toggle{display:inline-flex;align-items:center;gap:.45rem;align-self:flex-start;margin:0 0 .7rem;padding:.25rem .1rem;border:none;background:none;color:var(--ink);font:inherit;font-weight:600;cursor:pointer}.shopping-bulk-toggle svg{flex:0 0 auto}.shopping-bulk-toggle.is-locked,.shopping-bulk-toggle:disabled{color:var(--muted);cursor:not-allowed;pointer-events:none}.shopping-bulk-toggle.is-locked svg,.shopping-bulk-toggle:disabled svg{color:#9aa0a6;opacity:.55}.shopping-title{font-family:var(--font-display);margin:0;font-size:1.35rem}.shopping-view-toggles{display:flex;align-items:center;gap:.45rem;margin:0;flex-shrink:0}.shopping-view-toggle{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:999px;border:1px solid var(--line);background:#ffffffa6;opacity:1;color:var(--ink)}.shopping-view-toggle.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.shopping-footer{position:relative;left:auto;right:auto;bottom:auto;flex:0 0 auto;margin-top:.65rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;pointer-events:none}.shopping-footer>*{pointer-events:auto}.shopping-footer-spacer{flex:1;min-width:0}.shopping-archive-btn{height:3.25rem;margin:0;padding:0 1.1rem;border:1px solid var(--line);border-radius:999px;background:#ffffffeb;color:var(--ink);font:inherit;font-size:.92rem;font-weight:600;cursor:pointer;box-shadow:0 8px 20px #0a14101f;max-width:calc(100% - 4.25rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .15s ease,border-color .15s ease}.shopping-archive-btn:hover{background:#fff;border-color:var(--accent)}.shopping-fab{position:static;flex:0 0 auto;margin-left:auto;width:3.25rem;height:3.25rem;border:none;border-radius:999px;background:var(--accent);color:#fff;font-size:2rem;font-weight:400;line-height:1;cursor:pointer;box-shadow:0 10px 24px #c45d2259;display:inline-flex;align-items:center;justify-content:center;transition:transform .15s ease,background .15s ease}.shopping-fab:hover{background:var(--accent-deep);transform:translateY(-1px)}.shopping-add-row{align-items:flex-end}.shopping-qty-field{flex:0 0 auto}.shopping-tickets-panel{margin-top:1.25rem}.shopping-tickets-toggle{display:flex;align-items:center;width:100%;margin:0;padding:0;border:none;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.shopping-tickets-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}.shopping-tickets-toggle-title{display:flex;align-items:center;gap:.55rem;margin:0}.shopping-tickets-toggle-title:before{content:"";display:inline-block;width:.45rem;height:.45rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .15s ease;flex-shrink:0}.shopping-tickets-toggle.is-open .shopping-tickets-toggle-title:before{transform:rotate(45deg)}.shopping-tickets-body{margin-top:.75rem}.shopping-tickets-table{display:flex;flex-direction:column;gap:.15rem;font-size:.88rem}.shopping-tickets-head,.shopping-tickets-row{display:grid;grid-template-columns:minmax(7rem,1.6fr) .7fr .6fr .8fr 2.5rem;gap:.4rem;align-items:center;padding:.45rem .15rem}.shopping-tickets-head{font-weight:600;border-bottom:1px solid var(--line);color:var(--muted)}.shopping-tickets-row{border-bottom:1px solid rgba(0,0,0,.06)}.shopping-tickets-actions{text-align:right}.shopping-tickets-pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.75rem 1rem;margin-top:.85rem}.shopping-tickets-spend-stats{margin-top:.85rem;padding-top:.75rem;border-top:1px solid rgba(0,0,0,.06);font-size:.92rem}.shopping-tickets-spend-stats p{margin:.25rem 0}.shopping-tickets-spend-link-wrap{margin-top:.55rem!important}.shopping-spend-panel{margin-bottom:1.5rem}.shopping-spend-header{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-bottom:1rem}.shopping-spend-header .shopping-title{margin:0}.shopping-spend-presets{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.75rem}.shopping-spend-range{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.65rem .85rem;margin-bottom:.75rem}.shopping-spend-range .field{margin-bottom:0;min-width:9rem}.shopping-spend-period-block{margin-bottom:1.25rem}.shopping-spend-period-caption{margin:0;padding-top:.7rem;border-top:1px solid var(--kn-line, #ddc1ae);color:var(--muted);font-size:.88rem}.shopping-spend-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:.75rem;margin-bottom:1.5rem}.shopping-spend-kpis.is-loading{opacity:.65;transition:opacity .15s ease}.shopping-spend-kpi{padding:.85rem 1rem;border-radius:var(--kn-radius-sm, .75rem);background:var(--kn-surface-low, #edf4ff);border:1px solid color-mix(in srgb,var(--kn-line, #ddc1ae) 40%,transparent)}.shopping-spend-kpi-zero{background:color-mix(in srgb,var(--kn-cta, #ff8c00) 10%,var(--kn-surface, #fff))}.shopping-spend-kpi-label{display:block;font-size:.82rem;color:var(--muted);margin-bottom:.25rem}.shopping-spend-kpi-value{font-family:var(--font-display);font-size:1.35rem;color:var(--ink)}.shopping-spend-section{margin-top:1.35rem}.shopping-spend-series-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;margin-bottom:.75rem}.shopping-spend-series-head h3{margin:0}.shopping-spend-line-max{stroke:color-mix(in srgb,var(--kn-primary, #904d00) 45%,transparent);stroke-width:1;stroke-dasharray:4 3}.shopping-spend-line-max-label{fill:var(--kn-primary, #904d00);font-size:9px;font-family:var(--font-body);font-weight:600}.shopping-spend-section h3{font-family:var(--font-display);font-size:1.15rem}.shopping-spend-empty{margin:0}.shopping-spend-bars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.65rem}.shopping-spend-bar-meta{display:flex;justify-content:space-between;gap:.75rem;font-size:.92rem;margin-bottom:.25rem}.shopping-spend-bar-name{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shopping-spend-bar-track{height:.65rem;border-radius:999px;background:var(--kn-surface-container, #e3efff);overflow:hidden}.shopping-spend-bar-fill{height:100%;border-radius:inherit;background:var(--accent)}.shopping-spend-line-wrap{display:flex;flex-direction:column;gap:.75rem}.shopping-spend-line-plot{position:relative;width:100%;max-width:36rem}@media(orientation:landscape){.shopping-spend-line-plot{max-width:none}}.shopping-spend-line-svg{width:100%;height:auto;display:block;touch-action:none}.shopping-spend-line-area{fill:color-mix(in srgb,var(--kn-cta, #ff8c00) 18%,transparent)}.shopping-spend-line-path{stroke:var(--kn-primary, #904d00);stroke-width:2}.shopping-spend-line-axis{stroke:color-mix(in srgb,var(--kn-line, #ddc1ae) 70%,transparent);stroke-width:1}.shopping-spend-line-tick{fill:var(--muted);font-size:9px;font-family:var(--font-body)}.shopping-spend-line-dot{fill:var(--accent);pointer-events:none}.shopping-spend-line-dot.is-active{fill:var(--kn-primary, #904d00)}.shopping-spend-line-tip{position:absolute;z-index:2;transform:translate(-50%,calc(-100% - .55rem));min-width:5.5rem;padding:.4rem .55rem;border-radius:8px;border:1px solid var(--kn-line, #ddc1ae);background:var(--kn-surface, #fff);box-shadow:0 4px 14px #00000014;pointer-events:none;text-align:center}.shopping-spend-line-tip.is-below{transform:translate(-50%,.55rem)}.shopping-spend-line-tip.is-start{transform:translateY(calc(-100% - .55rem))}.shopping-spend-line-tip.is-end{transform:translate(-100%,calc(-100% - .55rem))}.shopping-spend-line-tip.is-below.is-start{transform:translateY(.55rem)}.shopping-spend-line-tip.is-below.is-end{transform:translate(-100%,.55rem)}.shopping-spend-line-tip-date{display:block;font-size:.75rem;color:var(--muted);margin-bottom:.1rem}.shopping-spend-line-tip-amt{display:block;font-size:.92rem;font-variant-numeric:tabular-nums;color:var(--ink)}.shopping-spend-line-legend{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr));gap:.35rem .75rem;font-size:.85rem}.shopping-spend-line-legend li{display:flex;justify-content:space-between;gap:.5rem;padding:.25rem 0;border-bottom:1px solid var(--line)}.shopping-spend-stack-legend{list-style:none;margin:0 0 .85rem;padding:0;display:flex;flex-wrap:wrap;gap:.45rem 1rem;font-size:.85rem}.shopping-spend-stack-legend li{display:inline-flex;align-items:center;gap:.4rem}.shopping-spend-stack-swatch{width:.75rem;height:.75rem;border-radius:2px;flex-shrink:0}.shopping-spend-stack-legend-amt{color:var(--muted, #6b7280);font-variant-numeric:tabular-nums}.shopping-spend-stack-plot{position:relative}.shopping-spend-stack-chart{display:flex;align-items:flex-end;gap:.4rem;min-height:12rem;overflow-x:auto;padding-bottom:.25rem}.shopping-spend-stack-col{flex:1 1 2.5rem;min-width:2.4rem;max-width:4.5rem;display:flex;flex-direction:column;align-items:center;gap:.25rem;height:12rem}.shopping-spend-stack-col.is-tip .shopping-spend-stack-col-bar{outline:2px solid color-mix(in srgb,var(--kn-primary, #904d00) 50%,transparent)}.shopping-spend-stack-col-bar{width:70%;max-width:2.25rem;margin-top:auto;display:flex;flex-direction:column-reverse;border-radius:4px 4px 2px 2px;overflow:hidden;min-height:0;background:color-mix(in srgb,var(--line) 55%,transparent)}.shopping-spend-stack-seg{width:100%;min-height:2px;flex-basis:0;pointer-events:none}.shopping-spend-stack-col-label{font-size:.72rem;color:var(--muted, #6b7280);text-align:center;line-height:1.15}.shopping-spend-stack-col.is-current .shopping-spend-stack-col-label{color:var(--ink);font-weight:600}.shopping-spend-stack-col-total{font-size:.72rem;font-variant-numeric:tabular-nums;text-align:center;line-height:1.15}.shopping-spend-stack-tip{position:absolute;z-index:20;transform:translate(-50%,calc(-100% - .45rem));min-width:8.5rem;max-width:16rem;padding:.45rem .6rem;border-radius:8px;border:1px solid var(--kn-line, #ddc1ae);background:var(--kn-surface, #fff);box-shadow:0 4px 14px #00000014;pointer-events:none;text-align:left}.shopping-spend-stack-tip.is-below{transform:translate(-50%,.45rem)}.shopping-spend-stack-tip-date{display:block;font-size:.75rem;color:var(--muted);margin-bottom:.3rem}.shopping-spend-stack-tip-row{display:flex;align-items:center;gap:.35rem;font-size:.8rem;line-height:1.35}.shopping-spend-stack-tip-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shopping-spend-stack-tip-amt{margin-left:auto;font-variant-numeric:tabular-nums;white-space:nowrap}.shopping-ticket-detail-head{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.35rem;font-weight:600}.shopping-ticket-detail-amount{white-space:nowrap}.shopping-ticket-saved-by{margin:0 0 .75rem;font-size:.92rem}.shopping-ticket-lines{list-style:none;margin:0;padding:0}.shopping-ticket-lines li{padding:.35rem 0;border-bottom:1px solid var(--line);font-size:.92rem;display:flex;flex-wrap:wrap;align-items:center;gap:.15rem .25rem}.shopping-ticket-photo-actions{display:flex;flex-wrap:wrap;gap:.5rem}.shopping-ticket-photo-pick{position:relative;display:inline-flex;align-items:center;justify-content:center;margin:0;cursor:pointer}.shopping-ticket-photo-pick input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;width:100%;height:100%;cursor:pointer}.shopping-ticket-photo-pick.is-disabled{opacity:.55;pointer-events:none}.shopping-ticket-photo-drafts,.shopping-ticket-photo-grid{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}.shopping-ticket-photo-drafts li,.shopping-ticket-photo-grid li{position:relative;width:5.5rem}.shopping-ticket-photo-drafts img,.shopping-ticket-photo-grid img{display:block;width:5.5rem;height:5.5rem;object-fit:cover;border-radius:10px;border:1px solid var(--line);background:#fff}.shopping-ticket-photo-drafts .btn,.shopping-ticket-photo-grid .btn{margin-top:.25rem;width:100%;padding:.25rem .4rem;font-size:.8rem}.shopping-ticket-photos{margin-top:.85rem}.shopping-ticket-photos-title{margin:0 0 .5rem;font-size:.95rem}.shopping-ticket-notes-count{display:block;font-size:.8rem;margin-top:.2rem}.shopping-ticket-notes-meta{display:flex;justify-content:space-between;gap:.75rem;font-size:.8rem;margin-top:.2rem}.shopping-ticket-notes-field{margin-top:.85rem}.shopping-ticket-notes-input{min-height:5.5rem;resize:vertical}.shopping-ticket-locked{margin:.35rem 0 .75rem;font-size:.88rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#091d2e66;display:flex;align-items:flex-start;justify-content:center;padding:max(.75rem,env(safe-area-inset-top,0px)) 1rem max(1.5rem,env(safe-area-inset-bottom,0px));z-index:1000;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.modal{width:min(480px,100%);max-height:none;overflow:visible;background:var(--surface);border:1px solid color-mix(in srgb,var(--kn-line) 35%,transparent);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--kn-shadow);animation:rise .3s ease both;margin:0;flex-shrink:0}.modal.modal--pin-list{display:flex;flex-direction:column;width:min(580px,100%);max-height:min(90dvh,90vh);overflow:hidden}.modal.modal--pin-list>h3{flex-shrink:0}@media(min-width:700px){.modal-backdrop{align-items:safe center;padding:1.5rem}.modal{max-height:min(90dvh,90vh);overflow-y:auto}.modal.modal--pin-list,.modal.modal--legal{overflow:hidden}}.modal.modal--legal{position:relative;display:flex;flex-direction:column;width:min(42rem,100%);max-height:min(90dvh,90vh);overflow:hidden;padding:0}.modal.modal--legal .modal-scroll{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:2.85rem 1.25rem 1.25rem}.modal-close{position:absolute;top:.45rem;right:.45rem;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:2.35rem;height:2.35rem;padding:0;border:1px solid color-mix(in srgb,var(--kn-line) 85%,var(--kn-ink));border-radius:999px;background:var(--kn-surface);color:var(--ink);cursor:pointer}.modal-close:hover,.modal-close:focus-visible{background:var(--kn-surface-low)}.modal-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:699px){.modal.modal--legal{width:100%}}@media(max-width:699px)and (orientation:portrait){.modal-backdrop:has(.modal--dish-edit){padding-left:max(.35rem,env(safe-area-inset-left,0px));padding-right:max(.35rem,env(safe-area-inset-right,0px))}.modal.modal--dish-edit{width:100%}}.suggest-wrap{position:relative}.suggest-wrap input{width:100%;border:1px solid var(--line);border-radius:12px;padding:.65rem .8rem;background:#fff}.suggest-list{position:absolute;z-index:5;left:0;right:0;top:calc(100% + 2px);margin:0;padding:.25rem 0;list-style:none;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);max-height:180px;overflow:auto}.suggest-list button{display:block;width:100%;text-align:left;border:none;background:transparent;padding:.45rem .75rem;cursor:pointer}.suggest-list button:hover{background:#e07a3d1f}.catalog-input{position:relative;background:#fff;border-radius:12px}.catalog-input--token{background:transparent}.catalog-input input{position:relative;z-index:1;background:transparent}.catalog-input--token .catalog-input__token-row{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem .45rem;min-height:2.75rem;padding:.35rem .55rem;border:1px solid var(--line);border-radius:12px;background:#fff}.catalog-input--token .catalog-input__suffix{flex:1 1 6rem;min-width:4rem;margin:0;padding:.25rem .15rem;border:none;border-radius:0;background:transparent;box-shadow:none}.catalog-input--token .catalog-input__suffix:focus{outline:none}.field .catalog-input--token .catalog-input__suffix{border:none;border-radius:0;padding:.25rem .15rem;background:transparent}.catalog-chip{display:inline-flex;align-items:center;gap:.2rem;max-width:100%;padding:.2rem .2rem .2rem .55rem;border:1.5px solid var(--muted);border-radius:999px;background:color-mix(in srgb,var(--bg) 88%,#fff);color:var(--ink);font-size:.92rem;font-weight:600;line-height:1.2}.catalog-chip__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-chip__clear{flex:0 0 auto;width:1.35rem;height:1.35rem;margin:0;padding:0;border:none;border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-size:1rem;line-height:1;cursor:pointer}.catalog-chip--readonly{padding-right:.55rem;cursor:default}.catalog-chip--dish{border-color:var(--ink);font-weight:600}.shopping-product-name{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.25rem .35rem;vertical-align:middle}.shopping-product-suffix{font-weight:500}.catalog-input__ghost{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;display:flex;align-items:center;padding:.65rem .8rem;border:1px solid transparent;border-radius:12px;background:#fff;font:inherit;white-space:pre;overflow:hidden;pointer-events:none}.catalog-input__ghost-typed{color:transparent}.catalog-input__ghost-rest{color:var(--muted);opacity:.7}.catalog-suggest-list{position:fixed;z-index:1100;right:auto;width:max-content;max-width:min(32rem,calc(100vw - 2rem));overflow:auto}.catalog-suggest-list button{display:flex;gap:.75rem;align-items:baseline;justify-content:space-between;white-space:nowrap}.catalog-suggest-list button.is-active{background:#e07a3d29}.catalog-suggest-list .suggest-group{flex:0 0 auto;font-size:.78rem;color:var(--muted)}.btn{cursor:pointer}.onboarding-overlay{position:fixed;inset:auto 0 0;z-index:1200;pointer-events:none;display:flex;justify-content:center;padding:0 .75rem calc(5.5rem + env(safe-area-inset-bottom,0px))}body.onboarding-open .app-shell{padding-bottom:16rem}.onboarding-card{pointer-events:auto;width:min(42rem,100%);max-height:min(42vh,22rem);overflow:auto;background:var(--surface);border:1px solid color-mix(in srgb,var(--kn-line) 35%,transparent);border-radius:var(--radius);box-shadow:var(--kn-shadow);padding:.75rem 1rem .85rem;transition:opacity .35s ease}.onboarding-card--peek{opacity:0;pointer-events:none}.onboarding-stepper{display:flex;gap:.35rem;list-style:none;margin:0 0 .75rem;padding:0}.onboarding-stepper li{flex:1;height:.35rem;border-radius:99px;background:color-mix(in srgb,var(--kn-line) 35%,transparent)}.onboarding-stepper li.is-done{background:var(--kn-cta)}.onboarding-card-main{display:flex;align-items:flex-end;gap:.75rem}.onboarding-mascot{width:min(32%,8.5rem);height:auto;max-height:7.5rem;object-fit:contain;flex-shrink:0;pointer-events:none}.onboarding-copy{min-width:0;flex:1}.onboarding-kicker{margin:0 0 .2rem;font-size:.75rem;color:var(--muted)}.onboarding-copy h2{margin:0 0 .4rem;font-family:var(--font-display);font-size:1.2rem;line-height:1.2}.onboarding-copy p{margin:0 0 .5rem;font-size:.92rem;line-height:1.4}.onboarding-body{white-space:pre-line}.onboarding-replay-hint{color:var(--muted);font-size:.82rem!important;margin:.15rem 0 .35rem!important;white-space:pre-line}.onboarding-next-nudge{animation:onboarding-next-heartbeat 1s cubic-bezier(.22,.61,.36,1) infinite;transform-origin:center;transition:background .15s ease,color .15s ease}@keyframes onboarding-next-heartbeat{0%{transform:scale(1);filter:brightness(1);box-shadow:0 0 color-mix(in srgb,var(--kn-cta) 0%,transparent)}12%{transform:scale(1.16);filter:brightness(1.42);box-shadow:0 0 0 10px color-mix(in srgb,var(--kn-cta) 55%,transparent)}24%{transform:scale(1);filter:brightness(1.08);box-shadow:0 0 0 3px color-mix(in srgb,var(--kn-cta) 22%,transparent)}36%{transform:scale(1.1);filter:brightness(1.28);box-shadow:0 0 0 7px color-mix(in srgb,var(--kn-cta) 40%,transparent)}50%,to{transform:scale(1);filter:brightness(1);box-shadow:0 0 color-mix(in srgb,var(--kn-cta) 0%,transparent)}}@media(prefers-reduced-motion:reduce){.onboarding-card{transition:none}.onboarding-next-nudge{animation:none;outline:2px solid var(--kn-cta);outline-offset:3px}}.onboarding-type-demo{margin:.35rem 0 .2rem;pointer-events:none}.onboarding-actions{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-top:.75rem;flex-wrap:wrap}.onboarding-actions-end{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end;margin-left:auto}.onboarding-overlay--live{z-index:1200}.onboarding-overlay--live .onboarding-card{max-height:none;padding:.55rem .85rem .6rem}.onboarding-overlay--live .onboarding-card-main{align-items:center}.onboarding-overlay--live .onboarding-copy h2{font-size:1.05rem;margin-bottom:.15rem}.onboarding-live-thumb{width:3.6rem;height:3.6rem;object-fit:cover;border-radius:10px;flex-shrink:0;pointer-events:none}.onboarding-live{margin:0!important;font-size:.9rem!important}.onboarding-spotlight{position:fixed;z-index:1550;pointer-events:none;border:3px solid var(--kn-cta);border-radius:12px;box-shadow:0 0 0 6px color-mix(in srgb,var(--kn-cta) 28%,transparent)}.onboarding-spotlight.is-pulse{animation:onboarding-spot-pulse .7s ease-in-out}@keyframes onboarding-spot-pulse{0%,to{opacity:1}50%{opacity:.7}}@media(prefers-reduced-motion:reduce){.onboarding-spotlight.is-pulse{animation:none}}body.onboarding-playing .app-shell,body.onboarding-playing .modal-backdrop,body.onboarding-playing .menu-edit-fab,body.onboarding-playing .catalog-suggest-list{pointer-events:none}body.onboarding-playing.onboarding-skip-open .modal-backdrop:has(.onboarding-skip-dialog){pointer-events:auto}body.onboarding-open .modal-backdrop{z-index:1400}body.onboarding-open .catalog-suggest-list{z-index:1520}body.onboarding-skip-open .modal-backdrop{z-index:1800}body.onboarding-open a.nav-icon.onboarding-nav-focus{outline:2px solid var(--kn-cta);outline-offset:3px;border-radius:12px}.onboarding-scribble{position:fixed;z-index:1560;pointer-events:none}.onboarding-scribble img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain}.onboarding-scribble img:first-child{animation:onboarding-scribble-a .55s steps(1) infinite}.onboarding-scribble img:last-child{animation:onboarding-scribble-b .55s steps(1) infinite}@keyframes onboarding-scribble-a{0%,49.9%{opacity:1}50%,to{opacity:0}}@keyframes onboarding-scribble-b{0%,49.9%{opacity:0}50%,to{opacity:1}}@media(prefers-reduced-motion:reduce){.onboarding-scribble img:first-child{animation:none;opacity:1}.onboarding-scribble img:last-child{animation:none;opacity:0}}.onboarding-settings-slot .settings-section:first-of-type{border-top:1px solid var(--line);padding-top:1.1rem}@media(max-width:640px){body.onboarding-open .app-shell{padding-bottom:11rem}.onboarding-card{max-height:min(30vh,14.5rem);padding:.55rem .75rem .65rem}.onboarding-card-main{flex-direction:row;align-items:center}.onboarding-mascot{width:min(26%,4.4rem);max-height:4.2rem}.onboarding-copy h2{font-size:1.02rem;margin-bottom:.2rem}.onboarding-copy p{font-size:.84rem}.onboarding-overlay{padding-bottom:calc(4.75rem + env(safe-area-inset-bottom,0px))}.onboarding-overlay--live .onboarding-stepper,.onboarding-overlay--live .onboarding-copy h2{display:none}.onboarding-overlay--live .onboarding-kicker{margin-bottom:.1rem}}
