:root{--color-brand-burgundy:#6e0c0e;--color-brand-charcoal:#27292b;--color-brand-off-white:#faf8f8;--color-brand-white:#fff;--color-text-primary:#27292b;--color-text-secondary:#27292b99;--color-text-disabled:#27292b42;--color-text-on-dark:#faf8f8;--color-text-linked:#214342;--color-bg-page:#fff;--color-bg-subtle:#faf8f8;--color-bg-header:#6e0c0e;--color-bg-nav:#330100;--color-grey-border:#d8d8d8;--color-grey-neutral:#e0e0e0;--color-grey-medium:#bdbdbd;--color-grey-muted:#757575;--color-status-error:#d32f2f;--color-status-success:#2e7d32;--color-status-warning:#ed6c02;--color-status-info:#0288d1;--font-family-lora:"Lora", Georgia, serif;--font-family-roboto:"Roboto", Arial, Helvetica, sans-serif;--font-size-h1:30px;--font-size-h2:22px;--font-size-h3:22px;--font-size-h4:20px;--font-size-h5:16px;--font-size-h6:12px;--font-size-price1:28px;--font-size-price2:24px;--font-size-quote:18px;--font-size-body1:16px;--font-size-body2:14px;--font-size-caption:13px;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-h1:1.3;--line-height-h2:1.2;--line-height-h3:1.2;--line-height-h4:1.3;--line-height-h5:1.35;--line-height-h6:14px;--line-height-price1:1.15;--line-height-price2:1;--line-height-quote:1.5;--line-height-body1:1.6;--line-height-body2:1.5;--line-height-caption:1.4;--letter-spacing-overline:.07em;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--max-content-width:1440px;--max-outer-width:1536px;--page-padding:48px;--button-border-radius:4px;--button-padding-y:10px;--button-padding-x:24px;--button-font-size:var(--font-size-h5);--button-font-weight:var(--font-weight-bold);--card-border-radius:4px;--card-border:.5px solid var(--color-grey-border);--card-padding:var(--spacing-lg);--card-gap:var(--spacing-md);--input-border-radius:4px;--input-border:1px solid var(--color-grey-border);--input-border-focus:1px solid var(--color-brand-charcoal);--input-height:40px;--shadow-1:0 4px 8px #0000001a;--shadow-button:#0003 0 3px 1px -2px, #00000024 0 2px 2px, #0000001f 0 1px 5px;--color-burgundy:var(--color-brand-burgundy);--color-burgundy-dark:#58090b;--color-burgundy-light:#8b3c3e;--color-red-accent:var(--color-status-error);--color-white:var(--color-brand-white);--color-gray-light:var(--color-bg-subtle);--color-gray-border:var(--color-grey-border);--color-gray-medium:var(--color-grey-muted);--color-charcoal:var(--color-brand-charcoal);--color-charcoal-light:#525455;--color-cta-dark:var(--color-brand-charcoal);--color-cream:var(--color-brand-off-white);--color-cream-dark:var(--color-grey-border);--color-gold:var(--color-text-linked);--color-gold-light:var(--color-brand-off-white);--color-gold-dark:var(--color-brand-charcoal);--color-success:var(--color-status-success);--color-warning:var(--color-status-warning);--color-danger:var(--color-status-error);--color-info:var(--color-status-info);--surface-primary:var(--color-bg-page);--surface-card:var(--color-bg-subtle);--surface-overlay:#27292ba6;--text-primary:var(--color-text-primary);--text-secondary:var(--color-text-secondary);--text-inverse:var(--color-text-on-dark);--text-muted:var(--color-text-secondary);--font-display:var(--font-family-lora);--font-serif:var(--font-family-roboto);--font-sans:var(--font-family-roboto);--font-mono:"SF Mono", "Fira Code", "Consolas", monospace;--text-xs:var(--font-size-h6);--text-sm:var(--font-size-body2);--text-base:var(--font-size-body1);--text-lg:var(--font-size-h4);--text-xl:var(--font-size-h2);--text-2xl:var(--font-size-price2);--text-3xl:var(--font-size-h1);--text-4xl:var(--font-size-h1);--leading-tight:var(--line-height-h2);--leading-normal:var(--line-height-body1);--leading-relaxed:var(--line-height-body1);--weight-normal:var(--font-weight-regular);--weight-medium:var(--font-weight-medium);--weight-semibold:var(--font-weight-semibold);--weight-bold:var(--font-weight-bold);--space-1:var(--spacing-xs);--space-2:var(--spacing-sm);--space-3:12px;--space-4:var(--spacing-md);--space-5:20px;--space-6:var(--spacing-lg);--space-8:var(--spacing-xl);--space-10:40px;--space-12:var(--spacing-2xl);--space-16:64px;--radius-sm:var(--card-border-radius);--radius-md:var(--card-border-radius);--radius-lg:var(--card-border-radius);--radius-xl:var(--card-border-radius);--radius-full:var(--button-border-radius);--shadow-sm:none;--shadow-md:var(--shadow-1);--shadow-lg:var(--shadow-1);--shadow-xl:var(--shadow-1);--shadow-card:none;--shadow-card-hover:var(--shadow-1);--ease-default:cubic-bezier(.4, 0, .2, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-bounce:cubic-bezier(.34, 1.56, .64, 1);--duration-fast:.15s;--duration-normal:.25s;--duration-slow:.4s;--transition-colors:color var(--duration-normal) var(--ease-default), background-color var(--duration-normal) var(--ease-default), border-color var(--duration-normal) var(--ease-default);--transition-shadow:box-shadow var(--duration-normal) var(--ease-default);--transition-transform:transform var(--duration-normal) var(--ease-default);--transition-all:all var(--duration-normal) var(--ease-default);--max-width-content:720px;--max-width-wide:960px;--header-height:auto}@media (width<=959.95px){:root{--font-size-h1:24px;--font-size-price1:24px;--font-size-h2:20px;--font-size-h4:18px}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:100%}body{font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--weight-normal);line-height:var(--leading-normal);color:var(--text-primary);background-color:var(--surface-primary);min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);line-height:var(--leading-tight);color:var(--text-primary);letter-spacing:0}h1{font-family:var(--font-display);font-size:var(--font-size-h1);font-weight:var(--font-weight-regular);line-height:var(--line-height-h1)}h2{font-size:var(--font-size-h2);font-weight:var(--font-weight-semibold);line-height:var(--line-height-h2)}h3{font-size:var(--font-size-h3);font-weight:var(--font-weight-bold);line-height:var(--line-height-h3)}h4{font-size:var(--font-size-h4);font-weight:var(--font-weight-bold);line-height:var(--line-height-h4)}h5{font-size:var(--font-size-h5);font-weight:var(--font-weight-bold);line-height:var(--line-height-h5)}h6{font-size:var(--font-size-h6);font-weight:var(--font-weight-regular);line-height:var(--line-height-h6)}p{margin-bottom:var(--space-4)}a{color:var(--text-primary);text-underline-offset:2px;transition:var(--transition-colors);text-decoration:underline}a:hover{color:var(--text-primary)}img{max-width:100%;height:auto;display:block}button{cursor:pointer;font-family:inherit;font-size:inherit;background:0 0;border:none}ul,ol{list-style:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#root{min-height:100vh}.app-main{gap:var(--space-6);width:100%;max-width:var(--max-width-content);padding:var(--space-6) var(--space-4);flex-direction:column;flex:1;margin:0 auto;display:flex}@media (width>=768px){.app-main{padding:var(--space-8) var(--space-6)}}.app{flex-direction:column;min-height:100vh;display:flex}.error-banner{padding:var(--space-4) var(--space-5);background-color:color-mix(in srgb, var(--color-danger) 8%, transparent);border:1px solid var(--color-danger);border-radius:var(--card-border-radius);text-align:center}.error-banner p{color:var(--color-danger);font-weight:var(--weight-medium);margin-bottom:var(--space-3)}.retry-btn{padding:var(--button-padding-y) var(--button-padding-x);font-size:var(--button-font-size);font-weight:var(--button-font-weight);color:var(--color-text-on-dark);background-color:var(--color-burgundy);border-radius:var(--button-border-radius);transition:var(--transition-all);align-items:center;display:inline-flex}.retry-btn:hover{background-color:var(--color-burgundy-light)}.app-footer{padding:var(--space-6) var(--space-4);text-align:center;background-color:var(--color-brand-charcoal);color:var(--color-text-on-dark);font-size:var(--text-sm);margin-top:auto}.app-footer p{color:var(--color-text-on-dark);margin-bottom:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.header{background-color:var(--color-burgundy);width:100%;box-shadow:var(--shadow-md);z-index:100;position:sticky;top:0}.header__inner{justify-content:space-between;align-items:center;gap:var(--space-3);max-width:var(--max-width-wide);padding:var(--space-3) var(--space-4);margin:0 auto;display:flex}.header__brand-action{align-items:center;gap:var(--space-3);min-width:0;color:var(--color-text-on-dark);text-align:left;text-decoration:none;display:inline-flex}.header__brand-action:hover{color:var(--color-text-on-dark)}.header__logo{object-fit:contain;flex:none;width:88px;height:auto;display:block}.header__copy{flex-direction:column;min-width:0;display:inline-flex}.header__app-name{font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-overline);line-height:var(--line-height-caption);text-transform:uppercase;white-space:nowrap}.header__actions{justify-content:flex-end;align-items:center;gap:var(--space-2);flex:none;display:inline-flex}.header__action{min-height:36px;padding:var(--space-2) var(--space-3);color:var(--color-text-on-dark);border:1px solid color-mix(in srgb, var(--color-text-on-dark) 50%, transparent);border-radius:var(--button-border-radius);font-size:var(--text-sm);font-weight:var(--weight-semibold);white-space:nowrap;transition:var(--transition-all);justify-content:center;align-items:center;line-height:1;text-decoration:none;display:inline-flex}.header__action:hover{color:var(--color-text-on-dark);background:color-mix(in srgb, var(--color-text-on-dark) 12%, transparent)}.header__action--primary{color:var(--color-burgundy);background:var(--color-text-on-dark);border-color:var(--color-text-on-dark)}.header__action--primary:hover{color:var(--color-burgundy);background:var(--color-white)}@media (width>=768px){.header__inner{padding:var(--space-4) var(--space-6)}.header__logo{width:124px}}@media (width<=430px){.header__inner{gap:var(--space-2)}.header__logo{width:76px}.header__app-name{display:none}.header__action{min-height:34px;padding:var(--space-2);font-size:var(--text-xs)}}.image-upload{width:100%;animation:fadeIn var(--duration-slow) var(--ease-out)}.image-upload__dropzone{justify-content:center;align-items:center;gap:var(--space-4);min-height:240px;padding:var(--space-8) var(--space-5);border:1.5px dashed var(--color-grey-border);border-radius:var(--radius-lg);background-color:var(--surface-card);transition:var(--transition-all);flex-direction:column;display:flex;position:relative}.image-upload__dropzone:hover{border-color:var(--color-burgundy);background-color:var(--color-bg-subtle);box-shadow:var(--shadow-sm)}.image-upload__dropzone--active{border-color:var(--color-burgundy);background-color:var(--color-bg-subtle);box-shadow:0 0 0 4px color-mix(in srgb, var(--color-burgundy) 10%, transparent);border-style:solid;transform:scale(1.01)}.image-upload__icon{width:40px;height:40px;color:var(--text-muted);opacity:.75;transition:var(--transition-all)}.image-upload__dropzone:hover .image-upload__icon,.image-upload__dropzone--active .image-upload__icon{color:var(--color-burgundy);opacity:1;transform:translateY(-2px)}.image-upload__label{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-primary);text-align:center;margin-bottom:0}.image-upload__hint{font-size:var(--text-sm);color:var(--text-muted);text-align:center;margin-bottom:0}.image-upload__button{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-burgundy);border:1px solid color-mix(in srgb, var(--color-burgundy) 45%, transparent);border-radius:var(--button-border-radius);transition:var(--transition-all);background-color:#0000;display:inline-flex}.image-upload__button:hover{background-color:color-mix(in srgb, var(--color-burgundy) 8%, transparent);border-color:var(--color-burgundy);transform:translateY(-1px)}.image-upload__button:active{box-shadow:var(--shadow-sm);transform:translateY(0)}.image-upload__input{display:none}.image-upload__camera-btn{justify-content:center;align-items:center;gap:var(--space-2);min-width:min(100%,260px);padding:var(--space-3) var(--space-6);font-size:var(--text-base);font-weight:var(--weight-bold);color:var(--color-text-on-dark);background-color:var(--color-burgundy);box-shadow:var(--shadow-button);border-radius:var(--button-border-radius);transition:var(--transition-all);display:inline-flex}.image-upload__camera-btn:hover{background-color:var(--color-burgundy-dark);color:var(--color-text-on-dark);transform:translateY(-1px)}.image-upload__secondary-actions{justify-content:center;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.image-upload__drop-hint{font-size:var(--text-sm);color:var(--text-muted)}@media (width<=480px){.image-upload__dropzone{min-height:220px;padding:var(--space-6) var(--space-4);align-items:stretch}.image-upload__label{font-size:var(--text-base)}.image-upload__camera-btn{width:100%}.image-upload__secondary-actions{gap:var(--space-2);flex-direction:column}.image-upload__button{align-self:center}.image-upload__drop-hint{display:none}}.image-preview{align-items:center;gap:var(--space-4);width:100%;max-width:480px;animation:fadeIn var(--duration-slow) var(--ease-out);flex-direction:column;margin:0 auto;display:flex}.image-preview__container{border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-md);background-color:var(--surface-card);position:relative;overflow:hidden}.image-preview__image{object-fit:cover;border-radius:var(--radius-lg);width:100%;height:auto;display:block}.image-preview__overlay{padding:var(--space-4) var(--space-4) var(--space-3);color:var(--text-inverse);font-size:var(--text-sm);border-radius:0 0 var(--radius-lg) var(--radius-lg);background:linear-gradient(#0000,#2c2c2cb3);position:absolute;bottom:0;left:0;right:0}.image-preview__actions{gap:var(--space-3);display:flex}.image-preview__remove-btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-danger);border:1.5px solid var(--color-danger);border-radius:var(--button-border-radius);transition:var(--transition-all);background-color:#0000;display:inline-flex}.image-preview__remove-btn:hover{background-color:var(--color-danger);color:var(--color-cream)}.image-preview__scan-btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-on-dark);background-color:var(--color-burgundy);border-radius:var(--button-border-radius);transition:var(--transition-all);display:inline-flex}.image-preview__scan-btn:hover{background-color:var(--color-burgundy-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}.image-preview__scan-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.loading-spinner{justify-content:center;align-items:center;gap:var(--space-6);padding:var(--space-10) var(--space-4);animation:fadeIn var(--duration-normal) var(--ease-out);flex-direction:column;display:flex}.loading-spinner--overlay{z-index:1000;background-color:var(--surface-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);position:fixed;inset:0}.loading-spinner__glass{width:60px;height:90px;position:relative}.loading-spinner__bowl{border:3px solid var(--color-grey-border);border-top:none;border-radius:0 0 50% 50%;width:50px;height:50px;position:absolute;top:0;left:50%;overflow:hidden;transform:translate(-50%)}.loading-spinner__wine{background:linear-gradient(to top, var(--color-burgundy), var(--color-burgundy-light));animation:fillGlass 2.4s var(--ease-default) infinite;border-radius:0 0 50% 50%;position:absolute;bottom:0;left:0;right:0}.loading-spinner__stem{background-color:var(--color-grey-border);width:3px;height:24px;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.loading-spinner__base{background-color:var(--color-grey-border);border-radius:var(--radius-full);width:30px;height:3px;position:absolute;bottom:6px;left:50%;transform:translate(-50%)}@keyframes fillGlass{0%{height:0%}40%{height:70%}60%{height:70%}80%{height:0%}to{height:0%}}.loading-spinner__quip-wrapper{text-align:center;justify-content:center;align-items:center;min-height:3em;display:flex}.loading-spinner__quip{font-family:var(--font-display);font-size:var(--text-base);color:var(--color-burgundy);animation:quipFade 3.6s var(--ease-default) infinite;font-style:italic}.loading-spinner--overlay .loading-spinner__quip{color:var(--color-cream)}@keyframes quipFade{0%{opacity:0;transform:translateY(6px)}15%{opacity:1;transform:translateY(0)}85%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}.loading-spinner__dots{gap:var(--space-2);display:flex}.loading-spinner__dot{background-color:var(--color-burgundy);width:8px;height:8px;animation:dotPulse 1.2s var(--ease-default) infinite;border-radius:50%}.loading-spinner__dot:nth-child(2){animation-delay:.15s}.loading-spinner__dot:nth-child(3){animation-delay:.3s}@keyframes dotPulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.loading-spinner__status{font-size:var(--text-sm);color:var(--text-muted);text-align:center}.loading-spinner--overlay .loading-spinner__status{color:var(--color-text-on-dark)}.food-pairings{width:100%;margin-bottom:var(--space-6);animation:fadeIn var(--duration-slow) var(--ease-out)}.food-pairings__title{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--text-primary);margin-bottom:var(--space-4)}.food-pairings__list{gap:var(--space-2);flex-wrap:wrap;display:flex}.food-pairings__pill{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-primary);background-color:var(--color-bg-subtle);border:1px solid var(--color-grey-border);border-radius:var(--card-border-radius);transition:var(--transition-all);word-break:break-word;max-width:100%;display:inline-flex}.food-pairings__pill:hover{background-color:var(--color-brand-white);border-color:var(--color-brand-charcoal)}.food-pairings__pill-icon{font-size:var(--text-base);line-height:1}.food-pairings__elegant-list{flex-direction:column;display:flex}.food-pairings__elegant-item{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;font-size:var(--text-base);color:var(--text-secondary);border-bottom:1px solid var(--color-cream-dark);display:flex}.food-pairings__elegant-item:last-child{border-bottom:none}.food-pairings__elegant-item:before{content:"";background-color:var(--color-text-linked);border-radius:50%;flex-shrink:0;width:4px;height:4px;display:block}.food-pairings__item-name{font-weight:var(--weight-medium);color:var(--text-primary)}.food-pairings__item-note{font-size:var(--text-sm);color:var(--text-muted);margin-left:auto;font-style:italic}@media (width<=480px){.food-pairings__list{gap:var(--space-2)}.food-pairings__pill{font-size:var(--text-xs);padding:var(--space-1) var(--space-3)}}.price-estimate{width:100%;padding-top:var(--space-6);border-top:1px solid var(--color-cream-dark);animation:fadeIn var(--duration-slow) var(--ease-out)}.price-estimate__title{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--text-primary);margin-bottom:var(--space-3)}.price-estimate__badge{align-items:baseline;gap:var(--space-1);padding:var(--space-3) var(--space-5);background:var(--color-bg-subtle);border:var(--card-border);border-radius:var(--card-border-radius);margin-bottom:var(--space-3);display:inline-flex}.price-estimate__currency{font-size:var(--text-lg);font-weight:var(--weight-medium);color:var(--text-primary)}.price-estimate__range{font-size:var(--font-size-price1);font-weight:var(--weight-normal);line-height:var(--line-height-price1);color:var(--text-primary);letter-spacing:0}.price-estimate__separator{font-size:var(--text-xl);color:var(--text-secondary);margin:0 var(--space-1)}.price-estimate__reasoning{font-size:var(--text-sm);color:var(--text-muted);font-style:italic;line-height:var(--leading-relaxed);padding-left:var(--space-4);border-left:2px solid var(--color-cream-dark)}.price-estimate__source{margin-top:var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;display:inline-block}@media (width<=480px){.price-estimate__range{font-size:var(--text-xl)}.price-estimate__badge{padding:var(--space-2) var(--space-4)}}.wine-result{border:var(--card-border);border-radius:var(--card-border-radius);background-color:var(--surface-card);width:100%;box-shadow:var(--shadow-lg);animation:fadeInUp var(--duration-slow) var(--ease-out);overflow:hidden}.wine-result__header{padding:var(--space-6) var(--space-6) var(--space-5);background:var(--color-bg-header);color:var(--text-inverse);text-align:center}.wine-result__name{font-size:var(--font-size-h2);font-weight:var(--font-weight-semibold);line-height:var(--line-height-h2);color:var(--color-text-on-dark);margin-bottom:var(--space-2)}.wine-result__vintage{font-size:var(--text-xl);font-weight:var(--weight-normal);color:var(--color-text-on-dark);letter-spacing:0}.wine-result__region{font-size:var(--text-sm);color:var(--color-text-on-dark);margin-top:var(--space-1)}.wine-result__body{padding:var(--space-6)}.wine-result__section{margin-bottom:var(--space-6)}.wine-result__section:last-child{margin-bottom:0}.wine-result__section-title{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--text-primary);margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-cream-dark)}.wine-result__section-text{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--text-secondary)}.wine-result__tasting-notes{gap:var(--space-3);grid-template-columns:1fr;display:grid}.wine-result__tasting-item{gap:var(--space-3);align-items:baseline;display:flex}.wine-result__tasting-label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em;min-width:80px}.wine-result__tasting-value{font-size:var(--text-base);color:var(--text-secondary)}.wine-result__confidence{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.08em;border-radius:var(--radius-full);display:inline-flex}.wine-result__confidence--high{background-color:color-mix(in srgb, var(--color-success) 12%, transparent);color:var(--color-success)}.wine-result__confidence--medium{background-color:color-mix(in srgb, var(--color-gray-medium) 12%, transparent);color:var(--color-gray-medium)}.wine-result__confidence--low{background-color:color-mix(in srgb, var(--color-danger) 10%, transparent);color:var(--color-danger)}.wine-result__confidence-dot{background-color:currentColor;border-radius:50%;width:6px;height:6px}.wine-result__fun-fact{padding:var(--space-5) var(--space-5);background-color:var(--color-gray-light);border-left:3px solid var(--color-text-linked);border-radius:0 var(--card-border-radius) var(--card-border-radius) 0;margin-top:var(--space-6);margin-bottom:var(--space-6);position:relative}.wine-result__fun-fact-label{font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.08em;color:var(--text-primary);margin-bottom:var(--space-2)}.wine-result__fun-fact-text{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--text-secondary);font-style:italic}.wine-result__divider{background:linear-gradient(to right, transparent, var(--color-cream-dark), transparent);height:1px;margin:var(--space-6) 0;border:none}.wine-result__detail-row{padding:var(--space-2) 0;border-bottom:1px solid var(--color-cream-dark);justify-content:space-between;align-items:baseline;display:flex}.wine-result__detail-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.wine-result__detail-value{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--text-primary);text-align:right}.wine-result__kl-section{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-cream-dark);text-align:center}.wine-result__kl-image{margin:var(--space-5) 0;justify-content:center;display:flex}.wine-result__kl-image img{object-fit:contain;border-radius:var(--radius-md);max-width:100%;max-height:280px;box-shadow:var(--shadow-md)}.wine-result__kl-placeholder{align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);background-color:var(--color-cream-dark);border-radius:var(--radius-lg);flex-direction:column;display:flex}.wine-result__kl-placeholder svg{opacity:.8;width:48px;height:auto}.wine-result__kl-placeholder-text{font-size:var(--text-sm);color:var(--text-muted);font-style:italic}.wine-result__kl-link{justify-content:center;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-5);font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text-on-dark);background-color:var(--color-burgundy);border-radius:var(--button-border-radius);text-align:center;transition:var(--transition-all);text-decoration:none;display:inline-flex}.wine-result__kl-link:hover{background-color:var(--color-burgundy-light);color:var(--color-text-on-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}@media (width>=480px){.wine-result__tasting-notes{grid-template-columns:1fr 1fr}}@media (width<=480px){.wine-result__header{padding:var(--space-5) var(--space-4) var(--space-4)}.wine-result__name{font-size:var(--text-xl)}.wine-result__body{padding:var(--space-4)}}.kl-match{background:var(--surface-card);border:var(--card-border);border-radius:var(--card-border-radius);box-shadow:var(--shadow-lg);animation:fadeInUp var(--duration-slow) var(--ease-out);overflow:hidden}.kl-match__header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--color-bg-header);display:flex}.kl-match__title{font-size:var(--text-lg);color:var(--color-text-on-dark);margin:0}.kl-match__confidence{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.kl-match__confidence--high{background:color-mix(in srgb, var(--color-success) 15%, transparent);color:var(--color-success)}.kl-match__confidence--medium{background:color-mix(in srgb, var(--color-gray-medium) 12%, transparent);color:var(--color-gray-medium)}.kl-match__confidence--low{background:color-mix(in srgb, var(--color-danger) 12%, transparent);color:var(--color-danger)}.kl-match__body{gap:var(--space-5);padding:var(--space-5);display:flex}.kl-match__image{flex-shrink:0;justify-content:center;align-items:flex-start;width:140px;display:flex}.kl-match__image img{object-fit:contain;border-radius:var(--radius-md);max-width:100%;max-height:220px}.kl-match__details{gap:var(--space-3);flex-direction:column;flex:1;display:flex}.kl-match__wine-name{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-primary);line-height:var(--leading-tight);margin:0}.kl-match__note{font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--text-secondary);margin:0}.kl-match__meta{gap:var(--space-2);flex-wrap:wrap;display:flex}.kl-match__tag{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-primary);background:var(--color-bg-subtle);border:1px solid var(--color-grey-border);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.kl-match__price-row{align-items:baseline;gap:var(--space-3);display:flex}.kl-match__price{font-size:var(--font-size-price2);font-weight:var(--weight-normal);line-height:var(--line-height-price2);color:var(--text-primary)}.kl-match__score{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-gray-medium);background:color-mix(in srgb, var(--color-gray-medium) 12%, transparent);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.kl-match__stock-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.04em;display:inline-block}.kl-match__stock-badge--in{background:color-mix(in srgb, var(--color-success) 10%, transparent);color:var(--color-success)}.kl-match__stock-badge--special{background:color-mix(in srgb, var(--color-warning) 12%, transparent);color:var(--color-warning)}.kl-match__stock-badge--out{background:color-mix(in srgb, var(--color-danger) 8%, transparent);color:var(--color-danger)}.kl-match__buy-btn{padding:var(--space-3) var(--space-5);font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text-on-dark);background:var(--color-burgundy);border-radius:var(--button-border-radius);text-align:center;transition:var(--transition-all);justify-content:center;align-items:center;margin-top:auto;text-decoration:none;display:inline-flex}.kl-match__buy-btn:hover{background:var(--color-burgundy-light);color:var(--color-text-on-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}@media (width<=480px){.kl-match__body{text-align:center;flex-direction:column;align-items:center}.kl-match__image{width:120px}.kl-match__meta,.kl-match__price-row{justify-content:center}.kl-match__stock{text-align:center}.kl-match__header{text-align:center;flex-direction:column}}.alternatives{width:100%;animation:fadeIn var(--duration-slow) var(--ease-out)}.alternatives__header{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--text-primary);margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-cream-dark)}.alternatives__subtitle{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-5)}.alternatives__grid{gap:var(--space-4);grid-template-columns:1fr;display:grid}@media (width>=540px){.alternatives__grid{grid-template-columns:repeat(2,1fr)}}@media (width>=768px){.alternatives__grid{grid-template-columns:repeat(3,1fr)}}.alternatives__card{padding:var(--space-4);background-color:var(--surface-card);border:1px solid var(--color-cream-dark);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:var(--transition-all);flex-direction:column;display:flex}.alternatives__card:hover{box-shadow:var(--shadow-card-hover);border-color:var(--color-gray-border);transform:translateY(-4px)}.alternatives__card-name{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text-linked);margin-bottom:var(--space-1);line-height:var(--leading-tight)}.alternatives__card-detail{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-2)}.alternatives__card-reason{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-normal);margin-bottom:var(--space-3);flex:1}.alternatives__card-image{width:100%;height:160px;margin-bottom:var(--space-3);background:var(--color-gray-light);border-radius:var(--radius-md);justify-content:center;align-items:center;display:flex;overflow:hidden}.alternatives__card-image img{object-fit:contain;max-width:100%;max-height:100%}.alternatives__card-price{font-size:var(--font-size-price2);font-weight:var(--weight-normal);line-height:var(--line-height-price2);color:var(--text-primary);margin-bottom:var(--space-2)}.alternatives__card-score{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-gray-medium);margin-bottom:var(--space-2)}.alternatives__card-stock{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-3);display:inline-block}.alternatives__card-stock--in{background:color-mix(in srgb, var(--color-success) 10%, transparent);color:var(--color-success)}.alternatives__card-stock--special{background:color-mix(in srgb, var(--color-warning) 12%, transparent);color:var(--color-warning)}.alternatives__card-stock--out{background:color-mix(in srgb, var(--color-danger) 8%, transparent);color:var(--color-danger)}.alternatives__search-link{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-on-dark);background-color:var(--color-burgundy);border-radius:var(--button-border-radius);transition:var(--transition-all);align-self:flex-start;margin-top:auto;text-decoration:none;display:inline-flex}.alternatives__search-link:hover{background-color:var(--color-burgundy-light);color:var(--color-text-on-dark);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.alternatives__search-link:active{transform:translateY(0)}.alternatives__empty{text-align:center;padding:var(--space-6);color:var(--text-muted);font-style:italic}.share-card{background-color:var(--color-bg-page);border-radius:var(--card-border-radius);width:600px;min-height:400px;box-shadow:var(--shadow-xl);font-family:var(--font-sans);flex-direction:column;display:flex;overflow:hidden}.share-card__header{padding:var(--space-6) var(--space-6) var(--space-4);background:var(--color-bg-header);text-align:center}.share-card__wine-name{font-size:var(--text-2xl);font-weight:var(--weight-semibold);color:var(--color-text-on-dark);margin-bottom:var(--space-1)}.share-card__vintage{font-size:var(--text-lg);color:var(--color-text-on-dark)}.share-card__region{font-size:var(--text-sm);color:var(--color-text-on-dark);margin-top:var(--space-1)}.share-card__body{padding:var(--space-5) var(--space-6);gap:var(--space-4);flex-direction:column;flex:1;display:flex}.share-card__detail-row{padding-bottom:var(--space-2);border-bottom:1px solid var(--color-cream-dark);justify-content:space-between;align-items:baseline;display:flex}.share-card__detail-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.share-card__detail-value{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--text-primary);text-align:right;max-width:60%}.share-card__tasting-note{font-size:var(--text-sm);color:var(--text-secondary);font-style:italic;line-height:var(--leading-relaxed);text-align:center;padding:var(--space-3);background-color:var(--color-bg-subtle);border-radius:var(--card-border-radius)}.share-card__footer{padding:var(--space-3) var(--space-6);background-color:var(--color-brand-charcoal);text-align:center}.share-card__watermark{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-on-dark);letter-spacing:.1em;text-transform:uppercase}.share-button{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-on-dark);background-color:var(--color-burgundy);border-radius:var(--button-border-radius);transition:var(--transition-all);display:inline-flex}.share-button:hover{background-color:var(--color-burgundy-light);color:var(--color-text-on-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}.share-button:active{box-shadow:var(--shadow-sm);transform:translateY(0)}.share-button__icon{width:16px;height:16px}.share-card--offscreen{position:absolute;top:-9999px;left:-9999px}@media (width<=640px){.share-card{width:100%;min-height:auto}}.scan-history{width:100%;animation:fadeIn var(--duration-slow) var(--ease-out)}.scan-history__header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.scan-history__title{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--text-primary)}.scan-history__clear-btn{padding:var(--space-2) var(--space-4);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-danger);border:1px solid var(--color-danger);border-radius:var(--button-border-radius);text-transform:uppercase;letter-spacing:.04em;transition:var(--transition-all);background-color:#0000}.scan-history__clear-btn:hover{background-color:var(--color-danger);color:var(--color-cream)}.scan-history__actions{align-items:center;gap:var(--space-2);display:flex}.scan-history__confirm-text{font-size:var(--text-xs);color:var(--text-secondary)}.scan-history__grid{gap:var(--space-3);grid-template-columns:1fr;display:grid}.scan-history__footer{margin-top:var(--space-4);justify-content:center;display:flex}.scan-history__toggle-btn{padding:var(--space-2) var(--space-4);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-burgundy);border:1px solid color-mix(in srgb, var(--color-burgundy) 45%, transparent);border-radius:var(--button-border-radius);text-transform:uppercase;letter-spacing:.04em;transition:var(--transition-all);background-color:#0000}.scan-history__toggle-btn:hover{color:var(--color-text-on-dark);background-color:var(--color-burgundy);border-color:var(--color-burgundy)}@media (width>=480px){.scan-history__grid{grid-template-columns:repeat(2,1fr)}}@media (width>=768px){.scan-history__grid{grid-template-columns:repeat(3,1fr)}}.scan-history__item{gap:var(--space-3);padding:var(--space-3);background-color:var(--surface-card);border:1px solid var(--color-cream-dark);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;transition:var(--transition-all);display:flex}.scan-history__item:hover{box-shadow:var(--shadow-card-hover);border-color:var(--color-brand-charcoal);transform:translateY(-2px)}.scan-history__thumbnail{border-radius:var(--radius-md);object-fit:cover;background-color:var(--color-cream-dark);flex-shrink:0;width:56px;height:56px}.scan-history__info{flex-direction:column;justify-content:center;min-width:0;display:flex}.scan-history__wine-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-linked);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.scan-history__date{font-size:var(--text-xs);color:var(--text-muted);margin-top:var(--space-1)}.scan-history__empty{text-align:center;padding:var(--space-10) var(--space-4);grid-column:1/-1}.scan-history__empty-icon{width:48px;height:48px;margin:0 auto var(--space-3);color:var(--text-muted);opacity:.4}.scan-history__empty-text{font-size:var(--text-sm);color:var(--text-muted);font-style:italic}
