:root{--primary: #8B2E4C;--primary-dark: #6B2239;--primary-light: #E8D5DC;--accent: #C9A962;--accent-light: #F5EED8;--bg: #FAF9F7;--bg-card: #FFFFFF;--bg-dark: #1A1A1A;--text: #2C2C2C;--text-light: #6E6E6E;--text-lighter: #A0A0A0;--text-inverse: #FFFFFF;--border: #E8E4E0;--danger: #D44C47;--danger-hover: #B83833;--success: #4CAF50;--warning: #F5A623;--shadow: 0 2px 12px rgba(139, 46, 76, .08);--shadow-lg: 0 8px 24px rgba(139, 46, 76, .12);--shadow-xl: 0 16px 48px rgba(139, 46, 76, .16);--radius: 10px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--transition: all .25s cubic-bezier(.4, 0, .2, 1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}.header{background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary) 100%);color:#fff;padding:0 var(--spacing-lg);position:sticky;top:0;z-index:100;box-shadow:var(--shadow-lg)}.header-inner{max-width:1400px;margin:0 auto;display:flex;align-items:center;gap:var(--spacing-xl);height:68px}.logo{display:flex;align-items:center;gap:.75rem;text-decoration:none;transition:var(--transition)}.logo-icon{width:40px;height:40px;background:linear-gradient(135deg,var(--accent) 0%,#D4B76A 100%);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #c9a96266}.logo-icon svg{width:22px;height:22px;color:var(--primary-dark)}.logo-text{font-size:1.4rem;font-weight:700;color:#fff;letter-spacing:-.5px;font-family:Inter,sans-serif}.logo:hover{opacity:.95;transform:translateY(-1px)}.nav{display:flex;gap:var(--spacing-xs);flex:1}.nav a{color:#ffffffbf;text-decoration:none;padding:.6rem 1rem;border-radius:var(--radius);font-size:.9rem;font-weight:500;transition:var(--transition);position:relative}.nav a:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%) scaleX(0);width:24px;height:2px;background:var(--accent);transition:var(--transition)}.nav a:hover,.nav a.active{color:#fff;background:#ffffff1f}.nav a:hover:after,.nav a.active:after{transform:translate(-50%) scaleX(1)}.language-selector{display:flex;align-items:center;gap:.5rem;color:#ffffffb3}.language-selector select{background:#ffffff1f;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius);padding:.4rem .75rem;font-size:.85rem;cursor:pointer;transition:var(--transition)}.language-selector select:hover{background:#ffffff2e}.language-selector select option{color:var(--text);background:#fff}.user-info{display:flex;align-items:center;gap:.75rem;font-size:.85rem;color:#ffffffe6}.role-badge{background:#ffffff2e;padding:.2rem .7rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:500;white-space:nowrap;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.main{max-width:1400px;margin:0 auto;padding:var(--spacing-xl)}.page{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-xl);flex-wrap:wrap;gap:var(--spacing-md)}.page-header h1{font-size:1.75rem;font-weight:700;color:var(--primary-dark);letter-spacing:-.5px}.page-header .count{color:var(--text-light);font-weight:400;font-size:1rem}.page-actions{display:flex;gap:var(--spacing-sm)}.card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow);border:1px solid var(--border);padding:var(--spacing-lg);margin-bottom:var(--spacing-md);transition:var(--transition)}.card:hover{box-shadow:var(--shadow-lg)}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.4rem;border:none;border-radius:var(--radius);font-size:.9rem;font-weight:600;cursor:pointer;transition:var(--transition);text-decoration:none;white-space:nowrap;letter-spacing:.2px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;box-shadow:0 4px 12px #8b2e4c4d}.btn-primary:hover:not(:disabled){box-shadow:0 6px 16px #8b2e4c66;transform:translateY(-1px)}.btn-outline{background:#fff;color:var(--text);border:1.5px solid var(--border)}.btn-outline:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.btn-danger{background:linear-gradient(135deg,var(--danger) 0%,var(--danger-hover) 100%);color:#fff;box-shadow:0 4px 12px #d44c474d}.btn-danger:hover:not(:disabled){box-shadow:0 6px 16px #d44c4766;transform:translateY(-1px)}.btn-sm{padding:.5rem 1rem;font-size:.85rem}.btn-full{width:100%;justify-content:center}.search-bar{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.search-input{display:flex;align-items:center;gap:.75rem;background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:.75rem 1.25rem;flex:1;transition:var(--transition)}.search-input:focus-within{border-color:var(--primary);box-shadow:0 0 0 4px #8b2e4c1a}.search-input input{border:none;outline:none;font-size:.95rem;width:100%;background:transparent}.search-input svg{color:var(--text-lighter);flex-shrink:0}.clear-btn{background:none;border:none;cursor:pointer;color:var(--text-lighter);display:flex;align-items:center;padding:.25rem;border-radius:var(--radius);transition:var(--transition)}.clear-btn:hover{background:var(--bg);color:var(--text-light)}.filter-bar{margin-bottom:var(--spacing-lg)}.filter-row{display:flex;gap:var(--spacing-md);flex-wrap:wrap;align-items:center}.filter-row select{padding:.6rem 1rem;border:1.5px solid var(--border);border-radius:var(--radius);background:#fff;font-size:.9rem;min-width:160px;cursor:pointer;transition:var(--transition)}.filter-row select:hover{border-color:var(--primary)}.filter-row select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px #8b2e4c1a}.wine-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-lg)}.wine-card{cursor:pointer;transition:var(--transition);overflow:hidden;padding:0;border-radius:var(--radius-lg)}.wine-card:hover{box-shadow:var(--shadow-xl);transform:translateY(-4px)}.wine-card-image{height:200px;position:relative;overflow:hidden;background:linear-gradient(135deg,var(--primary-light) 0%,var(--bg) 100%)}.wine-card-image img{width:100%;height:100%;object-fit:cover}.wine-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:3rem}.wine-placeholder.large{height:320px;font-size:5rem}.wine-type-badge{position:absolute;top:1rem;right:1rem;color:#fff;padding:.3rem .75rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 12px #0003}.wine-type-badge.RED{background:linear-gradient(135deg,#d44c47,#b83833)}.wine-type-badge.WHITE{background:linear-gradient(135deg,#e8d5b7,#c9b896);color:#5c4a32}.wine-type-badge.ROSE{background:linear-gradient(135deg,#f4b6c2,#e899a8)}.wine-type-badge.SPARKLING{background:linear-gradient(135deg,#c9a962,#b89a4f)}.wine-type-badge.DESSERT{background:linear-gradient(135deg,#8b5a3c,#6b4430)}.wine-card-body{padding:var(--spacing-lg)}.wine-card-body h3{font-size:1.1rem;font-weight:700;margin-bottom:.25rem;color:var(--text)}.wine-producer{color:var(--text-light);font-size:.9rem;font-weight:500}.wine-region{color:var(--text-lighter);font-size:.85rem;margin-top:.25rem}.wine-grape{color:var(--primary);font-size:.85rem;font-style:italic;margin:.4rem 0}.wine-description{color:var(--text-light);font-size:.85rem;margin-top:.75rem;line-height:1.6}.wine-meta{display:flex;justify-content:space-between;align-items:center;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border);font-size:.9rem;color:var(--text-light)}.wine-meta .price{font-weight:700;font-size:1.1rem;color:var(--primary)}.wine-card-actions{display:flex;gap:.5rem;padding:0 var(--spacing-lg) var(--spacing-lg)}.wine-detail-header{display:flex;gap:var(--spacing-xl);margin-bottom:var(--spacing-xl)}.wine-detail-image{width:320px;flex-shrink:0;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lg)}.wine-detail-image img{width:100%;height:auto}.wine-detail-info{flex:1}.wine-detail-info h1{font-size:2rem;color:var(--primary-dark);margin:.5rem 0 .25rem;font-weight:800;letter-spacing:-.5px}.wine-detail-info h2{font-size:1.15rem;color:var(--text-light);font-weight:400;margin-bottom:1.25rem}.wine-detail-meta div{margin-bottom:.5rem;font-size:.95rem}.wine-detail-meta strong{color:var(--text);font-weight:600}.wine-detail-section{margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--border)}.wine-detail-section h3{color:var(--primary-dark);margin-bottom:.75rem;font-size:1.1rem;font-weight:700}.wine-detail-section p{color:var(--text-light);line-height:1.8}.form{max-width:900px}.form h2{margin-bottom:var(--spacing-lg);color:var(--primary-dark);font-weight:700}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-md)}.form-group.full-width{grid-column:1 / -1}.form-group{margin-bottom:var(--spacing-md)}.form-group label{display:flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;color:var(--text);margin-bottom:.4rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.7rem 1rem;border:1.5px solid var(--border);border-radius:var(--radius);font-size:.9rem;font-family:inherit;transition:var(--transition);background:#fff}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px #8b2e4c1a}.form-group textarea{resize:vertical;min-height:100px}.form-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--border)}.preview-img{max-width:140px;max-height:140px;margin-top:.75rem;border-radius:var(--radius);box-shadow:var(--shadow)}.vines-editor{display:flex;flex-direction:column;gap:.5rem}.vine-row{display:flex;align-items:center;gap:.5rem}.vine-name-input{flex:1;min-width:150px}.vine-pct-input{width:70px}.translations-section{margin-top:var(--spacing-lg);border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.translations-section summary{cursor:pointer;font-weight:600;color:var(--text);margin-bottom:var(--spacing-md)}.table-container{overflow-x:auto;padding:0}table{width:100%;border-collapse:collapse}table th,table td{padding:1rem 1.25rem;text-align:left;border-bottom:1px solid var(--border);font-size:.9rem}table th{background:var(--bg);font-weight:700;color:var(--text);font-size:.8rem;text-transform:uppercase;letter-spacing:1px}table tbody tr{transition:var(--transition)}table tbody tr:hover{background:var(--primary-light)}table tbody tr:last-child td{border-bottom:none}.table-actions{display:flex;gap:.4rem}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary) 50%,#A63D5A 100%);position:relative}.login-page:before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.login-form{width:100%;max-width:420px;padding:2.5rem;position:relative;z-index:1}.login-form .card{background:#fff;box-shadow:var(--shadow-xl);border:none}.login-form h1{text-align:center;color:var(--primary-dark);margin-bottom:var(--spacing-lg);font-size:1.5rem;font-weight:700}.login-form .logo{justify-content:center;margin-bottom:var(--spacing-lg)}.login-form .logo-text{color:var(--primary-dark);font-size:1.75rem}.pagination{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);margin-top:var(--spacing-xl);font-size:.9rem;color:var(--text-light)}.empty-state{text-align:center;padding:4rem var(--spacing-xl);color:var(--text-lighter)}.empty-text{color:var(--text-lighter);padding:1.5rem;text-align:center;font-style:italic}.file-upload{width:100%}.file-upload input[type=file]{width:100%;padding:.5rem;border:1px dashed var(--border);border-radius:var(--radius);cursor:pointer}.image-preview{position:relative;display:inline-block}.image-preview img{max-width:200px;max-height:150px;border-radius:var(--radius);border:1px solid var(--border);object-fit:contain}.btn-remove{position:absolute;top:-8px;right:-8px;width:24px;height:24px;border-radius:50%;background:var(--danger);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px}.card-section{padding:var(--spacing-lg) 0;border-top:1px solid var(--border)}.card-section:first-child{padding-top:0;border-top:none}.card-section h3{font-size:1rem;color:var(--primary-dark);margin-bottom:var(--spacing-md);font-weight:600}.wine-card-panel{padding:0;overflow:hidden}.wine-card-panel .card-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg) var(--spacing-xl);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:var(--spacing-sm);background:var(--bg)}.wine-card-panel .card-header h2{font-size:1.15rem;color:var(--primary-dark);font-weight:700}.card-actions{display:flex;gap:.5rem;flex-wrap:wrap}.add-wine-form{display:flex;gap:.75rem;padding:var(--spacing-lg) var(--spacing-xl);background:var(--primary-light);border-bottom:1px solid var(--border);flex-wrap:wrap}.add-wine-form select,.add-wine-form input{flex:1;min-width:200px;padding:.65rem 1rem;border:1px solid var(--border);border-radius:var(--radius)}.inline-form{display:flex;gap:.75rem;align-items:center}.inline-form input{padding:.65rem 1rem;border:1px solid var(--border);border-radius:var(--radius);flex:1}.new-card-form{padding:var(--spacing-lg) var(--spacing-xl)}.price-cell{cursor:pointer;display:flex;align-items:center;gap:.4rem;font-weight:600}.price-cell:hover{color:var(--primary)}.inline-edit{display:flex;gap:.4rem;align-items:center}.inline-edit input{width:90px;padding:.4rem .6rem;border:1px solid var(--border);border-radius:var(--radius)}.formula-panel{background:linear-gradient(135deg,var(--primary-light) 0%,#F0E3E8 100%);border:1px solid rgba(139,46,76,.15)}.formula-panel h2{color:var(--primary-dark);margin-bottom:var(--spacing-lg);font-weight:700}.formula-form,.formula-form-extended{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:var(--spacing-lg)}.formula-form select,.formula-form input,.formula-form-extended select,.formula-form-extended input{padding:.65rem 1rem;border:1px solid var(--border);border-radius:var(--radius);min-width:150px;background:#fff}.formula-table{margin-top:var(--spacing-md);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.formula-table table{margin:0}.formula-table th{background:#8b2e4c1a;color:var(--primary-dark)}.share-panel{padding:var(--spacing-lg) var(--spacing-xl);background:linear-gradient(135deg,#f8f4ff,#f0e8ff);border-top:1px solid rgba(139,46,76,.1);border-bottom:1px solid rgba(139,46,76,.1)}.share-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.share-panel-header h3{color:var(--primary-dark);font-size:1rem;font-weight:700;margin:0}.share-panel-content{display:flex;gap:var(--spacing-xl);flex-wrap:wrap}.share-url-section{flex:1;min-width:250px}.share-url-section label{display:block;font-weight:600;color:var(--primary-dark);margin-bottom:var(--spacing-sm);font-size:.9rem}.share-url-row{display:flex;gap:var(--spacing-sm);align-items:center}.share-url-input{flex:1;padding:.65rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:#fff;font-family:Monaco,Menlo,monospace;font-size:.85rem;color:var(--text-light)}.share-qr-section{display:flex;flex-direction:column;align-items:center;min-width:180px}.share-qr-section label{font-weight:600;color:var(--primary-dark);margin-bottom:var(--spacing-sm);font-size:.9rem}.share-qr-code{padding:var(--spacing-md);background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-sm);display:flex;align-items:center;justify-content:center}.share-qr-code svg{display:block}.share-hint{margin-top:var(--spacing-sm);color:var(--text-light);font-size:.8rem;text-align:center;max-width:160px}.pdf-upload-card{text-align:center;padding:4rem var(--spacing-xl)}.pdf-upload-card p{margin-bottom:var(--spacing-xl);color:var(--text-light);font-size:1rem}.info-banner{background:linear-gradient(135deg,#fff8e7,#fff0d4);border:1px solid #F5C842;color:#8b6b2a;padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius);margin-bottom:var(--spacing-lg);font-size:.9rem;display:flex;align-items:center;gap:.75rem}.confidence-high{color:var(--success);font-weight:600}.confidence-low{color:var(--warning);font-weight:600}@media(max-width:768px){.header-inner{gap:var(--spacing-md);height:60px}.logo-text,.nav{display:none}.wine-detail-header{flex-direction:column}.wine-detail-image{width:100%}.wine-grid,.form-grid{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start}.page-actions{width:100%}.main{padding:var(--spacing-md)}.share-panel-content{flex-direction:column}.share-qr-section{width:100%}.share-url-row{flex-direction:column;align-items:stretch}}.public-wine-list-page{min-height:100vh;background:var(--bg)}.loading-container,.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;text-align:center;gap:var(--spacing-md)}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-icon{font-size:4rem;margin-bottom:var(--spacing-md)}.error-container h2{color:var(--primary-dark);margin-bottom:var(--spacing-sm)}.public-header{background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary) 100%);color:#fff;padding:var(--spacing-lg) 0;box-shadow:var(--shadow-lg);position:sticky;top:0;z-index:100}.public-header-content{max-width:1200px;margin:0 auto;padding:0 var(--spacing-xl);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);height:70px}.logo-section{display:flex;align-items:center;gap:.75rem}.brand-name{font-size:1.2rem;font-weight:700;letter-spacing:-.5px}.restaurant-info{text-align:center;flex:1}.restaurant-info h1{font-size:1.3rem;font-weight:700;margin:0 0 .25rem}.wine-list-name{font-size:.95rem;opacity:.9;font-weight:400;margin:0}.header-actions{display:flex;align-items:center;gap:var(--spacing-md)}.mobile-menu-btn{display:none;background:#ffffff26;border:none;color:#fff;width:40px;height:40px;border-radius:var(--radius);cursor:pointer;font-size:1.2rem;transition:var(--transition)}.mobile-menu-btn:hover{background:#ffffff40}.mobile-menu-overlay{position:fixed;inset:0;background:#00000080;z-index:200;display:flex;align-items:center;justify-content:center}.mobile-menu{background:#fff;border-radius:var(--radius-xl);padding:var(--spacing-xl);max-width:300px;width:90%;position:relative}.mobile-menu-close{position:absolute;top:var(--spacing-md);right:var(--spacing-md);background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-light)}.mobile-menu h3{color:var(--primary-dark);margin-bottom:var(--spacing-sm)}.mobile-menu p{color:var(--text-light);margin:.25rem 0}.mobile-menu a{color:var(--primary);text-decoration:none}.hero-section{background:linear-gradient(135deg,var(--primary-light) 0%,#F0E3E8 100%);padding:var(--spacing-xl) 0;text-align:center;position:relative;overflow:hidden}.hero-section.with-image{min-height:350px;display:flex;align-items:center}.hero-background{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.3;z-index:0}.hero-content{max-width:800px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-md);position:relative;z-index:1}.restaurant-logo{margin-bottom:var(--spacing-md)}.restaurant-logo img{max-height:80px;max-width:200px;object-fit:contain}.hero-content h2{font-size:2rem;color:var(--primary-dark);font-weight:700;margin-bottom:var(--spacing-sm)}.hero-content .intro-text{font-size:1.15rem;color:var(--text);line-height:1.6;font-style:italic}.hero-content p{font-size:1.1rem;color:var(--text-light)}.filters-section{max-width:1200px;margin:0 auto;padding:var(--spacing-lg) var(--spacing-xl)}.search-container{display:flex;align-items:center;background:#fff;border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:.75rem 1rem;margin-bottom:var(--spacing-lg);box-shadow:var(--shadow);position:relative}.search-icon{color:var(--text-lighter);flex-shrink:0}.search-container input{flex:1;border:none;outline:none;font-size:1rem;padding:0 .5rem;background:transparent}.clear-btn{background:none;border:none;color:var(--text-lighter);cursor:pointer;padding:.25rem;border-radius:var(--radius);display:flex}.type-filters{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);justify-content:center;margin-bottom:var(--spacing-md)}.type-filter-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:1.5px solid var(--border);border-radius:var(--radius-full);background:#fff;cursor:pointer;transition:var(--transition);font-size:.9rem;font-weight:500;color:var(--text)}.type-filter-btn:hover{border-color:var(--primary);background:var(--primary-light)}.type-filter-btn.active{color:#fff;border-color:transparent}.type-icon{font-size:1rem}.results-count{text-align:center;color:var(--text-light);font-size:.9rem;margin-top:var(--spacing-md)}.wines-section{max-width:1200px;margin:0 auto;padding:var(--spacing-lg) var(--spacing-xl) var(--spacing-xl)}.wine-type-section{margin-bottom:var(--spacing-xl)}.type-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--border)}.type-icon{font-size:1.5rem}.type-label{font-size:1.4rem;font-weight:700;color:var(--primary-dark)}.type-count{font-size:.9rem;color:var(--text-lighter);font-weight:500}.public-wine-card{background:#fff;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);transition:var(--transition);cursor:pointer;border:1px solid var(--border)}.public-wine-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.wine-image{height:200px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.wine-image img{width:100%;height:100%;object-fit:cover}.wine-placeholder-icon{font-size:4rem;opacity:.5}.wine-badge{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);background:var(--bg-dark);color:#fff;padding:.3rem .75rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.wine-details{padding:var(--spacing-lg)}.wine-name{font-size:1.1rem;font-weight:700;color:var(--text);margin-bottom:.25rem}.wine-producer{color:var(--text-light);font-size:.9rem;margin-bottom:.5rem}.wine-meta{color:var(--text-lighter);font-size:.85rem;margin-bottom:.5rem}.wine-grape{color:var(--primary);font-style:italic;font-size:.9rem;margin:.25rem 0}.wine-alcohol{color:var(--text-lighter);font-size:.85rem}.wine-price{display:inline-block;margin-top:var(--spacing-sm);padding:.5rem 1rem;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;font-weight:700;border-radius:var(--radius);font-size:1.1rem}.no-results{text-align:center;padding:var(--spacing-xl);color:var(--text-lighter)}.no-results-icon{font-size:3rem;margin-bottom:var(--spacing-md);opacity:.5}.no-results h3{color:var(--text);margin-bottom:var(--spacing-sm)}.public-footer{background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary) 100%);color:#fff;padding:var(--spacing-xl) 0 var(--spacing-xl)}.footer-content{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-xl);padding:0 var(--spacing-xl) var(--spacing-xl)}.footer-logo{text-align:center}.footer-brand{font-size:1.2rem;font-weight:700;letter-spacing:-.5px}.footer-restaurant h4{font-size:1rem;font-weight:600;margin-bottom:var(--spacing-sm)}.footer-restaurant p{font-size:.9rem;opacity:.9;margin:.25rem 0}.footer-links{display:flex;flex-direction:column;gap:var(--spacing-sm);text-align:center}.footer-links a{color:#fffc;text-decoration:none;transition:var(--transition)}.footer-links a:hover{color:#fff;text-decoration:underline}.footer-bottom{text-align:center;padding-top:var(--spacing-lg);border-top:1px solid rgba(255,255,255,.2)}.footer-bottom p{font-size:.85rem;opacity:.7;margin:0}.wine-modal-overlay{position:fixed;inset:0;background:#000000b3;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);animation:fadeIn .2s ease}.wine-modal{background:#fff;border-radius:var(--radius-xl);max-width:600px;width:100%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:var(--shadow-xl);animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-close{position:absolute;top:var(--spacing-md);right:var(--spacing-md);background:var(--bg);border:none;width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:1.2rem;color:var(--text-light);transition:var(--transition);display:flex;align-items:center;justify-content:center}.modal-close:hover{background:var(--border);color:var(--text)}.wine-modal-image{height:250px;position:relative;display:flex;align-items:center;justify-content:center}.wine-modal-image img{width:100%;height:100%;object-fit:cover}.wine-placeholder-large{font-size:5rem;opacity:.3}.wine-modal-details{padding:var(--spacing-lg)}.wine-modal-header{margin-bottom:var(--spacing-lg)}.wine-modal-badge{display:inline-block;padding:.4rem 1rem;border-radius:var(--radius-full);color:#fff;font-size:.85rem;font-weight:600}.wine-modal-name{font-size:1.5rem;font-weight:800;color:var(--primary-dark);margin-bottom:.25rem;letter-spacing:-.5px}.wine-modal-producer{font-size:1.1rem;color:var(--text-light);margin-bottom:var(--spacing-lg)}.wine-modal-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--border)}.meta-item{display:flex;flex-direction:column;gap:.25rem}.meta-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-lighter);font-weight:600}.wine-modal-description,.wine-modal-tasting,.wine-modal-notes{margin-bottom:var(--spacing-lg)}.wine-modal-description h4,.wine-modal-tasting h4,.wine-modal-notes h4{font-size:.9rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-light);margin-bottom:var(--spacing-sm)}.wine-modal-description p,.wine-modal-tasting p,.wine-modal-notes p{color:var(--text);line-height:1.7}.wine-modal-price{display:flex;align-items:center;justify-content:space-between;background:var(--bg);padding:var(--spacing-md);border-radius:var(--radius-lg);margin-top:var(--spacing-lg)}.wine-modal-price span{color:var(--text-light);font-size:.9rem}.wine-modal-price strong{font-size:1.5rem;color:var(--primary)}@media(max-width:768px){.public-header-content{flex-wrap:wrap;height:auto;padding:var(--spacing-md)}.logo-text,.restaurant-info{flex:1;min-width:120px}.mobile-menu-btn{display:flex}.hero-content h2{font-size:1.5rem}.filters-section{padding:var(--spacing-md)}.type-filters{justify-content:flex-start}.wines-section{padding:var(--spacing-md)}.wine-grid{grid-template-columns:1fr}.wine-modal{margin:var(--spacing-md);max-height:85vh}.wine-modal-meta{grid-template-columns:1fr}.footer-content{grid-template-columns:1fr;gap:var(--spacing-lg)}}.legal-page{max-width:900px;margin:0 auto}.legal-page .card{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:var(--spacing-xl);margin:var(--spacing-xl) auto}.legal-page h1{font-size:2rem;color:var(--primary-dark);margin-bottom:var(--spacing-sm);font-weight:800;letter-spacing:-.5px}.back-link{display:inline-flex;align-items:center;color:var(--primary);text-decoration:none;font-weight:600;margin-bottom:var(--spacing-lg);transition:var(--transition)}.back-link:hover{color:var(--primary-dark);text-decoration:underline}.last-updated{color:var(--text-light);font-style:italic;margin-bottom:var(--spacing-xl)}.legal-section{margin-bottom:var(--spacing-xl)}.legal-section h2{font-size:1.3rem;color:var(--primary-dark);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--primary-light);font-weight:700}.legal-section h3{font-size:1.1rem;color:var(--text);margin-top:var(--spacing-lg);margin-bottom:var(--spacing-sm);font-weight:600}.legal-section h4{font-size:1rem;color:var(--text);margin-top:var(--spacing-md);margin-bottom:var(--spacing-sm);font-weight:600}.legal-section p{color:var(--text);line-height:1.8;margin-bottom:var(--spacing-md)}.legal-section ul,.legal-section ol{margin-left:var(--spacing-lg);margin-bottom:var(--spacing-md)}.legal-section li{color:var(--text);line-height:1.7;margin-bottom:var(--spacing-xs)}.legal-section a{color:var(--primary);text-decoration:none;font-weight:500;transition:var(--transition)}.legal-section a:hover{color:var(--primary-dark);text-decoration:underline}.legal-footer{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);padding-top:var(--spacing-xl);margin-top:var(--spacing-xl);border-top:1px solid var(--border);flex-wrap:wrap}.legal-footer a{color:var(--primary);text-decoration:none;font-weight:500;transition:var(--transition)}.legal-footer a:hover{color:var(--primary-dark);text-decoration:underline}.legal-footer .separator{color:var(--text-lighter)}.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:1000;background:#fff;box-shadow:0 -4px 20px #00000026;border-top:1px solid var(--border);animation:slideUp .3s ease}.cookie-banner-content{max-width:1200px;margin:0 auto;padding:var(--spacing-lg) var(--spacing-xl);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-lg)}.cookie-banner-text{flex:1}.cookie-banner-text h3{font-size:1.1rem;color:var(--primary-dark);margin-bottom:var(--spacing-xs);font-weight:700}.cookie-banner-text p{font-size:.9rem;color:var(--text);line-height:1.5}.cookie-banner-link{color:var(--primary);text-decoration:underline;font-weight:500}.cookie-banner-actions{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.cookie-modal-overlay{position:fixed;inset:0;background:#0009;z-index:1001;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);animation:fadeIn .2s ease}.cookie-modal{background:#fff;border-radius:var(--radius-xl);max-width:550px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:slideUp .3s ease}.cookie-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg) var(--spacing-xl);border-bottom:1px solid var(--border);position:sticky;top:0;background:#fff;z-index:1}.cookie-modal-header h2{font-size:1.3rem;color:var(--primary-dark);margin:0;font-weight:700}.btn-close{background:none;border:none;font-size:1.5rem;color:var(--text-light);cursor:pointer;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:var(--transition)}.btn-close:hover{background:var(--bg);color:var(--text)}.cookie-modal-content{padding:var(--spacing-lg) var(--spacing-xl)}.cookie-option{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) 0;border-bottom:1px solid var(--border);gap:var(--spacing-md)}.cookie-option:last-child{border-bottom:none}.cookie-option-info{flex:1}.cookie-option-info h3{font-size:1rem;color:var(--text);margin-bottom:var(--spacing-xs);font-weight:600}.cookie-option-info p{font-size:.85rem;color:var(--text-light);line-height:1.5;margin:0}.cookie-list{margin:var(--spacing-sm) 0 0 0;padding-left:var(--spacing-md)}.cookie-list li{font-size:.8rem;color:var(--text-lighter);margin-bottom:.25rem}.cookie-list li strong{color:var(--text-light)}.toggle-switch{position:relative;width:50px;height:28px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-switch .slider{position:absolute;cursor:pointer;inset:0;background-color:var(--border);transition:var(--transition);border-radius:28px}.toggle-switch .slider:before{position:absolute;content:"";height:20px;width:20px;left:4px;bottom:4px;background-color:#fff;transition:var(--transition);border-radius:50%;box-shadow:0 2px 4px #0003}.toggle-switch input:checked+.slider{background-color:var(--primary)}.toggle-switch input:checked+.slider:before{transform:translate(22px)}.toggle-switch input:disabled+.slider{background-color:var(--text-lighter);cursor:not-allowed;opacity:.5}.status-badge{display:inline-block;padding:.3rem .75rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;flex-shrink:0}.status-badge.required{background:var(--success);color:#fff}.cookie-modal-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg) var(--spacing-xl);border-top:1px solid var(--border);flex-wrap:wrap;gap:var(--spacing-md);position:sticky;bottom:0;background:#fff}.cookie-modal-actions{display:flex;gap:var(--spacing-sm)}.btn-link{background:none;border:none;color:var(--primary);text-decoration:underline;cursor:pointer;font-size:.9rem;padding:.5rem;transition:var(--transition)}.btn-link:hover{color:var(--primary-dark)}.footer{background:var(--bg-dark);color:#fffc;padding:var(--spacing-lg) 0;margin-top:auto}.footer-inner{max-width:1400px;margin:0 auto;padding:0 var(--spacing-xl);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-md)}.footer p{font-size:.85rem;margin:0}.footer-nav{display:flex;gap:var(--spacing-md)}.footer-nav a{color:#ffffffb3;text-decoration:none;font-size:.85rem;transition:var(--transition)}.footer-nav a:hover{color:#fff;text-decoration:underline}@media(max-width:768px){.cookie-banner-content{flex-direction:column;align-items:stretch;text-align:center}.cookie-banner-actions{justify-content:center}.cookie-modal-footer{flex-direction:column;align-items:stretch}.cookie-modal-actions{justify-content:stretch}.cookie-modal-actions button{flex:1}.footer-inner{flex-direction:column;text-align:center}.legal-footer{flex-direction:column;gap:var(--spacing-sm)}}.wine-card.selection-mode{cursor:pointer;transition:all .2s ease;position:relative}.wine-card.selection-mode:hover{box-shadow:0 0 0 2px var(--primary);transform:translateY(-2px)}.wine-card.selection-mode.selected{box-shadow:0 0 0 3px var(--primary);background-color:var(--primary-light)}.wine-selection-checkbox{position:absolute;top:12px;left:12px;width:28px;height:28px;background:#fffffff2;border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:10;box-shadow:0 2px 8px #00000026;color:var(--text-lighter);transition:all .2s ease}.wine-card.selection-mode.selected .wine-selection-checkbox{background:var(--primary);color:#fff}.selection-bar{animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.wine-search-container{width:100%}.wine-search-input-wrapper{position:relative}.search-input-container{position:relative;display:flex;align-items:center}.wine-search-input{width:100%;padding:var(--spacing-md) var(--spacing-md) var(--spacing-md) 40px;border:1px solid var(--border);border-radius:var(--radius-md);font-size:1rem;transition:var(--transition)}.wine-search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #4382a01a}.search-icon{position:absolute;left:var(--spacing-md);color:var(--text-light);pointer-events:none}.loading-spinner{position:absolute;right:40px;animation:spin 1s linear infinite;color:var(--text-light)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.clear-btn{position:absolute;right:var(--spacing-sm);background:none;border:none;color:var(--text-light);cursor:pointer;padding:var(--spacing-xs);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:var(--transition)}.clear-btn:hover{background:var(--bg);color:var(--text)}.wine-search-results{position:absolute;top:100%;left:0;right:0;margin-top:var(--spacing-xs);background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:400px;overflow-y:auto;z-index:1000}.no-results{padding:var(--spacing-lg);text-align:center;color:var(--text-light);font-style:italic}.wine-search-result{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);cursor:pointer;border-bottom:1px solid var(--border-light);transition:var(--transition)}.wine-search-result:last-child{border-bottom:none}.wine-search-result:hover,.wine-search-result.selected{background:var(--bg)}.wine-result-color{width:40px;height:40px;border-radius:50%;flex-shrink:0}.wine-result-info{flex:1;min-width:0}.wine-result-name{font-weight:600;color:var(--text);margin-bottom:2px}.wine-result-details{font-size:.9rem;color:var(--text-light)}.wine-result-meta{font-size:.85rem;color:var(--text-lighter)}.wine-result-price{text-align:right;flex-shrink:0}.wine-result-price .wholesale{color:var(--text-light);font-size:.9rem}.selected-wine-details{margin-top:var(--spacing-md);padding:var(--spacing-md);background:var(--bg);border-radius:var(--radius-md)}.selected-wine-header{display:flex;align-items:center;gap:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-light)}.price-calculation-section{margin-top:var(--spacing-md)}.calculated-price-info{padding:var(--spacing-md);background:var(--success-light);border-radius:var(--radius-sm);margin-bottom:var(--spacing-md)}.price-breakdown{display:flex;flex-direction:column;gap:var(--spacing-xs);font-size:.9rem}.price-breakdown-label{font-weight:600;color:var(--primary-dark)}.price-breakdown-steps{color:var(--text);font-family:monospace;font-size:.85rem}.price-input-row{display:flex;gap:var(--spacing-sm);align-items:flex-end;flex-wrap:wrap}.price-input-group{flex:1;min-width:200px}.price-input-group label{display:block;font-size:.85rem;font-weight:500;margin-bottom:var(--spacing-xs);color:var(--text-light)}.price-input-wrapper{display:flex;align-items:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;transition:var(--transition)}.price-input-wrapper:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #4382a01a}.currency-symbol{padding:var(--spacing-sm) var(--spacing-xs);color:var(--text-light);font-weight:500}.price-input-wrapper input{flex:1;border:none;background:none;padding:var(--spacing-sm) 0;font-size:1rem;min-width:80px}.price-input-wrapper input:focus{outline:none}.override-btn{background:none;border:none;color:var(--primary);cursor:pointer;padding:0 var(--spacing-xs);margin-right:var(--spacing-xs)}.override-btn:hover{color:var(--primary-dark)}.add-wine-form-expanded{padding:var(--spacing-md);background:var(--bg);border-radius:var(--radius-md);margin-top:var(--spacing-md)}
