/* /Components/BlogBlockEditorDialog.razor.rz.scp.css */
/* Scrim/wrap/card follow LeaveSiteModal's look. No click-outside-to-close: a stray
   click shouldn't throw away a half-written block. */
.fl-bbe-scrim[b-x55w7hh932] {
    position: fixed;
    inset: 0;
    z-index: 200;
    background: hsl(222 47% 7% / 0.55);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.fl-bbe-wrap[b-x55w7hh932] {
    position: fixed;
    inset: 0;
    z-index: 201;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.fl-bbe[b-x55w7hh932] {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 48rem;
    max-height: calc(100vh - 2rem);
    border-radius: 1.25rem;
    border: 1px solid var(--fl-border);
    background: var(--fl-card);
    color: var(--fl-card-foreground);
    box-shadow: 0 24px 60px -12px rgba(15, 23, 42, 0.35);
}

.fl-bbe-header[b-x55w7hh932] {
    padding: 1.25rem 1.5rem 0;
}

.fl-bbe-title[b-x55w7hh932] {
    margin: 0;
    font-family: var(--fl-font-heading);
    font-size: 1.4rem;
}

.fl-bbe-note[b-x55w7hh932] {
    margin: 0.35rem 0 0;
    font-size: 0.85rem;
    color: var(--fl-accent-warm);
}

.fl-bbe-body[b-x55w7hh932] {
    flex: 1;
    overflow-y: auto;
    padding: 1.25rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* Quill's editing area inside the dialog. */
.fl-bbe-body[b-x55w7hh932]  .ql-container {
    min-height: 16rem;
    font-size: 1rem;
}

.fl-bbe-footer[b-x55w7hh932] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 1rem 1.5rem;
    border-top: 1px solid var(--fl-border);
}

/* ─── Buttons ───────────────────────────────────────────────────────── */

.fl-bbe-btn[b-x55w7hh932] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1rem;
    border-radius: 0.6rem;
    border: 1px solid var(--fl-border);
    background: var(--fl-card);
    color: var(--fl-foreground);
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
}

.fl-bbe-btn:hover[b-x55w7hh932] {
    background: var(--fl-secondary);
}

.fl-bbe-btn:disabled[b-x55w7hh932] {
    opacity: 0.55;
    cursor: default;
}

.fl-bbe-btn-primary[b-x55w7hh932] {
    border-color: var(--fl-primary);
    background: var(--fl-primary);
    color: var(--fl-primary-foreground);
}

.fl-bbe-btn-primary:hover[b-x55w7hh932] {
    background: var(--fl-primary);
    filter: brightness(1.08);
}

.fl-bbe-btn-danger[b-x55w7hh932] {
    color: var(--fl-destructive);
}

/* ─── File pickers ──────────────────────────────────────────────────── */

/* The visible target is the <label>; the real file input covers it invisibly so
   clicks, keyboard focus and drag-and-drop all go to the input. */
.fl-bbe-drop[b-x55w7hh932],
.fl-bbe-inline-actions .fl-bbe-btn[b-x55w7hh932] {
    position: relative;
}

.fl-bbe-drop[b-x55w7hh932] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 5rem;
    padding: 1rem;
    border: 2px dashed var(--fl-border);
    border-radius: 0.85rem;
    color: var(--fl-muted-foreground);
    font-weight: 600;
    cursor: pointer;
    transition: border-color 0.15s ease, color 0.15s ease;
}

.fl-bbe-drop:hover[b-x55w7hh932],
.fl-bbe-drop:focus-within[b-x55w7hh932] {
    border-color: var(--fl-primary);
    color: var(--fl-primary);
}

.fl-bbe-drop[b-x55w7hh932]  input[type="file"],
.fl-bbe-inline-actions[b-x55w7hh932]  input[type="file"] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

/* ─── Fields ────────────────────────────────────────────────────────── */

.fl-bbe-fields[b-x55w7hh932] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    flex: 1;
    min-width: 0;
}

.fl-bbe-fields-row[b-x55w7hh932] {
    flex-direction: row;
    flex-wrap: wrap;
}

.fl-bbe-fields-row label[b-x55w7hh932] {
    flex: 1 1 10rem;
}

.fl-bbe-fields label[b-x55w7hh932] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--fl-label-foreground);
}

.fl-bbe-fields small[b-x55w7hh932] {
    font-weight: 400;
    color: var(--fl-muted-foreground);
}

.fl-bbe-fields input[b-x55w7hh932] {
    padding: 0.45rem 0.6rem;
    border: 1px solid var(--fl-input);
    border-radius: 0.5rem;
    background: var(--fl-background);
    color: var(--fl-foreground);
    font-size: 0.9rem;
    font-weight: 400;
}

.fl-bbe-fields input:focus[b-x55w7hh932] {
    outline: 2px solid var(--fl-ring);
    outline-offset: -1px;
}

.fl-bbe-meta[b-x55w7hh932] {
    font-size: 0.75rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ─── Single image ──────────────────────────────────────────────────── */

.fl-bbe-single[b-x55w7hh932] {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
}

.fl-bbe-single-img[b-x55w7hh932] {
    width: 16rem;
    max-width: 100%;
    height: auto;
    border-radius: 0.75rem;
    border: 1px solid var(--fl-border);
}

.fl-bbe-inline-actions[b-x55w7hh932] {
    display: flex;
    gap: 0.5rem;
}

/* ─── Image / file lists ────────────────────────────────────────────── */

.fl-bbe-layout[b-x55w7hh932] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--fl-label-foreground);
}

.fl-bbe-layout > span[b-x55w7hh932] {
    margin-right: 0.4rem;
}

.fl-bbe-seg[b-x55w7hh932] {
    padding: 0.35rem 0.85rem;
    border: 1px solid var(--fl-border);
    border-radius: 999px;
    background: var(--fl-card);
    color: var(--fl-foreground);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
}

.fl-bbe-seg.is-active[b-x55w7hh932] {
    border-color: var(--fl-primary);
    background: var(--fl-primary);
    color: var(--fl-primary-foreground);
}

.fl-bbe-list[b-x55w7hh932] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.fl-bbe-list:empty[b-x55w7hh932] {
    display: none;
}

.fl-bbe-item[b-x55w7hh932] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.6rem;
    border: 1px solid var(--fl-border);
    border-radius: 0.85rem;
}

.fl-bbe-thumb[b-x55w7hh932] {
    flex-shrink: 0;
    width: 4.5rem;
    height: 3.4rem;
    object-fit: cover;
    border-radius: 0.5rem;
}

.fl-bbe-ext[b-x55w7hh932] {
    flex-shrink: 0;
    min-width: 2.75rem;
    padding: 0.3rem 0.4rem;
    border-radius: 0.4rem;
    background: hsl(221 83% 53% / 0.1);
    color: var(--fl-primary);
    font-family: var(--fl-font-mono);
    font-size: 0.68rem;
    font-weight: 600;
    text-align: center;
}

.fl-bbe-item-actions[b-x55w7hh932] {
    display: flex;
    flex-shrink: 0;
    gap: 0.25rem;
}

.fl-bbe-item-actions button[b-x55w7hh932] {
    width: 2rem;
    height: 2rem;
    border: 1px solid var(--fl-border);
    border-radius: 0.5rem;
    background: var(--fl-card);
    color: var(--fl-foreground);
    cursor: pointer;
}

.fl-bbe-item-actions button:hover:not(:disabled)[b-x55w7hh932] {
    background: var(--fl-secondary);
}

.fl-bbe-item-actions button:disabled[b-x55w7hh932] {
    opacity: 0.35;
    cursor: default;
}

.fl-bbe-error[b-x55w7hh932] {
    margin: 0;
    padding: 0.6rem 0.85rem;
    border-radius: 0.6rem;
    background: hsl(0 84% 60% / 0.1);
    color: var(--fl-destructive);
    font-size: 0.85rem;
}

@media (max-width: 560px) {
    .fl-bbe-item[b-x55w7hh932] {
        flex-wrap: wrap;
    }
}
/* /Components/BlogImageCarousel.razor.rz.scp.css */
.fl-carousel-frame[b-ypd5xcuilk] {
    position: relative;
    aspect-ratio: 16 / 10;
    border-radius: 1rem;
    border: 1px solid var(--fl-border);
    background: var(--fl-muted);
    overflow: hidden;
}

.fl-carousel-frame img[b-ypd5xcuilk] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    animation: fl-carousel-fade-b-ypd5xcuilk 0.25s ease;
}

@keyframes fl-carousel-fade-b-ypd5xcuilk {
    from {
        opacity: 0.4;
    }
    to {
        opacity: 1;
    }
}

.fl-carousel-nav[b-ypd5xcuilk] {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 2.5rem;
    height: 2.5rem;
    border: none;
    border-radius: 999px;
    background: hsl(0 0% 100% / 0.85);
    color: hsl(222 47% 11%);
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 4px 14px -4px rgba(15, 23, 42, 0.35);
    transition: background 0.15s ease;
}

.fl-carousel-nav:hover[b-ypd5xcuilk] {
    background: hsl(0 0% 100%);
}

.fl-carousel-nav:focus-visible[b-ypd5xcuilk],
.fl-carousel-dot:focus-visible[b-ypd5xcuilk] {
    outline: 2px solid var(--fl-ring);
    outline-offset: 2px;
}

.fl-carousel-prev[b-ypd5xcuilk] {
    left: 0.75rem;
}

.fl-carousel-next[b-ypd5xcuilk] {
    right: 0.75rem;
}

.fl-carousel-count[b-ypd5xcuilk] {
    position: absolute;
    right: 0.75rem;
    bottom: 0.75rem;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: hsl(222 47% 7% / 0.6);
    color: hsl(0 0% 100%);
    font-family: var(--fl-font-mono);
    font-size: 0.7rem;
}

.fl-carousel-caption[b-ypd5xcuilk] {
    margin: 0.6rem 0 0;
    font-size: 0.85rem;
    line-height: 1.5;
    color: var(--fl-muted-foreground);
}

.fl-carousel-dots[b-ypd5xcuilk] {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.75rem;
}

.fl-carousel-dot[b-ypd5xcuilk] {
    width: 0.55rem;
    height: 0.55rem;
    padding: 0;
    border: none;
    border-radius: 999px;
    background: var(--fl-border);
    cursor: pointer;
    transition: background 0.15s ease, width 0.15s ease;
}

.fl-carousel-dot.is-active[b-ypd5xcuilk] {
    width: 1.4rem;
    background: var(--fl-primary);
}
/* /Components/BlogImageGrid.razor.rz.scp.css */
.fl-grid[b-hz57j58edg] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
    gap: 0.75rem;
}

.fl-grid-item[b-hz57j58edg] {
    margin: 0;
}

.fl-grid-item figcaption[b-hz57j58edg] {
    margin-top: 0.6rem;
    font-size: 0.85rem;
    line-height: 1.5;
    color: var(--fl-muted-foreground);
}

.fl-grid-thumb[b-hz57j58edg] {
    display: block;
    width: 100%;
    padding: 0;
    border: 1px solid var(--fl-border);
    border-radius: 0.75rem;
    overflow: hidden;
    cursor: zoom-in;
}

.fl-grid-thumb:focus-visible[b-hz57j58edg] {
    outline: 2px solid var(--fl-ring);
    outline-offset: 2px;
}

.fl-grid-thumb img[b-hz57j58edg] {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    transition: transform 0.25s ease;
}

.fl-grid-thumb:hover img[b-hz57j58edg] {
    transform: scale(1.03);
}

/* ─── Lightbox ──────────────────────────────────────────────────────── */

.fl-lightbox[b-hz57j58edg] {
    position: fixed;
    inset: 0;
    z-index: 200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4rem 1rem;
    background: hsl(222 47% 7% / 0.9);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    cursor: zoom-out;
    animation: fl-lightbox-in-b-hz57j58edg 0.15s ease;
}

@keyframes fl-lightbox-in-b-hz57j58edg {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.fl-lightbox-figure[b-hz57j58edg] {
    margin: 0;
    max-width: min(72rem, 100%);
    cursor: default;
}

.fl-lightbox-figure img[b-hz57j58edg] {
    max-width: 100%;
    max-height: calc(100vh - 10rem);
    margin: 0 auto;
    object-fit: contain;
    border-radius: 0.75rem;
}

.fl-lightbox-figure figcaption[b-hz57j58edg] {
    margin-top: 0.85rem;
    text-align: center;
    font-size: 0.9rem;
    line-height: 1.5;
    color: hsl(0 0% 100% / 0.85);
}

.fl-lightbox-count[b-hz57j58edg] {
    margin-right: 0.6rem;
    font-family: var(--fl-font-mono);
    font-size: 0.75rem;
    color: hsl(0 0% 100% / 0.6);
}

/* Fixed colors: the backdrop is always dark, in both themes. */
.fl-lightbox-close[b-hz57j58edg],
.fl-lightbox-nav[b-hz57j58edg] {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 999px;
    background: hsl(0 0% 100% / 0.12);
    color: hsl(0 0% 100%);
    line-height: 1;
    cursor: pointer;
    transition: background 0.15s ease;
}

.fl-lightbox-close:hover[b-hz57j58edg],
.fl-lightbox-nav:hover[b-hz57j58edg] {
    background: hsl(0 0% 100% / 0.25);
}

.fl-lightbox-close:focus-visible[b-hz57j58edg],
.fl-lightbox-nav:focus-visible[b-hz57j58edg] {
    outline: 2px solid hsl(0 0% 100%);
    outline-offset: 2px;
}

.fl-lightbox-close[b-hz57j58edg] {
    top: 1rem;
    right: 1rem;
    width: 2.5rem;
    height: 2.5rem;
    font-size: 1.1rem;
}

.fl-lightbox-nav[b-hz57j58edg] {
    top: 50%;
    transform: translateY(-50%);
    width: 3rem;
    height: 3rem;
    font-size: 2rem;
}

.fl-lightbox-prev[b-hz57j58edg] {
    left: 1rem;
}

.fl-lightbox-next[b-hz57j58edg] {
    right: 1rem;
}

/* On phones the arrows move below the image so they don't cover it. */
@media (max-width: 640px) {
    .fl-lightbox-nav[b-hz57j58edg] {
        top: auto;
        bottom: 1rem;
        transform: none;
    }

    .fl-lightbox-prev[b-hz57j58edg] {
        left: calc(50% - 3.5rem);
    }

    .fl-lightbox-next[b-hz57j58edg] {
        right: calc(50% - 3.5rem);
    }
}
/* /Components/BlogSectionsEditor.razor.rz.scp.css */
.fl-bse[b-gffacrkpno] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.fl-bse-empty[b-gffacrkpno] {
    margin: 0;
    color: var(--fl-muted-foreground);
}

/* ─── Rows ──────────────────────────────────────────────────────────── */

.fl-bse-row[b-gffacrkpno] {
    border: 1px solid var(--fl-border);
    border-radius: 1rem;
    background: var(--fl-muted);
    padding: 0.6rem;
}

.fl-bse-row-bar[b-gffacrkpno] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0 0.25rem 0.6rem;
}

.fl-bse-row-label[b-gffacrkpno] {
    font-family: var(--fl-font-mono);
    font-size: 0.7rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--fl-muted-foreground);
}

.fl-bse-row-actions[b-gffacrkpno] {
    display: flex;
    gap: 0.25rem;
}

.fl-bse-row-actions button[b-gffacrkpno],
.fl-bse-tools button[b-gffacrkpno],
.fl-bse-picker-footer button[b-gffacrkpno] {
    padding: 0.3rem 0.65rem;
    border: 1px solid var(--fl-border);
    border-radius: 0.5rem;
    background: var(--fl-card);
    color: var(--fl-foreground);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
}

.fl-bse-row-actions button:hover:not(:disabled)[b-gffacrkpno],
.fl-bse-tools button:hover:not(:disabled)[b-gffacrkpno],
.fl-bse-picker-footer button:hover:not(:disabled)[b-gffacrkpno] {
    background: var(--fl-secondary);
}

.fl-bse-row-actions button:disabled[b-gffacrkpno],
.fl-bse-tools button:disabled[b-gffacrkpno],
.fl-bse-picker-footer button:disabled[b-gffacrkpno] {
    opacity: 0.4;
    cursor: default;
}

.fl-bse button.is-danger[b-gffacrkpno] {
    color: var(--fl-destructive);
}

.fl-bse-tools button.is-primary[b-gffacrkpno] {
    border-color: var(--fl-primary);
    background: var(--fl-primary);
    color: var(--fl-primary-foreground);
}

/* ─── Columns ───────────────────────────────────────────────────────── */

.fl-bse-cells[b-gffacrkpno] {
    display: grid;
    grid-template-columns: repeat(var(--fl-bse-cols, 1), minmax(0, 1fr));
    gap: 0.6rem;
}

@media (max-width: 640px) {
    .fl-bse-cells[b-gffacrkpno] {
        grid-template-columns: minmax(0, 1fr);
    }
}

.fl-bse-cell[b-gffacrkpno] {
    position: relative;
    min-height: 9rem;
    padding: 0.85rem;
    border: 1px solid var(--fl-border);
    border-radius: 0.75rem;
    background: var(--fl-card);
}

.fl-bse-cell.is-empty[b-gffacrkpno] {
    border-style: dashed;
    border-width: 2px;
    background: transparent;
}

.fl-bse-chip[b-gffacrkpno] {
    display: inline-block;
    margin-bottom: 0.5rem;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    background: hsl(221 83% 53% / 0.1);
    color: var(--fl-primary);
    font-family: var(--fl-font-mono);
    font-size: 0.65rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

/* ─── Hover tools ───────────────────────────────────────────────────── */

/* Revealed on hover and on keyboard focus within the column; always shown on
   touch screens, which have no hover. */
.fl-bse-tools[b-gffacrkpno] {
    position: absolute;
    inset: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    align-content: center;
    gap: 0.4rem;
    padding: 0.75rem;
    border-radius: inherit;
    background: hsl(222 47% 7% / 0.45);
    opacity: 0;
    transition: opacity 0.15s ease;
}

.fl-bse-cell:hover .fl-bse-tools[b-gffacrkpno],
.fl-bse-cell:focus-within .fl-bse-tools[b-gffacrkpno] {
    opacity: 1;
}

@media (hover: none) {
    .fl-bse-tools[b-gffacrkpno] {
        position: static;
        justify-content: flex-start;
        padding: 0.6rem 0 0;
        background: none;
        opacity: 1;
    }
}

/* ─── Previews ──────────────────────────────────────────────────────── */

.fl-bse-preview-text[b-gffacrkpno] {
    max-height: 9rem;
    overflow: hidden;
    font-size: 0.85rem;
    line-height: 1.5;
    color: var(--fl-foreground);
    -webkit-mask-image: linear-gradient(to bottom, #000 70%, transparent);
    mask-image: linear-gradient(to bottom, #000 70%, transparent);
}

.fl-bse-preview-text[b-gffacrkpno]  * {
    margin: 0 0 0.4em;
    font-size: inherit;
}

.fl-bse-preview-image[b-gffacrkpno] {
    width: 100%;
    max-height: 10rem;
    object-fit: cover;
    border-radius: 0.5rem;
}

.fl-bse-preview-meta[b-gffacrkpno] {
    margin: 0 0 0.4rem;
    font-size: 0.8rem;
    color: var(--fl-muted-foreground);
}

.fl-bse-preview-strip[b-gffacrkpno] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.3rem;
}

.fl-bse-preview-strip img[b-gffacrkpno] {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 0.35rem;
}

.fl-bse-preview-files[b-gffacrkpno] {
    margin: 0;
    padding-left: 1.1rem;
    font-size: 0.85rem;
    line-height: 1.6;
}

.fl-bse-preview-files li[b-gffacrkpno] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fl-bse-preview-files li.fl-bse-preview-meta[b-gffacrkpno] {
    list-style: none;
    margin-left: -1.1rem;
}

/* ─── Type picker ───────────────────────────────────────────────────── */

.fl-bse-picker[b-gffacrkpno] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.fl-bse-picker-label[b-gffacrkpno] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--fl-label-foreground);
}

.fl-bse-picker-options[b-gffacrkpno] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
    gap: 0.4rem;
}

.fl-bse-picker-option[b-gffacrkpno] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1rem;
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--fl-border);
    border-radius: 0.6rem;
    background: var(--fl-card);
    color: var(--fl-foreground);
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s ease;
}

.fl-bse-picker-option:hover[b-gffacrkpno],
.fl-bse-picker-option:focus-visible[b-gffacrkpno] {
    border-color: var(--fl-primary);
}

.fl-bse-picker-option strong[b-gffacrkpno] {
    font-size: 0.85rem;
}

.fl-bse-picker-option small[b-gffacrkpno] {
    font-size: 0.72rem;
    color: var(--fl-muted-foreground);
}

.fl-bse-picker-footer[b-gffacrkpno] {
    display: flex;
    gap: 0.4rem;
}

.fl-bse-picker-footer:empty[b-gffacrkpno] {
    display: none;
}

/* ─── Add row ───────────────────────────────────────────────────────── */

.fl-bse-add-row[b-gffacrkpno] {
    align-self: flex-start;
    padding: 0.55rem 1.1rem;
    border: 2px dashed var(--fl-border);
    border-radius: 0.75rem;
    background: transparent;
    color: var(--fl-primary);
    font-weight: 600;
    cursor: pointer;
}

.fl-bse-add-row:hover[b-gffacrkpno] {
    border-color: var(--fl-primary);
}
/* /Components/BlogSectionsView.razor.rz.scp.css */
.fl-sections[b-jg3q2pzydn] {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

/* One column on phones; the row's own column count from 720px up. */
.fl-sections-row[b-jg3q2pzydn] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem 2rem;
}

@media (min-width: 720px) {
    .fl-sections-row[b-jg3q2pzydn] {
        grid-template-columns: repeat(var(--fl-sections-cols, 1), minmax(0, 1fr));
    }
}

.fl-sections-cell[b-jg3q2pzydn] {
    min-width: 0;
}

/* Last paragraph of a text block shouldn't add extra space below the row. */
.fl-sections-cell[b-jg3q2pzydn]  .fl-rich-text > :last-child {
    margin-bottom: 0;
}

/* ─── Image ─────────────────────────────────────────────────────────── */

.fl-sections-figure[b-jg3q2pzydn] {
    margin: 0;
}

.fl-sections-figure img[b-jg3q2pzydn] {
    width: 100%;
    height: auto;
    border-radius: 1rem;
    border: 1px solid var(--fl-border);
}

.fl-sections-figure figcaption[b-jg3q2pzydn] {
    margin-top: 0.6rem;
    font-size: 0.85rem;
    line-height: 1.5;
    color: var(--fl-muted-foreground);
}

/* ─── File list ─────────────────────────────────────────────────────── */

.fl-sections-files[b-jg3q2pzydn] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.fl-sections-file[b-jg3q2pzydn] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.75rem 1rem;
    border-radius: 0.85rem;
    border: 1px solid var(--fl-border);
    background: var(--fl-card);
    color: var(--fl-foreground);
    text-decoration: none;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.fl-sections-file:hover[b-jg3q2pzydn] {
    border-color: var(--fl-primary);
    background: var(--fl-secondary);
}

.fl-sections-file-ext[b-jg3q2pzydn] {
    flex-shrink: 0;
    min-width: 2.75rem;
    padding: 0.3rem 0.4rem;
    border-radius: 0.4rem;
    background: hsl(221 83% 53% / 0.1);
    color: var(--fl-primary);
    font-family: var(--fl-font-mono);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-align: center;
}

.fl-sections-file-body[b-jg3q2pzydn] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
    flex: 1;
}

.fl-sections-file-name[b-jg3q2pzydn] {
    font-weight: 600;
    font-size: 0.95rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fl-sections-file-size[b-jg3q2pzydn] {
    font-size: 0.78rem;
    color: var(--fl-muted-foreground);
}

[b-jg3q2pzydn] .fl-sections-file-icon {
    flex-shrink: 0;
    width: 1.25rem;
    height: 1.25rem;
    color: var(--fl-muted-foreground);
}

.fl-sections-file:hover[b-jg3q2pzydn]  .fl-sections-file-icon {
    color: var(--fl-primary);
}
/* /Components/CardSection.razor.rz.scp.css */
.fl-card-section-heading[b-lh042zidvo] {
    margin: 1.25rem 0 0;
    max-width: 34rem;
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    color: var(--fl-foreground);
}

.fl-card-section-description[b-lh042zidvo] {
    margin: 1.25rem 0 0;
    max-width: 42rem;
    font-size: 1.1rem;
    line-height: 1.6;
    color: var(--fl-muted-foreground);
}

.fl-card-grid[b-lh042zidvo] {
    margin-top: 3rem;
    display: grid;
    gap: 1rem;
}

@media (min-width: 700px) {
    .fl-card-grid--2[b-lh042zidvo],
    .fl-card-grid--3[b-lh042zidvo] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .fl-card-grid--3[b-lh042zidvo] {
        grid-template-columns: repeat(3, 1fr);
    }
}

.fl-card-section-cta[b-lh042zidvo] {
    margin-top: 2.5rem;
}

[b-lh042zidvo] .fl-card-section-cta-icon {
    width: 1rem;
    height: 1rem;
}
/* /Components/ContactDirectory.razor.rz.scp.css */
.fl-contact-directory[b-saaf8vxf1e] {
    display: grid;
    gap: 1.5rem;
}

@media (min-width: 800px) {
    .fl-contact-directory[b-saaf8vxf1e] {
        grid-template-columns: 1fr 1fr;
        align-items: start;
    }
}

.fl-contact-directory-card[b-saaf8vxf1e] {
    border-radius: 1.25rem;
    border: 1px solid var(--fl-border);
    background: var(--fl-card);
    padding: 1.75rem;
}

.fl-contact-directory-card-header[b-saaf8vxf1e] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

[b-saaf8vxf1e] .fl-contact-directory-card-icon {
    width: 1.15rem;
    height: 1.15rem;
    color: var(--fl-primary);
}

.fl-contact-directory-number[b-saaf8vxf1e] {
    display: block;
    margin-top: 0.75rem;
    font-family: var(--fl-font-heading);
    font-weight: 700;
    font-size: 1.75rem;
    color: var(--fl-foreground);
    text-decoration: none;
}

.fl-contact-directory-number:hover[b-saaf8vxf1e] {
    color: var(--fl-primary);
}

.fl-contact-directory-menu[b-saaf8vxf1e] {
    list-style: none;
    margin: 1.5rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.fl-contact-directory-menu li[b-saaf8vxf1e] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.6rem 0;
    border-top: 1px solid var(--fl-border);
}

.fl-contact-directory-menu li:first-child[b-saaf8vxf1e] {
    border-top: none;
    padding-top: 0;
}

.fl-contact-directory-menu-press[b-saaf8vxf1e] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 4.25rem;
    padding: 0.3rem 0.7rem;
    border-radius: 999px;
    background: var(--fl-primary);
    color: var(--fl-primary-foreground);
    font-size: 0.75rem;
    font-weight: 600;
}

.fl-contact-directory-menu-label[b-saaf8vxf1e] {
    font-size: 0.95rem;
    color: var(--fl-foreground);
}

.fl-contact-directory-departments[b-saaf8vxf1e] {
    list-style: none;
    margin: 1.5rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.fl-contact-directory-departments li[b-saaf8vxf1e] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 0;
    border-top: 1px solid var(--fl-border);
}

.fl-contact-directory-departments li:first-child[b-saaf8vxf1e] {
    border-top: none;
    padding-top: 0;
}

.fl-contact-directory-department-name[b-saaf8vxf1e] {
    font-size: 0.9rem;
    color: var(--fl-foreground);
}

.fl-contact-directory-department-ext[b-saaf8vxf1e] {
    flex-shrink: 0;
    font-family: var(--fl-font-mono);
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--fl-primary);
}
/* /Components/FeaturedArticle.razor.rz.scp.css */
/* This component always follows another SectionShell-based section directly
   (see Home.razor, right after the "A Trusted Partner" HeadingCopySplit) —
   SectionShell's own top padding stacking on top of the PREVIOUS section's
   bottom padding left an oversized gap above the card. Trimming only this
   instance's top padding wasn't enough on its own, since most of that gap is
   actually the previous section's bottom padding, which lives in a
   different component instance this file can't reach by selector — pulled
   up with a negative margin-top instead, sized to cancel that section's own
   padding-bottom (SectionShell's default `clamp(4rem, 10vw, 7rem)`) almost
   exactly. This assumes the direct previous sibling is a standard, untinted
   SectionShell-based section; if Home.razor's layout above this component
   ever changes, recheck the gap.

   `.fl-featured-article-shell ::deep .fl-section-shell`, not just
   `::deep .fl-section-shell` — this component's root used to be
   <SectionShell> directly, so `::deep .fl-section-shell` compiled to
   `[this-scope] .fl-section-shell` with NO actual ancestor in the DOM
   carrying `[this-scope]` (Blazor only stamps a component's own scope
   attribute onto elements authored directly in ITS file, never onto a
   child component's own root output — see FeaturedArticle.razor's comment
   on the wrapping div). The rule silently matched nothing. Anchoring the
   selector on that wrapper's own class also happens to raise this rule's
   specificity (3 class-level selectors) above SectionShell.razor.css's own
   base rule (`.fl-section-shell[scope]`, 2 class-level selectors) — needed
   because padding-top here would otherwise lose to that rule's `padding`
   shorthand (which also sets padding-top) whenever it happens to come
   later in the compiled stylesheet, regardless of which override was
   written "more specifically" in prose. */
.fl-featured-article-shell[b-85oau7ei6h]  .fl-section-shell {
    padding-top: clamp(1rem, 3vw, 2rem);
    margin-top: calc(-1 * clamp(4rem, 10vw, 7rem));
}

.fl-featured-article[b-85oau7ei6h] {
    display: grid;
    grid-template-columns: 1fr;
    margin-top: 1.5rem;
    border-radius: 1.5rem;
    border: 1px solid var(--fl-border);
    background: var(--fl-card);
    overflow: hidden;
}

.fl-featured-article-image[b-85oau7ei6h] {
    width: 100%;
    height: 100%;
    min-height: 14rem;
    object-fit: cover;
}

[b-85oau7ei6h] .fl-placeholder {
    border-radius: 0;
    border: none;
}

.fl-featured-article-body[b-85oau7ei6h] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 0.6rem;
    padding: 2rem;
}

.fl-featured-article-meta[b-85oau7ei6h] {
    color: var(--fl-muted-foreground);
}

.fl-featured-article-title[b-85oau7ei6h] {
    margin: 0;
    font-size: clamp(1.35rem, 2.6vw, 1.85rem);
    color: var(--fl-foreground);
}

.fl-featured-article-description[b-85oau7ei6h] {
    margin: 0;
    max-width: 34rem;
    font-size: 0.98rem;
    line-height: 1.6;
    color: var(--fl-muted-foreground);
}

.fl-featured-article-cta[b-85oau7ei6h] {
    margin-top: 0.5rem;
}

[b-85oau7ei6h] .fl-featured-article-cta-icon {
    width: 1rem;
    height: 1rem;
}

/* Side-by-side once there's room for the image to sit at a sane width next
   to the text instead of stacking full-width above it. */
@media (min-width: 720px) {
    .fl-featured-article[b-85oau7ei6h] {
        grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    }
}
/* /Components/FeatureSection.razor.rz.scp.css */
.fl-feature-section[b-4bvm8x9cd4] {
    position: relative;
    overflow: hidden;
    background: var(--fl-abyss);
    padding: 4rem 1.5rem;
}

@media (min-width: 640px) {
    .fl-feature-section[b-4bvm8x9cd4] {
        padding: 6rem 2.5rem;
    }
}

.fl-feature-section--light[b-4bvm8x9cd4] {
    background: #fff;
}

.fl-feature-grid[b-4bvm8x9cd4] {
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr;
    align-items: center;
    gap: 2.5rem;
    max-width: 72rem;
}

@media (min-width: 1024px) {
    .fl-feature-grid[b-4bvm8x9cd4] {
        grid-template-columns: repeat(2, 1fr);
        gap: 4rem;
    }

    .fl-feature-media--reversed[b-4bvm8x9cd4] {
        order: 2;
    }

    .fl-feature-info--reversed[b-4bvm8x9cd4] {
        order: 1;
    }
}

.fl-feature-placeholder[b-4bvm8x9cd4] {
    display: flex;
    width: 100%;
    aspect-ratio: 16 / 9;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    border-radius: 0.75rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: var(--fl-abyss-light);
    color: rgba(255, 255, 255, 0.3);
}

.fl-feature-section--light .fl-feature-placeholder[b-4bvm8x9cd4] {
    border-color: rgba(10, 14, 23, 0.1);
    background: #fafafa;
    color: rgba(10, 14, 23, 0.3);
}

.fl-feature-placeholder-label[b-4bvm8x9cd4] {
    font-size: 0.75rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

[b-4bvm8x9cd4] .fl-feature-placeholder-icon {
    width: 2.5rem;
    height: 2.5rem;
}

.fl-feature-title[b-4bvm8x9cd4] {
    margin-top: 1.5rem;
    font-size: 1.5rem;
    font-weight: 700;
    color: #fff;
}

@media (min-width: 640px) {
    .fl-feature-title[b-4bvm8x9cd4] {
        font-size: 1.875rem;
    }
}

.fl-feature-section--light .fl-feature-title[b-4bvm8x9cd4] {
    color: var(--fl-abyss);
}

.fl-feature-subtitle[b-4bvm8x9cd4] {
    margin-top: 0.5rem;
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--fl-terracotta-300);
}

.fl-feature-section--light .fl-feature-subtitle[b-4bvm8x9cd4] {
    color: var(--fl-terracotta-600);
}

.fl-feature-description[b-4bvm8x9cd4] {
    margin-top: 0.75rem;
    font-size: 1rem;
    line-height: 1.625;
    color: rgba(255, 255, 255, 0.7);
}

.fl-feature-section--light .fl-feature-description[b-4bvm8x9cd4] {
    color: rgba(10, 14, 23, 0.7);
}
/* /Components/HeadingCopySplit.razor.rz.scp.css */
.fl-heading-copy-split[b-e7n5yc3vae] {
    display: grid;
    gap: 2.5rem;
}

@media (min-width: 900px) {
    .fl-heading-copy-split[b-e7n5yc3vae] {
        grid-template-columns: 1fr 1.1fr;
        gap: 4rem;
    }
}

.fl-heading-copy-heading[b-e7n5yc3vae] {
    margin: 1.25rem 0 0;
    font-size: clamp(1.9rem, 4vw, 3rem);
    color: var(--fl-foreground);
}

.fl-heading-copy-body[b-e7n5yc3vae] {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
    font-size: 1.1rem;
    line-height: 1.65;
    color: var(--fl-muted-foreground);
}
/* /Components/ImageBanner.razor.rz.scp.css */
/* A banner is a divider, not a content section — the full SectionShell
   rhythm (clamp(4rem, 10vw, 7rem) top AND bottom) reads as too much empty
   space stacked against PageHero's own bottom spacing above and the next
   section's own top padding below (the same "way too much gap" issue
   fixed on Home's FeaturedArticle). Trimmed to roughly half here instead.

   `.fl-image-banner-shell ::deep .fl-section-shell`, not a bare
   `::deep .fl-section-shell` — this component's root used to be
   <SectionShell> directly, and Blazor only stamps a component's OWN scope
   attribute onto elements authored directly in its file, never onto a
   child component's own root output, so a bare `::deep .fl-section-shell`
   has no actual DOM ancestor to anchor to and silently matches nothing
   (see FeaturedArticle.razor.css for the fuller writeup of this one).
   Anchoring on the wrapper's own class also raises this rule's specificity
   above SectionShell.razor.css's base rule, which matters because that
   rule sets `padding` as a shorthand (covering padding-top too) — without
   the specificity edge, whichever rule happens to come later in the
   compiled stylesheet would silently win regardless of intent. */
.fl-image-banner-shell[b-1j0xpgp8c8]  .fl-section-shell {
    padding-top: clamp(2rem, 5vw, 3.5rem);
    padding-bottom: clamp(2rem, 5vw, 3.5rem);
}

/* Breaks the image out of SectionShell's own inner content column (the
   narrower 1400px-max column normal page copy sits in) so it spans almost
   the full viewport width instead — the standard "full-bleed within a
   centered container" trick: width:100vw escapes whatever max-width the
   ancestor chain imposes, and margin-left: calc(50% - 50vw) re-centers it
   on the viewport rather than on its own (now off-center) box. The
   padding then pulls both edges back in by a small, fixed gutter — "nearly
   to the edges, with a little to spare" rather than truly edge-to-edge
   like a Tinted section's own background color band. */
.fl-image-banner[b-1j0xpgp8c8] {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding: 0 1.5rem;
    box-sizing: border-box;
    overflow: hidden;
}

.fl-image-banner-img[b-1j0xpgp8c8] {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
/* /Components/InfoCard.razor.rz.scp.css */
.fl-info-card[b-numwbzngzq] {
    border-radius: 1.25rem;
    border: 1px solid var(--fl-border);
    background: var(--fl-background);
    padding: 1.75rem;
    transition: border-color 0.2s;
}

.fl-info-card:hover[b-numwbzngzq] {
    border-color: var(--fl-primary);
}

/* --fl-info-card-icon-color is set inline per-instance (see InfoCard.razor)
   only when a caller passes IconColor — otherwise it's unset and these
   fall back to the plain default (var(--fl-secondary)/var(--fl-primary)),
   so existing CardSection usages elsewhere (FQHC, etc.) render exactly as
   before. background uses color-mix so the tint always matches whatever
   color was passed, instead of a hand-picked wash that would only look
   right for one specific hue. */
.fl-info-card-icon-badge[b-numwbzngzq] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    margin-bottom: 1rem;
    border-radius: 0.75rem;
    background: color-mix(in srgb, var(--fl-info-card-icon-color, var(--fl-secondary)) 15%, var(--fl-secondary));
    color: var(--fl-info-card-icon-color, var(--fl-primary));
}

[b-numwbzngzq] .fl-info-card-icon {
    width: 1.4rem;
    height: 1.4rem;
}

.fl-info-card-title[b-numwbzngzq] {
    margin: 0;
    font-family: var(--fl-font-heading);
    font-weight: 700;
    font-size: 1.15rem;
}

.fl-info-card-body[b-numwbzngzq] {
    margin: 0.5rem 0 0;
    font-size: 0.9rem;
    line-height: 1.5;
    color: var(--fl-muted-foreground);
}
/* /Components/LatestBlogPosts.razor.rz.scp.css */
.fl-latest-posts[b-6xnipwntgt] {
    padding: clamp(4rem, 10vw, 7rem) 0;
    border-top: 1px solid var(--fl-border);
}

.fl-latest-posts-inner[b-6xnipwntgt] {
    max-width: var(--fl-max-width);
    margin: 0 auto;
    padding: 0 1.5rem;
}

.fl-latest-posts-header[b-6xnipwntgt] {
    max-width: 40rem;
}

.fl-latest-posts-title[b-6xnipwntgt] {
    margin: 1.25rem 0 0;
    font-size: clamp(1.9rem, 4vw, 2.75rem);
    color: var(--fl-foreground);
}

.fl-latest-posts-status[b-6xnipwntgt] {
    margin-top: 2rem;
    color: var(--fl-muted-foreground);
}

.fl-latest-posts-grid[b-6xnipwntgt] {
    margin-top: 3rem;
    display: grid;
    gap: 1.5rem;
}

@media (min-width: 800px) {
    .fl-latest-posts-grid[b-6xnipwntgt] {
        grid-template-columns: repeat(3, 1fr);
    }
}

.fl-latest-post-card[b-6xnipwntgt] {
    display: flex;
    flex-direction: column;
    border-radius: 1.25rem;
    border: 1px solid var(--fl-border);
    background: var(--fl-background);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: border-color 0.2s, transform 0.2s;
}

.fl-latest-post-card:hover[b-6xnipwntgt] {
    border-color: var(--fl-primary);
    transform: translateY(-2px);
}

[b-6xnipwntgt] .fl-placeholder {
    border-radius: 0;
    border: none;
    border-bottom: 1px solid var(--fl-border);
}

.fl-latest-post-image[b-6xnipwntgt] {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    border-bottom: 1px solid var(--fl-border);
}

.fl-latest-post-body[b-6xnipwntgt] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    padding: 1.5rem;
}

.fl-latest-post-meta[b-6xnipwntgt] {
    align-self: flex-start;
    color: var(--fl-muted-foreground);
}

.fl-latest-post-title[b-6xnipwntgt] {
    margin: 0;
    font-family: var(--fl-font-heading);
    font-weight: 700;
    font-size: 1.15rem;
    line-height: 1.35;
}

.fl-latest-post-cta[b-6xnipwntgt] {
    margin-top: auto;
    padding-top: 0.5rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--fl-primary);
}

.fl-latest-posts-link[b-6xnipwntgt] {
    display: inline-flex;
    margin-top: 2.5rem;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--fl-primary);
    text-decoration: none;
}

.fl-latest-posts-link:hover[b-6xnipwntgt] {
    text-decoration: underline;
}
/* /Components/LeaveSiteModal.razor.rz.scp.css */
.fl-leave-modal-scrim[b-8umcodx02v] {
    position: fixed;
    inset: 0;
    z-index: 200;
    background: hsl(222 47% 7% / 0.55);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    animation: fl-leave-modal-scrim-in-b-8umcodx02v 0.15s ease;
}

@keyframes fl-leave-modal-scrim-in-b-8umcodx02v {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.fl-leave-modal-wrap[b-8umcodx02v] {
    position: fixed;
    inset: 0;
    z-index: 201;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    pointer-events: none;
}

.fl-leave-modal[b-8umcodx02v] {
    pointer-events: auto;
    width: 100%;
    max-width: 26rem;
    border-radius: 1.25rem;
    border: 1px solid var(--fl-border);
    background: var(--fl-card);
    box-shadow: 0 24px 60px -12px rgba(15, 23, 42, 0.35);
    padding: 2rem;
    animation: fl-leave-modal-in-b-8umcodx02v 0.18s ease;
}

@keyframes fl-leave-modal-in-b-8umcodx02v {
    from {
        opacity: 0;
        transform: translateY(8px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.fl-leave-modal-title[b-8umcodx02v] {
    margin: 0;
    font-size: 1.5rem;
    color: var(--fl-foreground);
}

.fl-leave-modal-body[b-8umcodx02v] {
    margin: 0.9rem 0 0;
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--fl-muted-foreground);
}

.fl-leave-modal-actions[b-8umcodx02v] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.75rem;
}
/* /Components/LocationDirectory.razor.rz.scp.css */
.fl-location-directory-search[b-kqiesq99xa] {
    position: relative;
    display: flex;
    align-items: center;
}

[b-kqiesq99xa] .fl-location-directory-search-icon {
    position: absolute;
    left: 1.25rem;
    width: 1.1rem;
    height: 1.1rem;
    color: var(--fl-muted-foreground);
    pointer-events: none;
}

.fl-location-directory-search-input[b-kqiesq99xa] {
    width: 100%;
    padding: 1rem 6.5rem 1rem 3.25rem;
    border-radius: 1rem;
    border: 1px solid var(--fl-border);
    background: var(--fl-card);
    color: var(--fl-foreground);
    font-family: var(--fl-font-body);
    font-size: 0.95rem;
}

.fl-location-directory-search-input[b-kqiesq99xa]::placeholder {
    color: var(--fl-muted-foreground);
}

.fl-location-directory-search-input:focus[b-kqiesq99xa] {
    outline: none;
    border-color: var(--fl-primary);
}

.fl-location-directory-search-count[b-kqiesq99xa] {
    position: absolute;
    right: 1.25rem;
    color: var(--fl-muted-foreground);
    white-space: nowrap;
}

.fl-location-directory-grid[b-kqiesq99xa] {
    display: grid;
    gap: 1.25rem;
    margin-top: 1.75rem;
}

@media (min-width: 900px) {
    .fl-location-directory-grid[b-kqiesq99xa] {
        grid-template-columns: 1.1fr 1fr;
        align-items: start;
    }
}

.fl-location-directory-list[b-kqiesq99xa] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    max-height: 38rem;
    overflow-y: auto;
    border-radius: 1.25rem;
    border: 1px solid var(--fl-border);
    background: var(--fl-card);
    padding: 0.6rem;
}

.fl-location-directory-row[b-kqiesq99xa] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    padding: 0.9rem 1rem;
    border-radius: 0.85rem;
    border: 1px solid transparent;
    background: none;
    text-align: left;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.fl-location-directory-row:hover[b-kqiesq99xa] {
    background: var(--fl-secondary);
}

.fl-location-directory-row--active[b-kqiesq99xa] {
    background: var(--fl-secondary);
    border-color: var(--fl-primary);
}

.fl-location-directory-row-text[b-kqiesq99xa] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    min-width: 0;
}

.fl-location-directory-row-top[b-kqiesq99xa] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.fl-location-directory-row-psc[b-kqiesq99xa] {
    flex-shrink: 0;
    display: inline-flex;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    background: var(--fl-secondary);
    color: var(--fl-primary);
}

.fl-location-directory-row--active .fl-location-directory-row-psc[b-kqiesq99xa] {
    background: var(--fl-background);
}

.fl-location-directory-row-name[b-kqiesq99xa] {
    font-weight: 600;
    color: var(--fl-foreground);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-kqiesq99xa] .fl-location-directory-row-flag {
    flex-shrink: 0;
    width: 0.9rem;
    height: 0.9rem;
    color: var(--fl-accent-warm);
}

.fl-location-directory-row-address[b-kqiesq99xa] {
    font-size: 0.85rem;
    color: var(--fl-muted-foreground);
}

.fl-location-directory-row-distance[b-kqiesq99xa] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--fl-primary);
}

[b-kqiesq99xa] .fl-location-directory-row-arrow {
    flex-shrink: 0;
    width: 1rem;
    height: 1rem;
    color: var(--fl-muted-foreground);
}

.fl-location-directory-row--active[b-kqiesq99xa]  .fl-location-directory-row-arrow {
    color: var(--fl-primary);
}

.fl-location-directory-detail[b-kqiesq99xa] {
    border-radius: 1.25rem;
    border: 1px solid var(--fl-border);
    background: var(--fl-card);
    padding: 1.75rem;
}

.fl-location-directory-detail-header[b-kqiesq99xa] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.fl-location-directory-detail-psc[b-kqiesq99xa] {
    color: var(--fl-primary);
}

.fl-location-directory-detail-corporate[b-kqiesq99xa] {
    color: var(--fl-accent);
}

.fl-location-directory-detail-title[b-kqiesq99xa] {
    margin: 0.75rem 0 0;
    font-size: 1.6rem;
    color: var(--fl-foreground);
}

.fl-location-directory-detail-address[b-kqiesq99xa] {
    margin: 0.4rem 0 0;
    font-size: 0.9rem;
    color: var(--fl-muted-foreground);
}

/* Notes/flags — "By Appointment Only", age restrictions, temporary
   closures — are operationally important, so they get a distinct,
   warm-tinted callout rather than blending in with the rest of the detail
   panel's plain rows. */
.fl-location-directory-detail-note[b-kqiesq99xa] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    margin-top: 1.25rem;
    padding: 0.85rem 1rem;
    border-radius: 0.85rem;
    background: hsl(28 95% 53% / 0.12);
    font-size: 0.85rem;
    line-height: 1.5;
    color: var(--fl-foreground);
}

[b-kqiesq99xa] .fl-location-directory-detail-note-icon {
    flex-shrink: 0;
    width: 1.1rem;
    height: 1.1rem;
    margin-top: 0.1rem;
    color: var(--fl-accent-warm);
}

.fl-location-directory-detail-row[b-kqiesq99xa] {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    margin-top: 1.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--fl-border);
}

.fl-location-directory-detail-row--last[b-kqiesq99xa] {
    padding-bottom: 0;
    border-bottom: none;
}

[b-kqiesq99xa] .fl-location-directory-detail-icon {
    flex-shrink: 0;
    width: 1.3rem;
    height: 1.3rem;
    margin-top: 0.15rem;
    color: var(--fl-primary);
}

.fl-location-directory-detail-value[b-kqiesq99xa] {
    margin: 0.35rem 0 0;
    font-weight: 600;
    color: var(--fl-foreground);
}

.fl-location-directory-detail-value--muted[b-kqiesq99xa] {
    margin-top: 0.15rem;
    font-weight: 500;
    font-size: 0.9rem;
    color: var(--fl-muted-foreground);
}

/* Mon→Sun grid, replacing the old collapsed "M-F: ..." + optional
   Saturday-only line — every day gets its own row so a closed Wednesday or
   a shorter Friday (several PSCs have these) reads clearly instead of
   being buried in one free-text string. */
.fl-location-directory-hours-block[b-kqiesq99xa] {
    flex: 1;
    min-width: 0;
}

.fl-location-directory-hours-grid[b-kqiesq99xa] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    margin-top: 0.6rem;
}

.fl-location-directory-hours-row[b-kqiesq99xa] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.3rem 0;
    border-bottom: 1px solid var(--fl-border);
}

.fl-location-directory-hours-row:last-child[b-kqiesq99xa] {
    border-bottom: none;
}

.fl-location-directory-hours-day[b-kqiesq99xa] {
    flex-shrink: 0;
    width: 2.75rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--fl-muted-foreground);
}

.fl-location-directory-hours-time[b-kqiesq99xa] {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--fl-foreground);
    text-align: right;
}

.fl-location-directory-hours-closed[b-kqiesq99xa] {
    color: var(--fl-muted-foreground);
    background: var(--fl-secondary);
}

.fl-location-directory-hours-lunch[b-kqiesq99xa] {
    margin-top: 0.75rem;
}

.fl-location-directory-detail-link[b-kqiesq99xa] {
    color: var(--fl-foreground);
    text-decoration: none;
}

.fl-location-directory-detail-link:hover[b-kqiesq99xa] {
    color: var(--fl-primary);
}

.fl-location-directory-detail-cta[b-kqiesq99xa] {
    margin-top: 1.75rem;
    width: 100%;
    justify-content: center;
    /* Now a <button> (routes through LeaveSiteConfirmService instead of a
       plain href) — .fl-btn resets padding but not border, and unlike an
       <a>, a real <button> picks up the browser's own default border. */
    border: none;
}

[b-kqiesq99xa] .fl-location-directory-detail-cta-icon {
    width: 1rem;
    height: 1rem;
}

.fl-location-directory-empty[b-kqiesq99xa] {
    padding: 2rem 1rem;
    text-align: center;
    color: var(--fl-muted-foreground);
}
/* /Components/MainHero.razor.rz.scp.css */
.fl-main-hero[b-qw6hh1wlwx] {
    position: relative;
    overflow: hidden;
}

.fl-main-hero-video[b-qw6hh1wlwx] {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Tinted to match the current theme's own background color (light or dark),
   so the video shows through clearly while the hero's existing text colors
   stay legible on top of it — same idea as .fl-glass elsewhere on the site. */
.fl-main-hero-video-scrim[b-qw6hh1wlwx] {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: hsl(240 20% 99% / 0.72);
}

.fl-dark .fl-main-hero-video-scrim[b-qw6hh1wlwx] {
    background: hsl(222 47% 7% / 0.72);
}

/* Positioned (not just in normal flow) so it reliably paints above the
   video/scrim above, which are position:absolute — without this, painting
   order would put the (non-positioned) text content BEHIND them regardless
   of DOM order. */
.fl-main-hero-inner[b-qw6hh1wlwx] {
    position: relative;
    z-index: 2;
    max-width: var(--fl-max-width);
    margin: 0 auto;
    padding: 3rem 1.5rem 3.5rem;
}

.fl-main-hero-status[b-qw6hh1wlwx] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0.75rem;
    border-radius: 999px;
    border: 1px solid var(--fl-border);
    background: hsl(0 0% 100% / 0.6);
}

/* Same fix as .fl-dark .fl-sector-card — a hardcoded white glass background
   left the "Welcome to Foundation Laboratory" pill's --fl-data-tag text
   unreadable in dark mode. */
.fl-dark .fl-main-hero-status[b-qw6hh1wlwx] {
    background: hsl(222 40% 10% / 0.55);
}

.fl-main-hero-status-dot[b-qw6hh1wlwx] {
    position: relative;
    display: inline-flex;
    width: 0.5rem;
    height: 0.5rem;
}

.fl-main-hero-status-ping[b-qw6hh1wlwx] {
    position: absolute;
    inset: 0;
    border-radius: 999px;
    background: var(--fl-accent-warm);
}

.fl-main-hero-status-core[b-qw6hh1wlwx] {
    position: relative;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 999px;
    background: var(--fl-accent-warm);
}

.fl-main-hero-title[b-qw6hh1wlwx] {
    margin: 1.5rem 0 0;
    font-size: clamp(2.75rem, 8vw, 5.25rem);
    line-height: 0.98;
    max-width: 60rem;
    color: var(--fl-foreground);
}

.fl-main-hero-cycle[b-qw6hh1wlwx] {
    position: relative;
    display: inline-block;
    height: 1.05em;
    overflow: hidden;
    vertical-align: bottom;
}

/* Sets the container's width to fit the longest word (see the markup
   comment) — invisible but still in normal flow, unlike the absolutely
   positioned words below, which contribute no width on their own. */
.fl-main-hero-cycle-spacer[b-qw6hh1wlwx] {
    visibility: hidden;
    white-space: nowrap;
}

.fl-main-hero-cycle-word[b-qw6hh1wlwx] {
    position: absolute;
    left: 0;
    top: 0;
    white-space: nowrap;
    color: var(--fl-accent-warm);
    opacity: 0;
    animation: fl-main-hero-cycle-word-b-qw6hh1wlwx 9s ease-in-out infinite;
}

.fl-main-hero-cycle-word:nth-child(2)[b-qw6hh1wlwx] {
    animation-delay: 3s;
}

.fl-main-hero-cycle-word:nth-child(3)[b-qw6hh1wlwx] {
    animation-delay: 6s;
}

@keyframes fl-main-hero-cycle-word-b-qw6hh1wlwx {
    0%, 100% { opacity: 0; }
    4% { opacity: 1; }
    28% { opacity: 1; }
    33% { opacity: 0; }
}

.fl-main-hero-lede[b-qw6hh1wlwx] {
    margin: 1.75rem 0 0;
    max-width: 34rem;
    font-size: 1.15rem;
    line-height: 1.6;
    color: var(--fl-muted-foreground);
}

.fl-main-hero-actions[b-qw6hh1wlwx] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 2rem;
}

[b-qw6hh1wlwx] .fl-main-hero-cta-icon {
    width: 1rem;
    height: 1rem;
}

.fl-main-hero-trailer[b-qw6hh1wlwx] {
    position: relative;
    z-index: 2;
    max-width: var(--fl-max-width);
    margin: 0 auto;
    padding: 0 1.5rem 3.5rem;
    display: grid;
    gap: 1rem;
}

@media (min-width: 700px) {
    .fl-main-hero-trailer[b-qw6hh1wlwx] {
        grid-template-columns: repeat(3, 1fr);
    }
}
/* /Components/PageHero.razor.rz.scp.css */
.fl-page-hero[b-c1aiyiasvr] {
    position: relative;
    background-image:
        radial-gradient(circle, var(--fl-border) 1px, transparent 1.5px);
    background-size: 28px 28px;
    background-position: -14px -14px;
}

.fl-page-hero-inner[b-c1aiyiasvr] {
    max-width: var(--fl-max-width);
    margin: 0 auto;
    padding: 2.5rem 1.5rem 3rem;
}

.fl-page-hero-heading[b-c1aiyiasvr] {
    max-width: 48rem;
}

.fl-page-hero-title[b-c1aiyiasvr] {
    margin: 1.25rem 0 0;
    font-size: clamp(2.25rem, 6vw, 4rem);
    color: var(--fl-foreground);
}

.fl-page-hero-highlight[b-c1aiyiasvr] {
    color: var(--fl-accent-warm);
}

.fl-page-hero-description[b-c1aiyiasvr] {
    margin: 1.25rem 0 0;
    max-width: 42rem;
    font-size: 1.1rem;
    line-height: 1.6;
    color: var(--fl-muted-foreground);
}

.fl-page-hero-bar[b-c1aiyiasvr] {
    display: flex;
    justify-content: flex-end;
    max-width: var(--fl-max-width);
    margin: 0 auto;
    padding: 1rem 1.5rem;
    border-top: 1px solid var(--fl-border);
}
/* /Components/PhosphorIcon.razor.rz.scp.css */
/* Default icon size (matches the old Tailwind "size-6" default) when a
   caller doesn't pass Class. Callers that need a different size/color set it
   from their OWN scoped stylesheet via `::deep` targeting this element,
   rather than overriding Class here — see FeatureSection/ProofPoints/Fqhc
   for the pattern. */
svg[b-gc3c62xyhf] {
    width: 1.5rem;
    height: 1.5rem;
    flex-shrink: 0;
}
/* /Components/PlaceholderImage.razor.rz.scp.css */
.fl-placeholder[b-ygiuawlc67] {
    position: relative;
    display: flex;
    align-items: flex-end;
    width: 100%;
    border-radius: 1.25rem;
    border: 1px solid var(--fl-border);
    background:
        repeating-linear-gradient(
            135deg,
            var(--fl-secondary) 0 12px,
            var(--fl-background) 12px 24px
        );
    overflow: hidden;
}

.fl-placeholder-tag[b-ygiuawlc67] {
    margin: 0.9rem;
    padding: 0.35rem 0.6rem;
    border-radius: 0.5rem;
    background: hsl(0 0% 100% / 0.7);
    backdrop-filter: blur(8px);
}
/* /Components/ProofPoints.razor.rz.scp.css */
.fl-proof-grid[b-k67fqohaxz] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

@media (min-width: 640px) {
    .fl-proof-grid[b-k67fqohaxz] {
        grid-template-columns: repeat(2, 1fr);
    }
}

.fl-proof-item[b-k67fqohaxz] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1rem;
    border-radius: 0.5rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: var(--fl-abyss-light);
}

.fl-proof-item--light[b-k67fqohaxz] {
    border-color: rgba(10, 14, 23, 0.1);
    background: #fafafa;
}

.fl-proof-text[b-k67fqohaxz] {
    font-size: 0.875rem;
    font-weight: 500;
    color: #fff;
}

.fl-proof-item--light .fl-proof-text[b-k67fqohaxz] {
    color: var(--fl-abyss);
}

[b-k67fqohaxz] .fl-proof-icon {
    width: 1.25rem;
    height: 1.25rem;
    flex-shrink: 0;
    color: var(--fl-terracotta-300);
}

.fl-proof-item--light[b-k67fqohaxz]  .fl-proof-icon {
    color: var(--fl-terracotta-500);
}
/* /Components/ResourceDirectory.razor.rz.scp.css */
.fl-resource-grid[b-40apypum6s] {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
}

.fl-resource-card[b-40apypum6s] {
    display: flex;
    flex-direction: column;
    border-radius: 1.25rem;
    border: 1px solid var(--fl-border);
    background: var(--fl-card);
    padding: 1.5rem;
    transition: border-color 0.2s ease, transform 0.2s ease;
}

.fl-resource-card:hover[b-40apypum6s] {
    border-color: var(--fl-primary);
    transform: translateY(-2px);
}

.fl-resource-card-icon-badge[b-40apypum6s] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    margin-bottom: 1rem;
    border-radius: 0.75rem;
    background: var(--fl-secondary);
    color: var(--fl-primary);
}

[b-40apypum6s] .fl-resource-card-icon {
    width: 1.4rem;
    height: 1.4rem;
}

.fl-resource-card-badges[b-40apypum6s] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.fl-resource-card-format[b-40apypum6s] {
    display: inline-flex;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    background: var(--fl-secondary);
    color: var(--fl-primary);
}

.fl-resource-card-date[b-40apypum6s] {
    font-family: var(--fl-font-mono);
    font-size: 0.7rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--fl-muted-foreground);
}

.fl-resource-card-title[b-40apypum6s] {
    margin: 0.9rem 0 0;
    font-family: var(--fl-font-heading);
    font-weight: 700;
    font-size: 1.1rem;
    color: var(--fl-foreground);
}

.fl-resource-card-description[b-40apypum6s] {
    margin: 0.5rem 0 0;
    flex: 1;
    font-size: 0.88rem;
    line-height: 1.5;
    color: var(--fl-muted-foreground);
}

.fl-resource-card-footer[b-40apypum6s] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--fl-border);
}

.fl-resource-card-size[b-40apypum6s] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--fl-muted-foreground);
}

.fl-resource-card-download[b-40apypum6s] {
    padding: 0.5rem 0.9rem;
    font-size: 0.8rem;
}

[b-40apypum6s] .fl-resource-card-download-icon {
    width: 0.9rem;
    height: 0.9rem;
}
/* /Components/SectionLabel.razor.rz.scp.css */
.fl-section-label[b-r3bch6mn7v] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.fl-section-label-line[b-r3bch6mn7v] {
    height: 1px;
    width: 2rem;
    background: var(--fl-accent-warm);
    opacity: 0.5;
}
/* /Components/SectionShell.razor.rz.scp.css */
.fl-section-shell[b-srp3k7euhu] {
    padding: clamp(4rem, 10vw, 7rem) 0;
}

.fl-section-shell--tinted[b-srp3k7euhu] {
    background: var(--fl-secondary);
}

.fl-section-shell-inner[b-srp3k7euhu] {
    max-width: var(--fl-max-width);
    margin: 0 auto;
    padding: 0 1.5rem;
}
/* /Components/SectorCard.razor.rz.scp.css */
.fl-sector-card[b-kr6yjpg6j1] {
    display: block;
    height: 100%;
    padding: 1.5rem;
    border-radius: 1.25rem;
    text-decoration: none;
    color: var(--fl-foreground);
    background: hsl(0 0% 100% / 0.6);
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    border: 1px solid hsl(0 0% 100% / 0.5);
    transition: transform 0.3s ease, border-color 0.3s ease;
}

/* Light-mode-only glass values above stayed near-white in dark mode too
   (hardcoded hsl(0 0% 100% / ...), not a theme token), which put light
   --fl-foreground text on a near-white card — unreadable. Same dark glass
   values as .fl-dark .fl-glass/.fl-nav-bar elsewhere on the site. */
.fl-dark .fl-sector-card[b-kr6yjpg6j1] {
    background: hsl(222 40% 10% / 0.55);
    border-color: hsl(0 0% 100% / 0.1);
}

.fl-sector-card:hover[b-kr6yjpg6j1] {
    transform: translateY(-6px);
    border-color: var(--fl-primary);
}

.fl-sector-card-title[b-kr6yjpg6j1] {
    margin: 0;
    font-family: var(--fl-font-heading);
    font-weight: 700;
    font-size: 1.25rem;
    letter-spacing: -0.01em;
}

.fl-sector-card-description[b-kr6yjpg6j1] {
    margin: 0.5rem 0 0;
    font-size: 0.9rem;
    line-height: 1.5;
    color: var(--fl-muted-foreground);
}

.fl-sector-card-cta[b-kr6yjpg6j1] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 1.5rem;
    font-size: 0.9rem;
    font-weight: 600;
}

.fl-sector-card-arrow[b-kr6yjpg6j1] {
    transition: transform 0.2s ease;
}

.fl-sector-card:hover .fl-sector-card-arrow[b-kr6yjpg6j1] {
    transform: translate(2px, -2px);
}
/* /Components/SplitShowcase.razor.rz.scp.css */
.fl-split-showcase[b-rx8coih0xi] {
    display: grid;
    align-items: center;
    gap: 2.5rem;
}

@media (min-width: 900px) {
    .fl-split-showcase[b-rx8coih0xi] {
        grid-template-columns: 1fr 1fr;
        gap: 4rem;
    }

    /* Targets the copy column (.fl-split-showcase-copy, authored directly
       below), not the image side, and deliberately not via `> *:first-child`
       — Blazor's CSS isolation appends this file's scope attribute to every
       simple selector, including a bare `*`, and the image side is either a
       <PlaceholderImage /> or caller-supplied Media, both of which render
       with a DIFFERENT component's scope attribute (or none). A selector
       requiring that element to carry *this* component's scope attribute
       can never match it — order:2 was silently never applying. The copy
       column is a plain <div> written right here in this component's own
       markup, so it reliably carries this scope attribute. */
    .fl-split-showcase--reversed .fl-split-showcase-copy[b-rx8coih0xi] {
        order: -1;
    }
}

.fl-split-showcase-heading[b-rx8coih0xi] {
    margin: 1.25rem 0 0;
    font-size: clamp(1.9rem, 4vw, 2.75rem);
    color: var(--fl-foreground);
}

.fl-split-showcase-description[b-rx8coih0xi] {
    margin: 1.25rem 0 0;
    font-size: 1.1rem;
    line-height: 1.6;
    color: var(--fl-muted-foreground);
}

/* Matches PlaceholderImage's own frame (border-radius/border) so a real
   photo and the placeholder it replaces look like the same slot. Width/
   height 100% + the caller-set aspect-ratio (matched to the source photo's
   real dimensions) means object-fit:cover never actually has to crop. */
.fl-split-showcase-photo[b-rx8coih0xi] {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 1.25rem;
    border: 1px solid var(--fl-border);
    object-fit: cover;
}

.fl-split-showcase-cta[b-rx8coih0xi] {
    margin-top: 1.75rem;
}

[b-rx8coih0xi] .fl-split-showcase-cta-icon {
    width: 1rem;
    height: 1rem;
}
/* /Components/StatCounter.razor.rz.scp.css */
.fl-stat[b-ta4tmbcsbj] {
    display: flex;
    flex-direction: column;
}

.fl-stat-value[b-ta4tmbcsbj] {
    font-size: clamp(2rem, 4vw, 2.75rem);
    color: var(--fl-foreground);
}

.fl-stat-suffix[b-ta4tmbcsbj] {
    color: var(--fl-primary);
}

.fl-stat-label[b-ta4tmbcsbj] {
    margin-top: 0.5rem;
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--fl-foreground);
}

.fl-stat-sublabel[b-ta4tmbcsbj] {
    font-size: 0.8rem;
    color: var(--fl-muted-foreground);
}
/* /Components/StatsGrid.razor.rz.scp.css */
.fl-stats-grid-band[b-y8cqlx23n0] {
    border-top: 1px solid var(--fl-border);
    border-bottom: 1px solid var(--fl-border);
}

.fl-stats-grid[b-y8cqlx23n0] {
    max-width: var(--fl-max-width);
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1px;
    background: var(--fl-border);
}

@media (min-width: 700px) {
    .fl-stats-grid[b-y8cqlx23n0] {
        grid-template-columns: repeat(4, 1fr);
    }
}

.fl-stats-grid-cell[b-y8cqlx23n0] {
    background: var(--fl-background);
    padding: 2rem 1.75rem;
}
/* /Components/TeaserGrid.razor.rz.scp.css */
.fl-teaser-band[b-eypb6gnb0y] {
    border-top: 1px solid var(--fl-border);
    background: var(--fl-secondary);
    padding: clamp(3.5rem, 8vw, 5.5rem) 0;
}

.fl-teaser-band-grid[b-eypb6gnb0y] {
    max-width: var(--fl-max-width);
    margin: 0 auto;
    padding: 0 1.5rem;
    display: grid;
    gap: 2.5rem;
}

@media (min-width: 700px) {
    .fl-teaser-band-grid[b-eypb6gnb0y] {
        grid-template-columns: repeat(2, 1fr);
    }
}

.fl-teaser-band-heading[b-eypb6gnb0y] {
    margin: 1rem 0 0;
    font-size: 1.75rem;
    color: var(--fl-foreground);
}

.fl-teaser-band-description[b-eypb6gnb0y] {
    margin: 0.75rem 0 0;
    color: var(--fl-muted-foreground);
}

.fl-teaser-band-link[b-eypb6gnb0y] {
    display: inline-flex;
    margin-top: 1rem;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--fl-primary);
    text-decoration: none;
}

.fl-teaser-band-link:hover[b-eypb6gnb0y] {
    text-decoration: underline;
}
/* /Components/TestDirectory.razor.rz.scp.css */
.fl-test-directory-search[b-25ljoicrjn] {
    position: relative;
    display: flex;
    align-items: center;
}

[b-25ljoicrjn] .fl-test-directory-search-icon {
    position: absolute;
    left: 1.25rem;
    width: 1.1rem;
    height: 1.1rem;
    color: var(--fl-muted-foreground);
    pointer-events: none;
}

.fl-test-directory-search-input[b-25ljoicrjn] {
    width: 100%;
    padding: 1rem 6.5rem 1rem 3.25rem;
    border-radius: 1rem;
    border: 1px solid var(--fl-border);
    background: var(--fl-card);
    color: var(--fl-foreground);
    font-family: var(--fl-font-body);
    font-size: 0.95rem;
}

.fl-test-directory-search-input[b-25ljoicrjn]::placeholder {
    color: var(--fl-muted-foreground);
}

.fl-test-directory-search-input:focus[b-25ljoicrjn] {
    outline: none;
    border-color: var(--fl-primary);
}

.fl-test-directory-search-count[b-25ljoicrjn] {
    position: absolute;
    right: 1.25rem;
    color: var(--fl-muted-foreground);
    white-space: nowrap;
}

.fl-test-directory-disclaimer[b-25ljoicrjn] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 0.75rem 0 0;
    font-size: 0.8rem;
    line-height: 1.5;
    color: var(--fl-muted-foreground);
}

[b-25ljoicrjn] .fl-test-directory-disclaimer-icon {
    flex-shrink: 0;
    width: 1rem;
    height: 1rem;
    margin-top: 0.15rem;
    color: var(--fl-primary);
}

.fl-test-directory-filters[b-25ljoicrjn] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1.75rem;
}

.fl-test-directory-filter[b-25ljoicrjn] {
    padding: 0.5rem 1rem;
    border-radius: 999px;
    border: 1px solid var(--fl-border);
    background: var(--fl-background);
    color: var(--fl-foreground);
    font-family: var(--fl-font-body);
    font-size: 0.85rem;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.fl-test-directory-filter:hover[b-25ljoicrjn] {
    border-color: var(--fl-primary);
}

.fl-test-directory-filter--active[b-25ljoicrjn] {
    background: var(--fl-foreground);
    border-color: var(--fl-foreground);
    color: var(--fl-background);
}

.fl-test-directory-grid[b-25ljoicrjn] {
    display: grid;
    gap: 1.25rem;
    margin-top: 1.75rem;
}

@media (min-width: 900px) {
    .fl-test-directory-grid[b-25ljoicrjn] {
        grid-template-columns: 1.1fr 1fr;
        align-items: start;
    }
}

.fl-test-directory-list[b-25ljoicrjn] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    max-height: 38rem;
    overflow-y: auto;
    border-radius: 1.25rem;
    border: 1px solid var(--fl-border);
    background: var(--fl-card);
    padding: 0.6rem;
}

.fl-test-directory-row[b-25ljoicrjn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    padding: 0.9rem 1rem;
    border-radius: 0.85rem;
    border: 1px solid transparent;
    background: none;
    text-align: left;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.fl-test-directory-row:hover[b-25ljoicrjn] {
    background: var(--fl-secondary);
}

.fl-test-directory-row--active[b-25ljoicrjn] {
    background: var(--fl-secondary);
    border-color: var(--fl-primary);
}

.fl-test-directory-row-text[b-25ljoicrjn] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    min-width: 0;
}

.fl-test-directory-row-top[b-25ljoicrjn] {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
}

.fl-test-directory-row-code[b-25ljoicrjn] {
    flex-shrink: 0;
    color: var(--fl-primary);
}

.fl-test-directory-row-name[b-25ljoicrjn] {
    font-weight: 600;
    color: var(--fl-foreground);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fl-test-directory-row-category[b-25ljoicrjn] {
    font-size: 0.85rem;
    color: var(--fl-muted-foreground);
}

[b-25ljoicrjn] .fl-test-directory-row-arrow {
    flex-shrink: 0;
    width: 1rem;
    height: 1rem;
    color: var(--fl-muted-foreground);
}

.fl-test-directory-row--active[b-25ljoicrjn]  .fl-test-directory-row-arrow {
    color: var(--fl-primary);
}

.fl-test-directory-detail[b-25ljoicrjn] {
    border-radius: 1.25rem;
    border: 1px solid var(--fl-border);
    background: var(--fl-card);
    padding: 1.75rem;
}

.fl-test-directory-detail-header[b-25ljoicrjn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.fl-test-directory-detail-code[b-25ljoicrjn] {
    color: var(--fl-primary);
}

.fl-test-directory-detail-category[b-25ljoicrjn] {
    color: var(--fl-muted-foreground);
}

.fl-test-directory-detail-title[b-25ljoicrjn] {
    margin: 0.75rem 0 0;
    font-size: 1.6rem;
    color: var(--fl-foreground);
}

.fl-test-directory-detail-row[b-25ljoicrjn] {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    margin-top: 1.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--fl-border);
}

.fl-test-directory-detail-row--last[b-25ljoicrjn] {
    padding-bottom: 0;
    border-bottom: none;
}

[b-25ljoicrjn] .fl-test-directory-detail-icon {
    flex-shrink: 0;
    width: 1.3rem;
    height: 1.3rem;
    margin-top: 0.15rem;
    color: var(--fl-primary);
}

.fl-test-directory-detail-value[b-25ljoicrjn] {
    margin: 0.35rem 0 0;
    font-weight: 600;
    color: var(--fl-foreground);
}

.fl-test-directory-empty[b-25ljoicrjn] {
    padding: 2rem 1rem;
    text-align: center;
    color: var(--fl-muted-foreground);
}
/* /Layout/AdminNavMenu.razor.rz.scp.css */
.fl-admin-nav[b-it3qjgv8p1] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 1.25rem;
    row-gap: 0.25rem;
    padding: 0.375rem 1rem;
    background: #000;
    font-size: 0.75rem;
    font-weight: 500;
}

@media (min-width: 768px) {
    .fl-admin-nav[b-it3qjgv8p1] {
        padding-left: 2rem;
        padding-right: 2rem;
    }
}

.fl-admin-nav-link[b-it3qjgv8p1] {
    color: #fff;
    text-underline-offset: 4px;
}

.fl-admin-nav-link:hover[b-it3qjgv8p1] {
    text-decoration: underline;
}
/* /Layout/AuthLayout.razor.rz.scp.css */
/* ─── Page shell ─────────────────────────────────────────── */

.auth-page[b-a1s5n1tdma] {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem;
    background: linear-gradient(135deg, #0f2a5e, #1a4a8a, #0d1f3c, #163d6e);
    background-size: 400% 400%;
    animation: gradient-shift-b-a1s5n1tdma 24s linear infinite;
    overflow: hidden;
    position: relative;
}

/* Floating light orbs */
.auth-page[b-a1s5n1tdma]::before,
.auth-page[b-a1s5n1tdma]::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    opacity: 0.25;
    pointer-events: none;
}

.auth-page[b-a1s5n1tdma]::before {
    width: 520px;
    height: 520px;
    background: radial-gradient(circle, #3a7bd5, transparent 70%);
    top: -120px;
    left: -100px;
    animation: orb-drift-a-b-a1s5n1tdma 28s linear infinite;
}

.auth-page[b-a1s5n1tdma]::after {
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, #0d3b8a, transparent 70%);
    bottom: -100px;
    right: -80px;
    animation: orb-drift-b-b-a1s5n1tdma 36s linear infinite;
}


/* ─── Glass card ─────────────────────────────────────────── */

.auth-card[b-a1s5n1tdma] {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 420px;
    padding: 2.75rem 2.5rem 2.25rem;
    border-radius: 1.25rem;
    background: rgba(255, 255, 255, 0.07);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.13);
    box-shadow:
        0 8px 32px rgba(0, 0, 0, 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.12);
    animation: card-enter-b-a1s5n1tdma 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
}


/* ─── Heading ─────────────────────────────────────────────── */

[b-a1s5n1tdma] h1 {
    font-size: 1.5rem;
    font-weight: 700;
    color: #fff;
    letter-spacing: -0.015em;
    line-height: 1.15;
    margin: 0 0 1.875rem;
}


/* ─── Form fields ─────────────────────────────────────────── */

[b-a1s5n1tdma] .field {
    margin-bottom: 1.125rem;
}

[b-a1s5n1tdma] .field label {
    display: block;
    font-size: 0.67rem;
    font-weight: 600;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.48);
    margin-bottom: 0.4rem;
}

[b-a1s5n1tdma] .field input {
    display: block;
    width: 100%;
    height: 2.75rem;
    padding: 0 0.875rem;
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 0.5rem;
    color: #fff;
    font-size: 0.9375rem;
    font-family: inherit;
    outline: none;
    box-sizing: border-box;
    -webkit-appearance: none;
    transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
}

[b-a1s5n1tdma] .field input::placeholder {
    color: rgba(255, 255, 255, 0.2);
}

[b-a1s5n1tdma] .field input:focus {
    border-color: rgba(180, 210, 255, 0.55);
    background: rgba(255, 255, 255, 0.1);
    box-shadow: 0 0 0 3px rgba(100, 160, 255, 0.16);
}


/* ─── Buttons ─────────────────────────────────────────────── */

[b-a1s5n1tdma] .field button {
    display: block;
    width: 100%;
    height: 2.75rem;
    padding: 0;
    background: rgba(255, 255, 255, 0.92);
    color: #0c1e3c;
    font-size: 0.8rem;
    font-weight: 700;
    font-family: inherit;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border: none;
    border-radius: 0.5rem;
    cursor: pointer;
    margin-top: 0.5rem;
    transition: background 0.18s, box-shadow 0.18s, transform 0.15s;
}

[b-a1s5n1tdma] .field button:hover:not(:disabled) {
    background: #fff;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.28);
    transform: translateY(-1px);
}

[b-a1s5n1tdma] .field button:active:not(:disabled) {
    transform: translateY(0);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

[b-a1s5n1tdma] .field button:disabled {
    opacity: 0.38;
    cursor: not-allowed;
}


/* ─── Prose & links ───────────────────────────────────────── */

[b-a1s5n1tdma] p {
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.5);
    margin: 0.875rem 0 0;
    line-height: 1.65;
}

[b-a1s5n1tdma] strong {
    color: rgba(255, 255, 255, 0.82);
    font-weight: 600;
}

[b-a1s5n1tdma] a {
    color: rgba(255, 255, 255, 0.72);
    text-decoration: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    padding-bottom: 0.05em;
    transition: color 0.18s, border-color 0.18s;
}

[b-a1s5n1tdma] a:hover {
    color: #fff;
    border-bottom-color: rgba(255, 255, 255, 0.52);
}


/* ─── Alerts ──────────────────────────────────────────────── */

[b-a1s5n1tdma] .error {
    font-size: 0.8125rem;
    line-height: 1.55;
    color: #fca5a5;
    background: rgba(239, 68, 68, 0.1);
    border-left: 2px solid rgba(239, 68, 68, 0.75);
    padding: 0.65rem 0.875rem;
    border-radius: 0 0.4rem 0.4rem 0;
    margin: 0 0 1.125rem;
}

[b-a1s5n1tdma] .success {
    font-size: 0.8125rem;
    line-height: 1.55;
    color: #86efac;
    background: rgba(34, 197, 94, 0.08);
    border-left: 2px solid rgba(34, 197, 94, 0.65);
    padding: 0.65rem 0.875rem;
    border-radius: 0 0.4rem 0.4rem 0;
    margin: 0 0 1.125rem;
}


/* ─── Animations ──────────────────────────────────────────── */

@keyframes card-enter-b-a1s5n1tdma {
    from {
        opacity: 0;
        transform: translateY(18px) scale(0.97);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes gradient-shift-b-a1s5n1tdma {
    0%   { background-position: 0% 50%; }
    50%  { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

@keyframes orb-drift-a-b-a1s5n1tdma {
    0%   { transform: translate(0px,   0px)  scale(1);    }
    25%  { transform: translate(35px,  25px) scale(1.06); }
    50%  { transform: translate(20px,  55px) scale(1.1);  }
    75%  { transform: translate(-15px, 30px) scale(1.04); }
    100% { transform: translate(0px,   0px)  scale(1);    }
}

@keyframes orb-drift-b-b-a1s5n1tdma {
    0%   { transform: translate(0px,   0px)  scale(1);    }
    25%  { transform: translate(-30px, -20px) scale(1.05); }
    50%  { transform: translate(-45px,  25px) scale(1.08); }
    75%  { transform: translate(-10px,  40px) scale(1.03); }
    100% { transform: translate(0px,   0px)  scale(1);    }
}


/* ─── Responsive ──────────────────────────────────────────── */

/* Tablet */
@media (max-width: 768px) {
    .auth-card[b-a1s5n1tdma] {
        max-width: 400px;
        padding: 2.25rem 2rem 1.875rem;
    }

    .auth-page[b-a1s5n1tdma]::before {
        width: 360px;
        height: 360px;
        opacity: 0.18;
    }

    .auth-page[b-a1s5n1tdma]::after {
        width: 280px;
        height: 280px;
        opacity: 0.18;
    }
}

/* Mobile */
@media (max-width: 480px) {
    .auth-page[b-a1s5n1tdma] {
        align-items: flex-start;
        padding: 2.5rem 1rem 2rem;
    }

    .auth-card[b-a1s5n1tdma] {
        max-width: 100%;
        padding: 1.875rem 1.375rem 1.5rem;
        border-radius: 0.875rem;
    }

    /* Orbs are distracting at small sizes and hurt perf */
    .auth-page[b-a1s5n1tdma]::before,
    .auth-page[b-a1s5n1tdma]::after {
        display: none;
    }

    [b-a1s5n1tdma] h1 {
        font-size: 1.3125rem;
        margin-bottom: 1.5rem;
    }

    [b-a1s5n1tdma] .field input,
    [b-a1s5n1tdma] .field button {
        height: 2.875rem;
        font-size: 1rem;
    }
}


/* ─── Reduced motion ──────────────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
    .auth-card[b-a1s5n1tdma],
    .auth-page[b-a1s5n1tdma],
    .auth-page[b-a1s5n1tdma]::before,
    .auth-page[b-a1s5n1tdma]::after {
        animation: none;
    }

    [b-a1s5n1tdma] .field input,
    [b-a1s5n1tdma] .field button,
    [b-a1s5n1tdma] a {
        transition: none;
    }
}
/* /Layout/Footer.razor.rz.scp.css */
/* Permanently dark (var(--fl-abyss)), regardless of the site's light/dark
   toggle — same reasoning as FeatureSection's dark variant: fixed white/
   translucent-white values below, not the theme-reactive --fl-foreground/
   --fl-background tokens, since those would invert to a DARK button on
   this already-dark background in light mode. */

.fl-footer[b-ihsfruudf7] {
    background: var(--fl-abyss);
    color: #fff;
}

.fl-footer-inner[b-ihsfruudf7] {
    max-width: var(--fl-max-width);
    margin: 0 auto;
    padding: 2.5rem 1.5rem 2rem;
}

/* ─── Contact strip ────────────────────────────────────────────────────── */

.fl-footer-contact[b-ihsfruudf7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    padding: 1.5rem 1.75rem;
    margin-bottom: 2.5rem;
    border-radius: 1.25rem;
    border: 1px solid hsl(0 0% 100% / 0.12);
    background: var(--fl-abyss-light);
}

.fl-footer-contact-info[b-ihsfruudf7] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.fl-footer-contact-label[b-ihsfruudf7] {
    color: hsl(0 0% 100% / 0.45);
}

.fl-footer-contact-phone[b-ihsfruudf7] {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    font-family: var(--fl-font-heading);
    font-weight: 700;
    font-size: 1.35rem;
    color: #fff;
    text-decoration: none;
}

.fl-footer-contact-phone:hover[b-ihsfruudf7] {
    color: var(--fl-primary);
}

[b-ihsfruudf7] .fl-footer-contact-icon {
    width: 1.15rem;
    height: 1.15rem;
    color: var(--fl-primary);
    flex-shrink: 0;
}

.fl-footer-contact-cta[b-ihsfruudf7] {
    display: inline-flex;
    align-items: center;
    background: #fff;
    color: var(--fl-abyss);
}

.fl-footer-contact-cta:hover[b-ihsfruudf7] {
    background: var(--fl-primary);
    color: #fff;
}

[b-ihsfruudf7] .fl-footer-contact-cta-icon {
    width: 1rem;
    height: 1rem;
}

/* ─── Brand + flat link row ────────────────────────────────────────────── */

.fl-footer-row[b-ihsfruudf7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid hsl(0 0% 100% / 0.1);
}

.fl-footer-logo[b-ihsfruudf7] {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    text-decoration: none;
    color: #fff;
    flex-shrink: 0;
}

/* Intrinsic image is 2017x1010 (~2:1) — height-constrained, width follows
   via aspect-ratio. Sized generously (not the small icon+wordmark it
   replaces) since it's now the footer's one piece of brand presence. */
.fl-footer-logo-image[b-ihsfruudf7] {
    height: 6rem;
    width: auto;
    aspect-ratio: 2017 / 1010;
}

.fl-footer-links[b-ihsfruudf7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1.5rem;
}

/* The button variant (an item with ConfirmExternal set, e.g. "Pay My Bill")
   matches the plain links exactly — the only difference is what happens on
   click, not how it looks. */
.fl-footer-links a[b-ihsfruudf7],
.fl-footer-links button[b-ihsfruudf7] {
    font-size: 0.85rem;
    color: hsl(0 0% 100% / 0.65);
    text-decoration: none;
    background: none;
    border: none;
    padding: 0;
    font-family: inherit;
    cursor: pointer;
}

.fl-footer-links a:hover[b-ihsfruudf7],
.fl-footer-links button:hover[b-ihsfruudf7] {
    color: #fff;
}

/* ─── Bottom legal line ────────────────────────────────────────────────── */

.fl-footer-bottom[b-ihsfruudf7] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem 1.5rem;
    padding-top: 1.5rem;
    font-size: 0.8rem;
    color: hsl(0 0% 100% / 0.4);
}

.fl-footer-ids[b-ihsfruudf7] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 1.25rem;
}

.fl-footer-id-label[b-ihsfruudf7] {
    color: hsl(0 0% 100% / 0.65);
}
/* /Layout/MainNavMenu.razor.rz.scp.css */
/* ─── Bar (always visible, all breakpoints — no responsive switch) ───────── */

.fl-nav-bar[b-dzb2uuvxqr] {
    position: fixed;
    inset: 0.75rem 0.75rem auto;
    z-index: 90;
    display: flex;
    flex-direction: column;
    padding: 0.6rem 0.85rem;
    border-radius: 1rem;
    /* Lower opacity + heavier blur than a typical glass panel — this bar
       sits over busy, changing content (page photos, the home hero's
       video), so leaning on blur (which just softens what's behind) rather
       than opacity (which flattens toward a solid color) keeps the "glass"
       effect obvious while still guaranteeing text contrast, since
       --fl-foreground never has to fight a sharp, distinct background. */
    background: hsl(0 0% 100% / 0.55);
    backdrop-filter: blur(28px) saturate(180%);
    -webkit-backdrop-filter: blur(28px) saturate(180%);
    border: 1px solid var(--fl-border);
    box-shadow: 0 8px 40px -12px rgba(15, 23, 42, 0.12);
    transition: background 0.15s ease, border-color 0.15s ease;
}

.fl-dark .fl-nav-bar[b-dzb2uuvxqr] {
    background: hsl(222 40% 10% / 0.55);
}

.fl-nav-bar-row[b-dzb2uuvxqr] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.fl-nav-brand[b-dzb2uuvxqr] {
    display: flex;
    align-items: center;
    text-decoration: none;
    color: var(--fl-foreground);
    flex-shrink: 0;
    margin-left: 1.25rem;
}

/* Intrinsic viewBox is 500x250 (2:1) — height-constrained, width follows via
   aspect-ratio so the browser can reserve layout space before the file
   loads. foundation-laboratory_logo_dark.svg (navy/orange, for light
   backgrounds) vs _light.svg (white, for dark backgrounds) is chosen in the
   markup from ThemeService.IsDarkActive, not here. */
.fl-nav-logo[b-dzb2uuvxqr] {
    height: 4rem;
    width: auto;
    aspect-ratio: 2 / 1;
}

/* ─── Horizontal nav (shown at/above the breakpoint below) ────────────── */

.fl-hnav[b-dzb2uuvxqr] {
    display: none;
    align-items: center;
    justify-content: center;
    /* Fluid gap: shrinks as the window narrows instead of wrapping, then
       hands off to the hamburger once even the tightened gap can't fit.
       Calibrated by actually measuring the flat 9-item list's rendered
       width in the browser (not just guessed from a formula, which
       previously left it overlapping the logo — see the media query below
       for the full story). Re-measured after the standalone Pay My Bill
       button was added to .fl-nav-bar-end: that button (~126px) made the
       RIGHT side (bar-end cluster) the binding constraint instead of the
       logo side — at floor sizing (this value, with .fl-hnav-link's
       font-size also at its floor) the 9 items need ~807px, which only
       clears the now-wider bar-end cluster at ~1254px. The breakpoint
       below (1440px) gives ~186px of breathing room above that hard
       minimum, not just the bare minimum itself. Reaches its ceiling at
       1700px viewport width. */
    gap: clamp(0.5rem, -5.04rem + 6.15vw, 1.5rem);
}

.fl-hnav-item[b-dzb2uuvxqr] {
    display: flex;
    flex-shrink: 0;
}

.fl-hnav-link[b-dzb2uuvxqr] {
    position: relative;
    display: inline-flex;
    align-items: center;
    font-family: var(--fl-font-body);
    /* Fluid text: shrinks over the same range as .fl-hnav's gap above — floor
       raised from 0.7rem to 0.75rem (see the media query below) since 0.7rem
       read as too small once actually measured against real item widths. */
    font-size: clamp(0.75rem, 0.06rem + 0.77vw, 0.875rem);
    font-weight: 500;
    color: var(--fl-foreground);
    text-decoration: none;
    white-space: nowrap;
    background: none;
    border: none;
    cursor: pointer;
    /* Matching top padding keeps this item's box vertically symmetric around
       its own text, so .fl-nav-bar-row's align-items:center lines it up with
       the logo mark instead of sitting a bit high (bottom-only padding would
       otherwise pull the box's — and thus the text's — visual center up by
       half the padding). The underline (::after, bottom:0) is unaffected
       since it's anchored to the box's bottom edge either way. Left/right
       explicitly zeroed — a ConfirmExternal item (e.g. "Pay My Bill") renders
       as a real <button>, and without this the browser's UA stylesheet still
       supplies its own left/right button padding (a's don't get this), which
       nudged just that one item's label out of alignment with its sibling
       links. */
    padding: 0.4rem 0;
    margin: 0;
}

/* The "rolled out" underline: a 2px bar that grows in from the left on hover. */
.fl-hnav-link[b-dzb2uuvxqr]::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    background: var(--fl-primary);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.25s ease;
}

/* :not(.fl-nav-item-soon) — a placeholder item is deliberately
   non-interactive and shouldn't pick up the same hover feedback as a real
   link. fl-nav-current deliberately isn't in this color rule's underline
   counterpart below — the persistent blue color is enough to say "you're
   on this page"; the underline stays a hover-only affordance (still rolls
   out on :hover even for the current page's own link, just not at rest)
   so it doesn't compete with that. */
.fl-hnav-link:hover:not(.fl-nav-item-soon)[b-dzb2uuvxqr],
.fl-hnav-link.fl-nav-current[b-dzb2uuvxqr] {
    color: var(--fl-primary);
}

.fl-hnav-link:hover:not(.fl-nav-item-soon)[b-dzb2uuvxqr]::after {
    transform: scaleX(1);
}

.fl-hnav-link .fl-nav-item-go[b-dzb2uuvxqr] {
    font-size: 0.75rem;
}

.fl-hnav-link:hover .fl-nav-item-go[b-dzb2uuvxqr] {
    opacity: 1;
    transform: translate(0, 0);
}

/* ─── Bar-end cluster: quick links / admin links + hamburger toggle ──── */

.fl-nav-bar-end[b-dzb2uuvxqr] {
    display: flex;
    align-items: center;
    gap: 1rem;
}

/* Standalone Pay My Bill button — was a leaf in the flat SiteNav.Groups
   list (only reachable via the horizontal nav above 1300px, or buried in
   the mobile overlay below it); now it's always visible in the bar itself
   at every viewport width, matching the ask that it "shows in mobile as
   well". Compacts to icon-only under 480px so it doesn't crowd the theme
   toggle/hamburger on narrow phones — aria-label on the button (see the
   markup) keeps it accessible either way. */
.fl-nav-pay-bill-btn[b-dzb2uuvxqr] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    height: 2.5rem;
    padding: 0 1.1rem;
    border-radius: 999px;
    border: none;
    background: var(--fl-primary);
    color: var(--fl-primary-foreground);
    font-family: var(--fl-font-body);
    font-size: 0.8rem;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.15s ease;
}

.fl-nav-pay-bill-btn:hover[b-dzb2uuvxqr] {
    background: var(--fl-accent-warm);
}

[b-dzb2uuvxqr] .fl-nav-pay-bill-btn-icon {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
}

@media (max-width: 480px) {
    .fl-nav-pay-bill-btn[b-dzb2uuvxqr] {
        width: 2.5rem;
        padding: 0;
        justify-content: center;
    }

    .fl-nav-pay-bill-btn-label[b-dzb2uuvxqr] {
        display: none;
    }
}

[b-dzb2uuvxqr] .fl-checkbox {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.65rem;
    border: 1px solid var(--fl-border);
    background: hsl(0 0% 100% / 0.5);
    cursor: pointer;
    flex-shrink: 0;
}

.fl-dark[b-dzb2uuvxqr]  .fl-checkbox {
    background: hsl(0 0% 100% / 0.06);
}

[b-dzb2uuvxqr] .fl-checkbox-indicator {
    position: relative;
    display: block;
    width: 1.1rem;
    height: 2px;
    background: var(--fl-foreground);
    font-size: 0;
    color: transparent;
}

[b-dzb2uuvxqr] .fl-checkbox-indicator::before,
[b-dzb2uuvxqr] .fl-checkbox-indicator::after {
    content: '';
    position: absolute;
    left: 0;
    width: 1.1rem;
    height: 2px;
    background: var(--fl-foreground);
}

[b-dzb2uuvxqr] .fl-checkbox-indicator::before {
    top: -6px;
}

[b-dzb2uuvxqr] .fl-checkbox-indicator::after {
    top: 6px;
}

/* ─── Full-screen index overlay ───────────────────────────────────────── */

.fl-nav-overlay[b-dzb2uuvxqr] {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: flex;
    flex-direction: column;
    background: var(--fl-background);
    overflow-y: auto;
}

.fl-nav-overlay-scan[b-dzb2uuvxqr] {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 2px;
    background: linear-gradient(to right, transparent, var(--fl-primary), transparent);
    pointer-events: none;
}

.fl-nav-overlay-top[b-dzb2uuvxqr] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem 1.5rem;
}

.fl-nav-close[b-dzb2uuvxqr] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.65rem;
    border: 1px solid var(--fl-border);
    background: transparent;
    color: var(--fl-foreground);
    font-size: 1rem;
    cursor: pointer;
}

.fl-nav-close:hover[b-dzb2uuvxqr] {
    background: var(--fl-secondary);
}

.fl-nav-overlay-body[b-dzb2uuvxqr] {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    max-width: var(--fl-max-width);
    width: 100%;
    margin: 0 auto;
    padding: 1rem 1.5rem 2rem;
}

/* Just a layout wrapper now — TopNavMenu/AdminNavMenu style their own links
   (a generic override here previously beat their scoped styles on
   specificity; removed rather than fought). */
.fl-nav-utility[b-dzb2uuvxqr] {
    display: flex;
    align-items: center;
}

.fl-nav-list[b-dzb2uuvxqr] {
    display: flex;
    flex-direction: column;
}

.fl-nav-item[b-dzb2uuvxqr] {
    border-bottom: 1px solid var(--fl-border);
}

.fl-nav-item-row[b-dzb2uuvxqr] {
    display: flex;
    align-items: baseline;
    gap: 1rem;
    padding: 1rem 0;
}

.fl-nav-item-index[b-dzb2uuvxqr] {
    width: 2rem;
    flex-shrink: 0;
    color: var(--fl-accent-warm);
}

.fl-nav-item-label[b-dzb2uuvxqr] {
    flex: 1;
    font-family: var(--fl-font-heading);
    font-weight: 600;
    letter-spacing: -0.01em;
    font-size: clamp(1.5rem, 4.5vw, 2.75rem);
    color: var(--fl-foreground);
    text-decoration: none;
    display: inline-flex;
    align-items: baseline;
    gap: 0.6rem;
    background: none;
    border: none;
    /* Same fix as .fl-hnav-link above — "Pay My Bill" is a real <button>
       here too (the mobile overlay's ConfirmExternal item), and without an
       explicit reset the UA stylesheet's own button padding/margin nudged
       just that label out of alignment with its sibling <a> items. */
    padding: 0;
    margin: 0;
    cursor: pointer;
    text-align: left;
}

a.fl-nav-item-label:hover[b-dzb2uuvxqr],
button.fl-nav-item-label:hover[b-dzb2uuvxqr],
.fl-nav-item-label.fl-nav-current[b-dzb2uuvxqr] {
    color: var(--fl-primary);
}

.fl-nav-item-go[b-dzb2uuvxqr] {
    font-size: 1rem;
    color: var(--fl-primary);
    opacity: 0;
    transform: translate(-4px, 4px);
    transition: opacity 0.2s, transform 0.2s;
}

a.fl-nav-item-label:hover .fl-nav-item-go[b-dzb2uuvxqr],
button.fl-nav-item-label:hover .fl-nav-item-go[b-dzb2uuvxqr] {
    opacity: 1;
    transform: translate(0, 0);
}

/* A page that doesn't exist yet keeps the same color/size as a real link —
   only non-clickable (no href to go to), not visually called out as
   "disabled." */
.fl-nav-item-soon[b-dzb2uuvxqr] {
    cursor: default;
}

.fl-nav-overlay-bottom[b-dzb2uuvxqr] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: space-between;
    border-top: 1px solid var(--fl-border);
    padding: 1rem 1.5rem;
}

/* ─── Responsive split: horizontal nav + no hamburger at/above this width,
   hamburger + full-screen index below it. Pure CSS — no JS/viewport
   detection, so there's no state to keep in sync on resize. ────────────── */

@media (min-width: 1440px) {
    /* The horizontal nav is taken out of flow and centered on the bar's own
       midpoint (not on the leftover space between brand and bar-end) — a
       grid/flex split of the row only centers it when the brand mark and
       the utility/hamburger cluster happen to be equal width, which they
       aren't (the cluster is empty on most pages), so that approach drifted
       off-center by half the difference. Brand and bar-end stay in normal
       flow, pinned to the row's edges by the base .fl-nav-bar-row's
       space-between (still in effect here — only two flow children remain
       once .fl-hnav leaves flow). Below this breakpoint .fl-hnav is
       display:none entirely, so this rule is inert there.

       1440px, not a rounder number, because the math doesn't forgive
       rounding here: with the nav centered on the bar's own midpoint (not
       on the leftover space next to either edge), .fl-hnav only has half
       the bar width minus whichever of the brand mark or the bar-end
       cluster is wider. This used to be 1300px, calibrated when the brand
       mark (~154px) was the wider, binding side. Adding the standalone Pay
       My Bill button to .fl-nav-bar-end (see that button's own comment)
       made the bar-end cluster (~198px, brand+padding included) the wider
       side instead — measured directly in the browser the same way as
       before (forcing .fl-hnav's gap/font-size to their floor values and
       reading scrollWidth): the flat 9-item list needs ~807px even at its
       floor size, which only clears the now-wider bar-end cluster at
       ~1254px. 1440px restores the same ~186px margin the original
       calibration had, instead of the ~46px margin adding that button
       left behind at 1300px. */
    .fl-hnav[b-dzb2uuvxqr] {
        display: flex;
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
    }

    [b-dzb2uuvxqr] .fl-checkbox {
        display: none;
    }

    /* Safety net: if _isOpen was left true from a narrow viewport (e.g. the
       window was resized while the overlay was open), don't show a
       full-screen overlay on a layout that no longer has a way to close it
       via the (now-hidden) hamburger toggle. */
    .fl-nav-overlay[b-dzb2uuvxqr] {
        display: none;
    }
}
/* /Layout/ThemeToggle.razor.rz.scp.css */
.fl-theme-toggle[b-fce2m6hdn1] {
    position: relative;
    display: inline-flex;
}

.fl-theme-toggle-btn[b-fce2m6hdn1] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.65rem;
    border: 1px solid var(--fl-border);
    background: hsl(0 0% 100% / 0.5);
    color: var(--fl-foreground);
    cursor: pointer;
    flex-shrink: 0;
    transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}

.fl-dark .fl-theme-toggle-btn[b-fce2m6hdn1] {
    background: hsl(0 0% 100% / 0.06);
}

.fl-theme-toggle-btn:hover[b-fce2m6hdn1] {
    color: var(--fl-primary);
    border-color: var(--fl-primary);
}

.fl-theme-toggle-icon[b-fce2m6hdn1] {
    width: 1.15rem;
    height: 1.15rem;
}

/* Solid, theme-reactive card background — NOT backdrop-filter. This menu's
   button sits inside .fl-nav-bar, which already has its own backdrop-filter
   (the nav's glass effect), and nesting a second backdrop-filter inside an
   ancestor that also has one doesn't reliably composite: verified live,
   the menu's own blur(24px) was present in computed style but the page
   text behind it still rendered through completely sharp/unblurred — a
   real nested-backdrop-filter rendering bug, not just low contrast. It
   happened to look fine over the homepage's video (probably a separately
   composited layer) and broke over everywhere else's plain page content.
   A solid var(--fl-card) background sidesteps the bug entirely and matches
   how every other floating panel on the site (the mobile nav overlay,
   LeaveSiteModal) is already fully opaque rather than glassy. */
.fl-theme-menu[b-fce2m6hdn1] {
    position: absolute;
    top: calc(100% + 0.6rem);
    right: 0;
    z-index: 95;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 11.5rem;
    padding: 0.4rem;
    border-radius: 1rem;
    border: 1px solid var(--fl-border);
    background: var(--fl-card);
    box-shadow: 0 8px 40px -12px rgba(15, 23, 42, 0.18);
    animation: fl-theme-menu-in-b-fce2m6hdn1 0.15s ease;
}

@keyframes fl-theme-menu-in-b-fce2m6hdn1 {
    from {
        opacity: 0;
        transform: translateY(-4px) scale(0.97);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.fl-theme-option[b-fce2m6hdn1] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    width: 100%;
    padding: 0.6rem 0.7rem;
    border: none;
    border-radius: 0.6rem;
    background: none;
    color: var(--fl-foreground);
    font-family: var(--fl-font-body);
    font-size: 0.875rem;
    font-weight: 500;
    text-align: left;
    cursor: pointer;
}

.fl-theme-option:hover[b-fce2m6hdn1] {
    background: var(--fl-secondary);
}

.fl-theme-option--selected[b-fce2m6hdn1] {
    color: var(--fl-primary);
    background: var(--fl-secondary);
}

.fl-theme-option-icon[b-fce2m6hdn1] {
    width: 1.1rem;
    height: 1.1rem;
    flex-shrink: 0;
}
/* /Pages/About.razor.rz.scp.css */
/* Pillars, the technology showcase, and the section rhythm itself now come
   from the reusable Components/* section components — this file only has
   the Credentials section, which is specific enough (a grid of bare logo
   placeholders, no title/description) that it isn't worth its own
   component yet. */

.fl-about-heading[b-ptxcezm1su] {
    margin: 1.25rem 0 0;
    max-width: 40rem;
    font-size: clamp(1.9rem, 4vw, 2.75rem);
    color: var(--fl-foreground);
}

.fl-about-lede[b-ptxcezm1su] {
    margin: 1.25rem 0 0;
    max-width: 42rem;
    font-size: 1.1rem;
    line-height: 1.6;
    color: var(--fl-muted-foreground);
}

.fl-about-cert-grid[b-ptxcezm1su] {
    margin-top: 3rem;
    display: grid;
    gap: 1.25rem;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

/* Fixed white background, not the theme-reactive --fl-background token —
   3 of these 5 logos (CAP, CMS, CDPH) are flat source files with an opaque
   white background already baked in, not transparent, so a dark-mode card
   would show those three as a stark white box while the other two
   (DHCS, HHS — genuinely transparent) blended into the dark card. A fixed
   white plate for all five is the standard treatment for third-party
   accreditation/partner logos and keeps the row visually consistent in
   both themes instead of just for these two. */
.fl-about-cert-card[b-ptxcezm1su] {
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 1.25rem;
    border: 1px solid var(--fl-border);
    background: #fff;
    padding: 1.5rem;
    aspect-ratio: 3 / 2;
}

.fl-about-cert-logo[b-ptxcezm1su] {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}
/* /Pages/AdminsEdit.razor.rz.scp.css */
h2[b-j1v15l8bzv] {
    margin-top: 2rem;
}

.hint[b-j1v15l8bzv] {
    font-size: 0.85rem;
    color: var(--fl-muted-foreground);
}

.revoked td[b-j1v15l8bzv] {
    color: var(--fl-muted-foreground);
}

.actions[b-j1v15l8bzv] {
    white-space: nowrap;
}

.add[b-j1v15l8bzv] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0 1rem;
}

.created[b-j1v15l8bzv] {
    margin: 0 0 1.5rem;
    padding: 1rem 1.25rem;
    border: 1px solid var(--fl-accent);
    border-radius: 0.75rem;
    background: hsl(160 84% 39% / 0.08);
    max-width: 40rem;
}

.password[b-j1v15l8bzv] {
    font-family: var(--fl-font-mono);
    font-size: 1.1rem;
    user-select: all;
}

.error[b-j1v15l8bzv] {
    color: var(--fl-destructive);
}
/* /Pages/Blog.razor.rz.scp.css */
.fl-blog-body[b-grvlgw27cl] {
    background: var(--fl-background);
    padding: 0 1.5rem clamp(4rem, 10vw, 7rem);
}

.fl-blog-body-inner[b-grvlgw27cl] {
    max-width: var(--fl-max-width);
    margin: 0 auto;
}

.fl-blog-status[b-grvlgw27cl] {
    color: var(--fl-muted-foreground);
}

/* Accent pill for the date — warm-toned so it reads distinctly from the
   blue "code" badges used elsewhere (PSC/CMP), matching the editorial feel
   of a "Newsroom" section. */
.fl-blog-date-badge[b-grvlgw27cl] {
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.75rem;
    border-radius: 999px;
    background: hsl(28 95% 53% / 0.12);
    color: var(--fl-accent-warm);
    font-family: var(--fl-font-mono);
    font-size: 0.7rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.fl-blog-date-badge--sm[b-grvlgw27cl] {
    font-size: 0.65rem;
    padding: 0.25rem 0.6rem;
}

/* ─── Featured card (most recent post) ────────────────────────────────── */

.fl-blog-featured[b-grvlgw27cl] {
    display: grid;
    grid-template-columns: 1fr;
    border-radius: 1.5rem;
    border: 1px solid var(--fl-border);
    background: var(--fl-card);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: border-color 0.2s ease, transform 0.2s ease;
}

.fl-blog-featured:hover[b-grvlgw27cl] {
    border-color: var(--fl-primary);
    transform: translateY(-2px);
}

.fl-blog-featured-image[b-grvlgw27cl] {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 16rem;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

[b-grvlgw27cl] .fl-blog-featured .fl-placeholder {
    border-radius: 0;
    border: none;
}

.fl-blog-featured-body[b-grvlgw27cl] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 2rem;
}

.fl-blog-featured-title[b-grvlgw27cl] {
    margin: 0;
    font-size: clamp(1.6rem, 3.2vw, 2.35rem);
    color: var(--fl-foreground);
}

.fl-blog-featured-excerpt[b-grvlgw27cl] {
    margin: 0;
    max-width: 42rem;
    font-size: 1.05rem;
    line-height: 1.65;
    color: var(--fl-muted-foreground);
}

.fl-blog-featured-cta[b-grvlgw27cl] {
    margin-top: 0.5rem;
    border: none;
}

[b-grvlgw27cl] .fl-blog-cta-icon {
    width: 1rem;
    height: 1rem;
}

@media (min-width: 800px) {
    .fl-blog-featured[b-grvlgw27cl] {
        grid-template-columns: 1.1fr 1fr;
    }

    .fl-blog-featured-image[b-grvlgw27cl] {
        min-height: 100%;
    }

    .fl-blog-featured-body[b-grvlgw27cl] {
        padding: 2.5rem;
    }
}

/* ─── Vertical list of horizontal row cards ───────────────────────────── */

.fl-blog-list[b-grvlgw27cl] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 1.5rem;
}

.fl-blog-row[b-grvlgw27cl] {
    display: flex;
    gap: 1.25rem;
    border-radius: 1.25rem;
    border: 1px solid var(--fl-border);
    background: var(--fl-card);
    padding: 0.85rem;
    text-decoration: none;
    color: inherit;
    transition: border-color 0.2s ease, transform 0.2s ease;
}

.fl-blog-row:hover[b-grvlgw27cl] {
    border-color: var(--fl-primary);
    transform: translateY(-2px);
}

.fl-blog-row-thumb[b-grvlgw27cl] {
    flex-shrink: 0;
    width: clamp(5.5rem, 18vw, 9rem);
    aspect-ratio: 1 / 1;
    border-radius: 0.85rem;
    overflow: hidden;
}

.fl-blog-row-thumb img[b-grvlgw27cl] {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

[b-grvlgw27cl] .fl-blog-row-thumb .fl-placeholder {
    border-radius: 0.85rem;
    border: none;
}

.fl-blog-row-body[b-grvlgw27cl] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
    min-width: 0;
    padding: 0.35rem 0.35rem 0.35rem 0;
}

.fl-blog-row-title[b-grvlgw27cl] {
    margin: 0;
    font-family: var(--fl-font-heading);
    font-weight: 700;
    font-size: 1.05rem;
    line-height: 1.35;
    color: var(--fl-foreground);
}

/* The "fading to a read more button" effect: the excerpt is hard-clamped
   to 2 lines (so row heights stay predictable across a whole list), then
   .fl-blog-row-fade overlays a gradient from transparent to the row's own
   background over the last few pixels — reads as the text trailing off
   rather than being bluntly cut, without needing to know exactly how many
   characters fit on the second line. */
.fl-blog-row-excerpt-wrap[b-grvlgw27cl] {
    position: relative;
    max-height: 2.8rem;
    overflow: hidden;
}

.fl-blog-row-excerpt[b-grvlgw27cl] {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.5;
    color: var(--fl-muted-foreground);
}

.fl-blog-row-fade[b-grvlgw27cl] {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1.1rem;
    background: linear-gradient(to bottom, transparent, var(--fl-card));
    pointer-events: none;
}

.fl-blog-row-cta[b-grvlgw27cl] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.15rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--fl-primary);
}

@media (min-width: 600px) {
    .fl-blog-row[b-grvlgw27cl] {
        padding: 1rem;
        gap: 1.5rem;
    }

    .fl-blog-row-excerpt-wrap[b-grvlgw27cl] {
        max-height: 3.2rem;
    }

    .fl-blog-row-excerpt[b-grvlgw27cl] {
        font-size: 0.92rem;
    }
}
/* /Pages/BlogEdit.razor.rz.scp.css */
.btn-featured[b-03ff9kchry] {
    padding: 0.1rem 0.4rem;
    border: none;
    background: none;
    font-size: 1.3rem;
    line-height: 1;
    color: var(--fl-muted-foreground);
    cursor: pointer;
}

.btn-featured:hover[b-03ff9kchry] {
    color: var(--fl-accent-warm);
}

.btn-featured.is-featured[b-03ff9kchry] {
    color: var(--fl-accent-warm);
}
/* /Pages/BlogPostView.razor.rz.scp.css */
.fl-post[b-i8req6iw5b] {
    background: var(--fl-background);
    padding: 3rem 1.5rem clamp(4rem, 10vw, 7rem);
}

/* Wider than a plain single-column reading width — room for the article's
   own column (still capped to a comfortable line-length below, via
   .fl-post-main's own max-width) plus the aside beside it. */
.fl-post-layout[b-i8req6iw5b] {
    max-width: 72rem;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
}

@media (min-width: 960px) {
    .fl-post-layout[b-i8req6iw5b] {
        grid-template-columns: minmax(0, 1fr) 20rem;
        align-items: start;
    }
}

.fl-post-main[b-i8req6iw5b] {
    max-width: 46rem;
}

.fl-post-back[b-i8req6iw5b] {
    /* Was inline-flex — an inline-level box, so .fl-post-date-badge right
       after it (also inline-flex) sat on the SAME line rather than
       stacking, since nothing forced a line break between two short
       inline elements. display:flex is block-level outside, which alone
       fixes that. */
    display: flex;
    width: fit-content;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--fl-muted-foreground);
    text-decoration: none;
}

.fl-post-back:hover[b-i8req6iw5b] {
    color: var(--fl-primary);
}

.fl-post-status[b-i8req6iw5b] {
    margin-top: 1.5rem;
    color: var(--fl-muted-foreground);
}

.fl-post-date-badge[b-i8req6iw5b] {
    display: inline-flex;
    align-items: center;
    margin-top: 2.5rem;
    padding: 0.3rem 0.75rem;
    border-radius: 999px;
    background: hsl(28 95% 53% / 0.12);
    color: var(--fl-accent-warm);
    font-family: var(--fl-font-mono);
    font-size: 0.7rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.fl-post-title[b-i8req6iw5b] {
    margin: 1rem 0 0;
    font-size: clamp(2rem, 5vw, 3.25rem);
    line-height: 1.1;
    color: var(--fl-foreground);
}

.fl-post-author[b-i8req6iw5b] {
    margin: 0.75rem 0 0;
    font-size: 0.9rem;
    color: var(--fl-muted-foreground);
}

.fl-post-image[b-i8req6iw5b] {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    margin-top: 2rem;
    border-radius: 1.25rem;
    border: 1px solid var(--fl-border);
}

/* Descendant selectors, not individual component markup — each rich-text
   block is arbitrary HTML from the Quill editor (Blazored.TextEditor),
   rendered as a MarkupString inside .fl-rich-text (see BlogSectionsView), so
   this is the only way to style it without touching how posts are authored.
   Scoped to .fl-rich-text so image/gallery/file blocks keep their own styles. */
.fl-post-content[b-i8req6iw5b] {
    margin-top: 2.5rem;
    font-size: 1.08rem;
    line-height: 1.75;
    color: var(--fl-foreground);
}

.fl-post-content[b-i8req6iw5b]  .fl-rich-text p {
    margin: 0 0 1.25em;
}

.fl-post-content[b-i8req6iw5b]  .fl-rich-text h1,
.fl-post-content[b-i8req6iw5b]  .fl-rich-text h2,
.fl-post-content[b-i8req6iw5b]  .fl-rich-text h3,
.fl-post-content[b-i8req6iw5b]  .fl-rich-text h4 {
    margin: 2em 0 0.75em;
    font-family: var(--fl-font-heading);
    font-weight: 700;
    line-height: 1.25;
    color: var(--fl-foreground);
}

.fl-post-content[b-i8req6iw5b]  .fl-rich-text h1 {
    font-size: 1.75rem;
}

.fl-post-content[b-i8req6iw5b]  .fl-rich-text h2 {
    font-size: 1.5rem;
}

.fl-post-content[b-i8req6iw5b]  .fl-rich-text h3 {
    font-size: 1.25rem;
}

.fl-post-content[b-i8req6iw5b]  .fl-rich-text a {
    color: var(--fl-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.fl-post-content[b-i8req6iw5b]  .fl-rich-text a:hover {
    color: var(--fl-accent-warm);
}

.fl-post-content[b-i8req6iw5b]  .fl-rich-text strong {
    font-weight: 700;
    color: var(--fl-foreground);
}

.fl-post-content[b-i8req6iw5b]  .fl-rich-text em {
    font-style: italic;
}

.fl-post-content[b-i8req6iw5b]  .fl-rich-text ul,
.fl-post-content[b-i8req6iw5b]  .fl-rich-text ol {
    margin: 0 0 1.25em;
    padding-left: 1.5em;
}

.fl-post-content[b-i8req6iw5b]  .fl-rich-text li {
    margin-bottom: 0.5em;
}

.fl-post-content[b-i8req6iw5b]  .fl-rich-text blockquote {
    margin: 1.5em 0;
    padding: 0.25em 0 0.25em 1.25em;
    border-left: 3px solid var(--fl-primary);
    color: var(--fl-muted-foreground);
    font-style: italic;
}

.fl-post-content[b-i8req6iw5b]  .fl-rich-text img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 1.5em 0;
    border-radius: 1rem;
    border: 1px solid var(--fl-border);
}

.fl-post-content[b-i8req6iw5b]  .fl-rich-text hr {
    margin: 2.5em 0;
    border: none;
    border-top: 1px solid var(--fl-border);
}

/* ─── "More From Foundation Laboratory" aside ─────────────────────────── */

.fl-post-aside[b-i8req6iw5b] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

@media (min-width: 960px) {
    /* Stays in view while scrolling a long article. top:6rem (96px) was
       measured live to land right at the floating nav bar's own bottom
       edge (97px) — the aside was touching it with zero gap. 7.5rem
       (120px) leaves a real ~23px gap below the bar instead.
       will-change:transform promotes this to its own compositor layer —
       without it, a sticky element can visibly lag a frame or two behind
       fast/inertial mouse-wheel or trackpad scrolling (the browser
       repaints its position on the main thread instead of just moving an
       independent GPU layer), which reads as "drifting" even though the
       underlying sticky math is exact — confirmed via a scripted scroll
       test that showed zero drift frame-to-frame. This has no effect on
       the sticky positioning itself, only on how smoothly the browser
       renders it during a real scroll. */
    .fl-post-aside[b-i8req6iw5b] {
        position: sticky;
        top: 7.5rem;
        /* Closes the "catch-up" gap between the aside's natural position in
           the grid row (136px, measured live) and its sticky pin point
           above (120px), so without this the aside visibly scrolls up 16px
           before engaging. Pulling it up by that same amount means it's
           already sitting at the pin point on load, so sticky engages
           immediately with nothing left to travel. This is a real,
           currently-accurate measurement, not a rule of thumb — if
           .fl-post's padding or the nav bar's height ever
           change, re-measure (getBoundingClientRect().top at scrollY 0
           vs. the sticky `top` value) rather than assume it still holds. */
        margin-top: -1rem;
        will-change: transform;
    }
}

.fl-post-aside-label[b-i8req6iw5b] {
    color: var(--fl-muted-foreground);
}

.fl-post-aside-list[b-i8req6iw5b] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.fl-post-aside-item[b-i8req6iw5b] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem;
    border-radius: 0.85rem;
    text-decoration: none;
    color: inherit;
    transition: background 0.15s ease;
}

.fl-post-aside-item:hover[b-i8req6iw5b] {
    background: var(--fl-secondary);
}

.fl-post-aside-thumb[b-i8req6iw5b] {
    flex-shrink: 0;
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 0.6rem;
    overflow: hidden;
}

.fl-post-aside-thumb img[b-i8req6iw5b] {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

[b-i8req6iw5b] .fl-post-aside-thumb .fl-placeholder {
    border-radius: 0.6rem;
    border: none;
}

.fl-post-aside-item-body[b-i8req6iw5b] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.fl-post-aside-item-date[b-i8req6iw5b] {
    font-family: var(--fl-font-mono);
    font-size: 0.65rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--fl-muted-foreground);
}

.fl-post-aside-item-title[b-i8req6iw5b] {
    font-size: 0.85rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--fl-foreground);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
/* /Pages/Contact.razor.rz.scp.css */
.fl-contact-body[b-r616y1xba6] {
    background: var(--fl-background);
    padding: 0 1.5rem clamp(4rem, 10vw, 7rem);
}

.fl-contact-body-inner[b-r616y1xba6] {
    max-width: var(--fl-max-width);
    margin: 0 auto;
}
/* /Pages/ContactEdit.razor.rz.scp.css */
h2[b-l133ke3hbz] {
    margin-top: 2rem;
}

.hint[b-l133ke3hbz] {
    margin-top: -0.25rem;
    font-size: 0.85rem;
    color: var(--fl-muted-foreground);
}

td[b-l133ke3hbz] {
    vertical-align: middle;
}

.key[b-l133ke3hbz] {
    width: 4rem;
}

.key-input[b-l133ke3hbz] {
    width: 4rem;
}

.ext-input[b-l133ke3hbz] {
    width: 7rem;
}

.order[b-l133ke3hbz],
.actions[b-l133ke3hbz] {
    white-space: nowrap;
}

.order button:disabled[b-l133ke3hbz] {
    opacity: 0.35;
}

.add-row td[b-l133ke3hbz] {
    border-top: 2px solid var(--fl-border);
    padding-top: 0.6rem;
}

.error[b-l133ke3hbz] {
    color: var(--fl-destructive);
}
/* /Pages/Fqhc.razor.rz.scp.css */
/* The old bespoke hero (marquee, gradient image frame, pills), the
   FeatureSection/ProofPoints dark-abyss content sections, and the
   placeholder-contact CTA card are all gone now that this page is built on
   the same components as About/Locations/ManagedCarePartners/
   ReferenceLabServices — nothing here needs page-specific styling beyond
   this one small bit (the closing CTA is a SplitShowcase now, which needs
   no page-specific CSS of its own). */

.fl-fqhc-badges[b-yz0d6bmy32] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-top: 1.5rem;
}

.fl-fqhc-badge[b-yz0d6bmy32] {
    padding: 0.4rem 0.85rem;
    border-radius: 999px;
    border: 1px solid var(--fl-border);
    background: var(--fl-card);
}
/* /Pages/Home.razor.rz.scp.css */
/* Everything structural (hero, stats, section shells, split showcases,
   card grids, teaser band) now lives in the reusable Components/* section
   components — this file only has the bits that are genuinely specific to
   Home's own content, passed in as ChildContent. */

.fl-home-list[b-ah1yy9kw3h] {
    margin: 1.5rem 0 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    font-size: 0.9rem;
}

.fl-home-list li[b-ah1yy9kw3h] {
    position: relative;
    padding-left: 1.1rem;
}

.fl-home-list li[b-ah1yy9kw3h]::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.5em;
    width: 0.4rem;
    height: 0.4rem;
    border-radius: 999px;
    background: var(--fl-primary);
}

.fl-home-tiles[b-ah1yy9kw3h] {
    margin-top: 1.75rem;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
}

.fl-home-tile[b-ah1yy9kw3h] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    border-radius: 0.75rem;
    border: 1px solid var(--fl-border);
    background: var(--fl-background);
    padding: 0.9rem;
    font-size: 0.85rem;
    font-weight: 500;
}

/* Each tile gets its own token-driven accent (theme-adaptive, so this stays
   readable in dark mode without a separate override) rather than one repeated
   color, so the row reads as four distinct capabilities at a glance. */
[b-ah1yy9kw3h] .fl-home-tile-icon {
    width: 1.35rem;
    height: 1.35rem;
    flex-shrink: 0;
}

[b-ah1yy9kw3h] .fl-home-tile-icon--destructive {
    color: var(--fl-destructive);
}

[b-ah1yy9kw3h] .fl-home-tile-icon--warm {
    color: var(--fl-accent-warm);
}

[b-ah1yy9kw3h] .fl-home-tile-icon--accent {
    color: var(--fl-accent);
}

[b-ah1yy9kw3h] .fl-home-tile-icon--primary {
    color: var(--fl-primary);
}
/* /Pages/LocationEditor.razor.rz.scp.css */
fieldset[b-bqmf5nqx1s] {
    margin: 0 0 1.25rem;
    padding: 0.75rem 1rem 1rem;
    border: 1px solid var(--fl-border);
    border-radius: 0.75rem;
    max-width: 44rem;
}

legend[b-bqmf5nqx1s] {
    padding: 0 0.4rem;
    font-weight: 600;
}

.address-line[b-bqmf5nqx1s] {
    display: flex;
    flex-wrap: wrap;
    gap: 0 1rem;
}

.short[b-bqmf5nqx1s] {
    width: 7rem;
}

.state[b-bqmf5nqx1s] {
    width: 3.5rem;
    text-transform: uppercase;
}

.hours th[b-bqmf5nqx1s] {
    padding-right: 1rem;
    text-align: left;
    font-weight: 500;
}

.hours input[b-bqmf5nqx1s] {
    width: 14rem;
}

.hours td[b-bqmf5nqx1s] {
    padding: 0.15rem 0.4rem 0.15rem 0;
}

small[b-bqmf5nqx1s] {
    color: var(--fl-muted-foreground);
}

.error[b-bqmf5nqx1s] {
    color: var(--fl-destructive);
}
/* /Pages/Locations.razor.rz.scp.css */
.fl-locations-body[b-5bjicluhzp] {
    background: var(--fl-background);
    padding: 0 1.5rem clamp(4rem, 10vw, 7rem);
}

.fl-locations-body-inner[b-5bjicluhzp] {
    max-width: var(--fl-max-width);
    margin: 0 auto;
}
/* /Pages/LocationsEdit.razor.rz.scp.css */
td[b-jkvb5w1yyj] {
    vertical-align: top;
}

.filters[b-jkvb5w1yyj] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.filters input[b-jkvb5w1yyj] {
    min-width: 18rem;
}

.count[b-jkvb5w1yyj],
.meta[b-jkvb5w1yyj] {
    font-size: 0.85rem;
    color: var(--fl-muted-foreground);
}

.meta[b-jkvb5w1yyj] {
    margin-top: 0.15rem;
}

.badge[b-jkvb5w1yyj] {
    margin-left: 0.35rem;
    padding: 0.05rem 0.45rem;
    border-radius: 999px;
    background: hsl(28 95% 53% / 0.15);
    color: var(--fl-accent-warm);
    font-size: 0.72rem;
    font-weight: 600;
}

.missing[b-jkvb5w1yyj] {
    font-size: 0.85rem;
    color: var(--fl-accent-warm);
}

.nowrap[b-jkvb5w1yyj] {
    white-space: nowrap;
}
/* /Pages/Providers.razor.rz.scp.css */
/* ─── Login section ────────────────────────────────────────────────────── */

.fl-providers-login[b-4wgtcub910] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    align-items: start;
}

.fl-providers-login-btn[b-4wgtcub910] {
    margin-top: 1.75rem;
    border: none;
}

[b-4wgtcub910] .fl-providers-login-btn-icon {
    width: 1.1rem;
    height: 1.1rem;
}

.fl-providers-login-card[b-4wgtcub910] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1.75rem;
    border-radius: 1.25rem;
    border: 1px solid var(--fl-border);
    background: var(--fl-secondary);
}

[b-4wgtcub910] .fl-providers-login-card-icon {
    width: 2rem;
    height: 2rem;
    color: var(--fl-primary);
}

.fl-providers-login-card-text[b-4wgtcub910] {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.5;
    color: var(--fl-muted-foreground);
}

/* ─── Resources ─────────────────────────────────────────────────────────── */

.fl-providers-resources-grid[b-4wgtcub910] {
    margin-top: 2rem;
}

@media (min-width: 720px) {
    .fl-providers-login[b-4wgtcub910] {
        grid-template-columns: 1.4fr 1fr;
    }
}
/* /Pages/ResourceEditor.razor.rz.scp.css */
.current[b-p17pgn11ur] {
    margin: 0 0 0.5rem;
}

.error[b-p17pgn11ur] {
    color: var(--fl-destructive);
}
/* /Pages/ResourcesEdit.razor.rz.scp.css */
td[b-pwfbca8uvz] {
    vertical-align: top;
}

.order[b-pwfbca8uvz] {
    white-space: nowrap;
}

.order button:disabled[b-pwfbca8uvz] {
    opacity: 0.35;
}

.description[b-pwfbca8uvz],
.meta[b-pwfbca8uvz] {
    margin-top: 0.2rem;
    font-size: 0.85rem;
    color: var(--fl-muted-foreground);
}

.description[b-pwfbca8uvz] {
    max-width: 32rem;
}

.missing[b-pwfbca8uvz] {
    color: var(--fl-accent-warm);
}

.actions[b-pwfbca8uvz] {
    white-space: nowrap;
}

.error[b-pwfbca8uvz] {
    color: var(--fl-destructive);
}
/* /Pages/SettingsEdit.razor.rz.scp.css */
.error[b-bre5wjarmb] {
    color: var(--fl-destructive);
}

.saved[b-bre5wjarmb] {
    color: var(--fl-accent);
}

small[b-bre5wjarmb] {
    color: var(--fl-muted-foreground);
}
/* /Pages/TestEditor.razor.rz.scp.css */
.error[b-2fgaik7jle] {
    color: var(--fl-destructive);
}
/* /Pages/Tests.razor.rz.scp.css */
.fl-tests-body[b-itpmoyqx2c] {
    background: var(--fl-background);
    padding: 0 1.5rem clamp(4rem, 10vw, 7rem);
}

.fl-tests-body-inner[b-itpmoyqx2c] {
    max-width: var(--fl-max-width);
    margin: 0 auto;
}
/* /Pages/TestsEdit.razor.rz.scp.css */
.filters[b-nxl85s23xh] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.filters input[b-nxl85s23xh] {
    min-width: 16rem;
}

.count[b-nxl85s23xh] {
    font-size: 0.85rem;
    color: var(--fl-muted-foreground);
}

.actions[b-nxl85s23xh] {
    white-space: nowrap;
}
