html{--lumo-primary-color:#327b59;--lumo-primary-text-color:#29704f;--lumo-primary-color-50pct:#327b5980;--lumo-primary-color-10pct:#327b591a;--lumo-font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}.card,.detail-form{background:var(--lumo-base-color);border:1px solid var(--lumo-contrast-10pct);border-radius:var(--lumo-border-radius-l);padding:var(--lumo-space-m)}.stock-toolbar{gap:var(--lumo-space-s) var(--lumo-space-m)}.stock-toolbar-search{flex:14rem;min-width:0}.stock-toolbar-order{flex:none;width:11.5rem}.stock-toolbar-summary{white-space:nowrap}.stock-toolbar-add{margin-left:auto}.product-grid{gap:var(--lumo-space-m);padding:var(--lumo-space-xs) var(--lumo-space-xs) var(--lumo-space-l);grid-template-columns:repeat(auto-fill,minmax(13.5rem,1fr));align-content:start;display:grid}.product-grid-empty{padding:var(--lumo-space-xl) var(--lumo-space-m);text-align:center;grid-column:1/-1}.product-link{height:100%;color:inherit;border-radius:var(--lumo-border-radius-l);text-decoration:none;display:block}.product-link:focus-visible{outline:2px solid var(--lumo-primary-color);outline-offset:2px}.product-card{height:100%;transition:transform .12s ease-out,box-shadow .12s ease-out}.product-link:hover .product-card{box-shadow:var(--lumo-box-shadow-s);transform:translateY(-2px)}.product-image{object-fit:cover;width:100%;display:block}.product-image-placeholder{background:var(--lumo-contrast-5pct);justify-content:center;align-items:center;width:100%;display:flex}.product-count{font-size:var(--lumo-font-size-xxl);font-variant-numeric:tabular-nums;font-weight:600;line-height:1}.product-count-box{flex-direction:column;gap:.15rem;display:flex}.product-footer{flex-direction:column;gap:.2rem;display:flex}.tag-row{align-items:flex-start;gap:var(--lumo-space-s);width:100%;min-width:0;display:flex}.tag-bar{gap:var(--lumo-space-xs);min-width:0;padding:var(--lumo-space-xs) var(--lumo-space-xs) var(--lumo-space-s);flex-wrap:wrap;flex:auto;display:flex}.tag-bar.folded{overscroll-behavior-x:contain;scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 1.5rem),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 1.5rem),#0000)}.tag-bar.folded::-webkit-scrollbar{display:none}.tag-bar>.tag-chip-link{flex-shrink:0}.tag-chip-link{border-radius:var(--lumo-border-radius-m);text-decoration:none}.tag-chip-link:focus-visible{outline:2px solid var(--lumo-primary-color);outline-offset:2px}.tag-chip{white-space:nowrap;align-items:center;gap:var(--lumo-space-xs);padding:.15rem var(--lumo-space-s);border:1px solid var(--lumo-contrast-10pct);border-radius:var(--lumo-border-radius-m);background:var(--lumo-contrast-5pct);color:var(--lumo-body-text-color);font-size:var(--lumo-font-size-s);line-height:var(--lumo-line-height-s);transition:background .12s ease-out,border-color .12s ease-out;display:inline-flex}.tag-chip-link:hover .tag-chip{background:var(--lumo-contrast-10pct)}.tag-chip.selected{background:var(--lumo-primary-color);border-color:var(--lumo-primary-color);color:var(--lumo-primary-contrast-color)}.tag-chip-link:hover .tag-chip.selected{background:var(--lumo-primary-color-50pct)}.tag-chip-count{font-size:var(--lumo-font-size-xxs);color:var(--lumo-secondary-text-color);font-variant-numeric:tabular-nums}.tag-chip-remove{font-size:var(--lumo-font-size-s);opacity:.8;line-height:1}.tag-chip-toggle{white-space:nowrap;margin-top:var(--lumo-space-xs);flex-shrink:0}.tag-chip-clear{color:var(--lumo-secondary-text-color);background:0 0;border-style:dashed}.product-tags{flex-wrap:wrap;gap:.2rem;display:flex}.product-tag{border-radius:var(--lumo-border-radius-s);background:var(--lumo-contrast-5pct);color:var(--lumo-secondary-text-color);font-size:var(--lumo-font-size-xxs);padding:0 .35rem;line-height:1.5}.detail-back{align-items:center;gap:var(--lumo-space-xs);flex-wrap:wrap;padding-block-end:var(--lumo-space-xs);display:flex}.detail-back-link{margin-inline-end:var(--lumo-space-xs)}.detail-columns{gap:var(--lumo-space-l);grid-template-columns:minmax(15rem,21rem) 1fr;align-items:start;width:100%;display:grid}@media (width<=800px){.detail-columns{grid-template-columns:1fr}}.detail-side{gap:var(--lumo-space-m);flex-direction:column;display:flex}.detail-side .product-image,.detail-side .product-image-placeholder{border:1px solid var(--lumo-contrast-10pct);border-radius:var(--lumo-border-radius-l)}.detail-side .product-image.zoomable{cursor:zoom-in}.detail-side .product-image.zoomable:focus-visible{outline:2px solid var(--lumo-primary-color);outline-offset:2px}vaadin-dialog.photo-viewer::part(backdrop){-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0b0f13d1}vaadin-dialog.photo-viewer::part(overlay){box-shadow:none;background:0 0;border:none;outline:none}vaadin-dialog.photo-viewer::part(content){overflow:visible}.photo-viewer-frame{align-items:center;gap:var(--lumo-space-m);flex-direction:column;animation:.22s cubic-bezier(.2,.8,.2,1) photo-viewer-in;display:flex}@keyframes photo-viewer-in{0%{opacity:0;transform:scale(.94)}}@media (prefers-reduced-motion:reduce){.photo-viewer-frame{animation:none}}.photo-viewer-picture{position:relative}.photo-full{object-fit:contain;border-radius:var(--lumo-border-radius-l);background:var(--lumo-base-color);cursor:zoom-out;max-width:92vw;max-height:calc(86dvh - 4.5rem);display:block;box-shadow:0 1.5rem 4rem #0000008c,0 0 0 1px #ffffff14}vaadin-button.photo-viewer-close{top:var(--lumo-space-s);right:var(--lumo-space-s);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;width:2.25rem;min-width:0;height:2.25rem;font-size:var(--lumo-icon-size-m);background:#0f14198c;border-radius:50%;margin:0;padding:0;position:absolute}vaadin-button.photo-viewer-close:hover{background:#0f1419bf}.photo-viewer-caption{text-align:center;flex-direction:column;align-items:center;max-width:92vw;line-height:1.3;display:flex}.photo-viewer-name{color:#fff;font-size:var(--lumo-font-size-l);font-weight:600}.photo-viewer-detail{color:#ffffffa6;font-size:var(--lumo-font-size-s)}.detail-steppers{gap:var(--lumo-space-xs)}.detail-meta{font-size:var(--lumo-font-size-xxs);color:var(--lumo-tertiary-text-color);font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-start;gap:.15rem;display:flex}.detail-gtin{padding:.15rem var(--lumo-space-s);border-radius:var(--lumo-border-radius-m);background:var(--lumo-primary-color-10pct);color:var(--lumo-primary-text-color);font-size:var(--lumo-font-size-s);letter-spacing:.04em;margin-block-end:var(--lumo-space-xs);font-weight:600}.list-row{padding:var(--lumo-space-xs) 0;border-bottom:1px solid var(--lumo-contrast-5pct)}.list-row:last-child{border-bottom:none}.scan-frame{width:100%;position:relative}.scan-result{max-width:80%;padding:var(--lumo-space-m) var(--lumo-space-l);border-radius:var(--lumo-border-radius-l);background:var(--lumo-success-color);color:#fff;font-size:var(--lumo-font-size-xxl);text-align:center;text-wrap:balance;pointer-events:none;opacity:0;font-weight:600;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 6px 24px #00000059}.scan-result.shown{animation:1.5s ease-out forwards scan-result}@keyframes scan-result{0%{opacity:0;transform:translate(-50%,-50%)scale(.92)}8%{opacity:1;transform:translate(-50%,-50%)scale(1)}70%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(1)}}@media (prefers-reduced-motion:reduce){.scan-result.shown{animation-duration:1.5s;animation-timing-function:step-end}}.photo-row{align-items:center;gap:var(--lumo-space-s);flex-wrap:wrap;display:flex}.photo-preview{object-fit:cover;border-radius:var(--lumo-border-radius-m);border:1px solid var(--lumo-contrast-10pct);width:4rem;height:4rem}
