/* /Components/Layout/AppFooter.razor.rz.scp.css */
.footer-link:hover[b-wd2mp93ddd] {
    color: white !important;
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
#blazor-error-ui[b-b62xz76pdm] {
    background: var(--color-error-container);
    color: var(--color-on-error-container);
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.75rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

#blazor-error-ui .dismiss[b-b62xz76pdm] {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
}
/* /Components/Layout/MapLayout.razor.rz.scp.css */
#blazor-error-ui[b-yy6l1vq600] {
    background: var(--color-error-container);
    color: var(--color-on-error-container);
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.75rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

#blazor-error-ui .dismiss[b-yy6l1vq600] {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
}

/* Landscape phones: the fixed top nav costs a fifth of the viewport height, which is the single
   biggest reason the map felt unusable rotated. This value MUST match the header height set for
   the same media query in MapLayout.razor, or the header overlaps the map's search bar. */
@media (orientation: landscape) and (max-height: 500px) {
    .map-shell.page-pt[b-yy6l1vq600] {
        padding-top: 3.5rem;
    }
}
/* /Components/Layout/MobileDrawer.razor.rz.scp.css */
/* styles moved to app.css — drawer-slide-in animation and .mobile-drawer / .mobile-drawer-backdrop rules */
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-499k5xrzol],
.components-reconnect-repeated-attempt-visible[b-499k5xrzol],
.components-reconnect-failed-visible[b-499k5xrzol],
.components-pause-visible[b-499k5xrzol],
.components-resume-failed-visible[b-499k5xrzol],
.components-rejoining-animation[b-499k5xrzol] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-499k5xrzol],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-499k5xrzol],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-499k5xrzol],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-499k5xrzol],
#components-reconnect-modal.components-reconnect-retrying[b-499k5xrzol],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-499k5xrzol],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-499k5xrzol],
#components-reconnect-modal.components-reconnect-failed[b-499k5xrzol],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-499k5xrzol] {
    display: block;
}


#components-reconnect-modal[b-499k5xrzol] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-499k5xrzol 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-499k5xrzol 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-499k5xrzol 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-499k5xrzol]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-499k5xrzol 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-499k5xrzol {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-499k5xrzol {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-499k5xrzol {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-499k5xrzol] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-499k5xrzol] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-499k5xrzol] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-499k5xrzol] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-499k5xrzol] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-499k5xrzol] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-499k5xrzol] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-499k5xrzol 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-499k5xrzol] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-499k5xrzol {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Layout/TopNavBar.razor.rz.scp.css */
.btn-terrain-icon:hover[b-dzitzajrgc] {
    background-color: var(--color-primary) !important;
    color: var(--color-surface-container-lowest) !important;
}

.btn-terrain-icon:active[b-dzitzajrgc] {
    transform: scale(0.95);
}
/* /Components/Pages/About.razor.rz.scp.css */
/* .about-page-gutter is defined in app.css */
/* /Components/Pages/AddSpot.razor.rz.scp.css */
/* Crosshair cursor on map picker */
.map-picker[b-51syw0k7vt] {
    cursor: crosshair;
}
/* /Components/Pages/FieldReport.razor.rz.scp.css */
.gallery-item:hover img[b-b965damele] {
    filter: grayscale(0) !important;
}

.gallery-item:hover .gallery-delete-overlay[b-b965damele] {
    opacity: 1 !important;
}

.upload-zone[b-b965damele] {
    border: 2px dashed var(--color-outline);
    background-color: var(--color-surface-container-high);
    transition: border-color 0.15s;
}

.upload-zone:hover[b-b965damele] {
    border-color: var(--color-primary);
}

.upload-zone:hover span[b-b965damele] {
    color: var(--color-primary) !important;
}
/* /Components/Pages/Garage.razor.rz.scp.css */
/* Garage page scoped overrides */
.rig-card:hover button[b-xdcz00ie1x] {
    background-color: var(--color-primary) !important;
    color: var(--color-on-primary-fixed) !important;
}
/* /Components/Pages/Home.razor.rz.scp.css */
/* Page-level overrides for Home */
section[b-s9vuia5gw7] {
    width: 100%;
}
/* /Components/Pages/Leaderboard.razor.rz.scp.css */
/* Leaderboard scoped styles */
.cursor-pointer[b-zj6ud5ixc3] { cursor: pointer; }
/* /Components/Pages/Map.razor.rz.scp.css */
/* Map page fills the entire viewport */
:deep(.content-with-sidenav-wide)[b-szogv1kt0t] {
    padding-bottom: 0 !important;
}

/* -------------------------------------------------------
   Mobile map usability: the map is the primary content, so
   the status readout collapses out of the way on phones and
   the whole overlay set shrinks in landscape.
------------------------------------------------------- */

.map-status[b-szogv1kt0t] {
    bottom: 6rem;
    left: 1.5rem;
    max-width: min(22rem, calc(100vw - 3rem));
}

.map-status-browse[b-szogv1kt0t] {
    font-size: 0.6rem;
    text-transform: uppercase;
}

.map-add-fab[b-szogv1kt0t] {
    bottom: 6rem;
    right: 1.5rem;
    width: 4rem;
    height: 4rem;
}

/* The toggle is a real button: keyboard focusable, with a visible focus ring. */
.map-status-toggle[b-szogv1kt0t] {
    display: none;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    min-height: 2.75rem; /* comfortable touch target */
    padding: 0;
    background: none;
    border: 0;
    color: inherit;
    text-align: left;
    cursor: pointer;
}

.map-status-toggle:focus-visible[b-szogv1kt0t] {
    outline: 2px solid var(--color-primary);
    outline-offset: 3px;
}

.map-status-summary[b-szogv1kt0t] {
    margin-left: auto;
    font-size: 0.65rem;
    letter-spacing: 0.04em;
    color: var(--color-on-surface-variant);
}

.map-status-chevron[b-szogv1kt0t] {
    font-size: 1.25rem;
    transition: transform 0.2s ease;
}

.is-expanded .map-status-chevron[b-szogv1kt0t] {
    transform: rotate(180deg);
}

@media (prefers-reduced-motion: reduce) {
    .map-status-chevron[b-szogv1kt0t] { transition: none; }
}

/* Phones and tablets: show the toggle and honour the collapsed state. */
@media (max-width: 991.98px) {
    .map-status[b-szogv1kt0t] {
        bottom: 1rem;
        left: 1rem;
        right: 6.5rem; /* clear of the add-spot button */
        max-width: none;
        padding: 0.65rem 0.85rem;
    }

    .map-status-toggle[b-szogv1kt0t] { display: flex; }

    .is-collapsed .map-status-details[b-szogv1kt0t] { display: none; }

    .map-add-fab[b-szogv1kt0t] {
        bottom: 1rem;
        right: 1rem;
        width: 3.25rem;
        height: 3.25rem;
    }
}

/* Landscape phones: vertical space is the scarce resource. Trim the overlay chrome
   further and cap the readout so it can never push the map off-screen. */
@media (orientation: landscape) and (max-height: 500px) {
    .map-status[b-szogv1kt0t] {
        bottom: 0.5rem;
        left: 0.5rem;
        right: auto;
        max-width: 60vw;
        padding: 0.4rem 0.7rem;
    }

    .map-status-details[b-szogv1kt0t] {
        max-height: 40vh;
        overflow-y: auto;
    }

    .map-status-details .fs-3[b-szogv1kt0t] { font-size: 1rem !important; }

    .map-status-browse[b-szogv1kt0t] { font-size: 0.55rem; }

    .map-add-fab[b-szogv1kt0t] {
        bottom: 0.5rem;
        right: 0.5rem;
        width: 2.75rem;
        height: 2.75rem;
    }
}

/* Desktop keeps the original always-open readout — the collapsed state is mobile-only. */
@media (min-width: 992px) {
    .map-status-details[b-szogv1kt0t] { display: block !important; }
}
/* /Components/Pages/OperatorSettings.razor.rz.scp.css */
/* Settings-specific scoped styles */
/* /Components/Pages/RigDiagnostics.razor.rz.scp.css */
@@keyframes pulse {
    0%[b-xmsmmglqr0], 100%[b-xmsmmglqr0] { opacity: 1; }
    50%[b-xmsmmglqr0] { opacity: 0.3; }
}
/* /Components/Pages/SpotDetail.razor.rz.scp.css */
/* SpotDetail scoped overrides */
/* /Components/Shared/LiveMapSection.razor.rz.scp.css */
.inset-0[b-kf39cqcp3f] {
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
}
/* /Components/Shared/SpotCard.razor.rz.scp.css */
/* SpotCard-specific overrides (utilities live in app.css) */
