:root{--ev-blue-700: #2A679E;--ev-blue-600: #2F6FB0;--ev-blue-500: #397DBE;--ev-blue-300: #84A8DC;--ev-blue-200: #AECAE2;--ev-blue-100: #E4ECF6;--ev-blue-50: #F2F6FC;--ev-ink: #38302D;--ev-paper: #F2F6FC;--ev-band: #E4ECF6;--ev-hairline: #D5DDE8;--ev-gray: #A6A9B4;--ev-cat-sparkling: #C9A227;--ev-cat-white: #D6C36B;--ev-cat-rose: #E08E86;--ev-cat-red: #7A2233;--ev-cat-dessert: #B4762A;--ev-cat-fortified: #6B3A1F;--ev-surface: #F2F6FC;--ev-surface-sunk: #E4ECF6;--ev-surface-card: #FFFFFF;--ev-text: #38302D;--ev-text-muted: #6A6873;--ev-rule: #D5DDE8;--ev-accent: #2F6FB0;--ev-accent-ink: #FFFFFF;--ev-confirm: #4E8F2C;--ev-warn: #B4762A;--ev-danger: #A33627;--ev-focus: var(--ev-accent)}[data-theme=cellar]{--ev-surface: #F2F6FC;--ev-surface-sunk: #E4ECF6;--ev-surface-card: #FFFFFF;--ev-text: #38302D;--ev-text-muted: #6A6873;--ev-rule: #D5DDE8;--ev-accent: #2F6FB0;--ev-accent-ink: #FFFFFF;--ev-confirm: #4E8F2C;--ev-warn: #B4762A;--ev-danger: #A33627;--ev-focus: var(--ev-accent)}[data-theme=table]{--ev-surface: #14110F;--ev-surface-sunk: #0F0C0B;--ev-surface-card: #1E1A17;--ev-text: #F2EDE7;--ev-text-muted: #9A918A;--ev-rule: #2E2823;--ev-accent: #7FB2E8;--ev-accent-ink: #14110F;--ev-confirm: #6FBF4A;--ev-warn: #D79A4E;--ev-danger: #D8735F;--ev-focus: var(--ev-accent)}[data-theme=table-light]{--ev-surface: #F2F6FC;--ev-surface-sunk: #E4ECF6;--ev-surface-card: #FFFFFF;--ev-text: #38302D;--ev-text-muted: #6A6873;--ev-rule: #D5DDE8;--ev-accent: #2F6FB0;--ev-accent-ink: #FFFFFF;--ev-confirm: #4E8F2C;--ev-warn: #B4762A;--ev-danger: #A33627;--ev-focus: var(--ev-accent)}:root{--ev-font-display: "Fraunces", "Playfair Display", Georgia, "Times New Roman", serif;--ev-font-body: "Instrument Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--ev-font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--ev-display-xl: 40px;--ev-display-xl-lh: 44px;--ev-display-l: 28px;--ev-display-l-lh: 32px;--ev-display-m: 20px;--ev-display-m-lh: 26px;--ev-body: 15px;--ev-body-lh: 22px;--ev-body-s: 13px;--ev-body-s-lh: 19px;--ev-label: 11px;--ev-label-lh: 14px;--ev-data: 15px;--ev-data-lh: 20px;--ev-data-s: 12px;--ev-data-s-lh: 16px;--ev-weight-regular: 400;--ev-weight-medium: 500;--ev-weight-semibold: 600;--ev-tracking-label: .08em;--ev-tracking-tight: -.01em;--ev-body-min: 15px}:root{--ev-space-0: 0;--ev-space-1: 4px;--ev-space-2: 8px;--ev-space-3: 12px;--ev-space-4: 16px;--ev-space-5: 20px;--ev-space-6: 24px;--ev-space-8: 32px;--ev-space-10: 40px;--ev-space-12: 48px;--ev-space-16: 64px;--ev-section: 24px;--ev-radius-xs: 3px;--ev-radius-sm: 6px;--ev-radius-md: 10px;--ev-radius-lg: 14px;--ev-radius-circle: 50%;--ev-hairline-w: 1px;--ev-stroke-w: 1.5px;--ev-focus-w: 2px;--ev-content-max: 34rem;--ev-pour-rail: 88px;--ev-tap-min: 44px;--ev-table-bar: 56px;--ev-thumb: 40px}:root{--ev-dur-instant: 0ms;--ev-dur-cat: .16s;--ev-dur-row: .22s;--ev-dur-publish: .4s;--ev-ease-standard: cubic-bezier(.2, 0, 0, 1);--ev-ease-row: cubic-bezier(.2, 0, 0, 1)}@media (prefers-reduced-motion: reduce){:root{--ev-dur-cat: 0ms;--ev-dur-row: 0ms;--ev-dur-publish: 0ms}}:root{--ev-shadow-none: none;--ev-shadow-overlay: 0 1px 2px rgba(56, 48, 45, .08), 0 8px 24px rgba(56, 48, 45, .12);--ev-shadow-toast: 0 2px 6px rgba(56, 48, 45, .14), 0 16px 40px rgba(56, 48, 45, .2)}[data-theme=table]{--ev-shadow-overlay: 0 1px 2px rgba(0, 0, 0, .4), 0 10px 30px rgba(0, 0, 0, .55);--ev-shadow-toast: 0 2px 8px rgba(0, 0, 0, .45), 0 18px 48px rgba(0, 0, 0, .6)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--ev-surface);color:var(--ev-text);font-family:var(--ev-font-body);font-size:var(--ev-body);line-height:var(--ev-body-lh);-webkit-font-smoothing:antialiased}#root{min-height:100dvh}.shell{max-width:var(--ev-content-max);margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}.screen{flex:1;padding:0 var(--ev-space-5);animation:fadein var(--ev-dur-cat) var(--ev-ease-standard)}@keyframes fadein{0%{opacity:0}to{opacity:1}}.display-xl{font-family:var(--ev-font-display);font-style:italic;font-weight:var(--ev-weight-regular);font-size:var(--ev-display-xl);line-height:var(--ev-display-xl-lh);letter-spacing:var(--ev-tracking-tight)}.display-l{font-family:var(--ev-font-display);font-style:italic;font-weight:var(--ev-weight-regular);font-size:var(--ev-display-l);line-height:var(--ev-display-l-lh)}.display-m{font-family:var(--ev-font-display);font-weight:var(--ev-weight-regular);font-size:var(--ev-display-m);line-height:var(--ev-display-m-lh)}.label{font-size:var(--ev-label);line-height:var(--ev-label-lh);font-weight:var(--ev-weight-medium);letter-spacing:var(--ev-tracking-label);text-transform:uppercase;color:var(--ev-text-muted)}.data{font-family:var(--ev-font-mono);font-size:var(--ev-data);line-height:var(--ev-data-lh);font-variant-numeric:tabular-nums}.muted{color:var(--ev-text-muted)}.small{font-size:var(--ev-body-s);line-height:var(--ev-body-s-lh)}.home-hero{text-align:center;padding-top:var(--ev-space-12)}.seal{width:72px;height:72px;border-radius:var(--ev-radius-circle);border:var(--ev-hairline-w) solid var(--ev-rule);display:inline-flex;align-items:center;justify-content:center;font-family:var(--ev-font-display);font-style:italic;font-size:34px;color:var(--ev-text)}.tagline{font-family:var(--ev-font-display);font-style:italic;font-size:15px;color:var(--ev-text-muted);margin:var(--ev-space-4) 0 var(--ev-space-5)}.home-sub{color:var(--ev-text-muted);max-width:30rem;margin:var(--ev-space-4) auto var(--ev-space-6)}.searchbar{display:flex;align-items:center;gap:var(--ev-space-2);background:var(--ev-surface-card);border:var(--ev-hairline-w) solid var(--ev-rule);border-radius:var(--ev-radius-sm);padding:0 var(--ev-space-4);min-height:var(--ev-tap-min)}.searchbar input{flex:1;background:none;border:none;outline:none;color:var(--ev-text);font-family:var(--ev-font-body);font-size:var(--ev-body);min-height:var(--ev-tap-min)}.searchbar input::placeholder{color:var(--ev-text-muted)}.searchbar:focus-within{outline:var(--ev-focus-w) solid var(--ev-focus);outline-offset:2px}.search-wrap{position:relative}.typeahead{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:20;background:var(--ev-surface-card);border:var(--ev-hairline-w) solid var(--ev-rule);border-radius:var(--ev-radius-sm);box-shadow:var(--ev-shadow-overlay);overflow:hidden;text-align:left}.typeahead-item{display:flex;flex-direction:column;gap:1px;width:100%;background:none;border:none;cursor:pointer;text-align:left;padding:var(--ev-space-3) var(--ev-space-4);border-bottom:var(--ev-hairline-w) solid var(--ev-rule);color:var(--ev-text);font-family:var(--ev-font-body);font-size:var(--ev-body);min-height:var(--ev-tap-min)}.typeahead-item:last-child{border-bottom:none}.typeahead-item:active{background:var(--ev-surface-sunk)}.typeahead-name{font-weight:var(--ev-weight-medium)}.typeahead-loc{font-size:var(--ev-body-s);color:var(--ev-text-muted)}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--ev-space-3);margin-top:var(--ev-space-4)}.mode-card{display:flex;align-items:center;gap:var(--ev-space-3);background:var(--ev-surface-card);border:var(--ev-hairline-w) solid var(--ev-rule);border-radius:var(--ev-radius-sm);padding:var(--ev-space-4);min-height:var(--ev-tap-min);color:var(--ev-text);font-size:var(--ev-body-s);font-weight:var(--ev-weight-medium);cursor:pointer;text-align:left}.mode-card:active{opacity:.8}.mode-card svg{flex-shrink:0;color:var(--ev-text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--ev-space-2);min-height:var(--ev-tap-min);padding:0 var(--ev-space-5);border-radius:var(--ev-radius-sm);font-family:var(--ev-font-body);font-size:var(--ev-body);font-weight:var(--ev-weight-medium);border:var(--ev-hairline-w) solid transparent;cursor:pointer;transition:opacity var(--ev-dur-cat) var(--ev-ease-standard)}.btn:focus-visible{outline:var(--ev-focus-w) solid var(--ev-focus);outline-offset:2px}.btn:disabled{opacity:.45;cursor:default}.btn-primary{background:var(--ev-accent);color:var(--ev-accent-ink)}.btn-secondary{background:transparent;color:var(--ev-text);border-color:var(--ev-rule)}.btn-text{background:none;color:var(--ev-accent);border:none;padding:0 var(--ev-space-2)}.card{background:var(--ev-surface-card);border:var(--ev-hairline-w) solid var(--ev-rule);border-radius:var(--ev-radius-md);padding:var(--ev-space-5)}.section-head{display:flex;align-items:baseline;gap:var(--ev-space-2);margin:var(--ev-space-8) 0 var(--ev-space-2);padding-bottom:var(--ev-space-2);border-bottom:var(--ev-hairline-w) solid var(--ev-rule)}.cat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;align-self:center}.wine-row{padding:var(--ev-space-4) 0;border-bottom:var(--ev-hairline-w) solid var(--ev-rule)}.wine-row:last-child{border-bottom:none}.wine-top{display:flex;justify-content:space-between;align-items:baseline;gap:var(--ev-space-3)}.wine-name{font-family:var(--ev-font-display);font-size:var(--ev-display-m);line-height:var(--ev-display-m-lh)}.wine-vintage{font-family:var(--ev-font-mono);font-size:var(--ev-data-s);color:var(--ev-text-muted);margin-left:var(--ev-space-2)}.wine-price{font-family:var(--ev-font-mono);font-size:17px;font-weight:var(--ev-weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap}.wine-why{margin:var(--ev-space-2) 0 0}.wine-meta{margin:var(--ev-space-2) 0 0;color:var(--ev-text-muted);font-size:var(--ev-body-s);line-height:var(--ev-body-s-lh)}.wine-flag{color:var(--ev-warn);font-size:var(--ev-body-s);margin-top:var(--ev-space-1)}.conf-low{color:var(--ev-text-muted)}.res-head{padding-top:var(--ev-space-6)}.res-head-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--ev-space-3)}.res-stats{font-family:var(--ev-font-mono);font-size:var(--ev-data-s);line-height:var(--ev-data-s-lh);color:var(--ev-text-muted);margin:6px 0 0;font-variant-numeric:tabular-nums}.res-profileline{color:var(--ev-text-muted);font-size:var(--ev-body-s);margin:2px 0 0}.res-footnote{font-family:var(--ev-font-mono);font-size:var(--ev-data-s);color:var(--ev-text-muted);margin:var(--ev-space-8) 0 var(--ev-space-6)}.section-head.cat-rule{border-bottom-width:var(--ev-stroke-w);border-bottom-style:solid}.wrow{padding:var(--ev-space-4) 0;border-bottom:var(--ev-hairline-w) solid var(--ev-rule)}.wrow:last-child{border-bottom:none}.wrow-main{display:flex;align-items:flex-start;gap:var(--ev-space-3);width:100%;background:none;border:none;cursor:pointer;text-align:left;padding:0;color:var(--ev-text);font-family:var(--ev-font-body)}.wrow-avatar{width:38px;height:38px;border-radius:var(--ev-radius-circle);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;font-family:var(--ev-font-display);font-size:13px;font-weight:var(--ev-weight-medium);color:#14110fb8;margin-top:2px}.wrow-body{flex:1;min-width:0}.wrow-title{display:block}.wrow-vintage{font-family:var(--ev-font-mono);font-size:var(--ev-data-s);color:var(--ev-text-muted);margin-right:var(--ev-space-2);font-variant-numeric:tabular-nums}.wrow-name{font-family:var(--ev-font-display);font-size:19px;line-height:24px}.wrow-origin{display:block;font-size:var(--ev-body-s);line-height:var(--ev-body-s-lh);color:var(--ev-text-muted);margin-top:2px}.wrow-price{display:flex;flex-direction:column;align-items:flex-end;gap:1px;flex-shrink:0}.wrow-glass{font-family:var(--ev-font-mono);font-size:var(--ev-data-s);color:var(--ev-text-muted);font-variant-numeric:tabular-nums}.wrow-why{margin:var(--ev-space-2) 0 0 calc(38px + var(--ev-space-3))}.wrow-badges{display:flex;align-items:center;gap:var(--ev-space-3);margin:var(--ev-space-2) 0 0 calc(38px + var(--ev-space-3));min-height:18px;flex-wrap:wrap}.value-tag{font-size:var(--ev-label);line-height:var(--ev-label-lh);font-weight:var(--ev-weight-medium);letter-spacing:var(--ev-tracking-label);text-transform:uppercase;color:var(--ev-text-muted)}.value-tag.accent{color:var(--ev-accent)}.match{display:inline-flex;align-items:center;gap:var(--ev-space-2)}.match-dots{display:inline-flex;gap:3px}.match-dot{width:6px;height:6px;border-radius:50%;background:var(--ev-rule)}.match-dot.on{background:var(--ev-accent)}.match-label{font-size:var(--ev-body-s);color:var(--ev-text-muted)}.wrow-content{margin:var(--ev-space-2) 0 0 calc(38px + var(--ev-space-3))}.wrow-detail{padding-left:calc(38px + var(--ev-space-3));padding-top:var(--ev-space-2)}.wrow-kv{margin:0 0 var(--ev-space-1);font-size:var(--ev-body-s);line-height:var(--ev-body-s-lh);color:var(--ev-text)}.wrow-scores{font-family:var(--ev-font-mono);font-size:var(--ev-data-s);color:var(--ev-text-muted);margin:var(--ev-space-2) 0;font-variant-numeric:tabular-nums}.wtable-row{border-bottom:var(--ev-hairline-w) solid var(--ev-rule)}.wtable-row:last-child{border-bottom:none}.wtable-head{display:flex;align-items:baseline;gap:var(--ev-space-2);width:100%;background:none;border:none;cursor:pointer;text-align:left;padding:var(--ev-space-3) 0 0;color:var(--ev-text);font-family:var(--ev-font-body);min-height:var(--ev-tap-min)}.wtable-head svg{align-self:center}.wtable-name{flex:1;min-width:0}.wtable-name .wine-name{overflow-wrap:break-word}.wtable-price{display:flex;flex-direction:column;align-items:flex-end;gap:0}.wtable-pricenote{font-size:var(--ev-label);letter-spacing:var(--ev-tracking-label);text-transform:uppercase;color:var(--ev-warn)}.wtable-sub{padding:0 0 var(--ev-space-3) calc(16px + var(--ev-space-2));color:var(--ev-text-muted);font-size:var(--ev-body-s);line-height:var(--ev-body-s-lh)}.wtable-rated{color:var(--ev-accent)}.wtable-detail{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--ev-dur-row) var(--ev-ease-row)}.wtable-detail.open{grid-template-rows:1fr}.wtable-detail-inner{overflow:hidden;min-height:0;padding:0 0 0 calc(16px + var(--ev-space-2))}.wtable-detail.open .wtable-detail-inner{padding-bottom:var(--ev-space-4)}.chat-log{display:flex;flex-direction:column;gap:var(--ev-space-4);padding:var(--ev-space-5) 0}.msg-user{align-self:flex-end;max-width:85%;background:var(--ev-surface-sunk);border-radius:var(--ev-radius-md);padding:var(--ev-space-3) var(--ev-space-4);white-space:pre-wrap}.msg-somm{align-self:stretch;white-space:pre-wrap}.chat-inputbar{position:fixed;left:0;right:0;bottom:calc(56px + env(safe-area-inset-bottom,0px));background:var(--ev-surface);border-top:var(--ev-hairline-w) solid var(--ev-rule);padding:var(--ev-space-3) var(--ev-space-5)}.chat-inputbar .inner{display:flex;gap:var(--ev-space-2);max-width:var(--ev-content-max);margin:0 auto}.chat-inputbar textarea{flex:1;resize:none;background:var(--ev-surface-card);border:var(--ev-hairline-w) solid var(--ev-rule);border-radius:var(--ev-radius-sm);color:var(--ev-text);font-family:var(--ev-font-body);font-size:var(--ev-body);padding:var(--ev-space-3) var(--ev-space-4);min-height:var(--ev-tap-min);max-height:120px}.chat-inputbar textarea:focus{outline:var(--ev-focus-w) solid var(--ev-focus);outline-offset:2px}.chips{display:flex;gap:var(--ev-space-2);flex-wrap:wrap;margin-top:var(--ev-space-4)}.chip{border:var(--ev-hairline-w) solid var(--ev-rule);border-radius:var(--ev-radius-sm);background:none;color:var(--ev-text);padding:var(--ev-space-2) var(--ev-space-3);font-size:var(--ev-body-s);cursor:pointer;min-height:36px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:40}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:41;background:var(--ev-surface-card);border-top-left-radius:var(--ev-radius-lg);border-top-right-radius:var(--ev-radius-lg);box-shadow:var(--ev-shadow-toast);padding:var(--ev-space-6) var(--ev-space-5) calc(var(--ev-space-6) + env(safe-area-inset-bottom,0px));max-width:var(--ev-content-max);margin:0 auto;max-height:80dvh;overflow-y:auto}.field{margin-bottom:var(--ev-space-5)}.field label{display:block;margin-bottom:var(--ev-space-2)}.field input[type=text],.field textarea,.field select{width:100%;background:var(--ev-surface);border:var(--ev-hairline-w) solid var(--ev-rule);border-radius:var(--ev-radius-sm);color:var(--ev-text);font-family:var(--ev-font-body);font-size:var(--ev-body);padding:var(--ev-space-3) var(--ev-space-4);min-height:var(--ev-tap-min)}.field input:focus,.field textarea:focus,.field select:focus{outline:var(--ev-focus-w) solid var(--ev-focus);outline-offset:2px}.seg{display:flex;flex-wrap:wrap;gap:var(--ev-space-2)}.seg button{border:var(--ev-hairline-w) solid var(--ev-rule);background:none;color:var(--ev-text);border-radius:var(--ev-radius-sm);padding:var(--ev-space-2) var(--ev-space-4);min-height:40px;font-size:var(--ev-body-s);cursor:pointer}.seg button.on{background:var(--ev-accent);color:var(--ev-accent-ink);border-color:var(--ev-accent)}.rate{display:flex;gap:var(--ev-space-2);margin-top:var(--ev-space-2)}.rate button{border:var(--ev-hairline-w) solid var(--ev-rule);background:none;color:var(--ev-text-muted);border-radius:var(--ev-radius-sm);padding:var(--ev-space-1) var(--ev-space-3);font-size:var(--ev-label);letter-spacing:var(--ev-tracking-label);text-transform:uppercase;min-height:32px;cursor:pointer}.rate button.on{border-color:var(--ev-accent);color:var(--ev-accent)}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--ev-surface);border-top:var(--ev-hairline-w) solid var(--ev-rule);padding-bottom:env(safe-area-inset-bottom,0px)}.tabbar .inner{display:flex;max-width:var(--ev-content-max);margin:0 auto}.tab{flex:1;min-height:56px;background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--ev-text-muted);font-family:var(--ev-font-body);font-size:var(--ev-label);letter-spacing:var(--ev-tracking-label);text-transform:uppercase}.tab.on{color:var(--ev-text)}.tab svg{width:20px;height:20px}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(72px + env(safe-area-inset-bottom,0px));z-index:60;background:var(--ev-surface-card);color:var(--ev-text);border:var(--ev-hairline-w) solid var(--ev-rule);border-radius:var(--ev-radius-sm);padding:var(--ev-space-3) var(--ev-space-5);box-shadow:var(--ev-shadow-toast);animation:fadein var(--ev-dur-cat) var(--ev-ease-standard);max-width:90vw}.finding{text-align:center;padding:var(--ev-space-16) var(--ev-space-6);color:var(--ev-text-muted)}.finding .spin{width:28px;height:28px;margin:0 auto var(--ev-space-4);border:1.5px solid var(--ev-rule);border-top-color:var(--ev-accent);border-radius:50%;animation:rot .9s linear infinite}@keyframes rot{to{transform:rotate(360deg)}}.divider{border:none;border-top:var(--ev-hairline-w) solid var(--ev-rule);margin:var(--ev-space-6) 0}.footnote{color:var(--ev-text-muted);font-size:var(--ev-data-s);line-height:1.5;padding:var(--ev-space-8) 0 var(--ev-space-6);text-align:center}@media (prefers-reduced-motion: reduce){.screen,.toast{animation:none}.finding .spin{animation-duration:2s}}
