
html.fsp47-map-active,
body.fsp47-map-active {
    overflow: hidden !important;
    height: 100% !important;
}

body.fsp47-map-active .fsp47-shell {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: var(--fsp47-top-offset, 0px);
    z-index: 800;
}

.fsp47-shell {
    width: 100%;
    min-height: 560px;
    background: #070b0f;
    color: #d8e4e7;
    font-family: Consolas, "SFMono-Regular", Menlo, monospace;
    overflow: hidden;
}

.fsp47-map-canvas {
    position: absolute;
    inset: 0;
    background: #090d12;
}

.fsp47-shell .leaflet-control-zoom {
    margin-top: 58px;
}

.fsp47-shell .leaflet-control-attribution {
    background: rgba(5, 8, 11, 0.76);
    color: #879397;
    font-size: 9px;
}

.fsp47-shell .leaflet-control-attribution a {
    color: #9eb0b5;
}

.fsp47-topbar {
    position: absolute;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 950;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 8px;
    border: 1px solid rgba(98, 118, 125, 0.45);
    border-radius: 7px;
    background: rgba(7, 11, 15, 0.91);
    box-shadow: 0 7px 22px rgba(0, 0, 0, 0.38);
    backdrop-filter: blur(6px);
}

.fsp47-brand {
    color: #b8c6c9;
    font-size: 10px;
    letter-spacing: 0.09em;
    white-space: nowrap;
}

.fsp47-map-switch {
    display: flex;
    gap: 3px;
}

.fsp47-map-button,
.fsp47-layer-toggle {
    border: 1px solid #405057;
    background: #111920;
    color: #c8d3d6;
    font-family: inherit;
    font-size: 10px;
    cursor: pointer;
}

.fsp47-map-button {
    min-width: 52px;
    padding: 5px 8px;
    border-radius: 4px;
}

.fsp47-map-button.is-active {
    color: #071113;
    border-color: #29d9d5;
    background: #29d9d5;
}

.fsp47-layer-control {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 960;
}

.fsp47-layer-toggle {
    width: 34px;
    height: 34px;
    border-radius: 6px;
    font-size: 20px;
    line-height: 1;
    box-shadow: 0 5px 16px rgba(0, 0, 0, 0.38);
}

.fsp47-layer-toggle:hover,
.fsp47-layer-toggle[aria-expanded="true"] {
    border-color: #29d9d5;
    color: #29d9d5;
}

.fsp47-layer-menu {
    width: 190px;
    margin-top: 6px;
    padding: 9px;
    border: 1px solid rgba(98, 118, 125, 0.55);
    border-radius: 6px;
    background: rgba(7, 11, 15, 0.95);
    box-shadow: 0 7px 22px rgba(0, 0, 0, 0.45);
}

.fsp47-control-panel {
    position: absolute;
    right: 10px;
    left: auto;
    bottom: 34px;
    z-index: 940;
    width: 168px;
    padding: 9px;
    border: 1px solid rgba(98, 118, 125, 0.42);
    border-radius: 6px;
    background: rgba(7, 11, 15, 0.90);
    box-shadow: 0 7px 22px rgba(0, 0, 0, 0.35);
}

.fsp47-panel-title {
    margin-bottom: 7px;
    color: #8ea0a5;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.fsp47-check-row {
    display: flex;
    align-items: center;
    gap: 7px;
    min-height: 21px;
    margin: 0;
    color: #c2ced1;
    font-size: 10px;
    line-height: 1.2;
    cursor: pointer;
}

.fsp47-check-row input {
    width: 12px;
    height: 12px;
    margin: 0;
    accent-color: #29d9d5;
}

.fsp47-empty {
    padding: 8px 4px;
    color: #7d8b8f;
    font-size: 10px;
    text-align: center;
}

.fsp47-status {
    position: absolute;
    right: 10px;
    bottom: 10px;
    z-index: 930;
    display: flex;
    align-items: center;
    gap: 6px;
    color: #91a1a6;
    font-size: 9px;
}

.fsp47-status-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #29d9d5;
    box-shadow: 0 0 8px rgba(41, 217, 213, 0.85);
}

.fsp47-shell.is-compact .fsp47-control-panel {
    width: 132px;
    padding: 6px;
}

.fsp47-shell.is-compact .fsp47-check-row {
    min-height: 18px;
    font-size: 9px;
}

.fsp47-nightday-pane {
    mix-blend-mode: multiply;
}

@media (max-width: 700px) {
    .fsp47-brand {
        display: none;
    }

    .fsp47-topbar {
        left: 10px;
        transform: none;
    }

    .fsp47-control-panel {
        width: 146px;
    }
}

/* CB APRS DYNDNS layer */
.fsp47-aprs-divicon {
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
}

.fsp47-aprs-marker {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border: 1px solid rgba(255, 176, 0, 0.95);
    border-radius: 50%;
    background: rgba(10, 14, 18, 0.92);
    color: #ffb000;
    font-size: 15px;
    line-height: 1;
    box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.55), 0 0 10px rgba(255, 176, 0, 0.35);
}

.fsp47-aprs-label {
    position: absolute;
    top: 29px;
    left: 50%;
    transform: translateX(-50%);
    padding: 2px 4px;
    border: 1px solid rgba(255, 176, 0, 0.42);
    border-radius: 3px;
    background: rgba(5, 8, 11, 0.88);
    color: #ffd16a;
    font: 700 9px/1.1 Consolas, monospace;
    white-space: nowrap;
    text-shadow: 0 1px 2px #000;
    pointer-events: none;
}

.fsp47-aprs-label-hidden {
    display: none;
}

.fsp47-dark-popup .leaflet-popup-content-wrapper,
.fsp47-dark-popup .leaflet-popup-tip {
    background: #0b1116;
    color: #c9d5d8;
}

.fsp47-dark-popup .leaflet-popup-content-wrapper {
    border: 1px solid #45545a;
    border-radius: 5px;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.52);
}

.fsp47-dark-popup .leaflet-popup-content {
    margin: 11px 13px;
    font-family: Consolas, monospace;
    font-size: 10px;
}

.fsp47-popup-call {
    color: #ffbd2e;
    font-size: 14px;
    font-weight: 800;
}

.fsp47-popup-source {
    margin: 2px 0 9px;
    color: #7f9298;
    font-size: 9px;
}

.fsp47-popup-grid {
    display: grid;
    grid-template-columns: minmax(80px, auto) 1fr;
    gap: 4px 10px;
}

.fsp47-popup-grid span {
    color: #71848a;
}

.fsp47-popup-grid b {
    color: #d6e1e3;
    font-weight: 600;
}

.fsp47-popup-comment {
    margin-top: 9px;
    padding-top: 8px;
    border-top: 1px solid #26343a;
    color: #b9c8cb;
}

.fsp47-popup-raw {
    max-height: 80px;
    margin-top: 8px;
    padding: 6px;
    overflow: auto;
    border-radius: 3px;
    background: #05080b;
    color: #71858b;
    font-size: 8px;
    overflow-wrap: anywhere;
}


/* Large live debug console */
.fsp47-debug-panel {
    position: absolute;
    right: 10px;
    bottom: 30px;
    z-index: 1200;
    width: min(620px, calc(100vw - 30px));
    height: 34px;
    border: 1px solid #46555c;
    border-radius: 6px;
    background: rgba(3, 7, 10, 0.96);
    box-shadow: 0 12px 34px rgba(0, 0, 0, 0.58);
    overflow: hidden;
    transition: height 0.16s ease;
}

.fsp47-debug-panel.is-open {
    height: min(360px, 46vh);
}

.fsp47-debug-header {
    height: 33px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 8px 0 10px;
    border-bottom: 1px solid #26343a;
    color: #29d9d5;
    font: 700 10px/1 Consolas, monospace;
    letter-spacing: 0.1em;
}

.fsp47-debug-actions {
    display: flex;
    gap: 5px;
}

.fsp47-debug-actions button {
    min-width: 28px;
    height: 22px;
    padding: 0 6px;
    border: 1px solid #43535a;
    border-radius: 3px;
    background: #10181e;
    color: #bac8cb;
    font: 700 9px/1 Consolas, monospace;
    cursor: pointer;
}

.fsp47-debug-actions button:hover {
    border-color: #29d9d5;
    color: #29d9d5;
}

.fsp47-debug-output {
    box-sizing: border-box;
    width: 100%;
    height: calc(100% - 34px);
    margin: 0;
    padding: 10px;
    overflow: auto;
    background: transparent;
    color: #b9c8cb;
    font: 10px/1.42 Consolas, "SFMono-Regular", Menlo, monospace;
    white-space: pre-wrap;
    word-break: break-word;
    user-select: text;
}

@media (max-width: 700px) {
    .fsp47-debug-panel {
        right: 6px;
        bottom: 25px;
        width: calc(100vw - 12px);
    }

    .fsp47-debug-panel.is-open {
        height: 42vh;
    }
}


/* Global top-right controls */
.fsp47-global-controls {
    position: absolute;
    top: 10px;
    right: 52px;
    z-index: 965;
    display: flex;
    align-items: center;
    gap: 6px;
}

.fsp47-focus-form,
.fsp47-time-control,
.fsp47-psk-mode-control {
    display: flex;
    align-items: center;
    min-height: 34px;
    border: 1px solid rgba(98, 118, 125, 0.55);
    border-radius: 6px;
    background: rgba(7, 11, 15, 0.95);
    box-shadow: 0 5px 16px rgba(0, 0, 0, 0.38);
}

.fsp47-focus-form {
    padding: 0 5px 0 8px;
    gap: 5px;
}

.fsp47-focus-form label {
    color: #7f9196;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .08em;
}

.fsp47-focus-form input[type="text"] {
    width: 92px;
    height: 24px;
    padding: 0 5px;
    border: 1px solid #34444b;
    border-radius: 3px;
    outline: none;
    background: #0d151a;
    color: #d6e3e6;
    font: 700 10px/1 Consolas, monospace;
    text-transform: uppercase;
}

.fsp47-focus-form input[type="text"]:focus {
    border-color: #29d9d5;
}

.fsp47-focus-form button,
.fsp47-focus-clear,
.fsp47-time-toggle {
    border: 0;
    background: transparent;
    color: #b9c7ca;
    font-family: inherit;
    cursor: pointer;
}

.fsp47-focus-form button {
    width: 25px;
    height: 25px;
    font-size: 18px;
}

.fsp47-focus-clear {
    display: inline-grid;
    place-items: center;
    width: 23px;
    height: 23px;
    text-decoration: none;
    font-size: 16px;
}

.fsp47-time-control {
    position: relative;
}

.fsp47-time-toggle {
    height: 32px;
    min-width: 74px;
    padding: 0 8px;
    font-size: 10px;
    font-weight: 700;
}

.fsp47-caret {
    margin-left: 5px;
    color: #29d9d5;
}

.fsp47-time-menu {
    position: absolute;
    top: 38px;
    right: 0;
    width: 104px;
    padding: 5px;
    border: 1px solid #46565d;
    border-radius: 5px;
    background: rgba(6, 10, 14, .98);
    box-shadow: 0 8px 22px rgba(0,0,0,.5);
}

.fsp47-time-option {
    display: block;
    width: 100%;
    padding: 6px 8px;
    border: 0;
    border-radius: 3px;
    background: transparent;
    color: #b8c6c9;
    text-align: left;
    font: 10px/1 Consolas, monospace;
    cursor: pointer;
}

.fsp47-time-option:hover,
.fsp47-time-option.is-active {
    background: #183136;
    color: #29d9d5;
}

.fsp47-psk-mode-control {
    padding: 0 5px;
}

.fsp47-psk-mode-select {
    height: 24px;
    border: 1px solid #34444b;
    border-radius: 3px;
    background: #0d151a;
    color: #d6e3e6;
    font: 700 9px/1 Consolas, monospace;
}

/* APRS standard-style vector markers */
.fsp47-aprs-divicon {
    background: transparent !important;
    border: 0 !important;
}

.fsp47-aprs-marker {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border: 2px solid #14191c;
    border-radius: 5px;
    background: #ffb000;
    color: #111518;
    box-shadow: 0 2px 8px rgba(0,0,0,.72);
}

.fsp47-aprs-marker svg {
    width: 25px;
    height: 25px;
}

.fsp47-aprs-repeater { border-radius: 50%; background: #73d13d; }
.fsp47-aprs-house { background: #64b5f6; }
.fsp47-aprs-aircraft { background: #f5f5f5; }
.fsp47-aprs-ship,
.fsp47-aprs-sailboat { background: #4fc3f7; }
.fsp47-aprs-weather { background: #c9e6ff; }
.fsp47-aprs-person,
.fsp47-aprs-bike { background: #ffca55; }

.fsp47-aprs-label {
    position: absolute;
    top: 31px;
    left: 50%;
    transform: translateX(-50%);
    padding: 1px 3px;
    border-radius: 2px;
    background: rgba(4,8,11,.82);
    color: #f0f5f6;
    font: 700 9px/1.15 Consolas, monospace;
    white-space: nowrap;
    text-shadow: 0 1px 2px #000;
}

.fsp47-marker-focus .fsp47-aprs-marker {
    outline: 3px solid #29d9d5;
    outline-offset: 3px;
    box-shadow: 0 0 18px rgba(41,217,213,.95);
}

@media (max-width: 900px) {
    .fsp47-global-controls {
        right: 50px;
        max-width: calc(100vw - 60px);
        flex-wrap: wrap;
        justify-content: flex-end;
    }

    .fsp47-focus-form label {
        display: none;
    }

    .fsp47-focus-form input[type="text"] {
        width: 78px;
    }
}


/* v0.9 — fixed left layer manager */
.fsp47-layer-control,
.fsp47-layer-toggle,
.fsp47-layer-menu {
    display: none !important;
}

.fsp47-layer-manager {
    position: absolute;
    top: 10px;
    left: 10px;
    bottom: 28px;
    z-index: 970;
    width: 248px;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(98, 118, 125, 0.55);
    border-radius: 7px;
    background: rgba(7, 11, 15, 0.95);
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.46);
    backdrop-filter: blur(7px);
    overflow: hidden;
    transition: width 0.16s ease;
}

.fsp47-layer-manager.is-collapsed {
    width: 38px;
}

.fsp47-layer-manager-header {
    min-height: 46px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 7px 7px 6px 10px;
    border-bottom: 1px solid #27343a;
}

.fsp47-layer-manager .fsp47-panel-title {
    margin: 0 0 3px;
}

.fsp47-layer-count {
    color: #68797e;
    font-size: 8px;
    letter-spacing: .08em;
}

.fsp47-layer-collapse {
    flex: 0 0 25px;
    width: 25px;
    height: 25px;
    border: 1px solid #3d4d54;
    border-radius: 4px;
    background: #11191f;
    color: #b8c6c9;
    font: 700 18px/1 Consolas, monospace;
    cursor: pointer;
}

.fsp47-layer-collapse:hover {
    border-color: #29d9d5;
    color: #29d9d5;
}

.fsp47-layer-search-wrap {
    padding: 7px;
    border-bottom: 1px solid #202d32;
}

.fsp47-layer-search {
    box-sizing: border-box;
    width: 100%;
    height: 27px;
    padding: 0 7px;
    border: 1px solid #34444b;
    border-radius: 4px;
    outline: none;
    background: #0d151a;
    color: #d4e0e3;
    font: 700 9px/1 Consolas, monospace;
}

.fsp47-layer-search:focus {
    border-color: #29d9d5;
}

.fsp47-layer-list {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 5px;
    scrollbar-width: thin;
    scrollbar-color: #34474e #0b1115;
}

.fsp47-layer-row {
    box-sizing: border-box;
    width: 100%;
    min-height: 37px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 7px;
    margin: 0 0 3px;
    padding: 5px 6px;
    border: 1px solid transparent;
    border-radius: 4px;
    color: #bcc9cc;
    cursor: pointer;
}

.fsp47-layer-row:hover {
    border-color: #304148;
    background: rgba(22, 34, 40, .75);
}

.fsp47-layer-main,
.fsp47-layer-meta {
    display: flex;
    align-items: center;
}

.fsp47-layer-main {
    min-width: 0;
    gap: 7px;
}

.fsp47-layer-main input {
    flex: 0 0 auto;
    width: 12px;
    height: 12px;
    margin: 0;
    accent-color: #29d9d5;
}

.fsp47-layer-symbol {
    flex: 0 0 20px;
    width: 20px;
    text-align: center;
    color: #29d9d5;
    font-size: 14px;
}

.fsp47-layer-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 10px;
}

.fsp47-layer-meta {
    flex: 0 0 auto;
    gap: 5px;
}

.fsp47-layer-status-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #3b474c;
}

.fsp47-layer-status-dot.is-loading {
    background: #ffb000;
    box-shadow: 0 0 7px rgba(255, 176, 0, .8);
}

.fsp47-layer-status-dot.is-online {
    background: #29d9d5;
    box-shadow: 0 0 7px rgba(41, 217, 213, .8);
}

.fsp47-layer-status-dot.is-error {
    background: #ff4d4f;
    box-shadow: 0 0 7px rgba(255, 77, 79, .8);
}

.fsp47-layer-spot-count {
    min-width: 22px;
    color: #7f9196;
    font-size: 8px;
    text-align: right;
}

.fsp47-layer-manager.is-collapsed .fsp47-layer-manager-header > div,
.fsp47-layer-manager.is-collapsed .fsp47-layer-search-wrap,
.fsp47-layer-manager.is-collapsed .fsp47-layer-list {
    display: none;
}

.fsp47-layer-manager.is-collapsed .fsp47-layer-manager-header {
    justify-content: center;
    padding: 6px;
    border-bottom: 0;
}

.fsp47-layer-manager.is-collapsed .fsp47-layer-collapse {
    width: 24px;
}

.fsp47-control-panel {
    right: 10px;
    left: auto;
    bottom: 34px;
}

.fsp47-topbar {
    max-width: calc(100vw - 560px);
}

@media (max-width: 900px) {
    .fsp47-layer-manager {
        width: 210px;
    }

    .fsp47-control-panel {
        right: 10px;
        left: auto;
        bottom: 34px;
    }

    .fsp47-topbar {
        max-width: calc(100vw - 270px);
    }
}

@media (max-width: 620px) {
    .fsp47-layer-manager {
        width: 184px;
    }

    .fsp47-layer-manager:not(.is-collapsed) {
        bottom: 48%;
    }

    .fsp47-topbar {
        left: auto;
        right: 10px;
        transform: none;
        max-width: calc(100vw - 220px);
    }
}

/* APRS.fi standard symbol sprites: compact APRS markers */
.fsp47-aprs-divicon .fsp47-aprs-marker {
    width: 18px;
    height: 18px;
    min-width: 18px;
    min-height: 18px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    overflow: visible;
}
.fsp47-aprs-symbol-stack,
.fsp47-aprs-sprite {
    display: block;
    position: absolute;
    width: 18px;
    height: 18px;
    left: 0;
    top: 0;
    background-repeat: no-repeat;
}
.fsp47-aprs-sprite-overlay {
    z-index: 2;
}
.fsp47-aprs-divicon .fsp47-aprs-label {
    top: 20px;
    font-size: 9px;
    line-height: 11px;
}
.fsp47-marker-focus .fsp47-aprs-marker {
    filter: drop-shadow(0 0 4px #fff) drop-shadow(0 0 6px #29d9d5);
}

/* SP47.1 FT8 preset and large timeline slider */
.fsp47-ft8-preset {
    min-width: 82px;
    padding: 7px 12px;
    border: 1px solid #29d9d5;
    border-radius: 5px;
    background: rgba(8, 19, 22, .94);
    color: #29d9d5;
    font: 900 15px/1 Consolas, monospace;
    letter-spacing: .04em;
    cursor: pointer;
}
.fsp47-ft8-preset:hover,
.fsp47-ft8-preset.is-active {
    background: #29d9d5;
    color: #061012;
}
.fsp47-time-slider-control {
    width: min(520px, calc(100vw - 40px));
    padding: 10px 14px 8px;
    border: 1px solid rgba(98,118,125,.55);
    border-radius: 7px;
    background: rgba(7,11,15,.93);
    box-shadow: 0 7px 22px rgba(0,0,0,.38);
}
.fsp47-time-slider-head {
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:7px;
    color:#91a1a6;
    font-size:10px;
    letter-spacing:.09em;
}
.fsp47-time-slider-head strong { color:#29d9d5; font-size:14px; }
.fsp47-time-slider { width:100%; accent-color:#29d9d5; cursor:pointer; }
.fsp47-time-slider-labels { display:flex; justify-content:space-between; color:#8d9b9f; font-size:9px; }
@media (max-width:700px) {
    .fsp47-topbar { flex-wrap:wrap; max-width:calc(100vw - 20px); }
    .fsp47-ft8-preset { min-width:70px; font-size:13px; }
    .fsp47-time-slider-control { width:min(94vw, 420px); }
}

/* FSP47.2 focus control */
.fsp47-focus-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 9px;
    border-bottom: 1px solid rgba(98,118,125,.28);
}
.fsp47-focus-button {
    border: 1px solid #ffd84d;
    border-radius: 4px;
    background: rgba(255,216,77,.10);
    color: #ffd84d;
    padding: 5px 10px;
    font: 700 11px/1 Consolas,monospace;
    letter-spacing: .08em;
    cursor: pointer;
}
.fsp47-focus-button:hover,
.fsp47-focus-button:focus {
    background: #ffd84d;
    color: #111;
    outline: none;
}
.fsp47-focus-status {
    min-height: 13px;
    color: #ffd84d;
    font-size: 8px;
    line-height: 1.2;
}
.fsp47-focus-status.is-empty { color: #ff3d3d; }
.fsp47-focus-status.is-found { color: #ffd84d; }


/* External editable splash screen */
.fsp47-splash {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 22px;
    background: radial-gradient(circle at 50% 30%, rgba(41,217,213,.14), transparent 38%), rgba(1,4,7,.94);
    backdrop-filter: blur(8px);
    opacity: 1;
    transition: opacity .25s ease;
}
.fsp47-splash.is-closing { opacity: 0; pointer-events: none; }
.fsp47-splash-card {
    width: min(620px, 94vw);
    padding: 30px 34px;
    border: 1px solid rgba(41,217,213,.55);
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(13,22,28,.98), rgba(4,9,13,.98));
    color: #dce8ea;
    text-align: center;
    box-shadow: 0 28px 80px rgba(0,0,0,.72), 0 0 34px rgba(41,217,213,.10);
    font-family: Consolas,"SFMono-Regular",Menlo,monospace;
}
.fsp47-splash-version {
    color: #ff3d3d;
    font-size: 19px;
    font-weight: 800;
    letter-spacing: .12em;
}
.fsp47-splash-title {
    margin: 12px 0 18px;
    color: #29d9d5;
    font-size: 24px;
    font-weight: 800;
    letter-spacing: .05em;
}
.fsp47-splash-card p {
    margin: 10px auto;
    max-width: 530px;
    color: #d2dde0;
    font-size: 13px;
    line-height: 1.6;
}
.fsp47-splash-card .fsp47-splash-note {
    color: #94a5aa;
    font-size: 11px;
}
.fsp47-splash-close {
    margin-top: 18px;
    border: 1px solid #29d9d5;
    border-radius: 6px;
    background: #29d9d5;
    color: #061012;
    padding: 11px 20px;
    font: 800 12px/1 Consolas,monospace;
    letter-spacing: .08em;
    cursor: pointer;
}
.fsp47-splash-close:hover { filter: brightness(1.12); }
.fsp47-splash-auto {
    margin-top: 10px;
    color: #74858a;
    font-size: 9px;
}
@media (max-width: 600px) {
    .fsp47-splash-card { padding: 24px 18px; }
    .fsp47-splash-title { font-size: 19px; }
}

/* SP47.4 focused FT8 controls */
.fsp47-focus-top,
.fsp47-clear-button,
.fsp47-permalink-button,
.fsp47-direction-control button {
    border: 1px solid rgba(255,255,255,.28);
    background: rgba(8,12,18,.92);
    color: #fff;
    border-radius: 7px;
    min-height: 32px;
    padding: 5px 9px;
    font: 700 11px/1 Arial, sans-serif;
    cursor: pointer;
}
.fsp47-focus-top { color:#ffd84d; border-color:#ffd84d; order:-10; }
.fsp47-clear-button { color:#ff7373; border-color:rgba(255,115,115,.75); }
.fsp47-permalink-button { color:#29d9d5; border-color:rgba(41,217,213,.75); }
.fsp47-direction-control { display:inline-flex; gap:3px; align-items:center; }
.fsp47-direction-control button.is-active { background:#29d9d5; color:#031012; border-color:#29d9d5; }
.fsp47-focus-status.is-empty { color:#ff5252 !important; font-size:10px; }
.fsp47-focus-status.is-found { color:#ffd84d !important; font-size:10px; }
@media (max-width: 900px) {
    .fsp47-topbar { flex-wrap:wrap; }
    .fsp47-direction-control button,
    .fsp47-focus-top,
    .fsp47-clear-button,
    .fsp47-permalink-button { min-height:28px; padding:4px 7px; }
}


/* SP47.5: large manual layer buttons, empty map by default */
.fsp47-layer-row {
    min-height: 56px;
    padding: 10px 12px;
    border: 1px solid rgba(255,255,255,.12);
    background: rgba(8,14,18,.90);
    cursor: pointer !important;
    text-align: left;
    font: inherit;
}
.fsp47-layer-row:hover {
    border-color: #29d9d5;
    background: rgba(20,42,46,.96);
}
.fsp47-layer-row.is-active {
    border-color: #29d9d5;
    background: rgba(41,217,213,.18);
    color: #fff;
    box-shadow: inset 4px 0 0 #29d9d5, 0 0 14px rgba(41,217,213,.18);
}
.fsp47-layer-row.is-active .fsp47-layer-name,
.fsp47-layer-row.is-active .fsp47-layer-symbol { color:#29d9d5; }
.fsp47-layer-name { font-size: 12px; font-weight: 700; }
.fsp47-layer-symbol { font-size: 18px; }


/* SP47.6: TIMEFRAME bottom-center and map theme inside OPTIONS */
.fsp47-global-controls {
    top: auto;
    right: auto;
    bottom: 14px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 965;
    display: flex;
    align-items: center;
    justify-content: center;
    width: auto;
    max-width: calc(100vw - 300px);
}
.fsp47-time-slider-control {
    width: min(430px, calc(100vw - 340px));
}
.fsp47-options-map-theme {
    margin-bottom: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(255,255,255,.12);
}
.fsp47-options-map-theme > span {
    display: block;
    margin-bottom: 5px;
    color: #8ea0a5;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .10em;
}
.fsp47-options-map-theme .fsp47-map-switch {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px;
}
.fsp47-options-map-theme .fsp47-map-button {
    width: 100%;
    min-width: 0;
}
@media (max-width: 900px) {
    .fsp47-global-controls {
        left: 50%;
        right: auto;
        bottom: 10px;
        transform: translateX(-50%);
        max-width: calc(100vw - 24px);
        flex-wrap: nowrap;
    }
    .fsp47-time-slider-control {
        width: min(420px, calc(100vw - 40px));
    }
}

/* SP58 dedicated FT8 map: Vash909 + PSK Reporter only */
.fsp47-topbar,
.fsp47-layer-manager,
.fsp47-layer-control,
.fsp47-layer-toggle,
.fsp47-layer-menu {
    display: none !important;
}

.fsp58-options-panel {
    right: 12px;
    bottom: 38px;
    width: 205px;
    padding: 10px;
}

.fsp58-options-panel .fsp47-options-map-theme {
    display: grid;
    gap: 6px;
    margin-bottom: 9px;
    color: #8ea0a5;
    font-size: 9px;
    letter-spacing: .08em;
}

.fsp58-options-panel .fsp47-map-switch,
.fsp58-options-panel .fsp47-direction-control {
    display: flex;
    width: 100%;
    gap: 4px;
    margin: 7px 0;
}

.fsp58-options-panel .fsp47-map-button,
.fsp58-options-panel .fsp47-direction-control button {
    flex: 1 1 0;
}

.fsp58-options-panel .fsp47-permalink-button {
    width: 100%;
    margin-top: 6px;
}

.fsp58-focus-block {
    display: grid;
    gap: 6px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(255,255,255,.13);
}

.fsp58-focus-toggle {
    width: 100%;
    min-height: 34px;
    border: 1px solid #ffd84d;
    border-radius: 6px;
    background: rgba(255,216,77,.10);
    color: #ffd84d;
    font: 800 11px/1 Consolas, monospace;
    letter-spacing: .07em;
    cursor: pointer;
}

.fsp58-focus-toggle.is-active-focus {
    border-color: #7CFC00;
    background: rgba(124,252,0,.14);
    color: #7CFC00;
    animation: fsp58-focus-pulse 2.2s ease-in-out infinite;
}

@keyframes fsp58-focus-pulse {
    0%, 100% { box-shadow: 0 0 0 rgba(124,252,0,0); opacity: 1; }
    50% { box-shadow: 0 0 14px rgba(124,252,0,.55); opacity: .78; }
}

.fsp58-focus-block .fsp47-focus-status {
    min-height: 12px;
    text-align: center;
    font-size: 9px;
}

.fsp47-global-controls {
    top: auto !important;
    right: auto !important;
    left: 50% !important;
    bottom: 12px !important;
    transform: translateX(-50%);
}

.fsp47-time-slider-control {
    width: min(430px, calc(100vw - 260px));
}

@media (max-width: 700px) {
    .fsp58-options-panel { width: 170px; right: 7px; bottom: 76px; }
    .fsp47-time-slider-control { width: min(58vw, 330px); }
}

/* SP58.1 feed switches, reset and external legend */
.fsp58-feed-row {
    position: relative;
    margin-top: 4px;
    padding: 5px 24px 5px 6px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 4px;
    background: rgba(5,10,14,.55);
}
.fsp58-feed-row i {
    position: absolute;
    right: 7px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
}
.fsp58-feed-row.is-enabled i {
    background: #39ff14;
    box-shadow: 0 0 8px rgba(57,255,20,.9);
}
.fsp58-feed-row.is-disabled {
    color: #ff4d4f;
    border-color: rgba(255,77,79,.55);
    animation: fsp58-feed-disabled 1.35s ease-in-out infinite;
}
.fsp58-feed-row.is-disabled i {
    background: #ff2525;
    box-shadow: 0 0 9px rgba(255,37,37,.95);
}
@keyframes fsp58-feed-disabled {
    0%,100% { opacity:1; }
    50% { opacity:.48; }
}
.fsp58-reset-button {
    width: 100%;
    min-height: 31px;
    border: 1px solid #ff7373;
    border-radius: 6px;
    background: rgba(255,115,115,.08);
    color: #ff8f8f;
    font: 800 10px/1 Consolas,monospace;
    letter-spacing: .08em;
    cursor: pointer;
}
.fsp58-reset-button:hover { background:#ff7373; color:#130607; }
.fsp58-reset-only { margin-top:8px; }
.fsp58-options-panel .fsp47-options-map-theme {
    margin-top: 10px;
    margin-bottom: 0;
    padding-top: 9px;
    padding-bottom: 0;
    border-top: 1px solid rgba(255,255,255,.12);
    border-bottom: 0;
}
.fsp58-legend {
    position: absolute;
    left: 10px;
    bottom: 12px;
    z-index: 935;
    min-width: 150px;
    padding: 8px 9px;
    border: 1px solid rgba(98,118,125,.45);
    border-radius: 6px;
    background: rgba(7,11,15,.88);
    color: #c6d2d5;
    box-shadow: 0 6px 18px rgba(0,0,0,.35);
    font: 9px/1.5 Consolas,monospace;
}
.fsp58-legend-title { color:#8ea0a5; font-weight:800; letter-spacing:.12em; margin-bottom:4px; }
.fsp58-legend > div:not(.fsp58-legend-title) { display:flex; align-items:center; gap:7px; }
.fsp58-legend-symbol {
    display:inline-grid;
    place-items:center;
    width:10px;
    height:10px;
    flex:0 0 10px;
    border:1px solid #000;
    background:#ffffff;
    color:#000;
    box-shadow:0 0 6px rgba(255,255,255,.45);
    font:900 7px/1 Arial,sans-serif;
}
.fsp58-legend-symbol.circle { border-radius:50%; }
.fsp58-legend-symbol.registered {
    background:#29d9d5;
    box-shadow:0 0 6px rgba(41,217,213,.50);
}
@media (max-width:700px) {
    .fsp58-legend { left:6px; bottom:72px; min-width:128px; font-size:8px; }
}


/* SP58.3 focused UI refinements */
.fsp47-time-slider-control {
    display:flex;
    align-items:center;
    gap:10px;
    width:min(360px, calc(100vw - 280px));
    padding:8px 12px;
}
.fsp47-time-slider-control .fsp47-time-current {
    min-width:54px;
    color:#29d9d5;
    font-size:12px;
    text-align:right;
    white-space:nowrap;
}
.fsp47-time-slider-head,
.fsp47-time-slider-labels { display:none !important; }
.fsp58-focus-panel {
    position:absolute;
    z-index:941;
    right:12px;
    bottom:246px;
    width:205px;
    padding:10px;
    border:1px solid rgba(98,118,125,.42);
    border-radius:6px;
    background:rgba(7,11,15,.90);
    box-shadow:0 7px 22px rgba(0,0,0,.35);
}
.fsp58-focus-panel .fsp47-direction-control { display:flex; gap:4px; width:100%; margin-bottom:8px; }
.fsp58-focus-panel .fsp47-direction-control button { flex:1 1 0; }
.fsp58-focus-panel .fsp58-focus-block { margin:0 0 7px; padding:0; border:0; }
.fsp58-max-distance { min-height:14px; color:#29d9d5; text-align:center; font:800 10px/1.3 Consolas,monospace; }
.fsp58-time-loading {
    position:absolute; inset:0; z-index:5000; display:none; place-items:center;
    background:rgba(2,5,8,.38); pointer-events:auto;
}
.fsp58-time-loading.is-active { display:grid; }
.fsp58-time-loading span {
    width:46px; height:46px; border:4px solid rgba(255,255,255,.22);
    border-top-color:#29d9d5; border-radius:50%; animation:fsp58-spin .8s linear infinite;
}
.fsp58-time-loading b { margin-top:-42vh; color:#fff; font:800 11px/1 Consolas,monospace; letter-spacing:.08em; }
@keyframes fsp58-spin { to { transform:rotate(360deg); } }
.fsp58-direction-arrow-icon { background:transparent!important; border:0!important; }
.fsp58-direction-arrow {
    color:#29d9d5; font:900 13px/1 Arial,sans-serif;
    text-shadow:0 0 3px #000,0 0 5px #000;
    transform-origin:center;
}
@media (max-width:700px) {
    .fsp58-focus-panel { right:7px; bottom:286px; width:170px; }
    .fsp47-time-slider-control { width:min(56vw,300px); }
}

/* Keep the WordPress admin bar and site navigation above the fullscreen map. */
body.fsp47-map-active #wpadminbar {
    z-index: 2147483647 !important;
}

body.fsp47-map-active .site-header,
body.fsp47-map-active #masthead,
body.fsp47-map-active header.site-header,
body.fsp47-map-active .elementor-location-header,
body.fsp47-map-active .wp-site-blocks > header,
body.fsp47-map-active body > header {
    position: relative;
    z-index: 2147483646 !important;
}

body.fsp47-map-active .site-header nav,
body.fsp47-map-active #masthead nav,
body.fsp47-map-active header.site-header nav,
body.fsp47-map-active .elementor-location-header nav,
body.fsp47-map-active .wp-site-blocks > header nav,
body.fsp47-map-active body > header nav,
body.fsp47-map-active .site-header .sub-menu,
body.fsp47-map-active #masthead .sub-menu,
body.fsp47-map-active .elementor-location-header .sub-menu {
    z-index: 2147483647 !important;
}
