*,*:before,*:after{box-sizing:border-box}html,body{max-width:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f9fafb;color:#111827}#root,.min-h-screen{min-height:100vh}.flex{display:flex}.justify-between{justify-content:space-between}.items-center{align-items:center}.app-header-container{width:100%;max-width:64rem;margin:0 auto;padding:1rem;box-sizing:border-box}.app-container{min-height:100vh;display:flex;flex-direction:column;background-color:#f9fafb;color:#111827}.app-header{position:relative;background-color:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 1px 3px #0000001a}.app-title{font-size:1.5rem;font-weight:700;margin:0}.app-description{font-size:.875rem;margin-top:.25rem}.app-controls{display:flex;align-items:center;flex-wrap:nowrap;gap:.5rem}.app-control-btn{display:flex;align-items:center;gap:.25rem;padding:.5rem .75rem;border-radius:.5rem;border:1px solid #d1d5db;background-color:#f3f4f6;color:#111827;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .15s}.app-control-btn:hover{background-color:#e5e7eb;border-color:#93c5fd}.app-theme-icon{font-size:1rem}@media (hover: hover) and (pointer: fine){.app-header-tooltip{position:relative}.app-header-tooltip:after{content:attr(data-tooltip);position:absolute;z-index:100;top:calc(100% + .5rem);right:0;width:max-content;max-width:min(20rem,calc(100vw - 2rem));padding:.45rem .6rem;border-radius:.375rem;border:1px solid #d1d5db;background:#fff;color:#111827;box-shadow:0 4px 12px #00000026;font-size:.75rem;font-weight:500;line-height:1.35;text-align:left;white-space:pre-line;pointer-events:none;opacity:0;transform:translateY(-.2rem);transition:opacity .12s ease,transform .12s ease}.app-header-tooltip:hover:after,.app-header-tooltip:focus-visible:after{opacity:1;transform:translateY(0)}html.dark .app-header-tooltip:after{border-color:#475569;background:#111827;color:#f9fafb;box-shadow:0 4px 12px #0006}}.app-nav{position:sticky;top:0;z-index:50;display:flex;gap:.25rem;padding:.75rem 1rem;background-color:#fff;border-bottom:1px solid #e5e7eb;overflow-x:auto;box-shadow:0 1px 3px #00000014}@media (min-width: 641px){.app-nav{padding-right:max(1rem,calc((100vw - 64rem)/2 + 1rem));padding-left:max(1rem,calc((100vw - 64rem)/2 + 1rem))}}.app-tab{padding:.5rem 1rem;border-radius:.5rem;border:none;background:transparent;color:#6b7280;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .15s;white-space:nowrap}.app-tab:hover{background-color:#f3f4f6;color:#111827}.app-main{flex:1;padding:1.5rem;max-width:64rem;margin:0 auto;width:100%;min-width:0}@media (max-width: 640px){.app-main{padding:1rem}.app-header{padding:0}.app-header-container{flex-wrap:wrap;gap:.75rem}.app-header-container>div:first-child{min-width:0;flex:1 1 12rem}.app-title{font-size:1.25rem}.app-nav{gap:.125rem;padding:.5rem}.app-tab{padding:.25rem .5rem;font-size:.75rem}.app-list-item{padding:.75rem}}.app-form{display:grid;gap:1rem;margin-bottom:2rem;width:100%;min-width:0;max-width:100%}.app-item-editor{width:100%;min-width:0;max-width:100%;scroll-margin-top:5.5rem}.app-item-editor>.app-form{min-width:0;max-width:100%}.app-vocabulary-combobox{position:relative;min-width:0}.app-vocabulary-suggestions{position:absolute;z-index:30;top:calc(100% + .25rem);right:0;left:0;max-height:19rem;overflow-y:auto;border:1px solid #d1d5db;border-radius:.5rem;background:#fff;box-shadow:0 10px 24px #0f172a29}.app-vocabulary-option{display:flex;width:100%;min-width:0;padding:.7rem .85rem;align-items:center;justify-content:space-between;gap:1rem;border:0;border-bottom:1px solid #e5e7eb;background:transparent;color:#111827;text-align:left;cursor:pointer}.app-vocabulary-option:last-child{border-bottom:0}.app-vocabulary-option:hover,.app-vocabulary-option:focus-visible{background:#eff6ff;outline:none}.app-vocabulary-translation{display:block;margin-top:.1rem;color:#6b7280;font-size:.8rem}.app-vocabulary-meta{flex-shrink:0;color:#6b7280;font-size:.75rem;text-align:right}.app-vocabulary-correction{display:block;color:#b45309;font-weight:600}html.dark .app-vocabulary-suggestions{border-color:#4b5563;background:#1f2937}html.dark .app-vocabulary-option{border-bottom-color:#374151;color:#f3f4f6}html.dark .app-vocabulary-option:hover,html.dark .app-vocabulary-option:focus-visible{background:#1e3a5f}html.dark .app-vocabulary-translation,html.dark .app-vocabulary-meta{color:#9ca3af}html.dark .app-vocabulary-correction{color:#fbbf24}.app-location-form{margin-bottom:0;scroll-margin-top:5.5rem}.app-location-list-item{width:auto;min-width:0;transition:margin .15s ease,border-color .2s,box-shadow .2s}.app-location-list-item.is-drop-target{border-color:#2563eb;background:#dbeafe;box-shadow:0 0 0 3px #2563eb59,0 6px 16px #2563eb2e;transform:scale(1.005)}.app-location-tree{position:relative;min-width:0}.app-location-tree.is-dragging,.app-location-tree.is-dragging *,body.app-location-drag-active{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.app-location-tree.is-dragging img,.app-location-tree.is-dragging a{-webkit-user-drag:none}.app-location-drag-handle{display:inline-grid;width:2rem;height:2rem;flex:0 0 auto;padding:0;place-items:center;border:0;border-radius:.3rem;background:transparent;color:#64748b;cursor:grab;font-size:1.15rem;line-height:1;touch-action:none;-webkit-user-select:none;user-select:none}.app-location-promote{display:inline-grid;width:1.75rem;height:1.75rem;flex:0 0 auto;padding:0;place-items:center;border:0;border-radius:.3rem;background:transparent;color:#2563eb;cursor:pointer;font:inherit;font-weight:700}.app-location-promote:hover,.app-location-promote:focus-visible{background:#dbeafe;outline:none}.app-location-drag-handle:active{cursor:grabbing}.app-location-drag-handle:hover,.app-location-drag-handle:focus-visible{background:#e5e7eb;outline:none}.app-location-top-drop{position:absolute;z-index:10;top:0;right:0;left:0;padding:.75rem;border:2px dashed #93c5fd;border-radius:.5rem;background:#eff6ff;color:#1d4ed8;text-align:center}.app-location-top-drop.is-over{border-color:#2563eb;background:#dbeafe}.app-location-toggle{display:inline-grid;flex:0 0 2.15rem;width:2.15rem;height:2.15rem;padding:0;place-items:center;border:0;border-radius:.3rem;background:transparent;color:#4b5563;cursor:pointer;font-size:1.35rem}.app-location-promote+.app-location-toggle{margin-left:.45rem}.app-location-toggle:hover,.app-location-toggle:focus-visible{background:#e5e7eb;outline:none}.app-location-toggle.is-placeholder{cursor:default}.app-location-inline-form{display:grid;gap:.75rem;width:auto;min-width:0;max-width:100%;padding:1rem;border:1px dashed #93c5fd;border-radius:.5rem;background:#eff6ff}.app-location-suggestions{display:flex;flex-wrap:wrap;gap:.4rem}.app-location-suggestions button{padding:.3rem .55rem;border:1px solid #93c5fd;border-radius:999px;background:#fff;color:#1d4ed8;cursor:pointer;font-size:.75rem}.app-location-suggestions button:hover,.app-location-suggestions button:focus-visible{background:#dbeafe;outline:none}.app-location-inline-actions{justify-content:flex-start}.app-location-action-icon{display:none}html.dark .app-location-inline-form{border-color:#3b82f6;background:#172554}html.dark .app-location-suggestions button{border-color:#3b82f6;background:#1e3a8a;color:#dbeafe}html.dark .app-location-suggestions button:hover,html.dark .app-location-suggestions button:focus-visible{background:#1d4ed8}html.dark .app-location-toggle{color:#d1d5db}html.dark .app-location-toggle:hover,html.dark .app-location-toggle:focus-visible{background:#374151}html.dark .app-location-drag-handle{color:#94a3b8}html.dark .app-location-list-item.is-drop-target{border-color:#60a5fa;background:#1e3a5f;box-shadow:0 0 0 3px #60a5fa66,0 6px 16px #00000059}html.dark .app-location-drag-handle:hover,html.dark .app-location-drag-handle:focus-visible{background:#374151}html.dark .app-location-promote{color:#93c5fd}html.dark .app-location-promote:hover,html.dark .app-location-promote:focus-visible{background:#1e3a8a}html.dark .app-location-top-drop{border-color:#3b82f6;background:#172554;color:#bfdbfe}html.dark .app-location-top-drop.is-over{background:#1e3a8a}@media (max-width: 640px){.app-location-form{scroll-margin-top:3.5rem}.app-location-list-item{max-width:calc(100% - 1.25rem)}}.app-field{display:grid;gap:.4rem;min-width:0}.app-service-badge{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;min-height:2rem;padding:.25rem .55rem;border:1px solid currentColor;border-radius:999px;font-size:.75rem;font-weight:700;white-space:nowrap}.app-service-badge.is-connected{color:#15803d}.app-service-badge.is-checking{color:#64748b}.app-service-badge.has-issue{color:#dc2626}.app-low-stock-badge{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;min-width:3.25rem;min-height:2rem;border:1px solid #d97706;border-radius:999px;background:#fffbeb;color:#92400e;padding:.25rem .55rem;font:inherit;font-weight:700;cursor:pointer}html.dark .app-low-stock-badge{background:#451a03;border-color:#f59e0b;color:#fcd34d}.app-low-stock-badge.is-active{background:#92400e;border-color:#78350f;color:#fff}html.dark .app-low-stock-badge.is-active{background:#78350f;border-color:#fbbf24;color:#fff}.app-email-alert-button{display:inline-flex;align-items:center;gap:.3rem;justify-content:center;min-width:3.25rem;min-height:2rem;padding:.25rem .55rem;border:1px solid #3b82f6;border-radius:999px;background:#eff6ff;color:#1d4ed8;font:inherit;font-weight:700;cursor:pointer}html.dark .app-email-alert-button{background:#1e3a8a;border-color:#60a5fa;color:#bfdbfe}.app-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:1rem;background:#0f172aad}.app-email-dialog{width:min(34rem,100%);padding:1.25rem;border:1px solid #d1d5db;border-radius:1rem;background:#fff;color:#111827;box-shadow:0 24px 60px #0f172a47}html.dark .app-email-dialog{border-color:#374151;background:#1f2937;color:#f9fafb}.app-email-dialog h2{margin:0;font-size:1.2rem}.app-dialog-close{border:0;background:transparent;color:inherit;font-size:1.7rem;cursor:pointer}.app-email-recipient-list{display:grid;gap:.45rem;margin-top:.45rem}.app-email-recipient{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.6rem;padding:.65rem .75rem;border:1px solid #d1d5db;border-radius:.7rem}.app-email-recipient small{color:#6b7280}.app-email-add-row{display:grid;grid-template-columns:1fr auto;gap:.55rem;margin-top:.65rem}html.dark .app-email-recipient{border-color:#475569}html.dark .app-email-recipient small{color:#9ca3af}@media (max-width: 640px){.app-email-recipient{grid-template-columns:auto 1fr}.app-email-recipient small{grid-column:2}.app-email-add-row{grid-template-columns:1fr}}.app-success{color:#15803d;font-weight:600}html.dark .app-success{color:#86efac}.app-auth-shell{min-height:100vh;display:grid;place-items:center;padding:1rem;background:#111827}.app-auth-card{width:min(28rem,100%);display:grid;gap:1rem;padding:2rem;border:1px solid #374151;border-radius:1rem;background:#1f2937;color:#f9fafb}.app-auth-card h1,.app-auth-card h2{margin:0}.app-pantry-switch{position:static;z-index:auto;width:auto;min-width:0}.app-pantry-switch-row{display:grid;grid-template-columns:minmax(9rem,12rem) auto auto;gap:.5rem;align-items:center}.app-pantry-switch-row .app-select-input{height:2rem;padding:.25rem .55rem;line-height:1.2}.app-pantry-switch-row>button{min-width:2rem;height:2rem;padding:.25rem .55rem;justify-content:center;font-size:.875rem;line-height:1}.app-pantry-switch-row>button:nth-child(2){font-size:1rem}.app-pantry-switch-row>button:last-child{font-size:0}.app-pantry-switch-row>button:last-child:before{content:"";width:1rem;height:1rem;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 17l5-5-5-5'/%3E%3Cpath d='M15 12H3'/%3E%3Cpath d='M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 17l5-5-5-5'/%3E%3Cpath d='M15 12H3'/%3E%3Cpath d='M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4'/%3E%3C/svg%3E") center/contain no-repeat}.app-user-dialog{max-height:90vh;overflow:auto;display:grid;gap:1rem}.app-user-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.55rem 0;border-bottom:1px solid #e5e7eb}.app-user-row span{display:grid}.app-user-row small{color:#6b7280}html.dark .app-user-row{border-color:#374151}html.dark .app-user-row small{color:#9ca3af}.app-user-row .app-user-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:.25rem}.is-viewer .app-main form,.is-viewer .app-list-item-actions,.is-viewer .app-stock-quick-actions,.is-viewer .app-category-form-actions,.is-viewer .app-email-alert-button{display:none!important}@media (max-width:640px){.app-controls{flex-wrap:wrap}.app-pantry-switch{flex:1 0 100%;width:100%;padding:0;background:transparent}.app-pantry-switch-row{grid-template-columns:minmax(0,1fr) 2rem 2rem}.app-pantry-switch select{width:100%}.app-pantry-switch-row>button:last-child{width:2rem;min-width:2rem;height:2rem;padding:.25rem;border-color:#d1d5db;color:#111827}.app-pantry-switch-row>button:last-child:after{content:none}html.dark .app-pantry-switch-row>button:last-child{color:#f9fafb;border-color:#4b5563}}html.dark .app-service-badge.is-connected{color:#86efac}html.dark .app-service-badge.is-checking{color:#cbd5e1}html.dark .app-service-badge.has-issue{color:#fca5a5}.app-field-label{font-size:.875rem;font-weight:600}.app-field-label-row{display:flex;align-items:center;gap:.4rem}.app-bilingual-name-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.app-bilingual-name-grid>.app-field-help{grid-column:1 / -1}.app-translation-state{display:inline-flex;margin-left:.4rem;padding:.08rem .35rem;border-radius:999px;font-size:.62rem;font-weight:700;vertical-align:middle}.app-translation-state.is-automatic{background:#dbeafe;color:#1e40af}.app-translation-state.is-manual{background:#dcfce7;color:#166534}html.dark .app-translation-state.is-automatic{background:#1e3a8a;color:#bfdbfe}html.dark .app-translation-state.is-manual{background:#14532d;color:#bbf7d0}.app-info-tooltip{position:relative;display:inline-flex}.app-info-button{display:inline-grid;place-items:center;width:1.3rem;height:1.3rem;padding:0;border:0;border-radius:999px;background:transparent;color:#2563eb;cursor:help;font-size:1rem;line-height:1}.app-info-button:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.app-barcode-open{display:none}.app-barcode-actions{display:none;margin-left:auto;gap:.35rem}.app-barcode-overlay{position:fixed;z-index:1000;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:1rem;background:#000000c7}.app-barcode-dialog{display:grid;width:min(100%,32rem);max-height:calc(100dvh - 2rem);gap:.75rem;padding:1rem;overflow-y:auto;border-radius:.75rem;background:#fff;color:#111827}.app-barcode-heading{display:flex;align-items:center;justify-content:space-between}.app-barcode-heading button{width:2.5rem;height:2.5rem;border:0;background:transparent;color:inherit;font-size:1.8rem}.app-barcode-viewport{position:relative;min-height:15rem;overflow:hidden;border-radius:.5rem;background:#111827}.app-barcode-viewport video{width:100%;height:100%;min-height:15rem;object-fit:cover}.app-barcode-target{position:absolute;top:25%;right:10%;bottom:25%;left:10%;border:.18rem solid #60a5fa;border-radius:.4rem;box-shadow:0 0 0 100vmax #0000002e}.app-barcode-zoom{display:grid;grid-template-columns:auto minmax(0,1fr) 3rem;align-items:center;gap:.65rem;font-size:.8rem;font-weight:700}.app-barcode-zoom input{width:100%;accent-color:#3b82f6}.app-barcode-zoom output{text-align:right;font-variant-numeric:tabular-nums}.app-barcode-error{color:#b91c1c;font-weight:600}.app-barcode-resolution{display:grid;gap:.65rem;padding:.85rem;border:1px solid #22c55e;border-radius:.65rem;background:#f0fdf4}.app-barcode-resolution.is-unknown{border-color:#f59e0b;background:#fffbeb}.app-barcode-resolution .app-stock-heading>span{display:grid;gap:.1rem}.app-barcode-resolution code{padding:.3rem .5rem;border-radius:.35rem;background:#ffffffbf;font-size:1rem;font-weight:700;letter-spacing:.06em}.app-barcode-existing-list{display:grid;overflow:hidden;border:1px solid #d1d5db;border-radius:.5rem}.app-barcode-existing-list button{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.65rem;border:0;border-bottom:1px solid #e5e7eb;background:#fff;color:#111827;text-align:left;cursor:pointer}.app-barcode-existing-list button:last-child{border-bottom:0}.app-barcode-existing-list button:hover{background:#eff6ff}.app-barcode-existing-list button>span:first-child{display:grid}.app-barcode-existing-list small{color:#6b7280}html.dark .app-barcode-resolution{background:#052e16;color:#dcfce7}html.dark .app-barcode-resolution.is-unknown{background:#422006;color:#fef3c7}html.dark .app-barcode-resolution code{background:#111827b3;color:inherit}html.dark .app-barcode-existing-list{border-color:#475569}html.dark .app-barcode-existing-list button{border-color:#374151;background:#1f2937;color:#f9fafb}html.dark .app-barcode-existing-list button:hover{background:#374151}html.dark .app-barcode-existing-list small{color:#9ca3af}.app-barcode-photo{text-align:center;cursor:pointer}.app-barcode-manual{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.5rem;padding-top:.75rem;border-top:1px solid #d1d5db}.app-barcode-capture-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}html.dark .app-barcode-dialog{background:#1f2937;color:#f9fafb}html.dark .app-barcode-error{color:#fca5a5}.app-info-tooltip-content{position:absolute;z-index:100;top:calc(100% + .5rem);left:-.5rem;display:block;width:min(28rem,calc(100vw - 3rem));padding:.8rem;border:1px solid #d1d5db;border-radius:.5rem;background:#fff;color:#111827;box-shadow:0 6px 18px #00000029;font-size:.78rem;font-weight:400;line-height:1.4;pointer-events:none;opacity:0;visibility:hidden;transform:translateY(-.2rem);transition:opacity .12s ease,transform .12s ease,visibility .12s}.app-info-tooltip-content ol{display:grid;gap:.35rem;margin:.6rem 0;padding-left:1.25rem}.app-info-tooltip-next{display:block;padding:.5rem;border-radius:.35rem;background:#eff6ff;color:#1e3a8a;font-weight:600}.app-info-tooltip:focus-within .app-info-tooltip-content{opacity:1;visibility:visible;transform:translateY(0)}.app-info-tooltip-content.is-open{opacity:1;visibility:visible;transform:translateY(0)}@media (hover: hover) and (pointer: fine){.app-info-tooltip:hover .app-info-tooltip-content{opacity:1;visibility:visible;transform:translateY(0)}}html.dark .app-info-button{color:#60a5fa}html.dark .app-info-tooltip-content{border-color:#475569;background:#111827;color:#f9fafb;box-shadow:0 6px 18px #0006}html.dark .app-info-tooltip-next{background:#1e3a8a;color:#dbeafe}@media (max-width: 768px) and (pointer: coarse){.app-barcode-actions{display:flex}.app-barcode-open{display:inline-flex;align-items:center;padding:.3rem .55rem;border:1px solid #3b82f6;border-radius:.4rem;background:transparent;color:#2563eb;font-size:.75rem;font-weight:700}html.dark .app-barcode-open{color:#93c5fd}}@media (max-width: 640px){.app-bilingual-name-grid{grid-template-columns:1fr}.app-info-tooltip-content{position:fixed;top:22%;right:1rem;left:1rem;width:auto}}.app-field-help{color:#6b7280;font-size:.75rem;line-height:1.4}html.dark .app-field-help{color:#9ca3af}.app-item-preview-header,.app-image-controls{display:flex;align-items:center;gap:1rem;min-width:0}.app-item-preview-card{position:relative;width:100%;min-width:0;max-width:100%;overflow:hidden;padding:1rem;margin-bottom:1rem;border:1px solid #e5e7eb;border-radius:.5rem;background-color:#fff}.app-current-image-preview{width:120px;height:120px;padding:0;border:2px solid #e5e7eb;border-radius:.5rem;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;background-color:#f3f4f6;cursor:zoom-in}.app-current-image-preview:hover,.app-current-image-preview:focus-visible{border-color:#3b82f6}.app-current-image-preview:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}html.dark .app-current-image-preview{border-color:#4b5563;background-color:#1f2937}html.dark .app-current-image-preview:hover,html.dark .app-current-image-preview:focus-visible{border-color:#60a5fa}.app-image-controls{position:relative;gap:.5rem;width:100%;max-width:100%}.app-image-controls .app-input{flex:1 1 12rem;min-width:0}.app-image-url-preview{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-input,.app-select-input{width:100%;min-width:0;max-width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:.5rem;background-color:#fff;color:#111827;font-size:1rem;transition:border-color .2s,box-shadow .2s}.app-input:focus,.app-select-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633}.app-button{padding:.75rem 1.5rem;border-radius:.5rem;border:none;cursor:pointer;font-weight:500;font-size:.875rem;transition:opacity .2s,transform .1s;justify-self:start}.app-button:hover:not(:disabled){opacity:.9}.app-button:active:not(:disabled){transform:scale(.98)}.app-button-primary{background-color:#3b82f6;color:#fff}.app-button-secondary{background-color:#6b7280;color:#fff}.app-button:disabled{opacity:.5;cursor:not-allowed}.app-item-edit-actions{display:flex;align-items:center;gap:.75rem;min-width:0}.app-item-edit-actions .app-button{min-width:7rem}.app-list{display:grid;gap:.75rem}.app-list-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;border:1px solid #e5e7eb;border-radius:.5rem;background-color:#fff;transition:border-color .2s,box-shadow .2s}.app-item-row-clickable,.app-location-list-item.is-collapsible{cursor:pointer}.app-item-row-main{display:flex;flex:1 1 auto;align-items:center;gap:.75rem;min-width:0;border-radius:.35rem}.app-item-row-main:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.app-item-row-clickable:hover,.app-location-list-item.is-collapsible:hover{border-color:#93c5fd}html.dark .app-item-row-clickable:hover,html.dark .app-location-list-item.is-collapsible:hover{border-color:#60a5fa}.app-list-item:hover{border-color:#93c5fd;box-shadow:0 1px 3px #0000001a}.app-list-item-text{flex:1;min-width:0}.app-list-item-name{font-weight:500;color:#111827;margin:0}.app-item-name-row{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;min-width:0}.app-list-item-meta{font-size:.875rem;color:#6b7280;margin-top:.25rem}.app-stock-page,.app-stock-catalog,.app-recipe-page{display:grid;gap:1.25rem;min-width:0}.app-usage-guide{display:grid;gap:1rem}.app-guide-intro,.app-guide-rules{padding:1rem;border:1px solid #d1d5db;border-radius:.75rem;background:#fff}.app-guide-intro h2,.app-guide-intro p,.app-guide-card h3,.app-guide-card p,.app-guide-rules h3{margin-top:0}.app-guide-intro p,.app-guide-card p{margin-bottom:0;color:#6b7280;line-height:1.55}.app-guide-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;padding:.4rem}.app-guide-flow-section{display:grid;gap:.5rem}.app-guide-flow-section h3{margin:0}.app-guide-flow-part{position:relative;min-width:0}.app-guide-flow-step{display:flex;align-items:flex-start;gap:.6rem;height:100%;padding:.7rem;border:1px solid #bfdbfe;border-radius:.7rem;background:#dbeafe;color:#1e3a8a}.app-guide-flow-step>span{display:grid;gap:.15rem;min-width:0}.app-guide-flow-step b{line-height:1.2}.app-guide-flow-step small{color:#475569;font-size:.7rem;line-height:1.3;white-space:pre-line}.app-guide-flow-arrow{position:absolute;top:50%;left:calc(100% + .45rem);transform:translateY(-50%);color:#64748b;font-size:1.25rem;font-weight:800}.app-guide-flow-step strong{display:inline-grid;place-items:center;width:1.9rem;height:1.9rem;flex:0 0 1.9rem;border-radius:999px;background:#3b82f6;color:#fff}.app-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.app-guide-card{display:flex;gap:.75rem;padding:1rem;border:1px solid #d1d5db;border-radius:.75rem;background:#fff}.app-guide-rules ul{display:grid;gap:.5rem;margin-bottom:0;padding-left:1.25rem}html.dark .app-guide-intro,html.dark .app-guide-card,html.dark .app-guide-rules{border-color:#475569;background:#1f2937}html.dark .app-guide-intro p,html.dark .app-guide-card p{color:#cbd5e1}html.dark .app-guide-flow-step{border-color:#3b82f6;background:#1e3a8a;color:#dbeafe}html.dark .app-guide-flow-step small{color:#bfdbfe}html.dark .app-guide-flow-arrow{color:#94a3b8}@media (max-width: 640px){.app-guide-grid{grid-template-columns:1fr}.app-guide-flow{grid-template-columns:1fr;gap:1.7rem}.app-guide-flow-arrow{top:calc(100% + .2rem);left:50%;transform:translate(-50%) rotate(90deg)}}.app-recipe-search{display:grid;gap:.9rem}.app-recipe-selection-sticky{position:sticky;top:3.7rem;z-index:40;display:flex;align-items:center;gap:.65rem;min-width:0;padding:.55rem .7rem;border:1px solid #bfdbfe;border-radius:.6rem;background:#eff6fff5;color:#1e3a8a;box-shadow:0 2px 8px #0f172a1f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.app-recipe-selection-sticky>strong{flex:0 0 auto}.app-recipe-selection-sticky>div{display:flex;gap:.4rem;min-width:0;overflow-x:auto;scrollbar-width:thin}.app-recipe-selection-sticky span{flex:0 0 auto;padding:.2rem .5rem;border-radius:999px;background:#dbeafe;font-size:.8rem;font-weight:700}.app-recipe-actions{display:flex;flex-wrap:wrap;gap:.75rem}.app-recipe-term-review{display:grid;gap:.75rem;min-width:0}.app-recipe-term-review-body{display:grid;gap:.75rem;padding:.8rem;border:1px solid #dbeafe;border-radius:.65rem;background:#f8fafc}.app-recipe-term-review-list{display:grid;gap:.55rem}.app-recipe-term-review-row{display:grid;grid-template-columns:minmax(12rem,1fr) minmax(12rem,1.2fr) auto;align-items:center;gap:.65rem;padding:.65rem;border:1px solid #e2e8f0;border-radius:.55rem;background:#fff}.app-recipe-term-review-row>div{display:grid;min-width:0}.app-recipe-term-review-row small{color:#64748b}.app-recipe-term-review-row.is-confirmed{border-left:4px solid #16a34a}.app-recipe-search-button{display:inline-flex;align-items:center;justify-content:center;gap:.55rem}.app-recipe-history-notice{margin:0;padding:.65rem .8rem;border:1px solid #f59e0b;border-radius:.55rem;background:#fffbeb;color:#92400e}.app-recipe-title{display:flex;align-items:flex-start;gap:.5rem;min-width:0}.app-recipe-number{display:inline-flex;align-items:center;justify-content:center;min-width:1.6rem;height:1.6rem;padding:0 .35rem;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:.8rem;font-weight:800}.app-search-spinner{width:1rem;height:1rem;flex:0 0 1rem;border:2px solid #ffffff;border-right-color:transparent;border-radius:50%;animation:app-search-spin .7s linear infinite}@keyframes app-search-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.app-search-spinner{animation-duration:1.5s}}.app-recipe-categories{display:grid;gap:.9rem;min-width:0}.app-recipe-category{display:grid;gap:.35rem;min-width:0}.app-recipe-category-heading{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.app-recipe-ingredient-list{display:flex;gap:.5rem;overflow-x:auto;padding:.15rem 0 .45rem}.app-recipe-ingredient{flex:0 0 auto;display:grid;gap:.15rem;padding:.55rem .75rem;border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#334155;cursor:pointer;font:inherit}.app-recipe-ingredient small{color:#64748b}.app-recipe-ingredient.is-selected{border-color:#2563eb;background:#dbeafe;color:#1e3a8a}.app-recipe-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.app-recipe-card{overflow:hidden;border:1px solid #e2e8f0;border-radius:.75rem;background:#fff}.app-recipe-image{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover}.app-recipe-card-body{display:grid;gap:.65rem;padding:1rem}.app-recipe-card-body p{margin:0}.app-recipe-stock-items{display:grid;gap:.35rem;padding:.65rem;border-radius:.55rem;background:#eff6ff}.app-recipe-stock-items>div{display:grid}.app-recipe-stock-items span{font-weight:700}.app-recipe-stock-items small{color:#64748b}.app-recipe-stock-location{overflow-wrap:anywhere}.app-recipe-card-body details ul{margin-bottom:0;padding-left:1.25rem}.app-recipe-match{border-radius:999px;background:#dcfce7;color:#166534;padding:.2rem .5rem;font-size:.8rem;font-weight:700}.app-recipe-no-more{margin:0;padding:.65rem .8rem;border:1px solid #93c5fd;border-radius:.55rem;background:#eff6ff;color:#1e3a8a}.app-error{color:#b91c1c}html.dark .app-recipe-ingredient{border-color:#475569;background:#1f2937;color:#e5e7eb}html.dark .app-recipe-ingredient small{color:#94a3b8}html.dark .app-recipe-ingredient.is-selected{border-color:#60a5fa;background:#1e3a8a;color:#fff}html.dark .app-recipe-card{border-color:#475569;background:#1f2937}html.dark .app-recipe-match{background:#14532d;color:#bbf7d0}html.dark .app-recipe-no-more{border-color:#2563eb;background:#172554;color:#dbeafe}html.dark .app-recipe-stock-items{background:#1e3a8a}html.dark .app-recipe-stock-items small{color:#bfdbfe}html.dark .app-recipe-history-notice{border-color:#d97706;background:#451a03;color:#fde68a}html.dark .app-recipe-number{background:#1e3a8a;color:#bfdbfe}html.dark .app-recipe-selection-sticky{border-color:#1d4ed8;background:#1e3a8af5;color:#dbeafe}html.dark .app-recipe-selection-sticky span{background:#172554;color:#dbeafe}html.dark .app-recipe-term-review-body{border-color:#334155;background:#1f2937}html.dark .app-recipe-term-review-row{border-color:#475569;background:#111827}html.dark .app-recipe-term-review-row small{color:#94a3b8}html.dark .app-error{color:#fca5a5}.app-stock-form{scroll-margin-top:5.5rem}.app-stock-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.app-stock-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.app-stock-form-grid .app-input,.app-stock-form-grid .app-select-input{height:3rem}.app-number-stepper{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.35rem;min-width:0}.app-number-stepper button{min-width:3rem;border:1px solid #cbd5e1;border-radius:.4rem;background:#f8fafc;color:#1f2937;cursor:pointer;font:inherit;font-weight:700}.app-number-stepper button:disabled{cursor:not-allowed;opacity:.55}html.dark .app-number-stepper button{border-color:#475569;background:#334155;color:#e5e7eb}html.dark .app-number-stepper button:hover:not(:disabled){border-color:#60a5fa;background:#475569;color:#fff}.app-stock-filters{display:grid;grid-template-columns:minmax(12rem,2fr) repeat(2,minmax(0,1fr));gap:.5rem}.app-stock-summary{display:flex;gap:.5rem;padding-bottom:.2rem;overflow-x:auto;scrollbar-width:none}.app-stock-summary::-webkit-scrollbar{display:none}.app-stock-summary-section{display:grid;gap:.4rem;min-width:0}.app-stock-summary-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.app-filter-clear.is-hidden{visibility:hidden;pointer-events:none}.app-stock-summary-controls{display:flex;align-items:center;gap:.4rem}.app-stock-summary.is-expanded{display:flex;max-height:18rem;flex-wrap:wrap;align-content:flex-start;overflow-x:hidden;overflow-y:auto;padding:.25rem;border:1px solid #d1d5db;border-radius:.6rem}html.dark .app-stock-summary.is-expanded{border-color:#475569}.app-stock-summary-chip{flex:0 0 auto;padding:.45rem .65rem;border:2px solid #d1d5db;border-radius:999px;background:#fff;color:#475569;cursor:pointer;font:inherit;font-size:.75rem;white-space:nowrap;transition:opacity .15s,box-shadow .15s,transform .15s}.app-stock-summary-chip:hover{filter:brightness(1.12)}.app-stock-summary-chip:focus-visible{outline:2px solid currentColor;outline-offset:1px}.app-stock-summary-chip.is-selected{color:#fff}.app-stock-summary-chip.is-muted{opacity:.52}.app-stock-card{gap:.75rem}.app-stock-location-list,.app-stock-location-content{display:grid;gap:.65rem;min-width:0}.app-stock-location-group{display:grid;min-width:0;gap:.65rem}.app-stock-location-heading{display:flex;align-items:center;width:100%;gap:.6rem;padding:.7rem .85rem;border:1px solid #cbd5e1;border-radius:.55rem;background:#eaf1fb;color:#1f2937;cursor:pointer;font:inherit;font-size:1rem;text-align:left}.app-stock-location-heading strong{flex:1;font-size:1rem}.app-stock-location-heading>span:last-child{color:#64748b;font-size:.75rem}html.dark .app-stock-location-heading{border-color:#475569;background:#263449;color:#f9fafb}html.dark .app-stock-location-heading>span:last-child{color:#cbd5e1}.app-stock-card.is-expired{border-left:.3rem solid #dc2626}.app-stock-card.is-warning{border-left:.3rem solid #d97706}.app-stock-card.is-low-stock{box-shadow:inset .3rem 0 #d97706}.app-stock-image{width:3.5rem;height:3.5rem;flex:0 0 3.5rem;border-radius:.4rem;object-fit:cover}.app-stock-expiry{margin-top:.3rem;color:#475569;font-size:.75rem}.app-stock-expiry.is-expired{color:#dc2626;font-weight:700}.app-stock-expiry.is-warning{color:#b45309;font-weight:700}.app-stock-level{color:#64748b;font-size:.9rem}.app-stock-level.is-low{color:#b45309;font-weight:700}.app-stock-quick-actions{display:flex;gap:.35rem}.app-stock-quick-actions button{min-width:2.35rem;min-height:2.35rem;border:1px solid #cbd5e1;border-radius:.4rem;background:#f8fafc;color:#1f2937;cursor:pointer;font-weight:700;padding-inline:.55rem}.app-stock-scan-dialog{gap:1rem}.app-stock-scan-image{width:6rem;height:6rem;margin-inline:auto;border-radius:.6rem;object-fit:cover}.app-stock-consume-panel{display:grid;gap:.75rem;padding-top:.75rem;border-top:1px solid #d1d5db}html.dark .app-stock-consume-panel{border-color:#475569}html.dark .app-stock-summary-chip,html.dark .app-stock-quick-actions button{border-color:#475569;background:#334155;color:#e5e7eb}.app-stock-quick-actions button:disabled{cursor:not-allowed;opacity:.55}html.dark .app-stock-quick-actions button:hover:not(:disabled){border-color:#60a5fa;background:#475569;color:#fff}html.dark .app-stock-summary-chip.is-selected{color:#fff}html.dark .app-stock-expiry{color:#cbd5e1}html.dark .app-stock-expiry.is-expired{color:#fca5a5}html.dark .app-stock-expiry.is-warning{color:#fcd34d}html.dark .app-stock-level{color:#94a3b8}html.dark .app-stock-level.is-low{color:#fcd34d}.app-category-badge{display:inline-flex;align-items:center;width:fit-content;margin-top:0;padding:.18rem .5rem;border:1px solid currentColor;border-radius:999px;background:#f3f4f6;color:#4b5563;font-size:.7rem;font-weight:700;line-height:1.2}.app-category-badge[data-category=produce]{background:#dcfce7;color:#166534}.app-category-badge[data-category=dairy]{background:#dbeafe;color:#1e40af}.app-category-badge[data-category=meat]{background:#fee2e2;color:#991b1b}.app-category-badge[data-category=frozen]{background:#cffafe;color:#155e75}.app-category-badge[data-category=dry]{background:#fef3c7;color:#92400e}.app-category-badge[data-category=canned]{background:#e2e8f0;color:#334155}.app-category-badge[data-category=drink]{background:#f3e8ff;color:#6b21a8}.app-category-badge[data-category=spice]{background:#ffedd5;color:#9a3412}.app-category-badge[data-category=household]{background:#e0e7ff;color:#3730a3}.app-category-badge[data-category=other]{background:#f3f4f6;color:#4b5563}.app-category-manager{width:100%;min-width:0;border:1px solid #d1d5db;border-radius:.5rem;background:#fff;scroll-margin-top:5.5rem}.app-category-manager>summary{padding:.7rem .85rem;color:#2563eb;cursor:pointer;font-size:.875rem;font-weight:700}.app-category-manager-content,.app-category-form{display:grid;gap:1rem;min-width:0}.app-category-bilingual-fields{display:grid;gap:.85rem;min-width:0}.app-category-description{min-height:5rem;resize:vertical;font-family:inherit}.app-category-manager-content{padding:0 .85rem .85rem}.app-category-form{padding:.85rem;border-radius:.5rem;background:#f3f4f6}.app-category-color-field{display:flex;align-items:center;gap:.75rem}.app-category-color-field input{width:3rem;height:2rem;padding:0;border:0;background:transparent}.app-category-form-actions,.app-category-card,.app-category-card-name{display:flex;align-items:center;gap:.5rem}.app-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.app-category-card{position:relative;justify-content:space-between;flex-wrap:wrap;min-width:0;padding:.65rem;border:1px solid #e5e7eb;border-radius:.5rem}.app-category-reassign{display:grid;flex:1 0 100%;gap:.65rem;padding-top:.65rem;border-top:1px solid #e5e7eb}.app-category-suggestion{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem;padding:.65rem;border:1px dashed #93c5fd;border-radius:.5rem;background:#eff6ff;color:#1e3a8a;font-size:.8rem}.app-category-suggestion .app-button{padding:.5rem .75rem}.app-category-choice{display:grid;gap:.5rem;padding:.65rem;border:1px dashed #f59e0b;border-radius:.5rem;background:#fffbeb;color:#78350f;font-size:.8rem}.app-category-choice>div{display:flex;flex-wrap:wrap;gap:.5rem}html.dark .app-category-choice{border-color:#d97706;background:#451a03;color:#fef3c7}.app-duplicate-category-recovery{display:grid;gap:.65rem;padding:.75rem;border:1px solid #f59e0b;border-radius:.5rem;background:#fffbeb;color:#78350f}.app-duplicate-category-options,.app-duplicate-category-create{display:flex;flex-wrap:wrap;gap:.5rem}.app-duplicate-category-create .app-input{flex:1 1 12rem}html.dark .app-duplicate-category-recovery{border-color:#d97706;background:#451a03;color:#fef3c7}.app-category-move-review{display:grid;gap:.65rem;padding:.85rem;border:1px solid #93c5fd;border-radius:.5rem;background:#eff6ff;color:#1e3a8a}.app-category-move-list{display:grid;gap:.4rem}.app-category-move-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.55rem;border-radius:.4rem;background:#ffffffb3}.app-category-move-item>span{display:grid;gap:.15rem}.app-category-move-item small{color:#64748b}html.dark .app-category-move-review{border-color:#3b82f6;background:#172554;color:#dbeafe}html.dark .app-category-move-item{background:#0f172aa6}html.dark .app-category-suggestion{border-color:#3b82f6;background:#172554;color:#dbeafe}html.dark .app-category-reassign{border-top-color:#475569}.app-category-color{width:.8rem;height:.8rem;flex:0 0 .8rem;border-radius:999px}.app-category-count{padding:.08rem .35rem;border-radius:999px;background:#e5e7eb;color:#4b5563;font-size:.7rem;font-weight:700}.app-category-help{flex:0 0 auto}.app-category-help .app-info-button{width:1.1rem;height:1.1rem;font-size:.8rem}.app-category-help .app-info-tooltip-content{width:min(24rem,calc(100vw - 3rem))}html.dark .app-category-manager{border-color:#475569;background:#1f2937}html.dark .app-category-form,html.dark .app-category-count{background:#374151;color:#e5e7eb}html.dark .app-category-card{border-color:#475569}@media (max-width: 640px){.app-item-row-main{flex:1 1 100%;width:100%}.app-stock-form{scroll-margin-top:3.5rem}.app-recipe-grid{grid-template-columns:1fr}.app-recipe-selection-sticky{top:2.7rem;align-items:flex-start;flex-direction:column;gap:.35rem}.app-recipe-term-review-row,.app-stock-form-grid,.app-stock-filters{grid-template-columns:1fr}.app-stock-form-grid .app-field:last-child{grid-column:auto}.app-stock-card .app-list-item-text{flex:1 1 calc(100% - 4.5rem)}.app-stock-quick-actions{margin-left:auto}.app-category-help{position:static}.app-category-help .app-info-tooltip-content{position:absolute;top:auto;bottom:calc(100% + .4rem);right:0;left:0;width:auto}.app-category-grid{grid-template-columns:1fr}}html.dark .app-category-badge[data-category=produce]{background:#14532d;color:#bbf7d0}html.dark .app-category-badge[data-category=dairy]{background:#1e3a8a;color:#bfdbfe}html.dark .app-category-badge[data-category=meat]{background:#7f1d1d;color:#fecaca}html.dark .app-category-badge[data-category=frozen]{background:#164e63;color:#cffafe}html.dark .app-category-badge[data-category=dry]{background:#78350f;color:#fde68a}html.dark .app-category-badge[data-category=canned]{background:#334155;color:#e2e8f0}html.dark .app-category-badge[data-category=drink]{background:#581c87;color:#e9d5ff}html.dark .app-category-badge[data-category=spice]{background:#7c2d12;color:#fed7aa}html.dark .app-category-badge[data-category=household]{background:#312e81;color:#c7d2fe}html.dark .app-category-badge[data-category=other]{background:#374151;color:#e5e7eb}.app-list-item-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.app-item-image{width:48px;height:48px;object-fit:cover;border-radius:.25rem}.app-action-link{font-size:.875rem;background:none;border:none;padding:.5rem;color:#3b82f6;cursor:pointer;border-radius:.25rem;transition:background-color .2s}.app-action-link:hover{background-color:#eff6ff}.app-action-link-danger{color:#ef4444}.app-action-link-danger:hover{background-color:#fef2f2}.app-image-selector{margin-top:1rem;padding:1rem;background-color:#f3f4f6;border-radius:.5rem}.app-provider-attribution{display:inline-block;margin-left:.75rem;color:#3b82f6;font-size:.75rem}html.dark .app-provider-attribution{color:#60a5fa}.app-image-results{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));align-items:start;gap:.5rem;margin-top:.5rem}.app-image-result{min-width:0}@media (max-width: 640px){.app-image-results{display:flex;flex-wrap:wrap}.app-image-result{flex:0 0 calc((100% - 1.5rem)/4);width:calc((100% - 1.5rem)/4)}.app-image-result:nth-child(n+13){display:none!important}}html.dark .app-image-selector{background-color:#374151}html.dark .app-item-preview-card{background-color:#1f2937;border-color:#374151}.fixed{position:fixed}.inset-0{top:0;right:0;bottom:0;left:0}.bg-black{background-color:#000}.bg-opacity-50{background-color:#00000080}.z-50{z-index:50}.justify-center{justify-content:center}html.dark body,html.dark .app-container{background-color:#111827;color:#f3f4f6}html.dark .app-header,html.dark .app-nav{background-color:#1f2937;border-bottom-color:#374151}html.dark .app-control-btn{background-color:#374151;border-color:#4b5563;color:#e5e7eb}html.dark .app-control-btn:hover{background-color:#1f2937;border-color:#60a5fa}html.dark .app-input,html.dark .app-select-input{background-color:#374151;border-color:#4b5563;color:#f3f4f6}html.dark .app-list-item{background-color:#1f2937;border-color:#374151}html.dark .app-list-item:hover{border-color:#60a5fa;box-shadow:0 1px 3px #0000004d}html.dark .app-list-item-name{color:#f3f4f6}html.dark .app-list-item-meta{color:#9ca3af}html.dark .app-tab{color:#e5e7eb}html.dark .app-tab:hover{background-color:#1f2937;color:#f3f4f6}html.dark .app-action-link{color:#60a5fa}html.dark .app-action-link:hover{background-color:#1e40af}html.dark .app-action-link-danger{color:#f87171}html.dark .app-action-link-danger:hover{background-color:#7f1d1d}.app-catalog-controls{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:.5rem}@media (max-width: 640px){.app-catalog-controls{grid-template-columns:1fr}.app-image-controls{display:grid;grid-template-columns:1fr 1fr}.app-image-controls .app-input{grid-column:1 / -1}.app-image-controls .app-button{width:100%;min-width:0;max-width:100%;padding-left:.75rem;padding-right:.75rem;justify-self:stretch;overflow:hidden;text-overflow:ellipsis}.app-list-item{align-items:flex-start;flex-wrap:wrap;gap:.75rem}.app-list-item-text{flex:1 1 calc(100% - 4rem)}.app-list-item-actions{flex:1 0 100%;justify-content:flex-end}.app-item-preview-header{align-items:flex-start}}@media (hover: none){.app-list-item:hover{border-color:#e5e7eb;box-shadow:0 1px 3px #0000001a}.app-action-link:hover{background-color:transparent}.app-action-link-danger:hover{background-color:#fef2f2}.app-button:hover:not(:disabled){opacity:1}}@media (max-width: 640px){.app-stock-form-grid input[type=date]{display:block;width:-webkit-fill-available;min-width:0;max-width:100%;box-sizing:border-box;inline-size:100%;min-inline-size:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:left}.app-stock-form-grid input[type=date]::-webkit-date-and-time-value,.app-stock-form-grid input[type=date]::-webkit-datetime-edit{width:100%;min-width:0;margin:0;padding:0;text-align:left}.app-stock-form-grid .app-field{min-width:0;max-width:100%;overflow:hidden}.app-location-tree .app-list,.app-stock-location-list,.app-stock-location-content,.app-stock-location-group{gap:.4rem}.app-location-list-item,.app-stock-card{gap:.4rem;padding:.55rem .65rem}.app-location-list-item{align-items:center;flex-wrap:nowrap}.app-location-list-item .app-list-item-text{flex:1 1 auto;min-width:2.5rem}.app-location-list-item .app-list-item-name,.app-location-list-item .app-list-item-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-location-list-item .app-list-item-actions,.app-stock-card .app-list-item-actions{flex:0 1 auto;gap:.1rem;margin-left:auto}.app-location-list-item .app-list-item-actions{flex-wrap:nowrap}.app-location-action-text{display:none}.app-location-action-icon{display:inline;font-size:1.1rem;line-height:1}.app-location-row-action{display:inline-grid;width:1.8rem;height:1.8rem;place-items:center}.app-location-list-item .app-action-link,.app-stock-card .app-action-link{padding:.3rem;font-size:.78rem}.app-location-drag-handle{width:1.8rem;height:1.8rem}.app-location-toggle,.app-location-promote{height:1.8rem}.app-location-toggle{width:2.1rem;height:2.1rem;flex-basis:2.1rem;font-size:1.35rem}.app-location-promote{width:1.55rem;flex-basis:1.55rem}.app-location-promote+.app-location-toggle{margin-left:.35rem}.app-stock-location-heading{gap:.4rem;padding:.5rem .65rem}.app-stock-image{width:2.75rem;height:2.75rem;flex-basis:2.75rem}.app-stock-card .app-list-item-text{flex-basis:calc(100% - 3.25rem)}.app-stock-quick-actions{gap:.2rem;margin-left:0}.app-stock-quick-actions button{min-width:2.2rem;min-height:2.2rem;padding-inline:.4rem;font-size:.78rem}.app-list-item-meta,.app-stock-expiry{margin-top:.15rem}}
