/* Loaded after responsive.css: shortcuts share the main control rails. */
.meteone-live-stations .meteone-radar-quick-control {
    left: 10px;
    bottom: calc(var(--meteone-tools-bottom) + var(--meteone-map-control-size) + 8px);
    flex-direction: column;
}

/* The left rail contains only the menu shortcut. Stop and station visibility
   share the right rail on both desktop and mobile. */
.meteone-live-stations .has-radar-quick-controls {
    --meteone-left-quick-reserved-bottom: calc(var(--meteone-tools-bottom) + var(--meteone-map-control-size) * 2 + 16px);
    --meteone-radar-right-quick-rows: 2;
}
.meteone-live-stations .has-isoline-quick-controls:not(.has-radar-quick-controls) {
    --meteone-radar-right-quick-rows: 2;
}
.meteone-live-stations .has-isoline-quick-controls.has-radar-quick-controls {
    --meteone-radar-right-quick-rows: 3;
}
.meteone-live-stations .meteone-radar-marker-control[hidden],
.meteone-live-stations .meteone-radar-quick-control[hidden],
.meteone-live-stations .meteone-radar-quick-control__off[hidden],
.meteone-live-stations .meteone-isoline-quick-control__off[hidden] {
    display: none;
}
.meteone-live-stations .has-radar-quick-controls .meteone-station-menu__panel:is(.has-open-category, .is-category-closing, .is-open, .is-closing) {
    top: calc(50% + 5px - var(--meteone-left-quick-reserved-bottom) / 2);
    max-height: calc(100% - 10px - var(--meteone-left-quick-reserved-bottom));
    overflow-y: auto;
    overscroll-behavior-y: contain;
}
.meteone-geolocation-quick-control__stop-icon,
.meteone-geolocation-quick-control__recenter-icon {
    display: block;
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.meteone-geolocation-quick-control__center { fill: currentColor; stroke: none; }
.meteone-live-stations .meteone-radar-marker-control__toggle svg {
    width: 24px;
    height: 24px;
    stroke-width: 1.8;
    stroke-linecap: round;
}
.meteone-live-stations .meteone-geolocation-quick-control button,
.meteone-live-stations .meteone-radar-marker-control button,
.meteone-live-stations .meteone-radar-quick-control button { border-radius: 12px; }
.meteone-live-stations {
    --meteone-filter-quick-rows: 0;
    --meteone-utility-quick-rows: 0;
    --meteone-certificate-quick-rows: 0;
    --meteone-tools-stack-height: 0px;
    --meteone-right-quick-rise: 0px;
    --meteone-right-quick-gap: 8px;
}
.meteone-live-stations .meteone-live-stations__map {
    --meteone-gps-quick-rows: var(--meteone-gps-active-quick-rows, 0);
}
.meteone-live-stations .has-value-filter-quick-control { --meteone-filter-quick-rows: 1; }
@media (max-width: 999px) {
    .meteone-live-stations .has-certified-quick-control { --meteone-certificate-quick-rows: 1; }
}
@media (min-width: 1000px) {
    .meteone-live-stations .has-certified-quick-control { --meteone-certificate-quick-rows: 0; }
    .meteone-live-stations .meteone-certificate-quick-shell { display: none; }
}
/* ResizeObserver delivers the tools height without polling layout. All quick
   actions rise vertically above that stack; none change their right anchor. */
.meteone-live-stations .has-open-map-tools {
    --meteone-right-quick-rise: calc(var(--meteone-tools-stack-height) + var(--meteone-right-quick-gap));
    --meteone-filter-quick-rows: 0;
}
/* Main buttons, actions inside the menu and quick actions use one skin. The
   rail follows the viewport-sized control token, including short landscape. */
.meteone-live-stations .meteone-map-tools-control__item,
.meteone-live-stations .meteone-map-tools-control__option,
.meteone-live-stations .meteone-map-tools-control__quick-actions > button {
    display: grid;
    width: var(--meteone-map-control-size);
    min-width: var(--meteone-map-control-size);
    max-width: var(--meteone-map-control-size);
    height: var(--meteone-map-control-size);
    min-height: var(--meteone-map-control-size);
    max-height: var(--meteone-map-control-size);
    border-radius: 12px;
    background: rgb(255 255 255 / 96%);
    box-shadow: 0 3px 16px rgb(19 43 58 / 22%);
    place-items: center;
}
/* The common grid skin must not undo native hidden state for commands which
   do not apply to the current view, or installation after it is complete. */
.meteone-live-stations .meteone-map-tools-control .meteone-map-tools-control__item[hidden] {
    display: none;
}
/* Salient/Leaflet first/last-child rules must not turn the endpoints into
   pills. A short shadow leaves visible air between every separate action. */
.meteone-live-stations {
    --meteone-control-shadow: 0 2px 5px rgb(19 43 58 / 16%);
    --meteone-gps-success-background: #e3f0e9;
    --meteone-gps-success-color: #38644d;
    --meteone-gps-error-background: #f4e6e7;
    --meteone-gps-error-color: #8a4b52;
}
.meteone-live-stations :is(.meteone-map-control-button, .meteone-station-menu__toggle, .meteone-map-tools-control__item, .meteone-map-tools-control__option),
.meteone-live-stations :is(.meteone-map-control-button, .meteone-station-menu__toggle, .meteone-map-tools-control__item, .meteone-map-tools-control__option):is(:hover, :active, :focus-visible, .is-active),
.meteone-live-stations .leaflet-bar :is(.meteone-map-control-button, .meteone-map-tools-control__item, .meteone-map-tools-control__option):is(:first-child, :last-child) {
    border-radius: var(--meteone-control-radius, 12px) !important;
    box-shadow: var(--meteone-control-shadow) !important;
}
.meteone-live-stations .meteone-map-control-shell { box-shadow: none !important; }
/* A disabled screenshot is unavailable, not selected or pressed. Browser and
   theme hover/focus rules must not paint a second inset shadow over its skin. */
.meteone-live-stations .meteone-live-stations__map .meteone-map-tools-control .meteone-map-tools-control__actions .meteone-map-tools-control__item:is(:disabled, [aria-disabled='true'], .is-disabled),
.meteone-live-stations .meteone-live-stations__map .meteone-map-tools-control .meteone-map-tools-control__actions .meteone-map-tools-control__item:is(:disabled, [aria-disabled='true'], .is-disabled):is(:hover, :active, :focus, :focus-visible) {
    border-radius: var(--meteone-control-radius, 12px) !important;
    background: rgb(255 255 255 / 96%) !important;
    background-image: none !important;
    box-shadow: var(--meteone-control-shadow) !important;
    color: #6b7e89 !important;
    transform: none !important;
    opacity: 1 !important;
    cursor: not-allowed;
}
.meteone-live-stations .meteone-live-stations__map .meteone-map-tools-control .meteone-map-tools-control__actions .meteone-map-tools-control__item:is(:disabled, [aria-disabled='true'], .is-disabled):not(:focus-visible) {
    outline: none;
}
.meteone-live-stations .meteone-live-stations__map .meteone-map-tools-control .meteone-map-tools-control__actions .meteone-map-tools-control__item:is(:disabled, [aria-disabled='true'], .is-disabled)::before,
.meteone-live-stations .meteone-live-stations__map .meteone-map-tools-control .meteone-map-tools-control__actions .meteone-map-tools-control__item:is(:disabled, [aria-disabled='true'], .is-disabled)::after {
    display: none !important;
    content: none !important;
    box-shadow: none !important;
}
/* Salient's .row .col img rules also target SVG files used as UI images.
   Keep the existing icon sizes; never change the theme or map tile images. */
.meteone-live-stations .meteone-live-stations__map img:is(.meteone-station-menu__icon, .meteone-station-menu__certificate-icon, .meteone-certificate-quick-control__icon, .meteone-station-menu__radar-option-icon),
.meteone-live-stations .meteone-live-stations__map :is(.meteone-radar-quick-control, .meteone-radar-marker-control) button img {
    width: var(--meteone-ui-icon-size, 28px) !important;
    height: var(--meteone-ui-icon-size, 28px) !important;
    max-width: none !important;
    margin: 0 !important;
    object-fit: contain;
}
.meteone-live-stations img.meteone-station-menu__icon { --meteone-ui-icon-size: 45px; }
.meteone-live-stations .meteone-station-menu__category-button.is-daily-extremes img.meteone-station-menu__icon {
    --meteone-ui-icon-size: 43px;
    flex-basis: 43px;
    margin: 1px !important;
}
.meteone-live-stations img:is(.meteone-station-menu__certificate-icon, .meteone-certificate-quick-control__icon) { --meteone-ui-icon-size: 30px; }
.meteone-live-stations .meteone-live-stations__map img.meteone-station-menu__certificate-icon { margin: 7.5px !important; }
.meteone-live-stations img.meteone-station-menu__radar-option-icon { --meteone-ui-icon-size: 20px; }
.meteone-live-stations .meteone-live-stations__map .meteone-geolocation-control__button.has-location,
.meteone-live-stations .meteone-live-stations__map .meteone-geolocation-control__button.has-location:is(:hover, :active, :focus-visible),
.meteone-live-stations .meteone-live-stations__map .meteone-geolocation-quick-control__stop,
.meteone-live-stations .meteone-live-stations__map .meteone-geolocation-quick-control__stop:is(:hover, :active, :focus-visible) {
    background: var(--meteone-gps-success-background) !important;
    color: var(--meteone-gps-success-color) !important;
    box-shadow: var(--meteone-control-shadow) !important;
}
.meteone-live-stations .meteone-live-stations__map .meteone-geolocation-control__button.has-error,
.meteone-live-stations .meteone-live-stations__map .meteone-geolocation-control__button.has-error:is(:hover, :active, :focus-visible),
.meteone-live-stations .meteone-live-stations__map .meteone-geolocation-quick-control.has-error .meteone-geolocation-quick-control__stop {
    background: var(--meteone-gps-error-background) !important;
    color: var(--meteone-gps-error-color) !important;
    box-shadow: var(--meteone-control-shadow) !important;
}
.meteone-map-tools-control__gps-slash[hidden] { display: none; }
/* One GPS stop action: inside the opened tools, outside on dismissal. */
.meteone-live-stations .has-open-map-tools .meteone-geolocation-quick-control__stop { display: none; }
.meteone-live-stations .has-open-map-tools { --meteone-gps-quick-rows: 0; }
.meteone-live-stations .has-open-map-tools:has(.meteone-geolocation-quick-control__recenter:not([hidden])) { --meteone-gps-quick-rows: 1; }
.meteone-live-stations .meteone-certificate-quick-shell {
    right: 10px;
    bottom: calc(var(--meteone-tools-bottom) + var(--meteone-right-quick-rise) + (var(--meteone-map-control-size) + var(--meteone-right-quick-gap)) * (1 + var(--meteone-filter-quick-rows) + var(--meteone-utility-quick-rows)));
    width: var(--meteone-map-control-size);
    transition: bottom 180ms ease;
}
.meteone-live-stations .meteone-certificate-quick-control {
    position: relative;
    display: grid;
    width: var(--meteone-map-control-size);
    min-width: var(--meteone-map-control-size);
    max-width: var(--meteone-map-control-size);
    height: var(--meteone-map-control-size);
    min-height: var(--meteone-map-control-size);
    max-height: var(--meteone-map-control-size);
    place-items: center;
}
.meteone-live-stations .meteone-certificate-quick-control[hidden] { display: none; }
.meteone-live-stations .meteone-certificate-quick-shell[hidden] { display: none; }
.meteone-certificate-quick-control__icon { display: block; width: 30px; height: 30px; }
.meteone-live-stations .meteone-map-tools-control__quick-actions {
    position: absolute;
    right: 0;
    bottom: calc(var(--meteone-right-quick-rise) + (var(--meteone-map-control-size) + var(--meteone-right-quick-gap)) * (1 + var(--meteone-filter-quick-rows)));
    display: grid;
    gap: var(--meteone-right-quick-gap);
    transition: bottom 180ms ease;
}
.meteone-live-stations .meteone-map-tools-control__quick-actions[hidden],
.meteone-live-stations .meteone-map-tools-control__quick-actions > button[hidden] {
    display: none;
}
.meteone-live-stations .meteone-map-tools-control__actions {
    max-height: max(var(--meteone-map-control-size), calc(var(--meteone-map-height, 100dvh) - var(--meteone-tools-bottom, 32px) - var(--meteone-map-control-size) - (var(--meteone-map-control-size) + var(--meteone-right-quick-gap)) * (var(--meteone-gps-quick-rows, 0) + var(--meteone-filter-quick-rows) + var(--meteone-radar-right-quick-rows, 0) + var(--meteone-utility-quick-rows) + var(--meteone-certificate-quick-rows)) - 64px));
}
.meteone-live-stations .meteone-geolocation-quick-control {
    right: 10px;
    bottom: calc(var(--meteone-tools-bottom) + var(--meteone-right-quick-rise) + (var(--meteone-map-control-size) + var(--meteone-right-quick-gap)) * (1 + var(--meteone-filter-quick-rows) + var(--meteone-utility-quick-rows) + var(--meteone-certificate-quick-rows)));
    gap: var(--meteone-right-quick-gap);
    transition: bottom 180ms ease;
}
.meteone-live-stations .meteone-radar-marker-control {
    right: 10px;
    bottom: calc(var(--meteone-tools-bottom) + var(--meteone-right-quick-rise) + (var(--meteone-map-control-size) + var(--meteone-right-quick-gap)) * (1 + var(--meteone-gps-quick-rows, 0) + var(--meteone-filter-quick-rows) + var(--meteone-utility-quick-rows) + var(--meteone-certificate-quick-rows)));
    gap: var(--meteone-right-quick-gap);
    flex-direction: column;
    transition: bottom 180ms ease;
}
.meteone-radar-quick-control__off,
.meteone-isoline-quick-control__off { position: relative; }
.meteone-radar-quick-control__off-image { display: block; width: 28px; height: 28px; }
.meteone-radar-quick-control__off-slash,
.meteone-quick-off-slash { position: absolute; top: 50%; left: 50%; width: 24px; height: 24px; transform: translate(-50%, -50%); pointer-events: none; }
.meteone-radar-quick-control__off-slash svg,
.meteone-quick-off-slash svg {
    display: block;
    width: 100%;
    height: 100%;
    fill: none;
    stroke: #132b3a;
    stroke-width: 2;
    stroke-linecap: round;
}
.meteone-radar-quick-control__off-slash .meteone-radar-quick-control__slash-underlay,
.meteone-quick-off-slash .meteone-quick-off-slash__underlay { stroke: #fff; stroke-width: 4; }
/* GPS messages belong to the map, not to a narrow tools button. */
.meteone-live-stations .meteone-live-stations__map > .meteone-geolocation-control__status {
    z-index: 1300;
    top: auto;
    left: 50%;
    right: auto;
    bottom: var(--meteone-tools-bottom);
    width: max-content;
    min-width: 0;
    max-width: min(360px, calc(100% - (var(--meteone-map-control-size) + 22px) * 2));
    max-height: calc(100% - 100px);
    padding: 10px 14px;
    font-size: 14px;
    line-height: 1.4;
    overflow-wrap: anywhere;
    transform: translateX(-50%);
}
.meteone-live-stations .meteone-live-stations__map:has(.meteone-radar-status:not([hidden])) > .meteone-geolocation-control__status {
    bottom: calc(var(--meteone-tools-bottom) + var(--meteone-map-control-size) + 8px);
}
.meteone-live-stations .meteone-live-stations__map > .meteone-geolocation-control__status.is-error {
    background: var(--meteone-gps-error-background);
    color: var(--meteone-gps-error-color);
}
/* Adjacent filter owns its card space, quick controls return on dismissal. */
.meteone-live-stations .has-value-filter-panel :is(.meteone-geolocation-quick-control, .meteone-radar-marker-control, .meteone-map-tools-control__clear-filter, .meteone-map-tools-control__quick-actions, .meteone-certificate-quick-shell) {
    visibility: hidden;
    pointer-events: none;
}
@media (min-width: 1000px) {
    .meteone-live-stations .meteone-radar-quick-control { display: none; }
    .meteone-live-stations .has-radar-quick-controls {
        --meteone-left-quick-reserved-bottom: calc(var(--meteone-tools-bottom) + var(--meteone-map-control-size) + 8px);
    }
}
@media (max-width: 999px) {
    .meteone-live-stations .meteone-radar-status { bottom: var(--meteone-tools-bottom); }
    .meteone-live-stations .is-station-search-open .meteone-radar-quick-control {
        visibility: hidden;
        pointer-events: none;
    }
}
@media (prefers-reduced-motion: reduce) {
    .meteone-live-stations .meteone-geolocation-quick-control,
    .meteone-live-stations .meteone-radar-marker-control,
    .meteone-live-stations .meteone-map-tools-control__quick-actions,
    .meteone-live-stations .meteone-certificate-quick-shell { transition: none; }
}
/* Short landscape viewports cannot fit seven 44px actions plus a header.
   Keep the same column, preserving >=30px targets, and scroll only tools. */
@media (max-height: 500px) and (orientation: landscape) {
    .meteone-live-stations { --meteone-map-control-size: 36px; --meteone-right-quick-gap: 2px; }
    .meteone-live-stations .has-radar-quick-controls.has-geolocation-quick-controls.has-value-filter-quick-control { --meteone-map-control-size: 30px; }
    .meteone-live-stations .has-radar-quick-controls.has-geolocation-quick-controls.has-map-tools-quick-controls { --meteone-map-control-size: 30px; }
    .meteone-live-stations .meteone-map-control-button,
    .meteone-live-stations .meteone-station-menu__toggle,
    .meteone-live-stations .meteone-map-tools-control__item,
    .meteone-live-stations .meteone-map-tools-control__option {
        width: var(--meteone-map-control-size);
        min-width: var(--meteone-map-control-size);
        max-width: var(--meteone-map-control-size);
        height: var(--meteone-map-control-size);
        min-height: var(--meteone-map-control-size);
        max-height: var(--meteone-map-control-size);
        line-height: var(--meteone-map-control-size);
    }
    .meteone-live-stations .meteone-station-search__input { height: var(--meteone-map-control-size); }
}
