@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--transition:.12s ease}:root,[data-theme=dark]{--bg-app:#0c0d10;--bg-surface:#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}[data-theme=light]{--bg-app:#f4f5f8;--bg-surface:#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}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{background-color:var(--bg-app);min-height:100vh;color:var(--text-primary);font-family:var(--font-family);-webkit-font-smoothing:antialiased;transition:background-color var(--transition), color var(--transition);font-size:14px;line-height:1.5}#root{flex-direction:column;width:100%;min-height:100vh;display:flex}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}.app-shell{flex-direction:column;width:100%;min-height:100vh;display:flex}.content-container{flex-direction:column;flex:1;gap:16px;width:100%;max-width:1440px;margin:0 auto;padding:20px 16px 80px;display:flex}@media (width>=768px){.content-container{gap:20px;padding:24px 32px 48px}}.app-header{background-color:var(--bg-surface);border-bottom:1px solid var(--border-subtle);z-index:30;width:100%;transition:background-color var(--transition), border-color var(--transition);position:sticky;top:0}.header-container{justify-content:space-between;align-items:center;gap:16px;width:100%;max-width:1440px;margin:0 auto;padding:12px 16px;display:flex}@media (width>=768px){.header-container{padding:14px 32px}}.brand{align-items:baseline;gap:8px;display:flex}.brand-title{letter-spacing:-.02em;color:var(--text-primary);font-size:18px;font-weight:700}.brand-divider{color:var(--border-muted);font-weight:400}.brand-subtitle{color:var(--text-muted);font-size:13px;font-weight:500}.header-actions{align-items:center;gap:10px;display:flex}.stats-group{align-items:center;gap:8px;display:flex}.stat-pill{border-radius:var(--radius-sm);background-color:var(--bg-surface-subtle);border:1px solid var(--border-subtle);color:var(--text-secondary);align-items:center;gap:8px;padding:6px 12px;font-size:12px;font-weight:500;display:inline-flex}.stat-number{color:var(--text-primary);font-weight:600}.stat-pill-warning{cursor:pointer;background-color:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-fg);transition:opacity var(--transition), border-color var(--transition)}.stat-pill-warning:hover,.stat-pill-warning.active{border-color:var(--warning-fg)}.stat-indicator{background-color:var(--warning-fg);border-radius:50%;width:6px;height:6px}.btn-group{align-items:center;gap:8px;display:flex}.btn-action{border-radius:var(--radius-sm);background-color:var(--bg-surface-subtle);border:1px solid var(--border-subtle);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition);justify-content:center;align-items:center;display:inline-flex}.btn-action:hover{background-color:var(--bg-surface-hover);color:var(--text-primary);border-color:var(--border-muted)}.btn-action.is-loading svg{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.controls-row{flex-direction:column;gap:12px;display:flex}@media (width>=1024px){.controls-row{flex-direction:row;justify-content:space-between;align-items:center;gap:16px}}.controls-search{width:100%}@media (width>=1024px){.controls-search{max-width:380px}}.search-bar{width:100%}.search-input-wrapper{align-items:center;width:100%;display:flex;position:relative}.search-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:12px}.search-input{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:100%;height:38px;color:var(--text-primary);transition:border-color var(--transition);outline:none;padding:0 36px 0 38px;font-size:13px}.search-input:focus{border-color:var(--border-focus)}.search-input::placeholder{color:var(--text-muted)}.search-clear-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex;position:absolute;right:10px}.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:6px;padding-bottom:2px;display:flex}.filter-chip{border-radius:var(--radius-sm);background-color:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:all var(--transition);flex-shrink:0;padding:6px 12px;font-size:12px;font-weight:500}.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);flex-shrink:0;width:1px;height:16px;margin:0 4px}.banner-alert{border-radius:var(--radius-sm);background-color:var(--warning-bg);border:1px solid var(--warning-border);color:var(--warning-fg);align-items:center;gap:10px;padding:9px 14px;font-size:13px;display:flex}.inventory-list-container{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);width:100%;overflow:hidden;box-shadow:0 1px 3px #0000000d}.list-table-header{background-color:var(--bg-surface-subtle);border-bottom:1px solid var(--border-subtle);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:10px 16px;font-size:11px;font-weight:600;display:none}@media (width>=768px){.list-table-header{align-items:center;display:flex}}.list-table-body{flex-direction:column;display:flex}.item-row{border-bottom:1px solid var(--border-subtle);transition:background-color var(--transition);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.item-row:last-child{border-bottom:none}.item-row:hover{background-color:var(--bg-surface-hover)}.item-row.row-warning{background-color:var(--warning-bg)}@media (width>=768px){.item-row{flex-direction:row;align-items:center;gap:16px;padding:12px 16px}}.col-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.col-status{align-items:center;width:100%;display:flex}@media (width>=768px){.col-status{flex-shrink:0;width:180px}}.col-stock{justify-content:space-between;align-items:center;display:flex}@media (width>=768px){.col-stock{flex-shrink:0;justify-content:flex-start;width:140px}}.col-actions{justify-content:flex-end;align-items:center;display:flex}@media (width>=768px){.col-actions{flex-shrink:0;width:60px}}.th-info{flex:1}.th-status{flex-shrink:0;width:180px}.th-stock{flex-shrink:0;width:140px}.th-actions{text-align:right;flex-shrink:0;width:60px}.item-title-wrap{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.item-name{color:var(--text-primary);font-size:14px;font-weight:600;line-height:1.3}.item-notes{color:var(--text-muted);font-size:12px;font-style:italic}.item-tags{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tag{border-radius:var(--radius-xs);border:1px solid #0000;padding:2px 7px;font-size:11px;font-weight:500}.tag-location{background-color:var(--tag-location-bg);color:var(--tag-location-fg);border-color:var(--tag-location-border)}.tag-category{background-color:var(--tag-category-bg);color:var(--tag-category-fg);border-color:var(--tag-category-border)}.tag-date{background-color:var(--danger-bg);color:var(--danger-fg);border-color:var(--danger-border)}.status-badge{border-radius:var(--radius-xs);padding:3px 8px;font-size:11px;font-weight:500;display:inline-block}.status-normal{color:var(--text-muted);background-color:var(--bg-surface-subtle);border:1px solid var(--border-subtle)}.status-warning{color:var(--warning-fg);background-color:var(--warning-bg);border:1px solid var(--warning-border);font-weight:600}.status-danger{color:var(--danger-fg);background-color:var(--danger-bg);border:1px solid var(--danger-border);font-weight:600}.stepper{background-color:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);align-items:center;padding:2px;display:inline-flex}.stepper-action{border-radius:var(--radius-xs);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition);background-color:#0000;border:none;justify-content:center;align-items:center;display:flex}.stepper-action:hover:not(:disabled){background-color:var(--bg-surface-hover);color:var(--text-primary)}.stepper-action:disabled{opacity:.25;cursor:not-allowed}.stepper-val{text-align:center;justify-content:center;align-items:baseline;gap:3px;min-width:52px;padding:0 4px;display:flex}.stepper-amount{color:var(--text-primary);font-size:13px;font-weight:700}.stepper-measure{color:var(--text-muted);font-size:11px;font-weight:500}.btn-trash{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-xs);transition:all var(--transition);background:0 0;border:none;justify-content:center;align-items:center;padding:6px;display:flex}@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:.22s cubic-bezier(.16,1,.3,1) forwards fadeIn}.animate-slide-down{animation:.24s cubic-bezier(.16,1,.3,1) forwards slideDown}button:active{transform:scale(.97)}.tab-pane{flex-direction:column;gap:16px;width:100%;display:flex}.organization-container{flex-direction:column;gap:20px;width:100%;display:flex}.org-header{flex-direction:column;gap:14px;display:flex}@media (width>=640px){.org-header{flex-direction:row;justify-content:space-between;align-items:flex-end}}.org-title{color:var(--text-primary);font-size:17px;font-weight:700}.org-subtitle{color:var(--text-muted);font-size:13px}.org-subtabs{background-color:var(--bg-surface-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);align-self:flex-start;gap:4px;padding:3px;display:flex}.org-tab-btn{border-radius:var(--radius-xs);color:var(--text-secondary);cursor:pointer;transition:all var(--transition);background:0 0;border:none;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:500;display:flex}.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);font-weight:600;box-shadow:0 1px 3px #00000014}.org-section{flex-direction:column;gap:16px;display:flex}.section-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.section-hint{color:var(--text-muted);font-size:12px}.org-add-card{background-color:var(--bg-surface);border:1px solid var(--border-muted);border-radius:var(--radius-md);flex-direction:column;gap:12px;padding:16px;display:flex;box-shadow:0 4px 12px #0000000f}.add-fields-row{flex-direction:column;gap:10px;display:flex}@media (width>=640px){.add-fields-row{flex-direction:row}}.add-card-actions{justify-content:flex-end;gap:8px;display:flex}.org-grid{grid-template-columns:1fr;gap:12px;display:grid}@media (width>=640px){.org-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.org-grid{grid-template-columns:repeat(3,1fr)}}.org-card{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:border-color var(--transition), transform var(--transition);flex-direction:column;justify-content:space-between;gap:14px;padding:14px 16px;display:flex}.org-card:hover{border-color:var(--border-muted);transform:translateY(-1px)}.org-card-head{align-items:flex-start;gap:10px;display:flex}.org-card-icon{border-radius:var(--radius-xs);background-color:var(--bg-surface-subtle);border:1px solid var(--border-subtle);width:30px;height:30px;color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.org-card-icon-tag{color:var(--primary);background-color:var(--tag-category-bg);border-color:var(--tag-category-border)}.org-card-title-wrap{flex:1}.org-card-title{color:var(--text-primary);font-size:14px;font-weight:600;line-height:1.3}.org-card-desc{color:var(--text-muted);margin-top:2px;font-size:11px}.org-card-foot{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding-top:10px;display:flex}.org-card-status{align-items:center;gap:6px;display:flex}.org-count{color:var(--text-muted);font-size:11px}.item-row-wrapper{border-bottom:1px solid var(--border-subtle);transition:background-color var(--transition);flex-direction:column;display:flex}.item-row-wrapper:last-child{border-bottom:none}.badge-batch-indicator{color:var(--primary);background-color:var(--bg-surface-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);padding:1px 7px;font-size:11px;font-weight:600}.btn-batch-add{border-radius:var(--radius-xs);background-color:var(--bg-surface-subtle);border:1px solid var(--border-subtle);height:28px;color:var(--primary);cursor:pointer;transition:all var(--transition);align-items:center;gap:4px;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex}.btn-batch-add:hover{background-color:var(--primary);color:var(--primary-fg);border-color:var(--primary)}.btn-batch-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:6px;display:flex}.btn-batch-toggle:hover{color:var(--text-primary)}.batches-drawer{background-color:var(--bg-surface-subtle);border-top:1px solid var(--border-subtle);flex-direction:column;gap:10px;padding:12px 16px 14px 24px;display:flex}.batches-head{justify-content:space-between;align-items:center;display:flex}.batches-title{color:var(--text-secondary);font-size:12px;font-weight:600}.btn-add-batch-inline{color:var(--primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:2px 4px;font-size:11px;font-weight:600;display:flex}.btn-add-batch-inline:hover{text-decoration:underline}.batches-list{flex-direction:column;gap:6px;display:flex}.batch-row{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:12px;padding:6px 12px;display:flex}.batch-meta{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.batch-code{color:var(--text-primary);font-size:12px;font-weight:600}.batch-exp{color:var(--danger-fg);font-size:11px;font-weight:500}.batch-no-exp{color:var(--text-muted);font-size:11px}.batch-notes{color:var(--text-muted);font-size:11px;font-style:italic}.batch-stepper{align-items:center;gap:6px;display:flex}.batch-qty{color:var(--text-primary);text-align:center;min-width:44px;font-size:12px;font-weight:700}.stepper-action-sm{width:24px;height:24px}.batch-toggle-card{background-color:var(--bg-surface-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);flex-direction:column;gap:10px;padding:12px;display:flex}.batch-toggle-label{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.checkbox-input{width:16px;height:16px;accent-color:var(--primary);cursor:pointer;margin-top:2px}.batch-toggle-text{flex-direction:column;gap:2px;display:flex}.batch-toggle-text strong{color:var(--text-primary);font-size:13px}.batch-toggle-text small{color:var(--text-muted);font-size:11px}.batch-initial-fields{border-top:1px solid var(--border-subtle);padding-top:8px}.btn-primary{border-radius:var(--radius-sm);background-color:var(--primary);border:1px solid var(--primary);height:36px;color:var(--primary-fg);cursor:pointer;transition:background-color var(--transition);justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:600;display:inline-flex}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-secondary{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);height:36px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition);background-color:#0000;justify-content:center;align-items:center;padding:0 14px;font-size:13px;font-weight:500;display:inline-flex}.btn-secondary:hover{background-color:var(--bg-surface-hover);color:var(--text-primary);border-color:var(--border-muted)}.dock-wrapper{z-index:90;flex-direction:column;align-items:center;max-width:calc(100vw - 32px);display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.dock-toggle-btn{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm) var(--radius-sm) 0 0;cursor:pointer;color:var(--text-muted);transition:all var(--transition);border-bottom:none;justify-content:center;align-items:center;gap:6px;padding:4px 14px 2px;display:flex;box-shadow:0 -2px 8px #0000001a}.dock-toggle-btn:hover{color:var(--text-primary);background-color:var(--bg-surface-hover)}.dock-handle-pill{background-color:var(--border-muted);border-radius:999px;width:24px;height:3px}.dock-toggle-icon{align-items:center;display:flex}.dock-container{background-color:var(--bg-surface);border:1px solid var(--border-muted);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;gap:4px;padding:6px 8px;display:flex;box-shadow:0 8px 24px #00000040}.dock-item{border-radius:var(--radius-sm);min-width:64px;min-height:46px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition);background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:6px 14px;display:flex;position:relative}@media (width>=640px){.dock-item{flex-direction:row;gap:8px;min-height:40px;padding:8px 16px}}.dock-item:hover{background-color:var(--bg-surface-hover);color:var(--text-primary)}.dock-item.is-active{background-color:var(--bg-surface-subtle);color:var(--primary);border:1px solid var(--border-subtle);font-weight:600}.dock-label{font-size:11px;font-weight:500}@media (width>=640px){.dock-label{font-size:13px}}.dock-badge{background-color:var(--warning-fg);color:#fff;border-radius:999px;padding:1px 5px;font-size:9px;font-weight:700;position:absolute;top:4px;right:12px}.dock-separator{background-color:var(--border-subtle);width:1px;height:24px;margin:0 4px}.dock-item-add{background-color:var(--primary);color:var(--primary-fg);font-weight:600}.dock-item-add:hover{background-color:var(--primary-hover);color:var(--primary-fg)}.metrics-container{flex-direction:column;gap:20px;width:100%;display:flex}.metrics-kpi-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}@media (width>=1024px){.metrics-kpi-grid{grid-template-columns:repeat(4,1fr);gap:16px}}.kpi-card{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);flex-direction:column;gap:4px;padding:16px;display:flex}.kpi-label{color:var(--text-muted);font-size:12px;font-weight:500}.kpi-value{letter-spacing:-.02em;color:var(--text-primary);font-size:26px;font-weight:700;line-height:1.1}.kpi-subtext{color:var(--text-muted);font-size:11px}.status-success{color:var(--success-fg)}.metrics-columns{grid-template-columns:1fr;gap:16px;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);flex-direction:column;gap:14px;padding:16px;display:flex}.panel-head{justify-content:space-between;align-items:center;display:flex}.panel-title{color:var(--text-primary);font-size:14px;font-weight:600}.panel-count{color:var(--text-muted);font-size:11px}.progress-list{flex-direction:column;gap:10px;display:flex}.progress-item,.progress-item-btn{border-radius:var(--radius-sm);text-align:left;transition:background-color var(--transition);background:0 0;border:none;flex-direction:column;gap:5px;padding:6px 8px;display:flex}.progress-item-btn{cursor:pointer}.progress-item-btn:hover{background-color:var(--bg-surface-hover)}.progress-labels{justify-content:space-between;font-size:12px;display:flex}.progress-name{color:var(--text-primary);font-weight:500}.progress-stats{color:var(--text-muted)}.progress-track{background-color:var(--bg-surface-subtle);border-radius:999px;width:100%;height:6px;overflow:hidden}.progress-fill{background-color:var(--primary);border-radius:999px;height:100%;transition:width .3s}.progress-fill-alt{background-color:#8b5cf6}.critical-items-list{flex-direction:column;gap:8px;display:flex}.critical-item-row{background-color:var(--bg-surface-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.critical-item-info{flex-direction:column;gap:2px;display:flex}.critical-item-name{color:var(--text-primary);font-size:13px;font-weight:600}.critical-item-meta{color:var(--text-muted);font-size:11px}.health-banner{background-color:var(--success-bg);border:1px solid var(--success-border);color:var(--success-fg);border-radius:var(--radius-md);align-items:center;gap:12px;padding:14px 18px;display:flex}.health-banner p{color:var(--text-secondary);font-size:12px}.locations-container{flex-direction:column;gap:20px;width:100%;display:flex}.locations-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.locations-title{color:var(--text-primary);font-size:17px;font-weight:700}.locations-subtitle{color:var(--text-muted);font-size:13px}.location-add-card{background-color:var(--bg-surface);border:1px solid var(--border-muted);border-radius:var(--radius-md);flex-direction:column;gap:14px;padding:18px;display:flex}.add-card-title{color:var(--text-primary);font-size:14px;font-weight:600}.location-form-fields{flex-direction:column;gap:12px;display:flex}@media (width>=640px){.location-form-fields{flex-direction:row}}.location-form-actions{justify-content:flex-end;gap:8px;display:flex}.locations-grid{grid-template-columns:1fr;gap:14px;display:grid}@media (width>=640px){.locations-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.locations-grid{grid-template-columns:repeat(3,1fr)}}.location-box{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:border-color var(--transition);flex-direction:column;justify-content:space-between;gap:16px;padding:16px;display:flex}.location-box:hover{border-color:var(--border-muted)}.location-box-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.location-box-header{align-items:flex-start;gap:10px;display:flex}.location-icon{border-radius:var(--radius-xs);background-color:var(--bg-surface-subtle);border:1px solid var(--border-subtle);width:32px;height:32px;color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.location-box-title{color:var(--text-primary);font-size:15px;font-weight:600;line-height:1.25}.location-box-desc{color:var(--text-muted);margin-top:2px;font-size:12px}.location-item-count{color:var(--text-muted);background-color:var(--bg-surface-subtle);border-radius:var(--radius-xs);white-space:nowrap;padding:3px 8px;font-size:11px;font-weight:600}.location-box-bottom{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding-top:12px;display:flex}.btn-sm{height:30px;padding:0 10px;font-size:12px}.modal-overlay{z-index:100;background-color:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-dialog{background-color:var(--bg-surface);border:1px solid var(--border-muted);border-radius:var(--radius-md);width:100%;max-width:520px;max-height:90vh;padding:24px;overflow-y:auto;box-shadow:0 10px 25px #00000040}.modal-head{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.modal-heading{color:var(--text-primary);font-size:17px;font-weight:700}.modal-subheading{color:var(--text-muted);font-size:12px}.btn-close-modal{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px}.btn-close-modal:hover{color:var(--text-primary)}.modal-form{flex-direction:column;gap:16px;display:flex}.input-group{flex-direction:column;gap:6px;display:flex}.input-row{gap:12px;display:flex}.col-half{flex:1}.field-label{color:var(--text-secondary);font-size:12px;font-weight:600}.label-required{color:var(--primary)}.field-input,.field-select{background-color:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);transition:border-color var(--transition);outline:none;padding:9px 12px;font-size:13px}.field-input-prominent{padding:11px 12px;font-size:14px}.field-input:focus,.field-select:focus{border-color:var(--border-focus)}.stepper-input{background-color:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);align-items:center;height:38px;display:flex}.stepper-input-btn{width:38px;height:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.stepper-input-btn:hover{background-color:var(--bg-surface-hover);color:var(--text-primary)}.stepper-input-val{text-align:center;color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-size:14px;font-weight:600}.unit-selector{flex-wrap:wrap;gap:4px;display:flex}.unit-option{border-radius:var(--radius-xs);background-color:var(--bg-input);border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;padding:6px 10px;font-size:11px;font-weight:500}.unit-option.is-selected{background-color:var(--primary);border-color:var(--primary);color:var(--primary-fg);font-weight:600}.location-selector{flex-wrap:wrap;gap:6px;display:flex}.location-option{border-radius:var(--radius-sm);background-color:var(--bg-input);border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;transition:all var(--transition);padding:6px 11px;font-size:12px}.location-option:hover{border-color:var(--border-muted)}.location-option.is-selected{background-color:var(--tag-location-bg);border-color:var(--tag-location-border);color:var(--tag-location-fg);font-weight:600}.btn-toggle-options{color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:none;padding:4px 0;font-size:12px}.btn-toggle-options:hover{color:var(--text-secondary)}.advanced-container{background-color:var(--bg-surface-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);flex-direction:column;gap:12px;padding:12px;display:flex}.modal-foot{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.toast{background-color:var(--bg-surface);border:1px solid var(--border-muted);border-radius:var(--radius-sm);color:var(--text-primary);z-index:200;align-items:center;gap:8px;padding:9px 16px;font-size:13px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 14px #0003}.toast-icon{align-items:center;display:flex}.toast-success .toast-icon{color:var(--success-fg)}.toast-warning .toast-icon{color:var(--warning-fg)}.toast-info .toast-icon{color:var(--primary)}.state-empty{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:48px 20px;display:flex}.empty-title{color:var(--text-primary);font-size:15px;font-weight:600}.empty-text{color:var(--text-muted);max-width:360px;margin-bottom:12px;font-size:13px}.skeleton-list{flex-direction:column;display:flex}.skeleton-row{border-bottom:1px solid var(--border-subtle);background-color:var(--bg-surface);height:52px}.recipes-view{flex-direction:column;gap:1.25rem;padding-bottom:2rem;display:flex}.recipes-tabs-header{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);gap:4px;max-width:420px;padding:4px;display:flex}.recipes-subtab-btn{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition);background-color:#0000;border:none;flex:1;justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:500;display:flex}.recipes-subtab-btn.is-active{background-color:var(--bg-surface-elevated,var(--bg-input));color:var(--text-primary);box-shadow:var(--shadow-sm);font-weight:600}.recipes-generate-container{flex-direction:column;gap:1.25rem;display:flex}.recipe-card-box{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:1.25rem}.recipe-section-title{color:var(--text-primary);align-items:center;gap:8px;margin-bottom:1rem;font-size:15px;font-weight:600;display:flex}.diners-stepper-row{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.stepper-control-large{background-color:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-md);align-items:center;padding:4px;display:inline-flex}.stepper-btn-large{width:44px;height:44px;color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);background-color:#0000;border:none;justify-content:center;align-items:center;display:flex}.stepper-btn-large:hover:not(:disabled){background-color:var(--bg-surface-hover)}.stepper-btn-large:disabled{opacity:.3;cursor:not-allowed}.stepper-value-large{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-width:90px;display:flex}.stepper-number{color:var(--text-primary);font-size:20px;font-weight:700;line-height:1.1}.stepper-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:11px}.diners-presets{flex-wrap:wrap;gap:8px;display:flex}.preset-chip{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background-color:var(--bg-input);color:var(--text-secondary);cursor:pointer;transition:all var(--transition);padding:8px 14px;font-size:13px;font-weight:500}.preset-chip:hover{border-color:var(--border-strong);color:var(--text-primary)}.preset-chip.is-active{background-color:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.recipe-templates-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:1.25rem;display:grid}.template-card-btn{text-align:left;background-color:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);flex-direction:column;align-items:flex-start;padding:1rem;display:flex}.template-card-btn:hover{border-color:var(--border-strong);transform:translateY(-1px)}.template-card-btn.is-selected{border-color:var(--primary);background-color:var(--bg-surface-elevated,var(--bg-surface));box-shadow:0 0 0 1px var(--primary)}.template-card-header{align-items:center;gap:8px;margin-bottom:6px;display:flex}.template-icon-box{border-radius:var(--radius-sm);background-color:var(--bg-surface);border:1px solid var(--border-subtle);width:32px;height:32px;color:var(--primary);justify-content:center;align-items:center;display:flex}.template-card-title{color:var(--text-primary);font-size:14px;font-weight:600}.template-card-desc{color:var(--text-muted);flex:1;margin-bottom:10px;font-size:12px;line-height:1.4}.template-card-footer{margin-top:auto}.template-calorie-badge{color:var(--text-secondary);background-color:var(--bg-surface);border-radius:var(--radius-xs);border:1px solid var(--border-subtle);padding:3px 8px;font-size:11px;font-weight:600}.recipe-action-wrapper{justify-content:flex-end;display:flex}.btn-primary-large{background-color:var(--primary);color:#fff;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);box-shadow:var(--shadow-sm);border:none;justify-content:center;align-items:center;gap:10px;width:100%;padding:12px 24px;font-size:14px;font-weight:600;display:inline-flex}@media (width>=640px){.btn-primary-large{width:auto}}.btn-primary-large:hover:not(:disabled){background-color:var(--primary-hover)}.btn-primary-large:disabled{opacity:.6;cursor:wait}.recipe-result-card{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-md);flex-direction:column;gap:1.25rem;padding:1.5rem;display:flex}.recipe-badge-pill{text-transform:uppercase;letter-spacing:.5px;color:var(--primary);background-color:var(--bg-input);border:1px solid var(--border-subtle);border-radius:9999px;margin-bottom:8px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-block}.recipe-result-title{color:var(--text-primary);margin-bottom:6px;font-size:20px;font-weight:700}.recipe-result-desc{color:var(--text-secondary);font-size:14px;line-height:1.5}.recipe-kpis-row{border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;gap:10px;padding:10px 0;display:flex}.recipe-kpi-chip{background-color:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-secondary);align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;display:flex}.recipe-section-block{flex-direction:column;gap:10px;display:flex}.recipe-block-heading{color:var(--text-primary);font-size:14px;font-weight:600}.recipe-ingredients-list{flex-direction:column;gap:6px;display:flex}.ingredient-row-item{background-color:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;padding:8px 12px;font-size:13px;display:flex}.ingredient-info{align-items:center;gap:8px;display:flex}.ingredient-check-indicator{border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;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{color:var(--text-primary);font-weight:500}.ingredient-amount-box{align-items:baseline;gap:8px;display:flex}.ingredient-qty{color:var(--text-primary);font-weight:600}.ingredient-stock-hint{color:var(--text-muted);font-size:11px}.recipe-instructions-list{flex-direction:column;gap:8px;padding:0;list-style:none;display:flex}.instruction-step-item{background-color:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);align-items:flex-start;gap:12px;padding:10px 12px;display:flex}.step-counter{background-color:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:flex}.step-text{color:var(--text-primary);font-size:13px;line-height:1.5}.recipe-tip-box{background-color:var(--bg-input);border-left:3px solid var(--primary);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text-secondary);padding:10px 14px;font-size:13px;line-height:1.4}.recipe-result-actions{flex-wrap:wrap;gap:12px;margin-top:8px;display:flex}.btn-cook-recipe{background-color:var(--success-fg);color:#fff;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);border:none;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:13px;font-weight:600;display:inline-flex}.btn-cook-recipe:hover:not(:disabled){opacity:.9}.btn-cook-recipe:disabled{opacity:.5;cursor:wait}.recipes-history-container{flex-direction:column;gap:1rem;display:flex}.history-header-box{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:1.25rem}.history-subtitle{color:var(--text-muted);margin-top:4px;font-size:13px}.empty-history-box{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px 20px;display:flex}.history-cards-list{flex-direction:column;gap:10px;display:flex}.history-card-item{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);flex-direction:column;gap:10px;padding:1.25rem;display:flex}.history-card-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.history-recipe-title{color:var(--text-primary);font-size:15px;font-weight:600}.history-date{color:var(--text-muted);font-size:12px}.history-badge-chips{gap:6px;display:flex}.history-chip{background-color:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);color:var(--text-secondary);align-items:center;gap:4px;padding:3px 8px;font-size:12px;font-weight:500;display:inline-flex}.history-deducted-box{border-top:1px solid var(--border-subtle);padding-top:8px}.history-deducted-title{color:var(--text-secondary);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.history-deducted-tags{flex-wrap:wrap;gap:6px;display:flex}.deducted-tag{background-color:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);color:var(--text-primary);padding:3px 8px;font-size:11px}.modal-ingredients-summary{background-color:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);flex-direction:column;gap:6px;max-height:200px;padding:8px;display:flex;overflow-y:auto}.summary-ingredient-row{color:var(--text-primary);justify-content:space-between;align-items:center;padding:4px 6px;font-size:13px;display:flex}.btn-scan-receipt-header{background-color:var(--primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);box-shadow:var(--shadow-sm);border:none;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;display:inline-flex}.btn-scan-receipt-header:hover{background-color:var(--primary-hover)}.btn-scan-receipt-header:active{transform:scale(.97)}@media (width<=480px){.btn-scan-label{display:none}.btn-scan-receipt-header{padding:6px 8px}}.modal-receipt-scanner{width:95%;max-width:640px!important}.modal-title-with-icon{align-items:center;gap:10px;display:flex}.icon-header-badge{border-radius:var(--radius-xs);background-color:var(--bg-input);border:1px solid var(--border-subtle);width:28px;height:28px;color:var(--primary);justify-content:center;align-items:center;display:flex}.receipt-capture-body{flex-direction:column;gap:1.25rem;padding:1.5rem;display:flex}.scanner-intro-text{color:var(--text-secondary);font-size:13px;line-height:1.5}.receipt-options-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.capture-option-card{text-align:center;background-color:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);flex-direction:column;align-items:center;padding:1.5rem 1rem;display:flex}.capture-option-card:hover{border-color:var(--primary);background-color:var(--bg-surface-elevated,var(--bg-surface));box-shadow:var(--shadow-sm);transform:translateY(-2px)}.capture-icon-circle{background-color:var(--bg-surface);border:1px solid var(--border-subtle);width:52px;height:52px;color:var(--primary);border-radius:50%;justify-content:center;align-items:center;margin-bottom:12px;display:flex}.capture-option-title{color:var(--text-primary);margin-bottom:4px;font-size:14px;font-weight:600}.capture-option-sub{color:var(--text-muted);font-size:12px}.receipt-scanning-body{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:3rem 1.5rem;display:flex}.receipt-preview-thumbnail{object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);width:80px;height:110px;box-shadow:var(--shadow-sm);margin-bottom:1.25rem;overflow:hidden}.receipt-preview-thumbnail img{object-fit:cover;width:100%;height:100%}.scanning-pulse-loader{background-color:var(--bg-input);border:1px solid var(--primary);width:48px;height:48px;color:var(--primary);border-radius:50%;justify-content:center;align-items:center;margin-bottom:1rem;animation:2s infinite pulse-ring;display:flex}@keyframes pulse-ring{0%{box-shadow:0 0 #3b82f666}70%{box-shadow:0 0 0 14px #3b82f600}to{box-shadow:0 0 #3b82f600}}.scanning-title{color:var(--text-primary);margin-bottom:6px;font-size:16px;font-weight:600}.scanning-subtitle{color:var(--text-secondary);max-width:360px;font-size:13px}.receipt-review-body{flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.receipt-meta-box{background-color:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-md);flex-wrap:wrap;gap:12px;padding:12px;display:flex}.total-badge-amount{color:var(--success-fg);background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);align-items:center;padding:8px 10px;font-size:15px;font-weight:700;display:flex}.receipt-items-header{flex-direction:column;gap:2px;display:flex}.items-detected-count{color:var(--text-primary);font-size:14px;font-weight:600}.items-selection-hint{color:var(--text-muted);font-size:12px}.receipt-items-scroll{flex-direction:column;gap:8px;max-height:380px;padding-right:4px;display:flex;overflow-y:auto}.scanned-item-card{background-color:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:all var(--transition);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.scanned-item-card.is-unselected{opacity:.45;background-color:#0000}.scanned-item-row-main{align-items:center;gap:10px;display:flex}.custom-checkbox-container{cursor:pointer;align-items:center;display:flex}.custom-checkbox-container input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary);cursor:pointer}.scanned-item-names{flex-direction:column;flex:1;min-width:0;display:flex}.input-item-clean-name{color:var(--text-primary);transition:border var(--transition);background-color:#0000;border:none;border-bottom:1px solid #0000;padding:2px 0;font-size:13px;font-weight:600}.input-item-clean-name:focus{border-bottom-color:var(--primary);outline:none}.scanned-raw-name{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.scanned-item-qty-box{align-items:baseline;gap:4px;display:flex}.input-item-qty{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);width:48px;color:var(--text-primary);text-align:center;padding:4px 6px;font-size:13px;font-weight:600}.scanned-unit{color:var(--text-muted);font-size:11px}.scanned-price{color:var(--text-secondary);text-align:right;min-width:60px;font-size:13px;font-weight:600}.scanned-item-action-row{border-top:1px solid var(--border-subtle);align-items:center;padding-top:6px;display:flex}.action-pill-match{color:var(--success-fg);background-color:var(--success-bg);border-radius:var(--radius-xs);align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.action-pill-new{flex-wrap:wrap;align-items:center;gap:8px;width:100%;display:flex}.badge-new-item{color:var(--primary);background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.select-assign-group{flex:1;align-items:center;gap:6px;display:flex}.select-mini{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);color:var(--text-secondary);padding:3px 8px;font-size:11px}.receipt-review-actions{border-top:1px solid var(--border-subtle);justify-content:flex-end;gap:10px;margin-top:10px;padding-top:12px;display:flex}
