:root{--ink:#0e0e0e;--ink-2:#2a2a2a;--ink-3:#4a4744;--muted:#77726c;--faint:#a19b94;--line:#e7e3dd;--line-2:#d8d2ca;--paper:#fff;--cream:#f7f4ef;--stone:#efeae3;--gold:#b08d57;--gold-bright:#cdae76;--gold-deep:#86683a;--gold-wash:#f4eee3;--ok:#2f5d46;--ok-wash:#e8efe9;--warn:#8a5a14;--warn-wash:#f7efe1;--danger:#9b2c2c;--danger-wash:#f7e7e5;--f-display:"Bodoni Moda", "Didot", "Bodoni 72", Georgia, serif;--f-ui:"Archivo", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--f-body:"PT Serif", Georgia, "Times New Roman", serif;--track:.2em;--track-sm:.14em;--r-sm:2px;--r:4px;--r-lg:10px;--gutter:20px;--tabbar-h:58px;--safe-top:50px;--safe-bottom:26px;--ease:cubic-bezier(.22, .8, .24, 1);--shadow-card:0 1px 2px #0e0e0e0a, 0 8px 24px #0e0e0e0f;--shadow-float:0 10px 40px #0e0e0e29}html.app-mode{--safe-top:max(var(--safe-area-inset-top,env(safe-area-inset-top,0px)), 14px);--safe-bottom:max(var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px)), 10px)}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--f-body);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;background:#e9e5df;margin:0}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0}button:disabled{cursor:default}input,textarea,select{font:inherit;color:inherit}img{max-width:100%;display:block}a{color:inherit}h1,h2,h3,h4,p{margin:0}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.eyebrow{font-family:var(--f-ui);letter-spacing:var(--track);text-transform:uppercase;color:var(--muted);font-size:10.5px;font-weight:600}.eyebrow.gold{color:var(--gold-deep)}.on-dark .eyebrow.gold,.eyebrow.gold-bright{color:var(--gold-bright)}.display{font-family:var(--f-display);letter-spacing:-.01em;font-size:34px;font-weight:400;line-height:1.04}.h1{font-family:var(--f-display);font-size:28px;font-weight:400;line-height:1.1}.h2{font-family:var(--f-display);font-size:23px;font-weight:400;line-height:1.15}.h3{font-family:var(--f-display);font-size:18px;font-weight:500;line-height:1.2}.title-caps{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.06em;font-weight:500}.body{font-family:var(--f-body);color:var(--ink-2);font-size:15px;line-height:1.55}.body-sm{font-family:var(--f-body);color:var(--ink-3);font-size:13.5px;line-height:1.5}.italic{font-style:italic}.ui{font-family:var(--f-ui)}.ui-sm{font-family:var(--f-ui);color:var(--muted);font-size:12.5px}.muted{color:var(--muted)}.gold-text{color:var(--gold-deep)}.center{text-align:center}.nowrap{white-space:nowrap}.btn{height:52px;font-family:var(--f-ui);letter-spacing:var(--track);text-transform:uppercase;border-radius:var(--r-sm);white-space:nowrap;justify-content:center;align-items:center;gap:10px;padding:0 22px;font-size:12px;font-weight:600;transition:background .2s,color .2s,border-color .2s,transform .12s,opacity .2s;display:inline-flex}.btn:active:not(:disabled){transform:scale(.985)}.btn.block{width:100%;display:flex}.btn-primary{background:var(--ink);color:#fff}.btn-primary:disabled{background:#bdb8b1}.btn-gold{background:var(--gold-bright);color:var(--ink)}.btn-outline{border:1px solid var(--ink);color:var(--ink);background:0 0}.btn-outline-light{color:#fff;border:1px solid #ffffffb3}.btn-outline-gold{border:1px solid var(--gold-bright);color:var(--gold-bright)}.btn-white{color:var(--ink);background:#fff}.btn-sm{height:38px;padding:0 14px;font-size:10.5px}.btn-xs{height:30px;padding:0 12px;font-size:10px}.link-btn{font-family:var(--f-ui);letter-spacing:var(--track-sm);text-transform:uppercase;color:var(--ink);border-bottom:1px solid;align-items:center;gap:6px;padding-bottom:2px;font-size:11px;font-weight:600;display:inline-flex}.link-btn.gold{color:var(--gold-deep)}.icon-btn{border-radius:50%;flex-shrink:0;place-items:center;width:40px;height:40px;transition:background .2s;display:grid}.icon-btn.glass{color:var(--ink);background:#ffffffeb;box-shadow:0 1px 6px #0000001f}.icon-btn.glass-dark{color:#fff;-webkit-backdrop-filter:blur(8px);background:#0e0e0e66}.field{margin-bottom:16px;display:block}.field-label{font-family:var(--f-ui);letter-spacing:var(--track-sm);text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-size:10.5px;font-weight:600;display:block}.input,.textarea,.select{border:1px solid var(--line-2);border-radius:var(--r-sm);width:100%;height:50px;font-family:var(--f-ui);appearance:none;background:#fff;outline:none;padding:0 14px;font-size:15px;transition:border-color .2s}.textarea{resize:none;height:auto;min-height:110px;padding:12px 14px;line-height:1.5}.input:focus,.textarea:focus,.select:focus{border-color:var(--ink)}.input::placeholder,.textarea::placeholder{color:var(--faint)}.input-prefix{position:relative}.input-prefix>span{font-family:var(--f-ui);color:var(--muted);pointer-events:none;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.input-prefix .input{padding-left:28px}.hairline{background:var(--line);border:0;height:1px;margin:0}.gold-rule{background:var(--gold);border:0;width:36px;height:1px}.no-scrollbar{scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:none}}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.28)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.app-viewport{background:#fff;position:absolute;inset:0;overflow:hidden}.stack-area{position:absolute;inset:0}.stack-area.with-tabs{bottom:calc(var(--tabbar-h) + var(--safe-bottom))}.stack{position:absolute;inset:0}.layer{background:#fff;position:absolute;inset:0}.layer.below{visibility:hidden}.layer.enter{animation:slideInRight .36s var(--ease);box-shadow:-20px 0 40px #00000014}.screen{background:#fff;flex-direction:column;display:flex;position:absolute;inset:0}.screen-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0;position:relative;overflow:hidden auto}.screen-footer{padding:12px var(--gutter) calc(12px + var(--safe-bottom));border-top:1px solid var(--line);z-index:5;background:#fff;flex-shrink:0;position:relative}.with-tabs .screen-footer{padding-bottom:12px}.screen.on-dark .screen-footer,.screen[style*=\#0b0b0b] .screen-footer{background:#0b0b0b;border-color:#222}.footer-stack{flex-direction:column;gap:10px;display:flex}.center-link{width:max-content;margin:18px auto 6px;display:flex}.page-pad{padding:8px var(--gutter) 28px}.page-pad-x{padding-left:var(--gutter);padding-right:var(--gutter)}.page-title{padding:4px var(--gutter) 20px}.page-title .h1{margin:6px 0}.section{margin-top:40px}.section-head{padding:0 var(--gutter);justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:16px;display:flex}.page-pad-x .section-head,.prop-section .section-head{padding:0}.section-head .h2{margin-top:6px}.ink{color:var(--ink)}.two-col{grid-template-columns:1fr 1fr;gap:12px;display:grid}.two-btn{grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;display:grid}.two-btn .btn{padding:0 10px;text-decoration:none}.on-dark{color:#fff}.on-dark .muted,.on-dark .ui-sm{color:#ffffffad}.on-dark .body,.on-dark .body-sm{color:#ffffffd6}.status-scrim{z-index:29;height:var(--safe-top);margin-bottom:calc(-1 * var(--safe-top));pointer-events:none;transition:background .25s;position:sticky;top:0}.status-scrim.on{box-shadow:0 1px 0 var(--line);background:#fffffff7}.topbar{z-index:30;padding:var(--safe-top) 8px 0;height:calc(var(--safe-top) + 52px);background:#fff;align-items:center;gap:6px;transition:background .25s,box-shadow .25s,color .25s;display:flex;position:sticky;top:0}.topbar.scrolled{box-shadow:0 1px 0 var(--line)}.topbar.overlay{margin-bottom:calc(-1 * (var(--safe-top) + 52px));background:0 0}.topbar.overlay.solid{-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line);background:#fffffff5}.topbar.dark{color:#fff;box-shadow:none;background:#0b0b0b}.topbar-side{flex-shrink:0;align-items:center;gap:6px;width:92px;display:flex}.topbar-side.right{justify-content:flex-end}.topbar-title{text-align:center;flex:1;min-width:0;transition:opacity .2s}.topbar-title.hidden{opacity:0}.topbar-title .eyebrow{margin-bottom:2px;font-size:9px}.topbar-name{font-family:var(--f-ui);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.tabbar{height:calc(var(--tabbar-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--line);z-index:40;background:#fffffff7;display:flex;position:absolute;bottom:0;left:0;right:0}.tab{color:var(--faint);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;transition:color .2s;display:flex}.tab.on{color:var(--ink)}.tab-icon{place-items:center;display:grid;position:relative}.tab-dot{background:var(--gold);border-radius:50%;width:7px;height:7px;position:absolute;top:-2px;right:-5px;box-shadow:0 0 0 2px #fff}.tab-label{font-family:var(--f-ui);letter-spacing:.12em;text-transform:uppercase;font-size:9.5px;font-weight:600}.tab.on .tab-label:after{content:"";background:var(--gold);width:14px;height:1px;margin:3px auto 0;display:block}#overlay-root{pointer-events:none;z-index:80;position:absolute;inset:0}#overlay-root>*{pointer-events:auto}.sheet-wrap{flex-direction:column;justify-content:flex-end;display:flex;position:absolute;inset:0}.sheet-backdrop{background:#0a0a0a73;animation:.25s fadeIn;position:absolute;inset:0}.sheet{max-height:calc(100% - var(--safe-top) - 16px);animation:sheetUp .34s var(--ease);padding-bottom:var(--safe-bottom);background:#fff;border-radius:18px 18px 0 0;flex-direction:column;display:flex;position:relative}.sheet.full{height:calc(100% - var(--safe-top) - 16px)}.sheet.dark{background:#111}.sheet-wrap.closing .sheet{transition:transform .24s ease-in;transform:translateY(100%)}.sheet-wrap.closing .sheet-backdrop{opacity:0;transition:opacity .24s}.sheet-grab{background:var(--line-2);border-radius:2px;flex-shrink:0;width:38px;height:4px;margin:8px auto 0}.sheet-head{padding:14px 12px 10px var(--gutter);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.sheet-head .h2{margin-top:2px}.sheet-body{padding:4px var(--gutter) 18px;flex:1;min-height:0;overflow-y:auto}.sheet-footer{padding:12px var(--gutter) 14px;border-top:1px solid var(--line);flex-shrink:0}.sheet-actions{justify-content:space-between;align-items:center;gap:16px;margin-top:12px;display:flex}.sheet-actions .btn{flex:1}.toasts{left:0;right:0;top:calc(var(--safe-top) + 8px);z-index:90;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute}.toast{background:var(--ink);color:#fff;font-family:var(--f-ui);box-shadow:var(--shadow-float);animation:fadeUp .3s var(--ease);border-radius:999px;align-items:center;gap:8px;padding:11px 16px;font-size:13px;display:inline-flex}.toast svg{color:var(--gold-bright)}.photo{background:var(--stone);position:relative;overflow:hidden}.photo img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .5s}.photo.loaded img{opacity:1}.stars{vertical-align:middle;gap:2px;display:inline-flex}.gold-stars{color:var(--gold)}.tap{cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .15s}.tap:active{transform:scale(.985)}.fav-btn{width:36px;height:36px;color:var(--ink);border-radius:50%;place-items:center;transition:color .2s,background .2s;display:grid}.fav-btn.glass{background:#ffffffeb;box-shadow:0 1px 6px #00000024}.fav-btn.on{color:#b3261e}.fav-btn .pop{animation:pop .36s var(--ease)}.segmented{background:var(--cream);border:1px solid var(--line);border-radius:999px;gap:2px;padding:3px;display:flex}.segmented button{height:38px;font-family:var(--f-ui);letter-spacing:var(--track-sm);text-transform:uppercase;color:var(--muted);border-radius:999px;flex:1;font-size:11px;font-weight:600;transition:background .2s,color .2s}.segmented button.on{background:var(--ink);color:#fff}.segmented.small button{height:30px;padding:0 14px;font-size:10px}.chip{border:1px solid var(--line-2);height:36px;font-family:var(--f-ui);color:var(--ink-2);white-space:nowrap;background:#fff;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:0 14px;font-size:13px;transition:background .2s,border-color .2s,color .2s;display:inline-flex}.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}.chip-count{background:var(--gold-bright);color:var(--ink);border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;display:grid}.chip-row{padding:16px var(--gutter) 4px;gap:8px;display:flex;overflow-x:auto}.chip-wrap{flex-wrap:wrap;gap:8px;display:flex}.stepper{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 0;display:flex}.stepper-label{font-family:var(--f-ui);font-size:15px;font-weight:500}.stepper-ctrl{align-items:center;gap:14px;display:flex}.step-btn{border:1px solid var(--line-2);border-radius:50%;place-items:center;width:34px;height:34px;display:grid}.step-btn:disabled{opacity:.3}.step-val{font-family:var(--f-ui);text-align:center;min-width:18px;font-size:16px}.toggle{background:var(--line-2);border-radius:999px;flex-shrink:0;width:46px;height:28px;transition:background .2s;position:relative}.toggle span{width:22px;height:22px;transition:transform .22s var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.toggle.on{background:var(--ink)}.toggle.on span{background:var(--gold-bright);transform:translate(18px)}.rows{border-top:1px solid var(--line)}.row{text-align:left;border-bottom:1px solid var(--line);width:100%;color:inherit;align-items:center;gap:14px;padding:15px 0;text-decoration:none;display:flex}.row-icon{background:var(--cream);width:40px;height:40px;color:var(--ink);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.row-icon.gold{background:var(--gold-wash);color:var(--gold-deep)}.row.danger .row-icon{background:var(--danger-wash);color:var(--danger)}.row-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.row-label{font-family:var(--f-ui);color:var(--ink);font-size:15px;font-weight:500}.row-sub{font-family:var(--f-ui);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.row-value{font-family:var(--f-ui);color:var(--ink-3);white-space:nowrap;font-size:14px}.row-chev{color:var(--faint);flex-shrink:0}.check{text-align:left;border-bottom:1px solid var(--line);align-items:flex-start;gap:14px;width:100%;padding:14px 0;display:flex}.check-box{border:1.5px solid var(--line-2);border-radius:50%;flex-shrink:0;place-items:center;width:24px;height:24px;transition:background .2s,border-color .2s;display:grid}.check.on .check-box{background:var(--ink);border-color:var(--ink);color:var(--gold-bright)}.check-text{font-family:var(--f-ui);flex-direction:column;gap:3px;padding-top:2px;font-size:15px;display:flex}.check.on .check-text>span:first-child{color:var(--muted);text-decoration:line-through;-webkit-text-decoration-color:var(--gold);text-decoration-color:var(--gold)}.spin{animation:.9s linear infinite spin}.empty{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:40px 10px;display:flex}.empty-icon{background:var(--cream);width:64px;height:64px;color:var(--gold-deep);border-radius:50%;place-items:center;display:grid}.empty .btn{margin-top:8px}.badge{font-family:var(--f-ui);letter-spacing:.12em;text-transform:uppercase;background:var(--cream);color:var(--ink);border-radius:999px;align-items:center;gap:5px;padding:6px 10px;font-size:10px;font-weight:600;display:inline-flex}.badge.light{background:#fffffff0}.badge.gold{background:var(--gold-wash);color:var(--gold-deep)}.option-list{flex-direction:column;display:flex}.option{border-bottom:1px solid var(--line);font-family:var(--f-ui);text-align:left;justify-content:space-between;align-items:center;padding:16px 0;font-size:15px;display:flex}.option svg{opacity:0}.option.on svg{opacity:1;color:var(--gold-deep)}.pill-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.pill{border:1px solid var(--line-2);border-radius:var(--r-sm);height:50px;font-family:var(--f-ui);font-size:15px}.pill.on{background:var(--ink);color:#fff;border-color:var(--ink)}.bullets{margin:0;padding:0;list-style:none}.bullets li{font-family:var(--f-body);color:var(--ink-2);padding:0 0 12px 18px;font-size:14.5px;line-height:1.5;position:relative}.bullets li:before{content:"";background:var(--gold);width:6px;height:1px;position:absolute;top:9px;left:2px}.mini-btn{border:1px solid var(--line-2);height:30px;font-family:var(--f-ui);color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:0 11px;font-size:11.5px;display:inline-flex}.mini-btn.on{background:var(--gold-wash);border-color:var(--gold);color:var(--gold-deep)}.mini-btn.dark{background:var(--ink);border-color:var(--ink);color:#fff}.or-line{font-family:var(--f-ui);letter-spacing:var(--track);text-transform:uppercase;color:var(--faint);align-items:center;gap:12px;margin:4px 0 18px;font-size:11px;display:flex}.or-line:before,.or-line:after{content:"";background:var(--line);flex:1;height:1px}.wordmark{font-family:var(--f-ui);letter-spacing:var(--track);text-transform:uppercase;font-weight:600}.cal-dow{z-index:2;border-bottom:1px solid var(--line);font-family:var(--f-ui);color:var(--muted);text-align:center;background:#fff;grid-template-columns:repeat(7,1fr);padding:6px 0 8px;font-size:11px;display:grid;position:sticky;top:-4px}.cal-month{padding-top:18px}.cal-title{font-family:var(--f-display);margin:0 4px 10px;font-size:19px}.cal-week{grid-template-columns:repeat(7,1fr);display:grid}.cal-day{height:50px;font-family:var(--f-ui);flex-direction:column;justify-content:center;align-items:center;gap:1px;font-size:14.5px;display:flex;position:relative}.cal-day .p{color:var(--muted);font-size:9.5px}.cal-day .ev{background:var(--gold);border-radius:50%;width:4px;height:4px}.cal-day.event .p{color:var(--gold-deep)}.cal-day.disabled{color:#cbc6bf}.cal-day.blocked .n{text-decoration:line-through}.cal-day.in{background:var(--cream)}.cal-day.start,.cal-day.end{z-index:1}.cal-day.start:before,.cal-day.end:before{content:"";background:var(--ink);z-index:-1;border-radius:50%;position:absolute;inset:3px}.cal-day.start.has-end{background:linear-gradient(90deg, transparent 50%, var(--cream) 50%)}.cal-day.end{background:linear-gradient(90deg, var(--cream) 50%, transparent 50%)}.cal-day.start,.cal-day.end,.cal-day.start .p,.cal-day.end .p{color:#fff}.cal-legend{align-items:center;gap:8px;margin:0 0 6px;display:flex}.lg-booked,.lg-event{background:#d8d2ca;border-radius:50%;width:10px;height:10px;display:inline-block}.lg-event{background:var(--gold);margin-left:8px}.date-summary{align-items:flex-end;gap:12px;display:flex}.ds-val{font-family:var(--f-ui);margin-top:3px;font-size:14px}.ds-arrow{color:var(--faint);padding-bottom:1px}.ds-nights{font-family:var(--f-ui);color:var(--gold-deep);margin-left:auto;font-size:12px}.map{background:#eef0ee;width:100%;height:100%}.map-pin-wrap{background:0 0;border:0}.map-pin{color:var(--ink);font-family:var(--f-ui);white-space:nowrap;background:#fff;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:600;transition:background .2s,color .2s;display:inline-block;transform:translate(-50%,-50%);box-shadow:0 2px 8px #0003}.map-pin.on{background:var(--ink);color:var(--gold-bright);transform:translate(-50%,-50%)scale(1.1)}.map-home{background:var(--ink);border:3px solid var(--gold-bright);border-radius:50%;width:22px;height:22px;transform:translate(-50%,-50%);box-shadow:0 0 0 6px #cdae7640}.map-landmark{background:var(--gold);border:2px solid #fff;border-radius:50%;width:10px;height:10px;transform:translate(-50%,-50%)}.map-landmark-label{font-family:var(--f-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--gold-deep);white-space:nowrap;text-shadow:0 0 3px #fff,0 0 3px #fff;font-size:10px;font-weight:600;transform:translate(-50%,8px)}.leaflet-container{font-family:var(--f-ui)}.map .leaflet-tile-pane{filter:grayscale()contrast(.92)brightness(1.06)}.map.zoomed-out .map-pin:not(.on){background:var(--ink);border:2px solid #fff;width:14px;height:14px;padding:0;font-size:0}.leaflet-control-attribution{background:#ffffffb3!important;font-size:9px!important}
