@import"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700;800&family=Nunito+Sans:wght@300;400;600;700;800&display=swap";:root{color-scheme:dark;--wine-50: #fdf2f4;--wine-100: #fce7ec;--wine-200: #f9d0da;--wine-300: #f4a8ba;--wine-400: #ed7593;--wine-500: #e14370;--wine-600: #c72351;--wine-700: #a71a3f;--wine-800: #8b1935;--wine-900: #7a1e2e;--wine-950: #430c18;--gold-300: #fcd34d;--gold-400: #fbbf24;--gold-500: #c9913a;--gold-600: #a87220;--neutral-950: #0e0709;--neutral-900: #160c0e;--neutral-800: #1f1114;--neutral-700: #2e1920;--neutral-600: #3d222b;--neutral-500: #6b3d47;--neutral-400: #9a6872;--neutral-300: #c4a0a8;--neutral-200: #e0ccd0;--neutral-100: #f3eced;--neutral-50: #faf6f7;--color-bg: var(--neutral-900);--color-surface: var(--neutral-800);--color-surface-2: var(--neutral-700);--color-border: rgba(201, 145, 58, .15);--color-border-strong: rgba(201, 145, 58, .35);--color-text: var(--neutral-100);--color-muted: var(--neutral-300);--color-subtle: var(--neutral-400);--color-brand: var(--wine-700);--color-brand-light: var(--wine-600);--color-brand-soft: rgba(122, 30, 46, .18);--color-accent: var(--gold-500);--color-accent-soft: rgba(201, 145, 58, .12);--color-focus: var(--gold-400);--color-success: #4ade80;--color-success-soft: rgba(74, 222, 128, .12);--color-error: #f87171;--color-error-soft: rgba(248, 113, 113, .12);--color-info: #60a5fa;--font-display: "Playfair Display", Georgia, serif;--font-body: "Nunito Sans", system-ui, -apple-system, sans-serif;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--radius-sm: 6px;--radius: 12px;--radius-lg: 20px;--radius-xl: 28px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(0,0,0,.4), 0 1px 2px rgba(0,0,0,.3);--shadow: 0 4px 16px rgba(0,0,0,.5), 0 2px 6px rgba(0,0,0,.3);--shadow-lg: 0 16px 40px rgba(0,0,0,.6), 0 4px 12px rgba(0,0,0,.4);--shadow-gold: 0 0 24px rgba(201, 145, 58, .25);--shadow-wine: 0 0 32px rgba(122, 30, 46, .35);--gradient-brand: linear-gradient(135deg, var(--wine-800) 0%, var(--wine-600) 100%);--gradient-gold: linear-gradient(135deg, var(--gold-600) 0%, var(--gold-400) 100%);--gradient-hero: radial-gradient(ellipse 120% 80% at 50% -10%, rgba(122,30,46,.45) 0%, transparent 70%);--gradient-card: linear-gradient(145deg, rgba(31,17,20,.9) 0%, rgba(46,25,32,.7) 100%);--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.375rem;--font-size-2xl: 1.75rem;--font-size-3xl: 2.25rem;--font-size-4xl: 3rem;--font-size-hero: clamp(2.8rem, 6vw, 5.5rem);--transition: .18s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--font-size-base);line-height:1.65;min-height:100vh}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:var(--gradient-hero);pointer-events:none;z-index:0}#app{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column}.skip-link{position:absolute;top:-60px;left:16px;background:var(--color-accent);color:var(--neutral-950);padding:10px 16px;border-radius:var(--radius);font-weight:700;text-decoration:none;z-index:100;transition:top var(--transition)}.skip-link:focus-visible{top:16px}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px;border-radius:var(--radius-sm)}.site-header{position:sticky;top:0;z-index:50;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);background:#0e0709d1;border-bottom:1px solid var(--color-border);box-shadow:0 1px #c9913a14}.header-inner{max-width:1240px;margin:0 auto;padding:0 var(--space-6);height:64px;display:flex;align-items:center;gap:var(--space-6)}.brand{display:flex;align-items:center;gap:var(--space-2);text-decoration:none;flex-shrink:0}.brand-icon{width:34px;height:34px;background:var(--gradient-brand);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:1.1rem;box-shadow:var(--shadow-wine)}.brand-name{font-family:var(--font-display);font-size:1.4rem;font-weight:700;background:var(--gradient-gold);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.01em}.site-nav{display:flex;align-items:center;gap:var(--space-1);flex:1}.nav-link{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius);text-decoration:none;color:var(--color-muted);font-size:var(--font-size-sm);font-weight:600;white-space:nowrap;transition:color var(--transition),background var(--transition)}.nav-link:hover{color:var(--color-text);background:var(--color-brand-soft)}.nav-link.active{color:var(--gold-400);background:var(--color-accent-soft)}.nav-link .nav-icon{font-size:1rem}.header-actions{display:flex;align-items:center;gap:var(--space-3);margin-left:auto;flex-shrink:0}.user-avatar{width:34px;height:34px;border-radius:var(--radius-full);object-fit:cover;border:2px solid var(--color-accent);cursor:pointer}.user-avatar-placeholder{width:34px;height:34px;border-radius:var(--radius-full);background:var(--gradient-brand);display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;color:#fff;cursor:pointer;border:2px solid var(--color-accent)}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius);font:600 var(--font-size-sm) / 1 var(--font-body);cursor:pointer;border:none;text-decoration:none;transition:all var(--transition);white-space:nowrap}.btn-primary{background:var(--gradient-brand);color:#fff;box-shadow:0 4px 14px #7a1e2e66}.btn-primary:hover{filter:brightness(1.12);box-shadow:0 6px 20px #7a1e2e8c;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-gold{background:var(--gradient-gold);color:var(--neutral-950);box-shadow:0 4px 14px #c9913a59;font-weight:700}.btn-gold:hover{filter:brightness(1.08);box-shadow:0 6px 20px #c9913a80;transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--color-muted);border:1px solid var(--color-border)}.btn-ghost:hover{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}.btn-sm{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--font-size-base);border-radius:var(--radius-lg)}.main-content{flex:1;max-width:1240px;margin:0 auto;padding:var(--space-8) var(--space-6);width:100%}.page-header{margin-bottom:var(--space-8)}.page-eyebrow{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-accent);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:var(--space-3)}.page-title{font-family:var(--font-display);font-size:var(--font-size-3xl);font-weight:700;letter-spacing:-.02em;line-height:1.1;color:var(--color-text)}.page-subtitle{color:var(--color-muted);font-size:var(--font-size-lg);margin-top:var(--space-3);max-width:600px}.hero-section{padding:var(--space-12) 0 var(--space-10);display:grid;gap:var(--space-10);grid-template-columns:1fr 1fr;align-items:center}.hero-badge{display:inline-flex;align-items:center;gap:var(--space-2);background:var(--color-accent-soft);border:1px solid var(--color-border-strong);color:var(--gold-400);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);margin-bottom:var(--space-5)}.hero-title{font-family:var(--font-display);font-size:var(--font-size-hero);font-weight:800;letter-spacing:-.025em;line-height:1;background:linear-gradient(160deg,var(--neutral-50) 30%,var(--neutral-300) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--space-5)}.hero-title em{font-style:italic;background:var(--gradient-gold);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-description{color:var(--color-muted);font-size:var(--font-size-lg);line-height:1.7;margin-bottom:var(--space-8);max-width:500px}.hero-actions{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.hero-social-proof{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-6)}.social-proof-text{font-size:var(--font-size-sm);color:var(--color-muted)}.social-proof-rating{color:var(--gold-400);font-size:.9rem;letter-spacing:.02em}.scanner-card{background:var(--gradient-card);border:1px solid var(--color-border-strong);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.scanner-title{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:600;color:var(--color-text);margin-bottom:var(--space-6);display:flex;align-items:center;gap:var(--space-2)}.scanner-input-area{border:2px dashed var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-8) var(--space-6);text-align:center;background:var(--color-brand-soft);cursor:pointer;transition:all var(--transition);margin-bottom:var(--space-4)}.scanner-input-area:hover,.scanner-input-area.drag-over{border-color:var(--color-accent);background:var(--color-accent-soft)}.scanner-icon{font-size:3rem;margin-bottom:var(--space-3);display:block}.scanner-hint{color:var(--color-muted);font-size:var(--font-size-sm);margin-bottom:var(--space-4)}.scanner-or{text-align:center;color:var(--color-subtle);font-size:var(--font-size-sm);margin:var(--space-4) 0;position:relative}.scanner-or:before,.scanner-or:after{content:"";position:absolute;top:50%;width:40%;height:1px;background:var(--color-border)}.scanner-or:before{left:0}.scanner-or:after{right:0}.scanner-text-input{width:100%;background:var(--neutral-800);border:1px solid var(--color-border);color:var(--color-text);padding:var(--space-3) var(--space-4);border-radius:var(--radius);font:var(--font-size-sm) var(--font-body);resize:vertical;min-height:80px}.scanner-text-input:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #c9913a26}.scanner-text-input::placeholder{color:var(--color-subtle)}.wine-result{background:var(--gradient-card);border:1px solid var(--color-border-strong);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-lg),var(--shadow-wine);margin-top:var(--space-6);animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.wine-result-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-5)}.wine-result-meta{flex:1}.wine-result-name{font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:700;letter-spacing:-.015em;color:var(--color-text)}.wine-result-appellation{color:var(--color-accent);font-size:var(--font-size-sm);font-weight:600;margin-top:var(--space-1)}.wine-score-badge{background:var(--gradient-brand);border-radius:var(--radius);padding:var(--space-3) var(--space-4);text-align:center;box-shadow:var(--shadow-wine);flex-shrink:0}.wine-score-value{font-family:var(--font-display);font-size:2rem;font-weight:800;color:#fff;line-height:1}.wine-score-label{font-size:.7rem;color:#ffffffb3;text-transform:uppercase;letter-spacing:.08em;margin-top:2px}.wine-color-badge{display:inline-flex;align-items:center;gap:var(--space-2);background:var(--color-surface-2);border:1px solid var(--color-border);color:var(--color-muted);font-size:var(--font-size-xs);font-weight:600;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);text-transform:capitalize;margin-right:var(--space-2)}.wine-color-badge.rouge{border-color:#be1e3266;color:#f87171}.wine-color-badge.blanc{border-color:#fde68a66;color:#fcd34d}.wine-color-badge.rosé{border-color:#fbb6ce66;color:#f9a8d4}.wine-color-badge.effervescent{border-color:#a7f3d066;color:#6ee7b7}.wine-description{color:var(--color-muted);font-size:var(--font-size-sm);line-height:1.7;margin-bottom:var(--space-5)}.wine-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-3);margin-bottom:var(--space-5)}.wine-detail{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-3) var(--space-4)}.wine-detail-label{font-size:var(--font-size-xs);color:var(--color-subtle);text-transform:uppercase;letter-spacing:.07em;font-weight:700;margin-bottom:4px}.wine-detail-value{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text)}.wine-pairings{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-5)}.pairing-chip{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-muted);font-size:var(--font-size-xs);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);display:flex;align-items:center;gap:var(--space-1)}.wine-result-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}.wine-affiliate-link{font-size:var(--font-size-sm);font-weight:600;color:var(--color-accent);text-decoration:none;display:flex;align-items:center;gap:var(--space-1)}.wine-affiliate-link:hover{color:var(--gold-300)}.features-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);padding:var(--space-8) 0}.feature-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);transition:border-color var(--transition),box-shadow var(--transition)}.feature-item:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-gold)}.feature-icon{font-size:2rem;margin-bottom:var(--space-3);display:block}.feature-title{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:600;color:var(--color-text);margin-bottom:var(--space-2)}.feature-desc{color:var(--color-muted);font-size:var(--font-size-sm);line-height:1.6}.cave-toolbar{display:flex;gap:var(--space-3);align-items:center;margin-bottom:var(--space-6);flex-wrap:wrap}.cave-search{flex:1;min-width:200px;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);padding:var(--space-3) var(--space-4);border-radius:var(--radius);font:var(--font-size-sm) var(--font-body)}.cave-search:focus{border-color:var(--color-accent);outline:none}.cave-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-bottom:var(--space-6)}.cave-stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);text-align:center}.cave-stat-value{font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:700;color:var(--color-accent)}.cave-stat-label{color:var(--color-muted);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin-top:4px}.cellar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.cellar-entry{background:var(--gradient-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);transition:border-color var(--transition),box-shadow var(--transition)}.cellar-entry:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow)}.cellar-entry-name{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:600;color:var(--color-text);margin-bottom:var(--space-1)}.cellar-entry-appellation{color:var(--color-accent);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-3)}.cellar-entry-meta{display:flex;gap:var(--space-3);align-items:center;margin-bottom:var(--space-3)}.bottles-badge{background:var(--color-brand-soft);border:1px solid rgba(122,30,46,.3);color:var(--wine-400);font-size:var(--font-size-xs);font-weight:700;padding:3px var(--space-2);border-radius:var(--radius)}.cellar-entry-actions{display:flex;gap:var(--space-2);margin-top:var(--space-4)}.empty-state{text-align:center;padding:var(--space-16)}.empty-state-icon{font-size:3.5rem;margin-bottom:var(--space-4);opacity:.5}.empty-state-title{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:600;color:var(--color-muted);margin-bottom:var(--space-3)}.empty-state-desc{color:var(--color-subtle);font-size:var(--font-size-sm);max-width:360px;margin:0 auto var(--space-6)}.wine-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-5)}.wine-card{background:var(--gradient-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition);cursor:pointer}.wine-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow),var(--shadow-gold);transform:translateY(-2px)}.wine-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-3)}.wine-card-name{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:600;color:var(--color-text);line-height:1.2;flex:1;padding-right:var(--space-3)}.wine-card-score{background:var(--gradient-brand);color:#fff;font-family:var(--font-display);font-weight:700;font-size:1.1rem;padding:4px 10px;border-radius:var(--radius);flex-shrink:0;box-shadow:var(--shadow-wine)}.wine-card-appellation{color:var(--color-accent);font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.07em;margin-bottom:var(--space-2)}.wine-card-desc{color:var(--color-muted);font-size:var(--font-size-sm);line-height:1.6;margin-bottom:var(--space-4);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.wine-card-footer{display:flex;justify-content:space-between;align-items:center}.wine-card-price{font-weight:700;color:var(--color-text);font-size:var(--font-size-sm)}.wine-card-cepages{color:var(--color-subtle);font-size:var(--font-size-xs)}.pricing-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-6);max-width:800px;margin:0 auto}.pricing-card{background:var(--gradient-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-8);position:relative;transition:box-shadow var(--transition),border-color var(--transition)}.pricing-card.featured{border-color:var(--color-accent);box-shadow:var(--shadow-gold),var(--shadow-lg)}.pricing-badge{position:absolute;top:-14px;left:50%;transform:translate(-50%);background:var(--gradient-gold);color:var(--neutral-950);font-size:var(--font-size-xs);font-weight:800;padding:4px 14px;border-radius:var(--radius-full);white-space:nowrap}.pricing-plan-name{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:700;color:var(--color-text);margin-bottom:var(--space-2)}.pricing-price{display:flex;align-items:baseline;gap:var(--space-1);margin-bottom:var(--space-6)}.pricing-amount{font-family:var(--font-display);font-size:3rem;font-weight:800;color:var(--color-text)}.pricing-period{color:var(--color-muted);font-size:var(--font-size-sm)}.pricing-features{list-style:none;display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-8)}.pricing-feature{display:flex;gap:var(--space-3);font-size:var(--font-size-sm);color:var(--color-muted);align-items:flex-start}.pricing-feature .check{color:var(--color-accent);font-size:1rem;flex-shrink:0;margin-top:1px}.pricing-feature.highlight{color:var(--color-text);font-weight:600}.profile-card{background:var(--gradient-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-8);max-width:640px;margin:0 auto}.profile-avatar-section{display:flex;align-items:center;gap:var(--space-6);margin-bottom:var(--space-8)}.profile-avatar-large{width:72px;height:72px;border-radius:var(--radius-full);object-fit:cover;border:3px solid var(--color-accent);box-shadow:var(--shadow-gold)}.profile-avatar-large-placeholder{width:72px;height:72px;border-radius:var(--radius-full);background:var(--gradient-brand);display:flex;align-items:center;justify-content:center;font-size:1.8rem;font-weight:700;color:#fff;border:3px solid var(--color-accent);box-shadow:var(--shadow-wine)}.profile-name{font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text)}.profile-email{color:var(--color-muted);font-size:var(--font-size-sm);margin-top:4px}.plan-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.07em}.plan-chip.free{background:var(--color-surface-2);color:var(--color-muted);border:1px solid var(--color-border)}.plan-chip.premium{background:var(--color-accent-soft);color:var(--gold-400);border:1px solid var(--color-border-strong)}.quota-bar{margin-top:var(--space-4)}.quota-label{display:flex;justify-content:space-between;font-size:var(--font-size-xs);color:var(--color-muted);margin-bottom:var(--space-2)}.quota-track{height:6px;background:var(--color-surface-2);border-radius:var(--radius-full);overflow:hidden}.quota-fill{height:100%;background:var(--gradient-brand);border-radius:var(--radius-full);transition:width .4s ease}.quota-fill.full{background:linear-gradient(90deg,var(--color-error),#dc2626)}.auth-gate{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-16) var(--space-6);text-align:center;gap:var(--space-6)}.auth-gate-icon{font-size:4rem;opacity:.6}.auth-gate-title{font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text)}.auth-gate-desc{color:var(--color-muted);max-width:400px}.google-btn{display:flex;align-items:center;gap:var(--space-3);background:#fff;color:#3c4043;border:1px solid #dadce0;border-radius:var(--radius);padding:var(--space-3) var(--space-5);font:600 var(--font-size-sm) var(--font-body);cursor:pointer;transition:box-shadow var(--transition);text-decoration:none}.google-btn:hover{box-shadow:0 2px 8px #0000004d}.google-logo{width:18px;height:18px}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4);margin-bottom:var(--space-8)}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5)}.stat-value{font-family:var(--font-display);font-size:var(--font-size-3xl);font-weight:800;color:var(--color-accent)}.stat-label{color:var(--color-muted);font-size:var(--font-size-sm);margin-top:4px}.users-table{width:100%;border-collapse:collapse}.users-table th{background:var(--color-surface-2);padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.07em;color:var(--color-muted);font-weight:700}.users-table td{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);font-size:var(--font-size-sm);color:var(--color-muted)}.users-table tr:hover td{background:var(--color-surface)}.toast-container{position:fixed;bottom:var(--space-6);right:var(--space-6);display:flex;flex-direction:column;gap:var(--space-2);z-index:1000}.toast{background:var(--neutral-800);border:1px solid var(--color-border-strong);border-radius:var(--radius);padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);color:var(--color-text);box-shadow:var(--shadow-lg);animation:slideInRight .2s ease;max-width:320px}.toast.success{border-color:#4ade804d}.toast.error{border-color:#f871714d}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;z-index:200;display:flex;align-items:center;justify-content:center;padding:var(--space-6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .15s ease}.modal{background:var(--neutral-800);border:1px solid var(--color-border-strong);border-radius:var(--radius-xl);padding:var(--space-8);max-width:480px;width:100%;box-shadow:var(--shadow-lg)}.modal-title{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:700;color:var(--color-text);margin-bottom:var(--space-6)}.form-field{margin-bottom:var(--space-4)}.form-label{display:block;font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--color-muted);margin-bottom:var(--space-2)}.form-input,.form-textarea{width:100%;background:var(--neutral-900);border:1px solid var(--color-border);color:var(--color-text);padding:var(--space-3) var(--space-4);border-radius:var(--radius);font:var(--font-size-sm) var(--font-body)}.form-input:focus,.form-textarea:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #c9913a1f}.form-textarea{resize:vertical;min-height:80px}.modal-actions{display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-6)}.site-footer{border-top:1px solid var(--color-border);padding:var(--space-8) var(--space-6);margin-top:auto}.footer-inner{max-width:1240px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-4)}.footer-links{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:center}.footer-links a{color:var(--color-muted);font-size:var(--font-size-sm);text-decoration:none;transition:color var(--transition)}.footer-links a:hover{color:var(--color-accent)}.footer-copy{color:var(--color-subtle);font-size:var(--font-size-xs)}.footer-brand{font-family:var(--font-display);font-size:1.1rem;font-weight:700;background:var(--gradient-gold);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.footer-disclaimer{color:var(--color-subtle);font-size:var(--font-size-xs);margin-top:var(--space-2);max-width:600px}.spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay{display:flex;align-items:center;justify-content:center;padding:var(--space-12)}.ad-slot{text-align:center;padding:var(--space-4) 0;min-height:90px}@media (max-width: 900px){.hero-section,.features-strip{grid-template-columns:1fr}.pricing-grid{grid-template-columns:1fr;max-width:420px}}@media (max-width: 768px){.header-inner{padding:0 var(--space-4);height:56px}.site-nav{display:none}.main-content{padding:var(--space-5) var(--space-4)}.cave-stats{grid-template-columns:repeat(3,1fr)}.users-table th:nth-child(n+4),.users-table td:nth-child(n+4){display:none}}@media (max-width: 480px){.cellar-grid,.wine-grid,.cave-stats{grid-template-columns:1fr}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.ui-empty{display:grid;justify-items:center;gap:var(--space-3);padding:var(--space-10) var(--space-6);text-align:center;border:1px dashed var(--color-line);border-radius:var(--radius);background:var(--color-surface-2)}.ui-empty__icon{font-size:2rem;line-height:1}.ui-empty__title{margin:0;font-size:var(--font-size-lg);color:var(--color-text)}.ui-empty__body{margin:0;max-width:46ch;color:var(--color-muted)}.ui-spinner{display:inline-flex;align-items:center;gap:var(--space-3);color:var(--color-muted)}.ui-spinner__ring{width:18px;height:18px;border-radius:50%;border:2px solid var(--color-line);border-top-color:var(--color-brand);animation:ui-spin .8s linear infinite}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-skeleton{display:grid;gap:var(--space-2)}.ui-skeleton__line{height:12px;border-radius:var(--radius-pill);background:linear-gradient(90deg,var(--color-surface-2) 25%,var(--color-line) 50%,var(--color-surface-2) 75%);background-size:200% 100%;animation:ui-shimmer 1.4s ease infinite}.ui-skeleton__line:last-child{width:60%}@keyframes ui-shimmer{to{background-position:-200% 0}}.ui-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#0a0e1673;display:grid;place-items:center;padding:var(--space-4)}.ui-modal{width:min(560px,100%);max-height:86vh;overflow:auto;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.ui-modal__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-line)}.ui-modal__title{margin:0;font-size:var(--font-size-lg)}.ui-modal__close{border:0;background:transparent;cursor:pointer;color:var(--color-muted);font-size:var(--font-size-base);padding:var(--space-1)}.ui-modal__close:hover{color:var(--color-text)}.ui-modal__body{padding:var(--space-6);display:grid;gap:var(--space-4)}.ui-tabs__bar{display:flex;gap:var(--space-1);border-bottom:1px solid var(--color-line);margin-bottom:var(--space-4);overflow-x:auto}.ui-tabs__tab{border:0;background:transparent;cursor:pointer;padding:var(--space-2) var(--space-4);color:var(--color-muted);font-weight:600;border-bottom:2px solid transparent;transition:color var(--transition),border-color var(--transition);white-space:nowrap}.ui-tabs__tab:hover{color:var(--color-text)}.ui-tabs__tab.active{color:var(--color-brand);border-bottom-color:var(--color-brand)}.ui-table__scroll{overflow-x:auto;border:1px solid var(--color-line);border-radius:var(--radius)}.ui-table__grid{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.ui-table__grid th{text-align:left;font-weight:600;color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;padding:var(--space-3) var(--space-4);background:var(--color-surface-2);border-bottom:1px solid var(--color-line)}.ui-table__grid td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-line);color:var(--color-text)}.ui-table__grid tbody tr:last-child td{border-bottom:0}.ui-table__grid tbody tr:hover td{background:var(--color-surface-2)}.ui-table__grid .is-right{text-align:right}.ui-table__pager{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-3);color:var(--color-muted)}.ui-table__page{border:1px solid var(--color-line);background:var(--color-surface);border-radius:var(--radius-sm);cursor:pointer;padding:var(--space-1) var(--space-3)}.ui-table__page:disabled{opacity:.4;cursor:default}.onboarding-steps{max-width:1080px;margin:56px auto;padding:0 var(--space-5)}.onboarding-heading{font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:700;text-align:center;color:var(--color-text);letter-spacing:-.02em;margin-bottom:var(--space-8)}.onboarding-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-5)}.onboarding-step{position:relative;background:var(--gradient-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8) var(--space-6) var(--space-6);text-align:center;transition:transform var(--transition),border-color var(--transition),box-shadow var(--transition)}.onboarding-step:hover{transform:translateY(-4px);border-color:var(--color-border-strong);box-shadow:var(--shadow-wine)}.onboarding-step-num{position:absolute;top:-18px;left:50%;transform:translate(-50%);width:36px;height:36px;display:grid;place-items:center;border-radius:var(--radius-full);background:var(--gradient-gold);color:var(--neutral-950);font-weight:800;font-size:var(--font-size-base);box-shadow:var(--shadow-gold)}.onboarding-step-icon{font-size:2rem;margin-bottom:var(--space-3)}.onboarding-step-title{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:600;color:var(--color-text);margin-bottom:var(--space-2)}.onboarding-step-desc{font-size:var(--font-size-sm);line-height:1.65;color:var(--color-muted)}
