:root{--bg:#FBF4EB;--surface:#FFFFFF;--surface-2:#F7E9E1;--surface-3:#F0DCD1;--text:#2B1416;--text-muted:#7A5B5B;--text-faint:#B89A98;--border:#EFDCD6;--accent:#6E141A;--accent-hover:#520C0F;--accent-soft:#F5E1DD;--accent-ink:#FBF4EB;--warm:#C77D2E;--good:#2FAE6E;--danger:#C4453D;--map-land:#F5E9E0;--map-road:#FFFFFF;--map-water:#BEE0EC;--map-park:#C9E1C4;--shadow: 0 1px 2px rgba(80,20,25,.08), 0 12px 32px -12px rgba(80,20,25,.2);--shadow-lg: 0 24px 60px -20px rgba(60,14,18,.38)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg:#1A0D10;--surface:#241316;--surface-2:#2E1619;--surface-3:#3D1D21;--text:#F5E9E2;--text-muted:#C9A8A3;--text-faint:#8C6A66;--border:#3D1D21;--accent:#E3A98C;--accent-hover:#EEC0A6;--accent-soft:#3D1D21;--accent-ink:#2B1416;--warm:#E0A15C;--good:#48C98A;--danger:#E5766A;--map-land:#241316;--map-road:#3D1D21;--map-water:#163244;--map-park:#1F3B2A;--shadow: 0 1px 2px rgba(0,0,0,.3), 0 12px 32px -12px rgba(0,0,0,.5);--shadow-lg: 0 24px 60px -20px rgba(0,0,0,.6)}}:root[data-theme=dark]{--bg:#1A0D10;--surface:#241316;--surface-2:#2E1619;--surface-3:#3D1D21;--text:#F5E9E2;--text-muted:#C9A8A3;--text-faint:#8C6A66;--border:#3D1D21;--accent:#E3A98C;--accent-hover:#EEC0A6;--accent-soft:#3D1D21;--accent-ink:#2B1416;--warm:#E0A15C;--good:#48C98A;--danger:#E5766A;--map-land:#241316;--map-road:#3D1D21;--map-water:#163244;--map-park:#1F3B2A;--shadow: 0 1px 2px rgba(0,0,0,.3), 0 12px 32px -12px rgba(0,0,0,.5);--shadow-lg: 0 24px 60px -20px rgba(0,0,0,.6)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:600;margin:0;text-wrap:balance}p{margin:0}button{font-family:inherit}a{color:inherit;text-decoration:none}::selection{background:var(--accent-soft)}.app{max-width:520px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;background:var(--bg);position:relative}.content{flex:1;overflow-y:auto;padding:calc(18px + env(safe-area-inset-top)) 18px 90px}.content-flush{padding:0 0 90px}.h1-screen{font-size:28px;margin-top:4px}.h1-sub{font-size:14px;color:var(--text-muted);margin-top:6px;margin-bottom:18px}.section-title{font-size:15px;font-weight:700;margin:22px 0 12px}.btn{border:none;border-radius:14px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .15s ease,transform .1s ease}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-ink);font-size:15px;padding:14px;width:100%}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-ghost{background:transparent;color:var(--text-muted);font-size:13.5px;padding:10px}.back-link{display:inline-flex;align-items:center;gap:6px;color:var(--text-muted);font-size:13.5px;font-weight:700;margin-bottom:14px;cursor:pointer;background:none;border:none;padding:0}.search-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:14px;box-shadow:var(--shadow)}.field-row{display:flex;align-items:center;gap:10px;padding:10px 4px;width:100%;background:none;border:none;text-align:left;cursor:pointer;color:inherit;font:inherit}.field-row+.field-row{border-top:1px solid var(--border)}.field-row .ico{color:var(--accent)}.field-main{display:flex;flex-direction:column;flex:1;min-width:0}.field-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-weight:700}.field-value{font-size:14.5px;font-weight:600;margin-top:1px}.split{display:flex;gap:10px}.split .field-row{flex:1;padding:10px 4px}.field-search-input{flex:1;min-width:0;border:none;outline:none;background:none;font:inherit;font-size:14.5px;font-weight:600;color:var(--text)}.field-search-input::placeholder{color:var(--text-faint);font-weight:500}.field-select{flex:1;min-width:0;border:none;outline:none;background:none;font:inherit;font-size:14.5px;font-weight:600;color:var(--text);margin-top:1px;padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.field-number-input{border:none;outline:none;background:none;font:inherit;font-size:14.5px;font-weight:600;color:var(--text);margin-top:1px;padding:0;width:100%}.cal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#140a0c73;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px}.cal-card{background:var(--surface);border-radius:20px;box-shadow:var(--shadow-lg);padding:18px;width:100%;max-width:340px}.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.cal-title{font-family:Fraunces,serif;font-size:16px;font-weight:600}.cal-nav{width:30px;height:30px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center}.cal-nav-next svg{transform:rotate(180deg)}.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:11px;font-weight:700;color:var(--text-faint);margin-bottom:6px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-cell{aspect-ratio:1;border:none;background:none;border-radius:50%;font-size:13.5px;font-weight:600;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center}.cal-cell:disabled{color:var(--text-faint);cursor:not-allowed}.cal-cell.is-selected{background:var(--accent);color:var(--accent-ink)}.cal-cell-empty{cursor:default}.time-scroll{display:flex;overflow-x:auto;gap:8px;padding:4px 2px 8px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.time-scroll::-webkit-scrollbar{display:none}.time-pill{flex:0 0 auto;padding:11px 18px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-weight:700;font-size:14px;white-space:nowrap;cursor:pointer}.time-pill.is-selected{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.chip-row{display:flex;gap:8px;overflow-x:auto;padding:2px 0 4px;margin-top:16px;scrollbar-width:none}.chip-row::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;padding:9px 15px;border-radius:100px;border:1px solid var(--border);background:var(--surface);font-size:13px;font-weight:700;color:var(--text-muted);display:flex;align-items:center;gap:6px;cursor:pointer;transition:.15s ease}.chip.is-active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.vcard{background:var(--surface);border:1px solid var(--border);border-radius:18px;overflow:hidden;box-shadow:var(--shadow);margin-bottom:14px;display:block;cursor:pointer}.photo{position:relative;aspect-ratio:16/10;width:100%;overflow:hidden;background:var(--surface-3)}.photo .scene{display:block;width:100%;height:100%}.photo:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:linear-gradient(to bottom,rgba(10,6,16,.32),transparent 38%)}.photo-hero{aspect-ratio:16/11}.photo-hero .back-btn,.photo-hero .heart-btn{top:calc(10px + env(safe-area-inset-top))}.heart-btn{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:50%;background:#140e1e66;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;z-index:2}.heart-btn .ico{width:16px;height:16px}.heart-btn.is-saved .ico{fill:var(--warm);stroke:var(--warm)}.back-btn{position:absolute;top:10px;left:10px;width:34px;height:34px;border-radius:50%;background:#140e1e66;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;z-index:2}.vcard-body{padding:13px 15px 15px}.vname{font-size:15.5px;font-weight:800;letter-spacing:.01em}.vloc{font-size:12.5px;color:var(--text-faint);margin-top:2px;display:flex;align-items:center;gap:4px}.vmeta{display:flex;flex-wrap:wrap;gap:11px;margin-top:9px}.vmeta span{display:flex;align-items:center;gap:5px;font-size:12.5px;color:var(--text-muted);font-weight:600}.vmeta .ico{width:13px;height:13px;color:var(--text-faint)}.vprice{font-size:13px;font-weight:700;margin-top:9px}.vavail{display:inline-flex;align-items:center;gap:5px;margin-top:9px;font-size:12px;font-weight:700;color:var(--good)}.vavail:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--good)}.attr-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.attr{padding:7px 12px;border-radius:100px;background:var(--surface-2);font-size:12px;font-weight:700;color:var(--text-muted);display:flex;align-items:center;gap:5px}.attr .ico{width:12px;height:12px}.vd-title{font-size:24px;margin-top:14px}.vd-sub{font-size:14px;color:var(--text-muted);margin-top:4px}.vd-desc{font-size:14px;color:var(--text-muted);line-height:1.55;margin-top:12px}.event-card{background:var(--accent-soft);border-radius:16px;padding:15px;margin-top:18px}.event-card .row{display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:700;color:var(--text)}.event-card .row+.row{margin-top:10px}.event-card .ico{color:var(--accent)}.estimate{margin-top:18px}.estimate .label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-weight:700}.estimate .amt{font-family:Fraunces,serif;font-size:28px;margin-top:5px;font-variant-numeric:tabular-nums}.estimate .note{font-size:12.5px;color:var(--text-faint);margin-top:4px}.incl-list{display:flex;flex-direction:column;gap:12px;margin-top:12px}.incl-list .row{display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:600}.incl-list .ico{color:var(--accent);width:17px;height:17px}.sticky-cta{position:sticky;bottom:0;padding:14px 18px calc(18px + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--bg) 65%,transparent);margin:0 -18px}.stepper{display:flex;align-items:center;gap:18px}.stepper button{width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center}.stepper button:disabled{opacity:.4;cursor:not-allowed}.stepper .count{font-family:Fraunces,serif;font-size:22px;min-width:36px;text-align:center;font-variant-numeric:tabular-nums}.field-block{margin-top:20px}.field-block .flabel{font-size:13px;font-weight:700;color:var(--text-muted);margin-bottom:10px;display:block}.time-range{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:12px 14px}.time-range select{border:none;background:none;font:inherit;font-size:13.5px;font-weight:700;flex:1;text-align:center;color:var(--text)}.time-range .ico{color:var(--text-faint)}.check-row{display:flex;align-items:center;gap:10px;padding:11px 13px;border:1px solid var(--border);border-radius:12px;background:var(--surface);font-size:13.5px;font-weight:600;cursor:pointer;margin-bottom:8px}.check-box{width:20px;height:20px;border-radius:6px;border:1.6px solid var(--border);flex:0 0 auto;display:flex;align-items:center;justify-content:center;color:transparent;background:var(--surface)}.check-row.is-checked .check-box{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.check-row.is-checked .check-box .ico{width:12px;height:12px}.range-wrap{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px}.range-val{font-size:14.5px;font-weight:700;text-align:center;margin-bottom:9px;font-variant-numeric:tabular-nums}input[type=range]{width:100%;accent-color:var(--accent);height:4px}.msg-box{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:13px;font-size:13px;color:var(--text);line-height:1.5;font-family:inherit;resize:vertical;min-height:70px}.msg-box::placeholder{color:var(--text-faint);font-style:italic}.offer-venue{font-size:13.5px;color:var(--text-muted);margin-top:16px}.offer-venue b{color:var(--text);font-weight:800}.price-tile{background:linear-gradient(160deg,var(--accent-soft),var(--surface));border:1px solid var(--border);border-radius:18px;padding:22px;margin-top:16px;text-align:center}.price-tile .amt{font-family:Fraunces,serif;font-size:36px;font-variant-numeric:tabular-nums}.price-tile .cap{font-size:12.5px;color:var(--text-faint);margin-top:6px}.offer-lines{margin-top:18px;display:flex;flex-direction:column;gap:11px}.offer-line{display:flex;justify-content:space-between;font-size:13.5px;font-weight:600;padding-bottom:11px;border-bottom:1px solid var(--border)}.offer-line .v{color:var(--text-faint);font-weight:700}.expiry{margin-top:16px;text-align:center;font-size:12px;font-weight:700;color:var(--warm);background:color-mix(in srgb,var(--warm) 14%,transparent);border-radius:100px;padding:8px}.offer-links{display:flex;justify-content:center;gap:16px;margin-top:12px;font-size:12.5px;font-weight:700;color:var(--text-faint)}.offer-links button{background:none;border:none;cursor:pointer;color:inherit;font:inherit;font-weight:700}.status-banner{margin-top:16px;text-align:center;font-size:13px;font-weight:700;padding:12px;border-radius:14px}.status-banner.booked{background:color-mix(in srgb,var(--good) 16%,transparent);color:var(--good)}.status-banner.declined{background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger)}.map-toolbar{padding:calc(14px + env(safe-area-inset-top)) 18px 12px;flex:0 0 auto}.segmented{display:flex;background:var(--surface-2);border-radius:12px;padding:3px}.segmented .seg{flex:1;text-align:center;padding:8px 10px;border-radius:9px;font-size:13px;font-weight:700;color:var(--text-muted);cursor:pointer;background:none;border:none;font-family:inherit}.segmented .seg.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.map-area{position:relative;flex:1;overflow:hidden;height:calc(100vh - 190px);min-height:420px}.map-svg{display:block;width:100%;height:100%}.pin{position:absolute;transform:translate(-50%,-100%);background:var(--surface);border:1.5px solid var(--border);border-radius:100px;padding:7px 12px;font-size:12.5px;font-weight:800;box-shadow:var(--shadow);cursor:pointer;color:var(--text);font-variant-numeric:tabular-nums;transition:transform .12s ease;z-index:2}.pin:after{content:"";position:absolute;left:50%;bottom:-4.5px;transform:translate(-50%) rotate(45deg);width:8px;height:8px;background:var(--surface);border-right:1.5px solid var(--border);border-bottom:1.5px solid var(--border)}.pin.is-active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);z-index:3;transform:translate(-50%,-100%) scale(1.08)}.pin.is-active:after{background:var(--accent);border-color:var(--accent)}.map-card-stack{position:absolute;left:12px;right:12px;bottom:12px;z-index:4}.map-card{display:flex;gap:12px;align-items:center;padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);cursor:pointer}.map-card .thumb{width:56px;height:56px;border-radius:12px;flex:0 0 auto;overflow:hidden}.map-card .info{flex:1;min-width:0}.map-card .vname{font-size:14px}.map-card .vmeta{margin-top:5px;gap:9px}.map-card .vmeta span{font-size:11.5px}.map-card .vprice{font-size:12px;margin-top:5px}.map-card-go{flex:0 0 auto;width:32px;height:32px;border-radius:50%;background:var(--accent-soft);color:var(--accent);border:none;display:flex;align-items:center;justify-content:center}.zoom-ctrl{position:absolute;right:12px;bottom:100px;z-index:3;background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}.zoom-ctrl button{width:32px;height:32px;border:none;background:transparent;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center}.zoom-ctrl button:first-child{border-bottom:1px solid var(--border)}.bottom-nav{position:sticky;bottom:0;left:0;right:0;display:flex;background:var(--surface);border-top:1px solid var(--border);padding:10px 8px calc(10px + env(safe-area-inset-bottom));z-index:10}.bottom-nav a,.bottom-nav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:none;color:var(--text-faint);font-size:10.5px;font-weight:700;cursor:pointer;font-family:inherit}.bottom-nav a.active,.bottom-nav button.active{color:var(--accent)}.bottom-nav .ico{width:21px;height:21px}.auth-wrap{padding:60px 24px 24px;display:flex;flex-direction:column;min-height:100vh}.auth-word{font-family:Fraunces,serif;font-style:italic;font-size:40px;text-align:center;margin-bottom:6px}.auth-tag{text-align:center;color:var(--text-muted);font-size:14px;margin-bottom:36px}.field{margin-bottom:14px}.label{font-size:12.5px;font-weight:700;color:var(--text-muted);margin-bottom:6px;display:block}.input{width:100%;padding:13px 14px;border-radius:12px;border:1px solid var(--border);background:var(--surface);font:inherit;font-size:14.5px;color:var(--text)}.input:focus{outline:2px solid var(--accent);outline-offset:1px}.auth-switch{text-align:center;margin-top:18px;font-size:13.5px;color:var(--text-muted)}.auth-switch b{color:var(--accent);cursor:pointer}.error-text{color:var(--danger);font-size:13px;margin-bottom:12px}.empty{text-align:center;padding:60px 20px;color:var(--text-faint)}.empty .big{font-size:40px;margin-bottom:12px}.spinner-wrap{display:flex;align-items:center;justify-content:center;padding:60px}.ico{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
