:root{--ink:#183e3b;--cream:#f7f5ed;--orange:#c75532;--line:#dedfd4}*{box-sizing:border-box}body{margin:0;color:var(--ink);font:15px/1.45 system-ui,-apple-system,sans-serif;background:var(--cream)}button,input,select{font:inherit}button,a,label,summary{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);background:var(--cream);color:var(--ink);border-radius:10px;padding:9px 13px}button:hover{background:#e4e9dc}a{color:var(--ink)}header{height:82px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px}.brand{text-decoration:none;display:flex;gap:12px;align-items:center;font-weight:850;letter-spacing:3px;font-size:23px}.brand small{display:block;font-size:9px;letter-spacing:1.5px;font-weight:650}.brand-icon{background:#e9b95c;border-radius:50%;height:45px;width:45px;text-align:center;font-size:31px;line-height:45px}.top-actions{display:flex;gap:8px}main{display:flex;height:calc(100dvh - 82px)}aside{width:410px;min-width:340px;overflow:auto;background:var(--cream);z-index:500;box-shadow:5px 0 25px #183e3b12}.intro{padding:27px 26px 15px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:2.1px;color:#7b8170}h1{font:52px/.99 Georgia,serif;letter-spacing:-2px;margin:17px 0}h1 i{font-weight:400;color:var(--orange)}.intro p{color:#65746b;font-size:14px;max-width:330px}.filters{padding:0 22px 15px;border-bottom:1px solid var(--line)}.search{display:flex;gap:10px;background:white;border:1px solid var(--line);padding:10px 13px;border-radius:10px}.search span{font-size:22px;line-height:22px}.search input{width:100%;border:0;background:none;outline:0;min-width:0}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:13px 0}.chips input{position:absolute;opacity:0}.chips span{display:block;font-size:12px;padding:9px;border:1px solid var(--line);border-radius:30px;cursor:pointer}.chips input:checked+span{background:var(--ink);color:white;border-color:var(--ink)}.chips input:focus-visible+span{outline:3px solid #e9b95c}.subfilters{font-size:11px;display:flex;gap:8px;align-items:center}.subfilters select{width:145px;border:1px solid var(--line);border-radius:6px;padding:6px;background:transparent;font-size:12px}.subfilters label{display:flex;align-items:center}.results-bar{padding:12px 23px;display:flex;justify-content:space-between;font-size:11px;align-items:center}.results-bar button{font-size:11px;padding:5px 8px}.result{display:flex;text-align:left;width:calc(100% - 30px);margin:0 15px 8px;padding:13px;background:#fffdf7;gap:12px;border-radius:12px}.result:hover,.result.selected{border-color:#c6a45d;background:#fff9e8}.result .emoji{font-size:23px;background:#e6eee7;border-radius:50%;min-width:42px;height:42px;display:grid;place-items:center}.result strong{font-size:14px;display:block}.result small{display:block;color:#6e7b72;font-size:11px;margin-top:3px}.tag{font-size:10px;color:var(--orange);display:inline-block;margin-top:5px}footer{padding:18px 24px;color:#718073;font-size:11px;border-top:1px solid var(--line)}footer summary{cursor:pointer;font-weight:700}.map-wrap{position:relative;flex:1;min-width:0}#map{height:100%;width:100%;background:#d9e8e5}.map-caption{position:absolute;left:22px;top:21px;z-index:450;background:#fffdf2ed;border-radius:8px;padding:11px 16px;font-size:10px;letter-spacing:1.1px;box-shadow:0 2px 12px #183e3b15}.map-caption span{color:#8a8e7e;margin-left:20px}.map-tools{position:absolute;right:20px;bottom:55px;z-index:450;display:flex;gap:8px}.map-note{position:absolute;left:12px;bottom:24px;z-index:450;font-size:10px;background:#fffdf2ed;padding:5px 8px;border-radius:6px}#toast{position:absolute;left:15px;right:15px;bottom:105px;z-index:600;background:var(--ink);color:white;border-radius:10px;padding:12px;display:none}.pin{border:2px solid white;border-radius:50% 50% 50% 8px;transform:rotate(-45deg);display:grid;place-items:center;box-shadow:0 3px 9px #183e3b45;background:#fff4d5}.pin span{transform:rotate(45deg);font-size:19px}.pin.market{background:#ffd3b2}.pin.warning{background:#f9e3b1}.pin.landmark{background:#d0ddd3}.leaflet-popup-content{font:13px/1.5 system-ui;max-height:56dvh;overflow:auto;margin:17px 20px;min-width:220px}.leaflet-popup-content h2{font:24px/1.1 Georgia;margin:7px 0 12px;color:var(--ink)}.leaflet-popup-content p{margin:8px 0}.leaflet-popup-content .badge{display:inline-block;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--orange)}.leaflet-popup-content .sources{border-top:1px solid #ddd;padding-top:8px;font-size:10px}.leaflet-popup-content a{display:inline-block;margin:4px 5px 0 0}.leaflet-control-zoom{margin-top:80px!important}.leaflet-popup-content-wrapper{background:var(--cream);border-radius:14px}#mobile-toggle{display:none}@media(min-width:1600px){aside{width:450px}.intro{padding-top:40px}h1{font-size:62px}}@media(max-width:760px){header{height:67px;padding:0 13px}.brand{font-size:18px;gap:7px;letter-spacing:2px}.brand small{font-size:7px;letter-spacing:.5px}.brand-icon{width:34px;height:34px;font-size:24px;line-height:34px}.top-actions{gap:5px}.top-actions button{font-size:12px;padding:8px}main{height:calc(100dvh - 67px);display:block}aside{position:absolute;top:67px;left:0;right:0;width:100%;min-width:0;max-height:calc(100dvh - 67px);display:none;padding-bottom:70px}.show-list aside{display:block}.intro{padding:18px 22px 8px}h1{font-size:42px;margin:10px 0}.intro p{margin:10px 0;max-width:none}.map-wrap{height:100%}.map-caption{top:12px;left:12px;right:12px;font-size:8px;padding:10px}.map-caption span{margin-left:8px}.map-tools{bottom:90px;right:12px}.map-note{bottom:63px;font-size:9px;max-width:82%}#mobile-toggle{display:block;position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:800;background:var(--ink);color:white;box-shadow:0 4px 18px #183e3b55;white-space:nowrap;padding:12px 22px;border:0}#toast{bottom:140px}.leaflet-control-attribution{font-size:8px!important}.leaflet-popup-content{max-height:48dvh}.leaflet-control-zoom{margin-top:60px!important}}

dialog{color:var(--ink);background:var(--cream);border:1px solid var(--line);border-radius:16px;max-width:380px;max-height:80dvh;overflow:auto;padding:22px;font-size:14px}dialog::backdrop{background:#183e3b88}.pin.useful{background:#e0d7f1}

/* Typography preview: one sans-serif family, consistent weights, one restrained accent. */
h1{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:42px;font-weight:750;line-height:1.08;letter-spacing:-1.25px}
h1 i{font-style:normal;font-weight:750;color:var(--orange)}
.eyebrow{letter-spacing:1.4px}
.leaflet-popup-content h2{font:750 22px/1.2 system-ui,-apple-system,"Segoe UI",sans-serif}
@media(min-width:1600px){h1{font-size:46px}}
@media(max-width:760px){h1{font-size:36px;letter-spacing:-1px}}

.result-group{padding:0 0 14px}.result-group+.result-group{border-top:1px solid var(--line)}.group-heading{display:flex;align-items:center;justify-content:space-between;margin:0;padding:17px 24px 12px;font-size:17px;line-height:1.3;letter-spacing:.2px}.group-count{min-width:25px;padding:3px 7px;border-radius:20px;background:#e6eadd;color:#65746b;font-size:11px;text-align:center;font-weight:600}

.group-heading{padding:9px 16px;gap:10px}.group-heading>input{width:18px;height:18px;accent-color:var(--ink);cursor:pointer;flex-shrink:0}.group-toggle{display:flex;align-items:center;gap:9px;width:100%;padding:10px 3px;border:0;border-radius:5px;background:transparent;text-align:left;font-size:16px;font-weight:750}.group-toggle>span:first-child{flex:1}.group-toggle:hover{background:#e9ede1}.group-arrow{font-size:15px;width:16px;text-align:center}.group-list[hidden]{display:none}.result-group{padding-bottom:5px}.group-list{padding-bottom:10px}

.category-translation{display:block;padding-left:24px;font-size:12px;font-weight:400;color:#718073;margin-top:3px}.place-translation{font-size:15px;font-weight:600;color:#65746b;margin-top:-4px!important}

.sand-pin{background:white;border:2px solid #111;border-radius:50%;width:30px;height:30px;display:grid;place-items:center;box-shadow:0 2px 8px #0005}.sand-label{color:#000;font-size:13px;font-weight:800;background:#fff;border:1px solid #111;border-radius:5px;box-shadow:0 2px 5px #0003;padding:5px 8px}.map-tools{flex-wrap:wrap;justify-content:flex-end}.leaflet-maplibre-gl{image-rendering:auto}

.community-reviews{margin-top:16px}.community-reviews article{border-top:1px solid #ddd;padding:12px 0}.community-reviews article p{margin:8px 0}.leaflet-popup-content{max-height:65vh;overflow:auto}.community-reviews a{display:inline-block;margin:3px 8px 3px 0}dialog{max-width:560px;max-height:85vh;overflow:auto}dialog::backdrop{background:#0006}

/* motorcycle-publications-ui-v1 */
.dialog-close{position:sticky;top:0;display:flex;justify-content:flex-end;background:var(--paper,#f7f5ed);z-index:2;margin:0 0 4px}.dialog-close button{padding:1px 12px;font-size:24px;line-height:1.3}
.motorcycle-rides{margin-top:16px}.motorcycle-rides h3{margin:0 0 6px;font-size:15px}.motorcycle-rides .ride-period,.motorcycle-rides .ride-context{font-size:11px;color:#65746b}.motorcycle-rides .ride-context{padding:9px 10px;background:#e8eee3;border-radius:8px}.ride-publication{border-top:1px solid var(--line);padding:13px 0;overflow-wrap:anywhere}.ride-byline{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.ride-number{flex-shrink:0;color:#718073;font-size:10px}.ride-meta{color:#718073;font-size:11px;margin-top:3px}.motorcycle-rides .ride-place{margin-top:10px}.motorcycle-rides .ride-notes,.motorcycle-rides .ride-coordinates{font-size:11px;color:#65746b}.motorcycle-rides a{display:inline-block;margin:3px 8px 3px 0}.ride-related{font-size:11px;margin-top:6px}.ride-related summary{cursor:pointer}.ride-related a{display:inline-block}#moto-info{margin-top:14px;padding-top:10px;border-top:1px solid var(--line)}#moto-info a{display:inline-block;margin-top:5px}
:root{--header-height:118px}header{height:var(--header-height);gap:16px}.header-widgets{display:flex;align-items:center;gap:22px;margin-left:auto}.weather-wrap>small{display:block;color:#63756c;font-size:11px}.weather-wrap>a{font-size:9px;color:#63756c}#weather{display:flex;gap:22px}.weather-day{display:flex;flex-direction:column;font-size:12px;gap:3px}.weather-day b{text-transform:capitalize;font-size:11px}.weather-day small{font-size:10px;color:#52756d}.visit-counter{display:flex;flex-direction:column;text-align:center;padding:12px 18px;border-left:1px solid #d6ddd2}.visit-counter strong{font-size:24px}.visit-counter small{font-size:10px;color:#63756c}main{height:calc(100dvh - var(--header-height))}.baseline-hint{font-size:11px;line-height:1.5;color:#62736c;margin:14px 0 0}.cuisine-badges{margin:8px 0;color:#234d43;line-height:1.5;font-size:13px}.cuisine-badges>span{display:inline-block;padding:5px 9px;background:#e8eee0;border-radius:8px}.result .cuisine-badges{font-size:10px;margin:5px 0}.card-actions{display:flex;gap:12px}.card-actions a{display:inline-block;padding:8px 10px;background:#e9eee1;border-radius:8px}.map-note{display:none}.leaflet-popup-content{line-height:1.5}.leaflet-popup-content h2{font-size:25px}.community-reviews article{border-top:1px solid #d4dccc;margin-top:14px;padding-top:12px}
@media(max-width:760px){:root{--header-height:164px}header{height:var(--header-height);flex-wrap:wrap;padding:12px 16px;align-content:center;gap:10px}.brand{font-size:20px}.brand small{font-size:8px}.header-widgets{width:100%;justify-content:space-between;gap:8px}.weather-wrap>small{font-size:9px}#weather{gap:14px}.weather-day{font-size:11px}.weather-day b{font-size:9px}.weather-wrap>a{font-size:8px}.visit-counter{padding:8px}.visit-counter strong{font-size:18px}.header-widgets>#share{font-size:10px;padding:7px}aside{top:var(--header-height);height:calc(100dvh - var(--header-height))}.map-caption{font-size:9px;max-width:80%}.map-tools{bottom:25px}.map-tools button{font-size:11px}.leaflet-popup-content{max-width:calc(100vw - 80px)}}
/* Sliding places panel: the map expands into the released space. */
:root{--sidebar-width:410px}main{position:relative;overflow:hidden}aside{position:absolute;inset:0 auto 0 0;width:var(--sidebar-width);min-width:0;height:100%;max-height:none;display:block;transform:translateX(0);transition:transform .25s ease,visibility 0s;overscroll-behavior:contain}.map-wrap{margin-left:var(--sidebar-width);height:100%;transition:margin-left .25s ease}.panel-collapsed aside{transform:translateX(-100%);visibility:hidden;transition:transform .25s ease,visibility 0s .25s}.panel-collapsed .map-wrap{margin-left:0}#panel-toggle{position:fixed;top:calc(var(--header-height) + 16px);left:var(--sidebar-width);z-index:750;display:grid;place-items:center;width:50px;height:64px;padding:0 5px 0 0;border:1px solid #d9dfd9;border-left:0;border-radius:0 34px 34px 0;background:#fff;color:#183e3b;box-shadow:3px 3px 12px #183e3b24;transition:left .25s ease,background .15s}#panel-toggle:hover{background:#f3f7f2}#panel-toggle:focus-visible{outline:3px solid #c7953e;outline-offset:3px}.panel-collapsed #panel-toggle{left:0}.map-caption{left:64px}#mobile-toggle{display:none!important}
@media(min-width:1600px){:root{--sidebar-width:450px}}
@media(max-width:760px){:root{--sidebar-width:min(360px,calc(100vw - 50px))}aside{position:absolute;inset:0 auto 0 0;right:auto;width:var(--sidebar-width);height:100%;max-height:none;display:block;padding-bottom:24px;box-shadow:8px 0 24px #183e3b30}.show-list aside{display:block}.map-wrap{margin-left:0}.map-caption{display:none}#panel-toggle{width:50px;height:64px;top:calc(var(--header-height) + 16px)}.map-tools{bottom:28px}.intro{padding-top:22px}h1{font-size:38px}}
@media(prefers-reduced-motion:reduce){aside,.map-wrap,#panel-toggle{transition:none!important}}
@media(max-width:760px){.leaflet-control-zoom{margin-top:100px!important}}
/* Equal header cards, including the official IQAir city widget. */
:root{--header-height:144px;--header-card-width:216px;--header-card-height:112px}
header{height:var(--header-height);gap:16px;padding:12px 24px;position:relative}.brand{flex:none}.header-widgets{display:flex;flex-direction:row;align-items:center;gap:10px;margin-left:auto;width:auto}
.tide-card,.air-quality-wrap,.weather-wrap,.coast-card{flex:0 0 var(--header-card-width);width:var(--header-card-width);height:var(--header-card-height);min-width:0;max-width:none;margin:0;border:1px solid #dedfd4;border-radius:8px;background:linear-gradient(145deg,#fff,#fffaf0);box-shadow:0 2px 5px #183e3b14;box-sizing:border-box}
.tide-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:12px}.tide-card>small{font-size:11px;color:#65746b}.tide-card time{margin:7px 0;font:600 26px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums;letter-spacing:1px}.tide-card>span{font-size:10px;color:#65746b}
.air-quality-wrap{position:relative;display:flex;align-items:stretch;padding:0}.air-quality-wrap [name="airvisual_widget"]{width:100%;height:100%;min-height:0;transform:none}.air-quality-wrap [name="airvisual_widget"]>div{width:100%;height:100%}.air-quality-wrap [class^="wrapperAirvisualWidget"],.air-quality-wrap [class^="wrapperAirvisualWidget"]:hover{width:100%!important;height:100%;margin:0;box-shadow:none;border-radius:8px;background:transparent;justify-content:center}.air-quality-wrap [class^="legendAirvisualWidget"]{background:transparent;border-radius:8px 8px 0 0}.air-quality-wrap .bodyAirvisualWidget{height:auto;justify-content:center}.air-quality-wrap .itemAirvisualWidget{min-width:0}.air-quality-wrap .AirvisualWidgetItemText{width:73px}.air-quality-wrap .rounded-icon{width:30px}
.weather-wrap{display:flex;flex-direction:column;justify-content:center;padding:9px 10px}.weather-wrap>small{font-size:10px;font-weight:600;color:#48574f;margin:0 0 6px}#weather{display:flex;gap:8px;justify-content:space-between}.weather-day{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;padding-right:6px;border-right:1px solid #eee8d8;font-size:11px}.weather-day:last-child{border:0;padding-right:0}.weather-day b{font-size:9px;white-space:normal}.weather-day span{font-size:11px;color:#38544c;font-weight:600;white-space:nowrap}.weather-day small{font-size:9px;color:#6c8da1}.weather-wrap>a{display:block;margin-top:5px;font-size:8px;color:#7f8b82}
.coast-card{display:flex;flex-direction:column;justify-content:center;padding:12px 15px}.sun-times{display:flex;justify-content:space-between;gap:16px}.sun-times>div{flex:1}.sun-times small{display:block;font-size:11px;color:#65746b;white-space:nowrap}.sun-times b{display:block;margin-top:4px;font-size:17px;font-variant-numeric:tabular-nums}.water-line{border-top:1px solid #eee8d8;margin-top:7px;padding-top:6px;display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:12px}.water-line b{font-size:17px;white-space:nowrap}.coast-card>small{font-size:8px;color:#7f8b82;margin-top:3px}
.visit-counter{position:static;width:60px;max-width:60px;padding:6px;flex:none}.visit-counter strong{font-size:17px;overflow-wrap:anywhere}.header-widgets>#share{position:static;font-size:11px;padding:8px;flex:none}main{height:calc(100dvh - var(--header-height))}
@media(min-width:761px) and (max-width:1300px){:root{--header-height:200px;--header-card-width:calc((100vw - 220px)/4)}header{flex-wrap:wrap;align-content:center;gap:10px}.header-widgets{width:100%;margin:0;justify-content:space-between}.weather-day span{font-size:10px}.weather-day b{font-size:8px}.air-quality-wrap .AirvisualWidgetItemText{width:65px}}
@media(min-width:761px) and (max-width:950px){:root{--header-height:310px;--header-card-width:calc((100vw - 64px)/2)}.header-widgets{flex-wrap:wrap;justify-content:flex-start}.header-widgets>.tide-card,.header-widgets>.air-quality-wrap,.header-widgets>.weather-wrap,.header-widgets>.coast-card{flex-basis:calc((100% - 10px)/2)}.visit-counter{position:absolute;top:14px;right:125px;border:0}.header-widgets>#share{position:absolute;right:24px;top:14px}}
@media(max-width:760px){:root{--header-height:310px;--header-card-width:100%;--header-card-height:112px}header{padding:14px 13px;flex-wrap:wrap;align-content:flex-start;gap:14px}.brand{font-size:18px}.brand small{font-size:7px}.header-widgets{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;align-items:stretch}.tide-card,.air-quality-wrap,.weather-wrap,.coast-card{width:100%;height:112px;min-height:112px;grid-column:auto}.tide-card{padding:8px}.tide-card time{font-size:23px;letter-spacing:0}.tide-card>small,.tide-card>span{font-size:9px}.air-quality-wrap .AirvisualWidgetItemText{width:58px}.air-quality-wrap .rounded-icon{width:24px}.air-quality-wrap .AirvisualWidgetItemText strong{font-size:22px}.air-quality-wrap .itemAirvisualWidget{padding:3px}.weather-wrap{padding:8px}.weather-wrap>small{font-size:9px}#weather{gap:4px}.weather-day{padding-right:3px}.weather-day b{font-size:8px}.weather-day span{font-size:9px}.weather-day small{font-size:8px}.weather-wrap>a{font-size:7px;line-height:1.2}.coast-card{padding:9px}.sun-times{gap:8px}.sun-times small{font-size:9px}.sun-times b{font-size:16px}.water-line{font-size:11px}.water-line b{font-size:16px}.visit-counter{position:absolute;top:13px;right:87px;width:65px;max-width:65px;padding:0;border:0}.visit-counter strong{font-size:13px}.visit-counter small{font-size:8px}.header-widgets>#share{position:absolute;top:16px;right:13px;padding:6px;font-size:10px}}
@media(max-width:360px){.tide-card time{font-size:20px}.air-quality-wrap .AirvisualWidgetItemText{width:49px}.air-quality-wrap .rounded-icon{width:21px}.air-quality-wrap .AirvisualWidgetItemText strong{font-size:20px}.weather-day span{font-size:8px}}
.author-filter{position:relative;margin-top:12px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.author-label{width:100%;font-size:11px;color:#65746b}.author-filter details{position:relative;flex:1;min-width:0}.author-filter summary{display:flex;justify-content:space-between;align-items:center;gap:10px;list-style:none;cursor:pointer;background:#fffdf7;border:1px solid var(--line);border-radius:9px;padding:10px 12px;font-size:13px}.author-filter summary::-webkit-details-marker{display:none}.author-filter summary:focus-visible{outline:3px solid #e9b95c;outline-offset:2px}#author-selected{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.author-dropdown{position:absolute;top:calc(100% + 5px);left:0;right:0;z-index:950;background:#fffdf7;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px #183e3b26;padding:8px}.author-dropdown input{width:100%;min-width:0;border:1px solid #d4ddd4;border-radius:7px;padding:9px;font-size:13px;background:white;outline-color:#c7953e}#author-options{max-height:260px;overflow:auto;margin-top:5px}.author-option{display:flex;justify-content:space-between;align-items:center;gap:10px;border:0;width:100%;border-radius:6px;background:none;padding:9px 8px;text-align:left;font-size:12px}.author-option[aria-pressed="true"]{background:#e8eee0;font-weight:700}.author-option small{flex:none;color:#738176;font-size:10px}.author-empty{padding:6px 8px;color:#738176;font-size:12px}#author-clear{padding:7px 11px;font-size:20px;line-height:24px}#author-clear[hidden]{display:none}
.nested-group{margin-left:14px;border-left:2px solid #e1e6dc}.nested-group>.group-heading{padding-left:10px}.nested-group .group-toggle{font-size:13px}.nested-group .result{width:calc(100% - 20px);margin-left:10px;margin-right:10px}.nested-group .group-count{font-size:10px}

.result-group>.group-heading{transition:background-color .18s ease}.group-highlighted>.group-heading{background:#fff3bf}.group-highlighted>.group-heading .group-toggle:hover{background:#ffedaa}.group-highlighted>.group-heading .group-count{background:#f4e2a0;color:#655c33}

.brand-station-sign{display:block;width:76px;height:56px;object-fit:contain;flex-shrink:0}@media(max-width:760px){.brand{gap:7px}.brand-station-sign{width:58px;height:43px}.brand{font-size:16px;letter-spacing:2px}}
#fit,#panel-toggle{background:#dcefff;border-color:#b9d9ef;color:#244d68}#fit:hover,#panel-toggle:hover{background:#cbe5fb}#fit:active,#panel-toggle:active{background:#b7daf5}

.author-label,.baseline-hint{font-family:Arial,Helvetica,sans-serif;font-size:13px;font-weight:400;line-height:1.5}#search,#author-menu>summary{font-family:system-ui,-apple-system,sans-serif;font-size:15px;font-weight:400;line-height:1.45}#search::placeholder{font-family:inherit;font-size:inherit;font-weight:inherit}

.map-attribution{max-width:calc(100vw - 24px);margin:0 6px 5px 0!important;background:rgba(255,255,255,.85);color:#59645f;border-radius:5px;font:11px/1.5 Arial,Helvetica,sans-serif;box-shadow:0 1px 3px #183e3b12}.map-attribution summary{float:right;display:block;list-style:none;cursor:pointer;width:24px;height:24px;line-height:24px;text-align:center;color:#59645f;font-size:15px}.map-attribution summary::-webkit-details-marker{display:none}.map-attribution summary:focus-visible{outline:2px solid #8da49a;outline-offset:2px}.map-attribution .attribution-text{padding:4px 6px;line-height:24px}.map-attribution a{color:inherit;text-decoration:none}.map-attribution a:hover,.map-attribution a:focus-visible{text-decoration:underline}.map-attribution:not([open]){width:24px;height:24px;background:rgba(255,255,255,.65)}

/* Only the four cards fold away; the brand and top actions stay in place. */
#header-widget-cards{display:contents}#widgets-toggle[hidden]{display:none}
@media(min-width:761px) and (max-width:950px){#header-widget-cards>.tide-card,#header-widget-cards>.air-quality-wrap,#header-widget-cards>.weather-wrap,#header-widget-cards>.coast-card{flex-basis:calc((100% - 10px)/2)}}
#widgets-toggle{display:none}
@media(max-width:760px){
  header{overflow:hidden;transition:height .25s ease}
  .header-widgets{display:block}
  #header-widget-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;transform:translateY(0);opacity:1;transition:transform .25s ease,opacity .18s ease;transform-origin:top}
  body.widgets-collapsed{--header-height:71px}

  .widgets-collapsed #header-widget-cards{transform:translateY(-100%);opacity:0;visibility:hidden;pointer-events:none}
  main{transition:height .25s ease}
  #widgets-toggle{position:fixed;right:0;top:calc(var(--header-height) + 16px);z-index:750;display:grid;place-items:center;width:50px;height:64px;padding:0 0 0 5px;border:1px solid #b9d9ef;border-right:0;border-radius:34px 0 0 34px;background:#dcefff;color:#244d68;box-shadow:-3px 3px 12px #183e3b24}
  #widgets-toggle:hover{background:#cbe5fb}#widgets-toggle:active{background:#b7daf5}#widgets-toggle:focus-visible{outline:3px solid #c7953e;outline-offset:3px}
}
@media(prefers-reduced-motion:reduce){header,main,#header-widget-cards{transition:none!important}}

#install-app{background:#b92f3c;border-color:#a12531;color:#fff;font-size:15px;font-weight:700;padding:9px 18px;margin:0;box-shadow:0 2px 5px #8b1f2b22}#install-app:hover{background:#a12531}#install-app:focus-visible{outline:3px solid #244d68;outline-offset:3px}#install-app[hidden]{display:none}#install-help h2{font-size:23px;line-height:1.2}#install-help p{line-height:1.6}

:root{--install-height:58px}.install-bar{height:var(--install-height);display:flex;align-items:center;justify-content:center;background:var(--cream);border-bottom:1px solid var(--line);position:relative;z-index:760}body:has(#install-app[hidden]){--install-height:0px}.install-bar:has(#install-app[hidden]){display:none}main{height:calc(100dvh - var(--header-height) - var(--install-height))}#panel-toggle,#widgets-toggle{top:calc(var(--header-height) + var(--install-height) + 16px)}

/* Desktop folds the complete header, leaving the install bar available. */
@media(min-width:761px){
  header{overflow:hidden;transition:height .25s ease,padding .25s ease}
  body.widgets-collapsed{--header-height:0px}
  .widgets-collapsed header{padding-top:0;padding-bottom:0;visibility:hidden;pointer-events:none}
  main{transition:height .25s ease}
  #widgets-toggle{position:fixed;right:0;top:calc(var(--header-height) + var(--install-height) + 16px);z-index:750;display:grid;place-items:center;width:50px;height:64px;padding:0 0 0 5px;border:1px solid #b9d9ef;border-right:0;border-radius:34px 0 0 34px;background:#dcefff;color:#244d68;box-shadow:-3px 3px 12px #183e3b24}
  #widgets-toggle:hover{background:#cbe5fb}#widgets-toggle:active{background:#b7daf5}#widgets-toggle:focus-visible{outline:3px solid #c7953e;outline-offset:3px}
  .widgets-collapsed .leaflet-control-zoom{margin-top:100px!important}
}
@media(prefers-reduced-motion:reduce){header,main{transition:none!important}}

/* Bureau travel cards */
.route-unavailable{font-size:12px;color:#736044;display:inline-block;padding:8px 0}.pin.bureau{background:#fff2cc;border:2px solid #8f6c2b}.community-reviews article p{overflow-wrap:anywhere}.group-toggle span:first-child{min-width:0;overflow-wrap:anywhere}

.closure-label{display:block;color:#8a3f24;font-size:12px;font-weight:700;margin:4px 0}.pin.bureau.pin-closed{background:#e7e7e7;border-color:#7e7e7e;border-style:dashed}

/* Group disclosure: a count-sized circle and a large state indicator. */
.group-toggle>.group-arrow{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;padding:0;border-radius:50%;background:#e6eadd;color:#65746b;transition:background-color .18s,color .18s}
.group-arrow svg{width:22px;height:22px;fill:currentColor;transform-origin:center;transition:transform .18s}
.group-toggle[aria-expanded="true"]>.group-arrow{background:#ffe0e0;color:#ff1717}
.group-toggle[aria-expanded="true"]>.group-arrow svg{transform:rotate(90deg)}
@media(prefers-reduced-motion:reduce){.group-arrow svg,.group-toggle>.group-arrow{transition:none}}

#places-panel,#panel-toggle{touch-action:pan-y}

#site-header,.install-bar,#widgets-toggle{touch-action:pan-x}
#widgets-swipe-edge{display:block;position:fixed;left:32px;right:50px;top:calc(var(--header-height) + var(--install-height));height:40px;z-index:741;touch-action:pan-x}
.widgets-collapsed #widgets-swipe-edge{display:block}
@media(max-width:760px){body:not(.panel-collapsed) #panel-toggle{left:var(--sidebar-width);right:auto;top:calc(var(--header-height) + var(--install-height) + 184px);border-left:0;border-right:1px solid #b9d9ef;border-radius:0 34px 34px 0;padding:0 5px 0 0}}

/* A permanent toolbar and a map that fills the available viewport. */
html{height:100%;background:var(--cream)}
body{height:100vh;height:100dvh;min-height:0;overflow:hidden;display:flex;flex-direction:column}
#site-header{flex:0 0 var(--header-height)}
body,body:has(#install-app[hidden]){--install-height:58px}
.install-bar,.install-bar:has(#install-app[hidden]){display:flex;flex:0 0 var(--install-height);height:var(--install-height);padding:8px 16px;gap:12px;justify-content:space-between;align-items:center}
.install-bar #fit,.install-bar #install-app{background:#ff1717;border-color:#ff1717;color:white;min-height:40px;font-size:14px;font-weight:750;padding:8px 13px;margin:0;white-space:nowrap}
.install-bar #fit:hover,.install-bar #install-app:hover{background:#dd1010;border-color:#dd1010}
.install-bar #fit:active,.install-bar #install-app:active{background:#be0c0c;border-color:#be0c0c}
.install-bar #install-app[hidden]{display:none}
main{flex:1 1 0;min-height:0;height:auto}
.map-wrap,#map{height:100%;min-height:0}
.map-tools{bottom:calc(28px + env(safe-area-inset-bottom,0px))}
.leaflet-bottom{bottom:env(safe-area-inset-bottom,0px)}
@media(max-width:420px){.install-bar{padding:8px 10px;gap:8px}.install-bar #fit,.install-bar #install-app{font-size:12px;padding:8px 10px}}
.result-group{position:relative}
.result-group.group-expanded::before{content:'';position:absolute;left:2px;top:8px;bottom:8px;width:4px;border-radius:4px;background:#ff1717;pointer-events:none;z-index:1}
.nested-group.group-expanded::before{left:-2px}

#count{color:#ff1717;font-size:16px;line-height:1.45;font-weight:800}

.map-clear .install-bar #fit{background:#ffc400;border-color:#ffc400;color:#4d3900}
.map-clear .install-bar #fit:hover{background:#efb800;border-color:#efb800}
.map-clear .install-bar #fit:active{background:#dfa900;border-color:#dfa900}
.map-clear #count{color:#ffc400}

.install-bar #count{min-width:0;flex:1;text-align:right;line-height:1.2}
.results-bar:empty{display:none}

/* Installation lives in the header; the selection count stays in the toolbar. */
#site-header #install-app{flex:none;background:#ff1717;border-color:#ff1717;color:#fff;font-size:12px;line-height:1.2;font-weight:750;padding:8px 10px;max-width:150px}
#site-header #install-app:hover{background:#dd1010;border-color:#dd1010}
#site-header #install-app[hidden]{display:none}
@media(min-width:761px) and (max-width:950px){#site-header #install-app{position:absolute;right:125px;top:13px;width:108px}}
@media(max-width:760px){#site-header #install-app{position:absolute;right:87px;top:13px;width:96px;min-height:40px;font-size:11px;padding:6px;white-space:normal}}
@media(max-width:360px){.brand{font-size:15px;gap:7px}.brand img{max-width:44px}.brand small{font-size:6px}#site-header #install-app{width:80px;right:78px;font-size:10px}.header-widgets>#share{right:8px;font-size:9px}}

/* IQAir prefixes its class with a space; match the class token anywhere. */
.air-quality-wrap [class*="wrapperAirvisualWidget"],.air-quality-wrap [class*="wrapperAirvisualWidget"]:hover{width:100%!important;height:100%!important;margin:0!important;border:0!important;box-shadow:none!important;border-radius:inherit;background:transparent!important;justify-content:center}
.header-actions,.header-action-row{display:contents}
.site-visit-counter{display:none}
.header-widgets .header-actions #share{position:static;font-size:11px;padding:8px;flex:none}
@media(max-width:760px){.header-widgets .header-actions #share{position:absolute;top:16px;right:13px;font-size:10px;padding:6px}}
@media(display-mode:browser){
 .header-actions{display:flex;flex:none;flex-direction:column;gap:8px;width:182px;align-items:stretch;justify-content:center}
 .header-action-row{display:flex;gap:8px;align-items:stretch}
 #site-header .header-actions #install-app{position:static;width:100%;max-width:none;min-height:42px;font-size:12px;white-space:normal}
 .header-widgets .header-actions #share,.site-visit-counter{display:flex;flex:1;position:static;align-items:center;justify-content:center;width:87px;min-width:0;height:34px;min-height:34px;border:1px solid var(--line);border-radius:10px;background:var(--cream);padding:4px 6px;font-size:11px;box-sizing:border-box}
 .site-visit-counter{flex-direction:column;gap:0;line-height:1.05;color:var(--ink)}
 .site-visit-counter strong{font-size:12px;font-weight:750}.site-visit-counter small{font-size:8px}
}
@media(display-mode:browser) and (max-width:950px){#site-header .header-actions{position:absolute;right:13px;top:12px;width:176px}}
@media(display-mode:browser) and (max-width:760px){
 #site-header .header-actions{display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:6px;align-items:start}
 #site-header .header-actions>#install-app{grid-column:1;grid-row:1;width:100%;min-height:40px;font-size:10px;line-height:1.15;padding:6px 4px;white-space:normal}
 #site-header .header-actions>.header-action-row{grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:4px;width:72px;align-items:stretch}
 .header-widgets .header-actions #share,.header-actions .site-visit-counter{position:static;box-sizing:border-box;width:72px;min-width:0;height:28px;min-height:28px;padding:3px 4px;font-size:10px}
 .header-actions .site-visit-counter{flex-direction:column;gap:0;line-height:1.05}
 .header-actions .site-visit-counter strong{font-size:10px}.header-actions .site-visit-counter small{font-size:7px}
 :root{--header-height:338px}
 header{padding-top:14px}.header-widgets{margin-top:28px}
 body.widgets-collapsed{--header-height:99px}
 .header-widgets .header-actions #share,.site-visit-counter{height:30px;min-height:30px;font-size:10px}
 #site-header .header-actions #install-app{min-height:40px;font-size:11px;padding:6px}
}
@media(display-mode:browser) and (max-width:360px){#site-header .header-actions{width:146px;right:8px;grid-template-columns:minmax(0,1fr) 68px}.header-widgets .header-actions #share,.header-actions .site-visit-counter{width:68px}.header-widgets .header-actions #share{font-size:9px}.site-visit-counter strong{font-size:11px}.site-visit-counter small{font-size:7px}}

@media(display-mode:standalone),(display-mode:fullscreen),(display-mode:minimal-ui){
 .header-action-row{display:flex;flex:none;flex-direction:column;gap:4px;width:80px;align-items:stretch}
 .header-widgets .header-actions #share,.site-visit-counter{display:flex;position:static;align-items:center;justify-content:center;box-sizing:border-box;width:80px;height:28px;min-height:28px;border:1px solid var(--line);border-radius:9px;background:var(--cream);padding:3px 5px;font-size:10px;line-height:1.1}
 .site-visit-counter{gap:3px;flex-direction:row}.site-visit-counter strong{font-size:10px}.site-visit-counter small{font-size:7px}
}
@media(display-mode:standalone) and (max-width:950px),(display-mode:fullscreen) and (max-width:950px),(display-mode:minimal-ui) and (max-width:950px){.header-action-row{position:absolute;right:13px;top:9px}}



/* Compact mobile filters; keep search and author selection immediately available. */
.data-update-note{position:absolute;left:24px;top:82px;width:205px;margin:0;color:#772431;font-size:10px;line-height:1.25;font-weight:650}
@media(max-width:760px){
 #places-panel .intro{display:none}
 #places-panel .filters{padding:12px 14px 10px}
 #places-panel .search{padding:8px 11px}
 #places-panel .author-filter{margin-top:8px;gap:4px}
 #places-panel .author-label{font-size:12px;line-height:1.2}
 #places-panel #author-menu>summary{padding:8px 11px;font-size:14px}
 #places-panel .baseline-hint{margin:8px 0 0;font-size:11px;line-height:1.3}
 .data-update-note{left:13px;top:57px;width:calc(100% - 215px);font-size:9px;line-height:1.2;color:#772431}
}

@media(max-width:760px){body.widgets-collapsed{--header-height:99px}.data-update-note{white-space:normal;overflow:visible;text-overflow:clip;max-height:none}}

@media(max-width:760px){
 #places-panel .filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(112px,.8fr);gap:6px;padding:10px 10px 8px;align-items:start}
 #places-panel .search{height:42px;padding:8px;gap:5px}
 #places-panel #search{font-size:12px}
 #places-panel .author-filter{margin:0;gap:3px;flex-wrap:nowrap;min-width:0}
 #places-panel .author-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 #places-panel #author-menu>summary{height:42px;padding:8px;font-size:12px}
 #places-panel .author-dropdown{left:auto;right:0;width:min(270px,calc(100vw - 80px))}
 #places-panel .baseline-hint{grid-column:1/-1;margin:0;font-size:10px}
 #places-panel .result-group{padding-bottom:0}
 #places-panel .group-heading{padding:3px 12px;gap:8px}
 #places-panel .group-toggle{padding:5px 0;min-height:42px;font-size:15px;line-height:1.2;gap:6px}
 #places-panel .nested-group>.group-heading{padding-left:8px}
 #places-panel .nested-group .group-toggle{font-size:13px}
}

@media(max-width:760px){
 #site-header .brand-block>.data-update-note{display:none!important}
 body,body:has(#install-app[hidden]){--install-height:48px}
 .install-bar,.install-bar:has(#install-app[hidden]){padding-top:4px;padding-bottom:4px}
}
@media(display-mode:standalone) and (max-width:760px),(display-mode:fullscreen) and (max-width:760px),(display-mode:minimal-ui) and (max-width:760px){
 body.widgets-collapsed{--header-height:82px}
 .header-action-row{top:5px}
 .data-update-note{top:68px}
}

body:not(.panel-collapsed) #widgets-swipe-edge{display:none}

#author-menu>summary{width:100%;min-height:42px;touch-action:manipulation}#author-menu>summary>*{pointer-events:none}

.brand-block{display:contents}
@media(min-width:761px){
 .brand-block{display:flex;flex:none;flex-direction:column;align-items:flex-start;gap:6px}
 .brand-block .data-update-note{position:static;width:auto;max-width:300px;white-space:nowrap;font-size:10px;line-height:1.3}
}
.map-clear #count{-webkit-text-stroke:.3px #4d3900;paint-order:stroke fill}

/* A single quiet filter, with details only inside restaurant cards. */
.date-night-tools{padding:6px 16px 12px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.date-night-filter{display:inline-flex;align-items:center;gap:9px;min-height:42px;padding:8px 16px;border:1px solid #cda6a1;border-radius:999px;background:linear-gradient(120deg,#fffaf5,#f7ece8);color:#772431;font-size:14px;font-weight:700;letter-spacing:.1px;box-shadow:0 2px 5px #7724310a;touch-action:manipulation}
.date-night-filter svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;flex:none}
.date-night-filter:hover{background:#f3e1dd;border-color:#a85b63}
.date-night-filter[aria-pressed="true"]{color:#fffaf5;border-color:#772431;background:#772431;box-shadow:0 2px 7px #77243125}
.date-night-filter[aria-pressed="true"] svg{fill:currentColor;stroke-width:1.2}
.date-night-filter:focus-visible{outline:3px solid #c09d62;outline-offset:3px}
.date-filter-state:empty{display:none}.date-night-tools>small{font-size:10px;line-height:1.4;color:#6b5752;max-width:250px}
.date-night-card{border:1px solid #e2c8bf;background:#fff7f1;border-radius:12px;padding:12px;margin:12px 0;color:#493233;font-size:12px}
.date-night-card h3{color:#772431;font-size:15px;margin:0 0 8px;font-weight:750}.date-night-card p{margin:6px 0 10px}.date-night-card dl{margin:0}.date-night-card dt{font-weight:700;color:#772431;margin-top:7px}.date-night-card dd{margin:1px 0 0}.date-night-card small{font-size:10px;color:#79665f}.date-night-card details{border-top:1px solid #e2c8bf;margin-top:10px;padding-top:7px}.date-night-card summary{cursor:pointer;font-weight:650}.empty-results{padding:0 16px 14px;font-size:13px}
@media(max-width:760px){.date-night-tools{padding:5px 12px 9px}.date-night-filter{font-size:13px;padding:7px 14px}.date-night-card{padding:10px}}

#count{color:#ff1717;font-size:15px;-webkit-text-stroke:0}
.map-clear #count{color:#772431;-webkit-text-stroke:.3px #772431;paint-order:stroke fill}

/* Keep map information at the corner, below the geolocation toolbar. */
.leaflet-bottom.leaflet-right .map-attribution{position:absolute;right:2px;bottom:2px;margin:0!important}
.map-attribution[open]{display:flex;flex-direction:row-reverse;align-items:center;max-width:calc(100vw - 110px)}
.map-attribution summary{flex-shrink:0}
.map-attribution .attribution-text{display:block;min-width:0;white-space:nowrap;overflow-x:auto;padding:0 6px;line-height:24px}

/* Distance scale overlays the map information in the bottom-right corner. */
.leaflet-bottom.leaflet-right .leaflet-control-scale{position:absolute;right:2px;bottom:2px;margin:0!important;z-index:2;pointer-events:none}
.leaflet-control-scale-line{background:var(--cream)}

/* Match the selection count to the reset button at every screen width. */
.install-bar #count{font-size:14px}
@media(max-width:420px){.install-bar #count{font-size:12px}}

#share-map-dialog{width:min(420px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--line);border-radius:20px;background:var(--cream);color:var(--ink);box-shadow:0 16px 70px #183e3b33;overflow:auto}
#share-map-dialog::backdrop{background:#102d2b66}
.share-sheet{padding:24px;position:relative}.share-sheet h2{font-size:22px;margin:0 28px 6px 0}.share-subtitle,.share-hint{font-size:13px;color:#667870;line-height:1.5}.share-close{position:absolute;right:12px;top:10px;border:0;font-size:26px;padding:0 8px;background:transparent}.share-targets{display:flex;gap:6px;margin:16px 0}.share-targets[hidden]{display:none}.share-targets button{flex:1;font-size:13px}.share-targets button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}.share-place-name{font-weight:700;font-size:14px}.share-copy,.share-native{width:100%;margin:5px 0;min-height:44px}.share-copy{background:var(--ink);border-color:var(--ink);color:white}.share-copy:hover{background:#275650}.share-native[hidden]{display:none}.share-messengers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0}.share-service{display:flex;align-items:center;justify-content:center;min-height:42px;border:1px solid var(--line);border-radius:10px;text-decoration:none;font-size:13px;font-weight:650;background:white}.share-service:hover{background:#e7ece2}.share-link{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;padding:9px;background:#fff;color:#667870;font-size:11px}.header-widgets .header-actions #share{white-space:nowrap}
@media(max-width:760px){#share-map-dialog{margin:auto auto 12px;border-radius:20px;max-height:calc(100dvh - 24px)}.share-sheet{padding:20px}}

.card-share{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:600 13px/1.3 system-ui,-apple-system,sans-serif;min-height:36px;padding:8px 12px;margin:0 0 10px;border:1px solid #c8d7ce;border-radius:10px;background:#edf3ec;color:var(--ink)}.card-share:hover{background:#dce9de}.card-share:focus-visible{outline:2px solid var(--ink);outline-offset:2px}

.card-share{min-height:44px;padding:10px 16px;background:#772431;border-color:#772431;color:#fff;font-weight:700;box-shadow:0 2px 5px #77243122}.card-share:hover{background:#60202a;border-color:#60202a}.card-share:focus-visible{outline-color:#772431}
/* The gesture strip must not cover actions in an open place card. */
body:has(.leaflet-popup) #widgets-swipe-edge,body:has(dialog[open]) #widgets-swipe-edge{pointer-events:none}
#site-header .header-widgets .header-actions #share{background:#772431;border-color:#772431;color:#fff;font-weight:700}
#site-header .header-widgets .header-actions #share:hover{background:#60202a;border-color:#60202a}

@media(max-width:760px){.leaflet-popup-content{max-width:calc(100vw - 122px);min-width:min(220px,calc(100vw - 122px))}}

/* Keep action explanations and links readable in narrow place cards. */
.card-actions{flex-wrap:wrap;align-items:flex-start}
.card-actions .route-unavailable{flex-basis:100%}
.card-actions a{max-width:100%;box-sizing:border-box}

.leaflet-popup-content,dialog[data-place-id]{overflow-wrap:anywhere}

/* Transport: category order precedes straight-line distance. */
.transport-sort-note{font-size:13px;line-height:1.5;margin:12px 16px;color:#52645c}
.transport-category-heading{font-size:17px;margin:0;padding:14px 18px;background:#e6eee8;color:#183f39;border-top:1px solid #cbd8cf}
.transport-list-distance{display:block;font-size:12px;font-weight:600;color:#386651;margin:4px 0}
.transport-route{border-top:1px solid #ccd8ce;padding:10px 0;overflow-wrap:anywhere}
.transport-route h4{font-size:15px;line-height:1.4;margin:4px 0}
.transport-route-category{font-size:12px;color:#52645c;margin:4px 0}
.transport-route dl{margin:10px 0}.transport-route dt{font-weight:700;margin-top:8px}.transport-route dd{margin:2px 0 0;line-height:1.5}
.transport-distance{font-size:12px;color:#386651}.transport-routes a{overflow-wrap:anywhere}
/* Tide widget keeps the clock's existing grid slot and dimensions. */
.tide-card{cursor:pointer;color:#254c46;font-family:inherit;gap:4px;padding:9px 8px!important;text-align:center;overflow:hidden;line-height:1.2}
.tide-card>small{display:block;font-size:9px;color:#65746b}.tide-card>strong{font-size:14px;font-weight:650}.tide-card:focus-visible{outline:3px solid #248b82;outline-offset:2px}
.tide-level-track{height:5px;flex-shrink:0;width:86%;margin:1px auto;border-radius:5px;background:#dfe9e3;overflow:hidden}.tide-level-track span{display:block;height:100%;width:0;background:linear-gradient(90deg,#75bab1,#267e78);transition:width .6s}
#tide-events{display:flex;justify-content:center;gap:7px;font-size:10px;font-variant-numeric:tabular-nums;white-space:nowrap}#tide-events b{background:#dceee5;border-radius:4px;padding:2px 3px}#tide-status{max-width:100%;font-size:8px;line-height:1.25}
#tide-dialog{width:min(760px,calc(100vw - 28px));max-width:calc(100vw - 28px);max-height:85dvh;box-sizing:border-box;padding:22px;border:1px solid #d6dfd5;border-radius:14px;color:#254c46;background:#fffdf6;overflow:auto}#tide-dialog::backdrop{background:#102b2b88}#tide-dialog h2{font-size:20px;margin:0 28px 12px 0}#tide-detail-status,.tide-caption{font-size:12px;line-height:1.5;color:#64726b}#tide-dialog a{color:#287e76}#tide-chart svg{display:block;width:100%;height:auto}#tide-detail-events{display:flex;flex-wrap:wrap;gap:8px}#tide-detail-events span{border:1px solid #dce4db;border-radius:8px;padding:7px;font-size:12px}#tide-detail-events .next{background:#dceee5;border-color:#8abdaf}#tide-native iframe{border:0;width:100%;height:240px;background:white;margin-top:10px}#tide-original summary{cursor:pointer;padding:10px 0;font-size:13px}
@media(max-width:400px){.tide-card>strong{font-size:12px}#tide-events{font-size:9px;gap:3px}.tide-card>small{font-size:8px}#tide-dialog{padding:15px}}
#tide-dialog>.dialog-close{position:absolute;top:12px;right:12px;background:transparent;margin:0}
.region-home-link{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:6px 11px;border:1px solid #c8d8ce;border-radius:10px;background:#edf4ec;color:#174c45;text-decoration:none;font:650 12px/1.2 system-ui,-apple-system,sans-serif;white-space:nowrap}.region-home-link:hover{background:#dcebe0}.region-home-link:focus-visible{outline:2px solid #248b82;outline-offset:2px}
@media(max-width:420px){.region-home-link{font-size:10px;padding:5px 7px;min-height:30px}}



/* Unified navigation back to the region portal. */
.region-home-link{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 12px;border:1px solid #c8d8ce;border-radius:10px;background:#edf4ec;color:var(--ink);text-decoration:none;font:700 13px/1.2 system-ui,-apple-system,sans-serif;white-space:nowrap;touch-action:manipulation}.region-home-link:hover{background:#dcebe0}.region-home-link:focus-visible{outline:2px solid #248b82;outline-offset:2px}
@media(max-width:420px){.region-home-link{min-height:40px;padding:7px 9px;font-size:12px}}


/* At very narrow widths, keep the full place count on its own row. */
@media(max-width:340px){
 body,body:has(#install-app[hidden]){--install-height:64px}
 .install-bar,.install-bar:has(#install-app[hidden]){display:grid;grid-template-columns:max-content max-content;grid-template-rows:40px 16px;align-content:center;align-items:center;justify-content:space-between;gap:0 8px;padding:4px 10px;flex:0 0 var(--install-height);height:var(--install-height);min-height:var(--install-height)}
 .install-bar>a{grid-column:1;grid-row:1}
 .install-bar #fit{grid-column:2;grid-row:1}
 .install-bar #count{grid-column:1/-1;grid-row:2;width:100%;min-width:0;text-align:center;white-space:nowrap;font-size:11px;line-height:1}
}

/* Final mobile spacing for the collapsed header and header actions. */
@media(max-width:760px){
 #site-header{transition:height .25s ease,flex-basis .25s ease}
 body.widgets-collapsed{--header-height:71px}
}
@media(display-mode:browser) and (max-width:760px){
 #site-header .header-actions{gap:8px}
 body.widgets-collapsed #site-header .header-actions{top:4px}
}
@media(display-mode:browser) and (max-width:360px){
 #site-header .header-actions{gap:8px}
}
@media(display-mode:standalone) and (max-width:760px),(display-mode:fullscreen) and (max-width:760px),(display-mode:minimal-ui) and (max-width:760px){
 body.widgets-collapsed{--header-height:71px}
}

/* Keep the install/share controls in a non-overlapping grid in every mobile display mode. */
@media(max-width:760px){
 #site-header .header-actions{position:absolute;inset:12px 13px auto auto;display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:8px;width:176px;align-items:start;justify-content:normal}
 #site-header .header-actions>#install-app{position:static;grid-column:1;grid-row:1;width:100%;max-width:none;min-height:40px;margin:0;padding:6px 4px;font-size:11px;line-height:1.15;white-space:normal}
 #site-header .header-actions>.header-action-row{position:static;grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:4px;width:72px;align-items:stretch}
 #site-header .header-actions>.header-action-row #share,#site-header .header-actions .site-visit-counter{position:static;box-sizing:border-box;width:72px;min-width:0;height:28px;min-height:28px;margin:0;padding:3px 4px;font-size:10px}
 #site-header .header-actions .site-visit-counter{flex-direction:column;gap:0;line-height:1.05}
 #site-header .header-actions .site-visit-counter strong{font-size:10px}
 #site-header .header-actions .site-visit-counter small{font-size:7px}
 body.widgets-collapsed #site-header .header-actions{top:4px}
}
@media(max-width:360px){
 #site-header .header-actions{right:8px;width:146px;grid-template-columns:minmax(0,1fr) 68px}
 #site-header .header-actions>#install-app{font-size:10px}
 #site-header .header-actions>.header-action-row{width:68px}
 #site-header .header-actions>.header-action-row #share,#site-header .header-actions .site-visit-counter{width:68px}
 #site-header .header-actions>.header-action-row #share{font-size:9px}
}

/* Center the share label independently of its decorative arrow on phones. */
@media(max-width:760px){
 #site-header .header-actions>.header-action-row #share{display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.1;padding:3px 4px}
 #site-header .header-actions>.header-action-row #share .share-button-icon{display:none}
 #site-header .header-actions>.header-action-row #share .share-button-label{display:block;width:100%;margin:0;text-align:center;white-space:nowrap}
}

/* Compact the city masthead and map toolbar on mobile when widgets are folded. */
@media(max-width:760px){
 body.widgets-collapsed{--header-height:60px}
 body.widgets-collapsed #site-header{padding-top:8px;padding-bottom:8px}
 body.widgets-collapsed #site-header .header-actions{top:0}
 body,body:has(#install-app[hidden]){--install-height:42px}
 .install-bar,.install-bar:has(#install-app[hidden]){padding-top:1px;padding-bottom:1px}
}
@media(max-width:340px){
 body,body:has(#install-app[hidden]){--install-height:56px}
 .install-bar,.install-bar:has(#install-app[hidden]){grid-template-rows:40px 12px;padding:2px 10px}
 .install-bar #count{font-size:10px}
}

/* First visit: keep the city masthead, fold away widgets, and gently highlight both panel controls. */
:root.widgets-collapsed{--header-height:60px}
@media(min-width:761px){
  :root.widgets-collapsed,body.widgets-collapsed{--header-height:82px}
  .widgets-collapsed header{height:var(--header-height);padding-top:0;padding-bottom:0;visibility:visible;pointer-events:auto}
  .widgets-collapsed #header-widget-cards{display:none}
}
#panel-toggle.control-onboarding-pulse,#widgets-toggle.control-onboarding-pulse{outline:3px solid transparent;outline-offset:3px;animation:map-control-pulse 1.3s ease-in-out infinite;will-change:transform,filter,outline-color}
@keyframes map-control-pulse{0%,100%{transform:scale(1);outline-color:rgba(255,174,57,0);filter:drop-shadow(0 1px 2px rgba(24,62,59,.3))}50%{transform:scale(1.18);outline-color:rgba(255,174,57,1);filter:brightness(1.16) drop-shadow(0 0 9px rgba(255,174,57,1)) drop-shadow(0 0 25px rgba(255,149,25,.95))}}
@media(prefers-reduced-motion:reduce){#panel-toggle.control-onboarding-pulse,#widgets-toggle.control-onboarding-pulse{animation:none!important}}

.results-bar #select-all-categories{min-height:36px;padding:7px 12px;border-color:#cbd8ca;background:#edf3ea;font-size:12px;font-weight:650}.results-bar #select-all-categories:hover{background:#e2ecdf}


/* Compact header actions: keep sharing and visitor count together on one line. */
#site-header .header-action-row{display:flex!important;flex-direction:row!important;align-items:center;justify-content:flex-end;gap:6px;width:auto;}
#site-header .header-actions{display:flex;align-items:center;gap:8px;}
#site-header .header-actions .header-action-row #share,
#site-header .header-actions .site-visit-counter{position:static;box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:92px;min-width:0;height:34px;min-height:34px;margin:0;padding:4px 6px;line-height:1.05;}
#site-header .header-actions .site-visit-counter{flex-direction:row;gap:4px;white-space:nowrap;}
#site-header .header-actions .site-visit-counter strong{font-size:12px;}
#site-header .header-actions .site-visit-counter small{font-size:9px;}
@media(max-width:760px){
 #site-header .header-actions{position:absolute;inset:10px 10px auto auto;display:grid;grid-template-columns:62px 136px;gap:6px;width:204px;align-items:center;}
 #site-header .header-actions>#install-app{position:static;grid-column:1;grid-row:1;width:62px;max-width:none;min-height:34px;margin:0;padding:4px 2px;font-size:9px;line-height:1.05;white-space:normal;}
 #site-header .header-actions>.header-action-row{grid-column:2;grid-row:1;gap:5px;width:136px;}
 #site-header .header-actions .header-action-row #share,
 #site-header .header-actions .site-visit-counter{width:65px;height:34px;min-height:34px;padding:3px 2px;font-size:8px;}
 #site-header .header-actions .header-action-row #share .share-button-label{font-size:8px;letter-spacing:-.2px;}
 #site-header .header-actions .site-visit-counter{flex-direction:column;gap:1px;}
 #site-header .header-actions .site-visit-counter strong{font-size:10px;}
 #site-header .header-actions .site-visit-counter small{font-size:7px;}
 #site-header .brand{max-width:calc(100vw - 224px);font-size:13px;letter-spacing:1px;gap:5px;}
 #site-header .brand img{width:44px;height:36px;object-fit:contain;}
 #site-header .brand small{font-size:6px;letter-spacing:.6px;}
 body.widgets-collapsed{--header-height:60px;}
 body.widgets-collapsed #site-header{padding-top:8px;padding-bottom:8px;}
 body.widgets-collapsed #site-header .header-actions{top:8px;}
}
@media(max-width:360px){
 #site-header .header-actions{right:7px;width:190px;grid-template-columns:54px 130px;gap:6px;}
 #site-header .header-actions>#install-app{width:54px;font-size:8px;}
 #site-header .header-actions>.header-action-row{width:130px;gap:4px;}
 #site-header .header-actions .header-action-row #share,
 #site-header .header-actions .site-visit-counter{width:63px;}
 #site-header .brand{max-width:calc(100vw - 205px);font-size:12px;}
}
@media(max-width:760px){
 #site-header .header-actions:has(>#install-app[hidden]){display:flex;width:136px;}
 #site-header .header-actions:has(>#install-app[hidden])>.header-action-row{width:136px;}
 #site-header .header-actions:has(>#install-app[hidden]) .header-action-row #share,
 #site-header .header-actions:has(>#install-app[hidden]) .site-visit-counter{width:65px;}
}
@media(max-width:360px){
 #site-header .header-actions:has(>#install-app[hidden]),
 #site-header .header-actions:has(>#install-app[hidden])>.header-action-row{width:130px;}
 #site-header .header-actions:has(>#install-app[hidden]) .header-action-row #share,
 #site-header .header-actions:has(>#install-app[hidden]) .site-visit-counter{width:63px;}
}

/* Match the folded city masthead to the height of the map toolbar below it. */
@media(max-width:760px){
 body.widgets-collapsed{--header-height:42px;}
 body.widgets-collapsed #site-header{height:42px;min-height:42px;padding:3px 10px;}
 body.widgets-collapsed #site-header .brand{font-size:11px;letter-spacing:.7px;gap:4px;line-height:1;}
 body.widgets-collapsed #site-header .brand img{width:34px;height:32px;}
 body.widgets-collapsed #site-header .brand small{font-size:5px;letter-spacing:.35px;line-height:1.1;}
 body.widgets-collapsed #site-header .header-actions{top:4px;}
 body.widgets-collapsed #site-header .header-actions>#install-app,
 body.widgets-collapsed #site-header .header-actions .header-action-row #share,
 body.widgets-collapsed #site-header .header-actions .site-visit-counter{height:34px;min-height:34px;}
}
@media(max-width:340px){
 body.widgets-collapsed{--header-height:56px;}
 body.widgets-collapsed #site-header{height:56px;min-height:56px;padding-top:10px;padding-bottom:10px;}
 body.widgets-collapsed #site-header .header-actions{top:11px;}
}
@media(min-width:761px){
 body.widgets-collapsed{--header-height:58px;}
 body.widgets-collapsed #site-header{height:58px;min-height:58px;padding:5px 16px;}
 body.widgets-collapsed #site-header .brand{font-size:15px;letter-spacing:1.5px;gap:8px;line-height:1;}
 body.widgets-collapsed #site-header .brand img{width:44px;height:42px;}
 body.widgets-collapsed #site-header .brand small{font-size:7px;letter-spacing:.7px;}
 body.widgets-collapsed #site-header .header-actions .header-action-row #share,
 body.widgets-collapsed #site-header .header-actions .site-visit-counter{height:34px;min-height:34px;}
}
