:root{--buncss-light:initial;--buncss-dark: ;color-scheme:light dark;--twsa-safe-area-inset-top:env(safe-area-inset-top,0px);--twsa-safe-area-inset-right:env(safe-area-inset-right,0px);--twsa-safe-area-inset-bottom:env(safe-area-inset-bottom,0px);--twsa-safe-area-inset-left:env(safe-area-inset-left,0px)}@media (prefers-color-scheme:dark){:root{--buncss-light: ;--buncss-dark:initial}}html,[data-generated-space-root]{height:100%;min-height:100%}[data-generated-space-root]{overflow:auto;position:fixed;scrollbar-width:none;inset:0}.hatch-space-root[data-hatch-space-root]{--hatch-space-bottom-padding:calc(var(--bottom-padding,0px) + env(safe-area-inset-bottom,0px));box-sizing:border-box;min-height:calc(100% + var(--header-height,0px) + var(--hatch-space-bottom-padding));min-height:calc(100dvh + var(--header-height,0px) + var(--hatch-space-bottom-padding));padding-top:var(--header-height,0px);padding-bottom:var(--hatch-space-bottom-padding);background:var(--bg,#f4f7fb);color:var(--text,#0f172a)}@media (prefers-color-scheme:dark){.hatch-space-root[data-hatch-space-root]{background:var(--bg,#0c111b);color:var(--text,#e5eef9)}}[data-generated-space-root]::-webkit-scrollbar{display:none}/*! tailwindcss v4.0.9 | MIT License | https://tailwindcss.com */@layer theme,base,components,utilities;@layer theme{:root,:host{--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::-webkit-file-upload-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:initial;font-variation-settings:initial;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}hr{color:inherit;border-top-width:1px;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:initial;font-variation-settings:initial;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{position:relative;vertical-align:baseline;font-size:75%;line-height:0}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::-webkit-file-upload-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:-webkit-any([multiple],[size])) optgroup{font-weight:bolder}:where(select:-moz-any([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:-webkit-any([multiple],[size])) optgroup option{padding-inline-start:20px}:where(select:-moz-any([multiple],[size])) optgroup option{padding-inline-start:20px}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::-webkit-file-upload-button{margin-inline-end:4px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports ( not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{text-align:inherit;min-height:1lh}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-year-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-month-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-day-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-hour-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-minute-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-second-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-millisecond-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-meridiem-field{padding-block-start:0;padding-block-end:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button{appearance:button}input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-file-upload-button{appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.relative{position:relative}.static{position:static}.\!container{width:100%!important}@media (min-width:40rem){.\!container{max-width:40rem!important}}@media (min-width:48rem){.\!container{max-width:48rem!important}}@media (min-width:64rem){.\!container{max-width:64rem!important}}@media (min-width:80rem){.\!container{max-width:80rem!important}}@media (min-width:96rem){.\!container{max-width:96rem!important}}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.table{display:table}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.safe{--twsa-safe-area-inset-top:env(safe-area-inset-top);--twsa-safe-area-inset-right:env(safe-area-inset-right);--twsa-safe-area-inset-bottom:env(safe-area-inset-bottom);--twsa-safe-area-inset-left:env(safe-area-inset-left)}}:root{--twsa-safe-area-inset-top:env(safe-area-inset-top);--twsa-safe-area-inset-right:env(safe-area-inset-right);--twsa-safe-area-inset-bottom:env(safe-area-inset-bottom);--twsa-safe-area-inset-left:env(safe-area-inset-left);--buncss-light:initial;--buncss-dark: ;--buncss-light:initial;--buncss-dark: ;color-scheme:light dark;--bg:#f6f9fc;--surface:#fff;--surface-subtle:#f8fafc;--text:#1a1f36;--dim:#697386;--border:#e3e8ee;--border-strong:#cbd5e1;--accent:#635bff;--accent-hover:#5147e5;--accent-soft:#f0efff;--sea:#0f766e;--sea-soft:#ecfdf5;--sand-deep:#f1f5f9;--amber:#b45309;--radius:10px;--shadow:0 1px 2px #1018280a,0 8px 24px #32325d12;--shadow-raised:0 2px 5px #1018280d,0 16px 38px #32325d1c;--space-surface:var(--surface);--space-surface-alt:var(--surface-subtle);--space-muted:var(--dim);--space-border:var(--border);--space-accent:var(--accent)}@media (prefers-color-scheme:dark){:root{--buncss-light: ;--buncss-dark:initial;--buncss-light: ;--buncss-dark:initial;--bg:#0f1320;--surface:#171c2c;--surface-subtle:#1d2335;--text:#f6f9fc;--dim:#a8b3c7;--border:#2c3448;--border-strong:#45506a;--accent:#8b83ff;--accent-hover:#a39dff;--accent-soft:#29264d;--sea:#5eead4;--sea-soft:#173733;--sand-deep:#222a3c;--amber:#fbbf24;--shadow:0 1px 2px #0000003d,0 10px 28px #0003;--shadow-raised:0 2px 6px #00000047,0 18px 42px #00000047}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-feature-settings:"cv02","cv03","cv04","cv11";-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible{outline:3px solid color-mix(in srgb,var(--accent)32%,transparent);outline-offset:2px}a:focus-visible{outline:3px solid color-mix(in srgb,var(--accent)32%,transparent);outline-offset:2px}input:focus-visible{outline:3px solid color-mix(in srgb,var(--accent)32%,transparent);outline-offset:2px}select:focus-visible{outline:3px solid color-mix(in srgb,var(--accent)32%,transparent);outline-offset:2px}textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--accent)32%,transparent);outline-offset:2px}.app-shell{overflow-x:hidden;padding:max(22px,env(safe-area-inset-top))16px max(38px,env(safe-area-inset-bottom));max-width:1540px;min-height:100vh;margin:0 auto}.intro{display:grid;align-items: end;gap:22px;margin:10px 2px 28px}.date-line{color:var(--accent);letter-spacing:.11em;margin:0 0 10px;font-size:11px;font-weight:750}h1,h2,h3{font-family:inherit}h1{letter-spacing:-.045em;max-width:760px;margin:0;font-size:clamp(30px,6vw,48px);font-weight:720;line-height:1.05}.lede{color:var(--dim);max-width:720px;margin:14px 0 0;font-size:14px;line-height:1.65}.summary{display:grid;grid-template-columns:auto auto 1px auto auto;background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;align-items:baseline;gap:8px;width:-moz-fit-content;width:fit-content;padding:12px 15px}.summary strong{color:var(--accent);letter-spacing:-.035em;font-size:22px;font-weight:760;line-height:1}.summary span{color:var(--dim);white-space:nowrap;font-size:11px;font-weight:600}.summary i{background:var(--border-strong);width:1px;height:20px}.controls{background:var(--surface);border:1px solid var(--border);display:grid;box-shadow:var(--shadow);border-radius:12px;gap:12px;margin-bottom:18px;padding:14px}.search-field,.filter-grid label{display:grid;color:var(--dim);gap:6px;font-size:11px;font-weight:700}input,select,textarea{background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;width:100%;transition:border-color .16s,box-shadow .16s,background-color .16s}input:hover,select:hover,textarea:hover{border-color:color-mix(in srgb,var(--accent)34%,var(--border-strong))}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent)12%,transparent);outline:none}input,select{height:44px;padding:0 12px}input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--dim)72%,transparent)}select{cursor:pointer}textarea{resize:vertical;min-height:100px;padding:11px 12px;line-height:1.55}.heat-switch{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--border);background:var(--surface-subtle);border-radius:11px;gap:4px;padding:4px}.heat-switch button{color:var(--dim);cursor:pointer;background:0 0;border:0;border-radius:8px;min-height:36px;transition:background-color .16s,color .16s,box-shadow .16s;font-size:12px;font-weight:700}.heat-switch button:hover{color:var(--accent);background:var(--accent-soft)}.heat-switch button.active{background:var(--accent);color:#fff;box-shadow:0 2px 8px color-mix(in srgb,var(--accent)28%,transparent)}.filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.filter-grid label:last-child{grid-column:1/-1}.score-filter{align-content: start;padding:0 2px}.score-filter-heading,.range-limits{display:flex;justify-content:space-between;align-items: center;gap:10px}.score-filter-heading output{color:var(--text);white-space:nowrap;font-size:12px;font-weight:800}.score-filter input[type=range]{appearance:none;-webkit-appearance:none;box-shadow:none;cursor:pointer;background:0 0;border:0;border-radius:0;height:24px;padding:0}.score-filter input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right,var(--accent)0 var(--score-progress,0%),var(--border-strong)var(--score-progress,0%)100%);border-radius:999px;height:5px}.score-filter input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;border:3px solid var(--surface);background:var(--accent);box-shadow:0 0 0 1px var(--accent),0 2px 5px color-mix(in srgb,var(--accent)28%,transparent);border-radius:50%;width:20px;height:20px;margin-top:-7.5px}.score-filter input[type=range]::-moz-range-track{background:var(--border-strong);border-radius:999px;height:5px}.score-filter input[type=range]::-moz-range-progress{background:var(--accent);border-radius:999px;height:5px}.score-filter input[type=range]::-moz-range-thumb{border:3px solid var(--surface);background:var(--accent);box-shadow:0 0 0 1px var(--accent),0 2px 5px color-mix(in srgb,var(--accent)28%,transparent);border-radius:50%;width:14px;height:14px}.score-filter input[type=range]:hover{border:0}.score-filter input[type=range]:focus{box-shadow:none;border:0}.range-limits{color:var(--dim);margin-top:-5px;font-size:10px;font-weight:650}.quick-filters{display:flex;flex-wrap:wrap;gap:8px;padding-top:2px}.quick-filters button,.results-head button,.note-toggle{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;border-radius:999px;min-height:38px;padding:7px 12px;transition:color .16s,border-color .16s,background-color .16s,box-shadow .16s,transform .16s;font-size:12px;font-weight:700}.quick-filters button:hover,.results-head button:hover,.note-toggle:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent)48%,var(--border));background:var(--accent-soft)}.quick-filters button:active,.results-head button:active,.note-toggle:active{transform:translateY(1px)}.quick-filters button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 2px 8px color-mix(in srgb,var(--accent)24%,transparent)}.quick-filters svg{vertical-align:-3px;width:15px;height:15px;margin-right:3px}button:disabled{opacity:.46;cursor:not-allowed;transform:none!important}.workspace{display:grid;align-items: start;gap:18px}.map-column{min-width:0}.map-shell{position:relative;background:var(--surface);border:1px solid var(--border);overflow:hidden;box-shadow:var(--shadow-raised);border-radius:12px;height:48vh;min-height:350px}.map-canvas{background:#dce6ed;width:100%;max-width:100%;height:100%}.map-canvas>div{max-width:100%}.map-canvas.is-hidden{display:none}.map-unavailable{display:grid;background:var(--surface-subtle);color:var(--text);align-content: center;justify-items:start;gap:9px;height:100%;padding:28px}.map-unavailable strong{font-size:18px}.map-unavailable p,.map-unavailable small{color:var(--dim);margin:0;font-size:12px;line-height:1.5}.map-unavailable ul{color:var(--dim);margin:4px 0;padding-left:18px;font-size:11px;line-height:1.55}.map-caption{position:absolute;z-index:600;display:flex;pointer-events:none;justify-content:space-between;gap:8px;top:12px;left:54px;right:12px}.map-caption span{color:#344054;backdrop-filter:blur(6px);background:#fffffff0;border:1px solid #cbd5e1d9;border-radius:8px;padding:7px 10px;font-size:10px;font-weight:700;box-shadow:0 2px 7px #32325d1f}.map-legend{position:absolute;z-index:600;display:grid;color:#344054;backdrop-filter:blur(6px);pointer-events:none;background:#fffffff2;border:1px solid #cbd5e1e6;border-radius:8px;gap:6px;max-width:calc(100% - 24px);padding:9px 11px;bottom:26px;left:12px;box-shadow:0 2px 8px #32325d24}.map-legend strong{font-size:10px;font-weight:800}.map-legend span{display:flex;align-items: center;gap:7px;font-size:10px;font-weight:700;line-height:1.2}.map-legend i{border:2px solid #fff;border-radius:50%;flex:0 0 11px;width:11px;height:11px;box-shadow:0 0 0 1px #34405447}.villa-map-pin{position:relative;display:block;background:var(--pin-color,#94a3b8);cursor:pointer;border:2px solid #fff;border-radius:50%;width:14px;height:14px;padding:0;box-shadow:0 0 0 1px #34405447,0 2px 5px #0f172a47}.villa-map-pin.is-selected{border-width:3px;width:18px;height:18px}.score-note{color:var(--dim);margin:10px 3px 0;font-size:11px;line-height:1.55}.score-note strong{color:var(--text)}.score-note a{color:var(--accent);text-underline-offset:2px;font-weight:700}.map-popup{display:grid;gap:5px;min-width:220px;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.popup-photo{position:relative;aspect-ratio:16/9;overflow:hidden;background:#eef2f6;border-radius:7px;width:100%;margin-bottom:3px}.popup-photo img{display:block;object-fit:cover;width:100%;height:100%}.popup-photo span{display:none;color:#697386;justify-content:center;align-items: center;width:100%;height:100%;font-size:10px;font-weight:700}.popup-photo.is-broken img{display:none}.popup-photo.is-broken span{display:flex}.map-popup strong{color:#1a1f36;letter-spacing:-.015em;font-size:14px;font-weight:750;line-height:1.3}.map-popup span{color:#697386;font-size:11px;line-height:1.4}.map-popup .popup-dining{color:#0f766e;font-weight:750}.map-popup>b{color:#635bff;font-size:13px}.map-popup .popup-rooms{color:#344054;font-size:12px;font-weight:800}.map-popup .popup-score{color:#1a1f36;font-size:12px}.map-popup .popup-warning{color:#9a3412;font-size:11px;line-height:1.4}.popup-score-details summary{color:#635bff;cursor:pointer;font-size:10px;font-weight:750}.popup-score-details span,.popup-score-details small{display:block;margin-top:4px}.poi-layer-control{position:absolute;z-index:650;color:#344054;backdrop-filter:blur(6px);background:#fffffff5;border:1px solid #cbd5e1e6;border-radius:9px;width:min(226px,100% - 66px);padding:9px;top:54px;right:12px;box-shadow:0 3px 10px #32325d26}.poi-layer-control>div:first-child{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.poi-layer-control strong{font-size:10px;font-weight:850}.poi-layer-control small,.poi-layer-control>p{color:#697386;font-size:9px;font-weight:650}.poi-layer-control>p{margin:7px 1px 0}.poi-layer-buttons{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:7px}.poi-layer-buttons button{display:flex;color:#344054;cursor:pointer;text-align:left;background:#fff;border:1px solid #d8dee8;border-radius:7px;align-items: center;gap:5px;min-width:0;min-height:32px;padding:5px 7px;font-size:9px;font-weight:750}.poi-layer-buttons button:hover{background:#f8fafc;border-color:#94a3b8}.poi-layer-buttons button[aria-pressed=true]{color:#5147e5;background:#f0efff;border-color:#635bff}.poi-layer-buttons button i{border-radius:50%;flex:0 0 9px;width:9px;height:9px;box-shadow:0 0 0 2px #fff,0 0 0 3px #34405433}.poi-layer-buttons button span{color:#697386;margin-left:auto;font-size:8px}.poi-attribution{position:absolute;z-index:650;color:#3c4043;pointer-events:none;background:#fffffff0;border-radius:3px;padding:3px 6px;font-family:Arial,sans-serif;font-size:9px;font-weight:600;line-height:1.2;bottom:18px;right:5px}.poi-pin{filter:drop-shadow(0 1px 2px #0f172a47)}.poi-popup{display:grid;gap:5px;min-width:210px;font-family:Inter,ui-sans-serif,sans-serif}.poi-popup strong{color:#1a1f36;font-size:14px;line-height:1.3}.poi-popup span{color:#697386;font-size:11px;line-height:1.4}.poi-popup b{color:#0f766e;font-size:11px}.poi-popup small{color:#697386;font-size:9px}.results{overflow-y:auto;overscroll-behavior-y:contain;scrollbar-gutter:stable;touch-action:pan-y;-webkit-overflow-scrolling:touch;min-width:0;max-height:72dvh}.results-head{position:sticky;z-index:5;display:flex;background:var(--bg);justify-content:space-between;align-items: end;gap:12px;margin:0;padding:4px 3px 12px;top:0}.results-head h2{letter-spacing:-.035em;margin:0;font-size:24px;font-weight:720}.results-head p{color:var(--dim);margin:4px 0 0;font-size:12px}.results-head button{min-height:34px}.cards{display:grid;gap:12px}.villa-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;padding:17px;transition:border-color .18s,box-shadow .18s,transform .18s}.villa-card:hover{border-color:color-mix(in srgb,var(--accent)22%,var(--border));box-shadow:var(--shadow-raised);transform:translateY(-1px)}.villa-card.selected{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent)13%,transparent),var(--shadow-raised)}.villa-photo{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--surface-subtle);border-bottom:1px solid var(--border);border-radius:9px 9px 0 0;width:calc(100% + 34px);margin:-17px -17px 15px}.photo-strip{display:flex;overflow:hidden;touch-action:pan-y;width:100%;height:100%}.photo-slide{position:relative;background:var(--surface-subtle);flex:0 0 100%;width:100%;height:100%}.photo-slide img{display:block;object-fit:cover;user-select:none;width:100%;height:100%}.photo-slide span{display:none;color:var(--dim);justify-content:center;align-items: center;width:100%;height:100%;font-size:12px;font-weight:700}.photo-slide.is-broken img{display:none}.photo-slide.is-broken span{display:flex}.photo-arrow{position:absolute;z-index:2;display:grid;color:#fff;cursor:pointer;background:#121826b8;border:1px solid #ffffff9e;border-radius:50%;place-items: center;width:38px;height:38px;padding:0;top:50%;transform:translateY(-50%);box-shadow:0 2px 8px #0f172a38}.photo-arrow:hover{background:#121826e6}.photo-arrow:disabled{opacity:.28}.photo-arrow.previous{left:10px}.photo-arrow.next{right:10px}.photo-arrow svg{width:20px;height:20px}.photo-counter{position:absolute;z-index:2;color:#fff;text-align:center;background:#121826c2;border-radius:999px;min-width:46px;padding:5px 8px;font-size:10px;font-weight:800;line-height:1;bottom:10px;right:10px;box-shadow:0 2px 7px #0f172a33}.card-topline{display:flex;justify-content:space-between;align-items: center}.entry-number{display:flex;color:var(--dim);align-items: center;gap:8px;font-size:11px;font-weight:750}.new-marker{display:inline-flex;background:var(--accent-soft);color:var(--accent);letter-spacing:.02em;border-radius:999px;align-items: center;min-height:22px;padding:3px 8px;font-size:9px;font-weight:800}.bookmark{border:1px solid var(--border);background:var(--surface);color:var(--dim);cursor:pointer;border-radius:999px;width:39px;height:39px;padding:9px;transition:color .16s,background-color .16s,border-color .16s,transform .16s}.bookmark:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent)42%,var(--border));background:var(--accent-soft);transform:translateY(-1px)}.bookmark svg{width:100%;height:100%}.bookmark[aria-pressed=true]{color:var(--accent);background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent)44%,var(--border))}.villa-card h3{letter-spacing:-.025em;margin:2px 46px 3px 0;font-size:19px;font-weight:720;line-height:1.25}.area{color:var(--dim);margin:6px 0 0;font-size:12px;line-height:1.45}.area span{color:var(--accent);font-weight:700}.rooms{color:var(--text);margin:9px 0 0;font-size:14px;font-weight:780;line-height:1.4}.address{color:var(--text);margin:3px 0 0;font-size:12px;line-height:1.45}.price{letter-spacing:-.025em;margin:15px 0 10px;font-size:18px;font-weight:760}.availability-panel{display:grid;background:var(--surface-subtle);border:1px solid var(--border);border-radius:9px;gap:6px;margin:0 0 10px;padding:10px 11px}.availability-panel>div{display:flex;flex-wrap:wrap;align-items: center;gap:7px}.availability-panel small{color:var(--dim);font-size:10px;line-height:1.4}.availability-panel>strong{font-size:13px;line-height:1.35}.availability-panel>p{color:var(--dim);margin:0;font-size:11px;line-height:1.45}.availability-badge{display:inline-flex;border-radius:999px;align-items: center;min-height:24px;padding:4px 8px;font-size:10px;font-weight:850}.availability-panel.available .availability-badge{background:var(--sea-soft);color:var(--sea)}.availability-panel.booked .availability-badge{background:color-mix(in srgb,#dc2626 12%,var(--surface));color:color-mix(in srgb,#dc2626 78%,var(--text))}.availability-panel.unknown .availability-badge{background:color-mix(in srgb,var(--dim)12%,var(--surface));color:var(--dim)}.warning-stack{color:#9a3412;background:#fff7ed;border:1px solid #fdba74;border-radius:8px;margin:0 0 10px;padding:10px 11px}.warning-stack>strong{display:block;letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px;font-size:10px;font-weight:850}.warning-stack p{margin:4px 0 0;font-size:11px;line-height:1.45}.enzo-score{background:var(--accent-soft);border-radius:9px;margin:0 0 10px;padding:10px 11px}.enzo-score.unavailable{background:var(--surface-subtle)}.enzo-score-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:7px}.enzo-score-line>span{color:var(--accent);font-size:11px;font-weight:800}.enzo-score-line>strong{color:var(--accent);letter-spacing:-.035em;font-size:22px;line-height:1}.enzo-score-line>b{color:var(--text);font-size:11px}.enzo-score-line>em{color:var(--amber);font-size:9px;font-style:normal;font-weight:800}.score-details{margin-top:6px}.score-details summary{color:var(--accent);cursor:pointer;width:-moz-fit-content;width:fit-content;font-size:10px;font-weight:750}.score-details p{color:var(--dim);margin:6px 0 0;font-size:10px;line-height:1.45}.score-details p strong{color:var(--text)}.badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.badge{display:inline-flex;background:var(--sand-deep);color:var(--text);border-radius:999px;align-items: center;min-height:25px;padding:4px 8px;font-size:10px;font-weight:750}.badge.included,.badge.walkable,.badge.dining{background:var(--sea-soft);color:var(--sea)}.badge.dining{font-size:11px}.badge.extra{background:color-mix(in srgb,var(--amber)13%,var(--surface));color:var(--amber)}.badge.unconfirmed{background:color-mix(in srgb,var(--dim)12%,var(--surface));color:var(--dim)}.badge.score,.badge.price-check{background:var(--accent-soft);color:var(--accent)}.badge.price-check.verified{background:var(--sea-soft);color:var(--sea)}.badge.score-muted{background:color-mix(in srgb,var(--dim)11%,var(--surface));color:var(--dim)}.badge.kid{color:#4f46e5;background:#eef2ff}.card-tabs{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--border);background:var(--surface-subtle);border-radius:9px;gap:4px;margin:2px 0 14px;padding:4px}.card-tabs button{color:var(--dim);cursor:pointer;background:0 0;border:0;border-radius:6px;min-height:36px;font-size:11px;font-weight:800}.card-tabs button span{display:block;margin-top:1px;font-size:8px;font-weight:650}.card-tabs button[aria-selected=true]{background:var(--surface);color:var(--accent);box-shadow:0 1px 4px #32325d1a}.card-tab-panel,.nearby-panel{min-width:0}.nearby-heading{display:flex;justify-content:space-between;align-items: start;gap:10px;margin-bottom:10px}.nearby-heading>div{display:grid;gap:2px}.nearby-heading strong{font-size:13px}.nearby-heading span,.nearby-heading small{color:var(--dim);font-size:9px;line-height:1.35}.nearby-heading>small{white-space:nowrap;font-family:Arial,sans-serif;font-weight:700}.nearby-category-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:10px}.nearby-category-tabs button{display:flex;border:1px solid var(--border);background:var(--surface);color:var(--dim);cursor:pointer;border-radius:7px;justify-content:space-between;align-items: center;gap:6px;min-width:0;min-height:36px;padding:6px 8px;font-size:10px;font-weight:750}.nearby-category-tabs button span{color:inherit;font-size:9px}.nearby-category-tabs button[aria-selected=true]{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent)45%,var(--border));color:var(--accent)}.nearby-list{list-style:none;display:grid;border-top:1px solid var(--border);gap:0;margin:0;padding:0}.nearby-list li{display:grid;grid-template-columns:22px minmax(0,1fr)auto;border-bottom:1px solid var(--border);align-items: start;gap:8px;padding:10px 0}.nearby-list li>span{display:grid;background:var(--surface-subtle);color:var(--dim);border-radius:50%;place-items: center;width:20px;height:20px;font-size:9px;font-weight:800}.nearby-list li>div{min-width:0}.nearby-list strong{display:block;font-size:11px;line-height:1.35}.nearby-list p{color:var(--dim);margin:2px 0;font-size:9px;line-height:1.35}.nearby-list small{color:var(--sea);font-size:9px;font-weight:700}.nearby-list b{color:var(--text);white-space:nowrap;font-size:10px}.nearby-count-note,.nearby-pin-note,.nearby-empty{color:var(--dim);margin:9px 0 0;font-size:9px;line-height:1.45}.nearby-pin-note{border-top:1px solid var(--border);padding-top:8px}.details{color:var(--dim);margin:0 0 14px;font-size:12px;line-height:1.62}.facts{display:grid;gap:10px;margin:0}.facts div{display:grid;grid-template-columns:66px 1fr;gap:10px}.facts dt{color:var(--dim);text-transform:uppercase;letter-spacing:.075em;font-size:9px;font-weight:800}.facts dd{color:var(--text);margin:0;font-size:12px;line-height:1.55}.alternate-channels{border-top:1px solid var(--border);margin-top:15px;padding-top:14px}.alternate-channel{background:var(--surface-subtle);border:1px solid var(--border);display:grid;border-radius:9px;gap:6px;padding:12px}.alternate-heading{display:flex;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;flex-wrap:wrap;justify-content:space-between;align-items: center;gap:6px;font-size:9px;font-weight:800}.alternate-heading b{background:var(--accent-soft);text-transform:none;letter-spacing:0;border-radius:999px;padding:3px 7px}.alternate-channel>strong{font-size:14px;font-weight:720;line-height:1.35}.alternate-channel p{color:var(--dim);margin:0;font-size:11px;line-height:1.45}.alternate-channel>a{display:inline-flex;background:var(--accent);color:#fff;text-decoration:none;border-radius:8px;align-items: center;width:-moz-fit-content;width:fit-content;min-height:36px;margin-top:4px;padding:7px 11px;transition:background-color .16s,box-shadow .16s;font-size:11px;font-weight:750}.alternate-channel>a:hover{background:var(--accent-hover);box-shadow:0 4px 12px color-mix(in srgb,var(--accent)24%,transparent)}.card-actions{display:flex;border-top:1px solid var(--border);flex-wrap:wrap;align-items: center;gap:8px;margin-top:15px;padding-top:14px}.card-actions a{display:inline-flex;background:var(--accent);color:#fff;text-decoration:none;border-radius:8px;align-items: center;min-height:39px;padding:7px 12px;transition:background-color .16s,box-shadow .16s,transform .16s;font-size:12px;font-weight:750}.card-actions a:hover{background:var(--accent-hover);box-shadow:0 4px 12px color-mix(in srgb,var(--accent)24%,transparent);transform:translateY(-1px)}.card-actions a.alternate-link{background:var(--accent-soft);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent)24%,var(--border))}.note-toggle{color:var(--accent)}.note-editor{background:var(--surface-subtle);border:1px solid var(--border);display:grid;border-radius:9px;gap:8px;margin-top:11px;padding:12px}.note-editor label{color:var(--text);font-size:11px;font-weight:750}.note-editor>div{display:flex;justify-content:space-between;align-items: center;gap:10px}.note-editor span{color:var(--dim);font-size:10px}.note-editor button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:8px;min-height:35px;padding:6px 12px;transition:background-color .16s;font-size:12px;font-weight:750}.note-editor button:hover{background:var(--accent-hover)}.loading,.empty,.sync-error{background:var(--surface);border:1px solid var(--border);color:var(--dim);box-shadow:var(--shadow);border-radius:10px;padding:18px}.loading{position:relative;overflow:hidden}.loading:after{content:"";position:absolute;background:linear-gradient(100deg,transparent 25%,color-mix(in srgb,var(--accent)8%,transparent)45%,transparent 65%);animation:1.4s infinite loading-sheen;inset:0}.empty h3{color:var(--text);margin:0 0 5px;font-size:17px;font-weight:720}.empty p{margin:0;line-height:1.55}.sync-error{color:#9a3412;background:#fff7ed;border-color:#fed7aa;margin-bottom:14px;font-size:13px}@keyframes loading-sheen{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media (min-width:760px){.app-shell{padding:max(34px,env(safe-area-inset-top))28px 56px}.intro{grid-template-columns:minmax(0,1fr)auto;margin-bottom:32px}.controls{grid-template-columns:minmax(250px,1.25fr)auto;align-items: end;padding:16px}.filter-grid{grid-template-columns:repeat(3,minmax(140px,1fr));grid-column:1/-1}.filter-grid label:last-child{grid-column:auto}.quick-filters{grid-column:1/-1;border-top:1px solid var(--border);padding-top:12px}.workspace{grid-template-columns:minmax(0,1.15fr)minmax(350px,.85fr);gap:20px}.map-column{position:sticky;display:flex;flex-direction:column;height:calc(100dvh - 28px);min-height:580px;top:14px}.map-shell{flex:auto;height:auto;min-height:0}.results{position:sticky;height:calc(100dvh - 28px);max-height:none;top:14px}}@media (min-width:1120px){.controls{grid-template-columns:minmax(260px,1fr)auto minmax(470px,1.4fr)auto;gap:14px}.filter-grid{grid-template-columns:repeat(3,minmax(130px,1fr));grid-column:auto;border-left:1px solid var(--border);padding-left:14px}.quick-filters{grid-column:auto;border-top:0;border-left:1px solid var(--border);align-items: end;padding:0 0 0 14px}.quick-filters button{white-space:nowrap}}@media (prefers-color-scheme:dark){.map-caption span,.map-legend,.poi-layer-control{color:#f6f9fc;background:#171c2cf5;border-color:#45506ae6}.map-legend i{border-color:#171c2c;box-shadow:0 0 0 1px #f6f9fc73}.poi-layer-control small,.poi-layer-control>p{color:#a8b3c7}.poi-layer-buttons button{color:#f6f9fc;background:#171c2c;border-color:#45506a}.poi-layer-buttons button:hover{background:#1d2335}.poi-layer-buttons button[aria-pressed=true]{color:#a39dff;background:#29264d;border-color:#8b83ff}.poi-layer-buttons button span{color:#a8b3c7}.poi-attribution{color:#f6f9fc;background:#171c2cf0}.badge.kid{color:#a9a4ff;background:#26254b}.map-error,.sync-error,.warning-stack{color:#fed7aa;background:#3d2618;border-color:#7c4a24}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.villa-card,.bookmark,.quick-filters button,.results-head button,.note-toggle,.card-actions a,.alternate-channel>a,input,select,textarea{transition:none}.photo-strip{scroll-behavior:auto}.loading:after{animation:none;display:none}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}
