:root{--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.75rem;--lh-tight:1.25;--lh-snug:1.35;--lh-normal:1.5;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--tap-min:44px;--tap-comfort:48px;--tap-tablet:56px;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:9999px;--transition:.12s ease;--transition-smooth:.2s cubic-bezier(.16, 1, .3, 1);--z-sticky:20;--z-nav:30;--z-fab:40;--z-overlay:90;--z-sheet:100;--z-modal:100;--z-toast:110;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d}:root,[data-theme=dark]{--bg-app:#0c0d10;--bg-surface:#14171d;--surface-card:#14171d;--bg-surface-subtle:#191d24;--bg-surface-hover:#1f242e;--bg-input:#101216;--border-subtle:#242933;--border-muted:#2f3643;--border-focus:#3b82f6;--text-primary:#f1f3f7;--text-secondary:#9da6b6;--text-muted:#646e82;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-fg:#fff;--warning-fg:#d97706;--warning-bg:#261d11;--warning-border:#4a341b;--danger-fg:#dc2626;--danger-bg:#271415;--danger-border:#4c1d20;--success-fg:#16a34a;--success-bg:#122318;--success-border:#1c4228;--tag-location-fg:#93c5fd;--tag-location-bg:#101827;--tag-location-border:#1e3a5f;--tag-category-fg:#c4b5fd;--tag-category-bg:#171228;--tag-category-border:#3b2866;--shadow-overlay:0 16px 36px -4px #000000a6, 0 8px 16px -6px #00000080}[data-theme=light]{--bg-app:#f4f5f8;--bg-surface:#fff;--surface-card:#fff;--bg-surface-subtle:#f8fafc;--bg-surface-hover:#f1f5f9;--bg-input:#fff;--border-subtle:#e2e8f0;--border-muted:#cbd5e1;--border-focus:#2563eb;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-fg:#fff;--warning-fg:#b45309;--warning-bg:#fef3c7;--warning-border:#fde68a;--danger-fg:#b91c1c;--danger-bg:#fee2e2;--danger-border:#fecaca;--success-fg:#15803d;--success-bg:#dcfce7;--success-border:#bbf7d0;--tag-location-fg:#1d4ed8;--tag-location-bg:#eff6ff;--tag-location-border:#bfdbfe;--tag-category-fg:#6d28d9;--tag-category-bg:#f5f3ff;--tag-category-border:#ddd6fe;--shadow-overlay:0 16px 36px -4px #0f172a2e, 0 8px 16px -6px #0f172a1a}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{background-color:var(--bg-app);min-height:100vh;color:var(--text-primary);font-family:var(--font-family);font-size:var(--text-md);line-height:var(--lh-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition), color var(--transition)}input,select,textarea{color:inherit;font-family:inherit;font-size:max(16px,1rem)}button{font-family:inherit;font-size:inherit;color:inherit;cursor:pointer;background:0 0;border:none}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn var(--duration-fast,.22s) cubic-bezier(.16, 1, .3, 1) forwards}.animate-slide-down{animation:slideDown var(--duration-fast,.24s) cubic-bezier(.16, 1, .3, 1) forwards}button:active{transform:scale(.97)}:root{--gutter:12px;--max-content-width:1280px;--max-form-width:560px;--header-height:56px;--bottom-nav-height:64px}@media (width>=360px){:root{--gutter:16px}}@media (width>=768px){:root{--gutter:24px;--header-height:64px}}@media (width>=1024px){:root{--gutter:32px}}.safe-top{padding-top:env(safe-area-inset-top,0px)}.safe-bottom{padding-bottom:env(safe-area-inset-bottom,0px)}.safe-left{padding-left:env(safe-area-inset-left,0px)}.safe-right{padding-right:env(safe-area-inset-right,0px)}.safe-x{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}.safe-all{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}.layout-container{width:100%;max-width:var(--max-content-width);padding-left:var(--gutter);padding-right:var(--gutter);margin-left:auto;margin-right:auto}.layout-form-container{width:100%;max-width:var(--max-form-width);margin-left:auto;margin-right:auto}.controls-sticky-header{top:var(--header-height,56px);z-index:10;background-color:var(--surface-bg);padding:var(--space-2) 0;position:sticky}.inventory-split-layout{width:100%;display:block}.inventory-split-master{width:100%;min-width:0}.inventory-split-detail{display:none}@media (width>=1024px){.inventory-split-layout{gap:var(--space-5);grid-template-columns:40% 60%;align-items:start;display:grid}.inventory-split-detail{top:calc(var(--header-height,64px) + var(--space-3));max-height:calc(100vh - var(--header-height,64px) - var(--space-6));background-color:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-4);display:block;position:sticky;overflow-y:auto}.inventory-split-detail .ui-empty-state{padding:var(--space-8) var(--space-4)}.inventory-split-master .list-table-header{display:none}}#root{flex-direction:column;width:100%;min-height:100vh;display:flex}.auth-screen{background-color:var(--bg-app);justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.auth-card{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);flex-direction:column;gap:20px;width:100%;max-width:400px;padding:32px 24px;display:flex}.auth-brand{color:var(--text-primary);align-items:center;gap:10px;display:flex}.auth-brand-mark{border-radius:var(--radius-md);background-color:var(--bg-surface-subtle);border:1px solid var(--border-muted);width:40px;height:40px;color:var(--primary);justify-content:center;align-items:center;display:inline-flex}.auth-brand-name{letter-spacing:-.01em;font-size:20px;font-weight:700}.auth-title{color:var(--text-primary);font-size:18px;font-weight:700;line-height:1.3}.auth-text{color:var(--text-secondary);font-size:14px}.auth-text strong{color:var(--text-primary)}.auth-actions{flex-direction:column;gap:10px;display:flex}.auth-actions .btn-primary,.auth-actions .btn-secondary{width:100%;height:44px;font-size:14px}.auth-note{color:var(--text-muted);font-size:12px}.auth-alert{border-radius:var(--radius-sm);border:1px solid var(--warning-border);background-color:var(--warning-bg);color:var(--warning-fg);align-items:flex-start;gap:8px;padding:10px 12px;font-size:13px;display:flex}.auth-alert-danger{border-color:var(--danger-border);background-color:var(--danger-bg);color:var(--danger-fg)}.auth-spinner{border:3px solid var(--border-muted);border-top-color:var(--primary);border-radius:50%;width:28px;height:28px;margin:0 auto;animation:.8s linear infinite auth-spin}@keyframes auth-spin{to{transform:rotate(360deg)}}.btn-household{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background-color:var(--bg-surface-subtle);max-width:180px;height:32px;color:var(--text-secondary);cursor:pointer;transition:background-color var(--transition), color var(--transition);align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.btn-household:hover{background-color:var(--bg-surface-hover);color:var(--text-primary)}.btn-household span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.household-switcher{min-width:0;position:relative}.household-switcher .btn-household{max-width:200px}.household-switcher-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.household-switcher-chevron{opacity:.7;flex:none}@media (width<=640px){.household-switcher .btn-household{max-width:100%}}.household-menu{z-index:60;background-color:var(--bg-surface);border:1px solid var(--border-muted);border-radius:var(--radius-md);flex-direction:column;gap:2px;width:min(300px,100vw - 32px);padding:6px;display:flex;position:absolute;top:calc(100% + 6px);left:0;right:auto;box-shadow:0 10px 25px #00000040}.household-menu-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:6px 10px 4px;font-size:11px;font-weight:700}.household-menu-item{border-radius:var(--radius-sm);text-align:left;width:100%;min-height:44px;color:var(--text-primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:6px 10px;display:flex}.household-menu-item:hover,.household-menu-item:focus-visible{background-color:var(--bg-surface-hover);outline:none}.household-menu-item.is-active{background-color:var(--bg-surface-subtle)}.household-menu-icon{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);width:28px;height:28px;color:var(--text-secondary);flex:none;justify-content:center;align-items:center;display:inline-flex}.household-menu-text{flex-direction:column;flex:auto;min-width:0;display:flex}.household-menu-name{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.household-menu-sub{color:var(--text-muted);font-size:11px}.household-menu-check{color:var(--primary);flex:none}.household-menu-divider{background-color:var(--border-subtle);height:1px;margin:4px 0}.item-author{color:var(--text-muted);margin-top:2px;font-size:11px;display:block}.sync-indicator{color:var(--text-muted);white-space:nowrap;font-size:11px}.activity-list{flex-direction:column;gap:6px;display:flex}.activity-row{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background-color:var(--bg-surface-subtle);align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.activity-row .family-avatar{width:26px;height:26px;font-size:11px}.activity-text{color:var(--text-primary);font-size:13px;line-height:1.35}.activity-time{color:var(--text-muted);font-size:11px;display:block}.prefs-form{flex-direction:column;gap:8px;display:flex}.check-row{color:var(--text-secondary);cursor:pointer;align-items:flex-start;gap:10px;font-size:13px;display:flex}.check-row input{width:16px;height:16px;accent-color:var(--primary);margin-top:3px}.family-badge-personal{border-color:var(--border-muted);background-color:var(--bg-surface-hover);color:var(--text-secondary);align-items:center;gap:4px;display:inline-flex}.cross-search-toggle{color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;margin-top:8px;font-size:12px;display:inline-flex}.cross-search-toggle input{accent-color:var(--primary)}.cross-results{flex-direction:column;gap:14px;padding:12px 0;display:flex}.cross-group-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;font-size:12px;font-weight:700;display:flex}.cross-item{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background-color:var(--bg-surface);justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;padding:10px 12px;display:flex}.cross-item-name{color:var(--text-primary);font-weight:600}.cross-item-sub{color:var(--text-muted);font-size:12px}.family-section{border-top:1px solid var(--border-subtle);flex-direction:column;gap:10px;margin-top:18px;padding-top:18px;display:flex}.family-section:first-of-type{border-top:none;margin-top:0;padding-top:0}.family-section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:12px;font-weight:700}.family-row{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background-color:var(--bg-surface-subtle);align-items:center;gap:10px;padding:10px 12px;display:flex}.family-avatar{background-color:var(--bg-surface-hover);border:1px solid var(--border-muted);width:32px;height:32px;color:var(--text-secondary);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex;overflow:hidden}.family-avatar img{object-fit:cover;width:100%;height:100%}.family-row-main{flex-direction:column;flex:auto;min-width:0;display:flex}.family-row-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.family-row-sub{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.family-row-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.family-badge{border:1px solid var(--tag-location-border);background-color:var(--tag-location-bg);color:var(--tag-location-fg);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.family-badge-member{border-color:var(--border-muted);color:var(--text-secondary);background-color:#0000}.btn-link-danger{color:var(--danger-fg);cursor:pointer;border-radius:var(--radius-xs);background:0 0;border:none;padding:4px 6px;font-size:12px;font-weight:600}.btn-link{color:var(--primary);cursor:pointer;border-radius:var(--radius-xs);background:0 0;border:none;padding:4px 6px;font-size:12px;font-weight:600}.btn-link:hover,.btn-link-danger:hover{background-color:var(--bg-surface-hover)}.invite-box{border:1px solid var(--success-border);background-color:var(--success-bg);border-radius:var(--radius-sm);flex-direction:column;gap:10px;padding:12px;display:flex}.invite-link{word-break:break-all;color:var(--text-primary);background-color:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);padding:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.invite-actions{flex-wrap:wrap;gap:8px;display:flex}.invite-actions .btn-primary,.invite-actions .btn-secondary{flex:140px;gap:6px}.usage-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.usage-cell{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background-color:var(--bg-surface-subtle);flex-direction:column;gap:2px;padding:10px 12px;display:flex}.usage-label{color:var(--text-muted);font-size:12px}.usage-value{color:var(--text-primary);font-size:15px;font-weight:700}.usage-value-sub{color:var(--text-secondary);font-size:12px;font-weight:500}.inline-form{gap:8px;display:flex}.inline-form .field-input{flex:auto}.auth-actions a.btn-primary{text-decoration:none}.controls-search-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:6px;display:flex}.controls-search-meta .cross-search-toggle{margin-top:0}.controls-search-meta .sync-indicator{margin-left:auto}@media (width<=640px){.household-menu{width:auto;position:fixed;top:60px;left:16px;right:16px}}.family-accordion-section{gap:var(--space-2);margin-bottom:var(--space-3);border:1px solid var(--border-muted);border-radius:var(--radius-md);background-color:var(--bg-surface);flex-direction:column;display:flex;overflow:hidden}.family-accordion-btn{width:100%;min-height:48px;padding:var(--space-2) var(--space-3);background-color:var(--bg-surface);color:var(--text-primary);font-size:var(--text-sm);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard);text-align:left;border:none;justify-content:space-between;align-items:center;font-weight:600;display:flex}.family-accordion-btn:hover{background-color:var(--bg-hover)}.family-accordion-btn-left{align-items:center;gap:var(--space-2);display:flex}.family-accordion-body{padding:var(--space-3);border-top:1px solid var(--border-muted);background-color:var(--bg-main);gap:var(--space-3);flex-direction:column;display:flex}.cross-group-badge{align-items:center;gap:6px;display:inline-flex}.auth-text--center{text-align:center}.ui-icon-btn{border-radius:var(--radius-md);cursor:pointer;color:var(--text-secondary);-webkit-user-select:none;user-select:none;transition:background-color var(--duration-fast) ease-out, color var(--duration-fast) ease-out, border-color var(--duration-fast) ease-out, transform var(--duration-instant) ease-out;background-color:#0000;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.ui-icon-btn--md{width:var(--tap-min);height:var(--tap-min);min-width:var(--tap-min);min-height:var(--tap-min)}.ui-icon-btn--lg{width:var(--tap-comfort);height:var(--tap-comfort);min-width:var(--tap-comfort);min-height:var(--tap-comfort)}.ui-icon-btn:active:not(:disabled){transform:scale(.95)}.ui-icon-btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.ui-icon-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.ui-icon-btn--ghost{color:var(--text-secondary);background-color:#0000;border-color:#0000}.ui-icon-btn--ghost:hover:not(:disabled){background-color:var(--surface-hover);color:var(--text-primary)}.ui-icon-btn--secondary{background-color:var(--surface-card);color:var(--text-primary);border-color:var(--border-subtle)}.ui-icon-btn--secondary:hover:not(:disabled){background-color:var(--surface-hover);border-color:var(--border-strong)}.ui-icon-btn--primary{background-color:var(--btn-primary-bg);color:var(--btn-primary-fg);border-color:#0000}.ui-icon-btn--primary:hover:not(:disabled){background-color:var(--btn-primary-hover)}.ui-icon-btn--danger{color:var(--danger-fg);background-color:#0000}.ui-icon-btn--danger:hover:not(:disabled){background-color:var(--danger-surface);border-color:var(--danger-border)}.ui-icon-btn__icon{justify-content:center;align-items:center;display:inline-flex}.ui-overflow-menu{display:inline-flex;position:relative}.ui-overflow-menu__dropdown{z-index:var(--z-dropdown);background-color:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);min-width:200px;box-shadow:var(--shadow-lg);padding:var(--space-1);margin-top:var(--space-1);animation:ui-menu-fade-in var(--duration-fast) ease-out forwards;flex-direction:column;display:flex;position:absolute;top:100%;right:0}.ui-overflow-menu__item{align-items:center;gap:var(--space-3);width:100%;min-height:var(--tap-comfort);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:var(--text-base);text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--duration-fast) ease-out, color var(--duration-fast) ease-out;background:0 0;border:none;display:flex}.ui-overflow-menu__item:hover:not(:disabled),.ui-overflow-menu__item:focus-visible:not(:disabled){background-color:var(--surface-hover);outline:none}.ui-overflow-menu__item:disabled{opacity:.45;cursor:not-allowed}.ui-overflow-menu__item--danger{color:var(--danger-fg)}.ui-overflow-menu__item--danger:hover:not(:disabled),.ui-overflow-menu__item--danger:focus-visible:not(:disabled){background-color:var(--danger-surface)}.ui-overflow-menu__icon{color:inherit;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.ui-overflow-menu__label{flex:auto}@keyframes ui-menu-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.ui-overflow-menu__dropdown{animation:none}}.app-header{background-color:var(--surface-bg);border-bottom:1px solid var(--border-subtle);width:100%;z-index:var(--z-header,100);transition:background-color var(--duration-fast) ease-out, border-color var(--duration-fast) ease-out;position:sticky;top:0}.header-container{width:100%;max-width:1440px;padding:var(--space-2) var(--gutter);justify-content:space-between;align-items:center;gap:var(--space-2);margin:0 auto;display:flex}.app-header .header-left{align-items:center;gap:var(--space-2);flex:0 auto;min-width:0;max-width:calc(100% - 96px);display:flex}.app-header .brand{align-items:baseline;gap:var(--space-2);white-space:nowrap;display:none}.brand-title{font-size:var(--text-base);letter-spacing:-.02em;color:var(--text-primary);margin:0;font-weight:700}.brand-divider{color:var(--border-strong);font-weight:400}.brand-subtitle{font-size:var(--text-xs);color:var(--text-muted);font-weight:500}.header-actions{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.stats-group{align-items:center;gap:var(--space-2);display:none}.stat-pill{align-items:center;gap:var(--space-2);padding:4px var(--space-3);border-radius:var(--radius-sm);background-color:var(--surface-card);border:1px solid var(--border-subtle);font-size:var(--text-xs);color:var(--text-secondary);font-weight:500;display:inline-flex}.stat-number{color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:600}.stat-pill-warning{cursor:pointer;background-color:var(--warning-surface);border-color:var(--warning-border);color:var(--warning-fg);min-height:var(--tap-min);transition:opacity var(--duration-fast) ease-out, border-color var(--duration-fast) ease-out}.stat-pill-warning:hover,.stat-pill-warning.active{border-color:var(--warning-fg)}.stat-indicator{border-radius:var(--radius-full);background-color:var(--warning-fg);width:6px;height:6px}.header-mobile-actions{align-items:center;gap:var(--space-1);display:flex}.header-desktop-actions{align-items:center;gap:var(--space-2);display:none}.btn-scan-receipt-header{align-items:center;gap:var(--space-2);min-height:var(--tap-min);padding:0 var(--space-3);border-radius:var(--radius-md);background-color:var(--surface-card);color:var(--text-primary);border:1px solid var(--border-subtle);font-family:inherit;font-size:var(--text-sm);cursor:pointer;white-space:nowrap;transition:background-color var(--duration-fast) ease-out, border-color var(--duration-fast) ease-out;font-weight:500;display:inline-flex}.btn-scan-receipt-header:hover{background-color:var(--surface-hover);border-color:var(--border-strong)}.btn-scan-receipt-header:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}@media (width>=768px){.app-header .header-left{flex:auto;max-width:none}.app-header .brand{display:flex}.header-mobile-actions{display:none}.header-desktop-actions{display:flex}.header-container{padding:var(--space-3) var(--gutter)}}@media (width>=960px){.stats-group{display:flex}}.ui-stepper{background-color:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);-webkit-user-select:none;user-select:none;box-shadow:var(--shadow-sm);align-items:center;padding:2px;display:inline-flex}.ui-stepper--comfort .ui-stepper__btn{width:var(--tap-comfort);height:var(--tap-comfort);min-width:var(--tap-comfort);min-height:var(--tap-comfort)}.ui-stepper--tablet .ui-stepper__btn{width:var(--tap-tablet);height:var(--tap-tablet);min-width:var(--tap-tablet);min-height:var(--tap-tablet)}.ui-stepper__btn{background-color:var(--surface-bg);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;touch-action:manipulation;transition:background-color var(--duration-fast) ease-out, color var(--duration-fast) ease-out, border-color var(--duration-fast) ease-out, transform var(--duration-instant) ease-out;justify-content:center;align-items:center;display:inline-flex}.ui-stepper__btn:hover:not(:disabled){background-color:var(--surface-hover);border-color:var(--border-strong)}.ui-stepper__btn:active:not(:disabled){background-color:var(--surface-hover);transform:scale(.92)}.ui-stepper__btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;z-index:1}.ui-stepper__btn:disabled{opacity:.35;cursor:not-allowed;background-color:#0000;border-color:#0000;transform:none}.ui-stepper__value-wrapper{min-width:56px;padding:0 var(--space-2);justify-content:center;align-items:center;display:flex}.ui-stepper__display{cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:var(--text-lg);font-variant-numeric:tabular-nums;background:0 0;border:none;justify-content:center;align-items:baseline;gap:3px;font-weight:600;line-height:1.2;display:inline-flex}.ui-stepper__display:hover{background-color:var(--surface-hover)}.ui-stepper__display:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.ui-stepper__unit{font-size:var(--text-xs);color:var(--text-secondary);font-weight:500}.ui-stepper__input{text-align:center;width:64px;height:36px;font-family:inherit;font-size:var(--text-lg);font-variant-numeric:tabular-nums;background-color:var(--surface-bg);color:var(--text-primary);border:1px solid var(--border-focus);border-radius:var(--radius-sm);outline:none;padding:0;font-weight:600}@media (width>=768px){.ui-stepper--comfort .ui-stepper__btn{width:var(--tap-tablet);height:var(--tap-tablet)}}.ui-btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background-color var(--duration-fast) ease-out, border-color var(--duration-fast) ease-out, transform var(--duration-instant) ease-out, box-shadow var(--duration-fast) ease-out;border:1px solid #0000;font-family:inherit;font-weight:500;line-height:1.25;text-decoration:none;display:inline-flex}.ui-btn--md{min-height:var(--tap-min);padding:var(--space-2) var(--space-4);font-size:var(--text-base)}.ui-btn--lg{min-height:52px;padding:var(--space-3) var(--space-6);font-size:var(--text-base)}.ui-btn--block{width:100%}.ui-btn:active:not(:disabled){transform:scale(.98)}.ui-btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.ui-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.ui-btn--primary{background-color:var(--btn-primary-bg);color:var(--btn-primary-fg);border-color:#0000}.ui-btn--primary:hover:not(:disabled){background-color:var(--btn-primary-hover)}.ui-btn--secondary{background-color:var(--surface-card);color:var(--text-primary);border-color:var(--border-subtle)}.ui-btn--secondary:hover:not(:disabled){background-color:var(--surface-hover);border-color:var(--border-strong)}.ui-btn--ghost{color:var(--text-secondary);background-color:#0000;border-color:#0000}.ui-btn--ghost:hover:not(:disabled){background-color:var(--surface-hover);color:var(--text-primary)}.ui-btn--danger{background-color:var(--danger-surface);color:var(--danger-fg);border-color:var(--danger-border)}.ui-btn--danger:hover:not(:disabled){background-color:var(--danger-border);color:var(--text-primary)}.ui-btn__content{align-items:center;display:inline-flex}.ui-btn__icon-left,.ui-btn__icon-right,.ui-btn__spinner{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.ui-confirm-portal{z-index:var(--z-modal);padding:var(--space-4);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ui-confirm-backdrop{-webkit-backdrop-filter:blur(2px);animation:ui-confirm-fade-in var(--duration-fast) ease-out forwards;background-color:#0000008c;position:fixed;inset:0}.ui-confirm-container{background-color:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);width:min(92vw,440px);padding:var(--space-5);box-shadow:var(--shadow-lg);gap:var(--space-5);z-index:1;outline:none;flex-direction:column;animation:.16s cubic-bezier(.2,.8,.2,1) forwards ui-confirm-pop;display:flex;position:relative}.ui-confirm-content{gap:var(--space-2);flex-direction:column;display:flex}.ui-confirm-title{font-size:var(--text-lg);color:var(--text-primary);margin:0;font-weight:600;line-height:1.3}.ui-confirm-desc{font-size:var(--text-sm);color:var(--text-secondary);margin:0;line-height:1.4}.ui-confirm-actions{justify-content:flex-end;align-items:center;gap:var(--space-2);display:flex}.ui-confirm-btn{min-width:96px}@keyframes ui-confirm-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ui-confirm-pop{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.ui-confirm-container,.ui-confirm-backdrop{animation:none}}.batch-list-wrapper{gap:var(--space-3);padding:var(--space-3);background-color:var(--bg-surface);border:1px solid var(--border-muted);border-radius:var(--radius-md);margin-top:var(--space-2);flex-direction:column;display:flex}.batch-list-header{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.batch-list-title{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-primary);font-weight:600;display:flex}.btn-add-batch{align-items:center;gap:var(--space-1);min-height:44px;padding:0 var(--space-3);color:var(--brand-primary);border:1px dashed var(--brand-primary);border-radius:var(--radius-sm);font-size:var(--text-xs);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard);background-color:#0000;font-weight:600;display:inline-flex}.btn-add-batch:hover{background-color:#4f46e514}.btn-add-batch:active{transform:scale(.98)}.batch-list-empty{padding:var(--space-3);text-align:center;font-size:var(--text-xs);color:var(--text-muted)}.batch-items-container{gap:var(--space-2);flex-direction:column;display:flex}.batch-item-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background-color:var(--bg-main);border:1px solid var(--border-muted);border-radius:var(--radius-sm);flex-wrap:wrap;display:flex}.batch-info{gap:var(--space-1);flex-direction:column;flex:auto;min-width:140px;display:flex}.batch-date-line{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.batch-exp-tag{border-radius:var(--radius-sm);font-size:var(--text-xs);align-items:center;gap:4px;padding:2px 8px;font-weight:600;display:inline-flex}.batch-exp-tag.status-expired{color:var(--danger-fg,#ef4444);background-color:#ef444426}.batch-exp-tag.status-warning{color:var(--warning-fg,#f59e0b);background-color:#f59e0b26}.batch-exp-tag.status-normal{color:var(--success-fg,#10b981);background-color:#10b98126}.batch-no-exp{font-size:var(--text-xs);color:var(--text-muted)}.batch-code{font-size:var(--text-xs);color:var(--text-secondary)}.batch-notes{font-size:var(--text-xs);color:var(--text-muted);font-style:italic}.batch-actions-stepper{align-items:center;gap:var(--space-2);margin-left:auto;display:flex}.batch-stepper-control{align-items:center;gap:var(--space-1);background-color:var(--bg-surface);border:1px solid var(--border-muted);border-radius:var(--radius-sm);padding:2px;display:inline-flex}.batch-step-btn{min-width:44px;min-height:44px;color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.batch-step-btn:hover:not(:disabled){background-color:var(--bg-hover)}.batch-step-btn:active:not(:disabled){transform:scale(.96)}.batch-step-btn:disabled{opacity:.35;cursor:not-allowed}.batch-qty-val{padding:0 var(--space-2);font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--text-primary);white-space:nowrap}.batch-delete-btn{min-width:44px;min-height:44px;color:var(--danger-fg,#ef4444);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.batch-delete-btn:hover{background-color:#ef44441a}.product-card{gap:var(--space-2);min-height:96px;padding:var(--space-3);background-color:var(--bg-surface);border:1px solid var(--border-muted);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);cursor:pointer;flex-direction:column;display:flex;position:relative}.product-card:hover{border-color:var(--border-focus)}.product-card:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.product-card.is-selected{border-color:var(--brand-primary);box-shadow:0 0 0 2px var(--brand-primary);background-color:var(--surface-hover)}.product-card.is-low{border-left:4px solid var(--warning-fg,#f59e0b)}.product-card.is-zero{border-left:4px solid var(--danger-fg,#ef4444);background-color:var(--bg-main)}.product-card-row-top{justify-content:space-between;align-items:flex-start;gap:var(--space-2);display:flex}.product-card-name{font-size:var(--text-base);color:var(--text-primary);-webkit-line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;flex:auto;margin:0;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.product-card-menu-wrap{flex:none}.product-card-row-meta{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.card-badge{border-radius:var(--radius-sm);font-size:var(--text-xs);align-items:center;gap:4px;padding:2px 8px;font-weight:500;display:inline-flex}.card-badge.badge-normal{color:var(--success-fg,#10b981);background-color:#10b9811f}.card-badge.badge-warning{color:var(--warning-fg,#f59e0b);background-color:#f59e0b26;font-weight:600}.card-badge.badge-danger{color:var(--danger-fg,#ef4444);background-color:#ef444426;font-weight:600}.card-badge.badge-exp{background-color:var(--bg-main);border:1px solid var(--border-muted)}.card-badge.badge-exp.status-expired{color:var(--danger-fg,#ef4444);border-color:#ef444466;font-weight:600}.card-badge.badge-exp.status-warning{color:var(--warning-fg,#f59e0b);border-color:#f59e0b66;font-weight:600}.card-badge.badge-location{background-color:var(--bg-main);color:var(--text-secondary);border:1px solid var(--border-muted)}.card-batches-toggle-btn{min-height:44px;padding:0 var(--space-2);border:1px solid var(--border-muted);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--brand-primary);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard);background:0 0;align-items:center;gap:4px;font-weight:600;display:inline-flex}.card-batches-toggle-btn:hover{background-color:#4f46e514}.product-card-row-bottom{padding-top:var(--space-1);justify-content:flex-end;align-items:center;margin-top:auto;display:flex}.product-card-stock-stepper{align-items:center;display:flex}.product-card-batches-drawer{margin-top:var(--space-2);width:100%}.product-row-container{background-color:var(--bg-surface);border:1px solid var(--border-muted);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:border-color var(--duration-fast) var(--ease-standard);flex-direction:column;display:flex}.product-row-container:hover{border-color:var(--border-focus)}.product-row-container.is-selected{border-color:var(--brand-primary);box-shadow:0 0 0 1px var(--brand-primary);background-color:var(--surface-hover)}.product-row-container.is-low{border-left:4px solid var(--warning-fg,#f59e0b)}.product-row-container.is-zero{border-left:4px solid var(--danger-fg,#ef4444);background-color:var(--bg-main)}.product-row{align-items:center;gap:var(--space-4);min-height:64px;padding:var(--space-3) var(--space-4);cursor:pointer;border-radius:var(--radius-md);display:flex}.product-row:focus-visible{outline:2px solid var(--border-focus);outline-offset:-2px}.product-row-col-info{gap:var(--space-1);flex-direction:column;flex:300px;min-width:0;display:flex}.product-row-title-wrap{align-items:center;gap:var(--space-2);display:flex}.product-row-name{font-size:var(--text-base);color:var(--text-primary);-webkit-line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.badge-batches-toggle{min-height:44px;padding:0 var(--space-2);background-color:var(--bg-main);border:1px solid var(--border-muted);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--brand-primary);cursor:pointer;white-space:nowrap;align-items:center;gap:4px;font-weight:600;display:inline-flex}.badge-batches-toggle:hover{background-color:#4f46e514}.product-row-tags{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.row-tag{border-radius:var(--radius-sm);font-size:var(--text-xs);align-items:center;gap:4px;padding:2px 8px;font-weight:500;display:inline-flex}.row-tag-location{background-color:var(--bg-main);border:1px solid var(--border-muted);color:var(--text-secondary)}.row-tag-category{background-color:var(--bg-main);border:1px solid var(--border-muted);color:var(--text-muted)}.row-tag-date{background-color:var(--bg-main);border:1px solid var(--border-muted)}.row-tag-date.status-expired{color:var(--danger-fg,#ef4444);border-color:#ef444466;font-weight:600}.row-tag-date.status-warning{color:var(--warning-fg,#f59e0b);border-color:#f59e0b66;font-weight:600}.row-tag-author{color:var(--text-muted);font-size:11px}.product-row-col-status{flex:0 0 160px;align-items:center;display:flex}.row-status-badge{border-radius:var(--radius-sm);font-size:var(--text-xs);text-align:center;padding:4px 10px;font-weight:600;display:inline-block}.row-status-badge.status-normal{color:var(--success-fg,#10b981);background-color:#10b9811f}.row-status-badge.status-warning{color:var(--warning-fg,#f59e0b);background-color:#f59e0b26}.row-status-badge.status-danger{color:var(--danger-fg,#ef4444);background-color:#ef444426}.product-row-col-stock{flex:none;align-items:center;display:flex}.product-row-col-actions{align-items:center;gap:var(--space-2);flex:none;display:flex}.btn-add-batch-quick{min-height:44px;padding:0 var(--space-3);border:1px solid var(--border-muted);border-radius:var(--radius-sm);color:var(--brand-primary);font-size:var(--text-xs);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard);background-color:#0000;align-items:center;gap:4px;font-weight:600;display:inline-flex}.btn-add-batch-quick:hover{background-color:#4f46e514}.product-row-batches-drawer{padding:0 var(--space-4) var(--space-3)}.item-row-responsive-wrapper{margin-bottom:var(--space-2);width:100%}.item-card-mobile-only{display:block}.item-row-tablet-only{display:none}@media (width>=768px) and (width<=1023px){.item-card-mobile-only{display:none}.item-row-tablet-only{display:block}}@media (width>=1024px){.item-card-mobile-only{display:block}.item-row-tablet-only{display:none}}.ui-sheet-portal{z-index:var(--z-modal);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.ui-sheet-backdrop{-webkit-backdrop-filter:blur(2px);animation:ui-sheet-fade-in var(--duration-fast) ease-out forwards;background-color:#0000008c;position:fixed;inset:0}.ui-sheet-container{background-color:var(--surface-card);border-top:1px solid var(--border-subtle);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);width:100%;max-height:92vh;box-shadow:var(--shadow-lg);z-index:1;outline:none;flex-direction:column;animation:.22s cubic-bezier(.2,.8,.2,1) forwards ui-sheet-slide-up;display:flex;position:relative}.ui-sheet-handle{padding-top:var(--space-2);padding-bottom:var(--space-1);justify-content:center;align-items:center;display:flex}.ui-sheet-handle__bar{border-radius:var(--radius-full);background-color:var(--border-strong);width:36px;height:4px}.ui-sheet-header{padding:var(--space-2) var(--space-4) var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:flex-start;display:flex}.ui-sheet-header__titles{gap:var(--space-1);padding-right:var(--space-2);flex-direction:column;display:flex}.ui-sheet-title{font-size:var(--text-lg);color:var(--text-primary);margin:0;font-weight:600;line-height:1.25}.ui-sheet-desc{font-size:var(--text-sm);color:var(--text-secondary);margin:0;line-height:1.35}.ui-sheet-close-btn{margin-top:-4px;margin-right:-8px}.ui-sheet-body{-webkit-overflow-scrolling:touch;padding:var(--space-4);gap:var(--space-4);flex-direction:column;flex:auto;display:flex;overflow-y:auto}.ui-sheet-footer{justify-content:flex-end;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom,0px)) var(--space-4);background-color:var(--surface-card);border-top:1px solid var(--border-subtle);flex-shrink:0;display:flex}@keyframes ui-sheet-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ui-sheet-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (width>=768px){.ui-sheet-portal{padding:var(--space-6);align-items:center}.ui-sheet-container{width:min(92vw, var(--sheet-max-width,560px));border:1px solid var(--border-subtle);border-radius:var(--radius-lg);max-height:85vh;animation:.18s ease-out forwards ui-dialog-zoom-in}.ui-sheet-handle{display:none}.ui-sheet-footer{padding-bottom:var(--space-3)}}@keyframes ui-dialog-zoom-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.ui-sheet-container,.ui-sheet-backdrop{animation:none}}.ui-field{gap:var(--space-1);flex-direction:column;width:100%;display:flex}.ui-field__label{font-size:var(--text-sm);color:var(--text-primary);font-weight:500;line-height:1.3}.ui-field__required{color:var(--danger-fg)}.ui-field__control-wrapper{align-items:center;width:100%;display:flex;position:relative}.ui-field__input{width:100%;min-height:var(--tap-comfort);padding:var(--space-2) var(--space-3);color:var(--text-primary);background-color:var(--surface-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:border-color var(--duration-fast) ease-out, box-shadow var(--duration-fast) ease-out;font-family:inherit;font-size:max(16px,1rem);line-height:1.4}.ui-field__input:hover:not(:disabled){border-color:var(--border-strong)}.ui-field__input:focus-visible,.ui-field__input:focus{border-color:var(--border-focus);box-shadow:0 0 0 2px var(--border-focus);outline:none}.ui-field__input:disabled{opacity:.6;cursor:not-allowed;background-color:var(--surface-hover)}.ui-field__left-icon{left:var(--space-3);color:var(--text-muted);pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute}.ui-field__input--has-left{padding-left:calc(var(--space-3) + 24px)}.ui-field__right-action{right:var(--space-2);align-items:center;display:flex;position:absolute}.ui-field__input--has-right{padding-right:calc(var(--space-2) + 40px)}.ui-field__unit{right:var(--space-3);font-size:var(--text-sm);color:var(--text-secondary);pointer-events:none;font-weight:500;position:absolute}.ui-field__input--has-unit{padding-right:calc(var(--space-3) + 36px)}.ui-field__input--select{appearance:none;padding-right:calc(var(--space-3) + 28px);cursor:pointer}.ui-field__select-chevron{right:var(--space-3);pointer-events:none;color:var(--text-secondary);align-items:center;display:flex;position:absolute}.ui-field--error .ui-field__input{border-color:var(--danger-fg)}.ui-field--error .ui-field__input:focus-visible,.ui-field--error .ui-field__input:focus{box-shadow:0 0 0 2px var(--danger-fg)}.ui-field__error{align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--danger-fg);margin:0;line-height:1.3;display:flex}.ui-field__helper{font-size:var(--text-xs);color:var(--text-muted);margin:0;line-height:1.3}.quick-add-form{gap:var(--space-4);flex-direction:column;display:flex}.quick-add-row{gap:var(--space-3);grid-template-columns:1fr 1fr;align-items:start;display:grid}@media (width<=480px){.quick-add-row{grid-template-columns:1fr}}.unit-chips-grid{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.unit-chip-btn{min-height:44px;padding:0 var(--space-2);background-color:var(--bg-main);border:1px solid var(--border-muted);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-sm);cursor:pointer;transition:all var(--duration-fast) var(--ease-standard);justify-content:center;align-items:center;font-weight:500;display:inline-flex}.unit-chip-btn:hover{border-color:var(--border-focus)}.unit-chip-btn.is-active{background-color:var(--brand-primary);color:#fff;border-color:var(--brand-primary);font-weight:600}.btn-more-options{justify-content:center;align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-3);background-color:var(--bg-main);border:1px dashed var(--border-muted);border-radius:var(--radius-sm);color:var(--brand-primary);font-size:var(--text-sm);cursor:pointer;width:100%;margin-top:var(--space-1);transition:background-color var(--duration-fast) var(--ease-standard);font-weight:600;display:flex}.btn-more-options:hover{background-color:#4f46e514}.advanced-options-card{gap:var(--space-3);padding:var(--space-3);background-color:var(--bg-main);border:1px solid var(--border-muted);border-radius:var(--radius-md);flex-direction:column;display:flex}.checkbox-row{align-items:flex-start;gap:var(--space-2);cursor:pointer;min-height:44px;padding:var(--space-2) 0;display:flex}.checkbox-row input[type=checkbox]{cursor:pointer;width:20px;height:20px;margin-top:2px}.checkbox-text-group{flex-direction:column;gap:2px;display:flex}.checkbox-title{font-size:var(--text-sm);color:var(--text-primary);font-weight:600}.checkbox-sub{font-size:var(--text-xs);color:var(--text-muted);line-height:1.3}.quick-add-footer-actions{justify-content:flex-end;align-items:center;gap:var(--space-3);width:100%;display:flex}.add-batch-footer{justify-content:flex-end;gap:var(--space-3);width:100%;display:flex}.add-batch-form{gap:var(--space-4);flex-direction:column;display:flex}.ui-bottom-nav{z-index:var(--z-dock);background-color:var(--surface-card);border-top:1px solid var(--border-subtle);padding-bottom:env(safe-area-inset-bottom,0px);-webkit-user-select:none;user-select:none;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #0000000d}.ui-bottom-nav__inner{height:var(--bottom-nav-height,64px);max-width:768px;padding:0 var(--space-2);justify-content:space-around;align-items:center;margin:0 auto;display:flex}.ui-bottom-nav__item{height:100%;min-height:var(--tap-min);min-width:var(--tap-min);padding:var(--space-1) 0;color:var(--text-muted);cursor:pointer;transition:color var(--duration-fast) ease-out, transform var(--duration-instant) ease-out;-webkit-tap-highlight-color:transparent;background:0 0;border:none;outline:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;display:flex}.ui-bottom-nav__item:active{transform:scale(.94)}.ui-bottom-nav__item:focus-visible{outline:2px solid var(--border-focus);outline-offset:-2px;border-radius:var(--radius-sm)}.ui-bottom-nav__item--active{color:var(--btn-primary-bg)}.ui-bottom-nav__icon-wrapper{justify-content:center;align-items:center;display:inline-flex;position:relative}.ui-bottom-nav__label{font-size:var(--text-xs);white-space:nowrap;font-weight:500;line-height:1}.ui-bottom-nav__item--active .ui-bottom-nav__label{font-weight:600}.ui-bottom-nav__badge{border-radius:var(--radius-full);background-color:var(--warning-fg);color:#fff;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:11px;font-weight:700;line-height:1;display:flex;position:absolute;top:-4px;right:-10px}@media (width>=1024px){.ui-bottom-nav{display:none}}.ui-nav-rail{display:none}@media (width>=1024px){.ui-nav-rail{width:80px;z-index:var(--z-dock);background-color:var(--surface-card);border-right:1px solid var(--border-subtle);padding:var(--space-4) 0;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0}.ui-nav-rail__header{margin-bottom:var(--space-6)}.ui-nav-rail__brand-icon{border-radius:var(--radius-md);background-color:var(--surface-hover);width:44px;height:44px;color:var(--text-primary);justify-content:center;align-items:center;display:inline-flex}.ui-nav-rail__nav{align-items:center;gap:var(--space-3);flex-direction:column;width:100%;display:flex}.ui-nav-rail__item{justify-content:center;align-items:center;gap:var(--space-1);border-radius:var(--radius-md);width:68px;height:64px;color:var(--text-muted);cursor:pointer;transition:background-color var(--duration-fast) ease-out, color var(--duration-fast) ease-out;background:0 0;border:none;flex-direction:column;display:flex}.ui-nav-rail__item:hover{background-color:var(--surface-hover);color:var(--text-primary)}.ui-nav-rail__item:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.ui-nav-rail__item--active{background-color:var(--surface-hover);color:var(--btn-primary-bg)}.ui-nav-rail__icon-wrapper{display:inline-flex;position:relative}.ui-nav-rail__label{font-size:var(--text-xs);font-weight:500;line-height:1}.ui-nav-rail__item--active .ui-nav-rail__label{font-weight:600}.ui-nav-rail__badge{border-radius:var(--radius-full);background-color:var(--warning-fg);color:#fff;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:11px;font-weight:700;line-height:1;display:flex;position:absolute;top:-4px;right:-10px}}.ui-fab-wrapper{bottom:calc(var(--bottom-nav-height,64px) + var(--space-3) + env(safe-area-inset-bottom,0px));right:var(--gutter);z-index:var(--z-fab);flex-direction:column;align-items:flex-end;display:flex;position:fixed}.ui-fab{border-radius:var(--radius-full);background-color:var(--btn-primary-bg);width:56px;min-width:56px;height:56px;min-height:56px;color:var(--btn-primary-fg);box-shadow:var(--shadow-lg);cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform var(--duration-fast) ease-out, background-color var(--duration-fast) ease-out, box-shadow var(--duration-fast) ease-out;border:none;justify-content:center;align-items:center;display:flex}.ui-fab:hover{background-color:var(--btn-primary-hover);transform:translateY(-2px);box-shadow:0 8px 16px #0003}.ui-fab:active{transform:scale(.92)}.ui-fab:focus-visible{outline:2px solid var(--border-focus);outline-offset:3px}.ui-fab__icon{justify-content:center;align-items:center;display:flex}.ui-fab-menu{align-items:flex-end;gap:var(--space-2);margin-bottom:var(--space-3);animation:ui-fab-menu-in var(--duration-fast) cubic-bezier(.2, .8, .2, 1) forwards;flex-direction:column;display:flex}.ui-fab-menu-item{align-items:center;gap:var(--space-2);min-height:var(--tap-min);padding:var(--space-2) var(--space-3);background-color:var(--surface-card);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-full);box-shadow:var(--shadow-md);font-family:inherit;font-size:var(--text-sm);cursor:pointer;white-space:nowrap;transition:background-color var(--duration-fast) ease-out, transform var(--duration-instant) ease-out;font-weight:500;display:flex}.ui-fab-menu-item:hover{background-color:var(--surface-hover);border-color:var(--border-strong)}.ui-fab-menu-item:active{transform:scale(.96)}.ui-fab-menu-item:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.ui-fab-menu-icon{color:var(--text-secondary);justify-content:center;align-items:center;display:inline-flex}@keyframes ui-fab-menu-in{0%{opacity:0;transform:translateY(12px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width>=1024px){.ui-fab-wrapper{bottom:var(--space-6)}}@media (prefers-reduced-motion:reduce){.ui-fab-menu{animation:none}}.ui-app-shell{background-color:var(--surface-bg);width:100%;min-height:100vh;color:var(--text-primary);display:flex}.ui-app-shell__main{flex-direction:column;flex:auto;width:100%;min-width:0;display:flex}.ui-app-shell__content{width:100%;max-width:1440px;padding:var(--space-4) var(--gutter);padding-bottom:calc(var(--bottom-nav-height,64px) + var(--space-6) + env(safe-area-inset-bottom,0px));flex:auto;margin:0 auto}@media (width>=768px){.ui-app-shell__content{padding:var(--space-5) var(--gutter);padding-bottom:calc(var(--bottom-nav-height,64px) + var(--space-8) + env(safe-area-inset-bottom,0px))}}@media (width>=1024px){.ui-app-shell__main{margin-left:80px}.ui-app-shell__content{padding-bottom:var(--space-8)}}.metrics-container{gap:var(--space-4);flex-direction:column;width:100%;display:flex}.metrics-kpi-grid{gap:var(--space-3);grid-template-columns:1fr;display:grid}@media (width>=360px){.metrics-kpi-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.metrics-kpi-grid{gap:var(--space-4);grid-template-columns:repeat(4,1fr)}}.kpi-card{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4);gap:var(--space-1);flex-direction:column;display:flex}.kpi-title-row{justify-content:space-between;align-items:center;display:flex}.kpi-label{font-size:var(--text-xs);color:var(--text-muted);font-weight:500}.kpi-icon-accent{color:var(--text-muted)}.kpi-value{font-size:var(--text-2xl);letter-spacing:-.02em;color:var(--text-primary);font-weight:700;line-height:1.2}.kpi-value.status-warning{color:var(--warning-fg);background:0 0;border:none}.kpi-value.status-success{color:var(--success-fg);background:0 0;border:none}.kpi-subtext{font-size:var(--text-xs);color:var(--text-muted);line-height:var(--lh-snug)}.metrics-columns{gap:var(--space-4);grid-template-columns:1fr;display:grid}@media (width>=768px){.metrics-columns{grid-template-columns:repeat(2,1fr)}}.metric-panel{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.metric-panel-title{font-size:var(--text-md);color:var(--text-primary);margin:0;font-weight:600}.metric-list{gap:var(--space-2);flex-direction:column;display:flex}.metric-row{padding:var(--space-2) 0;border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.metric-row:last-child{border-bottom:none}.metric-row-name{font-size:var(--text-sm);color:var(--text-primary);font-weight:500}.metric-row-stat{font-size:var(--text-sm);color:var(--text-secondary);font-weight:600}.metric-bar-wrapper{gap:var(--space-1);flex-direction:column;display:flex}.metric-bar-track{border-radius:var(--radius-full);background-color:var(--bg-surface-subtle);height:6px;overflow:hidden}.metric-bar-fill{border-radius:var(--radius-full);background-color:var(--primary);height:100%;transition:width var(--transition)}.metrics-cost-tag{font-size:var(--text-sm);font-weight:600}.ui-filter-bar{width:100%;position:relative}.ui-filter-bar__scroller{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-1);scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;overflow:auto hidden}.ui-filter-bar__scroller::-webkit-scrollbar{display:none}.ui-filter-bar__scroller>*{scroll-snap-align:start}@media (width>=768px){.ui-filter-bar--wrap-tablet .ui-filter-bar__scroller{flex-wrap:wrap;overflow-x:visible}}.ui-chip{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap-min);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);background-color:var(--surface-card);color:var(--text-secondary);border:1px solid var(--border-subtle);font-family:inherit;font-size:var(--text-sm);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--duration-fast) ease-out, color var(--duration-fast) ease-out, border-color var(--duration-fast) ease-out, transform var(--duration-instant) ease-out;flex-shrink:0;font-weight:500;line-height:1.25;display:inline-flex}.ui-chip:hover:not(:disabled){background-color:var(--surface-hover);color:var(--text-primary);border-color:var(--border-strong)}.ui-chip:active:not(:disabled){transform:scale(.96)}.ui-chip:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.ui-chip:disabled{opacity:.5;cursor:not-allowed;transform:none}.ui-chip--selected{background-color:var(--btn-primary-bg);color:var(--btn-primary-fg);border-color:#0000;font-weight:600}.ui-chip--selected:hover:not(:disabled){background-color:var(--btn-primary-hover);color:var(--btn-primary-fg)}.ui-chip__icon{align-items:center;display:inline-flex}.ui-chip__count{font-size:var(--text-xs);padding:1px var(--space-1);border-radius:var(--radius-full);font-variant-numeric:tabular-nums;background-color:#ffffff2e;justify-content:center;align-items:center;display:inline-flex}.ui-chip:not(.ui-chip--selected) .ui-chip__count{background-color:var(--surface-hover);color:var(--text-muted)}.organization-container{gap:var(--space-4);flex-direction:column;width:100%;display:flex}.org-header{gap:var(--space-3);flex-direction:column;display:flex}@media (width>=640px){.org-header{flex-direction:row;justify-content:space-between;align-items:flex-end}}.org-title{font-size:var(--text-xl);color:var(--text-primary);margin:0;font-weight:700}.org-subtitle{font-size:var(--text-sm);color:var(--text-muted);margin:var(--space-1) 0 0 0}.org-subtabs{background-color:var(--bg-surface-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-md);grid-template-columns:repeat(3,1fr);gap:4px;width:100%;padding:3px;display:grid}.org-tab-btn{min-height:var(--tap-min);padding:var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-secondary);cursor:pointer;transition:all var(--transition);text-align:center;background:0 0;border:none;justify-content:center;align-items:center;gap:6px;font-weight:500;display:flex}@media (width>=480px){.org-tab-btn{font-size:var(--text-sm)}}.org-tab-btn:hover{color:var(--text-primary)}.org-tab-btn.active{background-color:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);font-weight:600}.org-section{gap:var(--space-3);flex-direction:column;display:flex}.section-toolbar{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.section-hint{font-size:var(--text-xs);color:var(--text-muted);line-height:var(--lh-snug)}.org-list{gap:var(--space-2);flex-direction:column;display:flex}.org-list-item{min-height:56px;padding:var(--space-2) var(--space-3);background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);align-items:center;gap:var(--space-3);transition:all var(--transition);display:flex}.org-list-item:hover{border-color:var(--border-muted);background-color:var(--bg-surface-hover)}.org-list-icon{border-radius:var(--radius-sm);background-color:var(--bg-surface-subtle);width:36px;height:36px;color:var(--primary);border:1px solid var(--border-subtle);flex-shrink:0;justify-content:center;align-items:center;display:flex}.org-list-icon.is-tag{color:var(--tag-category-fg)}.org-list-icon.is-store{color:var(--tag-location-fg)}.org-list-main{cursor:pointer;flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.org-list-title{font-size:var(--text-sm);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.org-list-desc{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.org-list-badge{font-size:var(--text-xs);color:var(--text-secondary);background-color:var(--bg-surface-subtle);padding:4px var(--space-2);border-radius:var(--radius-xs);border:1px solid var(--border-subtle);white-space:nowrap;flex-shrink:0}.org-list-actions{flex-shrink:0}.org-empty-card{padding:var(--space-8) var(--space-4);text-align:center;background-color:var(--bg-surface);border:1px dashed var(--border-subtle);border-radius:var(--radius-lg);color:var(--text-muted);font-size:var(--text-sm)}.org-modal-form{gap:var(--space-4);flex-direction:column;display:flex}.recipes-view{gap:var(--space-4);flex-direction:column;width:100%;display:flex}.recipes-tabs-header{background-color:var(--bg-surface-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-md);grid-template-columns:repeat(2,1fr);gap:4px;width:100%;padding:3px;display:grid}.recipes-subtab-btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap-min);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition);background:0 0;border:none;font-weight:500;display:flex}.recipes-subtab-btn:hover{color:var(--text-primary)}.recipes-subtab-btn.is-active{background-color:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);font-weight:600}.recipes-generate-container{gap:var(--space-4);flex-direction:column;display:flex}.recipe-card-box{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.recipe-section-title{align-items:center;gap:var(--space-2);font-size:var(--text-md);color:var(--text-primary);margin:0;font-weight:600;display:flex}.diners-config-group,.diners-stepper-row{gap:var(--space-3);flex-direction:column;display:flex}@media (width>=600px){.diners-stepper-row{flex-direction:row;justify-content:space-between;align-items:center}}.diners-presets{gap:var(--space-2);flex-wrap:wrap;display:flex}.preset-chip{min-height:var(--tap-min);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background-color:var(--bg-surface-subtle);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition);justify-content:center;align-items:center;font-weight:500;display:inline-flex}.preset-chip:hover{background-color:var(--bg-surface-hover);color:var(--text-primary)}.preset-chip.is-active{background-color:var(--primary);border-color:var(--primary);color:var(--primary-fg);font-weight:600}.recipes-field-group{margin-top:var(--space-2)}.recipes-label-block{margin-bottom:var(--space-2);display:block}.recipe-templates-grid{gap:var(--space-3);grid-template-columns:1fr;display:grid}@media (width>=768px){.recipe-templates-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.recipe-templates-grid{grid-template-columns:repeat(3,1fr)}}.template-card-btn{min-height:120px;padding:var(--space-3);background-color:var(--bg-surface-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-md);text-align:left;cursor:pointer;transition:all var(--transition);flex-direction:column;justify-content:space-between;display:flex}.template-card-btn:hover{border-color:var(--border-muted);background-color:var(--bg-surface-hover)}.template-card-btn.is-selected{border-color:var(--primary);background-color:var(--bg-surface);box-shadow:0 0 0 1px var(--primary)}.template-card-header{align-items:center;gap:var(--space-2);margin-bottom:var(--space-1);display:flex}.template-icon-box{border-radius:var(--radius-sm);background-color:var(--bg-surface);width:32px;height:32px;color:var(--primary);border:1px solid var(--border-subtle);flex-shrink:0;justify-content:center;align-items:center;display:flex}.template-card-title{font-size:var(--text-sm);color:var(--text-primary);font-weight:600}.template-card-desc{font-size:var(--text-xs);color:var(--text-secondary);line-height:var(--lh-snug);margin:0 0 var(--space-2) 0;flex-grow:1}.template-card-footer{align-items:center;display:flex}.template-calorie-badge{font-size:var(--text-xs);color:var(--text-muted);background-color:var(--bg-surface);padding:2px var(--space-2);border-radius:var(--radius-xs);border:1px solid var(--border-subtle)}.recipe-action-wrapper{margin-top:var(--space-2)}.recipe-result-card{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-4);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.recipe-result-header{gap:var(--space-2);flex-direction:column;display:flex}.recipe-badge-pill{border-radius:var(--radius-full);font-size:var(--text-xs);background-color:var(--bg-surface-subtle);border:1px solid var(--border-subtle);color:var(--text-secondary);align-items:center;gap:6px;width:fit-content;padding:4px 10px;font-weight:500;display:inline-flex}.recipe-badge-pill.tag-cache-hit{background-color:var(--success-bg);color:var(--success-fg);border-color:var(--success-border)}.recipe-result-title{font-size:var(--text-xl);color:var(--text-primary);margin:var(--space-1) 0 0 0;font-weight:700}.recipe-result-desc{font-size:var(--text-sm);color:var(--text-secondary);margin:var(--space-1) 0 0 0;line-height:var(--lh-normal)}.recipe-kpis-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.recipe-kpi-chip{min-height:36px;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);background-color:var(--bg-surface-subtle);border:1px solid var(--border-subtle);font-size:var(--text-xs);color:var(--text-secondary);align-items:center;gap:6px;font-weight:500;display:inline-flex}.recipe-section-block{gap:var(--space-2);flex-direction:column;display:flex}.recipe-block-heading{font-size:var(--text-md);color:var(--text-primary);margin:0;font-weight:600}.recipe-ingredients-list{gap:var(--space-2);flex-direction:column;display:flex}.ingredient-row-item{padding:var(--space-2) var(--space-3);background-color:var(--bg-surface-subtle);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.ingredient-info{align-items:center;gap:var(--space-2);display:flex}.ingredient-check-indicator{border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.ingredient-check-indicator.is-available{background-color:var(--success-bg);color:var(--success-fg)}.ingredient-check-indicator.is-condiment{background-color:var(--bg-surface);color:var(--text-muted)}.ingredient-name{font-size:var(--text-sm);color:var(--text-primary);font-weight:500}.ingredient-amount-box{flex-direction:column;align-items:flex-end;display:flex}.ingredient-qty{font-size:var(--text-sm);color:var(--text-primary);font-weight:600}.ingredient-stock-hint{font-size:var(--text-xs);color:var(--text-muted)}.recipe-instructions-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.instruction-step-item{gap:var(--space-3);align-items:flex-start;display:flex}.step-counter{border-radius:var(--radius-full);background-color:var(--primary);width:28px;height:28px;color:var(--primary-fg);font-size:var(--text-sm);flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;font-weight:700;display:flex}.step-text{font-size:var(--text-md);line-height:var(--lh-normal);color:var(--text-primary)}.recipe-tip-box{padding:var(--space-3);border-radius:var(--radius-md);background-color:var(--bg-surface-subtle);border-left:3px solid var(--primary);font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--lh-normal)}.recipe-result-actions{gap:var(--space-2);margin-top:var(--space-2);flex-direction:column;display:flex}@media (width>=600px){.recipe-result-actions{flex-direction:row-reverse}}.recipes-history-container{gap:var(--space-4);flex-direction:column;display:flex}.history-header-box{gap:var(--space-1);flex-direction:column;display:flex}.history-subtitle{font-size:var(--text-sm);color:var(--text-muted);margin:0}.history-cards-list{gap:var(--space-3);flex-direction:column;display:flex}.history-card-item{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.history-card-top{gap:var(--space-2);flex-direction:column;display:flex}@media (width>=600px){.history-card-top{flex-direction:row;justify-content:space-between;align-items:flex-start}}.history-recipe-title{font-size:var(--text-md);color:var(--text-primary);margin:0;font-weight:600}.history-date{font-size:var(--text-xs);color:var(--text-muted)}.history-badge-chips{gap:var(--space-1);flex-wrap:wrap;display:flex}.history-chip{padding:3px var(--space-2);border-radius:var(--radius-sm);background-color:var(--bg-surface-subtle);border:1px solid var(--border-subtle);font-size:var(--text-xs);color:var(--text-secondary);align-items:center;gap:4px;display:inline-flex}.history-deducted-box{gap:var(--space-1);padding-top:var(--space-2);border-top:1px solid var(--border-subtle);flex-direction:column;display:flex}.history-deducted-title{font-size:var(--text-xs);color:var(--text-muted);font-weight:500}.history-deducted-tags{gap:var(--space-1);flex-wrap:wrap;display:flex}.deducted-tag{font-size:var(--text-xs);background-color:var(--bg-surface-subtle);color:var(--text-secondary);padding:2px var(--space-2);border-radius:var(--radius-xs);border:1px solid var(--border-subtle)}.receipt-scanner-footer{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;width:100%;display:flex}.scanned-item-card{gap:var(--space-3);padding:var(--space-3);background-color:var(--bg-surface);border:1px solid var(--border-muted);border-radius:var(--radius-md);margin-bottom:var(--space-3);transition:border-color var(--duration-fast) var(--ease-standard);flex-direction:column;display:flex}.scanned-item-card.is-selected{border-color:var(--brand-primary)}.scanned-item-card.is-unselected{opacity:.6}.scanned-item-row-top{align-items:center;gap:var(--space-3);display:flex}.scanned-item-checkbox-label{cursor:pointer;justify-content:center;align-items:center;min-width:44px;min-height:44px;display:flex}.scanned-item-checkbox-label input[type=checkbox]{cursor:pointer;width:20px;height:20px}.scanned-item-name-input-wrap{flex-direction:column;flex:auto;gap:2px;display:flex}.scanned-name-field{width:100%;min-height:44px;padding:0 var(--space-2);font-size:var(--text-base);color:var(--text-primary);background-color:var(--bg-main);border:1px solid var(--border-muted);border-radius:var(--radius-sm);font-weight:600}.scanned-raw-text{font-size:var(--text-xs);color:var(--text-muted)}.scanned-price-badge{font-size:var(--text-sm);color:var(--text-primary);background-color:var(--bg-main);border-radius:var(--radius-sm);white-space:nowrap;padding:4px 8px;font-weight:700}.scanned-item-row-controls{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.scanned-item-action-area{width:100%;padding-top:var(--space-2);border-top:1px dashed var(--border-muted)}.receipt-file-input{display:none}.receipt-meta-field-grow{flex:2;min-width:180px}.receipt-meta-field{flex:1;min-width:140px}.ui-toast{bottom:calc(var(--bottom-nav-height,64px) + var(--space-3) + env(safe-area-inset-bottom,0px));z-index:var(--z-toast);width:min(calc(100vw - var(--space-6)), 480px);align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);background-color:var(--surface-card);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-family:inherit;font-size:var(--text-sm);animation:ui-toast-slide-up var(--duration-fast) cubic-bezier(.2, .8, .2, 1) forwards;display:flex;position:fixed;left:50%;transform:translate(-50%)}.ui-toast--success{border-left:4px solid var(--success-fg)}.ui-toast--info{border-left:4px solid var(--border-focus)}.ui-toast--warning{border-left:4px solid var(--warning-fg)}.ui-toast--error{border-left:4px solid var(--danger-fg)}.ui-toast__icon{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.ui-toast--success .ui-toast__icon{color:var(--success-fg)}.ui-toast--info .ui-toast__icon{color:var(--border-focus)}.ui-toast--warning .ui-toast__icon{color:var(--warning-fg)}.ui-toast--error .ui-toast__icon{color:var(--danger-fg)}.ui-toast__message{flex:auto;line-height:1.35}.ui-toast__undo-btn{min-height:var(--tap-min);padding:0 var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:var(--text-sm);cursor:pointer;white-space:nowrap;transition:background-color var(--duration-fast) ease-out, border-color var(--duration-fast) ease-out;background:0 0;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.ui-toast__undo-btn:hover{background-color:var(--surface-hover);border-color:var(--border-strong)}.ui-toast__undo-btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.ui-toast__close-btn{min-width:var(--tap-min);min-height:var(--tap-min);color:var(--text-muted);font-size:var(--text-lg);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.ui-toast__close-btn:hover{color:var(--text-primary)}@keyframes ui-toast-slide-up{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.ui-toast{animation:none}}.ui-empty-state{text-align:center;padding:var(--space-8) var(--space-4);flex-direction:column;justify-content:center;align-items:center;max-width:400px;margin:0 auto;display:flex}.ui-empty-state__icon{border-radius:var(--radius-full);background-color:var(--surface-card);border:1px solid var(--border-subtle);width:56px;height:56px;color:var(--text-muted);margin-bottom:var(--space-3);justify-content:center;align-items:center;display:inline-flex}.ui-empty-state__title{margin:0 0 var(--space-1) 0;font-size:var(--text-base);color:var(--text-primary);font-weight:600;line-height:1.3}.ui-empty-state__description{margin:0 0 var(--space-4) 0;font-size:var(--text-sm);color:var(--text-secondary);line-height:1.4}.ui-empty-state__action{justify-content:center;display:flex}.product-detail-body{gap:var(--space-4);flex-direction:column;display:flex}.product-detail-summary-card{align-items:center;gap:var(--space-4);padding:var(--space-4);background-color:var(--bg-surface);border:1px solid var(--border-muted);border-radius:var(--radius-md);display:flex}.summary-qty-box{min-width:80px;padding:var(--space-2) var(--space-3);background-color:var(--bg-main);border-radius:var(--radius-sm);border:1px solid var(--border-muted);flex-direction:column;justify-content:center;align-items:center;display:flex}.summary-qty-number{font-size:var(--text-2xl);color:var(--brand-primary);font-variant-numeric:tabular-nums;font-weight:700;line-height:1}.summary-qty-unit{font-size:var(--text-xs);color:var(--text-muted);margin-top:2px;font-weight:600}.summary-status-box{gap:var(--space-2);flex-direction:column;display:flex}.detail-status{font-size:var(--text-xs);border-radius:var(--radius-sm);width:fit-content;padding:2px 8px;font-weight:600;display:inline-block}.detail-status.status-danger{color:var(--danger-fg,#ef4444);background-color:#ef444426}.detail-status.status-warning{color:var(--warning-fg,#f59e0b);background-color:#f59e0b26}.detail-status.status-normal{color:var(--success-fg,#10b981);background-color:#10b98126}.detail-exp-tag{font-size:var(--text-xs);color:var(--text-secondary);align-items:center;gap:6px;font-weight:500;display:inline-flex}.detail-exp-tag.status-expired{color:var(--danger-fg,#ef4444);font-weight:600}.detail-exp-tag.status-warning{color:var(--warning-fg,#f59e0b);font-weight:600}.product-detail-meta-grid{gap:var(--space-3);padding:var(--space-3);background-color:var(--bg-surface);border:1px solid var(--border-muted);border-radius:var(--radius-md);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.meta-item{flex-direction:column;gap:2px;display:flex}.meta-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:11px;font-weight:600}.meta-value{font-size:var(--text-sm);color:var(--text-primary);font-weight:500}.product-detail-notes{padding:var(--space-3);background-color:var(--bg-surface);border:1px solid var(--border-muted);border-radius:var(--radius-md);flex-direction:column;gap:4px;display:flex}.notes-label{text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:600}.notes-text{font-size:var(--text-sm);color:var(--text-secondary);margin:0;line-height:1.4}.product-detail-footer{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;display:flex}.product-detail-embedded{gap:var(--space-4);background-color:var(--surface-card);border-radius:var(--radius-lg);padding:var(--space-4);flex-direction:column;display:flex}.product-detail-embedded-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-subtle);display:flex}.product-detail-embedded-info{flex-direction:column;gap:2px;display:flex}.product-detail-embedded-title{font-size:var(--text-xl);color:var(--text-primary);margin:0;font-weight:700;line-height:1.25}.product-detail-embedded-subtitle{font-size:var(--text-sm);color:var(--text-secondary)}.product-detail-embedded-footer{margin-top:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border-subtle)}.tab-pane{gap:var(--space-4,16px);flex-direction:column;width:100%;display:flex}.controls-row{gap:var(--space-3,12px);flex-direction:column;display:flex}@media (width>=1024px){.controls-row{justify-content:space-between;align-items:center;gap:var(--space-4,16px);flex-direction:row}}.controls-search{width:100%}@media (width>=1024px){.controls-search{max-width:380px}}.controls-search-meta{justify-content:space-between;align-items:center;gap:var(--space-2,8px);margin-top:var(--space-1,4px);font-size:var(--text-xs,12px);color:var(--text-muted);display:flex}.cross-search-toggle{align-items:center;gap:var(--space-2,6px);cursor:pointer;-webkit-user-select:none;user-select:none;min-height:var(--tap-min,44px);display:inline-flex}.sync-indicator{font-size:var(--text-xs,12px);color:var(--text-muted)}.search-bar{width:100%}.search-input-wrapper{align-items:center;width:100%;display:flex;position:relative}.search-icon{left:var(--space-3,12px);color:var(--text-muted);pointer-events:none;position:absolute}.search-input{width:100%;min-height:var(--tap-min,44px);background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-base,16px);transition:border-color var(--transition);outline:none;padding:0 44px 0 38px}.search-input:focus{border-color:var(--border-focus)}.search-input::placeholder{color:var(--text-muted)}.search-clear-btn{width:44px;min-height:44px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;right:0}.search-clear-btn:hover{color:var(--text-primary)}.controls-filters{flex:1;overflow:hidden}.filter-bar{scrollbar-width:none;width:100%;overflow-x:auto}.filter-bar::-webkit-scrollbar{display:none}.filter-list{align-items:center;gap:var(--space-2,8px);padding-bottom:2px;display:flex}.filter-chip{min-height:var(--tap-min,44px);padding:var(--space-2,8px) var(--space-3,14px);border-radius:var(--radius-md);background-color:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-secondary);font-size:var(--text-sm,14px);cursor:pointer;white-space:nowrap;transition:all var(--transition);flex-shrink:0;justify-content:center;align-items:center;font-weight:500;display:inline-flex}.filter-chip:hover{background-color:var(--bg-surface-hover);color:var(--text-primary);border-color:var(--border-muted)}.filter-chip.is-active{background-color:var(--primary);border-color:var(--primary);color:var(--primary-fg);font-weight:600}.filter-chip-warning.is-active{background-color:var(--warning-fg);border-color:var(--warning-fg);color:#fff}.filter-separator{background-color:var(--border-subtle);width:1px;height:20px;margin:0 var(--space-1,4px);flex-shrink:0}.banner-alert{align-items:center;gap:var(--space-2,10px);padding:var(--space-2,10px) var(--space-3,14px);border-radius:var(--radius-md);background-color:var(--warning-bg);border:1px solid var(--warning-border);color:var(--warning-fg);font-size:var(--text-sm,14px);display:flex}.banner-text{justify-content:space-between;align-items:center;gap:var(--space-2,8px);flex-wrap:wrap;flex:1;display:flex}.inventory-list-container{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);width:100%;box-shadow:var(--shadow-sm);overflow:hidden}.list-table-body,.skeleton-list{flex-direction:column;display:flex}.skeleton-row{border-bottom:1px solid var(--border-subtle);background-color:var(--bg-surface);height:56px;animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.state-empty{text-align:center;align-items:center;gap:var(--space-2,8px);flex-direction:column;padding:48px 20px;display:flex}.empty-title{font-size:var(--text-md,16px);color:var(--text-primary);font-weight:600}.empty-text{font-size:var(--text-sm,14px);color:var(--text-muted);max-width:360px;margin-bottom:var(--space-3,12px)}.ui-skeleton{background-color:var(--surface-hover);animation:1.6s ease-in-out infinite ui-skeleton-pulse;position:relative;overflow:hidden}.ui-skeleton--text{border-radius:var(--radius-sm);width:100%;height:16px;margin-bottom:var(--space-1)}.ui-skeleton--rect{border-radius:var(--radius-md);width:100%;height:64px}.ui-skeleton--circle{border-radius:var(--radius-full);width:44px;height:44px}@keyframes ui-skeleton-pulse{0%{opacity:.55}50%{opacity:.95}to{opacity:.55}}@media (prefers-reduced-motion:reduce){.ui-skeleton{opacity:.7;animation:none}}.ui-banner{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);border:1px solid #0000;line-height:1.35;display:flex}.ui-banner--warning{background-color:var(--warning-surface);color:var(--warning-fg);border-color:var(--warning-border)}.ui-banner--danger{background-color:var(--danger-surface);color:var(--danger-fg);border-color:var(--danger-border)}.ui-banner--info{background-color:var(--surface-card);color:var(--text-primary);border-color:var(--border-subtle)}.ui-banner__icon{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.ui-banner__message{flex:auto}.ui-banner__action-btn{min-height:36px;padding:0 var(--space-3);border-radius:var(--radius-sm);color:inherit;font-family:inherit;font-size:var(--text-xs);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.ui-banner__action-btn:hover{background-color:#ffffff1a}.ui-banner__close-btn{width:32px;height:32px;color:inherit;font-size:var(--text-lg);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.ui-demo-page{background-color:var(--surface-bg);min-height:100vh;color:var(--text-primary);padding:var(--space-4) var(--gutter);padding-bottom:120px}.ui-demo-header{justify-content:space-between;align-items:center;gap:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-subtle);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.ui-demo-title{font-size:var(--text-2xl);margin:0;font-weight:700}.ui-demo-subtitle{font-size:var(--text-sm);color:var(--text-secondary);margin:var(--space-1) 0 0 0}.ui-demo-header-actions{align-items:center;gap:var(--space-3);display:flex}.ui-demo-back-link{font-size:var(--text-sm);color:var(--text-secondary);padding:var(--space-2);text-decoration:underline}.ui-demo-content{gap:var(--space-8);flex-direction:column;max-width:900px;margin:0 auto;display:flex}.ui-demo-section{gap:var(--space-3);padding:var(--space-4);background-color:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);flex-direction:column;display:flex}.ui-demo-section h2{font-size:var(--text-base);margin:0 0 var(--space-2) 0;color:var(--text-primary);border-bottom:1px solid var(--border-subtle);padding-bottom:var(--space-2);font-weight:600}.ui-demo-row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.ui-demo-col{flex-direction:column;align-items:stretch}.ui-demo-grid{gap:var(--space-4);grid-template-columns:1fr;display:grid}@media (width>=600px){.ui-demo-grid{grid-template-columns:1fr 1fr}}.ui-demo-card{padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-bg)}
