.map-legend-control{z-index:var(--z-dropdown);pointer-events:auto}.leaflet-top.leaflet-right .map-legend-control{margin:12px 12px 0 0}.leaflet-top.leaflet-right:has(.map-legend:not(.map-legend--collapsed)){z-index:1001}.map-legend{background:var(--color-overlay-surface);border:1px solid var(--color-border);border-radius:var(--radius-overlay);width:272px;box-shadow:var(--shadow-overlay);overflow:hidden}.map-legend.map-legend--collapsed{width:fit-content;max-width:calc(100vw - 20px);box-shadow:var(--shadow-sm)}.map-legend--collapsed .map-legend__body{display:none}.map-legend__toggle{width:100%;min-height:var(--control-size);justify-content:space-between;align-items:center;gap:var(--space-3);padding:0 var(--space-3);cursor:pointer;text-align:left;background:0 0;border:none;display:flex}.map-legend__toggle:hover{background:var(--color-surface-secondary)}.map-legend__toggle:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:-2px;border-radius:var(--radius-overlay)}.map-legend__toggle-main{align-items:center;gap:var(--space-2);min-width:0;display:flex}.map-legend__toggle-icon{color:var(--color-primary);font-size:var(--font-size-sm);flex-shrink:0}.map-legend__title{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);white-space:nowrap;margin:0}.map-legend__toggle-chevron{font-size:var(--font-size-xs);color:var(--color-text-secondary);flex-shrink:0}.map-legend__body{padding:0 var(--space-3) var(--space-3);border-top:1px solid var(--color-border);scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent;max-height:min(60vh,384px);overflow:hidden auto;container-type:inline-size}.map-legend__section{padding-top:var(--space-3)}.map-legend__section+.map-legend__section{margin-top:var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--color-border)}.map-legend__section-header{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1);display:flex}.map-legend__section-title{color:var(--color-text-secondary);font-size:var(--font-size-label);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-label);text-transform:uppercase;margin:0}.map-legend__section>.map-legend__section-title{margin-bottom:var(--space-2)}.map-legend__actions{margin-right:calc(-1 * var(--space-2));display:flex}.map-legend__action-btn{min-height:2rem;padding:0 var(--space-2);border-radius:var(--radius-control);color:var(--color-text-link);font:inherit;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap;cursor:pointer;transition:background-color var(--transition-fast) var(--ease-out);background:0 0;border:none}.map-legend__action-btn:hover{background:var(--color-surface-secondary);color:var(--color-text-link-hover)}.map-legend__action-btn:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:-2px}.map-legend__options{flex-direction:column;display:flex}.map-legend__option{cursor:pointer;user-select:none;transition:background-color var(--transition-fast) var(--ease-out);align-items:center;display:flex}.map-legend__option:focus-visible,.map-legend__option:has(:focus-visible){outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:-2px}.map-legend__radio,.map-legend__checkbox{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.map-legend__label{min-width:0}.map-legend__label-primary{color:var(--color-text-primary);font-size:var(--font-size-meta);font-weight:var(--font-weight-medium);line-height:var(--line-height-snug)}.map-legend__label-secondary{display:none}.map-legend__options[role=radiogroup]{border-radius:var(--radius-md);background:var(--color-surface-tertiary);grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;padding:3px;display:grid}@container (width>=19rem){.map-legend__options[role=radiogroup]{grid-template-columns:repeat(4,minmax(0,1fr))}}.map-legend__options[role=radiogroup] .map-legend__option{min-height:1.875rem;padding:0 var(--space-1);border-radius:var(--radius-sm);text-align:center;justify-content:center}.map-legend__options[role=radiogroup] .map-legend__option:hover{background:var(--color-surface-secondary)}.map-legend__options[role=radiogroup] .map-legend__radio-visual{display:none}.map-legend__options[role=radiogroup] .map-legend__label-primary{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.map-legend__options[role=radiogroup] .map-legend__option--selected,.map-legend__options[role=radiogroup] .map-legend__option--selected:hover{background:var(--color-surface);box-shadow:var(--shadow-sm)}.map-legend__options[role=radiogroup] .map-legend__option--selected .map-legend__label-primary{color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.map-legend__options:not([role=radiogroup]) .map-legend__option{gap:var(--space-3);min-height:2.25rem;margin:0 calc(-1 * var(--space-2));padding:0 var(--space-2);border-radius:var(--radius-md)}.map-legend__options:not([role=radiogroup]) .map-legend__option:hover{background:var(--color-surface-secondary)}.map-legend__icon{--fa-width:1.625rem;--fa-display:inline-flex;border-radius:var(--radius-sm);background:var(--color-surface-secondary);width:1.625rem;height:1.625rem;font-size:var(--font-size-meta);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.map-legend__options:not([role=radiogroup]) .map-legend__label{flex:1}.map-legend__option:not(.map-legend__option--checked) .map-legend__icon{opacity:.55}.map-legend__option:not(.map-legend__option--checked) .map-legend__checkbox~.map-legend__label .map-legend__label-primary{color:var(--color-text-secondary)}.map-legend__checkbox-visual{border-radius:var(--radius-full);background:var(--color-border-control);width:2rem;height:1.125rem;transition:background-color var(--transition-fast) var(--ease-out);flex-shrink:0;order:1;position:relative}.map-legend__checkbox-visual:after{content:"";border-radius:var(--radius-full);background:var(--color-surface);width:calc(1.125rem - 4px);height:calc(1.125rem - 4px);transition:transform var(--transition-fast) var(--ease-out);position:absolute;top:2px;left:2px}.map-legend__checkbox-visual i{display:none}.map-legend__checkbox:checked+.map-legend__checkbox-visual{background:var(--color-primary)}.map-legend__checkbox:checked+.map-legend__checkbox-visual:after{background:var(--color-on-primary);transform:translate(.875rem)}@media (width>=992px){.map-legend__body{max-height:min(70vh,500px)}}.map-app .map-legend__body{max-height:min(70vh,520px)}[data-theme=dark] .map-legend__options[role=radiogroup]{background:var(--color-surface-secondary)}[data-theme=dark] .map-legend__options[role=radiogroup] .map-legend__option:hover,[data-theme=dark] .map-legend__options[role=radiogroup] .map-legend__option--selected{background:var(--color-surface-tertiary)}@media (width<=768px){.leaflet-top.leaflet-right .map-legend-control{margin:8px 8px 0 0}.map-legend{width:min(340px,100vw - 48px)}.map-legend__toggle{min-height:var(--touch-target)}.map-legend__action-btn{min-height:var(--touch-target);font-size:var(--font-size-meta)}.map-legend__options[role=radiogroup] .map-legend__option{min-height:2.375rem}.map-legend__options[role=radiogroup] .map-legend__label-primary{font-size:var(--font-size-meta)}.map-legend__options:not([role=radiogroup]) .map-legend__option{min-height:var(--touch-target)}.map-legend__label-primary{font-size:var(--font-size-sm)}.map-legend__icon{--fa-width:1.875rem;width:1.875rem;height:1.875rem;font-size:var(--font-size-sm)}.map-legend__checkbox-visual{width:2.5rem;height:1.5rem}.map-legend__checkbox-visual:after{width:calc(1.5rem - 4px);height:calc(1.5rem - 4px)}.map-legend__checkbox:checked+.map-legend__checkbox-visual:after{transform:translate(1rem)}}@media (width<=480px){.leaflet-top.leaflet-right:has(.map-legend:not(.map-legend--collapsed)){left:0}.leaflet-top.leaflet-right .map-legend-control:has(.map-legend:not(.map-legend--collapsed)){float:none;margin-left:8px}.map-legend:not(.map-legend--collapsed){width:auto}}@media (prefers-reduced-motion:reduce){.map-legend__option,.map-legend__action-btn,.map-legend__checkbox-visual,.map-legend__checkbox-visual:after{transition-duration:.01ms!important}}@media print{.map-legend-control{display:none}}
