/* required styles */

.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer {
	position: absolute;
	left: 0;
	top: 0;
	}
.leaflet-container {
	overflow: hidden;
	}
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow {
	-webkit-user-select: none;
	   -moz-user-select: none;
	        user-select: none;
	  -webkit-user-drag: none;
	}
/* Prevents IE11 from highlighting tiles in blue */
.leaflet-tile::selection {
	background: transparent;
}
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
.leaflet-safari .leaflet-tile {
	image-rendering: -webkit-optimize-contrast;
	}
/* hack that prevents hw layers "stretching" when loading new tiles */
.leaflet-safari .leaflet-tile-container {
	width: 1600px;
	height: 1600px;
	-webkit-transform-origin: 0 0;
	}
.leaflet-marker-icon,
.leaflet-marker-shadow {
	display: block;
	}
/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
.leaflet-container .leaflet-overlay-pane svg {
	max-width: none !important;
	max-height: none !important;
	}
.leaflet-container .leaflet-marker-pane img,
.leaflet-container .leaflet-shadow-pane img,
.leaflet-container .leaflet-tile-pane img,
.leaflet-container img.leaflet-image-layer,
.leaflet-container .leaflet-tile {
	max-width: none !important;
	max-height: none !important;
	width: auto;
	padding: 0;
	}

.leaflet-container img.leaflet-tile {
	/* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */
	mix-blend-mode: plus-lighter;
}

.leaflet-container.leaflet-touch-zoom {
	-ms-touch-action: pan-x pan-y;
	touch-action: pan-x pan-y;
	}
.leaflet-container.leaflet-touch-drag {
	-ms-touch-action: pinch-zoom;
	/* Fallback for FF which doesn't support pinch-zoom */
	touch-action: none;
	touch-action: pinch-zoom;
}
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
	-ms-touch-action: none;
	touch-action: none;
}
.leaflet-container {
	-webkit-tap-highlight-color: transparent;
}
.leaflet-container a {
	-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
}
.leaflet-tile {
	filter: inherit;
	visibility: hidden;
	}
.leaflet-tile-loaded {
	visibility: inherit;
	}
.leaflet-zoom-box {
	width: 0;
	height: 0;
	-moz-box-sizing: border-box;
	     box-sizing: border-box;
	z-index: 800;
	}
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
.leaflet-overlay-pane svg {
	-moz-user-select: none;
	}

.leaflet-pane         { z-index: 400; }

.leaflet-tile-pane    { z-index: 200; }
.leaflet-overlay-pane { z-index: 400; }
.leaflet-shadow-pane  { z-index: 500; }
.leaflet-marker-pane  { z-index: 600; }
.leaflet-tooltip-pane   { z-index: 650; }
.leaflet-popup-pane   { z-index: 700; }

.leaflet-map-pane canvas { z-index: 100; }
.leaflet-map-pane svg    { z-index: 200; }

.leaflet-vml-shape {
	width: 1px;
	height: 1px;
	}
.lvml {
	behavior: url(#default#VML);
	display: inline-block;
	position: absolute;
	}


/* control positioning */

.leaflet-control {
	position: relative;
	z-index: 800;
	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
	pointer-events: auto;
	}
.leaflet-top,
.leaflet-bottom {
	position: absolute;
	z-index: 1000;
	pointer-events: none;
	}
.leaflet-top {
	top: 0;
	}
.leaflet-right {
	right: 0;
	}
.leaflet-bottom {
	bottom: 0;
	}
.leaflet-left {
	left: 0;
	}
.leaflet-control {
	float: left;
	clear: both;
	}
.leaflet-right .leaflet-control {
	float: right;
	}
.leaflet-top .leaflet-control {
	margin-top: 10px;
	}
.leaflet-bottom .leaflet-control {
	margin-bottom: 10px;
	}
.leaflet-left .leaflet-control {
	margin-left: 10px;
	}
.leaflet-right .leaflet-control {
	margin-right: 10px;
	}


/* zoom and fade animations */

.leaflet-fade-anim .leaflet-popup {
	opacity: 0;
	-webkit-transition: opacity 0.2s linear;
	   -moz-transition: opacity 0.2s linear;
	        transition: opacity 0.2s linear;
	}
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
	opacity: 1;
	}
.leaflet-zoom-animated {
	-webkit-transform-origin: 0 0;
	    -ms-transform-origin: 0 0;
	        transform-origin: 0 0;
	}
svg.leaflet-zoom-animated {
	will-change: transform;
}

.leaflet-zoom-anim .leaflet-zoom-animated {
	-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
	   -moz-transition:    -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
	        transition:         transform 0.25s cubic-bezier(0,0,0.25,1);
	}
.leaflet-zoom-anim .leaflet-tile,
.leaflet-pan-anim .leaflet-tile {
	-webkit-transition: none;
	   -moz-transition: none;
	        transition: none;
	}

.leaflet-zoom-anim .leaflet-zoom-hide {
	visibility: hidden;
	}


/* cursors */

.leaflet-interactive {
	cursor: pointer;
	}
.leaflet-grab {
	cursor: -webkit-grab;
	cursor:    -moz-grab;
	cursor:         grab;
	}
.leaflet-crosshair,
.leaflet-crosshair .leaflet-interactive {
	cursor: crosshair;
	}
.leaflet-popup-pane,
.leaflet-control {
	cursor: auto;
	}
.leaflet-dragging .leaflet-grab,
.leaflet-dragging .leaflet-grab .leaflet-interactive,
.leaflet-dragging .leaflet-marker-draggable {
	cursor: move;
	cursor: -webkit-grabbing;
	cursor:    -moz-grabbing;
	cursor:         grabbing;
	}

/* marker & overlays interactivity */
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-image-layer,
.leaflet-pane > svg path,
.leaflet-tile-container {
	pointer-events: none;
	}

.leaflet-marker-icon.leaflet-interactive,
.leaflet-image-layer.leaflet-interactive,
.leaflet-pane > svg path.leaflet-interactive,
svg.leaflet-image-layer.leaflet-interactive path {
	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
	pointer-events: auto;
	}

/* visual tweaks */

.leaflet-container {
	background: #ddd;
	outline-offset: 1px;
	}
.leaflet-container a {
	color: #0078A8;
	}
.leaflet-zoom-box {
	border: 2px dotted #38f;
	background: rgba(255,255,255,0.5);
	}


/* general typography */
.leaflet-container {
	font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-size: 0.75rem;
	line-height: 1.5;
	}


/* general toolbar styles */

.leaflet-bar {
	box-shadow: 0 1px 5px rgba(0,0,0,0.65);
	border-radius: 4px;
	}
.leaflet-bar a {
	background-color: #fff;
	border-bottom: 1px solid #ccc;
	width: 26px;
	height: 26px;
	line-height: 26px;
	display: block;
	text-align: center;
	text-decoration: none;
	color: black;
	}
.leaflet-bar a,
.leaflet-control-layers-toggle {
	background-position: 50% 50%;
	background-repeat: no-repeat;
	display: block;
	}
.leaflet-bar a:hover,
.leaflet-bar a:focus {
	background-color: #f4f4f4;
	}
.leaflet-bar a:first-child {
	border-top-left-radius: 4px;
	border-top-right-radius: 4px;
	}
.leaflet-bar a:last-child {
	border-bottom-left-radius: 4px;
	border-bottom-right-radius: 4px;
	border-bottom: none;
	}
.leaflet-bar a.leaflet-disabled {
	cursor: default;
	background-color: #f4f4f4;
	color: #bbb;
	}

.leaflet-touch .leaflet-bar a {
	width: 30px;
	height: 30px;
	line-height: 30px;
	}
.leaflet-touch .leaflet-bar a:first-child {
	border-top-left-radius: 2px;
	border-top-right-radius: 2px;
	}
.leaflet-touch .leaflet-bar a:last-child {
	border-bottom-left-radius: 2px;
	border-bottom-right-radius: 2px;
	}

/* zoom control */

.leaflet-control-zoom-in,
.leaflet-control-zoom-out {
	font: bold 18px 'Lucida Console', Monaco, monospace;
	text-indent: 1px;
	}

.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out  {
	font-size: 22px;
	}


/* layers control */

.leaflet-control-layers {
	box-shadow: 0 1px 5px rgba(0,0,0,0.4);
	background: #fff;
	border-radius: 5px;
	}
.leaflet-control-layers-toggle {
	background-image: url(images/layers.png);
	width: 36px;
	height: 36px;
	}
.leaflet-retina .leaflet-control-layers-toggle {
	background-image: url(images/layers-2x.png);
	background-size: 26px 26px;
	}
.leaflet-touch .leaflet-control-layers-toggle {
	width: 44px;
	height: 44px;
	}
.leaflet-control-layers .leaflet-control-layers-list,
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
	display: none;
	}
.leaflet-control-layers-expanded .leaflet-control-layers-list {
	display: block;
	position: relative;
	}
.leaflet-control-layers-expanded {
	padding: 6px 10px 6px 6px;
	color: #333;
	background: #fff;
	}
.leaflet-control-layers-scrollbar {
	overflow-y: scroll;
	overflow-x: hidden;
	padding-right: 5px;
	}
.leaflet-control-layers-selector {
	margin-top: 2px;
	position: relative;
	top: 1px;
	}
.leaflet-control-layers label {
	display: block;
	font-size: 13px;
	font-size: 1.08333em;
	}
.leaflet-control-layers-separator {
	height: 0;
	border-top: 1px solid #ddd;
	margin: 5px -10px 5px -6px;
	}

/* Default icon URLs */
.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */
	background-image: url(images/marker-icon.png);
	}


/* attribution and scale controls */

.leaflet-container .leaflet-control-attribution {
	background: #fff;
	background: rgba(255, 255, 255, 0.8);
	margin: 0;
	}
.leaflet-control-attribution,
.leaflet-control-scale-line {
	padding: 0 5px;
	color: #333;
	line-height: 1.4;
	}
.leaflet-control-attribution a {
	text-decoration: none;
	}
.leaflet-control-attribution a:hover,
.leaflet-control-attribution a:focus {
	text-decoration: underline;
	}
.leaflet-attribution-flag {
	display: inline !important;
	vertical-align: baseline !important;
	width: 1em;
	height: 0.6669em;
	}
.leaflet-left .leaflet-control-scale {
	margin-left: 5px;
	}
.leaflet-bottom .leaflet-control-scale {
	margin-bottom: 5px;
	}
.leaflet-control-scale-line {
	border: 2px solid #777;
	border-top: none;
	line-height: 1.1;
	padding: 2px 5px 1px;
	white-space: nowrap;
	-moz-box-sizing: border-box;
	     box-sizing: border-box;
	background: rgba(255, 255, 255, 0.8);
	text-shadow: 1px 1px #fff;
	}
.leaflet-control-scale-line:not(:first-child) {
	border-top: 2px solid #777;
	border-bottom: none;
	margin-top: -2px;
	}
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
	border-bottom: 2px solid #777;
	}

.leaflet-touch .leaflet-control-attribution,
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
	box-shadow: none;
	}
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
	border: 2px solid rgba(0,0,0,0.2);
	background-clip: padding-box;
	}


/* popup */

.leaflet-popup {
	position: absolute;
	text-align: center;
	margin-bottom: 20px;
	}
.leaflet-popup-content-wrapper {
	padding: 1px;
	text-align: left;
	border-radius: 12px;
	}
.leaflet-popup-content {
	margin: 13px 24px 13px 20px;
	line-height: 1.3;
	font-size: 13px;
	font-size: 1.08333em;
	min-height: 1px;
	}
.leaflet-popup-content p {
	margin: 17px 0;
	margin: 1.3em 0;
	}
.leaflet-popup-tip-container {
	width: 40px;
	height: 20px;
	position: absolute;
	left: 50%;
	margin-top: -1px;
	margin-left: -20px;
	overflow: hidden;
	pointer-events: none;
	}
.leaflet-popup-tip {
	width: 17px;
	height: 17px;
	padding: 1px;

	margin: -10px auto 0;
	pointer-events: auto;

	-webkit-transform: rotate(45deg);
	   -moz-transform: rotate(45deg);
	    -ms-transform: rotate(45deg);
	        transform: rotate(45deg);
	}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
	background: white;
	color: #333;
	box-shadow: 0 3px 14px rgba(0,0,0,0.4);
	}
.leaflet-container a.leaflet-popup-close-button {
	position: absolute;
	top: 0;
	right: 0;
	border: none;
	text-align: center;
	width: 24px;
	height: 24px;
	font: 16px/24px Tahoma, Verdana, sans-serif;
	color: #757575;
	text-decoration: none;
	background: transparent;
	}
.leaflet-container a.leaflet-popup-close-button:hover,
.leaflet-container a.leaflet-popup-close-button:focus {
	color: #585858;
	}
.leaflet-popup-scrolled {
	overflow: auto;
	}

.leaflet-oldie .leaflet-popup-content-wrapper {
	-ms-zoom: 1;
	}
.leaflet-oldie .leaflet-popup-tip {
	width: 24px;
	margin: 0 auto;

	-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
	filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
	}

.leaflet-oldie .leaflet-control-zoom,
.leaflet-oldie .leaflet-control-layers,
.leaflet-oldie .leaflet-popup-content-wrapper,
.leaflet-oldie .leaflet-popup-tip {
	border: 1px solid #999;
	}


/* div icon */

.leaflet-div-icon {
	background: #fff;
	border: 1px solid #666;
	}


/* Tooltip */
/* Base styles for the element that has a tooltip */
.leaflet-tooltip {
	position: absolute;
	padding: 6px;
	background-color: #fff;
	border: 1px solid #fff;
	border-radius: 3px;
	color: #222;
	white-space: nowrap;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	pointer-events: none;
	box-shadow: 0 1px 3px rgba(0,0,0,0.4);
	}
.leaflet-tooltip.leaflet-interactive {
	cursor: pointer;
	pointer-events: auto;
	}
.leaflet-tooltip-top:before,
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
	position: absolute;
	pointer-events: none;
	border: 6px solid transparent;
	background: transparent;
	content: "";
	}

/* Directions */

.leaflet-tooltip-bottom {
	margin-top: 6px;
}
.leaflet-tooltip-top {
	margin-top: -6px;
}
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-top:before {
	left: 50%;
	margin-left: -6px;
	}
.leaflet-tooltip-top:before {
	bottom: 0;
	margin-bottom: -12px;
	border-top-color: #fff;
	}
.leaflet-tooltip-bottom:before {
	top: 0;
	margin-top: -12px;
	margin-left: -6px;
	border-bottom-color: #fff;
	}
.leaflet-tooltip-left {
	margin-left: -6px;
}
.leaflet-tooltip-right {
	margin-left: 6px;
}
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
	top: 50%;
	margin-top: -6px;
	}
.leaflet-tooltip-left:before {
	right: 0;
	margin-right: -12px;
	border-left-color: #fff;
	}
.leaflet-tooltip-right:before {
	left: 0;
	margin-left: -12px;
	border-right-color: #fff;
	}

/* Printing */

@media print {
	/* Prevent printers from removing background-images of controls. */
	.leaflet-control {
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
		}
	}

/* Glin UI design adaptation. MIT License

Copyright (c) 2026 Glincker LLC

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
 */
:root{--bg:#151619;--paper:#202125;--ink:#f4f4f6;--muted:#b5b6c1;--orange:#c4b5ff;--orange-hover:#ddd4ff;--orange-dark:#c4b5ff;--green:#c4b5ff;--on-action:#23242a;--raised:#2c2d34;--line:#404149;--control-border:#81838f;--selected-surface:#332d49;--danger-bg:#3a232a;--danger-text:#ffb8bf;--danger-hover:#4a2a33;--list-peach:#51443d;--list-green:#374b46;--list-purple:#473e60;--nav-surface:#27282deb;--nav-border:#60616d;--image-label:#202125ed;--backdrop:#090a0dbd;--font-family:'DM Sans','Noto Sans Thai',sans-serif;--font-body:1rem;--font-small:.875rem;--font-xs:.75rem;--font-nav:.6875rem;--font-title:1.25rem;--font-heading:1.75rem;--font-display:2.5rem;--font-display-wide:3rem;--radius-round:999rem;--radius-small:.875rem;--radius-card:1.375rem;--gutter:1.25rem;--content-width:76rem;--sidebar-width:15rem;--modal-width:37.5rem;--motion-fast:150ms;--shadow-nav:0 12px 40px #00000040, inset 0 1px 0 #ffffff12;--size-3:0.1875rem;--size-4:0.25rem;--size-6:0.375rem;--size-7:0.4375rem;--size-8:0.5rem;--size-9:0.5625rem;--size-10:0.625rem;--size-12:0.75rem;--size-13:0.8125rem;--size-15:0.9375rem;--size-16:1.0rem;--size-18:1.125rem;--size-20:1.25rem;--size-22:1.375rem;--size-24:1.5rem;--size-28:1.75rem;--size-32:2.0rem;--size-36:2.25rem;--size-40:2.5rem;--size-44:2.75rem;--size-48:3.0rem;--size-52:3.25rem;--size-56:3.5rem;--size-60:3.75rem;--size-64:4.0rem;--size-84:5.25rem;--size-96:6.0rem;--size-112:7.0rem;--size-120:7.5rem;--size-140:8.75rem;--size-176:11.0rem;--size-200:12.5rem;--size-240:15.0rem;--size-260:16.25rem;--size-280:17.5rem;--size-480:30.0rem;--size-720:45.0rem;--primary-bg:#ececf0;--primary-fg:#24262c;--primary-border:#c8c9d2;--glass-highlight:#ffffff0d;--glass-bottom:#ffffff00;--radius-nav:1.75rem;--radius-key:.75rem;--motion-sheet:200ms;--glass-blur:1rem;--glass-saturation:180%;--shadow-key:0 2px 3px #00000033, inset 0 1px 0 #ffffffdd, inset 0 -1px 0 #b4b5c233;--shadow-inset:inset 0 1px 3px #00000038;--key-gradient:linear-gradient(180deg,#fafafd,#dcdde5);--key-hover:linear-gradient(180deg,#ffffff,#ececf3);--canvas-glow:radial-gradient(ellipse at 85% 0%,#7161bd12,transparent 55%);--surface-sheen:linear-gradient(145deg,#ffffff06,#ffffff00);--color-scheme:dark;}
:root[data-theme=light]{--bg:#f7f8fa;--paper:#fdfdfe;--ink:#23252c;--muted:#5d616d;--orange:#6541c7;--orange-hover:#5334ac;--orange-dark:#6541c7;--green:#6541c7;--on-action:#ffffff;--raised:#eceef2;--line:#d7d9e0;--control-border:#858793;--selected-surface:#eee8fc;--danger-bg:#fbe8ed;--danger-text:#a32240;--danger-hover:#f8dce4;--list-peach:#f2e3d8;--list-green:#daeae3;--list-purple:#e9e0f7;--nav-surface:#fdfdfeeb;--nav-border:#c4c6d0;--image-label:#fdfdfeed;--backdrop:#181a2470;--primary-bg:#f4f5f8;--primary-fg:#24262c;--primary-border:#a8aab5;--glass-highlight:#ffffffb3;--glass-bottom:#ffffff00;--shadow-nav:0 12px 40px #2426321a, inset 0 1px 0 #ffffff;--shadow-key:0 2px 3px #2026381a, inset 0 1px 0 #ffffff, inset 0 -1px 0 #b4b5c21a;--shadow-inset:inset 0 1px 3px #20263817;--key-gradient:linear-gradient(180deg,#ffffff,#eceef4);--key-hover:linear-gradient(180deg,#ffffff,#f6f7fa);--canvas-glow:radial-gradient(ellipse at 85% 0%,#8e74db12,transparent 55%);--surface-sheen:linear-gradient(145deg,#ffffffcc,#ffffff00);--color-scheme:light;}
*{box-sizing:border-box}html{color-scheme:var(--color-scheme);scroll-padding-block:var(--size-96)}body{margin:0;background:var(--canvas-glow) var(--bg) no-repeat;background-size:100% var(--size-720);color:var(--ink);font-family:var(--font-family);font-size:var(--font-body);line-height:1.65;-webkit-tap-highlight-color:transparent}button,input,textarea{font:inherit}button,a,input,textarea,summary{touch-action:manipulation}button{cursor:pointer;border:0;color:inherit;background:transparent}button:disabled{opacity:.5;cursor:not-allowed}button[aria-busy=true]{cursor:wait;opacity:.7}a{color:inherit;text-decoration:none}button,a,input,textarea,summary{scroll-margin-block:var(--size-96)}:focus-visible{outline:var(--size-3) solid var(--orange);outline-offset:var(--size-4)}h1,h2,h3,h4,p{margin:0}h1,h2,h3{overflow-wrap:anywhere}img{display:block;max-width:100%;object-fit:cover}svg{vertical-align:middle;flex-shrink:0}button,a,summary{transition:background var(--motion-fast),color var(--motion-fast),transform var(--motion-fast)}button:active:not(:disabled){transform:scale(.98)}[hidden]{display:none!important}.skip-link{position:fixed;top:var(--size-12);left:var(--size-16);transform:translateY(-200%);z-index:1000;background:var(--orange);color:var(--on-action);padding:var(--size-12) var(--size-20);border-radius:var(--radius-small)}.skip-link:focus{transform:none}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;clip-path:inset(50%);overflow:hidden;white-space:nowrap}.boot{min-height:80dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--size-16)}.sidebar{display:none}.shell{min-width:0}.topbar{min-height:var(--size-84);padding:var(--size-16) var(--gutter);display:flex;justify-content:space-between;align-items:center;gap:var(--size-12)}.brand{display:flex;align-items:center;gap:var(--size-10);font-weight:700;font-size:var(--font-title);line-height:1.3}.brand-logo{width:var(--size-40);height:var(--size-40)}.brand small{line-height:1.65;display:block;color:var(--muted);font-weight:400;font-size:var(--font-xs);margin-top:var(--size-4)}.breadcrumb{display:none}.top-actions{display:flex;gap:var(--size-8);align-items:center}.avatar,.icon-button{width:var(--size-48);height:var(--size-48);display:grid;place-items:center;border-radius:var(--radius-round);flex-shrink:0;background:var(--ink);color:var(--bg)}.preview-pill{display:none!important;font-size:var(--font-xs);color:var(--muted);display:flex;align-items:center;gap:var(--size-6);min-height:var(--size-44);padding-inline:var(--size-4)}.content{width:100%;max-width:var(--content-width);margin:auto;padding:var(--size-12) var(--gutter) calc(var(--size-120) + env(safe-area-inset-bottom))}.intro{display:flex;align-items:center;justify-content:space-between;gap:var(--size-16);margin:var(--size-8) 0 var(--size-24)}.intro h1{font-size:var(--font-display);line-height:1.3;font-weight:500;letter-spacing:-.035em;max-width:18ch}.intro p{font-size:var(--font-small);color:var(--muted);margin-top:var(--size-8)}.intro>.primary{display:none}.primary,.secondary,.ghost,.danger{display:inline-flex;align-items:center;justify-content:center;gap:var(--size-8);min-height:var(--size-48);padding:var(--size-12) var(--size-20);border-radius:var(--radius-round);font-size:var(--font-small);font-weight:600;line-height:1.5;text-align:center}.primary{background:var(--key-gradient);background-color:var(--primary-bg);color:var(--primary-fg);border:1px solid var(--primary-border);box-shadow:var(--shadow-key)}.primary:hover:not(:disabled){background:var(--key-hover);background-color:var(--primary-bg)}.secondary{background:var(--paper);border:1px solid var(--control-border)}.secondary:hover,.ghost:hover{background:var(--raised)}.ghost{color:var(--ink);background:transparent}.danger{background:var(--danger-bg);color:var(--danger-text)}.danger:hover{background:var(--danger-hover)}.search-row{display:flex;gap:var(--size-10);margin-bottom:var(--size-16)}.search{flex:1;position:relative;min-width:0}.search svg{position:absolute;left:var(--size-16);top:50%;transform:translateY(-50%);color:var(--muted)}input,textarea{width:100%;background:var(--paper);border:1px solid var(--control-border);border-radius:var(--radius-small);padding:var(--size-12) var(--size-16);font-size:var(--font-body);color:var(--ink);min-height:var(--size-52);line-height:1.5}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}input:focus,textarea:focus{border-color:var(--orange)}textarea{resize:vertical;min-height:var(--size-120)}.search input{border-radius:var(--radius-small);padding-left:var(--size-48);border-color:var(--control-border);background:var(--paper);box-shadow:var(--shadow-inset);height:var(--size-56)}.sort-button{display:grid;place-items:center;width:var(--size-56);height:var(--size-56);border-radius:var(--radius-small);background:var(--paper);border:1px solid var(--line);flex-shrink:0}.sort-button:hover{background:var(--line)}.chips{display:flex;overflow-x:auto;gap:var(--size-8);padding:var(--size-4) 0 var(--size-8);scrollbar-width:none;margin-bottom:var(--size-16)}.chips::-webkit-scrollbar{display:none}.chip{display:inline-flex;align-items:center;justify-content:center;gap:var(--size-6);white-space:nowrap;min-height:var(--size-44);padding:var(--size-10) var(--size-20);border-radius:var(--radius-round);background:var(--paper);color:var(--muted);font-size:var(--font-small);border:1px solid transparent}.chip:hover{color:var(--ink);background:var(--raised)}.chip.active{background:var(--selected-surface);border-color:var(--orange);color:var(--orange);font-weight:500}.chip.new-chip{border:1px dashed var(--control-border)}.tabs{display:flex;gap:var(--size-4);padding:var(--size-4);border-radius:var(--radius-small);background:var(--raised);box-shadow:var(--shadow-inset);border:1px solid var(--line);margin-bottom:var(--size-20)}.tab{flex:1;min-width:0;min-height:var(--size-44);padding:var(--size-8) var(--size-4);border:1px solid transparent;border-radius:var(--radius-key);color:var(--muted);font-size:var(--font-small);white-space:nowrap}.tab.active{background:var(--key-gradient);background-color:var(--primary-bg);color:var(--primary-fg);border-color:var(--primary-border);box-shadow:var(--shadow-key);font-weight:600}.tab span{margin-left:var(--size-6);font-size:var(--font-xs);color:inherit}.collection-note{font-size:var(--font-xs);color:var(--muted);display:flex;align-items:center;gap:var(--size-12);margin-bottom:var(--size-20)}.collection-note>svg{color:var(--orange)}.collection-note strong{font-size:var(--font-small);font-weight:500}.collection-note p,.preview-disclaimer{font-size:var(--font-xs);color:var(--muted);line-height:1.7}.results-summary{display:flex;justify-content:space-between;align-items:center;color:var(--ink);font-size:var(--font-small);margin-bottom:var(--size-12)}.results-summary>span{font-size:var(--font-xs);color:var(--muted)}.grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--size-16)}.restaurant-card{min-width:0;position:relative;border-radius:var(--radius-card);background:var(--surface-sheen) var(--paper);overflow:hidden;border:1px solid var(--line);display:grid;grid-template-columns:var(--size-96) minmax(0,1fr);padding:var(--size-12);gap:var(--size-12)}.card-image-button{padding:0;display:block;position:relative;text-align:left;align-self:stretch;overflow:hidden;border-radius:var(--radius-small);background:var(--raised)}.card-image,.image-placeholder{width:100%;height:100%;min-height:var(--size-120);object-fit:cover}.image-placeholder{display:grid;place-items:center;color:var(--muted);background:var(--raised)}.card-body{min-width:0}.card-title{display:block;gap:var(--size-8);align-items:start;padding-right:var(--size-36)}.card-title h3{min-width:0;font-weight:600}.card-title button{padding:0;min-height:var(--size-44);font-size:var(--font-small);font-weight:600;line-height:1.5;text-align:left;overflow-wrap:anywhere;display:flex;align-items:center}.rating{display:flex;align-items:center;gap:var(--size-4);font-size:var(--font-xs);color:var(--orange);white-space:nowrap}.card-title .rating{display:flex;margin-top:var(--size-4)}.card-location{font-size:var(--font-xs);line-height:1.65;color:var(--muted);margin-top:var(--size-4);overflow-wrap:anywhere}.card-location svg{margin-right:var(--size-4)}.card-tags{display:flex;flex-wrap:wrap;gap:var(--size-4);margin:var(--size-8) 0}.tag{font-size:var(--font-xs);padding:var(--size-4) var(--size-8);border-radius:var(--radius-round);background:var(--raised);color:var(--muted)}.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:var(--size-8);font-size:var(--font-xs);color:var(--muted)}.card-bottom>span{display:none}.text-link{display:inline-flex;align-items:center;justify-content:center;gap:var(--size-6);min-height:var(--size-44);padding:var(--size-8) 0;color:var(--ink);font-size:var(--font-small)}.text-link:hover{color:var(--orange)}.bookmark{position:absolute;right:var(--size-8);top:var(--size-8);width:var(--size-44);height:var(--size-44);display:grid;place-items:center;background:var(--raised);border-radius:var(--radius-round);color:var(--orange);z-index:2}.photo-label{display:none}.sample-grid>.restaurant-card:first-child{padding:var(--size-10);display:block}.sample-grid>.restaurant-card:first-child .card-image-button{width:100%;border-radius:var(--radius-small);height:var(--size-176)}.sample-grid>.restaurant-card:first-child .card-image{height:100%}.sample-grid>.restaurant-card:first-child .bookmark{top:var(--size-16);right:var(--size-16);background:var(--ink);color:var(--bg);width:var(--size-48);height:var(--size-48)}.sample-grid>.restaurant-card:first-child .card-body{padding:var(--size-12) var(--size-10) var(--size-4)}.sample-grid>.restaurant-card:first-child .card-title{display:flex;padding-right:0;align-items:center;justify-content:space-between}.sample-grid>.restaurant-card:first-child .card-title button{font-size:var(--font-title)}.sample-grid>.restaurant-card:first-child .card-title .rating{display:flex;font-size:var(--font-small)}.sample-grid>.restaurant-card:first-child .photo-label{display:flex;align-items:center;gap:var(--size-6);position:absolute;bottom:var(--size-12);left:var(--size-16);padding:var(--size-6) var(--size-12);border-radius:var(--radius-round);background:var(--image-label);color:var(--ink);font-size:var(--font-xs)}.sample-grid>.restaurant-card:first-child .card-bottom>span{display:block}.sample-grid>.restaurant-card:first-child .card-bottom{border-top:1px solid var(--line)}.preview-form-link{margin-top:var(--size-24)}.preview-disclaimer{text-align:center;margin-top:var(--size-12)}.footer-note{display:flex;align-items:center;justify-content:center;gap:var(--size-8);font-size:var(--font-xs);color:var(--muted);margin-top:var(--size-40)}.bottom-nav{position:fixed;bottom:calc(var(--size-12) + env(safe-area-inset-bottom));left:var(--size-12);right:var(--size-12);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;gap:var(--size-4);padding:var(--size-8);border-radius:var(--radius-nav);background:var(--nav-surface);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));border:1px solid var(--nav-border);z-index:50;box-shadow:var(--shadow-nav)}.bottom-nav .nav-item,.bottom-nav .add-nav{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--size-4);min-width:0;min-height:var(--size-60);border-radius:var(--radius-round);font-size:var(--font-nav);line-height:1.4;color:var(--muted);padding:var(--size-4) 0}.bottom-nav .nav-item.active{color:var(--orange);background:var(--selected-surface);border-radius:var(--radius-small)}.bottom-nav .add-nav{background:var(--key-gradient);background-color:var(--primary-bg);color:var(--primary-fg);border:1px solid var(--primary-border);border-radius:var(--radius-small);box-shadow:var(--shadow-key);max-width:var(--size-64);width:100%;justify-self:center}.empty{min-height:var(--size-240);display:flex;align-items:flex-start;justify-content:center;flex-direction:column;gap:var(--size-16);padding:var(--size-28);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-card)}.empty>svg{color:var(--orange)}.empty h2,.empty h3{font-size:var(--font-title);font-weight:500}.empty p{font-size:var(--font-small);color:var(--muted)}.empty .primary,.empty .secondary{margin-top:var(--size-8)}.subtle{font-size:var(--font-small);color:var(--muted);line-height:1.8}.banner,.shared-banner{display:flex;gap:var(--size-12);align-items:center;font-size:var(--font-small);line-height:1.8;border-radius:var(--radius-small);background:var(--raised);padding:var(--size-16);margin-block:var(--size-20);color:var(--muted)}.banner>svg{color:var(--orange)}.banner button{margin-left:auto;flex-shrink:0}.banner.error{background:var(--danger-bg);color:var(--danger-text)}.list-card{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden}.list-title-button{display:block;padding:0;text-align:left;width:100%;color:var(--ink)}.list-cover{height:var(--size-176);position:relative;display:flex;align-items:center;justify-content:center;background:var(--list-peach)}.list-cover.green{background:var(--list-green)}.list-cover.purple{background:var(--list-purple)}.list-cover img{position:absolute;width:100%;height:100%}.list-icon{position:relative;width:var(--size-64);height:var(--size-64);border-radius:var(--radius-round);background:var(--image-label);display:grid;place-items:center;color:var(--ink)}.list-body{padding:var(--size-20)}.list-body h3{font-size:var(--font-title);font-weight:500;margin-bottom:var(--size-8)}.list-actions,.detail-actions{display:flex;gap:var(--size-8);flex-wrap:wrap}.list-actions{justify-content:space-between;border-top:1px solid var(--line);padding-top:var(--size-8)}.list-detail-desc{font-size:var(--font-small);color:var(--muted)}.map-panel{height:52dvh;min-height:var(--size-280);max-height:var(--size-480);overflow:hidden;border-radius:var(--radius-card);border:1px solid var(--line);background:var(--raised);z-index:1}.nearby-bar{display:flex;flex-wrap:wrap;gap:var(--size-8);margin-bottom:var(--size-20)}.radius-options{display:flex;gap:var(--size-4);flex-wrap:wrap}.radius-options .chip{padding-inline:var(--size-12)}.nearby-result{font-size:var(--font-small);color:var(--muted)}.map-card-row{display:grid;gap:var(--size-12);margin-top:var(--size-20)}.map-row{display:flex;align-items:center;text-align:left;gap:var(--size-12);padding:var(--size-12);background:var(--paper);border-radius:var(--radius-small);border:1px solid var(--line)}.map-row img{width:var(--size-64);height:var(--size-64);border-radius:var(--radius-small)}.map-row h3{font-size:var(--font-body);font-weight:500}.map-row p{font-size:var(--font-xs);color:var(--muted);margin-top:var(--size-4)}.map-row>span{margin-left:auto}.map-pin{width:var(--size-36);height:var(--size-36);background:var(--orange);border:var(--size-3) solid var(--ink);border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:grid;place-items:center;box-shadow:var(--shadow-nav)}.map-pin span{transform:rotate(45deg);color:var(--on-action);font-size:var(--font-small);font-weight:700}.leaflet-container{font:inherit}.leaflet-popup-content-wrapper{background:var(--paper);color:var(--ink);border-radius:var(--radius-small)}.leaflet-popup-content{font-size:var(--font-small);line-height:1.8}.leaflet-container a{color:var(--orange)}.leaflet-control-attribution{color:var(--bg)}.leaflet-control-attribution a{color:var(--bg)}.leaflet-bar a,.leaflet-bar a:hover{width:var(--size-44);height:var(--size-44);line-height:var(--size-44);background:var(--ink);color:var(--bg)}.modal{border:1px solid var(--line);padding:0;width:100%;max-width:100%;max-height:94dvh;margin:auto 0 0;border-radius:var(--radius-card) var(--radius-card) 0 0;background:var(--bg);color:var(--ink);overflow:auto;overscroll-behavior:contain;box-shadow:var(--shadow-nav);animation:sheet-in var(--motion-fast) ease-out}.modal::backdrop{background:var(--backdrop);backdrop-filter:blur(var(--size-4))}.modal-header{position:sticky;top:0;z-index:5;background:var(--bg);display:flex;align-items:center;justify-content:space-between;gap:var(--size-12);padding:var(--size-20) var(--gutter) var(--size-16);border-bottom:1px solid var(--line)}.modal-header h2{font-size:var(--font-title);font-weight:500}.modal-header:before{content:'';position:absolute;top:var(--size-6);left:calc(50% - var(--size-16));width:var(--size-32);height:var(--size-4);background:var(--control-border);border-radius:var(--radius-round)}.modal-header .icon-button{width:var(--size-44);height:var(--size-44);background:var(--raised);color:var(--ink)}.modal-body{padding:var(--size-24) var(--gutter)}.form-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--size-20) var(--size-12)}.field{display:flex;flex-direction:column;gap:var(--size-8);min-width:0}.field.full{grid-column:1/-1}.field label,.field-label{font-size:var(--font-small);font-weight:500}.field label svg{margin-right:var(--size-6)}.field small{font-size:var(--font-xs);color:var(--muted)}.choice-group{border:0;padding:0;margin:0;min-width:0}.choice-group legend{font-size:var(--font-small);font-weight:500;margin-bottom:var(--size-10);padding:0}.choice-options{display:flex;gap:var(--size-8);flex-wrap:wrap}.choice{display:flex;flex:1;align-items:center;gap:var(--size-8);border:1px solid var(--control-border);border-radius:var(--radius-small);padding:var(--size-12);min-height:var(--size-52);cursor:pointer;font-size:var(--font-small)}.choice:has(input:checked){background:var(--selected-surface);border-color:var(--orange);color:var(--orange)}.choice input{width:var(--size-20);height:var(--size-20);min-height:0;flex-shrink:0;accent-color:var(--orange);margin:0;padding:0}.stack-choices .choice-options{flex-direction:column}.stack-choices .choice{flex:initial}.rating-picker{display:flex;gap:var(--size-8);flex-wrap:wrap}.rating-picker button{display:grid;place-items:center;width:var(--size-48);height:var(--size-48);padding:var(--size-8);color:var(--control-border);border-radius:var(--radius-small);background:var(--paper)}.rating-picker button.selected{color:var(--orange)}.photo-upload{position:relative;display:flex;align-items:center;gap:var(--size-16);min-height:var(--size-96);border:1px dashed var(--control-border);border-radius:var(--radius-small);background:var(--paper);padding:var(--size-20);overflow:hidden;color:var(--muted)}.photo-upload>svg{color:var(--orange)}.photo-upload small{display:block;margin-top:var(--size-4)}.photo-upload input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.photo-upload:has(input:focus-visible){outline:var(--size-3) solid var(--orange);outline-offset:var(--size-4)}.photo-upload img{position:absolute;inset:0;width:100%;height:100%}.photo-upload:has(img){min-height:var(--size-176)}.remove-photo{align-self:flex-start;color:var(--danger-text);min-height:var(--size-44);padding-inline:var(--size-8);font-size:var(--font-small)}.form-notice{background:var(--raised);color:var(--muted);border-radius:var(--radius-small);padding:var(--size-12) var(--size-16);margin-bottom:var(--size-20);font-size:var(--font-small)}.form-sections{margin-top:var(--size-24);display:grid;gap:var(--size-12)}.form-disclosure{border:1px solid var(--line);border-radius:var(--radius-small);background:var(--paper)}.form-disclosure>summary{display:flex;align-items:center;gap:var(--size-12);list-style:none;cursor:pointer;min-height:var(--size-64);padding:var(--size-16);font-size:var(--font-small);font-weight:500}.form-disclosure>summary::-webkit-details-marker{display:none}.form-disclosure>summary>svg:first-child{color:var(--orange)}.form-disclosure>summary>svg:last-child{margin-left:auto;transition:transform var(--motion-fast)}.form-disclosure[open]>summary>svg:last-child{transform:rotate(90deg)}.form-disclosure>.form-grid{padding:0 var(--size-16) var(--size-20)}.coordinate-fields>summary{color:var(--muted);font-size:var(--font-small);cursor:pointer;min-height:var(--size-44);display:flex;align-items:center;gap:var(--size-8)}.coordinate-fields[open]>summary{margin-bottom:var(--size-12)}.coordinate-fields>summary:before{content:'+';color:var(--orange);font-size:var(--font-title)}.coordinate-fields[open]>summary:before{content:'−'}.location-actions{flex-direction:row;flex-wrap:wrap;gap:var(--size-8)}.location-actions .secondary{flex:1;min-width:0;padding-inline:var(--size-12)}.tag-suggestions{flex-direction:row;flex-wrap:wrap;gap:var(--size-8)}.tag-suggestions .chip{white-space:normal}.pick-map{width:100%;height:var(--size-260);border-radius:var(--radius-small);background:var(--raised);overflow:hidden}.form-footer{position:sticky;bottom:0;z-index:4;display:flex;gap:var(--size-12);background:var(--bg);border-top:1px solid var(--line);padding:var(--size-16) var(--gutter) calc(var(--size-16) + env(safe-area-inset-bottom))}.form-footer .primary{flex:1}.form-error{color:var(--danger-text);font-size:var(--font-small);margin-top:var(--size-16);line-height:1.8;grid-column:1/-1}.form-error:empty{margin:0}.detail-photo{width:100%;height:var(--size-240);border-radius:var(--radius-card)}.detail-title{display:flex;align-items:center;justify-content:space-between;gap:var(--size-12);margin-top:var(--size-24)}.detail-title h3{font-size:var(--font-heading);font-weight:500}.detail-title .rating{font-size:var(--font-body)}.detail-meta{display:flex;gap:var(--size-16);flex-wrap:wrap;font-size:var(--font-small);color:var(--muted);margin:var(--size-16) 0}.detail-block{padding:var(--size-20);margin-block:var(--size-16);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-small)}.detail-block h4{display:flex;align-items:center;gap:var(--size-6);font-size:var(--font-small);color:var(--orange);font-weight:500;margin-bottom:var(--size-8)}.detail-block p{font-size:var(--font-body);white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}.detail-block.private h4{color:var(--muted)}.detail-actions>*{flex:1;min-width:var(--size-140)}.check-list{display:grid;gap:var(--size-8);max-height:var(--size-280);overflow-y:auto}.check-row{display:flex;align-items:center;gap:var(--size-12);background:var(--paper);padding:var(--size-12);min-height:var(--size-64);border:1px solid var(--control-border);border-radius:var(--radius-small)}.check-row img{width:var(--size-48);height:var(--size-48);border-radius:var(--radius-small)}.check-row input{width:var(--size-20);height:var(--size-20);min-height:0;accent-color:var(--orange);flex-shrink:0;margin-left:auto}.profile-card{text-align:left;padding:var(--size-8) 0}.profile-card .avatar{width:var(--size-64);height:var(--size-64);margin-bottom:var(--size-20);background:var(--orange);color:var(--on-action)}.profile-card h3{font-size:var(--font-heading);line-height:1.4;font-weight:500}.profile-card p{font-size:var(--font-small);line-height:1.8;color:var(--muted);margin:var(--size-12) 0 var(--size-24)}.profile-row{display:flex;align-items:center;gap:var(--size-12);width:100%;min-height:var(--size-60);padding:var(--size-16) 0;text-align:left;border-bottom:1px solid var(--line);font-size:var(--font-small)}.profile-row span{margin-left:auto;font-size:var(--font-xs);color:var(--muted)}.share-choice{display:grid;gap:var(--size-12);margin-block:var(--size-20)}.share-choice label{display:flex;align-items:center;gap:var(--size-12);min-height:var(--size-60);border:1px solid var(--control-border);border-radius:var(--radius-small);padding:var(--size-16);font-size:var(--font-small)}.share-choice label:has(input:checked){border-color:var(--orange);background:var(--selected-surface)}.share-choice input{width:var(--size-20);height:var(--size-20);min-height:0;accent-color:var(--orange);flex-shrink:0;margin:0}.share-url{margin-block:var(--size-20);font-size:var(--font-body)}.share-note{font-size:var(--font-small);line-height:1.8;background:var(--raised);color:var(--muted);padding:var(--size-16);border-radius:var(--radius-small)}.option-list{display:grid;gap:var(--size-12)}.option-button{display:flex;align-items:center;justify-content:space-between;gap:var(--size-16);padding:var(--size-16);min-height:var(--size-56);border:1px solid var(--control-border);border-radius:var(--radius-small);text-align:left}.option-button.selected{color:var(--orange);border-color:var(--orange);background:var(--selected-surface)}.full-width{width:100%}.divider{height:1px;background:var(--line);margin:var(--size-24) 0}.feed-empty{margin-top:var(--size-16)}#toast{position:fixed;bottom:calc(var(--size-112) + env(safe-area-inset-bottom));left:50%;transform:translate(-50%,var(--size-16));max-width:calc(100% - var(--size-32));width:max-content;background:var(--ink);color:var(--bg);padding:var(--size-12) var(--size-20);border-radius:var(--radius-small);font-size:var(--font-small);line-height:1.6;z-index:1000;opacity:0;pointer-events:none;transition:opacity var(--motion-fast),transform var(--motion-fast);box-shadow:var(--shadow-nav)}#toast.show{opacity:1;transform:translate(-50%,0)}
.theme-toggle{display:grid;place-items:center;width:var(--size-44);height:var(--size-44);flex-shrink:0;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-round);color:var(--muted)}.theme-toggle:hover{background:var(--raised);color:var(--ink)}.top-actions .avatar{width:var(--size-44);height:var(--size-44);background:var(--selected-surface);color:var(--orange);border:1px solid var(--line)}.form-footer{background:var(--nav-surface);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation))}.modal{border:1px solid var(--line);box-shadow:var(--shadow-nav)}.modal-header{background:var(--paper)}.rating{color:var(--orange)}.leaflet-container{font-family:var(--font-family)}.leaflet-control-zoom a{min-width:var(--size-44);min-height:var(--size-44);display:grid!important;place-items:center;background:var(--paper)!important;color:var(--ink)!important}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--paper);color:var(--ink)}.leaflet-popup-content a{color:var(--orange)}
@supports not (backdrop-filter:blur(1rem)){.bottom-nav,.form-footer{background:var(--paper)}}
@media(min-width:24rem){.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-options{flex-wrap:nowrap}}
@media(min-width:48rem){.preview-pill{display:flex!important}.content{padding-top:var(--size-24)}.intro{margin-bottom:var(--size-32)}.intro>.primary{display:flex}.intro h1{font-size:var(--font-display-wide)}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--size-20)}.sample-grid>.restaurant-card:first-child{grid-column:1/-1;display:grid;grid-template-columns:1.2fr 1fr}.sample-grid>.restaurant-card:first-child .card-image-button{height:var(--size-280);border-radius:var(--radius-small)}.sample-grid>.restaurant-card:first-child .card-body{align-self:center;padding:var(--size-28)}.sample-grid>.restaurant-card:first-child .bookmark{left:var(--size-16);right:auto}.bottom-nav{max-width:var(--size-480);margin-inline:auto}.modal{width:var(--modal-width);max-width:calc(100% - var(--size-48));margin:auto;border-radius:var(--radius-card);max-height:90dvh}.modal-header:before{display:none}.map-panel{height:var(--size-480)}}
@media(min-width:68rem){.sidebar{display:flex;position:fixed;inset:0 auto 0 0;z-index:30;width:var(--sidebar-width);background:var(--paper);border-right:1px solid var(--line);padding:var(--size-32) var(--size-24);flex-direction:column}.sidebar nav{display:grid;gap:var(--size-8);margin-block:var(--size-48) var(--size-24)}.sidebar .nav-item{display:flex;align-items:center;gap:var(--size-12);min-height:var(--size-56);padding:var(--size-12) var(--size-16);border-radius:var(--radius-round);text-align:left;color:var(--muted)}.sidebar .nav-item.active{background:var(--selected-surface);color:var(--orange)}.sidebar-footer{margin-top:auto;padding-top:var(--size-48);font-size:var(--font-small);color:var(--muted)}.sidebar-footer>svg{color:var(--orange);margin-bottom:var(--size-16)}.shell{margin-left:var(--sidebar-width)}.topbar{padding-inline:var(--size-40);border-bottom:1px solid var(--line)}.mobile-brand{display:none}.breadcrumb{display:block;font-size:var(--font-small);color:var(--muted)}.breadcrumb>span{margin-inline:var(--size-12);color:var(--control-border)}.content{padding:var(--size-32) var(--size-40) var(--size-64)}.bottom-nav{display:none}.search-row{max-width:var(--size-720)}#toast{left:calc(50% + var(--sidebar-width)/2);bottom:var(--size-24)}.modal{max-width:var(--modal-width)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@keyframes sheet-in{from{transform:translateY(var(--size-20));opacity:0}to{transform:none;opacity:1}}

@media(max-width:22rem){.preview-pill{display:none}}
