@font-face{font-family:Inter;font-style:normal;font-display:optional;font-weight:400;src:url(./inter-latin-400-normal-C38fXH4l.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-display:optional;font-weight:500;src:url(./inter-latin-500-normal-Cerq10X2.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-display:optional;font-weight:600;src:url(./inter-latin-600-normal-LgqL8muc.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-display:optional;font-weight:700;src:url(./inter-latin-700-normal-Yt3aPRUw.woff2)format("woff2")}:root{font-synthesis:none;color:#17211a;background:#dce7df;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#app{width:100%;height:100dvh;margin:0;overflow:hidden}button,a{font:inherit}button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #005fcc}.app-shell{isolation:isolate;width:100%;height:100%;position:relative;overflow:hidden}.map-host{color:#3c5143;text-align:center;background:linear-gradient(135deg,#ffffff8c,#0000 55%),#dce7df;place-items:center;padding:2rem;display:grid;position:absolute;inset:0}:is(.map-host[data-map-status=ready],.map-host[data-map-status=mounting]:has(.maplibregl-map)){background:#eef0e9;padding:0;display:block}.map-host.maplibregl-map{font:inherit;position:absolute}.map-host .maplibregl-map{position:absolute;inset:0}.map-host:has(.maplibregl-map)>p{z-index:-1;position:absolute}.map-host.maplibregl-map>p{display:none}.map-host>p{width:min(28rem,100%);max-width:28rem;min-height:2.5rem;margin:0;line-height:1.25}.branding,.controls,.panel{z-index:4;position:absolute}.branding{top:calc(12px + env(safe-area-inset-top,0px));left:calc(12px + env(safe-area-inset-left,0px));align-items:center;gap:6px;display:flex}.title-bar,.trail-status-bar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff2;border-radius:6px;align-items:center;gap:5px;padding:6px;display:flex;box-shadow:0 2px 8px #0000001f,0 0 0 1px #0000000a}.branding a{align-items:center;display:flex}.branding img{width:auto;display:block}.title-logo-mtb{object-fit:contain;height:35px;width:106px!important}.title-logo-trail{object-fit:contain;height:35px;width:92.43px!important}.trail-status{color:#475569;flex:0 0 88.8px;align-items:center;width:88.8px;height:35px;font-size:11px;font-weight:600;display:flex}.trail-status img{object-fit:contain;width:auto;height:35px}.trail-status button{min-width:44px;min-height:44px;margin-left:.4rem}.trail-status:has(button){flex-basis:auto;width:auto;height:auto}.provider-error{z-index:3;right:max(1rem, env(safe-area-inset-right));bottom:max(4.5rem, calc(3.5rem + env(safe-area-inset-bottom)));color:#541e13;background:#fff7f2;border:1px solid #8d321f;border-radius:.35rem;align-items:center;gap:.75rem;max-width:min(28rem,100vw - 2rem);padding:.75rem;display:flex;position:absolute;box-shadow:0 .15rem .7rem #17211a38}.provider-error button{flex:none;min-width:44px;min-height:44px}.maplibregl-popup-content{text-align:left!important;border-radius:6px!important;padding:14px 16px!important;font-family:Inter,sans-serif!important;box-shadow:0 4px 20px #0000001f,0 0 0 1px #0000000a!important}.trail-popup{position:relative}.trail-popup .popup-title{color:#0f172a;margin:0 0 6px;font-size:14px;font-weight:600}.trail-popup .popup-difficulty{color:#64748b;align-items:center;gap:5px;margin:0 6px 8px 0;font-size:11px;font-weight:500;display:inline-flex}.popup-difficulty-marker{border-radius:50%;width:8px;height:8px}.trail-popup .popup-link{color:#2b5df2;align-items:center;gap:4px;font-size:12px;font-weight:500;text-decoration:none;display:inline-flex;position:relative}.trail-popup .popup-link:before{content:"";width:100%;height:44px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.trail-popup .popup-link:hover{color:#1e47c2}.trail-popup .popup-link svg{width:12px;height:12px}.maplibregl-popup-close-button{color:#94a3b8;background:0 0;min-width:44px;min-height:44px;padding:4px 8px;font-size:18px;line-height:1}.maplibregl-popup-close-button:hover{color:#1e293b;background:0 0}.controls{pointer-events:none;position:absolute;inset:0}.controls button{pointer-events:auto}.shell-control{z-index:4;color:#475569;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;background:#fffffff2;border:0;border-radius:6px;width:44px;height:44px;padding:0;position:absolute;box-shadow:0 2px 8px #0000001f,0 0 0 1px #0000000a}.shell-control:hover{background:#f1f5f9}.shell-control:active{transform:scale(.94)}.shell-control[aria-expanded=true]{color:#fff;background:#2b5df2;box-shadow:0 2px 8px #2b5df24d,0 0 0 1px #2b5df233}.shell-control svg{stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.layers-control{bottom:calc(64px + env(safe-area-inset-bottom,0px));left:calc(12px + env(safe-area-inset-left,0px))}.information-control{right:calc(12px + env(safe-area-inset-right,0px));bottom:calc(12px + env(safe-area-inset-bottom,0px))}.basemap-control{bottom:calc(12px + env(safe-area-inset-bottom,0px));left:calc(12px + env(safe-area-inset-left,0px));overflow:hidden}.basemap-thumbnail{width:100%;height:100%;display:block}.basemap-thumbnail-swisstopo{background:#eef0e9 url(https://wmts.geo.admin.ch/1.0.0/ch.swisstopo.pixelkarte-grau/default/current/3857/10/535/350.jpeg) 50%/cover}.basemap-thumbnail-satellite{background:#384f3d url(https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/10/350/535) 50%/cover}.basemap-thumbnail-streets{background:#eef0e9 url(https://tile.openstreetmap.org/10/535/350.png) 50%/cover}.shell-control[disabled]{color:#59635c;cursor:not-allowed;opacity:.82}.map-style-control{z-index:4;color:#475569;cursor:pointer;background:0 0;border:0;width:44px;height:44px;padding:0;font-size:13px;font-weight:700;position:absolute;top:170px;right:6px}.map-style-control-face{background:#fff;border-radius:6px;justify-content:center;align-items:center;display:flex;position:absolute;inset:4px;box-shadow:0 1px 4px #0000001f,0 0 0 1px #0000000a}.map-style-control[disabled]{cursor:not-allowed;opacity:.82}.maplibregl-ctrl-top-right .maplibregl-ctrl-group{border-radius:6px;overflow:hidden;box-shadow:0 1px 4px #0000001f,0 0 0 1px #0000000a}.maplibregl-ctrl-top-right .maplibregl-ctrl-group button{width:36px;height:36px}.maplibregl-ctrl-top-right .maplibregl-ctrl-group:has(.maplibregl-ctrl-geolocate){margin-top:56px}.panel{z-index:5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;border:0;border-radius:6px;width:min(260px,100vw - 80px);max-height:calc(100dvh - 160px);padding:14px 16px;overflow:auto;box-shadow:0 4px 20px #0000001f,0 0 0 1px #0000000a}#layers-panel{bottom:calc(120px + env(safe-area-inset-bottom,0px));left:calc(12px + env(safe-area-inset-left,0px));min-width:220px}#information-panel{right:calc(12px + env(safe-area-inset-right,0px));bottom:calc(64px + env(safe-area-inset-bottom,0px));width:min(310px,100vw - 80px)}.panel[hidden]{display:none}.panel h2,.panel h3{color:#64748b;letter-spacing:.06em;text-transform:uppercase;margin:0 0 8px;font-size:11px;font-weight:600}.panel h3{border-top:1px solid #e2e8f0;margin-top:12px;padding-top:10px}.panel p{margin-block:4px}.panel ul{margin:0;padding-left:1.25rem}.layer-list{gap:0;list-style:none;display:grid;padding-left:0!important}.layer-list label{color:#334155;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:7px 0;font-size:13px;font-weight:500;display:flex}.layer-list input{appearance:none;cursor:pointer;background:#cbd5e1;border-radius:10px;flex:none;width:36px;height:20px;margin:0;position:relative}.layer-list input:before{content:"";background:#fff;border-radius:50%;width:16px;height:16px;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000026}.layer-list input:checked{background:#2b5df2}.layer-list input:checked:before{transform:translate(16px)}.layer-list input:focus-visible{outline-offset:3px;outline:3px solid #005fcc}.legend-grid{grid-template-columns:1fr 1fr;gap:4px 14px;display:grid}.legend-item{align-items:center;gap:8px;padding:3px 0;display:flex}.legend-label{color:#475569;white-space:nowrap;font-size:12px}.difficulty{background:#2769b0;border:1.5px solid #00000014;border-radius:50%;flex:none;width:10px;height:10px}.difficulty-4{background:#148cf0}.difficulty-9{background:#dc1313}.difficulty-10{background:#000}.difficulty-3{background:#46b414}.difficulty-7{background:#8b4513}.difficulty-1{background:#999}.line-legend{border-top:3px solid #8b4513;flex:none;width:1.35rem;height:0}.line-legend-zugerwald-bike{border-top-style:dashed}.line-legend-public-transport{border-top-color:#64748b}.panel-title{color:#64748b;letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:600}.panel-title-separated,.legend-details{border-top:1px solid #e2e8f0;margin-top:12px;padding-top:10px}.legend-details{color:#64748b;font-size:11px;line-height:1.5}.legend-details>div+div{margin-top:4px}.disclaimer{margin-top:6px!important}.language-selector{border:0;border-top:1px solid #d6ddd8;min-width:0;margin:1rem 0 0;padding:1rem 0 0}.language-selector legend{margin:0 0 .75rem;padding:0;font-weight:700}.language-options{grid-template-columns:repeat(4,minmax(44px,1fr));gap:.4rem;display:grid}.language-options button{color:#17211a;cursor:pointer;background:#fff;border:1px solid #607466;border-radius:.35rem;min-width:44px;min-height:44px}.language-options button[aria-pressed=true]{background:#dce7df;border-color:#17211a;font-weight:800;box-shadow:inset 0 0 0 1px #17211a}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (width<=639px){.branding{gap:5px}.title-bar,.trail-status-bar{gap:4px;padding:5px}.title-logo-mtb{height:26.5px;width:75px!important}.title-logo-trail{width:70px!important}.title-logo-trail,.trail-status,.trail-status img{height:26.5px}.trail-status{flex-basis:67.23px;width:67.23px}.shell-control{width:48px;height:48px}.shell-control svg{width:22px;height:22px}.layers-control{bottom:calc(72px + env(safe-area-inset-bottom,0px))}#layers-panel{bottom:calc(128px + env(safe-area-inset-bottom,0px))}#information-panel{bottom:calc(68px + env(safe-area-inset-bottom,0px))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
