:root{--ff: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--h1: 700 1.5rem/1.2em var(--ff);--h2: 700 1.25rem/1.4em var(--ff);--h3: 700 1.125rem/1.4em var(--ff);--p: 400 1rem/1.6em var(--ff);--small: 400 .75rem/1.6em var(--ff);--transition: .2s ease-in-out;font-family:var(--ff);line-height:1.5;font-weight:400;color-scheme:light;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--primary: #4f7294;--primary-hover: #426382;--primary-muted: #869baf;--primary-subtle: #b4bec8;--bg-dark: oklch(.92 0 264);--bg: oklch(.96 0 264);--bg-light: oklch(1 0 264);--text: oklch(.15 0 264);--text-muted: oklch(.4 0 264);--color-accent: var(--primary);--color-accent-hover: var(--primary-hover);--color-accent-muted: var(--primary-muted);--color-accent-subtle: var(--primary-subtle);--color-bg: var(--bg-dark);--color-bg-section: var(--bg);--color-surface: var(--bg-light);--color-interactive: var(--bg-light);--color-panel: var(--bg);--color-panel-elevated: var(--bg-light);--color-divider: color-mix(in oklch, var(--bg), var(--text) 10%);--color-text: var(--text);--color-text-secondary: var(--text-muted);--color-text-muted: color-mix(in oklch, var(--text-muted), var(--bg) 55%);--color-text-disabled: color-mix(in oklch, var(--text-muted), var(--bg) 75%);--color-impact: #c28a3a;--color-impact-hover: #ad7732;--color-success: #5f7f72;--color-error: #924646;--color-error-hover: #843b3b;--shadow-xs: inset 0 1px 2px #ffffff30, 0 1px 2px #00000030, 0 2px 4px #00000015;--shadow-s: inset 0 1px 2px #ffffff40, 0 1px 2px #00000026, 0 3px 6px #00000012;--shadow-m: inset 0 1px 2px #ffffff50, 0 2px 4px #00000030, 0 4px 8px #00000015;--shadow-l: inset 0 1px 2px #ffffff70, 0 4px 6px #00000030, 0 6px 10px #00000015;--shadow-none: none;--shadow-pill: var(--shadow-xs);--shadow-ctl: var(--shadow-xs);--shadow-sm: var(--shadow-s);--shadow-md: var(--shadow-m);--shadow-lg: var(--shadow-l)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg-dark);color:var(--text-muted);font:var(--p)}h1{font:var(--h1)}h2{font:var(--h2)}h3{font:var(--h3)}h1,h2,h3{color:var(--text);margin:0}p{margin:0;color:var(--text-muted)}body.light{--primary: #4f7294;--bg-dark: oklch(.92 0 264);--bg: oklch(.96 0 264);--bg-light: oklch(1 0 264);--text: oklch(.15 0 264);--text-muted: oklch(.4 0 264)}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover)}a:focus-visible{outline:2px solid var(--color-accent-subtle);outline-offset:2px}.link-button{display:inline-flex;align-items:center;gap:.4rem;padding:.65rem 1rem;border-radius:12px;border:0;background:var(--color-interactive);color:var(--color-text);font-weight:600;cursor:pointer;text-decoration:none;box-shadow:var(--shadow-ctl);transition:border-color .2s ease,color .2s ease,background-color .2s ease,box-shadow .2s ease}@media(hover:hover)and (pointer:fine){.link-button:hover{color:var(--color-accent-hover);box-shadow:var(--shadow-sm)}}.link-button:focus-visible{outline:2px solid var(--color-accent-subtle);outline-offset:2px}button{border-radius:10px;border:0;padding:.65em 1.2em;font-size:1rem;font-weight:600;font-family:inherit;background-color:var(--bg);color:var(--text);cursor:pointer;transition:background-color var(--transition),box-shadow var(--transition)}@media(hover:hover)and (pointer:fine){button:hover{background-color:var(--bg-light);box-shadow:var(--shadow-s)}}button:focus-visible{outline:2px solid var(--color-accent-subtle);outline-offset:2px}#root{min-height:100vh;background:var(--color-bg)}.app-shell{min-height:100vh;display:flex;flex-direction:column;max-width:640px;margin:0 auto}.app{flex:1;padding:calc(1.25rem + env(safe-area-inset-top)) 1rem calc(5.5rem + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:1.25rem}.auth-shell{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(1.25rem + env(safe-area-inset-top)) 1rem calc(1.25rem + env(safe-area-inset-bottom));max-width:640px;margin:0 auto;gap:1.25rem;overflow-x:hidden}.page{display:flex;flex-direction:column;gap:.5rem}.page--bottomGutter{padding-bottom:56px}.page__title{margin:0;font-size:1.4rem;color:var(--color-text);letter-spacing:.01em}.page__lead{margin:0;color:var(--color-text-secondary);line-height:1.6}.page--home{gap:1rem}.notice-list{display:grid;gap:.5rem}.notice{width:100%;text-align:left;padding:.85rem 1rem;border-radius:14px;border:0;background:var(--color-bg-section);color:var(--color-text-secondary);box-shadow:var(--shadow-none)}.home-section{display:grid;gap:.75rem;padding:1rem;border-radius:16px;background:var(--color-bg-section)}.home-section--secondary{background:var(--color-bg)}.home-section__title{margin:0;font-size:1.1rem;font-weight:800;color:var(--color-text);letter-spacing:.01em}.home-section__headerRow{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.home-filterBtn{padding:.25rem;border:0;background:transparent;color:var(--color-text-muted);box-shadow:var(--shadow-none);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative}.home-filterBtn:hover{color:var(--color-text-secondary)}.home-filterBtn--active{color:var(--color-accent)}.home-filterBtn:focus-visible{outline:2px solid var(--color-accent-subtle);outline-offset:2px}.pill-row{display:flex;gap:.5rem;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;padding-bottom:.25rem;scrollbar-width:none}.pill-row::-webkit-scrollbar{display:none}.pill{padding:.45rem .6rem;border-radius:999px;border:0;background:var(--color-bg-section);color:var(--color-text-muted);font-weight:650;font-size:.85rem;line-height:1.1;white-space:nowrap;box-shadow:var(--shadow-none);cursor:pointer}.pill--active{background:var(--color-interactive);color:var(--color-accent-hover);box-shadow:var(--shadow-pill)}.text-link{justify-self:start;border:0;background:transparent;color:var(--color-text-secondary);font-weight:650;font-size:.9rem;padding:.15rem 0;border-radius:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px;box-shadow:var(--shadow-none)}.text-link:hover{color:var(--color-accent-hover)}.card-grid{display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,auto);grid-auto-columns:minmax(240px,280px);gap:.9rem;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--color-text-disabled) transparent;padding:.35rem .35rem .6rem;scroll-padding-inline:.35rem}.card-grid::-webkit-scrollbar{height:10px}.card-grid::-webkit-scrollbar-track{background:transparent}.card-grid::-webkit-scrollbar-thumb{background:color-mix(in oklch,var(--color-text-disabled),transparent 55%);border-radius:999px}.card-grid--recipes{grid-template-rows:1fr}.card-grid--threeRows,.card-grid--recipes.card-grid--threeRows{grid-template-rows:repeat(3,auto)}.card-grid--recipes:not(.card-grid--threeRows){grid-template-rows:1fr}@media(hover:none)and (pointer:coarse){.card-grid{scrollbar-width:none}.card-grid::-webkit-scrollbar{display:none}}.empty-state{margin:0;color:var(--color-text-muted);font-size:.95rem;line-height:1.5}.empty-state__title{display:block;color:var(--color-text-secondary);font-weight:650}.empty-state__hint{display:block;margin-top:.2rem;color:var(--color-text-muted);font-size:.9rem}.dev-json{margin:0;padding:.65rem .75rem;border-radius:12px;background:var(--color-bg-section);color:var(--color-text-secondary);font:var(--mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-size:.8rem;line-height:1.35;overflow:auto}.preview-card{width:100%;text-align:left;padding:.75rem .9rem;border-radius:16px;border:0;background:var(--color-surface);color:var(--color-text);cursor:pointer;aspect-ratio:3 / 1;display:flex;flex-direction:column;justify-content:flex-start;gap:.4rem;position:relative;transition:box-shadow .15s ease,transform .12s ease;box-shadow:var(--shadow-sm)}@media(hover:hover)and (pointer:fine){.preview-card:hover{box-shadow:var(--shadow-md)}}.preview-card:active{box-shadow:var(--shadow-ctl);transform:translateY(1px)}.preview-card--primary{background:var(--color-interactive);box-shadow:var(--shadow-md)}@media(hover:hover)and (pointer:fine){.preview-card--primary:hover{box-shadow:var(--shadow-lg)}}.preview-card--secondary{background:var(--color-bg-section);box-shadow:var(--shadow-none)}.preview-card__title{font-weight:800;letter-spacing:.01em;font-size:1rem;padding-right:3.25rem;line-height:1.15;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical}.card-grid--recipes .preview-card__title{font-size:.85rem}.preview-card__missing{color:var(--color-text-muted);font-size:.82rem;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.meta-rows{margin-top:auto;overflow:hidden;display:grid;gap:.35rem;padding-top:1rem}.meta-row{display:flex;align-items:center;gap:.32rem;overflow:hidden;white-space:nowrap}.meta-row--traits{color:var(--color-text-muted);min-height:22px}.meta-row--foods{color:var(--color-text-secondary);min-height:18px}.meta-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.meta-icon--trait{width:22px;height:22px;border-radius:999px}.meta-icon--trait svg{opacity:.95}.meta-icon svg{display:block}.preview-card__alert{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:999px;pointer-events:none}.preview-card__alertBadge{position:absolute;right:.8rem;top:.65rem}.preview-card__alert--warn{color:var(--color-impact);background:color-mix(in oklch,var(--color-impact),white 88%)}.preview-card__alert--danger{color:var(--color-error);background:color-mix(in oklch,var(--color-error),white 88%)}.preview-card__meta{font-size:.62rem;font-weight:650;color:var(--color-text-disabled);letter-spacing:.01em;line-height:1;margin-top:-.15rem;pointer-events:none}@media(min-width:768px){.pill-row{justify-content:start}.card-grid,.card-grid--recipes{grid-auto-columns:minmax(240px,280px)}}.toast{position:fixed;left:0;right:0;bottom:calc(4.75rem + max(.75rem,env(safe-area-inset-bottom)));padding:0 .85rem;z-index:45;pointer-events:none}@media(min-width:540px){.toast{padding-left:1rem;padding-right:1rem}}.toast__panel{pointer-events:auto;width:100%;max-width:520px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem .85rem;border-radius:16px;background:var(--color-surface);box-shadow:var(--shadow-md);color:var(--color-text-secondary);opacity:0;transform:translateY(6px);transition:opacity .16s ease,transform .16s ease;pointer-events:none}.toast--open .toast__panel{opacity:1;transform:translateY(0);pointer-events:auto}.toast__message{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650}.toast__action{border:0;background:transparent;padding:.45rem .55rem;border-radius:12px;color:var(--color-accent-hover);font-weight:800;cursor:pointer;box-shadow:var(--shadow-none);-webkit-tap-highlight-color:transparent}.toast__action:focus-visible{outline:2px solid var(--color-accent-subtle);outline-offset:2px}@media(hover:hover)and (pointer:fine){.toast__action:hover{color:var(--color-accent);text-decoration:underline;text-underline-offset:3px}}@media(prefers-reduced-motion:reduce){.toast__panel{transition:none}}.inventory-muted{margin:0;color:var(--color-text-muted);line-height:1.5}.inventory-card{background:var(--color-surface);border-radius:16px;padding:1rem;box-shadow:var(--shadow-sm);display:grid;gap:.75rem}.inventory-card--error{box-shadow:var(--shadow-md)}.inventory-card__title{font:var(--h3);color:var(--color-text)}.inventory-card__message{color:var(--color-text-secondary);line-height:1.55}.inventory-list{display:grid;gap:.75rem}.inventory-sections{display:grid;gap:1rem;padding-bottom:calc(112px + max(.75rem,env(safe-area-inset-bottom)) - env(safe-area-inset-bottom))}.inventory-section{display:grid;gap:.75rem}.inventory-section__header{display:grid;gap:0}.inventory-section__titleRow{display:flex;align-items:baseline;justify-content:flex-start;gap:.5rem}.inventory-section__title{margin:0;font-size:1rem;font-weight:800;color:var(--color-text);letter-spacing:.01em}.inventory-section__count{font-size:.85rem;font-weight:700;color:var(--color-text-muted)}.inventory-list--section{display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,auto);grid-auto-columns:minmax(240px,280px);gap:.75rem;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:.1rem .1rem .4rem;scroll-padding-inline:.1rem}.inventory-list--section::-webkit-scrollbar{display:none}.inventory-item{background:var(--color-surface);border-radius:16px;padding:.9rem 1rem;box-shadow:var(--shadow-sm);display:grid;gap:.35rem;position:relative;transition:opacity .14s ease,transform .16s ease,box-shadow .16s ease}.inventory-item--compact{padding:.75rem .85rem;gap:.3rem}.inventory-item--clickable{cursor:pointer}.inventory-item--clickable:focus-visible{outline:3px solid var(--color-accent-subtle);outline-offset:3px}@media(hover:hover)and (pointer:fine){.inventory-item--clickable:hover{box-shadow:var(--shadow-md)}}.inventory-item--removing{opacity:0;transform:translateY(6px) scale(.99);pointer-events:none}@media(prefers-reduced-motion:reduce){.inventory-item{transition:none}}.inventory-item__name{font-weight:800;letter-spacing:.01em;color:var(--color-text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inventory-item__name--compact{white-space:normal;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;line-height:1.25;overflow-wrap:anywhere;padding-right:2.1rem}.inventory-item__titleRow{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;min-width:0}.inventory-item__titleRow--list{padding-right:1.7rem}.inventory-item__meta{font-size:.85rem;font-weight:650;color:var(--color-text-muted);white-space:nowrap}.inventory-item__expiry{font-size:.8rem;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis}.inventory-item__meta--warn{color:var(--color-impact)}.inventory-item__meta--danger{color:var(--color-error)}.inventory-item__details{color:var(--color-text-secondary);font-size:.95rem;display:flex;align-items:baseline;flex-wrap:wrap;gap:.35rem;min-width:0}.inventory-item__details--compact{flex-wrap:nowrap;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:2.1rem}.inventory-item__qty{color:var(--color-text-secondary);font-weight:650}.inventory-item__sep{color:var(--color-text-muted)}.inventory-item__loc{color:var(--color-text-secondary)}.inventory-fab{position:fixed;right:calc(max(1rem,(100vw - 640px) / 2 + 1rem) + env(safe-area-inset-right));bottom:calc(5.5rem + max(.75rem,env(safe-area-inset-bottom)));width:56px;height:56px;padding:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--color-accent);color:#fff;box-shadow:var(--shadow-md);-webkit-tap-highlight-color:transparent;z-index:25;transition:transform .15s ease,background-color .15s ease,box-shadow .15s ease}@media(hover:hover)and (pointer:fine){.inventory-fab:hover{background:var(--color-accent-hover);box-shadow:var(--shadow-lg)}}.inventory-fab:active{transform:translateY(1px);box-shadow:var(--shadow-sm)}.inventory-fab:focus-visible{outline:3px solid var(--color-accent-subtle);outline-offset:4px}.inventory-fab__icon{position:relative;width:20px;height:20px;display:block;transform:rotate(0);transition:transform .15s ease}.inventory-fab__icon:before,.inventory-fab__icon:after{content:"";position:absolute;left:50%;top:50%;width:18px;height:2px;background:currentColor;border-radius:999px;transform:translate(-50%,-50%)}.inventory-fab__icon:after{transform:translate(-50%,-50%) rotate(90deg)}.inventory-fab--open .inventory-fab__icon{transform:rotate(45deg)}.inventory-modal{position:fixed;inset:0;padding:calc(1.1rem + env(safe-area-inset-top)) .85rem calc(1.1rem + env(safe-area-inset-bottom));background:#00000045;display:flex;align-items:center;justify-content:center;z-index:30;animation:inventory-modal-fade-in .14s ease-out}.inventory-modal--closing{animation:inventory-modal-fade-out .16s ease-in forwards}@media(min-width:540px){.inventory-modal{padding-left:1rem;padding-right:1rem}}.inventory-modal__panel{width:100%;max-width:640px;background:var(--color-surface);border-radius:18px;box-shadow:var(--shadow-lg);padding:.65rem .9rem 0;display:flex;flex-direction:column;gap:.6rem;max-height:calc(100dvh - 4.25rem - env(safe-area-inset-top));overflow:hidden;transform-origin:50% 85%;animation:inventory-modal-panel-in .18s cubic-bezier(.2,.9,.2,1)}.inventory-modal__panel--closing{animation:inventory-modal-panel-out .16s ease-in forwards}@keyframes inventory-modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes inventory-modal-fade-out{0%{opacity:1}to{opacity:0}}@keyframes inventory-modal-panel-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes inventory-modal-panel-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(10px) scale(.985)}}@media(prefers-reduced-motion:reduce){.inventory-modal,.inventory-modal__panel{animation:none}}.inventory-modal__handle{width:40px;height:4px;border-radius:999px;background:color-mix(in oklch,var(--color-text-muted),var(--color-surface) 70%);opacity:.55;margin:0 auto .25rem}.inventory-modal__header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.1rem 0 .25rem}.inventory-modal__title{font:var(--h3);color:var(--color-text)}.inventory-modal__body{flex:1 1 auto;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;padding-right:.15rem;padding-bottom:.65rem}.inventory-modal__close{width:32px;height:32px;padding:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--color-bg-section);color:var(--color-text-secondary);box-shadow:var(--shadow-none)}@media(hover:hover)and (pointer:fine){.inventory-modal__close:hover{color:var(--color-accent-hover);box-shadow:var(--shadow-s)}}.inventory-modal__closeIcon{position:relative;width:14px;height:14px;display:block}.inventory-modal__closeIcon:before,.inventory-modal__closeIcon:after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2px;border-radius:999px;background:currentColor;transform:translate(-50%,-50%) rotate(45deg)}.inventory-modal__closeIcon:after{transform:translate(-50%,-50%) rotate(-45deg)}.inventory-modal__footer{flex:0 0 auto;padding:.65rem 0 max(.65rem,env(safe-area-inset-bottom));border-top:1px solid var(--color-divider);background:var(--color-surface)}.inventory-add{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.inventory-add__stack{display:grid;gap:.85rem}.inventory-add__section{display:grid;gap:.35rem}.inventory-add__checks{display:grid;gap:.6rem}.inventory-add__check{display:flex;align-items:center;gap:.6rem;color:var(--color-text-secondary);font-weight:650;font-size:.9rem}.inventory-add__check input{width:18px;height:18px;accent-color:var(--color-accent-hover)}.inventory-add__helper{color:var(--color-text-muted);font-size:.85rem;line-height:1.35;margin-top:-.1rem}.inventory-add__suggestions{display:flex;flex-wrap:wrap;gap:.4rem;padding-top:.15rem}.inventory-add__suggestion{padding:.45rem .65rem;border-radius:999px;background:var(--color-bg-section);color:var(--color-text-secondary);font-size:.85rem;font-weight:650;box-shadow:var(--shadow-none);cursor:pointer;-webkit-tap-highlight-color:transparent}@media(hover:hover)and (pointer:fine){.inventory-add__suggestion:hover{color:var(--color-text);box-shadow:var(--shadow-s)}}.inventory-add__suggestion--active{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-ctl)}.inventory-add__suggestion--custom{background:transparent;color:var(--color-text-secondary);border:1px dashed var(--color-divider)}.ingredient-search__selected{color:var(--color-text-muted);font-size:.85rem;line-height:1.35}.ingredient-search__customIcon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-right:.4rem;border-radius:999px;background:var(--color-bg-section);color:var(--color-text-secondary);flex:0 0 auto}.inventory-add__suggestion:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--color-accent-subtle)}.inventory-add__row{display:flex;gap:.65rem;align-items:center}.inventory-add__input--qty{flex:1 1 auto;min-width:0}.inventory-add__select{width:120px;min-width:120px;border:0;border-radius:12px;padding:.55rem .75rem;min-height:44px;background:var(--color-bg-section);color:var(--color-text);font:var(--p);box-shadow:inset 0 1px 2px #ffffff50,inset 0 2px 6px #00000010;appearance:none;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 16px) calc(50% - 2px),calc(100% - 11px) calc(50% - 2px);background-size:5px 5px,5px 5px;background-repeat:no-repeat}.inventory-add__select:focus,.inventory-add__select:focus-visible{outline:none;box-shadow:inset 0 1px 2px #ffffff50,inset 0 2px 6px #00000010,inset 0 0 0 2px var(--color-accent-subtle)}.inventory-add__seg{display:grid;grid-template-columns:repeat(3,1fr);gap:.3rem;padding:.3rem;border-radius:999px;background:var(--color-bg-section);box-shadow:var(--shadow-none)}.inventory-add__seg--two{grid-template-columns:repeat(2,1fr)}.inventory-add__segBtn{min-height:40px;padding:.45rem .5rem;border-radius:999px;background:transparent;color:var(--color-text-secondary);font-size:.9rem;font-weight:650;box-shadow:var(--shadow-none)}.inventory-add__segBtn--active{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-ctl)}.inventory-add__optional{border-radius:16px;background:var(--color-bg-section);padding:.75rem;display:grid;gap:0}.inventory-add__toggle{width:100%;padding:.6rem .65rem;border:0;background:transparent;color:var(--color-text-secondary);font-weight:700;font-size:.95rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;box-shadow:none;border-radius:12px;cursor:pointer;-webkit-tap-highlight-color:transparent}@media(hover:hover)and (pointer:fine){.inventory-add__toggle:hover{background:color-mix(in oklch,var(--color-surface),var(--color-text) 2%)}}.inventory-add__toggle:active{background:color-mix(in oklch,var(--color-surface),var(--color-text) 4%)}.inventory-add__toggle:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--color-accent-subtle)}.inventory-add__chev{width:16px;height:16px;display:inline-block;position:relative;transform:rotate(0);transition:transform .12s ease}.inventory-add__chev:before{content:"";position:absolute;inset:0;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-1px,-1px);opacity:.7}.inventory-add__chev--open{transform:rotate(180deg)}.inventory-add__optionalBody{display:grid;gap:.6rem;overflow:hidden;max-height:0;opacity:0;transform:translateY(-2px);margin-top:0;pointer-events:none;transition:max-height .18s ease,opacity .16s ease,transform .18s ease,margin-top .18s ease}.inventory-add__optionalBody--open{max-height:560px;opacity:1;transform:translateY(0);margin-top:.65rem;pointer-events:auto}.inventory-add__optionalBody--closed{max-height:0;opacity:0;transform:translateY(-2px);margin-top:0;pointer-events:none}@media(prefers-reduced-motion:reduce){.inventory-add__optionalBody{transition:none}}.inventory-add__hint{color:var(--color-text-muted);font-size:.85rem;line-height:1.35}.inventory-add__fieldError{color:var(--color-impact);font-size:.85rem;font-weight:650;line-height:1.35}.inventory-add__dateRow{display:flex;align-items:center;gap:.55rem}.inventory-add__dateBtn{width:44px;height:44px;padding:0;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:var(--color-bg-section);color:var(--color-text-secondary);box-shadow:var(--shadow-none);position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent}@media(hover:hover)and (pointer:fine){.inventory-add__dateBtn:hover{color:var(--color-accent-hover);box-shadow:var(--shadow-s)}}.inventory-add__dateBtn:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--color-accent-subtle)}.inventory-add__dateBtn:focus-within{box-shadow:inset 0 0 0 2px var(--color-accent-subtle)}.inventory-add__dateNative{position:absolute;inset:0;opacity:0;cursor:pointer}.inventory-add__label--primary{color:var(--color-text)}.inventory-add__input--primary{min-height:46px}.inventory-add__input--error{outline:none;box-shadow:inset 0 1px 2px #ffffff50,inset 0 2px 6px #00000010,inset 0 0 0 2px color-mix(in oklch,var(--color-impact),white 40%)}@media(min-width:540px){.inventory-modal__panel{border-radius:18px;padding:.9rem 1rem 0;max-height:calc(100dvh - 6rem - env(safe-area-inset-top))}.inventory-modal__footer{padding-bottom:.85rem}.inventory-add__actions{display:flex;justify-content:flex-end;flex-wrap:wrap}}.inventory-add__grid{display:grid;gap:.6rem}@media(min-width:520px){.inventory-add__grid{grid-template-columns:1fr 1fr}}.inventory-add__field{display:grid;gap:.35rem}.inventory-add__label{font-size:.85rem;font-weight:700;color:var(--color-text-secondary)}.inventory-add__input{width:100%;border:0;border-radius:12px;padding:.55rem .75rem;min-height:44px;background:var(--color-bg-section);color:var(--color-text);font:var(--p);box-shadow:inset 0 1px 2px #ffffff50,inset 0 2px 6px #00000010}.inventory-add__input[disabled]{cursor:not-allowed;color:var(--color-text-secondary);opacity:.9}.inventory-add__input:focus,.inventory-add__input:focus-visible{outline:none;box-shadow:inset 0 1px 2px #ffffff50,inset 0 2px 6px #00000010,inset 0 0 0 2px var(--color-accent-subtle)}.inventory-add__actions{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.inventory-add__submit{min-height:44px;background:var(--color-accent);color:#fff;box-shadow:inset 0 1px 1px #ffffff70,0 1px 2px #00000018,0 3px 7px #00000010}@media(hover:hover)and (pointer:fine){.inventory-add__submit:hover:not([disabled]){background:var(--color-accent-hover);box-shadow:var(--shadow-md)}}.inventory-add__submit[disabled]{opacity:.6;cursor:not-allowed;background:var(--color-bg-section);color:var(--color-text-disabled);box-shadow:var(--shadow-none)}.inventory-add__clear{min-height:44px;background:var(--color-bg-section);color:var(--color-text-secondary);box-shadow:var(--shadow-none)}.inventory-add__clear:hover{color:var(--color-accent-hover);box-shadow:var(--shadow-s)}.inventory-add__error{color:var(--color-error);font-size:.95rem;font-weight:650;line-height:1.4}.inventory-item__action{width:34px;height:34px;padding:0;border-radius:999px;background:transparent;color:var(--color-text-secondary);display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--shadow-none);position:absolute;top:.6rem;right:.6rem}.inventory-item__action--compact{width:28px;height:28px;top:.55rem;right:.55rem}@media(hover:hover)and (pointer:fine){.inventory-item__action:hover{color:var(--color-text)}}.inventory-item__action:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--color-accent-subtle)}.inventory-item__action[disabled]{opacity:.6;cursor:not-allowed}.inventory-item__actionIcon{position:relative;width:14px;height:14px;display:block}.inventory-item__actionIcon:before,.inventory-item__actionIcon:after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2px;border-radius:999px;background:currentColor;transform:translate(-50%,-50%) rotate(45deg);opacity:.75}.inventory-item__actionIcon:after{transform:translate(-50%,-50%) rotate(-45deg)}.inventory-muted__cta{border:0;padding:0;background:transparent;font:inherit;font-weight:700;color:var(--color-accent);cursor:pointer;box-shadow:none}@media(hover:hover)and (pointer:fine){.inventory-muted__cta:hover{color:var(--color-accent-hover);text-decoration:underline}}.inventory-muted__cta:focus-visible{outline:2px solid var(--color-accent-subtle);outline-offset:2px}.profile-user{display:flex;align-items:center;gap:.75rem}.profile-user__meta{color:var(--color-text-secondary);font-size:.95rem;line-height:1.3;min-width:0}.profile-user__name{font-weight:750;color:var(--color-text)}.profile-user__email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-card__lead{margin:0;color:var(--color-text-secondary);line-height:1.5;font-size:.95rem}.profile-card{background:var(--color-surface);border-radius:16px;padding:1rem;box-shadow:var(--shadow-sm);color:var(--color-text)}.profile-card--error{box-shadow:var(--shadow-md)}.profile-card__title{margin:0 0 .75rem;font:var(--h3);color:var(--color-text)}.profile-card__message{margin:0;color:var(--color-text-secondary);line-height:1.55}.profile-actions{margin-top:.85rem;display:flex;gap:.75rem;flex-wrap:wrap}.profile-actions__secondary{background:var(--color-bg-section);color:var(--color-text-secondary);box-shadow:var(--shadow-none)}.profile-actions__secondary:hover{color:var(--color-accent-hover);box-shadow:var(--shadow-s)}.profile-field{display:grid;gap:.45rem;margin-top:.85rem}.profile-field__helper{margin:0;color:var(--color-text-muted);font-size:.9rem;line-height:1.45}.profile-label{font-size:.9rem;font-weight:700;color:var(--color-text-secondary)}.profile-select,.profile-textarea{width:100%;border:0;border-radius:14px;padding:.65rem .85rem;background:var(--color-bg-section);color:var(--color-text);font:var(--p);box-shadow:inset 0 1px 2px #ffffff50,inset 0 2px 6px #00000010}.profile-select:focus-visible,.profile-textarea:focus-visible{outline:2px solid var(--color-accent-subtle);outline-offset:2px}.profile-textarea{resize:vertical}.profile-toggle-grid{display:flex;flex-wrap:wrap;gap:.5rem}.profile-toggle{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .65rem;border-radius:999px;background:var(--color-bg-section);color:var(--color-text-secondary);font-weight:650;font-size:.85rem;box-shadow:var(--shadow-none)}.profile-toggle input{accent-color:var(--color-accent)}.ms{display:grid;gap:.65rem;margin-top:.9rem}.ms__header{display:grid;gap:.2rem}.ms__label{display:inline-flex;align-items:center;gap:.45rem;font-size:.9rem;font-weight:800;color:var(--color-text);letter-spacing:.01em}.ms__labelIcon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:color-mix(in oklch,var(--color-error),white 88%);color:var(--color-error)}.ms__labelIcon svg{display:block}.ms__desc{color:var(--color-text-secondary);font-size:.9rem;line-height:1.45}.ms__chips{display:flex;flex-wrap:wrap;gap:.5rem}.ms__chip{padding:.5rem .65rem;border-radius:999px;border:0;background:var(--color-bg-section);color:var(--color-text-secondary);font-weight:650;font-size:.85rem;line-height:1.1;box-shadow:var(--shadow-none);cursor:pointer}@media(hover:hover)and (pointer:fine){.ms__chip:hover{box-shadow:var(--shadow-s)}}.ms__chip--selected{background:color-mix(in oklch,var(--color-accent),white 76%);color:var(--color-accent-hover);box-shadow:inset 0 1px 1px #ffffff70,0 1px 2px #00000018,0 3px 7px #00000010}.ms__chip--selected:focus-visible{outline:2px solid var(--color-accent-subtle);outline-offset:2px;box-shadow:inset 0 1px 1px #ffffff70,0 1px 2px #00000018,0 3px 7px #00000010}@media(hover:hover)and (pointer:fine){.ms__chip--selected:hover{background:color-mix(in oklch,var(--color-accent),white 70%)}}.profile-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.profile-save[disabled]{opacity:.6;cursor:not-allowed}.profile-saved{font-size:.9rem;font-weight:650;color:var(--color-text-muted)}.profile-autosave{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.profile-autosave__hint{color:var(--color-text-muted);font-size:.9rem;line-height:1.4}.profile-autosave__status{color:var(--color-text-muted);font-size:.9rem;font-weight:650;line-height:1.4}.profile-autosave__status--warn{color:var(--color-impact)}.auth-stack{width:min(420px,100%);margin-inline:auto;display:grid;gap:1.25rem;min-width:0}.auth-header{display:flex;align-items:center;gap:.85rem;justify-content:flex-start;width:100%}.dc-clerk-root{width:100%!important;max-width:100%!important;padding:0!important;margin:0!important;box-sizing:border-box;min-width:0}.dc-clerk-cardbox{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;display:block!important;box-sizing:border-box;min-width:0}.auth-header__logo{width:44px;height:44px;border-radius:14px;background:var(--color-bg-section);box-shadow:var(--shadow-none);padding:10px;flex:0 0 auto}.auth-header__text{display:grid;gap:.15rem}.auth-header__title{margin:0;font-size:1.3rem;letter-spacing:.01em}.auth-header__subtitle{margin:0;color:var(--color-text-secondary);font-size:.95rem;line-height:1.5}.auth-card{width:min(420px,100%);background:var(--color-bg-section);padding:.65rem;border-radius:18px;box-shadow:var(--shadow-none)}.state-card{display:grid;gap:.85rem}.state-clerk-card{padding:1.1rem 1.1rem 1rem}.state-clerk-card__title{margin:0;font:var(--h2);color:var(--color-text)}.state-card__message{margin:0;color:var(--color-text-secondary);line-height:1.5}.state-actions{display:flex;gap:.75rem;flex-wrap:wrap}.state-button--secondary{background:var(--color-bg-section);color:var(--color-text-secondary);box-shadow:var(--shadow-none)}.state-button--secondary:hover{color:var(--color-accent-hover);box-shadow:var(--shadow-s)}.dc-clerk-card{width:100%!important;max-width:100%!important;margin:0!important;border-radius:14px;box-shadow:var(--shadow-md);background:var(--color-surface);border:0;min-width:0;overflow-wrap:anywhere}.dc-clerk-title{color:var(--color-text);font-family:var(--ff)}.dc-clerk-subtitle{color:var(--color-text-secondary)}.dc-clerk-primary{background:var(--color-accent);box-shadow:var(--shadow-sm);transition:transform var(--transition),box-shadow var(--transition),background-color var(--transition)}.dc-clerk-primary:hover{background:var(--color-accent-hover);box-shadow:var(--shadow-md)}.dc-clerk-primary:active{transform:translateY(1px);box-shadow:var(--shadow-s)}.dc-clerk-input{background:var(--color-bg-section);box-shadow:inset 0 1px 2px #ffffff50,inset 0 2px 6px #00000010;border:0}.dc-clerk-card input{background:var(--color-bg-section);border:0}.dc-clerk-input:-webkit-autofill,.dc-clerk-input:-webkit-autofill:hover,.dc-clerk-input:-webkit-autofill:focus,.dc-clerk-input:-webkit-autofill:active,.dc-clerk-card input:-webkit-autofill,.dc-clerk-card input:-webkit-autofill:hover,.dc-clerk-card input:-webkit-autofill:focus,.dc-clerk-card input:-webkit-autofill:active{background-color:#f2f2f2!important;-webkit-text-fill-color:var(--color-text)!important;caret-color:var(--color-text);-webkit-box-shadow:0 0 0 1000px #f2f2f2 inset,inset 0 1px 2px #ffffff50,inset 0 2px 6px #00000010,inset 0 0 0 1px #00000014!important;box-shadow:0 0 0 1000px #f2f2f2 inset,inset 0 1px 2px #ffffff50,inset 0 2px 6px #00000010,inset 0 0 0 1px #00000014!important;transition:background-color 9999s ease-in-out 0s}.dc-clerk-social{background:var(--color-interactive);box-shadow:var(--shadow-s);border:0}.dc-clerk-link{color:var(--color-accent)}.dc-clerk-link:hover{color:var(--color-accent-hover)}.dc-clerk-muted{color:var(--color-text-muted)}.dc-clerk-error{color:var(--color-error)}.dc-clerk-fieldAction{font-weight:650}.dc-clerk-footer{background:transparent}.dc-clerk-powered{opacity:.7}.dc-clerk-card a{color:var(--color-accent);text-underline-offset:3px}.dc-clerk-card a:hover{color:var(--color-accent-hover)}.tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;flex-direction:column;justify-content:flex-end;padding:.65rem .9rem max(.75rem,env(safe-area-inset-bottom));background:var(--color-bg-section);border-top:1px solid var(--color-divider);box-shadow:var(--shadow-none);z-index:20}.tabbar__inner{width:100%;display:grid;grid-template-columns:repeat(5,1fr);gap:.35rem}.tabbar__link{display:inline-flex;flex-direction:column;justify-content:center;align-items:center;gap:.2rem;padding:.65rem .4rem;border-radius:14px;border:0;background:transparent;color:var(--color-text-secondary);text-decoration:none;font-weight:600;font-size:.85rem;box-shadow:var(--shadow-none);-webkit-tap-highlight-color:transparent;transition:color .2s ease,background-color .2s ease,box-shadow .2s ease}.tabbar__link,.tabbar__link:visited,.tabbar__link:hover,.tabbar__link:active,.tabbar__link:focus{color:var(--color-text-secondary);-webkit-text-fill-color:currentColor}.tabbar__link.tabbar__link--active,.tabbar__link.tabbar__link--active:visited,.tabbar__link.tabbar__link--active:hover,.tabbar__link.tabbar__link--active:active,.tabbar__link.tabbar__link--active:focus{background:var(--color-surface);color:var(--color-accent-hover);-webkit-text-fill-color:var(--color-accent-hover);box-shadow:var(--shadow-ctl)}.tabbar__icon{line-height:1;display:inline-flex;color:currentColor}.tabbar__label{line-height:1}@media(hover:hover)and (pointer:fine){.tabbar__link:not(.tabbar__link--active):hover{color:var(--color-text)}}@media(min-width:768px){.tabbar{max-width:640px;margin:0 auto;border-radius:16px 16px 0 0}}
