:root{--color-primary:#6d1f2b;--color-primary-dark:#4a1428;--color-primary-soft:#f6e9ec;--color-secondary:#2d4a3e;--color-background:#faf3ea;--color-surface:#fffdfb;--color-text:#2b2129;--color-text-secondary:#7a7078;--color-text-tertiary:#a99fa0;--color-muted:#8d7f8b;--color-border:#e6ddd3;--color-danger:#b3261e;--color-warning:#b45309;--font-serif:"Cormorant Garamond", Georgia, "Times New Roman", serif;--font-sans:"Inter", system-ui, "Segoe UI", Roboto, sans-serif;--font-weight-regular:400;--font-weight-semibold:600;--font-weight-bold:700;--font-size-small:.8125rem;--font-size-base:1rem;--font-size-medium:1.125rem;--font-size-large:1.5rem;--font-size-xlarge:2rem;--font-size-display:2.5rem;--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:32px;--space-6:48px;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-pill:999px;--bottom-nav-height:64px}.no-select-drag{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none}:root{--wine:var(--color-primary);--wine-dark:var(--color-primary-dark);--cream:var(--color-background);--text:var(--color-text);--text-muted:var(--color-text-secondary);--border:var(--color-border);--sans:var(--font-sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font:16px/1.45 var(--sans);color:var(--text);background:var(--cream);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0}#root{flex-direction:column;min-height:100svh;display:flex}h1{margin:0 0 8px;font-size:clamp(1.375rem,1.2rem + 1vw,1.625rem)}p{color:var(--text-muted);margin:0}a{color:var(--wine)}.app-layout{flex-direction:column;min-height:100svh;display:flex}.app-content{padding-bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom));flex:1}.page{max-width:480px;margin:0 auto;padding:24px 20px}@media (width>=700px){.page{max-width:640px;padding:32px 24px}}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-2);margin-bottom:8px;display:flex}.page-header h1{margin:0}.bottom-nav{z-index:40;background:var(--color-surface);max-width:480px;padding-bottom:env(safe-area-inset-bottom);border-radius:24px 24px 0 0;justify-content:center;align-items:flex-end;gap:0;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 24px #2b21291a}@media (width>=700px){.bottom-nav{max-width:640px}}.bottom-nav-item{color:var(--color-text-tertiary);font-family:var(--font-sans);flex-direction:column;flex:1;align-items:center;gap:4px;padding:12px 4px 10px;font-size:12px;font-weight:600;text-decoration:none;transition:color .15s;display:flex}.bottom-nav-item.active{color:var(--color-primary)}.bottom-nav-label{position:relative}.bottom-nav-item.active .bottom-nav-label:after{content:"";background:var(--color-primary);border-radius:50%;width:4px;height:4px;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)}.bottom-nav-icon{font-size:22px;line-height:1}.bottom-nav-fab{background:linear-gradient(160deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);color:#fff;cursor:pointer;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;width:60px;height:60px;margin:-26px 10px 10px;font-size:28px;font-weight:700;line-height:1;transition:transform .15s;display:flex;box-shadow:0 8px 20px #4a142866}.bottom-nav-fab:active{transform:scale(.94)}.action-sheet-backdrop{z-index:100;background:#2b212980;align-items:flex-end;animation:.15s ease-out photo-overlay-fade-in;display:flex;position:fixed;inset:0}.action-sheet{background:var(--color-surface);width:100%;padding:20px 20px calc(20px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;flex-direction:column;gap:12px;animation:.2s ease-out action-sheet-slide-up;display:flex;box-shadow:0 -8px 24px #2b212933}@keyframes action-sheet-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.action-sheet-option{color:#fff;cursor:pointer;text-align:left;border:none;border-radius:14px;align-items:center;gap:14px;padding:18px;font-size:17px;font-weight:600;display:flex}.action-sheet-option.insert{background:var(--color-secondary)}.action-sheet-option.sell{background:var(--color-primary)}.action-sheet-option-icon{flex-shrink:0;justify-content:center;align-items:center;width:24px;display:flex}.quantity-sheet{width:100%;max-height:calc(100dvh - var(--bottom-nav-height) - env(safe-area-inset-bottom) - 32px);margin-bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom) + 8px);background:var(--color-surface);border-radius:20px 20px 0 0;flex-direction:column;animation:.2s ease-out action-sheet-slide-up;display:flex;overflow:hidden;box-shadow:0 -8px 24px #2b212933}.quantity-sheet-body{-webkit-overflow-scrolling:touch;text-align:center;flex-direction:column;flex:auto;align-items:center;gap:16px;min-height:0;padding:12px 20px 16px;display:flex;overflow-y:auto}.quantity-sheet-footer{box-shadow:0 -1px 0 var(--color-border);flex:none;padding:12px 20px 20px}.quantity-sheet-close{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;align-self:flex-end;margin-bottom:-8px;padding:6px;font-size:16px;line-height:1}.quantity-sheet-header{flex-direction:column;gap:2px;display:flex}.quantity-sheet-wine-name{font-family:var(--font-serif);font-size:var(--font-size-medium);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.quantity-sheet-wine-producer{font-family:var(--font-sans);font-size:var(--font-size-small);color:var(--color-text-secondary);margin:0}.quantity-sheet-toggle{background:var(--color-background);border-radius:var(--radius-pill);gap:4px;padding:4px;display:flex}.quantity-sheet-toggle-option{border-radius:var(--radius-pill);font-family:var(--font-sans);font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:8px 22px}.quantity-sheet-toggle-option.active{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 3px #2b212933}.quantity-sheet-stepper{align-items:center;gap:24px;display:flex}.quantity-sheet-stepper-button{border:1px solid var(--border);background:var(--color-surface);width:44px;height:44px;color:var(--color-text);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:22px;font-weight:700;display:flex}.quantity-sheet-stepper-button:disabled{opacity:.4;cursor:not-allowed}.quantity-sheet-stepper-value{font-family:var(--font-serif);font-size:var(--font-size-display);font-weight:var(--font-weight-semibold);color:var(--color-text);cursor:pointer;min-width:56px}.quantity-sheet-stepper-input{font-family:var(--font-serif);font-size:var(--font-size-display);font-weight:var(--font-weight-semibold);color:var(--color-text);text-align:center;border:none;border-bottom:2px solid var(--color-secondary);background:0 0;width:84px;min-width:56px}.quantity-sheet-stepper-input:focus{outline:none}.quantity-sheet-move-route{font-family:var(--font-sans);font-size:var(--font-size-small);color:var(--color-text-secondary);margin:0}.quantity-sheet-move-route strong{color:var(--color-text);font-weight:var(--font-weight-semibold)}.quantity-sheet-max-button{border:1px solid var(--color-secondary);border-radius:var(--radius-pill);background:var(--color-background);color:var(--color-secondary);font-family:var(--font-sans);font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);cursor:pointer;padding:6px 18px}.quantity-sheet-max-button:disabled{opacity:.5;cursor:not-allowed}.quantity-sheet-hint{font-family:var(--font-sans);font-size:var(--font-size-small);color:var(--color-text-tertiary);margin:0}.quantity-sheet-confirm{border-radius:var(--radius-md);color:#fff;cursor:pointer;border:none;width:100%;padding:16px;font-size:16px;font-weight:600}.quantity-sheet-confirm:disabled{opacity:.6;cursor:not-allowed}.quantity-sheet-confirm.add{background:var(--color-secondary)}.quantity-sheet-confirm.sell{background:var(--color-primary)}.quantity-sheet-confirm.discard{color:var(--color-text);border:1px solid var(--border);background:#fff}.quantity-sheet-confirm.move{background:var(--color-secondary)}.wine-row-move-confirm-backdrop{z-index:210}.quantity-sheet-remove-actions{gap:10px;width:100%;display:flex}.quantity-sheet-remove-actions .quantity-sheet-confirm{flex:1}.photo-preview{border:1px solid var(--border);border-radius:12px;width:100%;max-width:320px;margin:0 auto 16px;display:block}.status-message{text-align:center;padding:24px 0}.spinner{border:3px solid var(--border);border-top-color:var(--wine);border-radius:50%;width:32px;height:32px;margin:0 auto 12px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-banner{color:#7a1c1c;text-align:left;background:#fdecea;border:1px solid #f3c2bd;border-radius:10px;margin:12px 0;padding:12px 14px;font-size:14px}.success-banner{color:#1f5c2e;text-align:center;background:#eaf7ec;border:1px solid #bfe6c7;border-radius:10px;padding:20px;font-size:17px;font-weight:600}.success-banner-icon-line{align-items:center;gap:6px;display:inline-flex}.location-action-message{margin:12px 0;padding:14px;font-size:15px}.location-action-message .link-button{margin-top:8px;font-size:13px;font-weight:600;display:block}.button-row{gap:10px;margin-top:16px;display:flex}.button{border:1px solid var(--border);cursor:pointer;color:var(--text);background:#fff;border-radius:10px;flex:1;padding:12px 16px;font-size:15px;font-weight:600}.button.primary{background:var(--wine);border-color:var(--wine);color:#fff}.button:disabled{opacity:.6;cursor:not-allowed}.link-button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.form-field{text-align:left;flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-field label{color:var(--text-muted);font-size:13px;font-weight:600}.form-field input,.form-field .custom-select-trigger{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:10px;width:100%;padding:12px;font-size:16px}.form-field input:disabled,.form-field .custom-select-trigger:disabled{opacity:.5;background:var(--color-background);cursor:not-allowed}.form-field p{margin-top:2px;font-size:13px}.input-prefix-group{position:relative}.input-prefix-group .input-prefix{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.input-prefix-group input{padding-left:28px}.form-field-flagged label{color:#7a1c1c}.form-field-flagged input,.form-field-flagged .custom-select-trigger{background:#fdecea;border-color:#d64545}.custom-select{width:100%;position:relative}.custom-select-trigger{justify-content:space-between;align-items:center;gap:var(--space-2);cursor:pointer;font-family:var(--font-sans);text-align:left;display:flex}.custom-select-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.custom-select-trigger.placeholder .custom-select-value{color:var(--color-text-tertiary)}.custom-select-chevron{color:var(--color-text-tertiary);flex-shrink:0;transition:transform .15s}.custom-select-trigger[aria-expanded=true] .custom-select-chevron{transform:rotate(180deg)}.custom-select-menu{z-index:220;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);max-height:260px;margin:0;padding:4px;list-style:none;position:fixed;overflow-y:auto;box-shadow:0 4px 14px #2b212929}.custom-select-option{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:10px 12px;display:flex}.custom-select-option.highlighted{background:var(--color-background)}.custom-select-option.selected{font-weight:var(--font-weight-semibold);color:var(--color-primary-dark)}.custom-select-option:disabled{color:var(--color-text-tertiary);cursor:not-allowed}.custom-select-option-check{color:var(--color-primary);flex-shrink:0}.wine-form-suggestions{margin:-8px 0 16px}.wine-form-suggestions-hint{color:var(--text-muted);margin:0;font-size:13px}.form-row{gap:12px;display:flex}.form-row .form-field{flex:1}.queue-indicator{margin:0 0 12px}.magazzino-page{display:block}.magazzino-hero{color:#fff;background:linear-gradient(160deg,#2b1420 0%,#26181c 45%,#1c2620 100%);border-bottom-right-radius:28px;border-bottom-left-radius:28px;width:100%;height:146px;position:relative;overflow:hidden}.magazzino-hero-image{object-fit:cover;filter:blur(2.5px);width:100%;height:100%;display:block;position:absolute;inset:0;transform:scale(1.08)}.magazzino-hero-overlay{background:linear-gradient(#140a0e4d 0%,#140a0e9e 100%);position:absolute;inset:0}.magazzino-hero-inner{z-index:1;max-width:480px;padding:env(safe-area-inset-top) 20px 32px;pointer-events:none;align-items:center;margin:0 auto;display:flex;position:absolute;inset:0}@media (width>=700px){.magazzino-hero-inner{max-width:640px;padding-left:24px;padding-right:24px}}.magazzino-hero-top{align-items:center;gap:var(--space-2);display:flex}.magazzino-hero-icon{color:#fff;border-radius:var(--radius-md);border:1.5px solid var(--color-primary);background:#7a1f3d47;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.magazzino-hero-titles{flex:1;min-width:0}.magazzino-hero-titles h1{font-family:var(--font-serif);font-size:clamp(2.15rem,6vw,2.35rem);font-weight:var(--font-weight-bold);color:#fff;-webkit-text-stroke:.7px currentColor;margin:0;line-height:1.1}.magazzino-hero-subtitle{font-family:var(--font-sans);font-size:var(--font-size-small);color:#ffffffb8;margin:2px 0 0}.magazzino-hero-refresh{pointer-events:auto;border-radius:var(--radius-md);background:var(--color-background);width:36px;height:36px;color:var(--color-primary-dark);cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:transform .15s;display:flex}.magazzino-hero-refresh:active{transform:rotate(-45deg)}.magazzino-hero-refresh:disabled{opacity:.6;cursor:not-allowed}.magazzino-hero-refresh.spinning svg{animation:.8s linear infinite spin}.magazzino-hero-bell{pointer-events:auto;border-radius:var(--radius-md);background:var(--color-background);width:36px;height:36px;color:var(--color-primary-dark);cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.magazzino-hero-bell-badge{border-radius:var(--radius-pill);background:var(--color-danger);color:#fff;min-width:17px;height:17px;font-family:var(--font-sans);font-size:10px;font-weight:var(--font-weight-bold);border:1.5px solid var(--color-background);justify-content:center;align-items:center;padding:0 4px;line-height:1;display:flex;position:absolute;top:-4px;right:-4px}.magazzino-hero-top .account-menu{pointer-events:auto}.magazzino-hero-top .account-menu-button{background:var(--color-background);box-shadow:none}.magazzino-search{background:var(--color-surface);border-radius:var(--radius-pill);align-items:center;gap:8px;margin-top:-34px;padding:14px 18px;display:flex;position:relative;box-shadow:0 10px 24px #2b21291a,0 2px 6px #2b21290d}.magazzino-search-icon{color:var(--color-text-tertiary);flex-shrink:0}.magazzino-search-dropdown{z-index:25;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);-webkit-overflow-scrolling:touch;padding:8px;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto;box-shadow:0 12px 32px #2b21292e,0 2px 8px #2b212914}.magazzino-search-dropdown-empty{padding:var(--space-3);text-align:center;font-family:var(--font-sans);font-size:var(--font-size-small);color:var(--color-text-secondary)}.aggregated-wine-row-note{font-family:var(--font-sans);font-size:var(--font-size-small);color:var(--color-text-tertiary);margin:2px 0 0}.aggregated-wine-back{font-family:var(--font-sans);font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--color-secondary);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;margin:0 0 6px;padding:4px 2px;display:inline-flex}.location-picker-list{margin:var(--space-2) 0 0;flex-direction:column;gap:6px;padding:0;list-style:none;display:flex}.location-picker-option{justify-content:space-between;align-items:center;gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background);width:100%;font-family:var(--font-sans);cursor:pointer;text-align:left;padding:12px 14px;display:flex}.location-picker-option-name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text)}.location-picker-option-quantity{font-size:var(--font-size-medium);font-weight:var(--font-weight-bold);color:var(--color-text);flex-shrink:0;align-items:center;gap:3px;display:inline-flex}.location-picker-option-quantity .wine-row-quantity-unit{color:var(--color-warning)}.magazzino-search input{min-width:0;font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-text);background:0 0;border:none;flex:1}.magazzino-search input:focus{outline:none}.magazzino-search input::placeholder{color:var(--color-text-tertiary)}.magazzino-body{padding-top:var(--space-4);padding-bottom:calc(var(--space-2) + 130px);background:var(--color-background);border-radius:28px 28px 0 0;margin-top:-16px;position:relative;box-shadow:0 -6px 18px #2b212914}.magazzino-grape-motif{z-index:5;opacity:.35;pointer-events:none;-webkit-user-select:none;user-select:none;width:120px;height:auto;position:absolute;bottom:0;right:0}.magazzino-actions-row{gap:var(--space-2);margin-top:var(--space-4);align-items:stretch;display:flex}.magazzino-primary-button{border-radius:var(--radius-pill);background:linear-gradient(160deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);color:#fff;font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;border:none;flex:1;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:16px 20px;transition:transform .15s;display:flex;box-shadow:0 6px 16px #4a142847}.magazzino-primary-button:active{transform:scale(.98)}.magazzino-primary-button-icon{font-size:18px;line-height:1}.magazzino-secondary-button{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:92px;color:var(--color-primary-dark);font-family:var(--font-sans);font-size:12px;font-weight:var(--font-weight-semibold);text-align:center;cursor:pointer;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:2px;min-height:44px;padding:8px 10px;line-height:1.2;transition:transform .15s,background .15s;display:flex}.magazzino-secondary-button:active{background:var(--color-primary-soft);transform:scale(.98)}.magazzino-secondary-button-icon{font-size:16px;line-height:1}.new-location-panel{margin-top:var(--space-4);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:0 2px 10px #2b21290f}.new-location-panel .form-field{margin-bottom:12px}.add-wine-panel{margin-top:var(--space-4);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:0 2px 10px #2b21290f}.add-wine-panel h2{font-family:var(--font-serif);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 12px;font-size:18px}.add-wine-panel .form-field{margin-bottom:12px}.location-empty-note{font-family:var(--font-sans);font-size:var(--font-size-small);color:var(--color-text-secondary);margin:0 0 var(--space-2) calc(var(--space-2) + 3px)}.location-group{margin-top:var(--space-5)}.location-group-header{justify-content:space-between;align-items:flex-start;gap:var(--space-2);cursor:pointer;display:flex}.location-group-heading{align-items:flex-start;gap:10px;min-width:0;display:flex}.location-group-chevron{color:var(--color-text-tertiary);flex-shrink:0;margin-top:3px;transition:transform .15s}.location-group-chevron.expanded{transform:rotate(90deg)}.location-group-collapse{grid-template-rows:0fr;transition:grid-template-rows .25s;display:grid}.location-group-collapse.expanded{grid-template-rows:1fr}.location-group-collapse-inner{min-height:0;overflow:hidden}.location-group-icon{width:auto;height:23px;color:var(--color-secondary);flex-shrink:0;margin-top:1px}.location-group h2{font-family:var(--font-serif);font-size:clamp(1.25rem,1.1rem + .9vw,1.5rem);font-weight:var(--font-weight-bold);color:var(--color-secondary);-webkit-text-stroke:.6px currentColor;margin:0;line-height:1.15}.location-delete-button{font-family:var(--font-sans);font-size:var(--font-size-small);color:var(--color-text-tertiary);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex-shrink:0;align-items:center;gap:2px;padding:4px 0;display:flex}.location-delete-button:hover{color:var(--color-danger)}.location-delete-button:disabled{opacity:.5;cursor:not-allowed}.location-group .location-description{font-family:var(--font-sans);font-size:var(--font-size-small);color:var(--color-text-secondary);margin:2px 0 0}.wine-card{border:1px solid var(--border);text-align:left;background:#fff;border-radius:12px;gap:12px;margin-bottom:10px;padding:12px;display:flex}.wine-card-photo{object-fit:cover;border:1px solid var(--border);background:var(--cream);border-radius:8px;flex-shrink:0;width:56px;height:56px}.wine-card-photo-placeholder{background:var(--cream);border:1px solid var(--border);width:56px;height:56px;color:var(--text-muted);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.wine-card-info{flex:1;min-width:0}.wine-card-name{margin:0 0 2px;font-weight:600}.wine-card-producer{margin:0 0 4px;font-size:13px}.wine-card-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.badge{background:var(--cream);color:var(--wine);border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.wine-row-container{margin-bottom:var(--space-2)}.wine-row{align-items:center;gap:var(--space-2);min-height:60px;padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:left;cursor:pointer;display:flex;box-shadow:0 2px 10px #2b21290d}.wine-row.expanded{border-bottom-color:#0000;border-bottom-right-radius:0;border-bottom-left-radius:0}.wine-row-detail{background:var(--color-surface);border:1px solid var(--border);border-top:1px solid var(--color-background);border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);padding:var(--space-3) var(--space-2);margin-top:-1px}.wine-row-detail-row{justify-content:space-between;gap:var(--space-2);font-family:var(--font-sans);font-size:var(--font-size-small);padding:3px 0;display:flex}.wine-row-detail-label{color:var(--color-text-secondary)}.wine-row-detail-value{color:var(--color-text);font-weight:var(--font-weight-semibold);text-align:right}.wine-row-detail-value.muted{color:var(--color-text-tertiary);font-weight:var(--font-weight-regular)}.wine-row-photo,.wine-row-photo-placeholder{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-background);flex-shrink:0;width:64px;height:64px}.wine-row-photo{object-fit:cover;cursor:pointer}.wine-row-photo-placeholder{color:var(--color-text-tertiary);justify-content:center;align-items:center;display:flex}.wine-row-info{flex:1;min-width:0}.wine-row-name{font-family:var(--font-serif);font-weight:var(--font-weight-bold);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;-webkit-text-stroke:.5px currentColor;margin:0;font-size:clamp(1.25rem,4vw,1.375rem);overflow:hidden}.wine-row-details{font-family:var(--font-sans);font-size:var(--font-size-small);white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;overflow:hidden}.wine-row-producer{color:var(--color-text-secondary);font-weight:var(--font-weight-semibold)}.wine-row-dot{color:var(--color-text-tertiary);margin:0 4px}.wine-row-type-vintage{color:var(--color-text-tertiary);vertical-align:middle;align-items:center;gap:3px;display:inline-flex}.wine-row-grape-icon{flex-shrink:0}.wine-row-end{flex-shrink:0;align-items:center;gap:4px;display:flex}.wine-row-quantity-pill{border-radius:var(--radius-pill);background:var(--color-background);flex-shrink:0;align-items:center;gap:3px;padding:6px 8px;display:flex}.wine-row-quantity{font-family:var(--font-sans);font-size:var(--font-size-medium);font-weight:var(--font-weight-bold);color:var(--color-text);text-align:right;min-width:1em}.wine-row-quantity.low{color:var(--color-warning)}.wine-row-quantity-unit{width:auto;height:20px;color:var(--color-warning);flex-shrink:0}.wine-row-icon-button{cursor:pointer;width:32px;height:32px;color:var(--color-text-secondary);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:18px;line-height:1;display:flex}.wine-row-icon-button:hover{color:var(--color-primary)}.wine-row-icon-button:disabled{opacity:.5;cursor:not-allowed}.wine-row-quantity-button{background:linear-gradient(160deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:18px;font-weight:700;line-height:1;transition:transform .15s;display:flex;box-shadow:0 2px 8px #2b212947}.wine-row-quantity-button:active{transform:scale(.92)}.wine-row-quantity-button:disabled{opacity:.5;cursor:not-allowed}.wine-row-menu-wrapper{position:relative}.wine-row-menu-backdrop{cursor:default;z-index:10;background:0 0;border:none;margin:0;padding:0;position:fixed;inset:0}.wine-row-menu{background:var(--color-surface);border:1px solid var(--border);border-radius:var(--radius-md);z-index:20;min-width:140px;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden;box-shadow:0 4px 14px #2b212929}.wine-row-menu-portal{position:fixed}.wine-row-menu-item{text-align:left;width:100%;padding:var(--space-2) var(--space-3);font-family:var(--font-sans);font-size:var(--font-size-small);color:var(--color-text);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;display:flex}.wine-row-menu-item:hover{background:var(--color-background)}.wine-row-menu-item.danger{color:var(--color-danger)}.photo-overlay{padding:var(--space-4);z-index:100;background:#2b2129d9;justify-content:center;align-items:center;animation:.15s ease-out photo-overlay-fade-in;display:flex;position:fixed;inset:0}@keyframes photo-overlay-fade-in{0%{opacity:0}to{opacity:1}}.photo-overlay-image{object-fit:contain;border-radius:var(--radius-md);cursor:default;max-width:100%;max-height:100%;box-shadow:0 8px 32px #0006}.photo-overlay-close{top:var(--space-3);right:var(--space-3);border-radius:var(--radius-pill);background:var(--color-surface);width:40px;height:40px;color:var(--color-text);cursor:pointer;z-index:101;border:none;justify-content:center;align-items:center;font-size:18px;line-height:1;display:flex;position:fixed}.edit-wine-form{flex:1;min-width:0}.edit-wine-form .form-field{margin-bottom:10px}.edit-wine-form .form-row{margin-bottom:0}.edit-wine-form .button-row{margin-top:4px}.wine-row-dragging{z-index:200;cursor:grabbing;box-shadow:0 12px 28px #2b212959}.wine-row-placeholder{border:2px dashed var(--border);border-radius:var(--radius-lg);background:var(--color-background);margin-bottom:var(--space-2)}.wine-row-drag-backdrop{z-index:150;pointer-events:none;background:#2b212959;animation:.15s ease-out photo-overlay-fade-in;position:fixed;inset:0}.wine-row-drop-zones{z-index:151;background:var(--color-surface);padding:var(--space-3) var(--space-3) calc(var(--space-3) + env(safe-area-inset-bottom));pointer-events:none;border-radius:20px 20px 0 0;animation:.2s ease-out action-sheet-slide-up;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #2b212933}.wine-row-drop-zones-label{margin:0 0 var(--space-2);font-family:var(--font-sans);font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-align:center}.wine-row-drop-zones-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));display:grid}.wine-row-drop-zone{padding:var(--space-3);border:2px dashed var(--color-secondary);border-radius:var(--radius-lg);background:var(--color-background);color:var(--color-secondary);font-family:var(--font-sans);font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);text-align:center;transition:background .15s,color .15s,border-color .15s,transform .15s}.wine-row-drop-zone.active{background:var(--color-secondary);color:#fff;border-style:solid;transform:scale(1.05);box-shadow:0 4px 14px #2b212947}.search-results{flex-direction:column;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.search-result-button{text-align:left;border:1px solid var(--border);cursor:pointer;width:100%;font:inherit;color:var(--text);background:#fff;border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;display:flex}.search-result-button span{color:var(--text-muted);font-size:13px}.location-options{flex-direction:column;gap:8px;display:flex}.location-option{border:1px solid var(--border);background:#fff;border-radius:10px;align-items:center;gap:8px;padding:10px 12px;font-size:14px;display:flex}.location-option span{color:var(--text-muted);font-size:13px}.empty-state{text-align:center;padding:var(--space-6) var(--space-3);font-family:var(--font-sans)}.empty-state-icon{margin:0 auto var(--space-2);color:var(--color-secondary);opacity:.7;display:block}.empty-state p{margin-top:var(--space-2);color:var(--color-text-secondary)}.report-filter-form{margin-top:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--color-surface)}.report-filter-form .form-row{flex-wrap:wrap;margin-bottom:0}.report-filter-form .button{margin-top:var(--space-2)}.report-summary{gap:var(--space-2);margin:var(--space-4) 0;display:flex}.report-summary-item{padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--color-surface);text-align:center;flex:1}.report-summary-label{font-family:var(--font-sans);font-size:var(--font-size-small);color:var(--color-text-secondary);margin-bottom:var(--space-1);display:block}.report-summary-value{font-family:var(--font-serif);font-size:var(--font-size-large);font-weight:var(--font-weight-semibold);color:var(--color-primary);display:block}.report-row-container{margin-bottom:var(--space-2)}.report-row{justify-content:space-between;align-items:center;gap:var(--space-2);min-height:56px;padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:left;cursor:pointer;display:flex}.report-row.expanded{border-bottom-color:#0000;border-bottom-right-radius:0;border-bottom-left-radius:0}.report-row-info{flex:1;min-width:0}.report-row-name{font-family:var(--font-serif);font-weight:var(--font-weight-semibold);font-size:var(--font-size-medium);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.report-row-meta{font-family:var(--font-sans);font-size:var(--font-size-small);color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;overflow:hidden}.report-row-revenue{font-family:var(--font-sans);font-size:var(--font-size-medium);font-weight:var(--font-weight-bold);color:var(--color-secondary);flex-shrink:0}.report-row-revenue.muted{color:var(--color-text-tertiary);font-weight:var(--font-weight-regular)}.report-row-detail{background:var(--color-surface);border:1px solid var(--border);border-top:1px solid var(--color-background);border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);padding:var(--space-2) var(--space-3);margin-top:-1px}.report-sale-row{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;font-family:var(--font-sans);font-size:var(--font-size-small);display:flex}.report-sale-row+.report-sale-row{border-top:1px solid var(--color-background)}.report-sale-info{flex-direction:column;gap:2px;display:flex}.report-sale-date{color:var(--color-text);font-weight:var(--font-weight-semibold)}.report-sale-location{color:var(--color-text-tertiary)}.report-sale-numbers{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.report-sale-quantity{color:var(--color-text-secondary)}.report-sale-price{color:var(--color-text);font-weight:var(--font-weight-semibold)}.notification-toast{top:calc(env(safe-area-inset-top) + 12px);z-index:60;border-radius:var(--radius-lg);cursor:pointer;border:1px solid #0000;align-items:flex-start;gap:10px;max-width:440px;margin:0 auto;padding:14px 40px 14px 14px;animation:.2s ease-out notification-toast-slide-down;display:flex;position:fixed;left:20px;right:20px;box-shadow:0 10px 28px #2b21292e,0 2px 8px #2b212914}@media (width>=700px){.notification-toast{max-width:560px}}@keyframes notification-toast-slide-down{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}.notification-toast.system{color:#1f5c2e;background:#eaf7ec;border-color:#bfe6c7}.notification-toast.low_stock{color:#7a1c1c;background:#fdecea;border-color:#f3c2bd}.notification-toast-icon{flex-shrink:0;margin-top:2px}.notification-toast-body{flex:1;min-width:0}.notification-toast-title{font-family:var(--font-sans);font-size:var(--font-size-small);font-weight:var(--font-weight-bold);color:inherit;margin:0 0 2px}.notification-toast-message{font-family:var(--font-sans);font-size:var(--font-size-small);color:inherit;opacity:.9;margin:0}.notification-toast-close{color:inherit;cursor:pointer;background:#00000014;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:flex;position:absolute;top:10px;right:10px}.notifications-panel{width:100%;max-height:calc(100dvh - var(--bottom-nav-height) - env(safe-area-inset-bottom) - 32px);margin-bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom) + 8px);background:var(--color-surface);border-radius:20px 20px 0 0;flex-direction:column;animation:.2s ease-out action-sheet-slide-up;display:flex;overflow:hidden;box-shadow:0 -8px 24px #2b212933}.notifications-panel-header{box-shadow:0 1px 0 var(--color-border);flex:none;justify-content:space-between;align-items:center;padding:14px 12px 10px 20px;display:flex}.notifications-panel-header h2{font-family:var(--font-serif);font-size:var(--font-size-medium);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.notifications-panel-body{-webkit-overflow-scrolling:touch;min-height:0;padding:16px 20px calc(20px + env(safe-area-inset-bottom));flex:auto;overflow-y:auto}.notifications-panel-section+.notifications-panel-section{margin-top:var(--space-4)}.notifications-panel-section h3{margin:0 0 var(--space-2);font-family:var(--font-sans);font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.03em}.notifications-panel-empty{font-family:var(--font-sans);font-size:var(--font-size-small);color:var(--color-text-tertiary);margin:0}.notification-row{border-radius:var(--radius-md);border:1px solid #0000;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.notification-row+.notification-row{margin-top:var(--space-2)}.notification-row.system{background:#eaf7ec;border-color:#bfe6c7}.notification-row.low_stock{background:#fdecea;border-color:#f3c2bd}.notification-row-icon{color:var(--color-text);flex-shrink:0;margin-top:2px}.notification-row-body{flex:1;min-width:0}.notification-row-title{font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0}.notification-row-message{font-family:var(--font-sans);font-size:var(--font-size-small);color:var(--color-text);margin:4px 0 0}.notification-row-date{font-family:var(--font-sans);color:var(--color-text-tertiary);margin:4px 0 0;font-size:11px}.notification-row-actions{align-items:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.notification-row-action{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text);font-family:var(--font-sans);font-size:12px;font-weight:var(--font-weight-semibold);cursor:pointer;align-items:center;gap:5px;padding:6px 12px;display:inline-flex}.notification-row-action:disabled{opacity:.5;cursor:not-allowed}.switch{font-family:var(--font-sans);font-size:12px;font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);cursor:pointer;align-items:center;gap:6px;display:inline-flex}.switch input{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.switch-track{border-radius:var(--radius-pill);background:var(--color-border);flex-shrink:0;width:32px;height:18px;padding:2px;transition:background .15s}.switch-thumb{background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .15s;display:block;box-shadow:0 1px 2px #2b21294d}.switch input:checked+.switch-track{background:var(--color-secondary)}.switch input:checked+.switch-track .switch-thumb{transform:translate(14px)}.switch input:disabled+.switch-track{opacity:.5}.switch input:focus-visible+.switch-track{outline:2px solid var(--color-primary);outline-offset:2px}.notification-row-delete{color:var(--color-text-tertiary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin-left:auto;padding:6px;display:flex}.notification-row-delete:disabled{opacity:.5;cursor:not-allowed}.report-sale-price.muted{color:var(--color-text-tertiary);font-weight:var(--font-weight-regular)}.login-page{width:100%;min-height:100svh;padding-top:var(--space-5);flex-direction:column;justify-content:flex-start;padding-bottom:24px;padding-left:30px;padding-right:30px;display:flex;position:relative}.login-page-signup{padding-bottom:0}.login-header{text-align:center;margin-bottom:var(--space-3)}.login-icon{width:auto;height:88px;margin:0 auto 2px;display:block}.login-header h1{font-family:var(--font-serif);font-size:2.625rem;font-weight:var(--font-weight-bold);color:var(--color-primary);margin:0;line-height:1.1}.login-divider{background:var(--color-border);width:48px;height:1px;margin:6px auto}.login-header p{font-family:var(--font-sans);font-size:var(--font-size-small);color:var(--color-text-secondary);margin:0}.login-form .button{justify-content:center;align-items:center;gap:var(--space-2);width:100%;margin-top:8px;display:flex}.login-mode-toggle{margin:0 auto var(--space-3);max-width:320px}.login-mode-toggle.quantity-sheet-toggle{background:var(--color-border)}.login-mode-toggle .quantity-sheet-toggle-option{white-space:nowrap;flex:1;justify-content:center;align-items:center;gap:6px;padding-left:12px;padding-right:12px;display:flex}.login-mode-toggle .quantity-sheet-toggle-option.active{color:var(--color-primary)}.login-input-group{position:relative}.login-input-icon{color:var(--color-text-tertiary);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.login-input-group input{padding-left:40px}.login-input-group-with-toggle input{padding-right:40px}.login-password-toggle{color:var(--color-text-tertiary);cursor:pointer;background:0 0;border:none;padding:6px;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.login-form .form-field{margin-bottom:12px}.login-form .form-field input{padding-top:15px;padding-bottom:15px}.login-page-signup .login-icon{height:64px;margin-bottom:2px}.login-page-signup .login-header h1{font-size:2rem}.login-page-signup .login-header{margin-bottom:4px}.login-page-signup .login-divider{margin:3px auto}.login-page-signup .login-header p{line-height:1.25}.login-page-signup .login-mode-toggle{margin-bottom:4px}.login-page-signup .login-mode-toggle .quantity-sheet-toggle-option{padding-top:6px;padding-bottom:6px}.login-page-signup .login-form .form-field{gap:4px;margin-bottom:12px}.login-page-signup .login-form .form-field input{padding-top:10px;padding-bottom:10px}.login-page-signup .login-form .form-field p{margin-top:0;line-height:1.3}.login-page-signup .login-form .button{margin-top:2px}.login-page-login .login-mode-toggle{margin-bottom:var(--space-5)}.login-page-login .login-form .form-field{margin-bottom:var(--space-4)}.login-page-login .login-form .button{margin-top:var(--space-4)}.login-options-row{font-size:var(--font-size-small);justify-content:space-between;align-items:center;margin:-4px 0 8px;display:flex}.login-remember-me{color:var(--color-text-secondary);cursor:pointer;align-items:center;gap:6px;display:flex}.login-remember-me input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.login-forgot-password{font:inherit;font-size:var(--font-size-small);color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.login-forgot-password-message{font-size:var(--font-size-small);color:var(--color-text-secondary);margin:0 0 var(--space-3)}.login-forgot-password-panel{margin:0 0 var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--color-border)}.login-forgot-password-panel .form-field{margin-bottom:8px}.login-forgot-password-panel .button{width:100%}.login-hero-bg{object-fit:cover;object-position:bottom;pointer-events:none;z-index:-1;width:100%;height:auto;max-height:220px;position:fixed;bottom:0;left:0;right:0;-webkit-mask-image:linear-gradient(#0000,#000 22%);mask-image:linear-gradient(#0000,#000 22%)}.reset-password-cta{flex:none;justify-content:center;align-items:center;margin-top:8px;text-decoration:none;display:flex}.change-password-logout{margin:var(--space-4) auto 0;text-align:center;color:var(--color-text-tertiary);display:block}.account-menu{flex-shrink:0}.account-menu-button{border-radius:var(--radius-md);background:var(--color-surface);width:36px;height:36px;color:var(--color-primary-dark);cursor:pointer;border:none;justify-content:center;align-items:center;display:flex;box-shadow:0 2px 10px #2b212926}.account-menu-dropdown{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);z-index:220;min-width:200px;position:fixed;overflow:hidden;box-shadow:0 4px 14px #2b212929}.account-menu-info{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border)}.account-menu-greeting{font-family:var(--font-sans);font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.account-menu-role{font-family:var(--font-sans);color:var(--color-text-tertiary);margin:2px 0 0;font-size:12px}.account-menu-item{text-align:left;width:100%;padding:var(--space-2) var(--space-3);font-family:var(--font-sans);font-size:var(--font-size-small);color:var(--color-text);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;text-decoration:none;display:flex}.account-menu-item:hover{background:var(--color-background)}.account-menu-item.danger{color:var(--color-danger)}.staff-tabs{margin:var(--space-4) 0 var(--space-4)}.staff-section,.member-list,.invite-list{gap:var(--space-2);flex-direction:column;display:flex}.member-row,.invite-row{align-items:center;gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:12px 14px;display:flex}.member-row-info,.invite-row-info{flex:1;min-width:0}.member-row-name{font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.member-row-you{font-weight:var(--font-weight-regular);color:var(--color-text-tertiary)}.member-row-email{font-family:var(--font-sans);font-size:var(--font-size-small);color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;overflow:hidden}.member-role-select{flex-shrink:0;width:auto}.member-role-select .custom-select-trigger{border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background:#fff;width:auto;padding:8px 10px;font-size:14px}.member-role-select .custom-select-trigger:disabled{opacity:.5;cursor:not-allowed}.member-remove-button{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text-tertiary);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.member-remove-button:hover{color:var(--color-danger)}.member-remove-button:disabled{opacity:.5;cursor:not-allowed}.invite-generate-form{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.member-reset-reveal{margin-top:var(--space-2)}.invite-reveal-panel{padding:var(--space-4) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-primary-soft);text-align:center}.invite-reveal-code{margin:0 0 var(--space-3);font-family:var(--font-sans);font-size:var(--font-size-large);font-weight:var(--font-weight-bold);letter-spacing:.08em;color:var(--color-primary-dark)}.invite-reveal-panel .button-row .button{justify-content:center;align-items:center;gap:6px;display:flex}.invite-reveal-warning{margin:var(--space-3) 0;font-size:var(--font-size-small);color:var(--color-text-secondary)}.invite-row-title{align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0;display:flex}.invite-row-meta{font-family:var(--font-sans);font-size:var(--font-size-small);color:var(--color-text-secondary);margin:2px 0 0}.invite-status-badge{text-transform:none}.invite-status-attivo{color:#1f5c2e;background:#eaf7ec;border-color:#bfe6c7}.invite-status-scaduto,.invite-status-esaurito{background:var(--color-background);color:var(--color-text-tertiary);border-color:var(--color-border)}.invite-status-revocato{color:#7a1c1c;background:#fdecea;border-color:#f3c2bd}
