.menu-host{position:relative}.menu-container{position:absolute;top:12px;right:12px;z-index:4100}.menu-container--toolbar{position:relative;display:flex;align-self:start;align-items:center;justify-content:center;margin-top:calc(var(--control-label-offset) + 4px);height:var(--control-h);z-index:4100}.hamburger-icon{position:relative;display:flex;align-items:center;justify-content:center;z-index:4101}.hamburger-icon button{position:relative;display:inline-flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:42px;height:42px;padding:0;color:var(--brand-primary);border-radius:var(--radius-pill);background:var(--surface-elevated);border:1px solid var(--border);box-shadow:var(--shadow-soft);cursor:pointer}.hamburger-icon button:hover{box-shadow:var(--shadow-float)}.hamburger-icon button:focus-visible{outline:none;box-shadow:var(--focus-ring),var(--shadow-soft)}.hamburger-icon button>span:not(.menu-tooltip){height:3px;width:24px;background:currentColor;border-radius:2px;transform-origin:center;transition:transform .3s ease,opacity .2s ease,background .2s ease}.menu-container.is-open .hamburger-icon button>span:not(.menu-tooltip):nth-of-type(1){transform:translateY(8px) rotate(45deg);background:currentColor}.menu-container.is-open .hamburger-icon button>span:not(.menu-tooltip):nth-of-type(2){opacity:0}.menu-container.is-open .hamburger-icon button>span:not(.menu-tooltip):nth-of-type(3){transform:translateY(-8px) rotate(-45deg);background:currentColor}.menu-container.is-open .hamburger-icon button{color:var(--text-inverse);background:var(--brand-primary);border-color:var(--brand-primary)}.menu-container.is-open .hamburger-icon .menu-tooltip{opacity:0}.menu-tooltip{position:absolute;top:52px;left:50%;z-index:var(--z-tooltip);padding:var(--tooltip-pad-y) var(--tooltip-pad-x);color:var(--tooltip-text);background:var(--tooltip-bg);border-radius:var(--tooltip-radius);box-shadow:var(--shadow-soft);font-size:12px;line-height:1;white-space:nowrap;opacity:0;pointer-events:none;transform:translate(-50%)}.hamburger-icon button:hover .menu-tooltip,.hamburger-icon button:focus-visible .menu-tooltip{opacity:1}.menu-pane{position:absolute;top:calc(100% + 10px);right:0;width:min(300px,calc(100vw - 24px));padding:14px;color:var(--text);background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-float);opacity:0;pointer-events:none;transform:translateY(-6px);transition:opacity var(--transition-fast),transform var(--transition-fast);z-index:4000}.menu-pane[hidden]{display:none}.menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;padding:0;background:transparent;border:0;opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:3900}.menu-overlay[hidden]{display:none}.menu-container.is-open .menu-pane{opacity:1;pointer-events:auto;transform:translateY(0)}.menu-container.is-open .menu-overlay{opacity:1;pointer-events:auto}.menu-pane nav{display:flex;flex-direction:column}.menu-drawer-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.menu-drawer-brand{display:flex;align-items:center;min-width:0;gap:10px}.menu-drawer-brand img{width:36px;height:36px;flex:0 0 auto}.menu-drawer-brand strong{display:block}.menu-drawer-brand>div>span:not(.brand-main):not(.brand-accent){display:block;margin-top:2px;color:var(--text-muted);font-size:var(--text-xs)}.menu-drawer-close{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;color:var(--brand-primary);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);font:inherit;font-size:1.3rem;line-height:1;cursor:pointer}.menu-drawer-close:hover,.menu-drawer-close:focus-visible{background:color-mix(in srgb,var(--brand-primary) 8%,white);outline:none;box-shadow:var(--focus-ring)}.menu-links{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.menu-links>li>a,.menu-policy-group summary{min-height:40px;display:flex;align-items:center;color:var(--brand-primary);text-decoration:none;padding:0 10px;font-size:var(--text-md);font-weight:600;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.menu-policy-group{display:grid;gap:6px}.menu-policy-group summary{box-sizing:border-box;width:100%;list-style:none;cursor:pointer}.menu-policy-group summary::-webkit-details-marker{display:none}.menu-policy-group summary:after{content:"+";margin-left:auto;padding-left:10px;font-weight:700}.menu-policy-group[open] summary:after{content:"-"}.menu-policy-links{display:grid;gap:6px;margin:0;padding:0;list-style:none}.menu-links>li[hidden]{display:none!important}.menu-policy-links a{min-height:34px;display:flex;align-items:center;padding:0 10px 0 14px;color:var(--brand-primary);background:transparent;border:0;border-left:2px solid color-mix(in srgb,var(--brand-primary) 20%,white);border-radius:0;font-size:var(--text-sm);font-weight:600;line-height:1.25;text-decoration:none}.menu-policy-links a:hover,.menu-policy-links a:focus-visible{background:color-mix(in srgb,var(--brand-primary) 5%,white);outline:none;box-shadow:var(--focus-ring)}.menu-policy-links a[aria-current=page]{color:var(--text);background:color-mix(in srgb,var(--brand-primary) 7%,white);border-left-color:var(--brand-primary);cursor:default}.menu-technical{margin-top:12px}.menu-links a:hover,.menu-links a:focus-visible,.menu-policy-group summary:hover,.menu-policy-group summary:focus-visible{color:var(--brand-primary);background:color-mix(in srgb,var(--brand-primary) 8%,white);outline:none}#back-to-map{font-size:var(--text-md);font-weight:600;margin:0;display:flex;align-items:center;white-space:normal;overflow-wrap:anywhere;line-height:1.2}.map-info{position:relative;top:auto;right:auto;margin-left:auto;align-self:center;z-index:4100}.map-info__button{position:relative;width:42px;height:42px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--brand-primary);background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-pill);box-shadow:var(--shadow-soft);cursor:pointer;list-style:none}.map-info__button:hover{box-shadow:var(--shadow-float)}.map-info__button:focus-visible{outline:none;box-shadow:var(--focus-ring),var(--shadow-soft)}.map-info__button:hover .ui-tooltip,.map-info__button:focus-visible .ui-tooltip{opacity:1}.map-info__button .ui-tooltip{top:auto;right:0;bottom:calc(100% + 10px);left:auto;transform:none}.map-info.is-open .map-info__button{visibility:hidden;pointer-events:none}.app--map.map-info-open .panel--top,.app--map .layout:has(.map-info.is-open) .panel--top{z-index:1000}.app--map.map-info-open #map-area,#map-area:has(.map-info.is-open){position:relative;z-index:5000}.app--map.map-info-open .layout,.app--map.map-info-open #map-area{overflow:visible}.map-info__bar{width:24px;height:3px;background:currentColor;border-radius:2px;transform-origin:center;transition:transform .3s ease,opacity .2s ease,background .2s ease}.map-info__panel{position:absolute;right:0;top:auto;bottom:calc(100% + 10px);width:min(280px,calc(100vw - 24px));padding:14px;color:var(--text);background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-float)}.map-info__panel[hidden],.map-info__policy-group .menu-policy-links[hidden]{display:none!important}.map-info__header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.map-info__brand{display:flex;align-items:center;min-width:0;gap:10px}.map-info__brand img{width:36px;height:36px;flex:0 0 auto}.map-info__brand strong{display:block}.map-info__brand>div>span:not(.brand-main):not(.brand-accent){display:block;margin-top:2px;color:var(--text-muted);font-size:var(--text-xs)}.map-info__close{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;color:var(--brand-primary);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);font:inherit;font-size:1.3rem;line-height:1;cursor:pointer}.map-info__close:hover,.map-info__close:focus-visible{background:color-mix(in srgb,var(--brand-primary) 8%,white);outline:none;box-shadow:var(--focus-ring)}.map-info__links{display:grid;gap:6px;min-width:0}.map-info__heading{margin:0 0 2px;color:var(--text-strong);font-size:var(--text-sm);line-height:1.25}.map-info__links>a,.map-info__links summary,.map-info__link-button{box-sizing:border-box;min-height:40px;display:flex;align-items:center;width:100%;min-width:0;padding:0 10px;color:var(--brand-primary);text-decoration:none;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font:inherit;font-weight:600;text-align:left;cursor:pointer}.map-info__links>a:hover,.map-info__links>a:focus-visible,.map-info__links summary:hover,.map-info__links summary:focus-visible,.map-info__link-button:hover,.map-info__link-button:focus-visible{background:color-mix(in srgb,var(--brand-primary) 8%,white)}.map-info__policy-group{display:grid;gap:6px;min-width:0}.map-info__disclosure-button,.map-info__technical summary{box-sizing:border-box;min-height:40px;display:flex;align-items:center;width:100%;min-width:0;padding:0 10px;color:var(--text);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;font-weight:700;text-align:left;cursor:pointer}.map-info__disclosure-button:hover,.map-info__disclosure-button:focus-visible,.map-info__technical summary:hover,.map-info__technical summary:focus-visible{background:color-mix(in srgb,var(--brand-primary) 6%,white);outline:none;box-shadow:var(--focus-ring)}.map-info__disclosure-indicator{margin-left:auto;padding-left:10px;color:var(--brand-primary);font-weight:800}.map-info__policy-group .menu-policy-links{padding:2px 0 0}.map-info__policy-group .menu-policy-links a{min-height:34px;display:flex;align-items:center;padding:0 10px 0 14px;color:var(--brand-primary);background:transparent;border:0;border-left:2px solid color-mix(in srgb,var(--brand-primary) 20%,white);border-radius:0;font-size:var(--text-sm);font-weight:600;line-height:1.25;text-decoration:none}.map-info__policy-group .menu-policy-links a:hover,.map-info__policy-group .menu-policy-links a:focus-visible{background:color-mix(in srgb,var(--brand-primary) 5%,white);outline:none;box-shadow:var(--focus-ring)}.map-info__technical{margin:12px 0 0;padding-top:10px;border-top:1px solid var(--border)}.map-info__technical summary{min-height:34px;color:var(--text-muted);font-size:var(--text-xs)}.map-info__technical summary::-webkit-details-marker{display:none}.map-info__technical summary:after{content:"+";margin-left:auto;color:var(--brand-primary);font-weight:800}.map-info__technical[open] summary:after{content:"-"}.map-info__versions{display:grid;gap:5px;margin:8px 0 0;padding:0 2px}.map-info__versions div{display:flex;justify-content:space-between;gap:10px;min-width:0}.map-info__versions dt,.map-info__versions dd{margin:0;color:var(--text-muted);font-size:var(--text-xs);line-height:1.35}.map-info__versions dd{text-align:right;overflow-wrap:anywhere}.map-info__licence{margin:12px 0 0;color:var(--text-muted);font-size:var(--text-xs);line-height:1.35}.info-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5200;display:grid;place-items:center;padding:16px;background:#0f172a6b}.info-dialog[hidden]{display:none}.info-dialog__panel{width:min(440px,100%);max-height:min(90vh,520px);overflow-y:auto;padding:18px;color:var(--text);background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-float)}.info-dialog__header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.info-dialog h2{margin:0;color:var(--text-strong);font-size:1.2rem;line-height:1.2}.info-dialog p,.info-dialog li{font-size:var(--text-md);line-height:1.5}.info-dialog p{margin:0}.info-dialog ul{margin:0;padding-left:1.2rem}.info-dialog__close{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;color:var(--brand-primary);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);font-size:1.4rem;line-height:1}@media(max-width:899px){.menu-container--toolbar{position:absolute;top:.75rem;right:.875rem;margin-top:0;height:42px;align-self:auto;display:flex;align-items:center;justify-content:center;z-index:4100}.menu-container--toolbar .hamburger-icon{height:42px}.map-info{right:auto;margin-left:auto}.map-info.is-open{z-index:6000}.map-info__button{color:var(--mobile-map-route, var(--brand-primary));background:var(--mobile-map-surface-elevated, var(--surface-elevated));border-color:var(--mobile-map-border, var(--border));box-shadow:0 8px 22px #4860782e}.map-info.is-open .map-info__button{visibility:hidden;pointer-events:none}.map-info__panel{position:fixed;right:10px;bottom:calc(76px + var(--mobile-legal-footer-height, 0px));width:min(300px,calc(100vw - 20px));max-height:calc(100dvh - 120px - var(--mobile-legal-footer-height, 0px));overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:6000;color:var(--mobile-map-label, var(--text));background:var(--mobile-map-surface-elevated, var(--surface-elevated));border-color:var(--mobile-map-border, var(--border))}.map-info__brand>div>span:not(.brand-main):not(.brand-accent),.map-info__licence,.map-info__technical summary{color:var(--mobile-map-muted, var(--text-muted))}.map-info__heading{color:var(--mobile-map-label, var(--text-strong))}.map-info__links>a,.map-info__links summary,.map-info__link-button{color:var(--mobile-map-route, var(--brand-primary));background:var(--mobile-map-surface, var(--surface));border-color:var(--mobile-map-border, var(--border))}.map-info__links>a:hover,.map-info__links>a:focus-visible,.map-info__links summary:hover,.map-info__links summary:focus-visible,.map-info__link-button:hover,.map-info__link-button:focus-visible{background:color-mix(in srgb,var(--mobile-map-route, var(--brand-primary)) 8%,white)}.info-dialog{align-items:end;padding:0}.info-dialog__panel{width:100%;max-height:min(82vh,560px);box-sizing:border-box;padding:18px 18px calc(18px + env(safe-area-inset-bottom,0px));border-right:0;border-bottom:0;border-left:0;border-radius:16px 16px 0 0}}.feedback-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5000;display:grid;place-items:center;padding:16px;background:#0f172a6b}.feedback-dialog[hidden]{display:none}.info-dialog__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}.feedback-form{display:grid;gap:10px;width:min(460px,100%);max-height:min(92vh,680px);overflow-y:auto;padding:18px;color:var(--text);background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-float)}.feedback-form__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.feedback-form h2{margin:0;font-size:1.2rem;line-height:1.2}.feedback-form__close{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;padding:0;color:var(--brand-primary);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);font-size:1.4rem;line-height:1;cursor:pointer}.feedback-form__privacy,.feedback-form__status,.feedback-form__help{margin:0;color:var(--text-muted);font-size:var(--text-sm);line-height:1.4}.feedback-form__privacy a{color:var(--brand-primary);font-weight:700;text-underline-offset:.14em}.feedback-form__conditional{display:grid;gap:8px}.feedback-form__conditional[hidden]{display:none}.feedback-form label{display:grid;gap:3px;color:var(--text);font-weight:600;font-size:var(--text-sm)}.feedback-form label span{color:var(--text-muted);font-weight:400}.feedback-form__checkbox{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;padding:10px 12px;background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-sm)}.feedback-form__checkbox input[type=checkbox]{width:20px;height:20px;margin:.1rem 0 0;padding:0;accent-color:var(--brand-primary)}.feedback-form__checkbox span{color:var(--text);font-size:var(--text-sm);line-height:1.4}.feedback-form select,.feedback-form textarea,.feedback-form input:not([type=checkbox]){width:100%;box-sizing:border-box;padding:10px 12px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit}.feedback-form textarea{resize:vertical;min-height:120px}.feedback-form__submit{min-height:42px;padding:0 14px;color:var(--text-inverse);background:var(--brand-primary);border:1px solid var(--brand-primary);border-radius:var(--radius-sm);font:inherit;font-weight:700;cursor:pointer}.feedback-form__status[data-state=success]{color:#166534}.feedback-form__status[data-state=error]{color:#b91c1c}
