/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-zuww9hwdpj],
.components-reconnect-repeated-attempt-visible[b-zuww9hwdpj],
.components-reconnect-failed-visible[b-zuww9hwdpj],
.components-pause-visible[b-zuww9hwdpj],
.components-resume-failed-visible[b-zuww9hwdpj],
.components-rejoining-animation[b-zuww9hwdpj] {
    display: none;
}

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


#components-reconnect-modal[b-zuww9hwdpj] {
    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-zuww9hwdpj 0.5s both;
    &[open]

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

}

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

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

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

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

    100% {
        opacity: 1;
    }
}

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

    100% {
        opacity: 0;
    }
}

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

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

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

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

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

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

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

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

@keyframes components-rejoining-animation-b-zuww9hwdpj {
    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/Shared/DistrictMap.razor.rz.scp.css */
/* District outlines: a #58595b rule (7.01:1 on white) separates every district whatever its fill, so the shapes
   meet WCAG 1.4.11 without relying on the fill colors. Focus and selection add a thick outline, never color alone. */
.nyc-map-layout[b-9d9q14iayn] { display: flex; gap: 1rem; align-items: flex-start; flex-wrap: wrap; }
.nyc-map-canvas[b-9d9q14iayn] { flex: 1 1 22rem; min-width: 0; }
.nyc-map-canvas svg[b-9d9q14iayn] { width: 100%; height: auto; max-height: 34rem; display: block; background: var(--nyc-white); }
.nyc-map-canvas path[b-9d9q14iayn] { stroke: var(--nyc-rule); stroke-width: .6; cursor: pointer; }
.nyc-map-canvas path:hover[b-9d9q14iayn] { stroke: var(--nyc-ink); stroke-width: 1.5; }
.nyc-map-canvas path:focus[b-9d9q14iayn], .nyc-map-canvas path:focus-visible[b-9d9q14iayn] { outline: none !important; }
.nyc-map-canvas path:focus-visible[b-9d9q14iayn] { stroke: var(--nyc-focus); stroke-width: 3; }
.nyc-map-canvas path.nyc-map-selected[b-9d9q14iayn] { stroke: var(--nyc-ink); stroke-width: 3; pointer-events: none; }
.nyc-map-readout[b-9d9q14iayn] { min-height: 1.5rem; color: var(--nyc-ink); }
.nyc-map-legend[b-9d9q14iayn] { flex: 0 1 auto; min-width: 0; }
.nyc-map-legend li[b-9d9q14iayn] { display: flex; align-items: center; gap: .4rem; margin-bottom: .2rem; }
.nyc-swatch[b-9d9q14iayn] { display: inline-block; width: 1.4rem; height: 1rem; border: 1px solid var(--nyc-rule); }
/* /Components/Shared/PublicAwardsTable.razor.rz.scp.css */
/* Sortable column headers: the button fills the header and keeps its uppercase table-header look. */
.nyc-sort[b-fp0v6bqq10] { background: none; border: 0; padding: 0; font: inherit; color: inherit; text-transform: inherit; letter-spacing: inherit; display: inline-flex; gap: .25rem; align-items: center; text-align: inherit; }
.nyc-sort:hover[b-fp0v6bqq10] { text-decoration: underline; }
.nyc-sort-head[b-fp0v6bqq10] { white-space: normal; min-width: 6rem; }
