:root{--bg: #f6f7f9;--surface: #ffffff;--surface-2: #f3f5f8;--ink: #1f2933;--ink-soft: #52606d;--ink-faint: #646f7c;--line: #e4e7eb;--line-soft: #eceef1;--accent: #1a7f56;--accent-ink: #0f5c3d;--accent-teal: #0e9488;--accent-teal-text: #0d7d72;--accent-grad: linear-gradient(135deg, #1a7f56 0%, #0d7d72 100%);--accent-grad-vivid: linear-gradient(135deg, #1a7f56 0%, #0e9488 100%);--accent-tint: #e8f5ee;--accent-tint-2: #f3f9f5;--accent-line: #bfe3cf;--fill: #f0f2f4;--fill-hover: #e4e7eb;--line-strong: #cbd2d9;--shadow-sm: 0 1px 2px rgba(15, 23, 32, .05), 0 2px 8px rgba(15, 23, 32, .06);--shadow: 0 1px 2px rgba(15, 23, 32, .06), 0 6px 16px rgba(15, 23, 32, .08), 0 16px 40px rgba(15, 23, 32, .07);--shadow-md: 0 2px 4px rgba(15, 23, 32, .07), 0 10px 24px rgba(15, 23, 32, .1), 0 24px 56px rgba(15, 23, 32, .09);--radius: 14px;--radius-sm: 10px;--space-3xs: 2px;--space-2xs: 4px;--space-xs: 6px;--space-sm: 8px;--space-md: 10px;--space-lg: 12px;--space-xl: 14px;--space-2xl: 16px;--space-3xl: 18px;--space-4xl: 20px;--space-5xl: 24px;--fs-2xs: 10px;--fs-xs: 11px;--fs-sm: 12px;--fs-md: 13px;--fs-base: 14px;--fs-lg: 15px;--fs-xl: 16px;--fs-2xl: 18px;--fs-hero: 44px;--tracking-tight: -.012em;--tracking-hero: -.025em;--tracking-eyebrow: .05em;--lh-none: 1;--lh-tight: 1.2;--lh-snug: 1.3;--lh-body: 1.5;--fw-normal: 400;--fw-medium: 600;--fw-bold: 700;--fw-heavy: 800;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-rounded: ui-rounded, "SF Pro Rounded", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;font-family:var(--font-sans)}.brand__name,.legend__type,.top-zones__rank,.top-zones__chip,.top-zones__count,.legend__ticks,.panel__index-value,.panel__index-unit,.panel__metric-value,.compare__table td,.compare__unit,.diet-cov,.blend__slider-value{font-variant-numeric:tabular-nums}*{box-sizing:border-box}.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}html,body,#root{margin:0;padding:0;height:100%;width:100%}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.app{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}.map-container{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.controls{position:absolute;top:16px;left:16px;z-index:5;width:288px;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:var(--space-lg)}@media (min-width: 721px){.controls{max-height:calc(100vh - 32px);overflow-y:auto;overscroll-behavior:contain}}.controls__body{display:flex;flex-direction:column;gap:var(--space-lg)}.controls__toggle{display:none}.brand{display:flex;align-items:center;gap:11px;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:11px 14px}.brand__mark{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:0 0 auto;border-radius:10px;background:var(--accent-grad-vivid);box-shadow:0 1px 2px #0f17202e,inset 0 1px #ffffff40;font-size:var(--fs-2xl);line-height:var(--lh-none)}.brand__text{display:flex;flex-direction:column}.brand__name{font-family:var(--font-rounded);font-weight:var(--fw-bold);font-size:var(--fs-xl);letter-spacing:var(--tracking-tight)}.brand__sub{font-size:var(--fs-sm);color:var(--ink-faint)}.type-switch{display:flex;gap:var(--space-xs);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:var(--space-xs)}.type-switch__btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-3xs);padding:9px 4px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--ink-soft);cursor:pointer;font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease}.type-switch__btn:hover{background:var(--fill)}.type-switch__btn.is-active{background:var(--accent-grad);color:#fff;border-color:transparent;box-shadow:0 1px 2px #0f17202e,inset 0 1px #fff3}.type-switch__emoji{font-size:var(--fs-2xl);line-height:var(--lh-none)}.ai-toggle{display:flex;align-items:center;gap:var(--space-md);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:var(--space-lg) var(--space-xl);cursor:pointer}.ai-toggle input{position:absolute;opacity:0;width:0;height:0}.ai-toggle__switch{flex:0 0 auto;position:relative;width:36px;height:20px;border-radius:999px;background:var(--line-strong);transition:background .15s ease}.ai-toggle__switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000040;transition:transform .15s ease}.ai-toggle input:checked+.ai-toggle__switch{background:var(--accent-grad-vivid)}.ai-toggle input:checked+.ai-toggle__switch:after{transform:translate(16px)}.ai-toggle input:focus-visible+.ai-toggle__switch{outline:2px solid var(--accent);outline-offset:2px}.lens-select__note code,.blend__note code,.legend__footnote code,.panel__disclaimer code{background:var(--surface-2);padding:0 var(--space-2xs);border-radius:4px;font-size:.92em}.lens-select{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:var(--space-lg) var(--space-xl)}.lens-select__label{display:block;font-weight:var(--fw-medium);font-size:var(--fs-md);color:var(--ink);margin-bottom:var(--space-xs)}.lens-select__control{width:100%;-moz-appearance:none;appearance:none;-webkit-appearance:none;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink);font:inherit;font-size:var(--fs-md);font-weight:var(--fw-medium);padding:var(--space-sm) var(--space-lg);cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path fill='%237b8794' d='M2 4l4 4 4-4z'/></svg>");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px}.lens-select__control:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lens-select__note{margin:var(--space-md) 0 0;font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--ink-faint)}.blend{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:var(--space-lg) var(--space-xl)}.blend__head{display:flex;align-items:center;gap:var(--space-xs)}.blend__title{margin:0 0 var(--space-3xs);font-weight:var(--fw-medium);font-size:var(--fs-md);color:var(--ink)}.blend__info-btn{flex:0 0 auto;width:18px;height:18px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink-faint);font-family:var(--font-sans);font-style:italic;font-weight:var(--fw-bold);font-size:var(--fs-sm);line-height:var(--lh-none);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.blend__info-btn:hover{border-color:var(--accent);color:var(--accent-ink)}.blend__info-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.blend__info{margin:0 0 var(--space-sm);font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--ink-soft);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-md) var(--space-lg)}.blend__lead{margin:0 0 var(--space-sm);font-size:var(--fs-sm);color:var(--ink-faint)}.blend__presets{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.blend__preset{flex:1 1 auto;padding:var(--space-xs) var(--space-sm);border:1px solid transparent;border-radius:var(--radius-sm);background:var(--fill);color:var(--ink-soft);cursor:pointer;font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);white-space:nowrap;transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease}.blend__preset:hover{background:var(--fill-hover)}.blend__preset.is-active{background:var(--accent-grad);color:#fff;border-color:transparent;box-shadow:0 1px 2px #0f17202e,inset 0 1px #fff3}.blend__customize{margin-top:var(--space-md);display:flex;align-items:center;justify-content:space-between;width:100%;border:1px solid var(--line);background:var(--surface);color:var(--accent-ink);font:inherit;font-size:var(--fs-md);font-weight:var(--fw-medium);cursor:pointer;padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-sm);transition:background .15s ease,border-color .15s ease}.blend__customize:hover{background:var(--fill);border-color:var(--line-strong)}.blend__customize-icon{flex:0 0 auto;width:16px;text-align:center;color:var(--accent-ink);font-size:var(--fs-2xl);font-weight:var(--fw-medium);line-height:var(--lh-none)}.blend__sliders{margin-top:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-sm)}.blend__slider{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--space-2xs) var(--space-sm);font-size:var(--fs-sm);color:var(--ink-soft)}.blend__slider-label{font-weight:var(--fw-medium)}.blend__slider input[type=range]{grid-column:1 / 3;width:100%;accent-color:var(--accent);cursor:pointer}.blend__slider-value{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--ink)}.blend__reset{margin-top:var(--space-3xs);align-self:flex-start;border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);border-radius:999px;padding:5px 12px;font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer}.blend__reset:hover{background:var(--fill);color:var(--ink)}.blend__preset:focus-visible,.blend__customize:focus-visible,.blend__reset:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.blend__note{margin:var(--space-md) 0 0;font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--ink-faint)}.share-btn{margin-left:auto;flex:0 0 auto;border:1px solid var(--line);background:var(--surface);color:var(--accent-ink);border-radius:999px;padding:5px 12px;font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.share-btn:hover{background:var(--accent-tint);border-color:var(--accent-line)}.share-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ai-toggle__text{display:flex;flex-direction:column;font-weight:var(--fw-medium);font-size:var(--fs-md)}.ai-toggle__hint{font-weight:var(--fw-normal);font-size:var(--fs-xs);color:var(--ink-faint)}.legend{position:absolute;bottom:16px;left:16px;z-index:4;width:288px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-xl) var(--space-2xl);transition:box-shadow .18s ease,transform .18s ease}.legend:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.legend__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-sm)}.legend__title{display:flex;flex-direction:column;gap:1px;min-width:0}.legend__eyebrow{font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--ink-faint)}.legend__type{font-size:var(--fs-lg);font-weight:var(--fw-bold);line-height:var(--lh-tight);color:var(--ink);letter-spacing:var(--tracking-tight);overflow-wrap:break-word}.legend__badge{flex:0 0 auto;margin-top:1px;font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--accent-ink);background:var(--accent-tint);border:1px solid var(--accent-line);border-radius:999px;padding:var(--space-3xs) var(--space-sm);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);white-space:nowrap}.legend__scale{margin-top:var(--space-md)}.legend__bar{display:block;height:10px;border-radius:6px;background:linear-gradient(90deg,#d73027,#fc8d59,#fee08b,#91cf60,#1a9850)}.legend__ticks{display:flex;justify-content:space-between;font-size:var(--fs-xs);color:var(--ink-faint);margin-top:5px}.legend__nodata{display:flex;align-items:center;gap:7px;margin-top:var(--space-md);font-size:var(--fs-sm);color:var(--ink-faint)}.legend__nodata-swatch{width:14px;height:14px;border-radius:4px;background:#cfd3d8;flex:0 0 auto}.legend__hint{margin:var(--space-md) 0 0;font-size:var(--fs-sm);color:var(--ink-soft)}.legend__footnote{margin:var(--space-sm) 0 0;font-size:var(--fs-xs);line-height:var(--lh-body);color:var(--ink-faint);border-top:1px solid var(--line);padding-top:var(--space-sm)}.panel{position:absolute;top:16px;right:16px;bottom:16px;z-index:12;width:340px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:var(--space-3xl) var(--space-4xl);overflow-y:auto;-webkit-overflow-scrolling:touch}.panel__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-lg)}.panel__heading{min-width:0}.panel__eyebrow{font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--accent-ink)}.panel__id{font-size:var(--fs-sm);color:var(--ink-faint);margin-top:var(--space-3xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel__actions{display:flex;align-items:center;gap:var(--space-xs);flex:0 0 auto}.panel__action{border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);height:30px;padding:0 var(--space-lg);border-radius:999px;font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.panel__action:hover{background:var(--fill);color:var(--ink);border-color:var(--line-strong)}.panel__close{border:none;background:var(--fill);color:var(--ink-soft);width:30px;height:30px;border-radius:50%;font-size:var(--fs-2xl);line-height:var(--lh-none);cursor:pointer;flex:0 0 auto;transition:background .15s ease,color .15s ease}.panel__close:hover{background:var(--fill-hover);color:var(--ink)}.panel__action:focus-visible,.panel__close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.panel__print-header{display:none}.panel__index{margin-top:var(--space-xl);padding:var(--space-2xl) var(--space-3xl);background:linear-gradient(135deg,var(--accent-tint),var(--accent-tint-2));border-radius:var(--radius-sm);border:1px solid var(--accent-line)}.panel__index-value{font-family:var(--font-rounded);font-size:var(--fs-hero);font-weight:var(--fw-heavy);line-height:var(--lh-none);color:var(--accent-ink);letter-spacing:var(--tracking-hero);background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.panel__index-value--muted{color:var(--ink-faint);background:none;-webkit-text-fill-color:currentColor}.panel__index-unit{font-size:var(--fs-xl);font-weight:var(--fw-medium);color:var(--ink-faint);margin-left:var(--space-2xs);-webkit-text-fill-color:currentColor;background:none;letter-spacing:0}.panel__index-note{margin-top:var(--space-xs);font-size:var(--fs-sm);color:var(--ink-soft)}.panel__section{margin-top:var(--space-3xl)}.panel__section-title{margin:0 0 var(--space-sm);font-size:var(--fs-sm);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--ink-faint)}.panel__metrics{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px;background:var(--line);border-radius:var(--radius-sm);overflow:hidden}.panel__metric{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-lg);padding:9px 12px;background:var(--surface)}.panel__metric-label{font-size:var(--fs-md);color:var(--ink-soft)}.panel__metric-value{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--ink);white-space:nowrap}.panel__metric-suffix{font-size:var(--fs-xs);font-weight:var(--fw-normal);color:var(--ink-faint);margin-left:var(--space-3xs)}.panel__why{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-lg) var(--space-xl)}.panel__why-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.panel__why .panel__section-title{margin:0}.panel__why-text{margin:var(--space-sm) 0 0;font-size:var(--fs-base);line-height:var(--lh-body);color:var(--ink)}.panel__ai-status{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:var(--fs-xs);color:var(--ink-faint)}.panel__ai-badge{font-size:var(--fs-2xs);font-weight:var(--fw-heavy);letter-spacing:var(--tracking-eyebrow);color:#5b3fb0;background:#efe9fb;border-radius:999px;padding:2px 7px}.panel__spinner{width:12px;height:12px;border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.panel__disclaimer{margin:var(--space-2xl) 0 0;font-size:var(--fs-xs);line-height:var(--lh-body);color:var(--ink-faint);border-top:1px solid var(--line);padding-top:var(--space-lg)}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:var(--space-5xl);background:#f6f7f9d1;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.overlay__card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 26px;max-width:380px;text-align:center}.overlay__title{margin:var(--space-xl) 0 0;font-size:var(--fs-2xl);font-weight:var(--fw-bold)}.overlay__text{margin:var(--space-sm) 0 0;font-size:var(--fs-base);line-height:var(--lh-body);color:var(--ink-soft)}.overlay__spinner{display:inline-block;width:34px;height:34px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}.overlay__retry{margin-top:var(--space-3xl);border:none;background:var(--accent-grad);color:#fff;font:inherit;font-weight:var(--fw-medium);font-size:var(--fs-base);padding:10px 22px;border-radius:var(--radius-sm);cursor:pointer;box-shadow:0 1px 2px #0f17202e,inset 0 1px #fff3;transition:filter .15s ease}.overlay__retry:hover{filter:brightness(.94)}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 720px){.controls{width:calc(100vw - 24px);max-width:none;top:12px;left:12px;gap:8px}.controls__toggle{display:inline-flex;align-items:center;justify-content:center;margin-left:auto;min-height:40px;padding:0 14px;border:1px solid var(--line);background:var(--surface);color:var(--accent-ink);border-radius:999px;font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer}.controls__toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.brand .share-btn{margin-left:6px}.brand__text{min-width:0}.brand__sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.controls__body{display:none}.controls.is-open .controls__body{display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - 120px);max-height:calc(100dvh - 120px);overflow-y:auto;-webkit-overflow-scrolling:touch}.lens-select__note,.blend__note{display:none}.legend{width:calc(100vw - 24px);max-width:none;left:12px;bottom:12px;padding:12px 14px}.legend__footnote{display:none}.panel{top:auto;right:0;left:0;bottom:0;width:auto;max-width:none;border-radius:16px 16px 0 0;max-height:80vh;max-height:80dvh}.app .top-zones{left:12px;right:12px;bottom:137px;width:auto;max-width:none;max-height:50vh;max-height:50dvh;overflow:hidden}.app .top-zones__list{max-height:40vh;max-height:40dvh}.app:has(.panel) .controls__body,.app:has(.compare) .controls__body{display:none!important}.app:has(.panel) .top-zones,.app:has(.compare) .top-zones,.app:has(.controls.is-open) .top-zones,.app:has(.panel) .legend,.app:has(.compare) .legend,.app:has(.controls.is-open) .legend{display:none}.app .compare{left:0;right:0;bottom:0;width:auto;transform:none;border-radius:16px 16px 0 0;max-height:75vh;max-height:75dvh;overflow:auto}.panel__close,.compare__close{width:40px;height:40px}.panel__action{height:40px;padding:0 14px}.top-zones__item{padding:10px 8px;min-height:44px}.top-zones__cmp{padding:8px 4px;min-height:40px}.top-zones__toggle{min-height:44px}.share-btn{min-height:40px;padding:0 14px}.city-select__btn,.type-switch__btn,.blend__preset{min-height:40px}}@media (prefers-reduced-motion: reduce){.overlay__spinner,.panel__spinner{animation:none}.top-zones__bar>span{animation:none}.legend,.top-zones,.top-zones__item{transition:none}.legend:hover,.top-zones:hover,.top-zones__item:hover{transform:none}}.city-select{display:flex;align-items:center;gap:var(--space-md);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:var(--space-sm) var(--space-md) var(--space-sm) var(--space-xl)}.city-select__label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--ink-faint)}.city-select__btns{display:flex;gap:var(--space-xs);flex:1}.city-select__btn{flex:1;padding:7px 10px;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--fill);color:var(--ink-soft);cursor:pointer;font:inherit;font-size:var(--fs-md);font-weight:var(--fw-medium);transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease}.city-select__btn:hover{background:var(--fill-hover)}.city-select__btn.is-active{background:var(--accent-grad);color:#fff;border-color:transparent;box-shadow:0 1px 2px #0f17202e,inset 0 1px #fff3}.type-switch__btn:focus-visible,.city-select__btn:focus-visible,.overlay__retry:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.top-zones{position:absolute;right:16px;bottom:16px;z-index:6;width:288px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;transition:box-shadow .18s ease,transform .18s ease}.top-zones:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.top-zones__toggle{display:flex;align-items:center;justify-content:space-between;width:100%;border:none;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;padding:var(--space-lg) var(--space-xl)}.top-zones__title{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--fs-base);font-weight:var(--fw-bold)}.top-zones__count{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--accent-ink);background:var(--accent-tint);border:1px solid var(--accent-line);border-radius:999px;padding:1px 8px}.top-zones__chevron{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:24px;padding:var(--space-3xs) var(--space-2xs);color:var(--ink-soft);font-size:var(--fs-2xl);line-height:var(--lh-none);transition:color .15s ease}.top-zones__toggle:hover .top-zones__chevron{color:var(--ink)}.top-zones__toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.top-zones__list{list-style:none;margin:0;padding:0 var(--space-xs) var(--space-sm);max-height:40vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.top-zones__item{display:grid;grid-template-columns:18px 124px 1fr 32px;align-items:center;gap:var(--space-sm);padding:7px 8px;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:background .12s ease,box-shadow .12s ease,transform .12s ease,border-color .12s ease}.top-zones__item:hover{background:var(--fill);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.top-zones__item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.top-zones__item.is-selected{background:var(--accent-tint);border-color:var(--accent-line)}.top-zones__item:first-child{background:var(--accent-tint-2)}.top-zones__item:first-child .top-zones__rank{color:var(--accent-ink)}.top-zones__rank{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--ink-faint);text-align:right}.top-zones__sector{font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--ink);max-width:128px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-zones__sector-tag{font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--ink-faint);vertical-align:.06em}.top-zones__bar{display:block;height:6px;border-radius:999px;background:var(--fill-hover);overflow:hidden}.top-zones__bar>span{display:block;height:100%;border-radius:999px;background:var(--accent-grad);transform-origin:left center;animation:bar-grow .55s cubic-bezier(.22,1,.36,1) both}@keyframes bar-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.top-zones__chip{font-size:var(--fs-sm);font-weight:var(--fw-heavy);color:var(--accent-ink);min-width:22px;text-align:right}.top-zones__cmp{grid-column:2 / -1;justify-self:start;display:inline-flex;align-items:center;min-height:24px;margin-top:var(--space-3xs);border:1px solid transparent;background:transparent;color:var(--ink-soft);font:inherit;font-size:var(--fs-xs);font-weight:var(--fw-medium);cursor:pointer;padding:var(--space-3xs) var(--space-sm);border-radius:999px;transition:background .12s ease,border-color .12s ease,color .12s ease}.top-zones__item:hover .top-zones__cmp,.top-zones__cmp:hover,.top-zones__cmp:focus-visible{color:var(--accent-ink);border-color:var(--line)}.top-zones__cmp:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.compare{position:absolute;left:50%;bottom:16px;transform:translate(-50%);z-index:14;width:min(720px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:var(--space-xl) var(--space-2xl);max-height:56vh;overflow:auto;-webkit-overflow-scrolling:touch}.compare__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-md)}.compare__title{margin:0;font-size:var(--fs-base);font-weight:var(--fw-bold)}.compare__actions{display:flex;align-items:center;gap:var(--space-sm)}.compare__clear{border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);border-radius:999px;padding:5px 12px;font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer}.compare__clear:hover{background:var(--fill);color:var(--ink)}.compare__close{border:none;background:var(--fill);color:var(--ink-soft);width:28px;height:28px;border-radius:50%;font-size:var(--fs-2xl);line-height:var(--lh-none);cursor:pointer;transition:background .15s ease,color .15s ease}.compare__close:hover{background:var(--fill-hover);color:var(--ink)}.compare__clear:focus-visible,.compare__close:focus-visible,.compare__remove:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.compare__scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.compare__table{width:100%;border-collapse:collapse;font-size:var(--fs-md)}.compare__table th,.compare__table td{padding:7px 10px;text-align:center;border-bottom:1px solid var(--line)}.compare__table thead th{border-bottom:2px solid var(--line)}.compare__table tbody th[scope=row]{text-align:left;font-weight:var(--fw-medium);color:var(--ink-soft);white-space:nowrap}.compare__table td{font-weight:var(--fw-bold);color:var(--ink)}.compare__table td.is-best{background:var(--accent-tint);color:var(--accent-ink)}.compare__best-mark{font-weight:var(--fw-bold);color:var(--accent-ink)}.compare__unit{font-weight:var(--fw-bold);font-size:var(--fs-sm)}.compare__remove{margin-left:var(--space-xs);border:none;background:transparent;color:var(--ink-faint);font-size:var(--fs-base);line-height:var(--lh-none);cursor:pointer;padding:0}.compare__remove:hover{color:var(--ink)}.sector-minimap{margin-top:var(--space-xl);padding:var(--space-sm);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm)}.sector-minimap svg{display:block;width:100%;height:auto}.sector-minimap__cap{margin-top:var(--space-2xs);font-size:var(--fs-xs);color:var(--ink-faint);text-align:center}.diet-cov-row{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-md)}.diet-cov{display:inline-flex;align-items:center;gap:var(--space-2xs);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--ink-soft);background:var(--fill);border:1px solid var(--line);border-radius:999px;padding:3px 9px}.diet-cov.is-active{color:var(--accent-ink);background:var(--accent-tint);border-color:var(--accent-line)}.establishments{margin-top:var(--space-2xs)}.establishments__empty{margin:var(--space-2xs) 0 0;font-size:var(--fs-md);color:var(--ink-faint)}.establishments__summary{margin:0 0 var(--space-sm);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--ink-faint)}.establishments__group{margin-bottom:var(--space-md)}.establishments__group.is-focus{background:var(--accent-tint-2);border-left:3px solid var(--accent);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm) var(--space-2xs)}.establishments__heading{margin:0 0 var(--space-2xs);font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--ink)}.establishments__heading span{font-weight:var(--fw-medium);color:var(--ink-faint)}.establishments__heading.is-focus-type{color:var(--accent-ink)}.establishments__items{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-xs);margin-top:var(--space-3xs)}.establishments__item{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:3px 9px;background:var(--fill);border:1px solid var(--line);border-radius:999px;font-size:var(--fs-sm);line-height:var(--lh-snug);color:var(--ink-soft)}.establishments__name{overflow-wrap:anywhere}.establishments__group.is-focus .establishments__item{background:var(--accent-tint);border-color:var(--accent-line);color:var(--accent-ink)}.establishments__item--ghost,.establishments__group.is-focus .establishments__item--ghost{background:var(--surface-2);border:1px solid var(--line-soft);color:var(--ink-faint);font-style:italic}.establishments__more{font:inherit;font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--accent-ink);background:transparent;border:1px dashed var(--accent-line);border-radius:999px;padding:4px 11px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.establishments__more:hover{background:var(--accent-tint);border-color:var(--accent)}.establishments__more:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.diet-chip{font-size:var(--fs-xs);line-height:var(--lh-none)}@media print{html,body,#root,.app{position:static!important;overflow:visible!important;height:auto!important;width:auto!important;background:#fff!important;color:#000!important}.map-container,.controls,.legend,.overlay,.top-zones,.compare,.share-btn,.blend{display:none!important}.panel{position:static!important;inset:auto!important;width:100%!important;max-width:100%!important;max-height:none!important;overflow:visible!important;box-shadow:none!important;border:none!important;border-radius:0!important;padding:0!important;background:#fff!important;color:#000!important}.panel__print-header{display:block!important;margin-bottom:14px;padding-bottom:10px;border-bottom:2px solid #000}.panel__print-brand{font-size:var(--fs-2xl);font-weight:var(--fw-heavy);letter-spacing:var(--tracking-tight)}.panel__print-meta{margin-top:2px;font-size:var(--fs-sm);color:#000}.panel__actions,.panel__ai-status,.panel__ai-badge{display:none!important}.panel__id{overflow:visible!important;white-space:normal!important}.panel__eyebrow{color:#000!important}.panel__index,.panel__why{background:#fff!important;border:1px solid #999!important;color:#000!important}.panel__index-value,.panel__index-value--muted{color:#000!important;background:none!important;-webkit-text-fill-color:#000!important}.panel__metrics{background:#fff!important;border:1px solid #999!important}.panel__metric{background:#fff!important;border-bottom:1px solid #ddd}.panel__metric:last-child{border-bottom:none}.panel,.panel *{color:#000!important}.panel__action{display:none!important}.sector-minimap{background:#fff!important;border:1px solid #999!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;break-inside:avoid;page-break-inside:avoid}.sector-minimap svg path{fill:#fff!important;stroke:#555!important}.sector-minimap svg path:last-of-type{fill:#d9d9d9!important;stroke:#000!important}.sector-minimap svg circle{fill:#000!important}.diet-cov{background:#fff!important;border:1px solid #999!important}.establishments,.establishments__group{break-inside:avoid;page-break-inside:avoid}.establishments__group.is-focus{background:#fff!important;border-left:2px solid #000!important}.establishments__item,.establishments__group.is-focus .establishments__item{background:#fff!important;border:1px solid #999!important;color:#000!important}.panel__section,.panel__index,.panel__why,.panel__metric{break-inside:avoid;page-break-inside:avoid}.panel__disclaimer{display:block!important;border-top:1px solid #999!important}@page{margin:14mm}}
