:root{--cream:#faf8f1;--paper:#fffef9;--ink:#283c35;--muted:#7b847a;--sage:#697d66;--line:#e6e6db;--purple:#8b65a6;--food:#c77e5e;--teal:#5c8a88;--shadow:0 12px 48px #30443816;--sans:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--serif:'DM Serif Display',Georgia,serif}*{box-sizing:border-box}body{margin:0;font-family:var(--sans);color:var(--ink);background:#edf0e6}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #9baa87;outline-offset:3px}button{color:inherit}button:disabled{cursor:default}a{color:inherit}button[hidden],div[hidden],section[hidden],span[hidden]{display:none!important}.app-shell{position:relative;width:100%;height:100vh;height:100dvh;overflow:hidden}#map{position:absolute;inset:0}.sidebar{position:absolute;top:22px;left:22px;bottom:22px;width:354px;display:flex;flex-direction:column;border-radius:22px;background:var(--cream);box-shadow:var(--shadow);z-index:10;overflow:hidden;border:1px solid #ffffffb3}.brand-row{display:flex;align-items:center;justify-content:space-between;padding:24px 25px 15px;flex-shrink:0}.brand{display:flex;align-items:center;gap:7px;text-decoration:none;font-family:var(--serif);font-size:30px;letter-spacing:-1px;line-height:1}.brand-dot{color:#b88e65;margin-left:-7px}.brand-mark{display:inline-flex;width:31px;height:32px;align-items:center;justify-content:center;color:#738b6a}.brand-mark svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.sidebar-body{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#d6dbce transparent;padding:0 24px 20px}.intro{padding:17px 1px 18px}.eyebrow{font-size:9px;line-height:1.5;letter-spacing:2px;font-weight:700;color:#8a9585;margin:0 0 10px}h1{font:35px/1.12 var(--serif);font-weight:400;letter-spacing:-.75px;margin:0}h1 em{font-style:italic;color:#7b8e6d}.intro-copy{font-size:12px;line-height:1.6;color:#80897c;margin:12px 0 0}.area-note{display:flex;align-items:center;gap:7px;font-size:10px;color:#71806c;padding:9px 10px;background:#eef0e5;border-radius:7px;margin-bottom:16px}.location-dot{width:6px;height:6px;background:#859a72;border-radius:50%;box-shadow:0 0 0 3px #84997116;flex-shrink:0}.area-distance{margin-left:auto;font-size:9px;opacity:.75}.search-wrap{position:relative;display:flex;align-items:center;background:var(--paper);border:1px solid #dedfd3;border-radius:10px;min-height:43px;box-shadow:0 2px 4px #3f4f3103}.search-wrap:focus-within{border-color:#9aa98e;box-shadow:0 0 0 3px #9aa98e1c}.search-wrap>svg{width:16px;height:16px;fill:none;stroke:#87927f;stroke-width:1.5;flex-shrink:0;margin:0 10px 0 12px}.search-wrap input{width:100%;min-width:0;border:0;background:none;outline:0;padding:12px 23px 12px 0;font-size:10.5px;color:var(--ink)}input[type=search]::-webkit-search-cancel-button{display:none}.search-wrap input::placeholder{color:#9b9e90}.clear-search{position:absolute;right:8px;top:8px;border:0;background:#eff0e7;border-radius:50%;width:24px;height:24px;color:#7f8876;font-size:18px}.section-caption{display:flex;align-items:center;justify-content:space-between;margin:22px 0 10px;font-size:9px;letter-spacing:1.3px;color:#939b8b;font-weight:650}.text-button{background:none;border:0;padding:2px 0;font-size:10px;letter-spacing:0;color:#89917e}.text-button.is-active{color:#4f6a50;text-decoration:underline;text-underline-offset:3px}.group-filters{display:grid;grid-template-columns:1fr 1fr;gap:7px}.group-chip{border:1px solid #e2e3d7;border-radius:9px;background:#fdfcf6;padding:10px 9px;display:flex;gap:7px;align-items:center;text-align:left;font-size:10.5px;color:#6d7967;transition:background .15s,border-color .15s,transform .15s;white-space:nowrap}.group-chip:last-child{grid-column:span 2}.group-chip:hover{border-color:#bcc8b1;transform:translateY(-1px)}.group-chip.active{background:#e9eddf;border-color:#bcc9ae;color:#3e5b3e}.group-chip .chip-icon{width:19px;height:19px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.chip-icon svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.chip-count{font-size:9px;color:#a0a68f;margin-left:auto}.group-chip.active .chip-count{color:#7c8b6f}.type-filter{position:relative;display:flex;align-items:center;gap:9px;margin-top:11px;padding:0 10px;border:1px solid var(--line);border-radius:8px;min-height:36px;color:#7b8673;background:#fbfaf4}.type-filter label{font-size:9px;white-space:nowrap;color:#929a88}.type-filter select{border:0;background:none;appearance:none;min-width:0;width:100%;outline:0;font-size:10px;color:#63735e;padding:9px 14px 9px 0}.type-filter svg{position:absolute;right:10px;width:12px;height:12px;fill:none;stroke:#879780;stroke-width:1.3;pointer-events:none}.toggle-row{position:relative;display:flex;align-items:center;gap:8px;cursor:pointer;padding:15px 0;color:#697760}.toggle-row>span:first-child{flex:1}.toggle-row strong{font-size:10px;font-weight:500;display:block;line-height:1.3}.toggle-row small{display:block;font-size:8.5px;font-weight:400;line-height:1.5;color:#99a08d;margin-top:3px}.toggle-row input{position:absolute;right:0;opacity:0;width:34px;height:20px;margin:0}.switch{width:29px;height:17px;background:#dfe3d7;border-radius:20px;position:relative;flex-shrink:0;transition:.2s}.switch::after{content:'';position:absolute;top:3px;left:3px;border-radius:50%;height:11px;width:11px;background:white;box-shadow:0 1px 3px #394a3320;transition:.2s}.toggle-row input:checked+.switch{background:#849876}.toggle-row input:checked+.switch::after{transform:translateX(12px)}.toggle-row input:focus-visible+.switch{outline:3px solid #a5b695;outline-offset:3px}.results-section{border-top:1px solid var(--line);padding-top:17px;margin-top:0}.results-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin:0 1px 12px;font-size:11px;color:#63725d}.result-number{font-weight:700;color:#3f583f}.results-context{color:#a1a88f;font-size:8.5px;text-align:right;max-width:110px;line-height:1.4}.place-list{display:flex;flex-direction:column;gap:4px}.place-card{width:100%;border:1px solid transparent;border-radius:10px;background:none;display:flex;text-align:left;gap:10px;padding:10px 7px;transition:.15s;align-items:flex-start}.place-card:hover{background:#f1f2e8;border-color:#e6e9da}.place-card.selected{background:#eeecef;border-color:#d9d0df}.place-card-icon{display:flex;justify-content:center;align-items:center;height:31px;width:31px;border-radius:10px;flex-shrink:0;color:var(--point-color);background:var(--point-bg)}.place-card-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}.place-card-text{flex:1;min-width:0}.place-card-name{display:block;font-size:11px;font-weight:600;line-height:1.4;color:#465541;margin:0 0 3px}.place-card-meta{font-size:9px;color:#9a9f8d;line-height:1.35;display:block}.place-card-distance{font-size:8.5px;color:#9fa58f;white-space:nowrap;margin-top:4px}.condition-mini{color:#aa8b64;font-size:8px;display:block;margin-top:3px}.show-more{background:none;border:1px solid #e0e4d5;display:flex;align-items:center;justify-content:center;gap:12px;width:100%;border-radius:8px;padding:10px;font-size:10px;color:#7b8b70;margin-top:12px}.show-more:hover{background:#edf0e4}.data-footer{margin-top:9px;border-top:1px solid var(--line);padding-top:13px}.data-footer summary{font-size:9px;color:#8d977f;cursor:pointer;list-style:none;display:flex;align-items:center;gap:7px}.data-footer summary::-webkit-details-marker{display:none}.info-icon{border:1px solid #a5ae99;border-radius:50%;width:12px;height:12px;display:inline-flex;justify-content:center;align-items:center;font:9px Georgia,serif}.data-footer details p{font-size:9px;color:#8b947e;line-height:1.7;margin:9px 0}.footer-signoff{font-family:var(--serif);font-size:13px;font-style:italic;color:#a5ad98;margin:20px 0 0;text-align:center}.map-topbar{position:absolute;left:402px;right:66px;top:27px;display:flex;align-items:flex-start;justify-content:space-between;gap:15px;pointer-events:none;z-index:5}.map-status{display:flex;align-items:center;gap:11px;background:#fffef8ef;backdrop-filter:blur(10px);padding:12px 17px;border:1px solid #ffffffdb;border-radius:12px;box-shadow:0 5px 20px #3746340b}.status-spark{font-size:25px;color:#a5a76e}.map-status strong{font-size:11px;display:block;font-weight:550;color:#6f7b64}.map-status span:not(.status-spark){display:block;font-size:9px;color:#a2aa93;margin-top:4px}.reset-map{pointer-events:auto;background:#fffef7ee;backdrop-filter:blur(8px);border:1px solid #ffffffdd;box-shadow:0 5px 20px #3746340c;border-radius:10px;padding:12px 14px;display:flex;gap:7px;align-items:center;font-size:10px;color:#7e8d71}.reset-map svg{height:15px;width:15px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.maplibregl-ctrl-top-right{top:92px!important;right:20px!important}.maplibregl-ctrl-group{border-radius:10px!important;box-shadow:0 4px 15px #30443815!important;overflow:hidden}.maplibregl-ctrl-group button{height:33px!important;width:33px!important;background:#fffef8!important}.maplibregl-ctrl-attrib{font-family:var(--sans)!important;font-size:9px!important;background:#fffef8bf!important;color:#77836e!important}.maplibregl-ctrl-scale{font-size:9px!important;border-color:#89947e!important;color:#7e8d71!important;background:#fffef899!important}.map-legend{position:absolute;bottom:39px;left:405px;display:flex;gap:16px;align-items:center;background:#fffef8e0;backdrop-filter:blur(8px);padding:11px 16px;border-radius:30px;border:1px solid #ffffffb3;box-shadow:0 4px 20px #30443808;color:#8d9781;font-size:9px;pointer-events:none}.map-legend>span{display:flex;align-items:center;gap:5px}.legend-dot{width:6px;height:6px;border-radius:50%;display:inline-block}.legend-dot.play{background:#9474ac}.legend-dot.food{background:#c88260}.legend-dot.essentials{background:#5b8e8a}.legend-hint{color:#b1b6a3;border-left:1px solid #e4e6d8;padding-left:14px;font-style:italic}.map-notice{position:absolute;left:50%;transform:translateX(-30%);bottom:96px;max-width:360px;background:#fffdf4f5;border:1px solid #e7ddc5;border-radius:12px;padding:12px 16px;color:#9a865d;font-size:10px;line-height:1.5;z-index:15;box-shadow:var(--shadow)}.place-detail{position:absolute;right:25px;bottom:75px;width:325px;max-height:calc(100dvh - 175px);overflow:auto;background:#fffdf7;border:1px solid #ffffffd9;border-radius:19px;box-shadow:0 14px 50px #283c3526;padding:24px;z-index:20}.detail-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.detail-icon{height:41px;width:41px;border-radius:12px;background:var(--point-bg);color:var(--point-color);display:flex;align-items:center;justify-content:center}.detail-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.icon-button{width:28px;height:28px;border:1px solid #e6e7dc;border-radius:50%;display:inline-flex;justify-content:center;align-items:center;background:none;color:#929b85;padding:5px}.icon-button svg{height:17px;width:17px;stroke:currentColor;stroke-width:1.4;fill:none;stroke-linecap:round;stroke-linejoin:round}.detail-label{color:var(--point-color);font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:1px;margin:0 0 6px}.place-detail h2{font:28px/1.12 var(--serif);font-weight:400;letter-spacing:-.3px;margin:0 0 11px;color:#3e513d}.detail-address{font-size:10px;line-height:1.6;color:#9b9f8f;margin:0}.detail-tags{display:flex;flex-wrap:wrap;gap:5px;margin:14px 0 0}.detail-tag{font-size:8px;color:#879679;padding:5px 7px;background:#eff2e6;border-radius:5px}.detail-tag.condition{background:#f4eddf;color:#aa9067}.detail-section{border-top:1px solid #e9ebdf;margin-top:18px;padding-top:15px}.detail-section h3{font-size:9px;color:#859179;letter-spacing:.8px;text-transform:uppercase;margin:0 0 7px;font-weight:600}.detail-section p,.detail-section li{font-size:10px;color:#8b9580;line-height:1.7;margin:0}.detail-section ul{margin:0;padding-left:15px}.detail-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.detail-links a{font-size:10px;padding:9px 11px;text-decoration:none;border:1px solid #dce3d0;border-radius:7px;color:#718565;background:#f4f6ed}.detail-links a:first-child{background:#738869;color:white;border-color:#738869}.detail-disclaimer{font-size:8px;color:#acaf9f;margin:15px 0 0;line-height:1.65}.empty-state,.loading-state{font-size:11px;line-height:1.7;color:#98a18b;padding:22px 10px;text-align:center}.empty-state strong{display:block;font:19px var(--serif);color:#7c8b71;font-weight:400;margin-bottom:7px}.empty-state button{margin-top:12px;background:#e9eedf;color:#718664;border:0;padding:8px 12px;border-radius:6px;font-size:10px}.loading-dot{display:inline-block;background:#a3b38e;width:6px;height:6px;border-radius:50%;margin-right:7px;animation:pulse 1.3s infinite}.mobile-only,.reopen-button{display:none}.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}@keyframes pulse{50%{opacity:.3}}@media(min-width:1500px){.sidebar{width:370px}.sidebar-body{padding-left:27px;padding-right:27px}.map-topbar{left:420px}.map-legend{left:422px}.brand-row{padding-left:28px}h1{font-size:38px}.intro{padding-top:22px;padding-bottom:22px}.intro-copy{font-size:13px}}@media(max-width:1000px){.map-topbar{left:395px;right:21px}.map-status strong{font-size:10px}.map-status{padding:11px 13px}.map-status .status-spark{display:none}.map-legend{left:396px;gap:12px}.legend-hint{display:none}.reset-map span{display:none}.place-detail{width:290px;right:18px;padding:21px}}@media(max-width:760px){.sidebar{top:auto;left:10px;right:10px;bottom:10px;width:auto;height:44dvh;max-height:480px;min-height:220px;border-radius:22px;transition:transform .2s}.brand-row{padding:15px 20px 11px;border-bottom:1px solid #e9ebdf}.brand{font-size:25px}.brand-mark{height:24px;width:24px}.brand-mark svg{width:23px;height:23px}.mobile-only{display:inline-flex}.sidebar-body{padding:0 19px 20px}.intro{display:none}.area-note{margin:12px 0 10px;font-size:9px;padding:7px 9px}.search-wrap{min-height:40px}.section-caption{margin-top:16px}.group-filters{display:flex;overflow-x:auto;padding-bottom:3px;gap:6px;margin-right:-19px;padding-right:19px;scrollbar-width:none}.group-chip{flex-shrink:0;padding:9px 10px;font-size:10px}.chip-count{display:none}.type-filter{margin-top:9px}.toggle-row{padding:12px 0}.results-heading{margin-bottom:7px}.results-section{padding-top:13px}.place-card{padding:8px 7px}.map-topbar{left:13px;right:13px;top:15px;gap:8px}.map-status{padding:10px 13px;border-radius:10px}.map-status strong{font-size:10px}.map-status span:not(.status-spark){font-size:8px}.reset-map{padding:12px;border-radius:9px}.reset-map span{display:inline}.maplibregl-ctrl-top-right{top:73px!important;right:9px!important}.map-legend{display:none}.place-detail{left:13px;right:13px;bottom:calc(44dvh + 25px);width:auto;max-height:calc(50dvh - 70px);padding:18px 21px;border-radius:16px}.place-detail h2{font-size:25px}.detail-top{margin-bottom:10px}.detail-icon{height:30px;width:30px;border-radius:9px}.detail-icon svg{height:18px;width:18px}.detail-section{margin-top:13px;padding-top:11px}.detail-disclaimer{margin-top:11px}.detail-links{margin-top:12px}.maplibregl-ctrl-bottom-right{bottom:calc(44dvh + 15px)!important}.maplibregl-ctrl-bottom-left{bottom:calc(44dvh + 15px)!important}.sidebar.is-collapsed{transform:translateY(calc(100% + 20px));pointer-events:none}.reopen-button{position:absolute;left:14px;bottom:25px;display:flex;align-items:center;gap:8px;z-index:10;background:#fffdf6;border:1px solid #ffffffd9;border-radius:30px;padding:13px 19px;font-size:12px;color:#6a805f;box-shadow:var(--shadow)}.reopen-button .small{width:20px;height:15px;font-size:24px}.reopen-button #mobileCount{font-size:10px;color:#a4af95;padding-left:5px}.sidebar-collapsed .place-detail{bottom:83px;max-height:calc(100dvh - 180px)}.sidebar-collapsed .maplibregl-ctrl-bottom-right,.sidebar-collapsed .maplibregl-ctrl-bottom-left{bottom:5px!important}.map-notice{left:14px;right:14px;bottom:calc(44dvh + 27px);transform:none;font-size:10px;max-width:none}.sidebar-collapsed .map-notice{bottom:85px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
