/* /Components/Layout/MainLayout.razor.rz.scp.css */
.ke-shell[b-mu30j7vp2l] {
    --ke-blue-950: #071a42;
    --ke-blue-900: #0b2a63;
    --ke-blue-800: #123d84;
    --ke-blue-700: #1d5fb8;
    --ke-blue-600: #2563eb;
    --ke-bg: #eef5ff;
    --ke-panel: #ffffff;
    --ke-border: #d4e4f8;
    min-height: 100vh;
    overflow-x: hidden;
    overflow-y: visible;
    background: var(--ke-bg);
    color: #0b1f38;
}

.ke-shell-topnav[b-mu30j7vp2l] {
    display: flex;
    flex-direction: column;
    overflow: visible;
}

.ke-global-header[b-mu30j7vp2l] {
    position: sticky;
    top: 0;
    z-index: 4000;
    overflow: visible;
    min-height: 58px;
    border-bottom: 1px solid rgba(255, 255, 255, .18);
    background: linear-gradient(90deg, var(--ke-blue-950) 0%, var(--ke-blue-900) 50%, var(--ke-blue-800) 100%);
    box-shadow: 0 10px 22px rgba(6, 24, 63, .22);
}

.ke-header-inner[b-mu30j7vp2l] {
    min-height: 58px;
    display: grid;
    grid-template-columns: minmax(160px, 210px) minmax(0, 1fr) max-content;
    align-items: center;
    gap: .72rem;
    overflow: visible;
    padding: 0 .78rem;
}

.ke-brand-link[b-mu30j7vp2l] {
    min-width: 0;
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    color: #fff;
    text-decoration: none;
    overflow: hidden;
}

.ke-brand-link:hover[b-mu30j7vp2l] { color: #fff; text-decoration: none; }

.ke-brand-mark[b-mu30j7vp2l] {
    width: 35px;
    height: 35px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 12px;
    background: linear-gradient(135deg, #60a5fa 0%, #22d3ee 100%);
    color: #041538;
    font-size: 1.05rem;
    font-weight: 950;
    box-shadow: 0 10px 24px rgba(56, 189, 248, .28);
}

.ke-brand-text[b-mu30j7vp2l] {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.ke-brand-text strong[b-mu30j7vp2l] {
    overflow: hidden;
    color: #fff;
    font-size: 1rem;
    line-height: 1.05;
    letter-spacing: .01em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ke-brand-text small[b-mu30j7vp2l] {
    margin-top: .15rem;
    overflow: hidden;
    color: rgba(229, 244, 255, .78);
    font-size: .66rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ke-main[b-mu30j7vp2l] {
    min-width: 0;
    flex: 1 1 auto;
}

.ke-content[b-mu30j7vp2l] {
    width: 100%;
    min-width: 0;
    padding: .72rem .85rem 1.2rem;
}

.ke-header-actions[b-mu30j7vp2l] {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: .42rem;
    min-width: 0;
    flex: 0 0 auto;
}

.ke-quick-link[b-mu30j7vp2l] {
    min-height: 32px;
    display: inline-flex;
    align-items: center;
    padding: 0 .72rem;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 999px;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    font-size: .8rem;
    font-weight: 900;
    text-decoration: none;
    white-space: nowrap;
}

.ke-quick-link:hover[b-mu30j7vp2l] {
    background: rgba(255, 255, 255, .22);
    color: #fff;
    text-decoration: none;
}

.ke-account-link[b-mu30j7vp2l] {
    padding: 0 .35rem;
    background: rgba(255, 255, 255, .10);
}

.ke-search-pill[b-mu30j7vp2l] {
    width: clamp(180px, 18vw, 300px);
    min-height: 32px;
    display: flex;
    align-items: center;
    gap: .4rem;
    padding: 0 .72rem;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 999px;
    color: rgba(235, 247, 255, .86);
    background: rgba(255, 255, 255, .09);
    font-size: .76rem;
    white-space: nowrap;
    overflow: hidden;
}

.ke-search-pill span:last-child[b-mu30j7vp2l] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

#blazor-error-ui[b-mu30j7vp2l] {
    background: #fff7ed;
    border-top: 1px solid #fed7aa;
    bottom: 0;
    box-shadow: 0 -8px 20px rgba(15, 23, 42, .12);
    display: none;
    left: 0;
    padding: .75rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

#blazor-error-ui .dismiss[b-mu30j7vp2l] {
    cursor: pointer;
    position: absolute;
    right: .9rem;
    top: .65rem;
}

@media (max-width: 1500px) {
    .ke-header-inner[b-mu30j7vp2l] {
        grid-template-columns: minmax(142px, 180px) minmax(0, 1fr) max-content;
        gap: .48rem;
        padding: 0 .6rem;
    }

    .ke-brand-text small[b-mu30j7vp2l] { display: none; }
    .ke-brand-mark[b-mu30j7vp2l] { width: 32px; height: 32px; }
    .ke-search-pill[b-mu30j7vp2l] { width: clamp(150px, 14vw, 230px); }
    .ke-quick-link[b-mu30j7vp2l] { padding: 0 .58rem; font-size: .76rem; }
    .ke-account-link[b-mu30j7vp2l] { padding: 0 .25rem; }
}

@media (max-width: 1320px) {
    .ke-header-inner[b-mu30j7vp2l] {
        grid-template-columns: minmax(132px, 170px) minmax(0, 1fr) max-content;
    }

    .ke-search-pill[b-mu30j7vp2l] { display: none; }
}

@media (max-width: 1180px) {
    .ke-global-header[b-mu30j7vp2l] { position: sticky; }

    .ke-header-inner[b-mu30j7vp2l] {
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "brand actions"
            "nav nav";
        row-gap: .45rem;
        padding: .58rem .72rem;
    }

    .ke-brand-link[b-mu30j7vp2l] { grid-area: brand; }
    .ke-top-nav[b-mu30j7vp2l] { grid-area: nav; }
    .ke-header-actions[b-mu30j7vp2l] { grid-area: actions; }
    .ke-content[b-mu30j7vp2l] { padding: .65rem; }
}

@media (max-width: 680px) {
    .ke-brand-text strong[b-mu30j7vp2l] { font-size: .92rem; }
    .ke-quick-link:not(.ke-account-link)[b-mu30j7vp2l] { display: none; }
}

/* PATCH 040: readable header scale */
.ke-global-header[b-mu30j7vp2l],
.ke-header-inner[b-mu30j7vp2l] {
    min-height: 64px;
}

.ke-header-inner[b-mu30j7vp2l] {
    grid-template-columns: minmax(185px, 245px) minmax(0, 1fr) max-content;
    gap: .85rem;
    padding: 0 1rem;
}

.ke-brand-mark[b-mu30j7vp2l] {
    width: 40px;
    height: 40px;
    font-size: 1.18rem;
}

.ke-brand-text strong[b-mu30j7vp2l] {
    font-size: 1.08rem;
}

.ke-brand-text small[b-mu30j7vp2l] {
    font-size: .76rem;
}

.ke-quick-link[b-mu30j7vp2l],
.ke-search-pill[b-mu30j7vp2l] {
    min-height: 38px;
    font-size: .9rem;
}

.ke-search-pill[b-mu30j7vp2l] {
    width: clamp(240px, 22vw, 380px);
}

.ke-content[b-mu30j7vp2l] {
    padding: 1rem 1.05rem 1.35rem;
}

@media (max-width: 1500px) {
    .ke-header-inner[b-mu30j7vp2l] {
        grid-template-columns: minmax(160px, 210px) minmax(0, 1fr) max-content;
        gap: .58rem;
        padding: 0 .75rem;
    }

    .ke-search-pill[b-mu30j7vp2l] {
        width: clamp(180px, 16vw, 260px);
    }

    .ke-quick-link[b-mu30j7vp2l] {
        padding: 0 .65rem;
        font-size: .84rem;
    }
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.ke-top-nav[b-6yq2kgmx5i] {
    min-width: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    position: relative;
    z-index: 50;
    overflow: visible;
}

.ke-nav-toggle[b-6yq2kgmx5i] { display: none; }

.ke-nav-toggle-button[b-6yq2kgmx5i] {
    display: none;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 0 .75rem;
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 999px;
    color: #fff;
    background: rgba(255, 255, 255, .12);
    font-size: .8rem;
    font-weight: 900;
    cursor: pointer;
}

.ke-nav-groups[b-6yq2kgmx5i] {
    min-width: 0;
    max-width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    gap: .22rem;
    position: relative;
    z-index: 60;
    overflow: visible;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.ke-nav-groups[b-6yq2kgmx5i]::-webkit-scrollbar { display: none; }

.ke-nav-group[b-6yq2kgmx5i] {
    position: relative;
    height: 100%;
    display: flex;
    align-items: center;
    flex: 0 0 auto;
}

[b-6yq2kgmx5i] .ke-nav-direct,
.ke-nav-trigger[b-6yq2kgmx5i] {
    height: 34px;
    display: inline-flex;
    align-items: center;
    gap: .28rem;
    padding: 0 .58rem;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: rgba(238, 247, 255, .9);
    font-size: .79rem;
    font-weight: 900;
    line-height: 1;
    text-decoration: none !important;
    white-space: nowrap;
    flex: 0 0 auto;
}

.ke-nav-trigger[b-6yq2kgmx5i]::after {
    content: "▾";
    color: rgba(238, 247, 255, .66);
    font-size: .66rem;
}

[b-6yq2kgmx5i] .ke-nav-direct:hover,
[b-6yq2kgmx5i] .ke-nav-direct.active,
.ke-nav-group:hover .ke-nav-trigger[b-6yq2kgmx5i],
.ke-nav-group:focus-within .ke-nav-trigger[b-6yq2kgmx5i] {
    background: rgba(255, 255, 255, .16);
    color: #fff;
    text-decoration: none !important;
}

[b-6yq2kgmx5i] .ke-nav-direct.active {
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18);
}

.ke-nav-popover[b-6yq2kgmx5i] {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    z-index: 5000;
    width: 230px;
    display: none;
    padding: .5rem;
    border: 1px solid #c7d8f0;
    border-radius: 16px;
    background: rgba(255, 255, 255, .99);
    box-shadow: 0 18px 40px rgba(6, 24, 63, .24);
}

.ke-nav-popover[b-6yq2kgmx5i]::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -10px;
    height: 10px;
}

.ke-nav-group:last-child .ke-nav-popover[b-6yq2kgmx5i] {
    left: auto;
    right: 0;
}

.ke-nav-group:nth-last-child(2) .ke-nav-popover[b-6yq2kgmx5i] {
    left: auto;
    right: 0;
}


.ke-nav-popover-wide[b-6yq2kgmx5i] {
    width: 430px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .25rem;
}

.ke-nav-group:hover .ke-nav-popover[b-6yq2kgmx5i],
.ke-nav-group:focus-within .ke-nav-popover[b-6yq2kgmx5i] {
    display: grid;
}

[b-6yq2kgmx5i] .ke-nav-link {
    min-height: 35px;
    display: flex;
    align-items: center;
    padding: 0 .72rem;
    border-radius: 11px;
    color: #0a2a62;
    font-size: .82rem;
    font-weight: 850;
    text-decoration: none !important;
    white-space: nowrap;
}

[b-6yq2kgmx5i] .ke-nav-link:hover,
[b-6yq2kgmx5i] .ke-nav-link.active {
    background: #edf5ff;
    color: #08215a;
    text-decoration: none !important;
}

@media (max-width: 1500px) {
    .ke-nav-groups[b-6yq2kgmx5i] { gap: .12rem; }

    [b-6yq2kgmx5i] .ke-nav-direct,
    .ke-nav-trigger[b-6yq2kgmx5i] {
        padding: 0 .46rem;
        font-size: .74rem;
    }
}

@media (max-width: 1320px) {
    [b-6yq2kgmx5i] .ke-nav-direct,
    .ke-nav-trigger[b-6yq2kgmx5i] {
        padding: 0 .42rem;
        font-size: .72rem;
    }
}

@media (max-width: 1180px) {
    .ke-top-nav[b-6yq2kgmx5i] {
        width: 100%;
        height: auto;
        align-items: stretch;
        overflow: visible;
    }

    .ke-nav-toggle-button[b-6yq2kgmx5i] { display: inline-flex; }

    .ke-nav-groups[b-6yq2kgmx5i] {
        display: none;
        width: 100%;
        height: auto;
        padding: .38rem 0 .12rem;
        overflow-x: auto;
        overflow-y: visible;
    }

    .ke-nav-toggle:checked ~ .ke-nav-groups[b-6yq2kgmx5i] { display: flex; }

    .ke-nav-group[b-6yq2kgmx5i] { height: auto; }

    .ke-nav-popover[b-6yq2kgmx5i],
    .ke-nav-popover-wide[b-6yq2kgmx5i] {
        position: fixed;
        top: 104px;
        left: .85rem;
        right: .85rem;
        width: auto;
        max-height: 66vh;
        overflow-y: auto;
        z-index: 5000;
    }
}

/* PATCH 040: readable navigation scale */
[b-6yq2kgmx5i] .ke-nav-direct,
.ke-nav-trigger[b-6yq2kgmx5i] {
    height: 38px;
    padding: 0 .7rem;
    font-size: .88rem;
}

.ke-nav-trigger[b-6yq2kgmx5i]::after {
    font-size: .74rem;
}

[b-6yq2kgmx5i] .ke-nav-link {
    min-height: 40px;
    font-size: .9rem;
    padding: 0 .85rem;
}

.ke-nav-popover[b-6yq2kgmx5i] {
    width: 250px;
    padding: .6rem;
}

.ke-nav-popover-wide[b-6yq2kgmx5i] {
    width: 480px;
}

@media (max-width: 1500px) {
    [b-6yq2kgmx5i] .ke-nav-direct,
    .ke-nav-trigger[b-6yq2kgmx5i] {
        padding: 0 .5rem;
        font-size: .8rem;
    }
}

@media (max-width: 1320px) {
    [b-6yq2kgmx5i] .ke-nav-direct,
    .ke-nav-trigger[b-6yq2kgmx5i] {
        padding: 0 .46rem;
        font-size: .78rem;
    }
}

.ke-nav-popover-organized[b-6yq2kgmx5i] {
    width: 520px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .25rem .35rem;
}

.ke-nav-section-title[b-6yq2kgmx5i] {
    grid-column: 1 / -1;
    padding: .32rem .65rem .12rem;
    color: #5d718f;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: -.01em;
    border-top: 1px solid rgba(184, 205, 232, .55);
}

.ke-nav-section-title:first-child[b-6yq2kgmx5i] {
    border-top: 0;
}
/* /Components/Pages/AccessDenied.razor.rz.scp.css */
.oh-access-denied-page[b-2y0cjp53kl] {
    min-height: calc(100vh - 10rem);
    display: grid;
    place-items: center;
    padding: 2rem;
}

.oh-access-denied-card[b-2y0cjp53kl] {
    width: min(680px, 100%);
    padding: 2rem;
}

.oh-access-denied-card h1[b-2y0cjp53kl] {
    margin: .75rem 0;
}
/* /Components/Pages/Acoustic.razor.rz.scp.css */
:host[b-gc7vpe164r] {
    display: block;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.oh-acoustic-page[b-gc7vpe164r],
.oh-acoustic-split[b-gc7vpe164r],
.oh-acoustic-pane[b-gc7vpe164r] {
    min-height: 0;
}

@media (max-width: 1100px) {
    :host[b-gc7vpe164r] {
        height: auto;
        overflow: visible;
    }
}
/* /Components/Pages/Admin/AgencyLinks.razor.rz.scp.css */
.oa-summary-card[b-49ei3mrojm] {
    margin-bottom: 1rem;
}

.oa-summary-grid[b-49ei3mrojm] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
}

.oa-card-title-row[b-49ei3mrojm] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .75rem;
}

.oa-inline-filter[b-49ei3mrojm] {
    display: flex;
    align-items: center;
    gap: .5rem;
    white-space: nowrap;
}

.oa-inline-filter select[b-49ei3mrojm],
.oa-table-input[b-49ei3mrojm] {
    border: 1px solid var(--color-border);
    border-radius: .5rem;
    padding: .35rem .5rem;
    background: #fff;
}

.oa-table-input[b-49ei3mrojm] {
    width: 10rem;
}

.oa-table-input.oa-number[b-49ei3mrojm] {
    width: 6rem;
}

.oa-dataset-picker[b-49ei3mrojm] {
    max-height: 18rem;
    overflow: auto;
    border: 1px solid var(--color-border);
    border-radius: .75rem;
    padding: .5rem;
    background: #fff;
}

.oa-check-row[b-49ei3mrojm] {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    padding: .45rem .25rem;
    border-bottom: 1px solid rgba(15, 23, 42, .06);
}

.oa-check-row:last-child[b-49ei3mrojm] {
    border-bottom: 0;
}

.oa-check-row span[b-49ei3mrojm] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

.oa-check-row small[b-49ei3mrojm] {
    color: #64748b;
}

@media (max-width: 1200px) {
    .oa-summary-grid[b-49ei3mrojm] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.oa-actions-wrap[b-49ei3mrojm] {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.oa-dataset-picker.compact[b-49ei3mrojm] {
    max-height: 14rem;
}

.oa-ip-test[b-49ei3mrojm] {
    display: flex;
    gap: .5rem;
    margin-top: .55rem;
    align-items: center;
}

.oa-ip-test input[b-49ei3mrojm] {
    flex: 1 1 auto;
    min-width: 0;
}

.oa-ip-test-result[b-49ei3mrojm] {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .5rem;
    align-items: center;
    margin-top: .5rem;
    padding: .55rem .65rem;
    border-radius: 10px;
    border: 1px solid var(--color-border);
    font-size: .85rem;
}

.oa-ip-test-result.ok[b-49ei3mrojm] {
    background: rgba(22, 163, 74, .07);
    border-color: rgba(22, 163, 74, .28);
}

.oa-ip-test-result.fail[b-49ei3mrojm] {
    background: rgba(220, 38, 38, .07);
    border-color: rgba(220, 38, 38, .28);
}

.oa-ip-test-result code[b-49ei3mrojm] {
    padding: .15rem .35rem;
    border-radius: 6px;
    background: rgba(15, 23, 42, .06);
}

.oa-agency-admin-grid[b-49ei3mrojm] {
    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
    gap: 1rem;
    margin-bottom: 1rem;
}

.oa-table-fixed[b-49ei3mrojm] {
    max-height: 30rem;
    overflow: auto;
}

.oa-selected-row[b-49ei3mrojm] {
    background: rgba(37, 99, 235, .06);
}

.oa-selected-client-card[b-49ei3mrojm] {
    margin-top: 1rem;
}

.oa-selected-client-card textarea[b-49ei3mrojm] {
    min-height: 7rem;
    width: 100%;
    resize: vertical;
}

@media (max-width: 1400px) {
    .oa-agency-admin-grid[b-49ei3mrojm] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Admin/ApiClients.razor.rz.scp.css */
.oa-summary-card[b-21d7stkwa0] {
    margin-bottom: 1rem;
}

.oa-summary-grid[b-21d7stkwa0] {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .75rem;
}

.oa-card-title-row[b-21d7stkwa0] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .75rem;
}

.oa-actions-wrap[b-21d7stkwa0] {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.oa-quota-cell[b-21d7stkwa0] {
    min-width: 9rem;
}

.oa-quota-track[b-21d7stkwa0] {
    width: 100%;
    height: .4rem;
    border-radius: 999px;
    background: var(--color-border, #e5e7eb);
    overflow: hidden;
    margin: .25rem 0;
}

.oa-quota-fill[b-21d7stkwa0] {
    height: 100%;
    border-radius: 999px;
    background: var(--color-primary, #2563eb);
}

.oa-quota-over[b-21d7stkwa0] {
    color: #dc2626;
}

.oa-selected-row[b-21d7stkwa0] {
    background: rgba(37, 99, 235, .06);
}

.oa-key-admin-grid[b-21d7stkwa0] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1rem;
    margin-bottom: 1rem;
}

.oa-key-panel[b-21d7stkwa0] {
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: 1rem;
    padding: 1rem;
    background: #fff;
}

.oa-key-panel h4[b-21d7stkwa0] {
    margin: 0 0 .75rem;
}

.oa-key-panel textarea[b-21d7stkwa0] {
    min-height: 5rem;
    width: 100%;
    resize: vertical;
}

.oa-check[b-21d7stkwa0] {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: .75rem 0;
    font-size: .9rem;
}

.oa-history-title[b-21d7stkwa0] {
    margin-top: 1rem;
}

@media (max-width: 1200px) {
    .oa-summary-grid[b-21d7stkwa0] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .oa-key-admin-grid[b-21d7stkwa0] {
        grid-template-columns: 1fr;
    }
}

.oa-client-admin-grid[b-21d7stkwa0] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(24rem, .72fr);
    gap: 1rem;
    margin-bottom: 1rem;
}

.oa-table-fixed[b-21d7stkwa0] {
    max-height: 28rem;
    overflow: auto;
}

.oa-key-admin-grid.three[b-21d7stkwa0] {
    grid-template-columns: minmax(0, 1fr) minmax(0, .85fr) minmax(0, .85fr);
}

.oa-selected-client-card[b-21d7stkwa0] {
    margin-top: 1rem;
}

.oa-key-panel select[b-21d7stkwa0],
.oa-key-panel input[b-21d7stkwa0],
.oa-key-panel textarea[b-21d7stkwa0] {
    width: 100%;
}

@media (max-width: 1400px) {
    .oa-client-admin-grid[b-21d7stkwa0],
    .oa-key-admin-grid.three[b-21d7stkwa0] {
        grid-template-columns: 1fr;
    }
}

.oh-admin-page-api-clients .oh-table[b-21d7stkwa0] {
    min-width: 1280px;
}

.oh-badge-warning[b-21d7stkwa0] {
    background: #fff7ed;
    color: #c2410c;
    border: 1px solid #fed7aa;
}

.oh-badge-success[b-21d7stkwa0] {
    background: #ecfdf5;
    color: #047857;
    border: 1px solid #a7f3d0;
}
/* /Components/Pages/Admin/AuditLogs.razor.rz.scp.css */
.audit-summary-grid[b-djeyui2so8] {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.9rem;
    margin-bottom: 1rem;
}

.audit-kpi[b-djeyui2so8] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-height: 7rem;
}

.audit-kpi span[b-djeyui2so8] {
    color: var(--oh-muted, #6b7280);
    font-size: 0.85rem;
}

.audit-kpi strong[b-djeyui2so8] {
    font-size: 1.7rem;
    line-height: 1.1;
}

.audit-toolbar[b-djeyui2so8] {
    margin-bottom: 1rem;
}

.audit-tabs[b-djeyui2so8] {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.audit-tab[b-djeyui2so8] {
    border: 1px solid var(--oh-border, #d9e2ec);
    background: #fff;
    border-radius: 999px;
    padding: 0.45rem 1rem;
    font-weight: 700;
}

.audit-tab.active[b-djeyui2so8] {
    background: var(--oh-primary, #2563eb);
    border-color: var(--oh-primary, #2563eb);
    color: #fff;
}

.audit-filter-grid[b-djeyui2so8] {
    align-items: end;
}

.audit-filter-action[b-djeyui2so8] {
    display: flex;
    align-items: end;
}

.audit-table th[b-djeyui2so8],
.audit-table td[b-djeyui2so8] {
    vertical-align: top;
}

.audit-code[b-djeyui2so8] {
    display: inline-block;
    font-family: Consolas, Monaco, monospace;
    font-size: 0.82rem;
    background: #f3f6fa;
    border: 1px solid var(--oh-border, #d9e2ec);
    border-radius: 0.45rem;
    padding: 0.15rem 0.35rem;
    white-space: nowrap;
}

.audit-message[b-djeyui2so8] {
    max-width: 24rem;
    white-space: normal;
    word-break: break-word;
}

.audit-path[b-djeyui2so8] {
    max-width: 28rem;
    font-family: Consolas, Monaco, monospace;
    font-size: 0.8rem;
    word-break: break-all;
}

.audit-pager[b-djeyui2so8] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-top: 1rem;
}

@media (max-width: 1300px) {
    .audit-summary-grid[b-djeyui2so8] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .audit-summary-grid[b-djeyui2so8] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
/* /Components/Pages/Admin/DataItems.razor.rz.scp.css */
.admin-data-items[b-qmvv4p8a4c]{height:calc(100vh - 72px);overflow:hidden;display:flex;flex-direction:column;gap:10px;padding:10px}.data-items-workspace[b-qmvv4p8a4c]{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:12px;flex:1}.data-items-main[b-qmvv4p8a4c]{min-height:0;display:flex;flex-direction:column;gap:10px}.filter-card[b-qmvv4p8a4c]{flex:0 0 auto}.result-card[b-qmvv4p8a4c]{min-height:0;display:flex;flex-direction:column;flex:1}.result-table-wrap[b-qmvv4p8a4c]{min-height:0;overflow:auto;flex:1}.data-items-actions[b-qmvv4p8a4c]{min-height:0;overflow:auto}.action-card[b-qmvv4p8a4c]{display:flex;flex-direction:column;gap:14px}.action-card-title[b-qmvv4p8a4c],.section-heading[b-qmvv4p8a4c]{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.action-card-title h3[b-qmvv4p8a4c],.action-section h4[b-qmvv4p8a4c]{margin:0}.action-card-title p[b-qmvv4p8a4c],.action-section p[b-qmvv4p8a4c],.section-heading p[b-qmvv4p8a4c]{margin:3px 0 0;color:#66758a;font-size:.82rem}.selection-count[b-qmvv4p8a4c],.count-badge[b-qmvv4p8a4c]{display:inline-flex;padding:4px 9px;border-radius:999px;background:#e9f2ff;color:#0d3e78;font-weight:700}.action-section[b-qmvv4p8a4c]{border:1px solid #d9e6f5;border-radius:12px;padding:12px;background:#fbfdff}.full-button[b-qmvv4p8a4c]{width:100%;margin-top:8px}.filter-grid[b-qmvv4p8a4c]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.field-span-2[b-qmvv4p8a4c]{grid-column:span 2}.advanced-filters[b-qmvv4p8a4c]{margin-top:8px}.advanced-filters summary[b-qmvv4p8a4c]{cursor:pointer;font-weight:700}.detail-grid[b-qmvv4p8a4c]{margin-top:8px}.access-grid[b-qmvv4p8a4c]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.preset-row[b-qmvv4p8a4c]{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.preset-row button[b-qmvv4p8a4c]{border:1px solid #b8cce5;background:#fff;border-radius:8px;padding:6px 9px;font-weight:700;color:#123c6c}.oh-table thead th[b-qmvv4p8a4c]{position:sticky;top:0;z-index:2}.data-item-table small[b-qmvv4p8a4c]{display:block;color:#77879b}.badge-stack[b-qmvv4p8a4c]{display:flex;gap:4px;flex-wrap:wrap}.status-badge[b-qmvv4p8a4c],.type-badge[b-qmvv4p8a4c]{display:inline-flex;padding:3px 7px;border-radius:999px;font-size:.78rem;font-weight:700;background:#edf2f8}.status-badge.public[b-qmvv4p8a4c],.status-badge.active[b-qmvv4p8a4c]{background:#e4f7e9;color:#19733a}.status-badge.institution[b-qmvv4p8a4c]{background:#e8f1ff;color:#1760ae}.status-badge.owner[b-qmvv4p8a4c]{background:#fff1d8;color:#966000}.status-badge.admin[b-qmvv4p8a4c],.status-badge.private[b-qmvv4p8a4c]{background:#ffe8e8;color:#a92f2f}.status-badge.unassigned[b-qmvv4p8a4c]{background:#fff2c9;color:#936500}.selected-row[b-qmvv4p8a4c]{background:#f1f7ff}.guide-backdrop[b-qmvv4p8a4c]{position:fixed;inset:0;background:rgba(6,24,48,.45);display:grid;place-items:center;z-index:2000}.guide-modal[b-qmvv4p8a4c]{width:min(720px,92vw);background:#fff;border-radius:16px;overflow:hidden}.guide-header[b-qmvv4p8a4c],.guide-footer[b-qmvv4p8a4c]{padding:16px;display:flex;justify-content:space-between;align-items:center}.guide-body[b-qmvv4p8a4c]{padding:0 20px 18px}.guide-close[b-qmvv4p8a4c]{border:0;background:none;font-size:28px}.guide-steps li[b-qmvv4p8a4c]{margin:10px 0}.guide-steps span[b-qmvv4p8a4c]{display:block;color:#5f7085;margin-top:3px}@media(max-width:1250px){.data-items-workspace[b-qmvv4p8a4c]{grid-template-columns:1fr}.admin-data-items[b-qmvv4p8a4c]{height:auto;overflow:auto}.data-items-actions[b-qmvv4p8a4c]{overflow:visible}.filter-grid[b-qmvv4p8a4c]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.filter-grid[b-qmvv4p8a4c],.access-grid[b-qmvv4p8a4c]{grid-template-columns:1fr}.field-span-2[b-qmvv4p8a4c]{grid-column:auto}}

/* Stage 14: 조회 조건을 데스크톱에서 명시적인 다열 구조로 고정한다. */
.admin-data-items .filter-card .filter-grid[b-qmvv4p8a4c]{
    display:grid!important;
    grid-template-columns:minmax(190px,.75fr) minmax(360px,1.65fr) minmax(230px,1fr)!important;
    align-items:end;
    gap:10px 12px;
}
.admin-data-items .filter-card .filter-grid.detail-grid[b-qmvv4p8a4c]{
    grid-template-columns:repeat(3,minmax(220px,1fr))!important;
}
.admin-data-items .filter-card .filter-grid>.oh-field[b-qmvv4p8a4c]{
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    grid-column:auto!important;
    margin:0!important;
}
.admin-data-items .filter-card .filter-grid>.field-span-2[b-qmvv4p8a4c]{
    grid-column:span 2!important;
}
.admin-data-items .filter-card .oh-field input[b-qmvv4p8a4c],
.admin-data-items .filter-card .oh-field select[b-qmvv4p8a4c]{
    width:100%!important;
    min-width:0!important;
}
@media(max-width:1200px){
    .admin-data-items .filter-card .filter-grid[b-qmvv4p8a4c],
    .admin-data-items .filter-card .filter-grid.detail-grid[b-qmvv4p8a4c]{
        grid-template-columns:repeat(2,minmax(220px,1fr))!important;
    }
}
@media(max-width:720px){
    .admin-data-items .filter-card .filter-grid[b-qmvv4p8a4c],
    .admin-data-items .filter-card .filter-grid.detail-grid[b-qmvv4p8a4c]{
        grid-template-columns:1fr!important;
    }
    .admin-data-items .filter-card .filter-grid>.field-span-2[b-qmvv4p8a4c]{grid-column:auto!important}
}

/* Stage 15.1: 서버 페이징 */
.result-pager[b-qmvv4p8a4c]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border-top:1px solid #d9e6f5;background:#fbfdff}
.pager-summary[b-qmvv4p8a4c],.pager-actions[b-qmvv4p8a4c]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pager-summary[b-qmvv4p8a4c]{font-size:.86rem;color:#51647a}
.pager-warning[b-qmvv4p8a4c]{color:#a05b00;font-weight:700}
.pager-actions label[b-qmvv4p8a4c]{display:flex;align-items:center;gap:6px;font-size:.84rem;color:#51647a}
.pager-actions select[b-qmvv4p8a4c]{height:32px;min-width:72px;border:1px solid #c6d6e8;border-radius:7px;background:#fff;padding:0 8px}
@media(max-width:720px){.result-pager[b-qmvv4p8a4c]{align-items:flex-start;flex-direction:column}.pager-actions[b-qmvv4p8a4c]{width:100%;justify-content:flex-end}}

.all-matching-banner[b-qmvv4p8a4c] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin: 0 .75rem .5rem;
    padding: .55rem .75rem;
    border: 1px solid #9ec5fe;
    border-radius: .65rem;
    background: #eef6ff;
    color: #123b6d;
    font-size: .9rem;
}
/* /Components/Pages/Admin/DataRecordMaintenance.razor.rz.scp.css */
.oh-maintenance-target-card[b-thq8lomfu1] {
    margin-bottom: 12px;
}

.oh-section-head[b-thq8lomfu1] {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
    margin-bottom: 12px;
}

.oh-section-head h3[b-thq8lomfu1] {
    margin: 0 0 4px;
}

.oh-form-grid-compact[b-thq8lomfu1] {
    grid-template-columns: minmax(260px, 1.4fr) minmax(140px, .45fr) minmax(160px, .45fr) minmax(140px, .35fr);
    align-items: end;
}

.oh-maintenance-grid[b-thq8lomfu1] {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(360px, .75fr);
    gap: 12px;
    margin-top: 12px;
}

.oh-preview-table-wrap[b-thq8lomfu1] {
    max-height: 430px;
    overflow: auto;
    border: 1px solid var(--oh-border, #cfe1f5);
    border-radius: 12px;
}

.oh-preview-table td[b-thq8lomfu1],
.oh-preview-table th[b-thq8lomfu1] {
    vertical-align: top;
}

.oh-value-cell[b-thq8lomfu1] {
    max-width: 520px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.oh-system-row[b-thq8lomfu1] {
    background: rgba(226, 239, 255, .36);
}

.oh-form-stack[b-thq8lomfu1] {
    display: grid;
    gap: 10px;
}

.oh-check-inline[b-thq8lomfu1] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    font-weight: 800;
}

.oh-check-inline input[type="checkbox"][b-thq8lomfu1] {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
}

.oh-field-actions[b-thq8lomfu1] {
    align-self: end;
}

.oh-mini-meta[b-thq8lomfu1] {
    color: #47627f;
    font-size: .86rem;
    font-weight: 800;
    word-break: break-all;
}

.oh-safe-box[b-thq8lomfu1],
.oh-warning-box[b-thq8lomfu1] {
    border-radius: 12px;
    padding: 12px 14px;
    font-weight: 800;
}

.oh-safe-box[b-thq8lomfu1] {
    background: #ecfdf3;
    border: 1px solid #bbf7d0;
    color: #166534;
}

.oh-warning-box[b-thq8lomfu1] {
    background: #fff7ed;
    border: 1px solid #fed7aa;
    color: #9a3412;
}

.oh-danger-check[b-thq8lomfu1] {
    color: #b91c1c;
}

.oh-actions-wrap[b-thq8lomfu1] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.badge-danger[b-thq8lomfu1] {
    background: #fee2e2;
    color: #991b1b;
    border-color: #fecaca;
}

@media (max-width: 1280px) {
    .oh-maintenance-grid[b-thq8lomfu1],
    .oh-form-grid-compact[b-thq8lomfu1] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Admin/DatasetItems.razor.rz.scp.css */
.dataset-items-page[b-ip4bwpaag4]{height:calc(100vh - 72px);overflow:hidden;display:flex;flex-direction:column;gap:10px;padding:10px}.dataset-summary-card[b-ip4bwpaag4]{display:flex;justify-content:space-between;align-items:center;gap:20px}.dataset-summary-card h2[b-ip4bwpaag4]{margin:2px 0}.dataset-summary-card p[b-ip4bwpaag4]{margin:0;color:#67778c}.eyebrow[b-ip4bwpaag4]{font-size:.78rem;font-weight:800;color:#56708e}.summary-kpis[b-ip4bwpaag4]{display:flex;gap:10px}.summary-kpis>div[b-ip4bwpaag4]{min-width:112px;border:1px solid #d9e6f5;border-radius:12px;padding:9px 12px;text-align:center}.summary-kpis strong[b-ip4bwpaag4],.summary-kpis span[b-ip4bwpaag4]{display:block}.summary-kpis strong[b-ip4bwpaag4]{font-size:1.25rem;color:#0c3970}.summary-kpis span[b-ip4bwpaag4]{font-size:.78rem;color:#68778a}.dataset-items-workspace[b-ip4bwpaag4]{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:12px;flex:1}.membership-pane[b-ip4bwpaag4],.membership-card[b-ip4bwpaag4]{min-height:0}.membership-card[b-ip4bwpaag4]{height:100%;display:flex;flex-direction:column}.membership-table-wrap[b-ip4bwpaag4]{min-height:0;overflow:auto;flex:1}.membership-actions[b-ip4bwpaag4]{min-height:0;overflow:auto}.action-card[b-ip4bwpaag4]{display:flex;flex-direction:column;gap:14px}.action-card-title[b-ip4bwpaag4],.section-heading[b-ip4bwpaag4]{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.action-card-title h3[b-ip4bwpaag4],.action-section h4[b-ip4bwpaag4]{margin:0}.action-card-title p[b-ip4bwpaag4],.action-section p[b-ip4bwpaag4],.section-heading p[b-ip4bwpaag4]{margin:3px 0 0;color:#66758a;font-size:.82rem}.selection-count[b-ip4bwpaag4],.count-badge[b-ip4bwpaag4]{display:inline-flex;padding:4px 9px;border-radius:999px;background:#e9f2ff;color:#0d3e78;font-weight:700}.action-section[b-ip4bwpaag4]{border:1px solid #d9e6f5;border-radius:12px;padding:12px;background:#fbfdff}.button-grid[b-ip4bwpaag4]{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.button-span-2[b-ip4bwpaag4]{grid-column:span 2}.access-grid[b-ip4bwpaag4]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.field-span-2[b-ip4bwpaag4]{grid-column:span 2}.preset-row[b-ip4bwpaag4]{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.preset-row button[b-ip4bwpaag4]{border:1px solid #b8cce5;background:#fff;border-radius:8px;padding:6px 9px;font-weight:700;color:#123c6c}.membership-table thead th[b-ip4bwpaag4]{position:sticky;top:0;z-index:2}.membership-table small[b-ip4bwpaag4]{display:block;color:#77879b}.badge-stack[b-ip4bwpaag4]{display:flex;gap:4px;flex-wrap:wrap}.status-badge[b-ip4bwpaag4],.type-badge[b-ip4bwpaag4]{display:inline-flex;padding:3px 7px;border-radius:999px;font-size:.78rem;font-weight:700;background:#edf2f8}.status-badge.public[b-ip4bwpaag4],.status-badge.active[b-ip4bwpaag4]{background:#e4f7e9;color:#19733a}.status-badge.institution[b-ip4bwpaag4]{background:#e8f1ff;color:#1760ae}.status-badge.owner[b-ip4bwpaag4]{background:#fff1d8;color:#966000}.status-badge.admin[b-ip4bwpaag4],.status-badge.private[b-ip4bwpaag4]{background:#ffe8e8;color:#a92f2f}.selected-row[b-ip4bwpaag4]{background:#f1f7ff}.web-toggle[b-ip4bwpaag4]{display:flex;align-items:center;gap:6px}@media(max-width:1250px){.dataset-items-page[b-ip4bwpaag4]{height:auto;overflow:auto}.dataset-items-workspace[b-ip4bwpaag4]{grid-template-columns:1fr}.membership-actions[b-ip4bwpaag4]{overflow:visible}}@media(max-width:720px){.dataset-summary-card[b-ip4bwpaag4]{align-items:flex-start;flex-direction:column}.summary-kpis[b-ip4bwpaag4]{width:100%;overflow:auto}.access-grid[b-ip4bwpaag4]{grid-template-columns:1fr}.field-span-2[b-ip4bwpaag4],.button-span-2[b-ip4bwpaag4]{grid-column:auto}}
.membership-filter-grid[b-ip4bwpaag4]{display:grid;grid-template-columns:minmax(260px,1.8fr) minmax(150px,.8fr) minmax(150px,.8fr) auto;gap:8px;align-items:end;padding:0 0 10px;border-bottom:1px solid #d9e6f5}.filter-actions[b-ip4bwpaag4]{display:flex;gap:6px;align-items:end}.paging-bar[b-ip4bwpaag4]{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:10px}.paging-status[b-ip4bwpaag4]{font-size:.86rem;color:#66758a}.paging-controls[b-ip4bwpaag4]{display:flex;align-items:center;gap:7px}.paging-controls label[b-ip4bwpaag4]{display:flex;align-items:center;gap:6px;font-size:.82rem;font-weight:700}.paging-controls select[b-ip4bwpaag4]{min-width:86px}@media(max-width:1150px){.membership-filter-grid[b-ip4bwpaag4]{grid-template-columns:1fr 1fr}.filter-actions[b-ip4bwpaag4]{grid-column:span 2}.paging-bar[b-ip4bwpaag4]{align-items:flex-start;flex-direction:column}}@media(max-width:720px){.membership-filter-grid[b-ip4bwpaag4]{grid-template-columns:1fr}.filter-actions[b-ip4bwpaag4]{grid-column:auto}.paging-controls[b-ip4bwpaag4]{flex-wrap:wrap}}
/* /Components/Pages/Admin/DatasetItemsIndex.razor.rz.scp.css */
.dataset-items-index[b-qxvz3sxbsb]{height:calc(100vh - 72px);overflow:auto;padding:10px;display:flex;flex-direction:column;gap:10px}.dataset-filter-grid[b-qxvz3sxbsb]{display:grid;grid-template-columns:minmax(320px,1.7fr) minmax(180px,.7fr) minmax(180px,.7fr) auto;gap:10px;align-items:end}.filter-actions[b-qxvz3sxbsb],.dataset-row-actions[b-qxvz3sxbsb]{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.dataset-list-card[b-qxvz3sxbsb]{min-height:0;display:flex;flex-direction:column;flex:1}.dataset-index-table-wrap[b-qxvz3sxbsb]{min-height:0;overflow:auto;flex:1}.dataset-index-table-wrap thead th[b-qxvz3sxbsb]{position:sticky;top:0;z-index:2}.dataset-index-table-wrap small[b-qxvz3sxbsb]{display:block;color:#77879b;margin-top:3px}.count-badge[b-qxvz3sxbsb]{display:inline-flex;padding:3px 8px;border-radius:999px;background:#e9f2ff;color:#0d3e78;font-size:.82rem}.status-badge[b-qxvz3sxbsb]{display:inline-flex;padding:3px 7px;border-radius:999px;font-size:.78rem;font-weight:700;background:#edf2f8}.status-badge.active[b-qxvz3sxbsb]{background:#e4f7e9;color:#19733a}.status-badge.private[b-qxvz3sxbsb]{background:#ffe8e8;color:#a92f2f}.status-badge.institution[b-qxvz3sxbsb]{background:#e8f1ff;color:#1760ae}.status-badge.neutral[b-qxvz3sxbsb]{background:#edf2f8;color:#52647a}@media(max-width:1100px){.dataset-filter-grid[b-qxvz3sxbsb]{grid-template-columns:repeat(2,minmax(220px,1fr))}.filter-actions[b-qxvz3sxbsb]{justify-content:flex-end}}@media(max-width:650px){.dataset-filter-grid[b-qxvz3sxbsb]{grid-template-columns:1fr}.filter-actions[b-qxvz3sxbsb]{justify-content:stretch}.filter-actions .btn[b-qxvz3sxbsb]{flex:1}}
/* /Components/Pages/Admin/OperationalConfigCheck.razor.rz.scp.css */
.ops-config-page[b-s0tbpiuemf] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.page-heading-row[b-s0tbpiuemf] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.page-heading-row h1[b-s0tbpiuemf] {
    margin: 0;
    font-size: 1.8rem;
    font-weight: 800;
}

.eyebrow[b-s0tbpiuemf] {
    margin: 0 0 .35rem;
    color: var(--color-primary, #2563eb);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.page-lead[b-s0tbpiuemf] {
    margin: .45rem 0 0;
    color: var(--color-muted, #64748b);
}

.page-actions[b-s0tbpiuemf] {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.config-message[b-s0tbpiuemf] {
    border-radius: 14px;
    padding: .8rem 1rem;
    font-weight: 700;
}

.config-message-error[b-s0tbpiuemf] {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #991b1b;
}

.loading-panel[b-s0tbpiuemf],
.empty-panel[b-s0tbpiuemf] {
    padding: 2rem;
    text-align: center;
    color: var(--color-muted, #64748b);
}

.config-summary-grid[b-s0tbpiuemf] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
}

.config-summary-card[b-s0tbpiuemf] {
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 18px;
    background: #fff;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: .3rem;
    box-shadow: 0 8px 20px rgba(15, 23, 42, .04);
}

.config-summary-card span[b-s0tbpiuemf],
.config-summary-card small[b-s0tbpiuemf] {
    color: var(--color-muted, #64748b);
}

.config-summary-card strong[b-s0tbpiuemf] {
    font-size: 1.7rem;
    line-height: 1.1;
}

.config-guide-panel[b-s0tbpiuemf] {
    padding: 1rem;
}

.config-guide-list[b-s0tbpiuemf] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
}

.config-guide-list span[b-s0tbpiuemf] {
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 14px;
    padding: .75rem;
    color: var(--color-muted, #64748b);
    background: #f8fafc;
}

.config-section-list[b-s0tbpiuemf] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.config-section[b-s0tbpiuemf] {
    padding: 1rem;
}

.config-status-badge[b-s0tbpiuemf] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 3.5rem;
    border-radius: 999px;
    padding: .28rem .6rem;
    font-size: .78rem;
    font-weight: 800;
}

.config-status-badge.status-ok[b-s0tbpiuemf],
.status-ok .config-status-badge.status-ok[b-s0tbpiuemf] {
    background: #ecfdf5;
    color: #047857;
}

.config-status-badge.status-info[b-s0tbpiuemf],
.status-info .config-status-badge.status-info[b-s0tbpiuemf] {
    background: #eff6ff;
    color: #1d4ed8;
}

.config-status-badge.status-warning[b-s0tbpiuemf],
.status-warning .config-status-badge.status-warning[b-s0tbpiuemf] {
    background: #fffbeb;
    color: #b45309;
}

.config-status-badge.status-critical[b-s0tbpiuemf],
.status-critical .config-status-badge.status-critical[b-s0tbpiuemf] {
    background: #fef2f2;
    color: #b91c1c;
}

.config-item-list[b-s0tbpiuemf] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.config-item[b-s0tbpiuemf] {
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 16px;
    padding: .85rem;
    background: #fff;
    display: flex;
    flex-direction: column;
    gap: .45rem;
}

.config-item.status-critical[b-s0tbpiuemf] {
    border-color: #fecaca;
    background: #fff7f7;
}

.config-item.status-warning[b-s0tbpiuemf] {
    border-color: #fde68a;
    background: #fffdf3;
}

.config-item-head[b-s0tbpiuemf] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}

.config-item p[b-s0tbpiuemf] {
    margin: 0;
    color: var(--color-text, #0f172a);
}

.config-item code[b-s0tbpiuemf] {
    display: block;
    white-space: normal;
    overflow-wrap: anywhere;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 10px;
    padding: .45rem .55rem;
    background: #f8fafc;
    color: #334155;
}

.config-item small[b-s0tbpiuemf] {
    color: var(--color-muted, #64748b);
    line-height: 1.45;
}

@media (max-width: 1180px) {
    .config-summary-grid[b-s0tbpiuemf],
    .config-guide-list[b-s0tbpiuemf],
    .config-item-list[b-s0tbpiuemf] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .page-heading-row[b-s0tbpiuemf] {
        flex-direction: column;
    }

    .config-summary-grid[b-s0tbpiuemf],
    .config-guide-list[b-s0tbpiuemf],
    .config-item-list[b-s0tbpiuemf] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Admin/OperationsCenter.razor.rz.scp.css */
.operations-center[b-mt3rn29bds] { min-height: 0; overflow-y: auto; padding-bottom: 2rem; }
.eyebrow[b-mt3rn29bds] { margin: 0 0 .25rem; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--color-primary); }
.summary-grid[b-mt3rn29bds] { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.summary-card[b-mt3rn29bds] { display: flex; min-height: 116px; flex-direction: column; justify-content: center; gap: .25rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: 14px; background: #fff; color: inherit; text-decoration: none; transition: transform .15s ease, box-shadow .15s ease; }
.summary-card:hover[b-mt3rn29bds] { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(15, 23, 42, .08); }
.summary-card strong[b-mt3rn29bds] { font-size: 1.85rem; line-height: 1; }
.summary-card small[b-mt3rn29bds] { color: #64748b; line-height: 1.35; }
.summary-card.warning[b-mt3rn29bds] { border-top: 4px solid #f59e0b; }
.summary-card.danger[b-mt3rn29bds] { border-top: 4px solid #dc2626; }
.summary-card.ok[b-mt3rn29bds] { border-top: 4px solid #16a34a; }
.operations-grid[b-mt3rn29bds] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1rem; }
.panel[b-mt3rn29bds] { min-width: 0; border: 1px solid var(--color-border); border-radius: 16px; background: #fff; overflow: hidden; }
.panel.span-2[b-mt3rn29bds] { grid-column: 1 / -1; }
.panel-header[b-mt3rn29bds] { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.1rem; border-bottom: 1px solid var(--color-border); }
.panel-header h2[b-mt3rn29bds] { margin: 0; font-size: 1rem; }
.panel-header p[b-mt3rn29bds] { margin: .25rem 0 0; color: #64748b; font-size: .86rem; }
.action-list[b-mt3rn29bds] { display: grid; gap: .6rem; padding: 1rem; }
.action-item[b-mt3rn29bds] { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem .9rem; border: 1px solid var(--color-border); border-radius: 12px; color: inherit; text-decoration: none; }
.action-item div[b-mt3rn29bds] { display: grid; gap: .18rem; }
.action-item span[b-mt3rn29bds] { color: #64748b; font-size: .84rem; }
.action-item b[b-mt3rn29bds] { min-width: 34px; text-align: center; font-size: 1.15rem; }
.action-item.warning[b-mt3rn29bds] { background: #fffbeb; border-color: #fde68a; }
.action-item.danger[b-mt3rn29bds] { background: #fef2f2; border-color: #fecaca; }
.compact-table-wrap[b-mt3rn29bds] { overflow: auto; max-height: 430px; }
.compact-table[b-mt3rn29bds] { width: 100%; border-collapse: collapse; font-size: .86rem; }
.compact-table th[b-mt3rn29bds], .compact-table td[b-mt3rn29bds] { padding: .68rem .75rem; border-bottom: 1px solid #eef2f7; text-align: left; vertical-align: middle; white-space: nowrap; }
.compact-table th[b-mt3rn29bds] { position: sticky; top: 0; z-index: 1; background: #f8fafc; color: #475569; font-size: .78rem; }
.compact-table td:first-child[b-mt3rn29bds] { white-space: normal; min-width: 180px; }
.compact-table td small[b-mt3rn29bds] { display: block; margin-top: .15rem; color: #64748b; }
.status-badge[b-mt3rn29bds] { display: inline-flex; align-items: center; padding: .22rem .5rem; border-radius: 999px; font-size: .76rem; font-weight: 700; }
.status-badge.ok[b-mt3rn29bds] { background: #dcfce7; color: #166534; }
.status-badge.warning[b-mt3rn29bds] { background: #fef3c7; color: #92400e; }
.status-badge.danger[b-mt3rn29bds] { background: #fee2e2; color: #991b1b; }
.status-badge.neutral[b-mt3rn29bds] { background: #e2e8f0; color: #475569; }
.row-warning[b-mt3rn29bds] { background: #fff7ed; }
.empty-state[b-mt3rn29bds], .empty-cell[b-mt3rn29bds] { padding: 1.2rem; text-align: center; color: #64748b; }
@media (max-width: 1500px) { .summary-grid[b-mt3rn29bds] { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 1050px) { .operations-grid[b-mt3rn29bds] { grid-template-columns: 1fr; } .panel.span-2[b-mt3rn29bds] { grid-column: auto; } }
@media (max-width: 760px) { .summary-grid[b-mt3rn29bds] { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* /Components/Pages/Admin/Trash.razor.rz.scp.css */
.trash-page[b-4vqx5hk6vo] { display:flex; flex-direction:column; gap:14px; min-height:0; }
.header-actions[b-4vqx5hk6vo],.row-actions[b-4vqx5hk6vo],.modal-actions[b-4vqx5hk6vo] { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.filter-grid[b-4vqx5hk6vo] { display:grid; grid-template-columns:minmax(220px,.7fr) minmax(360px,1.6fr) auto; gap:12px; align-items:end; }
.filter-actions[b-4vqx5hk6vo] { display:flex; gap:8px; justify-content:flex-end; }
.oh-card-header[b-4vqx5hk6vo] { display:flex; justify-content:space-between; gap:16px; align-items:end; }
.oh-card-header h3[b-4vqx5hk6vo] { margin:0; }
.oh-card-header p[b-4vqx5hk6vo] { margin:4px 0 0; color:var(--color-muted,#667085); }
.page-size[b-4vqx5hk6vo] { display:flex; gap:8px; align-items:center; }
.table-wrap[b-4vqx5hk6vo] { overflow:auto; max-height:calc(100vh - 330px); border:1px solid var(--color-border,#d8e2f0); border-radius:12px; }
.oh-table[b-4vqx5hk6vo] { width:100%; border-collapse:collapse; }
.oh-table th[b-4vqx5hk6vo] { position:sticky; top:0; z-index:1; background:#eaf3ff; }
.oh-table th[b-4vqx5hk6vo],.oh-table td[b-4vqx5hk6vo] { padding:10px 12px; border-bottom:1px solid #e6edf6; text-align:left; vertical-align:middle; }
.oh-table small[b-4vqx5hk6vo] { display:block; color:#778399; margin-top:3px; }
.type-badge[b-4vqx5hk6vo],.status-badge[b-4vqx5hk6vo],.count-badge[b-4vqx5hk6vo] { display:inline-flex; align-items:center; border-radius:999px; padding:3px 8px; font-size:12px; font-weight:700; background:#edf3fb; }
.status-badge.success[b-4vqx5hk6vo] { background:#e3f7ea; color:#147a3c; }
.status-badge.warning[b-4vqx5hk6vo] { background:#fff3cd; color:#8a6400; }
.status-badge.private[b-4vqx5hk6vo] { background:#f3f4f6; color:#667085; }
.pagination[b-4vqx5hk6vo] { display:flex; justify-content:center; align-items:center; gap:12px; padding-top:12px; }
.modal-backdrop[b-4vqx5hk6vo] { position:fixed; inset:0; z-index:1000; background:rgba(14,30,56,.48); display:grid; place-items:center; padding:20px; }
.modal-card[b-4vqx5hk6vo] { width:min(560px,100%); background:#fff; border-radius:16px; padding:22px; box-shadow:0 24px 70px rgba(0,0,0,.25); }
.modal-card h3[b-4vqx5hk6vo] { margin-top:0; }
.modal-actions[b-4vqx5hk6vo] { justify-content:flex-end; margin-top:18px; }
.danger-notice[b-4vqx5hk6vo] { background:#fff2f2; color:#a61b1b; padding:10px 12px; border-radius:10px; margin:12px 0; }
@media (max-width:900px){ .filter-grid[b-4vqx5hk6vo]{grid-template-columns:1fr 1fr}.filter-actions[b-4vqx5hk6vo]{grid-column:1/-1}.table-wrap[b-4vqx5hk6vo]{max-height:none} }
@media (max-width:640px){ .filter-grid[b-4vqx5hk6vo]{grid-template-columns:1fr}.filter-actions[b-4vqx5hk6vo]{grid-column:auto}.oh-card-header[b-4vqx5hk6vo]{align-items:flex-start;flex-direction:column} }
/* /Components/Pages/Admin/UploadBatchDetail.razor.rz.scp.css */
.oh-upload-batch-detail[b-t6tnlfjhht] { height: calc(100vh - 70px); overflow-y: auto; padding: 12px; }
.oh-kpi-grid[b-t6tnlfjhht] { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; margin: 10px 0; }
.oh-kpi-card[b-t6tnlfjhht] { background: #fff; border: 1px solid #cfe0f8; border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 4px; }
.oh-kpi-card span[b-t6tnlfjhht] { color: #5d708c; font-size: .82rem; }
.oh-kpi-card strong[b-t6tnlfjhht] { font-size: 1.35rem; color: #082d69; }
.oh-batch-summary[b-t6tnlfjhht] { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 16px; }
.oh-summary-grid[b-t6tnlfjhht] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.oh-summary-grid div[b-t6tnlfjhht] { background: #f5f9ff; border-radius: 9px; padding: 8px 10px; display: flex; flex-direction: column; }
.oh-summary-grid span[b-t6tnlfjhht] { color: #65758b; font-size: .78rem; }
.oh-batch-actions[b-t6tnlfjhht] { display: grid; gap: 8px; align-content: start; }
.oh-detail-tabs[b-t6tnlfjhht] { display: flex; gap: 6px; margin: 12px 0 8px; border-bottom: 1px solid #cfe0f8; }
.oh-detail-tabs button[b-t6tnlfjhht] { border: 0; background: transparent; padding: 9px 14px; font-weight: 700; color: #52657e; border-bottom: 3px solid transparent; }
.oh-detail-tabs button.active[b-t6tnlfjhht] { color: #083b7c; border-bottom-color: #0b5ed7; }
.oh-two-column[b-t6tnlfjhht] { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(340px, .75fr); gap: 12px; }
.oh-action-list[b-t6tnlfjhht] { display: grid; gap: 8px; }
.oh-followup[b-t6tnlfjhht] { border: 1px solid #d9e5f6; border-radius: 10px; padding: 10px; }
.oh-followup.error[b-t6tnlfjhht] { border-color: #f3b8bd; background: #fff7f7; }
.oh-followup.warning[b-t6tnlfjhht] { border-color: #f1d184; background: #fffaf0; }
.oh-followup p[b-t6tnlfjhht] { margin: 4px 0 8px; color: #56677f; }
.oh-section-header[b-t6tnlfjhht] { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.oh-section-header p[b-t6tnlfjhht] { margin: 0; color: #6b7d95; }
.oh-row-table[b-t6tnlfjhht] { max-height: 56vh; overflow: auto; }
.oh-row-table thead[b-t6tnlfjhht] { position: sticky; top: 0; z-index: 2; }
.oh-metric-list[b-t6tnlfjhht] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.oh-metric-list div[b-t6tnlfjhht] { display: flex; justify-content: space-between; background: #f6f9fe; border-radius: 9px; padding: 9px 11px; }
.oh-metric-list dd[b-t6tnlfjhht] { margin: 0; font-weight: 800; }
.oh-tool-links[b-t6tnlfjhht] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
@media (max-width: 1200px) { .oh-kpi-grid[b-t6tnlfjhht] { grid-template-columns: repeat(3, 1fr); } .oh-batch-summary[b-t6tnlfjhht], .oh-two-column[b-t6tnlfjhht] { grid-template-columns: 1fr; } }
@media (max-width: 720px) { .oh-kpi-grid[b-t6tnlfjhht], .oh-summary-grid[b-t6tnlfjhht], .oh-metric-list[b-t6tnlfjhht], .oh-tool-links[b-t6tnlfjhht] { grid-template-columns: 1fr; } .oh-detail-tabs[b-t6tnlfjhht] { overflow-x: auto; } }
/* /Components/Pages/Admin/UploadIntegrationChecklist.razor.rz.scp.css */
.oh-checklist[b-msy7mjlxmz] {
    margin: 0;
    padding-left: 1.2rem;
    color: var(--oh-text, #111827);
    line-height: 1.75;
}

.oh-checklist li + li[b-msy7mjlxmz] {
    margin-top: .2rem;
}

.oh-table td:first-child[b-msy7mjlxmz] {
    font-weight: 700;
    white-space: nowrap;
}

.oh-card h3[b-msy7mjlxmz] {
    margin-top: 0;
}
/* /Components/Pages/Admin/Users.razor.rz.scp.css */
.user-impact-actions[b-t630en3prt] {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-top: .25rem;
}

.user-impact-panel[b-t630en3prt] {
    border: 1px solid var(--color-border, #cbdcf3);
    border-radius: 12px;
    background: #f7fbff;
    padding: .85rem 1rem;
}

.user-impact-panel.has-warning[b-t630en3prt] {
    background: #fffaf0;
}

.impact-title[b-t630en3prt] {
    font-weight: 800;
    margin-bottom: .55rem;
}

.impact-grid[b-t630en3prt] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .5rem;
}

.impact-grid > div[b-t630en3prt] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    padding: .45rem .55rem;
    background: #fff;
    border-radius: 8px;
}

.impact-badges[b-t630en3prt] {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: .65rem;
}

.user-impact-panel ul[b-t630en3prt] {
    margin: .6rem 0 0 1.2rem;
}

@media (max-width: 1100px) {
    .impact-grid[b-t630en3prt] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* /Components/Pages/AlphaCorona.razor.rz.scp.css */
/* Alpha corona one-screen explorer layout aligned with Ecology page */

.alpha-workspace[b-3v20rgwoe2] {
    --alpha-primary: #0a2a62;
    --alpha-primary-dark: #06183f;
    --alpha-accent: #38bdf8;
    --alpha-soft: #edf5ff;
    --alpha-border: #cfe0f6;
    --alpha-muted: #64748b;
    --alpha-text: #0f172a;
    --alpha-card: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 9px;
    min-width: 0;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.alpha-hero[b-3v20rgwoe2] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    flex: 0 0 auto;
}

.alpha-hero h1[b-3v20rgwoe2] {
    margin: 0;
    color: var(--alpha-primary-dark);
    font-size: 22px;
    font-weight: 950;
    letter-spacing: -0.04em;
}

.alpha-hero p[b-3v20rgwoe2] {
    margin: 4px 0 0;
    color: var(--alpha-muted);
    font-size: 13px;
    font-weight: 650;
}

.alpha-search-actions[b-3v20rgwoe2],
.alpha-map-layer-tabs[b-3v20rgwoe2] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.alpha-btn[b-3v20rgwoe2],
.alpha-tab[b-3v20rgwoe2],
.alpha-pager button[b-3v20rgwoe2] {
    height: 34px;
    border: 1px solid var(--alpha-border);
    border-radius: 10px;
    background: #fff;
    color: var(--alpha-primary);
    font-size: 12px;
    font-weight: 900;
    padding: 0 12px;
    white-space: nowrap;
}

.alpha-btn-primary[b-3v20rgwoe2],
.alpha-tab.active[b-3v20rgwoe2],
.alpha-page-number.active[b-3v20rgwoe2] {
    border-color: var(--alpha-primary);
    background: var(--alpha-primary);
    color: #fff;
}

.alpha-btn-ghost:hover[b-3v20rgwoe2],
.alpha-tab:hover[b-3v20rgwoe2],
.alpha-pager button:hover:not(:disabled)[b-3v20rgwoe2] {
    border-color: rgba(11, 69, 96, 0.35);
    background: var(--alpha-soft);
}

.alpha-kpi-strip[b-3v20rgwoe2] {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    flex: 0 0 auto;
}

.alpha-kpi-strip article[b-3v20rgwoe2] {
    min-width: 0;
    padding: 10px 14px;
    border: 1px solid var(--alpha-border);
    border-radius: 18px;
    background: linear-gradient(180deg, #fff, #f7fbfd);
    box-shadow: 0 12px 28px rgba(9, 70, 96, 0.06);
}

.alpha-kpi-strip span[b-3v20rgwoe2],
.alpha-kpi-strip small[b-3v20rgwoe2] {
    display: block;
    overflow: hidden;
    color: var(--alpha-muted);
    font-size: 11px;
    font-weight: 850;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.alpha-kpi-strip strong[b-3v20rgwoe2] {
    display: block;
    overflow: hidden;
    margin-top: 3px;
    color: var(--alpha-primary-dark);
    font-size: 20px;
    font-weight: 950;
    line-height: 1.05;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.alpha-search-panel[b-3v20rgwoe2] {
    display: grid;
    grid-template-columns: minmax(22%, 1.6fr) repeat(3, minmax(13%, 1fr)) auto;
    gap: 8px;
    align-items: end;
    flex: 0 0 auto;
    padding: 10px;
    border: 1px solid var(--alpha-border);
    border-radius: 16px;
    background: #f8fbfd;
}

.alpha-search-panel label[b-3v20rgwoe2] {
    display: grid;
    gap: 4px;
    min-width: 0;
    margin: 0;
}

.alpha-search-panel span[b-3v20rgwoe2] {
    color: var(--alpha-primary);
    font-size: 11px;
    font-weight: 900;
}

.alpha-search-panel input[b-3v20rgwoe2],
.alpha-search-panel select[b-3v20rgwoe2] {
    width: 100%;
    height: 34px;
    min-width: 0;
    border: 1px solid var(--alpha-border);
    border-radius: 10px;
    background: #fff;
    color: var(--alpha-text);
    font-size: 12px;
    font-weight: 750;
    outline: none;
    padding: 0 10px;
}

.alpha-search-panel input:focus[b-3v20rgwoe2],
.alpha-search-panel select:focus[b-3v20rgwoe2] {
    border-color: rgba(37, 99, 235, 0.65);
    box-shadow: 0 0 0 3px rgba(34, 199, 201, 0.15);
}

.alpha-one-screen[b-3v20rgwoe2] {
    display: grid;
    grid-template-columns: minmax(18%, 24%) minmax(42%, 1fr) minmax(22%, 27%);
    gap: 12px;
    align-items: stretch;
    min-height: 0;
    flex: 1 1 auto;
    overflow: hidden;
}

.alpha-panel[b-3v20rgwoe2] {
    min-width: 0;
    min-height: 0;
    border: 1px solid var(--alpha-border);
    border-radius: 20px;
    background: var(--alpha-card);
    box-shadow: 0 16px 32px rgba(9, 70, 96, 0.06);
}

.alpha-summary-panel[b-3v20rgwoe2],
.alpha-detail-panel[b-3v20rgwoe2] {
    height: 100%;
    overflow: auto;
    padding: 12px;
}

.alpha-center-panel[b-3v20rgwoe2] {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    padding: 12px;
}

.alpha-panel-head[b-3v20rgwoe2] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}

.alpha-panel-head h2[b-3v20rgwoe2] {
    margin: 0;
    color: var(--alpha-primary-dark);
    font-size: 16px;
    font-weight: 950;
    letter-spacing: -0.02em;
}

.alpha-panel-head p[b-3v20rgwoe2] {
    margin: 3px 0 0;
    color: var(--alpha-muted);
    font-size: 12px;
    font-weight: 650;
}

.alpha-rule-box[b-3v20rgwoe2] {
    display: grid;
    gap: 7px;
    padding: 12px;
    border: 1px solid #edf4f7;
    border-radius: 16px;
    background: #f8fbfd;
}

.alpha-rule-box strong[b-3v20rgwoe2] {
    color: var(--alpha-primary-dark);
    font-size: 13px;
    font-weight: 950;
}

.alpha-rule-box div[b-3v20rgwoe2] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.alpha-rule-box b[b-3v20rgwoe2] {
    color: #334155;
    font-size: 12px;
    font-weight: 900;
}

.alpha-pill[b-3v20rgwoe2],
.alpha-result-chip[b-3v20rgwoe2] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 22px;
    padding: 0 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 950;
}

.alpha-pill.good[b-3v20rgwoe2],
.alpha-result-chip.negative[b-3v20rgwoe2],
.alpha-result-banner.negative[b-3v20rgwoe2] {
    background: #dcfce7;
    color: #047857;
}

.alpha-pill.danger[b-3v20rgwoe2],
.alpha-result-chip.positive[b-3v20rgwoe2],
.alpha-result-banner.positive[b-3v20rgwoe2] {
    background: #fee2e2;
    color: #b91c1c;
}

.alpha-result-chip.invalid[b-3v20rgwoe2],
.alpha-result-chip.review[b-3v20rgwoe2],
.alpha-result-banner.invalid[b-3v20rgwoe2],
.alpha-result-banner.review[b-3v20rgwoe2] {
    background: #fffbeb;
    color: #92400e;
}

.alpha-side-section[b-3v20rgwoe2] {
    margin-top: 12px;
}

.alpha-side-section h3[b-3v20rgwoe2] {
    margin: 0 0 8px;
    color: var(--alpha-primary-dark);
    font-size: 13px;
    font-weight: 950;
}

.alpha-side-list[b-3v20rgwoe2] {
    display: grid;
    gap: 7px;
}

.alpha-side-card[b-3v20rgwoe2] {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 2px 8px;
    width: 100%;
    min-height: 42px;
    padding: 8px 12px;
    border: 1px solid #edf4f7;
    border-radius: 14px;
    background: #fff;
    text-align: left;
}

.alpha-side-card:hover[b-3v20rgwoe2] {
    border-color: rgba(37, 99, 235, 0.55);
    background: #f5fdff;
}

.alpha-side-card span[b-3v20rgwoe2],
.alpha-side-card small[b-3v20rgwoe2] {
    overflow: hidden;
    color: var(--alpha-primary-dark);
    font-size: 12px;
    font-weight: 950;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.alpha-side-card small[b-3v20rgwoe2] {
    grid-column: 1;
    color: var(--alpha-muted);
    font-size: 10px;
    font-weight: 750;
}

.alpha-side-card strong[b-3v20rgwoe2] {
    color: var(--alpha-text);
    font-size: 12px;
    font-weight: 950;
    white-space: nowrap;
}

.alpha-side-card em[b-3v20rgwoe2] {
    grid-row: 1 / 3;
    grid-column: 2;
    align-self: center;
    padding: 5px 9px;
    border-radius: 999px;
    background: #fee2e2;
    color: #b91c1c;
    font-size: 10px;
    font-style: normal;
    font-weight: 950;
}

.alpha-list-head[b-3v20rgwoe2] {
    align-items: center;
    flex: 0 0 auto;
}

.alpha-tabs[b-3v20rgwoe2] {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.alpha-tab[b-3v20rgwoe2] {
    height: 31px;
    padding: 0 10px;
}

.alpha-table-shell[b-3v20rgwoe2] {
    min-height: 0;
    flex: 1;
    overflow: auto;
    border: 1px solid var(--alpha-border);
    border-radius: 16px;
}

.alpha-table[b-3v20rgwoe2] {
    width: 100%;
    min-width: 920px;
    border-collapse: collapse;
    background: #fff;
}

.alpha-table th[b-3v20rgwoe2] {
    position: sticky;
    top: 0;
    z-index: 1;
    height: 36px;
    padding: 0 12px;
    background: #f4f9fc;
    color: var(--alpha-primary);
    font-size: 11px;
    font-weight: 950;
    text-align: left;
    white-space: nowrap;
}

.alpha-table td[b-3v20rgwoe2] {
    padding: 10px 12px;
    border-top: 1px solid #edf4f7;
    color: #334155;
    font-size: 12px;
    font-weight: 750;
    white-space: nowrap;
}

.alpha-table strong[b-3v20rgwoe2] {
    display: block;
    color: var(--alpha-primary-dark);
    font-weight: 950;
}

.alpha-table small[b-3v20rgwoe2] {
    display: block;
    margin-top: 2px;
    color: var(--alpha-muted);
    font-size: 10px;
    font-weight: 750;
}

.alpha-click-row[b-3v20rgwoe2] {
    cursor: pointer;
}

.alpha-click-row:hover[b-3v20rgwoe2],
.alpha-click-row.active[b-3v20rgwoe2] {
    background: #f5fdff;
}

.alpha-click-row.active[b-3v20rgwoe2] {
    box-shadow: inset 4px 0 0 rgba(56, 189, 248, 0.65);
}

.alpha-pager.oh-fixed-pager[b-3v20rgwoe2],
.alpha-pager[b-3v20rgwoe2] {
    display: grid;
    grid-template-columns: minmax(120px, 1fr) auto minmax(120px, 1fr);
    align-items: center;
    justify-content: stretch;
    gap: 10px;
    width: 100%;
    margin-top: 10px;
    padding: 8px 0 2px;
    color: var(--alpha-muted);
    font-size: 12px;
    font-weight: 850;
}

.alpha-pager-spacer[b-3v20rgwoe2] {
    min-width: 0;
}

.alpha-pager .alpha-pager-controls[b-3v20rgwoe2] {
    grid-column: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
}

.alpha-pager-range[b-3v20rgwoe2] {
    grid-column: 3;
    justify-self: end;
    min-width: 0;
    color: var(--alpha-muted);
    font-size: 12px;
    font-weight: 900;
    text-align: right;
    white-space: nowrap;
}

.alpha-pager button:disabled[b-3v20rgwoe2] {
    opacity: .45;
    cursor: not-allowed;
}

.alpha-pager .alpha-page-number.active[b-3v20rgwoe2],
.alpha-pager .alpha-page-number.active:disabled[b-3v20rgwoe2] {
    opacity: 1;
    cursor: default;
}

.alpha-detail-title[b-3v20rgwoe2] {
    padding: 12px;
    border-radius: 18px;
    background: linear-gradient(180deg, #f5fdff, #eef7fb);
}

.alpha-detail-title span[b-3v20rgwoe2] {
    display: inline-flex;
    padding: 3px 8px;
    border-radius: 999px;
    background: #fff;
    color: var(--alpha-primary);
    font-size: 10px;
    font-weight: 950;
}

.alpha-detail-title h2[b-3v20rgwoe2] {
    margin: 8px 0 0;
    color: var(--alpha-primary-dark);
    font-size: 21px;
    font-weight: 950;
    letter-spacing: -0.03em;
}

.alpha-detail-title p[b-3v20rgwoe2] {
    margin: 3px 0 0;
    color: var(--alpha-muted);
    font-size: 12px;
    font-weight: 700;
}

.alpha-result-banner[b-3v20rgwoe2] {
    margin: 12px 0;
    padding: 10px 12px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 950;
}

.alpha-result-banner b[b-3v20rgwoe2] {
    margin-left: 8px;
}

.alpha-detail-section[b-3v20rgwoe2] {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #edf4f7;
}

.alpha-detail-section h3[b-3v20rgwoe2] {
    margin: 0 0 8px;
    color: var(--alpha-primary-dark);
    font-size: 14px;
    font-weight: 950;
}

.alpha-detail-list[b-3v20rgwoe2] {
    display: grid;
    gap: 6px;
    margin: 0;
}

.alpha-detail-list div[b-3v20rgwoe2] {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 8px;
    align-items: start;
    min-height: 32px;
    padding: 8px 10px;
    border-radius: 12px;
    background: #f8fbfd;
}

.alpha-detail-list dt[b-3v20rgwoe2] {
    color: var(--alpha-muted);
    font-size: 11px;
    font-weight: 950;
}

.alpha-detail-list dd[b-3v20rgwoe2] {
    margin: 0;
    color: #334155;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.45;
}

.alpha-full-btn[b-3v20rgwoe2] {
    width: 100%;
    min-height: 34px;
    margin-top: 10px;
    border: 1px solid var(--alpha-primary);
    border-radius: 10px;
    background: var(--alpha-primary);
    color: #fff;
    font-size: 12px;
    font-weight: 950;
}

.alpha-full-btn:disabled[b-3v20rgwoe2] {
    border-color: #cbd5e1;
    background: #94a3b8;
    cursor: not-allowed;
}

.alpha-positive-list[b-3v20rgwoe2] {
    display: grid;
    gap: 7px;
}

.alpha-positive-list button[b-3v20rgwoe2] {
    display: grid;
    gap: 3px;
    width: 100%;
    padding: 9px 10px;
    border: 1px solid #edf4f7;
    border-radius: 14px;
    background: #fff;
    text-align: left;
}

.alpha-positive-list button.active[b-3v20rgwoe2],
.alpha-positive-list button:hover[b-3v20rgwoe2] {
    border-color: #fca5a5;
    background: #fff1f2;
}

.alpha-positive-list strong[b-3v20rgwoe2] {
    overflow: hidden;
    color: #b91c1c;
    font-size: 12px;
    font-weight: 950;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.alpha-positive-list span[b-3v20rgwoe2] {
    overflow: hidden;
    color: var(--alpha-muted);
    font-size: 10px;
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.alpha-empty[b-3v20rgwoe2] {
    padding: 24px;
    border: 1px dashed var(--alpha-border);
    border-radius: 16px;
    background: #f8fbfd;
    color: var(--alpha-muted);
    font-size: 13px;
    font-weight: 850;
    text-align: center;
}

.alpha-empty.compact[b-3v20rgwoe2] {
    padding: 12px;
    font-size: 12px;
}

.alpha-map-modal-backdrop[b-3v20rgwoe2] {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px;
    background: rgba(15, 23, 42, 0.48);
}

.alpha-map-modal[b-3v20rgwoe2] {
    display: flex;
    flex-direction: column;
    width: min(1500px, calc(100vw - 80px));
    height: min(820px, calc(100vh - 90px));
    min-height: 0;
    overflow: hidden;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 30px 80px rgba(15, 23, 42, 0.32);
}

.alpha-map-modal-head[b-3v20rgwoe2] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 18px 10px;
    border-bottom: 1px solid #edf4f7;
}

.alpha-map-modal-head h2[b-3v20rgwoe2] {
    margin: 0;
    color: var(--alpha-primary-dark);
    font-size: 16px;
    font-weight: 950;
}

.alpha-map-modal-head p[b-3v20rgwoe2] {
    margin: 4px 0 0;
    color: var(--alpha-muted);
    font-size: 12px;
    font-weight: 650;
}

.alpha-map-modal-grid[b-3v20rgwoe2] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 14px;
    min-height: 0;
    flex: 1;
    padding: 14px;
}

.alpha-sample-map[b-3v20rgwoe2] {
    position: relative;
    min-height: 0;
    overflow: hidden;
    border: 1px solid var(--alpha-border);
    border-radius: 18px;
    background: #eef6fa;
}

.alpha-map-sample-list[b-3v20rgwoe2] {
    min-height: 0;
    overflow: auto;
    padding-right: 4px;
}

.alpha-map-sample-list h3[b-3v20rgwoe2] {
    margin: 0 0 8px;
    color: var(--alpha-primary-dark);
    font-size: 14px;
    font-weight: 950;
}

.alpha-map-sample-card[b-3v20rgwoe2] {
    display: grid;
    gap: 4px;
    width: 100%;
    min-height: 72px;
    margin-bottom: 8px;
    padding: 11px 12px;
    border: 1px solid #edf4f7;
    border-radius: 14px;
    background: #fff;
    text-align: left;
}

.alpha-map-sample-card:hover[b-3v20rgwoe2],
.alpha-map-sample-card.active[b-3v20rgwoe2] {
    border-color: rgba(56, 189, 248, .75);
    background: #edf9ff;
}

.alpha-map-sample-card strong[b-3v20rgwoe2] {
    overflow: hidden;
    color: var(--alpha-primary-dark);
    font-size: 12px;
    font-weight: 950;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.alpha-map-sample-card span[b-3v20rgwoe2],
.alpha-map-sample-card small[b-3v20rgwoe2] {
    overflow: hidden;
    color: var(--alpha-muted);
    font-size: 11px;
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
}

:host[b-3v20rgwoe2] {
    display: block;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

@media (max-width: 1500px) {
    .alpha-one-screen[b-3v20rgwoe2] {
        grid-template-columns: 285px minmax(520px, 1fr) 330px;
    }
}

@media (max-width: 1180px) {
    .alpha-one-screen[b-3v20rgwoe2],
    .alpha-map-modal-grid[b-3v20rgwoe2] {
        grid-template-columns: 1fr;
    }

    .alpha-summary-panel[b-3v20rgwoe2],
    .alpha-center-panel[b-3v20rgwoe2],
    .alpha-detail-panel[b-3v20rgwoe2] {
        height: auto;
        max-height: none;
    }

    .alpha-search-panel[b-3v20rgwoe2] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .alpha-hero[b-3v20rgwoe2],
    .alpha-panel-head[b-3v20rgwoe2],
    .alpha-map-modal-head[b-3v20rgwoe2] {
        align-items: stretch;
        flex-direction: column;
    }

    .alpha-pager.oh-fixed-pager[b-3v20rgwoe2],
    .alpha-pager[b-3v20rgwoe2] {
        grid-template-columns: 1fr;
    }

    .alpha-pager .alpha-pager-controls[b-3v20rgwoe2],
    .alpha-pager-range[b-3v20rgwoe2] {
        grid-column: 1;
        justify-self: center;
        text-align: center;
    }

    .alpha-kpi-strip[b-3v20rgwoe2],
    .alpha-search-panel[b-3v20rgwoe2] {
        grid-template-columns: 1fr;
    }

    .alpha-tabs[b-3v20rgwoe2],
    .alpha-map-layer-tabs[b-3v20rgwoe2] {
        justify-content: flex-start;
    }

    .alpha-map-modal-backdrop[b-3v20rgwoe2] {
        padding: 12px;
    }

    .alpha-map-modal[b-3v20rgwoe2] {
        width: calc(100vw - 24px);
        height: calc(100vh - 24px);
    }
}


.alpha-left-tabs[b-3v20rgwoe2] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    margin-bottom: 12px;
    padding: 4px;
    border: 1px solid var(--alpha-border);
    border-radius: 14px;
    background: #f8fbfd;
}

.alpha-left-tab[b-3v20rgwoe2] {
    height: 31px;
    border: 1px solid transparent;
    border-radius: 10px;
    background: transparent;
    color: var(--alpha-muted);
    font-size: 11px;
    font-weight: 950;
}

.alpha-left-tab.active[b-3v20rgwoe2] {
    border-color: var(--alpha-primary);
    background: var(--alpha-primary);
    color: #fff;
}

.alpha-side-section.no-top[b-3v20rgwoe2] {
    margin-top: 0;
}

.alpha-species-status-list[b-3v20rgwoe2] {
    display: grid;
    gap: 8px;
}

.alpha-species-status-card[b-3v20rgwoe2] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 5px 10px;
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #edf4f7;
    border-radius: 14px;
    background: #fff;
    text-align: left;
}

.alpha-species-status-card:hover[b-3v20rgwoe2] {
    border-color: rgba(37, 99, 235, 0.55);
    background: #f5fdff;
}

.alpha-species-status-card span[b-3v20rgwoe2],
.alpha-species-status-card strong[b-3v20rgwoe2] {
    overflow: hidden;
    color: var(--alpha-primary-dark);
    font-size: 12px;
    font-weight: 950;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.alpha-species-status-card strong[b-3v20rgwoe2] {
    color: var(--alpha-text);
}

.alpha-species-status-card small[b-3v20rgwoe2] {
    grid-column: 1 / -1;
    overflow: hidden;
    color: var(--alpha-muted);
    font-size: 10px;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.alpha-rate-bar[b-3v20rgwoe2] {
    grid-column: 1 / -1;
    height: 6px;
    overflow: hidden;
    border-radius: 999px;
    background: #e2e8f0;
}

.alpha-rate-bar i[b-3v20rgwoe2] {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #fecaca, #ef4444);
}

.alpha-admin-actions[b-3v20rgwoe2] {
    display: flex;
    justify-content: flex-end;
    margin: -2px 0 10px;
}

.alpha-editor-modal[b-3v20rgwoe2] {
    display: flex;
    flex-direction: column;
    width: min(720px, calc(100vw - 48px));
    max-height: min(760px, calc(100vh - 64px));
    overflow: hidden;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 30px 80px rgba(15, 23, 42, 0.32);
}

.alpha-editor-modal-head[b-3v20rgwoe2] {
    padding: 16px 18px 10px;
    border-bottom: 1px solid #edf4f7;
}

.alpha-editor-modal-head h2[b-3v20rgwoe2] {
    margin: 0;
    color: var(--alpha-primary-dark);
    font-size: 17px;
    font-weight: 950;
}

.alpha-editor-modal-head p[b-3v20rgwoe2] {
    margin: 4px 0 0;
    color: var(--alpha-muted);
    font-size: 12px;
    font-weight: 700;
}

.alpha-editor-form[b-3v20rgwoe2] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    min-height: 0;
    overflow: auto;
    padding: 16px 18px;
}

.alpha-editor-form label[b-3v20rgwoe2] {
    display: grid;
    gap: 5px;
    min-width: 0;
}

.alpha-editor-form span[b-3v20rgwoe2] {
    color: var(--alpha-primary);
    font-size: 11px;
    font-weight: 950;
}

.alpha-editor-form input[b-3v20rgwoe2],
.alpha-editor-form textarea[b-3v20rgwoe2] {
    width: 100%;
    min-width: 0;
    border: 1px solid var(--alpha-border);
    border-radius: 10px;
    background: #fff;
    color: var(--alpha-text);
    font-size: 12px;
    font-weight: 750;
    outline: none;
    padding: 9px 10px;
}

.alpha-editor-form input[b-3v20rgwoe2] {
    height: 34px;
}

.alpha-editor-wide[b-3v20rgwoe2] {
    grid-column: 1 / -1;
}

.alpha-editor-actions[b-3v20rgwoe2] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 18px 16px;
    border-top: 1px solid #edf4f7;
}

.alpha-modal-message[b-3v20rgwoe2] {
    margin: 12px 18px 0;
    padding: 10px 12px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 850;
}

.alpha-modal-message.success[b-3v20rgwoe2] {
    background: #dcfce7;
    color: #047857;
}

.alpha-modal-message.error[b-3v20rgwoe2] {
    background: #fee2e2;
    color: #b91c1c;
}

@media (max-width: 900px) {
    .alpha-editor-form[b-3v20rgwoe2] {
        grid-template-columns: 1fr;
    }
}

/* v4: 판정 기준은 좌측 탭 대신 중앙 진단 시료 목록 코멘트로 표시 */
.alpha-result-rule-note[b-3v20rgwoe2] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 10px;
    margin: -2px 0 8px;
    padding: 8px 10px;
    border: 1px solid #edf4f7;
    border-radius: 14px;
    background: #f8fbfd;
    color: var(--alpha-muted);
    font-size: 11px;
    font-weight: 850;
}

.alpha-result-rule-note strong[b-3v20rgwoe2] {
    color: var(--alpha-primary-dark);
    font-size: 12px;
    font-weight: 950;
}

.alpha-result-rule-note span[b-3v20rgwoe2] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.alpha-hero-actions[b-3v20rgwoe2] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex: 0 0 auto;
}

.alpha-row-map-btn[b-3v20rgwoe2] {
    height: 28px;
    min-width: 48px;
    border: 1px solid var(--alpha-primary);
    border-radius: 9px;
    background: #fff;
    color: var(--alpha-primary);
    font-size: 11px;
    font-weight: 950;
    cursor: pointer;
}

.alpha-row-map-btn:hover[b-3v20rgwoe2] {
    background: var(--alpha-soft);
}

.alpha-map-none[b-3v20rgwoe2] {
    color: #94a3b8;
    font-size: 12px;
    font-weight: 800;
}

/* v6: 관리자 수정/삭제는 우측 상세 패널이 아니라 중앙 시료 목록 행 단위로 표시 */
.alpha-row-actions[b-3v20rgwoe2] {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
    white-space: nowrap;
}

.alpha-row-action[b-3v20rgwoe2] {
    height: 28px;
    min-width: 46px;
    padding: 0 9px;
    border: 1px solid #bfdbfe;
    border-radius: 9px;
    background: #fff;
    color: var(--alpha-primary);
    font-size: 11px;
    font-weight: 950;
    cursor: pointer;
}

.alpha-row-action:hover[b-3v20rgwoe2] {
    background: var(--alpha-soft);
}

.alpha-row-action.danger[b-3v20rgwoe2] {
    border-color: #fecaca;
    color: #b91c1c;
}

.alpha-row-action.danger:hover[b-3v20rgwoe2] {
    background: #fef2f2;
}

.alpha-btn-danger[b-3v20rgwoe2] {
    border: 1px solid #ef4444;
    background: #ef4444;
    color: #fff;
}

.alpha-btn-danger:hover[b-3v20rgwoe2] {
    background: #dc2626;
}

.alpha-delete-modal[b-3v20rgwoe2] {
    display: flex;
    flex-direction: column;
    width: min(520px, calc(100vw - 48px));
    overflow: hidden;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 30px 80px rgba(15, 23, 42, 0.32);
}

.alpha-delete-body[b-3v20rgwoe2] {
    display: grid;
    gap: 7px;
    padding: 18px;
    color: var(--alpha-text);
    font-size: 13px;
    font-weight: 800;
}

.alpha-delete-body strong[b-3v20rgwoe2] {
    color: var(--alpha-primary-dark);
    font-size: 17px;
    font-weight: 950;
}

.alpha-delete-body span[b-3v20rgwoe2] {
    color: var(--alpha-muted);
    font-size: 12px;
    font-weight: 800;
}

.alpha-delete-body p[b-3v20rgwoe2] {
    margin: 6px 0 0;
    padding: 10px 12px;
    border-radius: 12px;
    background: #fff7ed;
    color: #9a3412;
    font-size: 12px;
    font-weight: 850;
}

/* Patch 13: AlphaCorona detail/action refinements */
.alpha-management-section[b-3v20rgwoe2] {
    border-color: rgba(37, 99, 235, 0.18);
    background: linear-gradient(180deg, #ffffff, #f8fbff);
}

.alpha-detail-section-head[b-3v20rgwoe2] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}

.alpha-detail-section-head h3[b-3v20rgwoe2] {
    margin: 0;
}

.alpha-link-status-grid[b-3v20rgwoe2] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.alpha-link-status-grid > div[b-3v20rgwoe2] {
    min-width: 0;
    border: 1px solid rgba(203, 213, 225, 0.8);
    border-radius: 14px;
    background: #fff;
    padding: 9px 10px;
}

.alpha-link-status-grid span[b-3v20rgwoe2] {
    display: block;
    color: var(--alpha-muted);
    font-size: 11px;
    font-weight: 850;
}

.alpha-link-status-grid strong[b-3v20rgwoe2] {
    display: block;
    overflow: hidden;
    margin-top: 3px;
    color: var(--alpha-primary-dark);
    font-size: 13px;
    font-weight: 950;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.alpha-row-actions .oh-record-actions[b-3v20rgwoe2] {
    display: inline-flex;
    gap: 6px;
}

.alpha-row-actions .oh-action-btn-sm[b-3v20rgwoe2],
.alpha-row-actions .alpha-row-action[b-3v20rgwoe2] {
    height: 28px;
    min-width: 44px;
    padding: 0 9px;
    border-radius: 9px;
    font-size: 11px;
    font-weight: 900;
}

.alpha-table td small[b-3v20rgwoe2] {
    display: block;
    margin-top: 2px;
    color: var(--alpha-muted);
    font-size: 10px;
    font-weight: 750;
}

/* patch_025_ui_left_panel_alignment: align left-panel list items to the left */
.alpha-left-tabs[b-3v20rgwoe2],
.alpha-side-list[b-3v20rgwoe2],
.alpha-species-status-list[b-3v20rgwoe2],
.alpha-side-card[b-3v20rgwoe2],
.alpha-species-status-card[b-3v20rgwoe2],
.alpha-species-status-card span[b-3v20rgwoe2],
.alpha-species-status-card strong[b-3v20rgwoe2],
.alpha-species-status-card small[b-3v20rgwoe2] {
    text-align: left !important;
}

.alpha-left-tab[b-3v20rgwoe2] {
    text-align: left !important;
    justify-content: flex-start !important;
    padding-left: 10px !important;
}

.alpha-side-card[b-3v20rgwoe2],
.alpha-species-status-card[b-3v20rgwoe2] {
    justify-content: flex-start !important;
    align-items: center !important;
}

.alpha-species-status-card span[b-3v20rgwoe2],
.alpha-species-status-card strong[b-3v20rgwoe2],
.alpha-species-status-card small[b-3v20rgwoe2] {
    justify-self: start !important;
}

/* PATCH 038: keep AlphaCorona page in the same fixed-height pane rule as Ecology/Pathogen. */
.alpha-summary-panel[b-3v20rgwoe2],
.alpha-detail-panel[b-3v20rgwoe2] {
    overflow: hidden !important;
    display: flex;
    flex-direction: column;
}

.alpha-summary-panel > .alpha-side-section[b-3v20rgwoe2],
.alpha-detail-panel > *[b-3v20rgwoe2] {
    min-width: 0;
}

.alpha-summary-panel .alpha-scroll-fill[b-3v20rgwoe2],
.alpha-detail-panel[b-3v20rgwoe2] {
    min-height: 0;
}

.alpha-detail-panel[b-3v20rgwoe2] {
    overflow-y: auto !important;
    scrollbar-gutter: stable;
}

.alpha-side-list[b-3v20rgwoe2],
.alpha-species-status-list[b-3v20rgwoe2],
.alpha-center-body[b-3v20rgwoe2] {
    scrollbar-gutter: stable;
}

.alpha-panel-head[b-3v20rgwoe2] {
    flex: 0 0 auto;
}
/* /Components/Pages/DataManagement.razor.rz.scp.css */
.data-management-grid[b-30kmzbxq23] {
    display: grid;
    grid-template-columns: minmax(320px, .75fr) minmax(0, 1.25fr);
    gap: .65rem;
    align-items: start;
}

.data-management-grid .oh-card[b-30kmzbxq23] {
    min-width: 0;
}

.upload-type-list[b-30kmzbxq23],
.upload-result-panel[b-30kmzbxq23] {
    max-height: 520px;
    overflow: auto;
}

@media (max-width: 1100px) {
    .data-management-grid[b-30kmzbxq23] { grid-template-columns: 1fr; }
    .upload-type-list[b-30kmzbxq23],
    .upload-result-panel[b-30kmzbxq23] { max-height: none; }
}

.oh-check-label[b-30kmzbxq23] {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-weight: 700;
    color: #334155;
    cursor: pointer;
}

.oh-check-label input[type="checkbox"][b-30kmzbxq23] {
    width: 1rem;
    height: 1rem;
}
/* /Components/Pages/DataQuality.razor.rz.scp.css */
.data-quality-grid[b-ihz3e5kg1s] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}

.data-quality-grid .oh-card[b-ihz3e5kg1s] {
    min-width: 0;
}

.data-quality-grid .oh-table-wrap[b-ihz3e5kg1s] {
    max-height: 420px;
}

@media (max-width: 1100px) {
    .data-quality-grid[b-ihz3e5kg1s] { grid-template-columns: 1fr; }
    .data-quality-grid .oh-table-wrap[b-ihz3e5kg1s] { max-height: none; }
}

/* Stage 14: 주요 품질 이슈 카드의 텍스트/작업 버튼 잘림 방지 */
.oh-quality-issue-grid[b-ihz3e5kg1s] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
}

.oh-quality-issue[b-ihz3e5kg1s] {
    min-width: 0;
    min-height: 9.5rem;
    height: auto;
    overflow: visible;
}

.oh-quality-issue-main[b-ihz3e5kg1s] {
    width: 100%;
    min-width: 0;
    align-content: start;
}

.oh-quality-issue-main strong[b-ihz3e5kg1s],
.oh-quality-issue-main small[b-ihz3e5kg1s] {
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: keep-all;
}

.oh-quality-issue-main small[b-ihz3e5kg1s] {
    display: block;
    line-height: 1.5;
}

.oh-issue-actions[b-ihz3e5kg1s] {
    margin-top: auto;
    flex-wrap: wrap;
    align-items: center;
}

.oh-issue-actions .btn[b-ihz3e5kg1s] {
    flex: 0 0 auto;
    white-space: nowrap;
}

@media (max-width: 1300px) {
    .oh-quality-issue-grid[b-ihz3e5kg1s] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 780px) {
    .oh-quality-issue-grid[b-ihz3e5kg1s] { grid-template-columns: 1fr; }
}
/* /Components/Pages/Ecology.razor.rz.scp.css */
/* Real Bat Ecology UI - sample-code based explorer layout */

.bat-workspace[b-icwpeqh8ms] {
    --bat-primary: #0a2a62;
    --bat-primary-dark: #06183f;
    --bat-accent: #38bdf8;
    --bat-soft: #edf5ff;
    --bat-border: #cfe0f6;
    --bat-muted: #64748b;
    --bat-text: #0f172a;
    --bat-card: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 9px;
    min-width: 0;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.bat-hero[b-icwpeqh8ms] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 0;
    flex: 0 0 auto;
}

.bat-eyebrow[b-icwpeqh8ms] {
    margin: 0 0 4px;
    color: var(--bat-accent);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.bat-hero h1[b-icwpeqh8ms] {
    margin: 0;
    color: var(--bat-primary-dark);
    font-size: 22px;
    font-weight: 950;
    letter-spacing: -0.04em;
}

.bat-hero p[b-icwpeqh8ms] {
    margin: 4px 0 0;
    color: var(--bat-muted);
    font-size: 13px;
    font-weight: 650;
}

.bat-hero-actions[b-icwpeqh8ms],
.bat-detail-actions[b-icwpeqh8ms] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.bat-btn[b-icwpeqh8ms],
.bat-mini-btn[b-icwpeqh8ms],
.bat-tab[b-icwpeqh8ms],
.bat-pager button[b-icwpeqh8ms],
.bat-pager select[b-icwpeqh8ms] {
    height: 34px;
    border: 1px solid var(--bat-border);
    border-radius: 10px;
    background: #fff;
    color: var(--bat-primary);
    font-size: 12px;
    font-weight: 900;
    padding: 0 12px;
    white-space: nowrap;
}

.bat-btn-primary[b-icwpeqh8ms] {
    border-color: var(--bat-primary);
    background: var(--bat-primary);
    color: #fff;
}

.bat-btn-ghost[b-icwpeqh8ms],
.bat-btn-outline[b-icwpeqh8ms] {
    background: #fff;
}

.bat-btn-outline:hover[b-icwpeqh8ms],
.bat-btn-ghost:hover[b-icwpeqh8ms],
.bat-mini-btn:hover[b-icwpeqh8ms],
.bat-tab:hover[b-icwpeqh8ms] {
    border-color: rgba(11, 69, 96, 0.35);
    background: var(--bat-soft);
}

.bat-kpi-strip[b-icwpeqh8ms] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    flex: 0 0 auto;
}

.bat-kpi-strip article[b-icwpeqh8ms] {
    min-width: 0;
    padding: 10px 14px;
    border: 1px solid var(--bat-border);
    border-radius: 18px;
    background: linear-gradient(180deg, #fff, #f7fbfd);
    box-shadow: 0 12px 28px rgba(9, 70, 96, 0.06);
}

.bat-kpi-strip span[b-icwpeqh8ms],
.bat-kpi-strip small[b-icwpeqh8ms] {
    display: block;
    overflow: hidden;
    color: var(--bat-muted);
    font-size: 11px;
    font-weight: 850;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bat-kpi-strip strong[b-icwpeqh8ms] {
    display: block;
    margin-top: 3px;
    color: var(--bat-primary-dark);
    font-size: 20px;
    font-weight: 950;
    line-height: 1;
}

.bat-one-screen[b-icwpeqh8ms] {
    display: grid;
    grid-template-columns: minmax(18%, 24%) minmax(42%, 1fr) minmax(22%, 27%);
    gap: 12px;
    align-items: stretch;
    min-height: 0;
    flex: 1 1 auto;
    overflow: hidden;
}

.bat-panel[b-icwpeqh8ms] {
    min-width: 0;
    min-height: 0;
    border: 1px solid var(--bat-border);
    border-radius: 20px;
    background: var(--bat-card);
    box-shadow: 0 16px 32px rgba(9, 70, 96, 0.06);
}

.bat-filter-panel[b-icwpeqh8ms],
.bat-center-panel[b-icwpeqh8ms],
.bat-detail-panel[b-icwpeqh8ms] {
    height: 100%;
    overflow: hidden;
}

.bat-filter-panel[b-icwpeqh8ms],
.bat-detail-panel[b-icwpeqh8ms] {
    padding: 12px;
}

.bat-center-panel[b-icwpeqh8ms] {
    display: flex;
    flex-direction: column;
    padding: 12px;
}

.bat-panel-head[b-icwpeqh8ms] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}

.bat-panel-head h2[b-icwpeqh8ms] {
    margin: 0;
    color: var(--bat-primary-dark);
    font-size: 16px;
    font-weight: 950;
    letter-spacing: -0.02em;
}

.bat-panel-head p[b-icwpeqh8ms] {
    margin: 3px 0 0;
    color: var(--bat-muted);
    font-size: 12px;
    font-weight: 650;
}


.bat-center-search-panel[b-icwpeqh8ms] {
    display: grid;
    grid-template-columns: minmax(22%, 1.4fr) repeat(4, minmax(12%, 1fr)) auto;
    gap: 8px;
    align-items: end;
    flex: 0 0 auto;
    margin-bottom: 10px;
    padding: 10px;
    border: 1px solid var(--bat-border);
    border-radius: 16px;
    background: #f8fbfd;
}

.bat-center-search-panel label[b-icwpeqh8ms] {
    display: grid;
    gap: 4px;
    min-width: 0;
    margin: 0;
}

.bat-center-search-panel span[b-icwpeqh8ms] {
    color: var(--bat-primary);
    font-size: 11px;
    font-weight: 900;
}

.bat-center-search-panel input[b-icwpeqh8ms],
.bat-center-search-panel select[b-icwpeqh8ms] {
    width: 100%;
    height: 34px;
    min-width: 0;
    border: 1px solid var(--bat-border);
    border-radius: 10px;
    background: #fff;
    color: var(--bat-text);
    font-size: 12px;
    font-weight: 750;
    outline: none;
    padding: 0 10px;
}

.bat-center-search-panel input:focus[b-icwpeqh8ms],
.bat-center-search-panel select:focus[b-icwpeqh8ms] {
    border-color: rgba(37, 99, 235, 0.65);
    box-shadow: 0 0 0 3px rgba(34, 199, 201, 0.15);
}

.bat-center-search-actions[b-icwpeqh8ms] {
    display: flex;
    gap: 6px;
    justify-content: flex-end;
    white-space: nowrap;
}

.bat-filter-stack[b-icwpeqh8ms] {
    display: grid;
    gap: 9px;
    margin-bottom: 12px;
}

.bat-filter-stack label[b-icwpeqh8ms] {
    display: grid;
    gap: 4px;
    margin: 0;
}

.bat-filter-stack span[b-icwpeqh8ms] {
    color: var(--bat-primary);
    font-size: 11px;
    font-weight: 900;
}

.bat-filter-stack input[b-icwpeqh8ms],
.bat-filter-stack select[b-icwpeqh8ms] {
    width: 100%;
    height: 34px;
    border: 1px solid var(--bat-border);
    border-radius: 10px;
    background: #fff;
    color: var(--bat-text);
    font-size: 12px;
    font-weight: 700;
    outline: none;
    padding: 0 10px;
}

.bat-filter-stack input:focus[b-icwpeqh8ms],
.bat-filter-stack select:focus[b-icwpeqh8ms] {
    border-color: rgba(37, 99, 235, 0.65);
    box-shadow: 0 0 0 3px rgba(34, 199, 201, 0.15);
}

.bat-search-btn[b-icwpeqh8ms] {
    width: 100%;
}

.bat-taxonomy-box[b-icwpeqh8ms] {
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
    padding-top: 0;
}


.bat-taxonomy-box.only-tree[b-icwpeqh8ms] {
    border-top: 0;
}

.bat-taxonomy-head[b-icwpeqh8ms] {
    align-items: flex-start;
    margin-bottom: 10px;
}

.bat-taxonomy-head > span[b-icwpeqh8ms] {
    color: var(--bat-muted);
    font-size: 11px;
    font-weight: 900;
    white-space: nowrap;
}

.bat-subhead[b-icwpeqh8ms] {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
}

.bat-subhead strong[b-icwpeqh8ms] {
    color: var(--bat-primary-dark);
    font-size: 13px;
    font-weight: 950;
}

.bat-subhead span[b-icwpeqh8ms] {
    color: var(--bat-muted);
    font-size: 11px;
    font-weight: 800;
}

.bat-taxonomy-tree[b-icwpeqh8ms] {
    min-height: 0;
    overflow: auto;
    padding-right: 4px;
}

.bat-taxonomy-tree ul[b-icwpeqh8ms] {
    list-style: none;
    margin: 0;
    padding-left: 12px;
}

.bat-taxonomy-tree > ul[b-icwpeqh8ms] {
    padding-left: 0;
}

.bat-taxonomy-tree li[b-icwpeqh8ms] {
    margin: 5px 0;
}

.bat-tree-node-shell[b-icwpeqh8ms] {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 6px;
    align-items: stretch;
}

.bat-tree-node-shell.active .bat-tree-node[b-icwpeqh8ms] {
    border-color: rgba(37, 99, 235, 0.7);
    background: #eaf8fd;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.12);
}

.bat-tree-expander[b-icwpeqh8ms] {
    width: 28px;
    min-height: 42px;
    border: 1px solid #dbeafe;
    border-radius: 12px;
    background: #eff6ff;
    color: var(--bat-primary);
    font-size: 14px;
    font-weight: 950;
    cursor: pointer;
}

.bat-tree-expander:disabled[b-icwpeqh8ms] {
    opacity: 0.35;
    cursor: default;
}

.bat-tree-node[b-icwpeqh8ms] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 2px 8px;
    width: 100%;
    min-height: 42px;
    padding: 7px 9px;
    border: 1px solid #edf4f7;
    border-radius: 13px;
    background: #f8fbfd;
    text-align: left;
}

.bat-tree-node:hover[b-icwpeqh8ms] {
    border-color: rgba(37, 99, 235, 0.55);
    background: #fff;
}

.bat-tree-node span[b-icwpeqh8ms] {
    align-self: center;
    padding: 2px 7px;
    border-radius: 999px;
    background: #dbeafe;
    color: var(--bat-primary);
    font-size: 10px;
    font-weight: 950;
}

.bat-tree-node strong[b-icwpeqh8ms] {
    overflow: hidden;
    color: var(--bat-text);
    font-size: 12px;
    font-weight: 900;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bat-tree-node small[b-icwpeqh8ms] {
    grid-column: 2;
    overflow: hidden;
    color: var(--bat-muted);
    font-size: 10px;
    font-weight: 750;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bat-list-head[b-icwpeqh8ms] {
    align-items: center;
    flex: 0 0 auto;
}

.bat-tabs[b-icwpeqh8ms] {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.bat-tab[b-icwpeqh8ms] {
    height: 31px;
    padding: 0 10px;
}

.bat-tab.active[b-icwpeqh8ms] {
    border-color: var(--bat-primary);
    background: var(--bat-primary);
    color: #fff;
}

.bat-center-body[b-icwpeqh8ms] {
    min-height: 0;
    flex: 1;
    overflow: auto;
    padding-right: 4px;
}

.bat-species-cards[b-icwpeqh8ms] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.bat-species-card[b-icwpeqh8ms] {
    min-width: 0;
    min-height: 126px;
    padding: 12px;
    border: 1px solid #edf4f7;
    border-radius: 18px;
    background: #fff;
    text-align: left;
    cursor: pointer;
}

.bat-species-card:hover[b-icwpeqh8ms],
.bat-species-card.active[b-icwpeqh8ms] {
    border-color: rgba(37, 99, 235, 0.65);
    background: linear-gradient(180deg, #f5fdff, #fff);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.bat-card-topline[b-icwpeqh8ms] {
    display: flex;
    justify-content: space-between;
    gap: 6px;
    margin-bottom: 8px;
}

.bat-pill[b-icwpeqh8ms],
.bat-link-chip[b-icwpeqh8ms],
.bat-muted-chip[b-icwpeqh8ms] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 22px;
    padding: 0 8px;
    border-radius: 999px;
    background: #eaf4f8;
    color: var(--bat-primary);
    font-size: 10px;
    font-weight: 950;
}

.bat-pill.good[b-icwpeqh8ms] {
    background: #dcfce7;
    color: #047857;
}

.bat-species-card strong[b-icwpeqh8ms] {
    display: block;
    overflow: hidden;
    color: var(--bat-primary-dark);
    font-size: 15px;
    font-weight: 950;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bat-species-card em[b-icwpeqh8ms] {
    display: block;
    overflow: hidden;
    margin-top: 2px;
    color: var(--bat-muted);
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bat-species-card p[b-icwpeqh8ms] {
    display: -webkit-box;
    min-height: 34px;
    margin: 8px 0 8px;
    overflow: hidden;
    color: #334155;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.45;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.bat-card-meta[b-icwpeqh8ms] {
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
}

.bat-card-meta span[b-icwpeqh8ms] {
    padding: 4px 7px;
    border-radius: 9px;
    background: #f1f5f9;
    color: #475569;
    font-size: 10px;
    font-weight: 850;
}

.bat-table-shell[b-icwpeqh8ms] {
    overflow: auto;
    border: 1px solid var(--bat-border);
    border-radius: 16px;
}

.bat-table[b-icwpeqh8ms] {
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
    background: #fff;
}

.bat-table th[b-icwpeqh8ms] {
    position: sticky;
    top: 0;
    z-index: 1;
    height: 36px;
    padding: 0 12px;
    background: #f4f9fc;
    color: var(--bat-primary);
    font-size: 11px;
    font-weight: 950;
    text-align: left;
    white-space: nowrap;
}

.bat-table td[b-icwpeqh8ms] {
    padding: 10px 12px;
    border-top: 1px solid #edf4f7;
    color: #334155;
    font-size: 12px;
    font-weight: 750;
    white-space: nowrap;
}

.bat-table strong[b-icwpeqh8ms] {
    color: var(--bat-primary-dark);
    font-weight: 950;
}

.bat-click-row[b-icwpeqh8ms] {
    cursor: pointer;
}

.bat-click-row:hover[b-icwpeqh8ms] {
    background: #f5fdff;
}

.bat-link-chip[b-icwpeqh8ms] {
    background: #dbeafe;
    color: var(--bat-primary);
}

.bat-muted-chip[b-icwpeqh8ms] {
    background: #f1f5f9;
    color: var(--bat-muted);
}

.bat-summary-board[b-icwpeqh8ms] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.bat-summary-board article[b-icwpeqh8ms] {
    min-width: 0;
    padding: 12px;
    border: 1px solid #edf4f7;
    border-radius: 16px;
    background: #f8fbfd;
}

.bat-summary-board span[b-icwpeqh8ms] {
    display: block;
    color: var(--bat-muted);
    font-size: 11px;
    font-weight: 900;
}

.bat-summary-board strong[b-icwpeqh8ms] {
    display: block;
    overflow: hidden;
    margin-top: 5px;
    color: var(--bat-primary-dark);
    font-size: 14px;
    font-weight: 950;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bat-privacy-note[b-icwpeqh8ms] {
    margin: 12px 0 0;
    padding: 12px;
    border: 1px solid #fde68a;
    border-radius: 14px;
    background: #fffbeb;
    color: #92400e;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.55;
}

.bat-detail-panel[b-icwpeqh8ms] {
    overflow: auto;
}

.bat-detail-title[b-icwpeqh8ms] {
    padding: 12px;
    border-radius: 18px;
    background: linear-gradient(180deg, #f5fdff, #eef7fb);
}

.bat-detail-title span[b-icwpeqh8ms] {
    display: inline-flex;
    padding: 3px 8px;
    border-radius: 999px;
    background: #fff;
    color: var(--bat-primary);
    font-size: 10px;
    font-weight: 950;
}

.bat-detail-title h2[b-icwpeqh8ms] {
    margin: 8px 0 0;
    color: var(--bat-primary-dark);
    font-size: 21px;
    font-weight: 950;
    letter-spacing: -0.03em;
}

.bat-detail-title p[b-icwpeqh8ms] {
    margin: 3px 0 0;
    color: var(--bat-muted);
    font-size: 12px;
    font-weight: 700;
}

.bat-detail-tags[b-icwpeqh8ms] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 12px 0;
}

.bat-detail-tags span[b-icwpeqh8ms] {
    padding: 5px 8px;
    border-radius: 999px;
    background: #eef6fa;
    color: var(--bat-primary);
    font-size: 10px;
    font-weight: 900;
}

.bat-detail-section[b-icwpeqh8ms] {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #edf4f7;
}

.bat-detail-section.highlight[b-icwpeqh8ms] {
    padding: 12px;
    border: 1px solid rgba(34, 199, 201, 0.25);
    border-radius: 16px;
    background: #f7fdff;
}

.bat-detail-section h3[b-icwpeqh8ms] {
    margin: 0 0 8px;
    color: var(--bat-primary-dark);
    font-size: 14px;
    font-weight: 950;
}

.bat-detail-section p[b-icwpeqh8ms] {
    margin: 0;
    color: #334155;
    font-size: 12px;
    font-weight: 750;
    line-height: 1.6;
}

.bat-detail-list[b-icwpeqh8ms] {
    display: grid;
    gap: 6px;
    margin: 0;
}

.bat-detail-list div[b-icwpeqh8ms] {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 8px;
    align-items: start;
    min-height: 32px;
    padding: 8px 10px;
    border-radius: 12px;
    background: #f8fbfd;
}

.bat-detail-list dt[b-icwpeqh8ms] {
    color: var(--bat-muted);
    font-size: 11px;
    font-weight: 950;
}

.bat-detail-list dd[b-icwpeqh8ms] {
    margin: 0;
    color: #334155;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.45;
}

.bat-empty[b-icwpeqh8ms] {
    padding: 24px;
    border: 1px dashed var(--bat-border);
    border-radius: 16px;
    background: #f8fbfd;
    color: var(--bat-muted);
    font-size: 13px;
    font-weight: 850;
    text-align: center;
}

.bat-empty.compact[b-icwpeqh8ms] {
    padding: 12px;
    font-size: 12px;
}

.bat-pager[b-icwpeqh8ms] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 10px;
    color: var(--bat-muted);
    font-size: 12px;
    font-weight: 850;
}

.bat-pager div[b-icwpeqh8ms] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.bat-pager button:disabled[b-icwpeqh8ms] {
    opacity: 0.45;
}

@media (max-width: 1500px) {
    .bat-one-screen[b-icwpeqh8ms] {
        grid-template-columns: 285px minmax(480px, 1fr) 320px;
    }

    .bat-species-cards[b-icwpeqh8ms] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 1180px) {
    .bat-one-screen[b-icwpeqh8ms] {
        grid-template-columns: 1fr;
    }

    .bat-filter-panel[b-icwpeqh8ms],
    .bat-center-panel[b-icwpeqh8ms],
    .bat-detail-panel[b-icwpeqh8ms] {
        height: auto;
        max-height: none;
    }

    
.bat-center-search-panel[b-icwpeqh8ms] {
    display: grid;
    grid-template-columns: minmax(22%, 1.4fr) repeat(4, minmax(12%, 1fr)) auto;
    gap: 8px;
    align-items: end;
    flex: 0 0 auto;
    margin-bottom: 10px;
    padding: 10px;
    border: 1px solid var(--bat-border);
    border-radius: 16px;
    background: #f8fbfd;
}

.bat-center-search-panel label[b-icwpeqh8ms] {
    display: grid;
    gap: 4px;
    min-width: 0;
    margin: 0;
}

.bat-center-search-panel span[b-icwpeqh8ms] {
    color: var(--bat-primary);
    font-size: 11px;
    font-weight: 900;
}

.bat-center-search-panel input[b-icwpeqh8ms],
.bat-center-search-panel select[b-icwpeqh8ms] {
    width: 100%;
    height: 34px;
    min-width: 0;
    border: 1px solid var(--bat-border);
    border-radius: 10px;
    background: #fff;
    color: var(--bat-text);
    font-size: 12px;
    font-weight: 750;
    outline: none;
    padding: 0 10px;
}

.bat-center-search-panel input:focus[b-icwpeqh8ms],
.bat-center-search-panel select:focus[b-icwpeqh8ms] {
    border-color: rgba(37, 99, 235, 0.65);
    box-shadow: 0 0 0 3px rgba(34, 199, 201, 0.15);
}

.bat-center-search-actions[b-icwpeqh8ms] {
    display: flex;
    gap: 6px;
    justify-content: flex-end;
    white-space: nowrap;
}

.bat-filter-stack[b-icwpeqh8ms] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .bat-taxonomy-box[b-icwpeqh8ms] {
        height: 240px;
    }
}

@media (max-width: 900px) {
    .bat-hero[b-icwpeqh8ms],
    .bat-panel-head[b-icwpeqh8ms],
    .bat-pager[b-icwpeqh8ms] {
        align-items: stretch;
        flex-direction: column;
    }

    .bat-kpi-strip[b-icwpeqh8ms],
    .bat-filter-stack[b-icwpeqh8ms],
    .bat-summary-board[b-icwpeqh8ms] {
        grid-template-columns: 1fr;
    }

    .bat-tabs[b-icwpeqh8ms],
    .bat-hero-actions[b-icwpeqh8ms],
    .bat-detail-actions[b-icwpeqh8ms] {
        justify-content: flex-start;
    }
}


/* 상단 메뉴형 공통 레이아웃 기준: ecology는 page scroll 없이 내부 패널만 스크롤 */
:host[b-icwpeqh8ms] { display: block; height: 100%; min-height: 0; overflow: hidden; }

@media (min-width: 1181px) {
    .bat-hero[b-icwpeqh8ms] { flex: 0 0 auto; }
    .bat-kpi-strip[b-icwpeqh8ms] { flex: 0 0 auto; }
    .bat-one-screen[b-icwpeqh8ms] { flex: 1 1 auto; min-height: 0; }
}

.bat-row-action[b-icwpeqh8ms] {
    min-height: 26px;
    padding: 0 9px;
    border: 1px solid var(--bat-border);
    border-radius: 999px;
    background: #fff;
    color: var(--bat-primary);
    font-size: 10px;
    font-weight: 950;
}

.bat-row-action:hover:not(:disabled)[b-icwpeqh8ms] {
    border-color: var(--bat-primary);
    background: var(--bat-primary);
    color: #fff;
}

.bat-row-action:disabled[b-icwpeqh8ms] {
    opacity: .45;
    cursor: not-allowed;
}

.bat-sample-table[b-icwpeqh8ms] {
    min-width: 980px;
}

.bat-matrix-note[b-icwpeqh8ms] {
    margin-bottom: 10px;
    padding: 10px 12px;
    border: 1px solid #fde68a;
    border-radius: 14px;
    background: #fffbeb;
    color: #92400e;
    font-size: 12px;
    font-weight: 850;
}

.bat-matrix-shell[b-icwpeqh8ms] {
    max-height: calc(100vh - 330px);
}

.bat-matrix-table[b-icwpeqh8ms] {
    min-width: 980px;
}

.bat-matrix-table th[b-icwpeqh8ms],
.bat-matrix-table td[b-icwpeqh8ms] {
    text-align: center;
}

.bat-matrix-table .bat-sticky-col[b-icwpeqh8ms] {
    position: sticky;
    left: 0;
    z-index: 2;
    min-width: 210px;
    text-align: left;
    background: #fff;
    box-shadow: 1px 0 0 #edf4f7;
}

.bat-matrix-table thead .bat-sticky-col[b-icwpeqh8ms] {
    z-index: 3;
    background: #f4f9fc;
}

.bat-matrix-species[b-icwpeqh8ms] {
    display: grid;
    gap: 2px;
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
}

.bat-matrix-species strong[b-icwpeqh8ms] {
    color: var(--bat-primary-dark);
    font-size: 12px;
    font-weight: 950;
}

.bat-matrix-species em[b-icwpeqh8ms] {
    color: var(--bat-muted);
    font-size: 10px;
    font-weight: 750;
}

.bat-matrix-cell[b-icwpeqh8ms] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    min-height: 24px;
    padding: 0 7px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 950;
}

.bat-matrix-cell.detected[b-icwpeqh8ms] {
    background: #dcfce7;
    color: #047857;
}

.bat-admin-section[b-icwpeqh8ms] {
    border-top-color: #dbeafe;
}

.bat-matrix-cell.positive[b-icwpeqh8ms] {
    background: #dcfce7;
    color: #047857;
}

.bat-matrix-cell.negative[b-icwpeqh8ms] {
    background: #fee2e2;
    color: #b91c1c;
}

.bat-matrix-cell.mixed[b-icwpeqh8ms] {
    background: #fef3c7;
    color: #92400e;
}

.bat-matrix-cell.reported[b-icwpeqh8ms] {
    background: #fef3c7;
    color: #b45309;
}

.bat-matrix-cell.analysis[b-icwpeqh8ms] {
    background: #dbeafe;
    color: #1d4ed8;
}

.bat-matrix-cell.none[b-icwpeqh8ms] {
    background: #f1f5f9;
    color: #94a3b8;
}

.bat-selected-row td[b-icwpeqh8ms] {
    background: #f5fdff;
}

.bat-admin-note[b-icwpeqh8ms] {
    margin: 8px 0 0;
    color: var(--bat-muted);
    font-size: 11px;
    font-weight: 750;
    line-height: 1.5;
}

.bat-map-modal-backdrop[b-icwpeqh8ms] {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
    background: rgba(15, 23, 42, .45);
}

.bat-map-modal[b-icwpeqh8ms] {
    display: flex;
    flex-direction: column;
    width: min(96vw, 1600px);
    height: min(92vh, 920px);
    min-height: 0;
    padding: 16px;
    border: 1px solid var(--bat-border);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 30px 70px rgba(15, 23, 42, .25);
}

.bat-map-modal-head[b-icwpeqh8ms] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.bat-map-modal-head h2[b-icwpeqh8ms] {
    margin: 0;
    color: var(--bat-primary-dark);
    font-size: 18px;
    font-weight: 950;
}

.bat-map-modal-head p[b-icwpeqh8ms] {
    margin: 4px 0 0;
    color: var(--bat-muted);
    font-size: 12px;
    font-weight: 700;
}

.bat-map-layer-tabs[b-icwpeqh8ms] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
}

.bat-map-modal-grid[b-icwpeqh8ms] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: 14px;
    min-height: 0;
    flex: 1;
}

.bat-sample-map[b-icwpeqh8ms] {
    min-height: 0;
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--bat-border);
    border-radius: 20px;
    background: #eef6fa;
}

.bat-map-sample-list[b-icwpeqh8ms] {
    min-width: 0;
    min-height: 0;
    overflow: auto;
    padding: 12px;
    border: 1px solid var(--bat-border);
    border-radius: 20px;
    background: #f8fbfd;
}

.bat-map-sample-list h3[b-icwpeqh8ms] {
    margin: 0 0 10px;
    color: var(--bat-primary-dark);
    font-size: 14px;
    font-weight: 950;
}

.bat-map-sample-card[b-icwpeqh8ms] {
    display: grid;
    gap: 5px;
    width: 100%;
    padding: 12px;
    border: 1px solid #edf4f7;
    border-radius: 16px;
    background: #fff;
    text-align: left;
}

.bat-map-sample-card.active[b-icwpeqh8ms] {
    border-color: rgba(37, 99, 235, 0.55);
    background: #f5fdff;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .10);
}

.bat-map-sample-card strong[b-icwpeqh8ms] {
    color: var(--bat-primary-dark);
    font-size: 13px;
    font-weight: 950;
}

.bat-map-sample-card span[b-icwpeqh8ms],
.bat-map-sample-card small[b-icwpeqh8ms] {
    color: var(--bat-muted);
    font-size: 11px;
    font-weight: 750;
}

@media (max-width: 1180px) {
    .bat-map-modal-grid[b-icwpeqh8ms] {
        grid-template-columns: 1fr;
    }

    .bat-map-sample-list[b-icwpeqh8ms] {
        max-height: 220px;
    }
}

.bat-taxonomy-admin-tools[b-icwpeqh8ms] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    margin: 8px 0 10px;
}

.bat-mini-btn.danger[b-icwpeqh8ms],
.bat-btn-danger[b-icwpeqh8ms] {
    border-color: #fecaca;
    background: #fff5f5;
    color: #b91c1c;
}

.bat-tree-node.active[b-icwpeqh8ms] {
    border-color: rgba(37, 99, 235, .45);
    background: #eaf7fb;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, .08);
}

.bat-matrix-tools[b-icwpeqh8ms] {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}

.bat-matrix-tools .bat-matrix-note[b-icwpeqh8ms] {
    flex: 1 1 auto;
    margin-bottom: 0;
}

.bat-matrix-tools label[b-icwpeqh8ms] {
    display: grid;
    gap: 4px;
    min-width: 130px;
    padding: 8px 10px;
    border: 1px solid var(--bat-border);
    border-radius: 14px;
    background: #fff;
}

.bat-matrix-tools label span[b-icwpeqh8ms] {
    color: var(--bat-muted);
    font-size: 10px;
    font-weight: 900;
}

.bat-matrix-tools select[b-icwpeqh8ms] {
    min-height: 30px;
    border: 1px solid var(--bat-border);
    border-radius: 10px;
    color: var(--bat-primary-dark);
    font-size: 11px;
    font-weight: 850;
}

.bat-matrix-legend[b-icwpeqh8ms] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
}

.bat-matrix-legend span[b-icwpeqh8ms] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 24px;
    padding: 0 8px;
    border: 1px solid var(--bat-border);
    border-radius: 999px;
    background: #fff;
    color: var(--bat-muted);
    font-size: 10px;
    font-weight: 850;
}

.bat-matrix-legend b[b-icwpeqh8ms] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    min-height: 18px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 950;
}

.bat-matrix-legend b.positive[b-icwpeqh8ms] { background: #dcfce7; color: #047857; }
.bat-matrix-legend b.negative[b-icwpeqh8ms] { background: #fee2e2; color: #b91c1c; }
.bat-matrix-legend b.mixed[b-icwpeqh8ms] { background: #fef3c7; color: #92400e; }
.bat-matrix-legend b.analysis[b-icwpeqh8ms] { background: #dbeafe; color: #1d4ed8; }
.bat-matrix-legend b.reported[b-icwpeqh8ms] { background: #fef3c7; color: #b45309; }

.bat-matrix-cell-button[b-icwpeqh8ms] {
    display: inline-flex;
    padding: 0;
    border: 0;
    background: transparent;
}

.bat-matrix-cell-button:disabled[b-icwpeqh8ms] {
    cursor: default;
}

.bat-editor-modal[b-icwpeqh8ms],
.bat-confirm-modal[b-icwpeqh8ms] {
    display: flex;
    flex-direction: column;
    width: min(96vw, 720px);
    max-height: min(92vh, 760px);
    overflow: auto;
    padding: 16px;
    border: 1px solid var(--bat-border);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 30px 70px rgba(15, 23, 42, .25);
}

.bat-confirm-modal[b-icwpeqh8ms] {
    width: min(92vw, 520px);
}

.bat-editor-modal-head[b-icwpeqh8ms] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.bat-editor-modal-head h2[b-icwpeqh8ms],
.bat-confirm-modal h2[b-icwpeqh8ms] {
    margin: 0;
    color: var(--bat-primary-dark);
    font-size: 18px;
    font-weight: 950;
}

.bat-editor-modal-head p[b-icwpeqh8ms],
.bat-confirm-modal p[b-icwpeqh8ms] {
    margin: 4px 0 0;
    color: var(--bat-muted);
    font-size: 12px;
    font-weight: 750;
    line-height: 1.5;
}

.bat-editor-form[b-icwpeqh8ms] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.bat-editor-form label[b-icwpeqh8ms] {
    display: grid;
    gap: 5px;
}

.bat-editor-form label span[b-icwpeqh8ms],
.bat-checkline span[b-icwpeqh8ms] {
    color: var(--bat-primary-dark);
    font-size: 11px;
    font-weight: 900;
}

.bat-editor-form input[b-icwpeqh8ms],
.bat-editor-form select[b-icwpeqh8ms],
.bat-editor-form textarea[b-icwpeqh8ms] {
    width: 100%;
    min-height: 34px;
    padding: 7px 10px;
    border: 1px solid var(--bat-border);
    border-radius: 12px;
    background: #fff;
    color: var(--bat-primary-dark);
    font-size: 12px;
    font-weight: 750;
}

.bat-editor-wide[b-icwpeqh8ms] {
    grid-column: 1 / -1;
}

.bat-checkline[b-icwpeqh8ms] {
    display: inline-flex !important;
    grid-column: 1 / -1;
    align-items: center;
    gap: 8px !important;
}

.bat-checkline input[b-icwpeqh8ms] {
    width: auto;
    min-height: auto;
}

.bat-editor-actions[b-icwpeqh8ms] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 16px;
}

@media (max-width: 900px) {
    .bat-editor-form[b-icwpeqh8ms],
    .bat-taxonomy-admin-tools[b-icwpeqh8ms] {
        grid-template-columns: 1fr;
    }

    .bat-matrix-tools[b-icwpeqh8ms] {
        flex-direction: column;
    }
}

.bat-row-actions[b-icwpeqh8ms] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.bat-row-action.danger[b-icwpeqh8ms] {
    border-color: #fecaca;
    color: #b91c1c;
}

.bat-row-action.danger:hover:not(:disabled)[b-icwpeqh8ms] {
    border-color: #b91c1c;
    background: #b91c1c;
    color: #fff;
}

.bat-inline-filter[b-icwpeqh8ms] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
    padding: 8px 10px;
    border: 1px solid #bfdbfe;
    border-radius: 14px;
    background: #eff6ff;
    color: #1e3a8a;
    font-size: 12px;
    font-weight: 850;
}

.bat-inline-filter strong[b-icwpeqh8ms] {
    color: #0f172a;
    font-weight: 950;
}

.bat-impact-box[b-icwpeqh8ms] {
    display: grid;
    gap: 6px;
    margin: 12px 0;
    padding: 12px;
    border: 1px solid #fde68a;
    border-radius: 14px;
    background: #fffbeb;
    color: #92400e;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.45;
}

.bat-impact-box strong[b-icwpeqh8ms] {
    color: #78350f;
    font-weight: 950;
}

.bat-matrix-table thead th[b-icwpeqh8ms] {
    position: sticky;
    top: 0;
    z-index: 2;
}

.bat-matrix-table thead .bat-sticky-col[b-icwpeqh8ms] {
    z-index: 4;
}

.bat-matrix-cell-button:hover:not(:disabled) .bat-matrix-cell[b-icwpeqh8ms] {
    box-shadow: 0 0 0 2px rgba(37, 99, 235, .16);
    transform: translateY(-1px);
}


@media (max-width: 1500px) {
    .bat-one-screen[b-icwpeqh8ms] {
        grid-template-columns: minmax(20%, 25%) minmax(40%, 1fr) minmax(24%, 28%);
    }

    .bat-center-search-panel[b-icwpeqh8ms] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .bat-center-search-actions[b-icwpeqh8ms] {
        grid-column: span 3;
    }
}

@media (max-width: 1180px) {
    .bat-one-screen[b-icwpeqh8ms] {
        grid-template-columns: 1fr;
        overflow: auto;
    }

    .bat-filter-panel[b-icwpeqh8ms],
    .bat-center-panel[b-icwpeqh8ms],
    .bat-detail-panel[b-icwpeqh8ms] {
        height: auto;
        min-height: 42dvh;
    }
}

/* hotfix 018: 검색 조건을 페이지 상단 독립 필터 바처럼 사용하고, 중앙 패널은 탭 콘텐츠만 담당 */
.bat-workspace[b-icwpeqh8ms] {
    gap: clamp(8px, 0.9dvh, 12px);
    height: 100%;
    max-height: 100%;
    overflow: hidden;
}

.bat-hero[b-icwpeqh8ms] {
    align-items: center;
}

.bat-center-search-panel[b-icwpeqh8ms] {
    flex: 0 0 auto;
    display: grid;
    grid-template-columns: minmax(24%, 1.6fr) repeat(4, minmax(10%, 1fr)) auto;
    align-items: end;
    gap: 8px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid var(--bat-border);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(9, 70, 96, 0.05);
}

.bat-one-screen[b-icwpeqh8ms] {
    min-height: 0;
}

.bat-taxonomy-box.only-tree[b-icwpeqh8ms] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.bat-taxonomy-tree[b-icwpeqh8ms] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding-right: 4px;
}

.bat-center-body[b-icwpeqh8ms] {
    min-height: 0;
    overflow: auto;
}

.bat-pager[b-icwpeqh8ms] {
    justify-content: center;
    margin-top: auto;
    padding: 10px 0 2px;
    text-align: center;
}

.bat-pager > span[b-icwpeqh8ms] {
    min-width: 150px;
    text-align: right;
}

.bat-pager .bat-pager-controls[b-icwpeqh8ms] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.bat-pager b[b-icwpeqh8ms] {
    min-width: 64px;
    color: var(--bat-primary-dark);
    font-weight: 950;
    text-align: center;
}

.bat-pager button[b-icwpeqh8ms] {
    min-width: 56px;
    border-color: #b7c9e3;
    background: #f8fbff;
}

.bat-pager button:not(:disabled):hover[b-icwpeqh8ms] {
    border-color: var(--bat-primary);
    background: var(--bat-primary);
    color: #fff;
}

@media (max-width: 1500px) {
    .bat-center-search-panel[b-icwpeqh8ms] {
        grid-template-columns: minmax(220px, 1.4fr) repeat(2, minmax(140px, 1fr)) auto;
    }

    .bat-center-search-actions[b-icwpeqh8ms] {
        grid-column: auto;
    }
}

@media (max-width: 1180px) {
    .bat-workspace[b-icwpeqh8ms] {
        height: auto;
        max-height: none;
        overflow: visible;
    }

    .bat-center-search-panel[b-icwpeqh8ms] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .bat-center-search-actions[b-icwpeqh8ms] {
        grid-column: span 2;
    }

    .bat-taxonomy-box.only-tree[b-icwpeqh8ms] {
        max-height: 48dvh;
    }
}

@media (max-width: 720px) {
    .bat-center-search-panel[b-icwpeqh8ms] {
        grid-template-columns: 1fr;
    }

    .bat-center-search-actions[b-icwpeqh8ms] {
        grid-column: auto;
    }

    .bat-pager[b-icwpeqh8ms] {
        flex-direction: column;
    }

    .bat-pager > span[b-icwpeqh8ms] {
        min-width: 0;
        text-align: center;
    }
}

/* hotfix 019: ecology final UI cleanup */
.bat-hero[b-icwpeqh8ms] {
    justify-content: flex-start;
}

.bat-hero-actions[b-icwpeqh8ms] {
    display: none !important;
}

/* 우측 상세 패널도 좌/중앙 목록처럼 카드 단위로 보이도록 정리 */
.bat-detail-panel[b-icwpeqh8ms] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px;
    overflow: auto;
}

.bat-detail-title[b-icwpeqh8ms],
.bat-detail-tags[b-icwpeqh8ms],
.bat-detail-section[b-icwpeqh8ms] {
    margin: 0;
    border: 1px solid var(--bat-border);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(9, 70, 96, 0.04);
}

.bat-detail-title[b-icwpeqh8ms] {
    padding: 14px;
    background: linear-gradient(180deg, #f5fdff, #eef7fb);
}

.bat-detail-tags[b-icwpeqh8ms] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 10px;
}

.bat-detail-section[b-icwpeqh8ms] {
    padding: 12px;
    border-top: 1px solid var(--bat-border);
}

.bat-detail-section.highlight[b-icwpeqh8ms] {
    border: 1px solid rgba(34, 199, 201, 0.35);
    background: #f7fdff;
}

.bat-detail-section-headline[b-icwpeqh8ms] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
}

.bat-detail-section-headline h3[b-icwpeqh8ms] {
    margin: 0;
}

/* 연관 병원체 Matrix chip이 기본 HTML 버튼처럼 보이지 않도록 전용 chip 스타일 적용 */
.bat-selected-matrix-list[b-icwpeqh8ms] {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.bat-pathogen-chip[b-icwpeqh8ms] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 28px;
    padding: 0 10px;
    border: 1px solid #f8d98a;
    border-radius: 999px;
    background: #fff7d6;
    color: #92400e;
    font-size: 11px;
    font-weight: 950;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(146, 64, 14, 0.08);
}

.bat-pathogen-chip strong[b-icwpeqh8ms],
.bat-pathogen-chip span[b-icwpeqh8ms] {
    color: inherit;
    font-size: inherit;
    font-weight: 950;
}

.bat-pathogen-chip.detected[b-icwpeqh8ms],
.bat-pathogen-chip.positive[b-icwpeqh8ms] {
    border-color: #86efac;
    background: #dcfce7;
    color: #047857;
}

.bat-pathogen-chip.negative[b-icwpeqh8ms] {
    border-color: #fecaca;
    background: #fee2e2;
    color: #b91c1c;
}

.bat-pathogen-chip.mixed[b-icwpeqh8ms],
.bat-pathogen-chip.reported[b-icwpeqh8ms] {
    border-color: #fde68a;
    background: #fef3c7;
    color: #92400e;
}

.bat-pathogen-chip.analysis[b-icwpeqh8ms] {
    border-color: #bfdbfe;
    background: #dbeafe;
    color: #1d4ed8;
}

.bat-pathogen-chip:hover[b-icwpeqh8ms] {
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(15, 23, 42, 0.12);
}

/* 페이저: 중앙에는 이전/다음만, 건수 범위는 오른쪽 끝에 배치 */
.bat-pager.oh-fixed-pager[b-icwpeqh8ms],
.bat-pager[b-icwpeqh8ms] {
    display: grid !important;
    grid-template-columns: minmax(120px, 1fr) auto minmax(120px, 1fr);
    align-items: center;
    justify-content: stretch;
    gap: 10px;
    width: 100%;
    margin-top: 10px;
    padding: 8px 0 2px;
}

.bat-pager-spacer[b-icwpeqh8ms] {
    min-width: 0;
}

.bat-pager .bat-pager-controls[b-icwpeqh8ms] {
    grid-column: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.bat-pager-range[b-icwpeqh8ms],
.bat-pager > span[b-icwpeqh8ms] {
    grid-column: 3;
    justify-self: end;
    min-width: 0;
    color: var(--bat-muted);
    font-size: 12px;
    font-weight: 900;
    text-align: right;
    white-space: nowrap;
}

@media (max-width: 720px) {
    .bat-pager.oh-fixed-pager[b-icwpeqh8ms],
    .bat-pager[b-icwpeqh8ms] {
        grid-template-columns: 1fr;
    }

    .bat-pager .bat-pager-controls[b-icwpeqh8ms],
    .bat-pager-range[b-icwpeqh8ms],
    .bat-pager > span[b-icwpeqh8ms] {
        grid-column: 1;
        justify-self: center;
        text-align: center;
    }
}

/* hotfix_020: page-local enforcement for visible admin/modal buttons. */
.bat-btn-primary[b-icwpeqh8ms],
.bat-editor-actions .bat-btn-primary[b-icwpeqh8ms],
.bat-editor-actions .oh-action-primary[b-icwpeqh8ms],
.bat-btn.oh-action-primary[b-icwpeqh8ms] {
    background: #0a2a62 !important;
    border: 1px solid #06183f !important;
    color: #ffffff !important;
    box-shadow: 0 10px 22px rgba(10, 42, 98, .22) !important;
}

.bat-btn-secondary[b-icwpeqh8ms],
.bat-editor-actions .bat-btn-ghost[b-icwpeqh8ms],
.bat-editor-actions .oh-action-secondary[b-icwpeqh8ms],
.bat-btn.oh-action-secondary[b-icwpeqh8ms] {
    background: #334155 !important;
    border: 1px solid #1e293b !important;
    color: #ffffff !important;
    box-shadow: 0 9px 18px rgba(15, 23, 42, .18) !important;
}

.bat-btn-danger[b-icwpeqh8ms],
.bat-editor-actions .bat-btn-danger[b-icwpeqh8ms],
.bat-editor-actions .oh-action-danger[b-icwpeqh8ms],
.bat-mini-btn.danger[b-icwpeqh8ms],
.bat-row-action.danger[b-icwpeqh8ms],
.oh-admin-action-delete[b-icwpeqh8ms] {
    background: #dc2626 !important;
    border: 1px solid #991b1b !important;
    color: #ffffff !important;
    box-shadow: 0 9px 18px rgba(220, 38, 38, .18) !important;
}

.oh-admin-action-create[b-icwpeqh8ms] {
    background: #0f766e !important;
    border: 1px solid #115e59 !important;
    color: #ffffff !important;
    box-shadow: 0 8px 16px rgba(15, 118, 110, .16) !important;
}

.oh-admin-action-edit[b-icwpeqh8ms] {
    background: #1d4ed8 !important;
    border: 1px solid #1e40af !important;
    color: #ffffff !important;
    box-shadow: 0 8px 16px rgba(29, 78, 216, .16) !important;
}

.bat-row-action:not(.oh-admin-action):not(.danger)[b-icwpeqh8ms],
.oh-user-action[b-icwpeqh8ms] {
    background: #ffffff !important;
    border: 1px solid #bfdbfe !important;
    color: #0a2a62 !important;
    box-shadow: none !important;
}

.bat-center-search-panel .oh-field-search input[b-icwpeqh8ms] {
    padding-left: 34px !important;
    border-color: #7dd3fc !important;
    background: #ffffff !important;
}

.bat-center-search-panel .oh-field-select select[b-icwpeqh8ms] {
    padding-right: 34px !important;
    border-color: #bfdbfe !important;
    background-color: #f8fbff !important;
    box-shadow: inset 3px 0 0 #93c5fd !important;
}

.bat-center-search-panel .oh-field-search[b-icwpeqh8ms]::after,
.bat-center-search-panel .oh-field-select[b-icwpeqh8ms]::after {
    position: absolute;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 16px;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 950;
    pointer-events: none;
}

.bat-center-search-panel .oh-field-search[b-icwpeqh8ms]::after {
    content: "검색";
    left: 9px;
    bottom: 9px;
    width: 20px;
    background: #e0f2fe;
    color: #0369a1;
}

.bat-center-search-panel .oh-field-select[b-icwpeqh8ms]::after {
    content: "선택";
    right: 9px;
    bottom: 9px;
    width: 22px;
    background: #dbeafe;
    color: #1d4ed8;
}

/* hotfix_021: restore compact ecology filter bar.
   Page-local CSS had badge-style search/select overrides; neutralize them here. */
.bat-center-search-panel.oh-page-filter-strip[b-icwpeqh8ms] {
    display: grid !important;
    grid-template-columns: minmax(260px, 1.65fr) repeat(4, minmax(130px, .9fr)) auto !important;
    gap: 8px !important;
    align-items: end !important;
    padding: 10px 12px !important;
}

.bat-center-search-panel.oh-page-filter-strip label[b-icwpeqh8ms],
.bat-center-search-panel.oh-page-filter-strip .oh-field[b-icwpeqh8ms] {
    display: grid !important;
    gap: 4px !important;
    min-width: 0 !important;
    margin: 0 !important;
}

.bat-center-search-panel.oh-page-filter-strip .wide[b-icwpeqh8ms] {
    grid-column: auto !important;
}

.bat-center-search-panel.oh-page-filter-strip input[b-icwpeqh8ms],
.bat-center-search-panel.oh-page-filter-strip select[b-icwpeqh8ms] {
    height: 34px !important;
    min-height: 34px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.bat-center-search-panel.oh-page-filter-strip .oh-field-search input[b-icwpeqh8ms] {
    padding-left: 12px !important;
    border: 1px solid #8ec5ff !important;
    background: #fff !important;
    box-shadow: inset 3px 0 0 #38bdf8 !important;
}

.bat-center-search-panel.oh-page-filter-strip .oh-field-select select[b-icwpeqh8ms] {
    padding-left: 12px !important;
    padding-right: 28px !important;
    border: 1px solid #c7d7ee !important;
    background-color: #f8fbff !important;
    box-shadow: inset 3px 0 0 #cbd5e1 !important;
}

.bat-center-search-panel.oh-page-filter-strip .oh-field-search[b-icwpeqh8ms]::after,
.bat-center-search-panel.oh-page-filter-strip .oh-field-select[b-icwpeqh8ms]::after {
    content: none !important;
    display: none !important;
}

.bat-center-search-panel.oh-page-filter-strip .bat-center-search-actions[b-icwpeqh8ms] {
    grid-column: auto !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: end !important;
    justify-content: flex-end !important;
    gap: 6px !important;
    white-space: nowrap !important;
}

@media (max-width: 1500px) {
    .bat-center-search-panel.oh-page-filter-strip[b-icwpeqh8ms] {
        grid-template-columns: minmax(220px, 1.35fr) repeat(2, minmax(140px, 1fr)) auto !important;
    }
}

@media (max-width: 900px) {
    .bat-center-search-panel.oh-page-filter-strip[b-icwpeqh8ms] {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .bat-center-search-panel.oh-page-filter-strip .bat-center-search-actions[b-icwpeqh8ms] {
        grid-column: 1 / -1 !important;
    }
}

@media (max-width: 640px) {
    .bat-center-search-panel.oh-page-filter-strip[b-icwpeqh8ms] {
        grid-template-columns: 1fr !important;
    }
}

/* hotfix_022: final compact ecology filter bar and profile editor. */
.bat-center-search-panel.oh-page-filter-strip[b-icwpeqh8ms] {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-end !important;
    gap: 8px !important;
    padding: 10px 12px !important;
}

.bat-center-search-panel.oh-page-filter-strip .oh-field[b-icwpeqh8ms] {
    flex: 1 1 150px !important;
    min-width: 140px !important;
    max-width: none !important;
}

.bat-center-search-panel.oh-page-filter-strip .wide.oh-field[b-icwpeqh8ms] {
    flex: 1.65 1 280px !important;
    min-width: 260px !important;
}

.bat-center-search-panel.oh-page-filter-strip .bat-center-search-actions[b-icwpeqh8ms] {
    flex: 0 0 auto !important;
    margin-left: auto !important;
}

.bat-center-search-panel.oh-page-filter-strip input[b-icwpeqh8ms],
.bat-center-search-panel.oh-page-filter-strip select[b-icwpeqh8ms] {
    height: 34px !important;
    min-height: 34px !important;
}

.bat-profile-editor-form textarea[b-icwpeqh8ms] {
    min-height: 82px;
    line-height: 1.45;
}

.bat-profile-editor-modal[b-icwpeqh8ms] {
    width: min(980px, 92vw);
}

.bat-admin-section .bat-detail-actions[b-icwpeqh8ms] {
    justify-content: flex-start;
}

.bat-editor-actions .bat-btn[b-icwpeqh8ms],
.bat-confirm-modal .bat-btn[b-icwpeqh8ms],
.bat-editor-modal .bat-btn[b-icwpeqh8ms] {
    min-width: 92px !important;
    border-width: 1px !important;
    color: #fff !important;
}

.bat-editor-actions .bat-btn-primary[b-icwpeqh8ms],
.bat-editor-actions .oh-action-primary[b-icwpeqh8ms] {
    background: #0b2f6b !important;
    border-color: #0b2f6b !important;
}

.bat-editor-actions .bat-btn-secondary[b-icwpeqh8ms],
.bat-editor-actions .oh-action-secondary[b-icwpeqh8ms] {
    background: #334155 !important;
    border-color: #334155 !important;
}

.bat-editor-actions .bat-btn-danger[b-icwpeqh8ms],
.bat-editor-actions .oh-action-danger[b-icwpeqh8ms] {
    background: #dc2626 !important;
    border-color: #dc2626 !important;
}

/* v4: 일반 게시판형 숫자 페이징 */
.bat-pager .bat-page-number.active[b-icwpeqh8ms],
.bat-pager .bat-page-number.active:disabled[b-icwpeqh8ms] {
    opacity: 1;
    cursor: default;
    border-color: var(--bat-primary);
    background: var(--bat-primary);
    color: #fff;
}

.bat-pager .bat-pager-controls[b-icwpeqh8ms] {
    flex-wrap: wrap;
}

.bat-map-empty[b-icwpeqh8ms] {
    color: #94a3b8;
    font-size: 12px;
    font-weight: 800;
}

/* patch_09: ecology detail UI alignment */
.ecology-create-strip[b-icwpeqh8ms] {
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}

.bat-sample-table .oh-record-actions[b-icwpeqh8ms] {
    justify-content: center;
    white-space: nowrap;
}

.bat-sample-table .oh-action-btn-sm[b-icwpeqh8ms],
.bat-matrix-table .oh-action-btn-sm[b-icwpeqh8ms] {
    min-width: 48px;
}

.bat-matrix-note[b-icwpeqh8ms] {
    max-width: 760px;
}

.bat-admin-section .bat-detail-actions[b-icwpeqh8ms] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.bat-detail-actions .oh-record-actions[b-icwpeqh8ms] {
    display: inline-flex;
}

.bat-center-panel .oh-record-create-strip .oh-action-btn-create[b-icwpeqh8ms] {
    box-shadow: none;
}

.ecology-create-hint[b-icwpeqh8ms] {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    color: #64748b;
    font-size: 0.76rem;
    font-weight: 800;
}


/* PATCH 32: restore taxonomy left alignment and readable species cards after manual add/edit patch */
.bat-taxonomy-box[b-icwpeqh8ms],
.bat-taxonomy-tree[b-icwpeqh8ms],
.bat-taxonomy-tree ul[b-icwpeqh8ms],
.bat-taxonomy-tree li[b-icwpeqh8ms],
.bat-taxonomy-node[b-icwpeqh8ms],
.bat-taxonomy-node button[b-icwpeqh8ms],
.bat-taxonomy-row[b-icwpeqh8ms],
.bat-taxonomy-title[b-icwpeqh8ms],
.bat-taxonomy-title strong[b-icwpeqh8ms],
.bat-taxonomy-title span[b-icwpeqh8ms],
.bat-taxonomy-title small[b-icwpeqh8ms] {
    text-align: left !important;
    justify-content: flex-start !important;
    justify-items: start !important;
}

.bat-taxonomy-node button[b-icwpeqh8ms],
.bat-taxonomy-row[b-icwpeqh8ms] {
    width: 100%;
}

.bat-taxonomy-node .bat-count[b-icwpeqh8ms],
.bat-taxonomy-count[b-icwpeqh8ms],
.bat-taxonomy-node em[b-icwpeqh8ms] {
    margin-left: auto;
    text-align: center !important;
}

.bat-species-card[b-icwpeqh8ms] {
    min-height: 158px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    text-align: left !important;
}

.bat-species-card strong[b-icwpeqh8ms],
.bat-species-card em[b-icwpeqh8ms],
.bat-species-card p[b-icwpeqh8ms] {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    text-align: left !important;
}

.bat-species-card strong[b-icwpeqh8ms] {
    line-height: 1.28 !important;
}

.bat-species-card em[b-icwpeqh8ms] {
    line-height: 1.25 !important;
}

.bat-species-card p[b-icwpeqh8ms] {
    display: block !important;
    min-height: 42px !important;
    -webkit-line-clamp: unset !important;
    line-clamp: unset !important;
    flex: 1 1 auto !important;
}

.bat-card-meta[b-icwpeqh8ms] {
    margin-top: auto !important;
}

.ecology-create-strip[b-icwpeqh8ms] {
    justify-content: flex-end !important;
}

/* PATCH 036: ecology taxonomy tree full-width rows like pathogen taxonomy tree */
.bat-taxonomy-box.only-tree[b-icwpeqh8ms] {
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
    max-height: calc(100vh - 150px) !important;
    overflow: hidden !important;
}

.bat-taxonomy-tree[b-icwpeqh8ms] {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 4px 8px 12px 2px !important;
}

.bat-taxonomy-tree .bat-tree-list[b-icwpeqh8ms] {
    list-style: none !important;
    margin: 0 !important;
    padding-left: 0 !important;
    width: 100% !important;
}

.bat-taxonomy-tree .bat-tree-list-item[b-icwpeqh8ms] {
    position: relative !important;
    margin: 5px 0 !important;
    padding: 0 !important;
    width: 100% !important;
}

.bat-tree-node-shell[b-icwpeqh8ms] {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    width: 100% !important;
    min-width: 0 !important;
    padding-left: min(calc(var(--depth, 0) * 18px), 86px) !important;
    box-sizing: border-box !important;
}

.bat-tree-node-shell[b-icwpeqh8ms]::before {
    content: "";
    position: absolute;
    left: max(calc(min(calc(var(--depth, 0) * 18px), 86px) - 12px), 0px);
    top: 50%;
    width: 12px;
    height: 1px;
    background: rgba(96, 165, 250, 0.38);
    display: none;
}

.bat-tree-node-shell[style*="--depth:1"][b-icwpeqh8ms]::before,
.bat-tree-node-shell[style*="--depth:2"][b-icwpeqh8ms]::before,
.bat-tree-node-shell[style*="--depth:3"][b-icwpeqh8ms]::before,
.bat-tree-node-shell[style*="--depth:4"][b-icwpeqh8ms]::before,
.bat-tree-node-shell[style*="--depth:5"][b-icwpeqh8ms]::before,
.bat-tree-node-shell[style*="--depth:6"][b-icwpeqh8ms]::before,
.bat-tree-node-shell[style*="--depth:7"][b-icwpeqh8ms]::before,
.bat-tree-node-shell[style*="--depth:8"][b-icwpeqh8ms]::before {
    display: block;
}

.bat-tree-expander[b-icwpeqh8ms] {
    flex: 0 0 30px !important;
    width: 30px !important;
    height: 30px !important;
    min-height: 30px !important;
    border-radius: 10px !important;
    z-index: 1 !important;
}

.bat-tree-expander:disabled[b-icwpeqh8ms] {
    border-color: rgba(191, 219, 254, 0.55) !important;
    background: #fff !important;
    color: transparent !important;
    opacity: 1 !important;
    pointer-events: none !important;
}

.bat-tree-node[b-icwpeqh8ms] {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    align-items: center !important;
    column-gap: 8px !important;
    min-height: 38px !important;
    padding: 7px 10px !important;
    text-align: left !important;
}

.bat-tree-node span[b-icwpeqh8ms] {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    align-self: center !important;
    min-width: 30px !important;
    text-align: center !important;
    justify-content: center !important;
}

.bat-tree-node strong[b-icwpeqh8ms] {
    grid-column: 2 / span 2 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    text-align: left !important;
}

.bat-tree-node small[b-icwpeqh8ms] {
    grid-column: 2 / span 2 !important;
    grid-row: 2 !important;
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    text-align: left !important;
}

/* PATCH 037: desktop ecology three-pane height lock for center/right panels */
@media (min-width: 1181px) {
    .bat-one-screen.oh-page-three-pane[b-icwpeqh8ms] {
        height: clamp(500px, calc(100dvh - 245px), 760px) !important;
        max-height: clamp(500px, calc(100dvh - 245px), 760px) !important;
        min-height: 0 !important;
        align-items: stretch !important;
        overflow: hidden !important;
    }

    .bat-one-screen.oh-page-three-pane > .bat-filter-panel[b-icwpeqh8ms],
    .bat-one-screen.oh-page-three-pane > .bat-center-panel[b-icwpeqh8ms],
    .bat-one-screen.oh-page-three-pane > .bat-detail-panel[b-icwpeqh8ms] {
        height: 100% !important;
        max-height: 100% !important;
        min-height: 0 !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
    }

    .bat-one-screen.oh-page-three-pane > .bat-filter-panel[b-icwpeqh8ms],
    .bat-one-screen.oh-page-three-pane > .bat-center-panel[b-icwpeqh8ms] {
        display: flex !important;
        flex-direction: column !important;
    }

    .bat-one-screen.oh-page-three-pane > .bat-detail-panel[b-icwpeqh8ms] {
        overflow-y: auto !important;
        overflow-x: hidden !important;
    }

    .bat-one-screen.oh-page-three-pane .bat-taxonomy-box.only-tree[b-icwpeqh8ms] {
        height: 100% !important;
        max-height: 100% !important;
        min-height: 0 !important;
    }

    .bat-one-screen.oh-page-three-pane .bat-taxonomy-tree[b-icwpeqh8ms],
    .bat-one-screen.oh-page-three-pane .bat-center-body[b-icwpeqh8ms] {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        max-height: 100% !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
    }

    .bat-one-screen.oh-page-three-pane .bat-list-head[b-icwpeqh8ms],
    .bat-one-screen.oh-page-three-pane .bat-panel-head[b-icwpeqh8ms],
    .bat-one-screen.oh-page-three-pane .oh-record-create-strip[b-icwpeqh8ms] {
        flex: 0 0 auto !important;
    }

    .bat-one-screen.oh-page-three-pane .bat-table-shell[b-icwpeqh8ms],
    .bat-one-screen.oh-page-three-pane .bat-matrix-shell[b-icwpeqh8ms] {
        max-height: 100% !important;
        overflow: auto !important;
    }
}

/* PATCH 038: unify ecology admin actions and matrix cell management */
.ecology-create-strip[b-icwpeqh8ms] {
    justify-content: flex-end;
}

.ecology-create-strip .oh-action-btn-create[b-icwpeqh8ms],
.bat-detail-section-headline .bat-mini-btn[b-icwpeqh8ms],
.bat-matrix-tools .bat-mini-btn[b-icwpeqh8ms] {
    border-color: rgba(15, 118, 110, 0.95) !important;
    background: #0f766e !important;
    color: #fff !important;
    box-shadow: 0 12px 22px rgba(15, 118, 110, 0.14);
}

.bat-admin-section-under-title[b-icwpeqh8ms] {
    margin-top: 10px;
    margin-bottom: 12px;
}

.bat-admin-section-under-title .bat-admin-note[b-icwpeqh8ms] {
    margin-bottom: 0;
}

.bat-matrix-cell-stack[b-icwpeqh8ms] {
    display: grid;
    gap: 5px;
    justify-items: center;
    min-width: 72px;
}

.bat-matrix-cell-actions[b-icwpeqh8ms] {
    display: flex;
    gap: 4px;
    align-items: center;
    justify-content: center;
}

.oh-action-btn-xs[b-icwpeqh8ms] {
    min-height: 24px !important;
    height: 24px !important;
    padding: 0 7px !important;
    border-radius: 8px !important;
    font-size: 10px !important;
    line-height: 1 !important;
}

.oh-action-btn-edit[b-icwpeqh8ms] {
    border-color: rgba(37, 99, 235, 0.9) !important;
    background: #2563eb !important;
    color: #fff !important;
}

.oh-action-btn-danger[b-icwpeqh8ms] {
    border-color: rgba(220, 38, 38, 0.9) !important;
    background: #dc2626 !important;
    color: #fff !important;
}

.oh-action-btn:disabled[b-icwpeqh8ms],
.bat-btn:disabled[b-icwpeqh8ms] {
    cursor: not-allowed !important;
    opacity: .45 !important;
    box-shadow: none !important;
}

.bat-matrix-table td[b-icwpeqh8ms] {
    vertical-align: top;
}
/* /Components/Pages/Home.razor.rz.scp.css */
.oh-dashboard-analytics-page[b-hjyx6tysf4] {
    display: flex;
    flex-direction: column;
    gap: .78rem;
    min-height: 0;
}

.oh-dashboard-header[b-hjyx6tysf4] {
    min-height: 64px;
}

.oh-dashboard-kpi-chart-grid[b-hjyx6tysf4] {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .72rem;
}

.oh-dashboard-metric-card[b-hjyx6tysf4] {
    min-height: 76px;
    border: 1px solid #bfdbfe;
    border-radius: 16px;
    background: #fff;
    padding: .78rem .9rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .7rem;
    box-shadow: 0 12px 26px rgba(15, 23, 42, .055);
}

.oh-dashboard-metric-card span[b-hjyx6tysf4] {
    display: block;
    font-size: .75rem;
    font-weight: 950;
    color: #24476f;
}

.oh-dashboard-metric-card strong[b-hjyx6tysf4] {
    display: block;
    margin-top: .2rem;
    font-size: 1.45rem;
    line-height: 1;
    color: #061d45;
    font-weight: 1000;
}

.oh-dashboard-metric-card small[b-hjyx6tysf4] {
    display: block;
    margin-top: .28rem;
    font-size: .72rem;
    color: #46627f;
    font-weight: 850;
}

.metric-mini-bars[b-hjyx6tysf4] {
    height: 48px;
    width: 62px;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    gap: 5px;
}

.metric-mini-bars i[b-hjyx6tysf4] {
    display: block;
    width: 14px;
    border-radius: 999px 999px 4px 4px;
    background: linear-gradient(180deg, #60a5fa, #1d4ed8);
    box-shadow: 0 7px 14px rgba(37, 99, 235, .18);
}

.metric-mini-bars.blue i[b-hjyx6tysf4] {
    background: linear-gradient(180deg, #38bdf8, #0f3d7a);
}

.metric-ring[b-hjyx6tysf4] {
    width: 54px;
    height: 54px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: conic-gradient(#2563eb var(--p), #e8f1ff 0);
    position: relative;
    box-shadow: inset 0 0 0 1px #dbeafe;
}

.metric-ring[b-hjyx6tysf4]::after {
    content: "";
    position: absolute;
    inset: 8px;
    border-radius: inherit;
    background: #fff;
}

.metric-ring b[b-hjyx6tysf4] {
    position: relative;
    z-index: 1;
    font-size: .63rem;
    color: #0f3d7a;
    font-weight: 1000;
}

.metric-ring.accent[b-hjyx6tysf4] {
    background: conic-gradient(#f59e0b var(--p), #fff7ed 0);
}

.metric-ring.green[b-hjyx6tysf4] {
    background: conic-gradient(#22c55e var(--p), #ecfdf5 0);
}

.metric-network-icon[b-hjyx6tysf4] {
    width: 58px;
    height: 54px;
    position: relative;
}

.metric-network-icon[b-hjyx6tysf4]::before {
    content: "";
    position: absolute;
    left: 13px;
    top: 23px;
    width: 34px;
    height: 3px;
    background: #93c5fd;
    transform: rotate(-18deg);
    border-radius: 999px;
    box-shadow: 4px 15px 0 #bfdbfe, 4px -14px 0 #bfdbfe;
}

.metric-network-icon i[b-hjyx6tysf4] {
    position: absolute;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #2563eb;
    border: 3px solid #fff;
    box-shadow: 0 8px 18px rgba(37, 99, 235, .22);
}

.metric-network-icon i:nth-child(1)[b-hjyx6tysf4] { left: 0; top: 19px; }
.metric-network-icon i:nth-child(2)[b-hjyx6tysf4] { right: 0; top: 2px; background: #f59e0b; }
.metric-network-icon i:nth-child(3)[b-hjyx6tysf4] { right: 0; bottom: 0; background: #22c55e; }
.metric-network-icon i:nth-child(4)[b-hjyx6tysf4] { left: 25px; top: 19px; background: #0ea5e9; }

.oh-dashboard-chart-grid[b-hjyx6tysf4] {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    gap: .82rem;
    min-height: 0;
}

.oh-dashboard-panel[b-hjyx6tysf4] {
    border: 1px solid #bfdbfe;
    border-radius: 18px;
    background: #fff;
    padding: .92rem;
    min-width: 0;
    box-shadow: 0 16px 34px rgba(15, 23, 42, .055);
}

.oh-dashboard-panel h3[b-hjyx6tysf4] {
    margin: 0;
    font-size: 1.02rem;
    font-weight: 1000;
    color: #061d45;
}

.oh-dashboard-panel p[b-hjyx6tysf4] {
    margin: .18rem 0 0;
    font-size: .78rem;
    color: #37567d;
    font-weight: 850;
}

.oh-dashboard-map-panel[b-hjyx6tysf4] {
    min-height: 430px;
}

.oh-dashboard-leaflet-map[b-hjyx6tysf4] {
    height: 310px;
    margin-top: .78rem;
    border-radius: 15px;
    overflow: hidden;
    border: 1px solid #cfe1f8;
    background: #dbeafe;
}

.oh-dashboard-map-summary[b-hjyx6tysf4] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .46rem;
    margin-top: .6rem;
}

.oh-dashboard-map-summary span[b-hjyx6tysf4] {
    border: 1px solid #dbeafe;
    border-radius: 999px;
    background: #f8fbff;
    color: #46627f;
    padding: .34rem .56rem;
    font-size: .73rem;
    font-weight: 900;
    display: flex;
    justify-content: space-between;
    gap: .3rem;
}

.oh-dashboard-map-summary strong[b-hjyx6tysf4] {
    color: #0f3d7a;
}

.oh-dashboard-country-bars[b-hjyx6tysf4] {
    display: grid;
    gap: .45rem;
    margin-top: .62rem;
}

.oh-dashboard-bar-row[b-hjyx6tysf4] {
    display: grid;
    grid-template-columns: minmax(90px, 130px) 1fr auto;
    gap: .58rem;
    align-items: center;
    color: #24476f;
    font-size: .76rem;
    font-weight: 900;
}

.oh-dashboard-bar-track[b-hjyx6tysf4],
.rank-row div[b-hjyx6tysf4] {
    height: 10px;
    border-radius: 999px;
    background: #e8f1ff;
    overflow: hidden;
}

.oh-dashboard-bar-track i[b-hjyx6tysf4],
.rank-row div i[b-hjyx6tysf4] {
    display: block;
    width: var(--w);
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #93c5fd, #1d4ed8);
}

.oh-dashboard-tree-layout[b-hjyx6tysf4] {
    display: grid;
    grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr);
    gap: .8rem;
    margin-top: .78rem;
}

.oh-dashboard-host-list[b-hjyx6tysf4] {
    display: grid;
    gap: .48rem;
    align-content: start;
}

.oh-dashboard-host-list.compact[b-hjyx6tysf4] {
    max-height: 370px;
    overflow: auto;
    padding-right: .25rem;
}

.oh-dashboard-host-row[b-hjyx6tysf4] {
    border: 1px solid #dbeafe;
    background: #f8fbff;
    border-radius: 13px;
    padding: .62rem .72rem;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .55rem;
    text-align: left;
    color: #0f274d;
    min-width: 0;
}

.oh-dashboard-host-row.is-selected[b-hjyx6tysf4] {
    border-color: #2563eb;
    background: #eff6ff;
    box-shadow: inset 4px 0 0 #2563eb;
}

.oh-dashboard-host-row strong[b-hjyx6tysf4],
.oh-dashboard-host-row b[b-hjyx6tysf4] {
    font-weight: 1000;
}

.oh-dashboard-host-row small[b-hjyx6tysf4] {
    display: block;
    margin-top: .16rem;
    color: #64748b;
    font-size: .7rem;
    font-weight: 850;
}

.oh-dashboard-tree-card[b-hjyx6tysf4] {
    border: 1px solid #cfe1f8;
    border-radius: 15px;
    background: linear-gradient(180deg, #fff 0%, #f8fbff 100%);
    padding: .72rem;
    min-height: 370px;
}

.tree-title[b-hjyx6tysf4] {
    display: flex;
    justify-content: space-between;
    gap: .8rem;
    color: #0f274d;
    font-weight: 1000;
}

.oh-dashboard-tree-svg[b-hjyx6tysf4] {
    display: block;
    width: 100%;
    height: 320px;
    margin-top: .3rem;
}

.tree-host-core[b-hjyx6tysf4] {
    fill: #f59e0b;
    filter: drop-shadow(0 14px 24px rgba(245, 158, 11, .22));
}

.tree-core-label[b-hjyx6tysf4] {
    fill: #fff;
    font-size: 24px;
    font-weight: 1000;
}

.tree-core-sub[b-hjyx6tysf4] {
    fill: rgba(255, 255, 255, .9);
    font-size: 13px;
    font-weight: 900;
}

.tree-link[b-hjyx6tysf4] {
    fill: none;
    stroke: url(#treeLine);
    stroke-width: var(--stroke-width);
    stroke-linecap: round;
    opacity: .72;
}

.tree-pathogen-node circle[b-hjyx6tysf4] {
    fill: #2563eb;
    stroke: #fff;
    stroke-width: 4;
    filter: drop-shadow(0 10px 20px rgba(37, 99, 235, .18));
}

.tree-pathogen-node text[b-hjyx6tysf4] {
    fill: #0f274d;
    font-size: 14px;
    font-weight: 950;
}

.tree-pathogen-node .tree-node-value[b-hjyx6tysf4] {
    fill: #64748b;
    font-size: 12px;
    font-weight: 900;
}

.oh-dashboard-wide-panel[b-hjyx6tysf4] {
    grid-column: 1 / -1;
}

.oh-dashboard-composite-grid[b-hjyx6tysf4] {
    display: grid;
    grid-template-columns: minmax(260px, .85fr) repeat(2, minmax(0, 1fr));
    gap: .8rem;
    margin-top: .8rem;
}

.oh-dashboard-donut-card[b-hjyx6tysf4],
.oh-dashboard-rank-card[b-hjyx6tysf4] {
    border: 1px solid #dbeafe;
    border-radius: 15px;
    background: #f8fbff;
    padding: .82rem;
    min-width: 0;
}

.oh-dashboard-donut-card h4[b-hjyx6tysf4],
.oh-dashboard-rank-card h4[b-hjyx6tysf4] {
    margin: 0 0 .68rem;
    font-size: .92rem;
    color: #061d45;
    font-weight: 1000;
}

.oh-dashboard-donut[b-hjyx6tysf4] {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    margin: .35rem auto .78rem;
    position: relative;
    box-shadow: inset 0 0 0 1px #dbeafe;
}

.oh-dashboard-donut[b-hjyx6tysf4]::after {
    content: "";
    position: absolute;
    inset: 36px;
    border-radius: 50%;
    background: #f8fbff;
    border: 1px solid #dbeafe;
}

.donut-legend[b-hjyx6tysf4] {
    display: grid;
    gap: .4rem;
    color: #24476f;
    font-size: .78rem;
    font-weight: 900;
}

.donut-legend span[b-hjyx6tysf4] {
    display: flex;
    align-items: center;
    gap: .44rem;
}

.donut-legend i[b-hjyx6tysf4] {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    display: inline-block;
    background: #2563eb;
}

.donut-legend i.diagnostic[b-hjyx6tysf4] { background: #f59e0b; }
.donut-legend i.analysis[b-hjyx6tysf4] { background: #22c55e; }

.rank-row[b-hjyx6tysf4] {
    display: grid;
    grid-template-columns: minmax(95px, 1fr) minmax(130px, 1.2fr) auto;
    gap: .58rem;
    align-items: center;
    padding: .42rem 0;
    border-bottom: 1px solid #e5edf8;
    color: #24476f;
    font-size: .76rem;
    font-weight: 900;
}

.rank-row:last-child[b-hjyx6tysf4] {
    border-bottom: 0;
}

.oh-dashboard-empty[b-hjyx6tysf4] {
    border: 1px dashed #bfdbfe;
    border-radius: 12px;
    padding: .8rem;
    color: #64748b;
    font-size: .78rem;
    font-weight: 850;
    background: #fff;
}

.oh-dashboard-empty.compact[b-hjyx6tysf4] {
    margin-top: .5rem;
    padding: .65rem;
}

@media (max-width: 1500px) {
    .oh-dashboard-kpi-chart-grid[b-hjyx6tysf4] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .oh-dashboard-chart-grid[b-hjyx6tysf4] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 1050px) {
    .oh-dashboard-kpi-chart-grid[b-hjyx6tysf4],
    .oh-dashboard-tree-layout[b-hjyx6tysf4],
    .oh-dashboard-composite-grid[b-hjyx6tysf4],
    .oh-dashboard-map-summary[b-hjyx6tysf4] {
        grid-template-columns: 1fr;
    }
}

/* Dashboard host-virus relationship charts */
.oh-dashboard-analytics-page .oh-dashboard-chart-grid[b-hjyx6tysf4] {
    grid-template-columns: minmax(0, 1fr);
}

.oh-dashboard-analytics-page .oh-dashboard-map-panel[b-hjyx6tysf4],
.oh-dashboard-relation-panel[b-hjyx6tysf4],
.oh-dashboard-wide-panel[b-hjyx6tysf4] {
    grid-column: 1 / -1;
}

.oh-dashboard-relation-panel[b-hjyx6tysf4] {
    min-height: 560px;
}

.oh-dashboard-relation-grid[b-hjyx6tysf4] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .9rem;
    margin-top: .82rem;
}

.oh-dashboard-relation-chart-card[b-hjyx6tysf4] {
    border: 1px solid #cfe1f8;
    border-radius: 16px;
    background: linear-gradient(180deg, #fff 0%, #f8fbff 100%);
    padding: .82rem;
    min-width: 0;
    min-height: 470px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8);
}

.relation-chart-title[b-hjyx6tysf4] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .8rem;
    min-height: 28px;
    margin-bottom: .4rem;
}

.relation-chart-title strong[b-hjyx6tysf4] {
    color: #061d45;
    font-size: .96rem;
    font-weight: 1000;
}

.relation-chart-title span[b-hjyx6tysf4] {
    color: #64748b;
    font-size: .74rem;
    font-weight: 850;
}

.oh-dashboard-relation-chart[b-hjyx6tysf4] {
    position: relative;
    width: 100%;
    height: 425px;
    min-height: 425px;
    border-radius: 14px;
    overflow: hidden;
    background: radial-gradient(circle at 50% 50%, #fff 0%, #fff 46%, #f8fbff 100%);
}

.oh-dashboard-chord-svg[b-hjyx6tysf4],
.oh-dashboard-network-svg[b-hjyx6tysf4] {
    width: 100%;
    height: 100%;
    display: block;
}

.chord-main-title[b-hjyx6tysf4],
.network-main-title[b-hjyx6tysf4] {
    fill: #061d45;
    font-size: 18px;
    font-weight: 1000;
}

.network-note[b-hjyx6tysf4] {
    fill: #64748b;
    font-size: 11px;
    font-weight: 700;
}

.chord-legend text[b-hjyx6tysf4],
.chord-host-label[b-hjyx6tysf4],
.chord-pathogen-label[b-hjyx6tysf4] {
    fill: #334155;
    font-size: 11px;
    font-weight: 850;
}

.chord-host-arc[b-hjyx6tysf4],
.chord-pathogen-arc[b-hjyx6tysf4] {
    fill: none;
    stroke-width: 22;
    stroke-linecap: butt;
    opacity: .92;
}

.chord-pathogen-arc[b-hjyx6tysf4] {
    stroke-width: 18;
}

.chord-ribbon[b-hjyx6tysf4] {
    fill: none;
    stroke-linecap: round;
    mix-blend-mode: multiply;
}

.chord-center circle[b-hjyx6tysf4] {
    fill: #f59e0b;
}

.chord-center text[b-hjyx6tysf4] {
    fill: #fff;
    font-size: 18px;
    font-weight: 1000;
}

.chord-center-sub[b-hjyx6tysf4] {
    font-size: 12px !important;
    font-weight: 850 !important;
    opacity: .92;
}

.network-root-link[b-hjyx6tysf4] {
    stroke: #94a3b8;
    stroke-width: 1.1;
    stroke-opacity: .55;
}

.network-pathogen-link[b-hjyx6tysf4] {
    stroke-linecap: round;
    mix-blend-mode: multiply;
}

.network-root-node circle[b-hjyx6tysf4],
.network-host-node circle[b-hjyx6tysf4],
.network-pathogen-node circle[b-hjyx6tysf4] {
    stroke: #fff;
    stroke-width: 3;
    filter: drop-shadow(0 7px 13px rgba(15, 23, 42, .13));
}

.network-root-node text[b-hjyx6tysf4] {
    fill: #fff;
    font-size: 13px;
    font-weight: 1000;
}

.network-host-node text[b-hjyx6tysf4],
.network-pathogen-node text[b-hjyx6tysf4] {
    fill: #0f274d;
    font-size: 10px;
    font-weight: 850;
}

.network-pathogen-node text[b-hjyx6tysf4] {
    font-size: 9.5px;
}

.oh-dashboard-graph-empty[b-hjyx6tysf4] {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #64748b;
    font-size: .82rem;
    font-weight: 900;
    border: 1px dashed #bfdbfe;
    border-radius: 13px;
    background: #fff;
}

@media (max-width: 1400px) {
    .oh-dashboard-relation-grid[b-hjyx6tysf4] {
        grid-template-columns: 1fr;
    }
}

/* Stage 16: one-screen dashboard layout: map on the left, D3 charts stacked on the right. */
.oh-dashboard-analytics-page[b-hjyx6tysf4] {
    gap: .62rem;
}

.oh-dashboard-header[b-hjyx6tysf4] {
    min-height: 58px;
}

.oh-dashboard-kpi-chart-grid[b-hjyx6tysf4] {
    gap: .62rem;
}

.oh-dashboard-metric-card[b-hjyx6tysf4] {
    min-height: 68px;
    padding: .66rem .82rem;
}

.oh-dashboard-metric-card strong[b-hjyx6tysf4] {
    font-size: 1.32rem;
}

.oh-dashboard-analytics-page .oh-dashboard-chart-grid[b-hjyx6tysf4] {
    display: grid;
    grid-template-columns: minmax(760px, 1.08fr) minmax(560px, .92fr);
    gap: .82rem;
    min-height: 960px !important;
    height: 960px !important;
    max-height: none !important;
    align-items: stretch;
}

.oh-dashboard-analytics-page .oh-dashboard-map-panel[b-hjyx6tysf4],
.oh-dashboard-analytics-page .oh-dashboard-chart-stack[b-hjyx6tysf4],
.oh-dashboard-analytics-page .oh-dashboard-relation-chart-card[b-hjyx6tysf4] {
    min-width: 0;
    min-height: 0 !important;
    height: 100% !important;
    max-height: 100% !important;
}

.oh-dashboard-analytics-page .oh-dashboard-map-panel[b-hjyx6tysf4] {
    grid-column: auto;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.oh-dashboard-analytics-page .oh-dashboard-leaflet-map[b-hjyx6tysf4] {
    flex: 1 1 auto;
    height: auto;
    min-height: 680px;
    margin-top: .62rem;
}

.oh-dashboard-analytics-page .oh-dashboard-map-summary[b-hjyx6tysf4] {
    flex: 0 0 auto;
    margin-top: .55rem;
}

.oh-dashboard-analytics-page .oh-dashboard-country-bars[b-hjyx6tysf4] {
    flex: 0 0 auto;
    margin-top: .52rem;
    max-height: 72px;
    overflow: hidden;
}

.oh-dashboard-chart-stack[b-hjyx6tysf4] {
    display: grid;
    grid-template-rows: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-rows: minmax(455px, 1fr) minmax(455px, 1fr);
    gap: .82rem;
    min-height: 0;
    overflow: hidden;
}

.oh-dashboard-analytics-page .oh-dashboard-relation-chart-card[b-hjyx6tysf4] {
    grid-column: auto;
    display: flex;
    flex-direction: column;
    padding: .82rem;
    box-shadow: 0 16px 34px rgba(15, 23, 42, .055);
}

.oh-dashboard-analytics-page .relation-chart-title[b-hjyx6tysf4] {
    flex: 0 0 auto;
    min-height: 30px;
    margin-bottom: .5rem;
}

.oh-dashboard-analytics-page .relation-chart-title > div[b-hjyx6tysf4] {
    min-width: 0;
}

.oh-dashboard-analytics-page .relation-chart-title strong[b-hjyx6tysf4],
.oh-dashboard-analytics-page .relation-chart-title span[b-hjyx6tysf4] {
    display: block;
}

.oh-dashboard-analytics-page .oh-dashboard-relation-chart[b-hjyx6tysf4] {
    flex: 1 1 auto;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
}

.oh-dashboard-analytics-page .oh-dashboard-empty.compact[b-hjyx6tysf4] {
    display: none;
}

@media (max-width: 1500px) {
    .oh-dashboard-analytics-page .oh-dashboard-chart-grid[b-hjyx6tysf4] {
        grid-template-columns: 1fr;
        height: auto !important;
        max-height: none !important;
    }

    .oh-dashboard-analytics-page .oh-dashboard-map-panel[b-hjyx6tysf4] {
        height: 720px !important;
    }

    .oh-dashboard-chart-stack[b-hjyx6tysf4] {
        grid-template-rows: 600px 600px;
        overflow: visible;
    }
}


/* Stage 17: increase dashboard visual panels by about 50%.
   The page itself can scroll, so the map and each chart card get enough vertical space
   for D3 labels/nodes to be readable at the initial render state. */
.oh-dashboard-analytics-page .oh-dashboard-chart-grid[b-hjyx6tysf4] {
    min-height: 960px !important;
    height: 960px !important;
    max-height: none !important;
}

.oh-dashboard-analytics-page .oh-dashboard-leaflet-map[b-hjyx6tysf4] {
    min-height: 680px;
}

.oh-dashboard-chart-stack[b-hjyx6tysf4] {
    grid-template-rows: minmax(455px, 1fr) minmax(455px, 1fr);
}

@media (min-width: 1700px) {
    .oh-dashboard-analytics-page .oh-dashboard-chart-grid[b-hjyx6tysf4] {
        min-height: 1020px !important;
        height: 1020px !important;
    }

    .oh-dashboard-chart-stack[b-hjyx6tysf4] {
        grid-template-rows: minmax(485px, 1fr) minmax(485px, 1fr);
    }

    .oh-dashboard-analytics-page .oh-dashboard-leaflet-map[b-hjyx6tysf4] {
        min-height: 720px;
    }
}
/* /Components/Pages/MapExplorer.razor.rz.scp.css */
:host[b-90o6jcy2l0] {
    display: block;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.oh-page-header[b-90o6jcy2l0],
.oh-message[b-90o6jcy2l0],
.oh-grid.oh-mb[b-90o6jcy2l0],
section.oh-card.oh-mb[b-90o6jcy2l0] {
    flex: 0 0 auto;
}

.oh-map-scope-tabs[b-90o6jcy2l0],
.oh-map-layer-tabs[b-90o6jcy2l0] {
    flex: 0 0 auto;
}

.oh-map-container[b-90o6jcy2l0] {
    flex: 1 1 auto;
    min-height: 0;
}

.oh-map-summary-line[b-90o6jcy2l0] {
    flex: 0 0 auto;
}

@media (max-width: 1180px) {
    :host[b-90o6jcy2l0] {
        height: auto;
        overflow: visible;
    }
}
/* /Components/Pages/OpenApiGuide.razor.rz.scp.css */
.oh-openapi-guide-page[b-r095dh55hf] {
    display: block;
    width: 100%;
    min-height: auto !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    padding-bottom: 42px;
}

.oh-openapi-guide-page *[b-r095dh55hf] {
    box-sizing: border-box;
}

.oh-openapi-guide-page .oh-card[b-r095dh55hf],
.oh-openapi-guide-page .oh-table-wrap[b-r095dh55hf],
.oh-openapi-guide-page .oh-status-grid[b-r095dh55hf] {
    min-height: 0 !important;
    max-height: none;
}

.oh-openapi-header[b-r095dh55hf] {
    position: relative;
    z-index: 1;
    margin-bottom: .85rem;
}

.oh-openapi-actions[b-r095dh55hf] {
    align-self: center;
}

.oh-step-no[b-r095dh55hf] {
    width: 2.2rem;
    height: 2.2rem;
    flex: 0 0 2.2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    color: #1d4ed8;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
}

.oh-openapi-steps[b-r095dh55hf] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
    margin-bottom: .85rem;
}

.oh-openapi-step-card[b-r095dh55hf] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: flex-start;
    gap: .85rem;
    padding: 1rem !important;
    overflow: visible !important;
}

.oh-openapi-step-card h3[b-r095dh55hf],
.oh-openapi-main-grid h3[b-r095dh55hf],
.oh-openapi-admin-flow-card h3[b-r095dh55hf] {
    margin-bottom: .35rem !important;
}

.oh-openapi-step-card p[b-r095dh55hf],
.oh-openapi-admin-locked p[b-r095dh55hf] {
    margin: 0;
}

.oh-openapi-main-grid[b-r095dh55hf] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(440px, .95fr);
    gap: .85rem;
    align-items: stretch;
    margin-bottom: .85rem;
}

.oh-openapi-api-card[b-r095dh55hf],
.oh-openapi-policy-card[b-r095dh55hf],
.oh-openapi-admin-flow-card[b-r095dh55hf] {
    overflow: visible !important;
}

.oh-openapi-table-scroll[b-r095dh55hf] {
    width: 100%;
    max-height: min(360px, 38vh) !important;
    overflow: auto !important;
    border-radius: 12px;
}

.oh-openapi-table-scroll table[b-r095dh55hf] {
    min-width: 760px;
}

.oh-openapi-guide-page code[b-r095dh55hf] {
    display: inline-block;
    color: #334155;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: .12rem .35rem;
    max-width: 100%;
    white-space: nowrap;
}

.oh-openapi-policy-list[b-r095dh55hf] {
    display: grid;
    gap: .55rem;
    margin-bottom: .75rem;
}

.oh-openapi-policy-list > div[b-r095dh55hf] {
    min-height: 42px;
}

.oh-openapi-code[b-r095dh55hf] {
    margin: 0;
    max-height: 150px;
    overflow: auto;
    white-space: pre-wrap;
    word-break: break-word;
}

.oh-openapi-admin-grid[b-r095dh55hf] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.oh-openapi-admin-grid .oh-status-card[b-r095dh55hf] {
    min-height: 74px;
    padding: .9rem 1rem;
    overflow: hidden;
}

.oh-openapi-admin-locked[b-r095dh55hf] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .95rem 1rem;
    border: 1px dashed #bfdbfe;
    border-radius: 14px;
    background: linear-gradient(180deg, #f8fbff 0%, #f1f7ff 100%);
}

@media (max-width: 1280px) {
    .oh-openapi-steps[b-r095dh55hf],
    .oh-openapi-main-grid[b-r095dh55hf],
    .oh-openapi-admin-grid[b-r095dh55hf] {
        grid-template-columns: 1fr;
    }

    .oh-openapi-table-scroll table[b-r095dh55hf] {
        min-width: 680px;
    }
}

@media (max-width: 760px) {
    .oh-openapi-header[b-r095dh55hf],
    .oh-openapi-admin-locked[b-r095dh55hf] {
        flex-direction: column;
        align-items: stretch;
    }

    .oh-openapi-actions[b-r095dh55hf] {
        align-self: stretch;
    }

    .oh-openapi-actions .btn[b-r095dh55hf],
    .oh-openapi-admin-locked .btn[b-r095dh55hf] {
        width: 100%;
    }
}
/* /Components/Pages/OpenApiRequests.razor.rz.scp.css */
.oa-summary-card[b-85nkkgds2a] {
    margin-bottom: 1rem;
}

.oa-summary-grid[b-85nkkgds2a] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
}

.oa-card-title-row[b-85nkkgds2a] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .75rem;
}

.oa-inline-filter[b-85nkkgds2a] {
    display: flex;
    align-items: center;
    gap: .5rem;
    white-space: nowrap;
}

.oa-inline-filter select[b-85nkkgds2a],
.oa-table-input[b-85nkkgds2a] {
    border: 1px solid var(--color-border);
    border-radius: .5rem;
    padding: .35rem .5rem;
    background: #fff;
}

.oa-table-input[b-85nkkgds2a] {
    width: 10rem;
}

.oa-table-input.oa-number[b-85nkkgds2a] {
    width: 6rem;
}

.oa-dataset-picker[b-85nkkgds2a] {
    max-height: 18rem;
    overflow: auto;
    border: 1px solid var(--color-border);
    border-radius: .75rem;
    padding: .5rem;
    background: #fff;
}

.oa-check-row[b-85nkkgds2a] {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    padding: .45rem .25rem;
    border-bottom: 1px solid rgba(15, 23, 42, .06);
}

.oa-check-row:last-child[b-85nkkgds2a] {
    border-bottom: 0;
}

.oa-check-row span[b-85nkkgds2a] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

.oa-check-row small[b-85nkkgds2a] {
    color: #64748b;
}

@media (max-width: 1200px) {
    .oa-summary-grid[b-85nkkgds2a] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
/* /Components/Pages/OperationsChecklist.razor.rz.scp.css */
.oh-step-list[b-nwutimoekc] {
    display: grid;
    gap: .75rem;
    margin: 0;
    padding-left: 1.2rem;
}

.oh-step-list li[b-nwutimoekc] {
    padding: .65rem .75rem;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #f8fafc;
}

.oh-step-list strong[b-nwutimoekc] {
    display: block;
    color: #0f172a;
    margin-bottom: .2rem;
}

.oh-step-list span[b-nwutimoekc] {
    display: block;
    color: #64748b;
    font-size: .88rem;
}

.oh-check-grid[b-nwutimoekc] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}

.oh-check-grid label[b-nwutimoekc] {
    display: flex;
    align-items: center;
    gap: .55rem;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: .7rem .8rem;
    background: #f8fafc;
    color: #334155;
}

@media (max-width: 900px) {
    .oh-check-grid[b-nwutimoekc] {
        grid-template-columns: 1fr;
    }
}


.operations-flow-card[b-nwutimoekc] {
    margin-top: 1rem;
}

.operations-flow-card p[b-nwutimoekc] {
    margin-bottom: .9rem;
}
/* /Components/Pages/OperationsRunbook.razor.rz.scp.css */
.runbook-banner[b-qf280jefx4] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem;
    border: 1px solid #dbeafe;
    border-radius: 18px;
    background: linear-gradient(135deg, #eff6ff, #ffffff);
}

.runbook-banner h2[b-qf280jefx4] {
    margin: .6rem 0 .35rem;
    font-size: 1.35rem;
    color: #0f172a;
}

.runbook-banner p[b-qf280jefx4] {
    margin: 0;
    color: #475569;
}

.runbook-status[b-qf280jefx4] {
    min-width: 220px;
    border: 1px solid #bfdbfe;
    border-radius: 14px;
    background: #ffffff;
    padding: .85rem 1rem;
}

.runbook-status strong[b-qf280jefx4],
.runbook-status span[b-qf280jefx4] {
    display: block;
}

.runbook-status strong[b-qf280jefx4] {
    color: #1e40af;
    margin-bottom: .35rem;
}

.runbook-status span[b-qf280jefx4] {
    color: #64748b;
    font-size: .9rem;
}

.runbook-grid[b-qf280jefx4] {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .75rem;
}

.runbook-phase-card[b-qf280jefx4] {
    display: flex;
    gap: .75rem;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    background: #ffffff;
    padding: 1rem;
}

.runbook-phase-index[b-qf280jefx4] {
    flex: 0 0 auto;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: #eff6ff;
    color: #1d4ed8;
    font-weight: 700;
}

.runbook-phase-card h3[b-qf280jefx4] {
    margin: 0 0 .3rem;
    font-size: 1rem;
    color: #0f172a;
}

.runbook-phase-card p[b-qf280jefx4] {
    margin: 0 0 .55rem;
    color: #64748b;
    font-size: .88rem;
}

.runbook-links[b-qf280jefx4] {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.runbook-links a[b-qf280jefx4] {
    font-size: .78rem;
    border: 1px solid #dbeafe;
    border-radius: 999px;
    padding: .25rem .55rem;
    color: #1d4ed8;
    text-decoration: none;
    background: #eff6ff;
}

.runbook-timeline[b-qf280jefx4] {
    display: grid;
    gap: .85rem;
}

.runbook-step[b-qf280jefx4] {
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr);
    gap: .85rem;
}

.runbook-step-no[b-qf280jefx4] {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: #0f172a;
    color: #ffffff;
    font-weight: 700;
}

.runbook-step-body[b-qf280jefx4] {
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    padding: 1rem;
    background: #ffffff;
}

.runbook-step-title[b-qf280jefx4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}

.runbook-step-title h4[b-qf280jefx4] {
    margin: 0;
    color: #0f172a;
}

.runbook-step-body p[b-qf280jefx4] {
    margin: .45rem 0 .75rem;
    color: #475569;
}

.runbook-step-detail[b-qf280jefx4] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .6rem;
}

.runbook-step-detail div[b-qf280jefx4] {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: .65rem;
    background: #f8fafc;
}

.runbook-step-detail strong[b-qf280jefx4],
.runbook-step-detail span[b-qf280jefx4] {
    display: block;
}

.runbook-step-detail strong[b-qf280jefx4] {
    color: #334155;
    margin-bottom: .25rem;
    font-size: .82rem;
}

.runbook-step-detail span[b-qf280jefx4] {
    color: #64748b;
    font-size: .85rem;
}

.runbook-checks[b-qf280jefx4] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}

.runbook-checks label[b-qf280jefx4] {
    display: flex;
    align-items: center;
    gap: .55rem;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: .75rem .85rem;
    background: #f8fafc;
    color: #334155;
}

.runbook-note[b-qf280jefx4] {
    border: 1px solid #fde68a;
    border-radius: 16px;
    background: #fffbeb;
    padding: 1rem;
    color: #92400e;
}

.runbook-note strong[b-qf280jefx4] {
    display: block;
    margin-bottom: .35rem;
}

.runbook-note p[b-qf280jefx4] {
    margin: 0;
}

.compact-table code[b-qf280jefx4] {
    white-space: nowrap;
}

@media (max-width: 1200px) {
    .runbook-grid[b-qf280jefx4] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .runbook-step-detail[b-qf280jefx4] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 800px) {
    .runbook-banner[b-qf280jefx4] {
        flex-direction: column;
    }

    .runbook-grid[b-qf280jefx4],
    .runbook-checks[b-qf280jefx4] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/PathogenAnalysis.razor.rz.scp.css */
/* Pathogen analysis one-screen explorer layout aligned with Ecology / Alpha Corona pages */

.pathogen-workspace[b-s0gto5k24c] {
    --pathogen-primary: #0a2a62;
    --pathogen-primary-dark: #06183f;
    --pathogen-accent: #38bdf8;
    --pathogen-soft: #edf5ff;
    --pathogen-border: #cfe0f6;
    --pathogen-muted: #64748b;
    --pathogen-text: #0f172a;
    --pathogen-card: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 9px;
    min-width: 0;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.pathogen-hero[b-s0gto5k24c] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    flex: 0 0 auto;
}

.pathogen-hero h1[b-s0gto5k24c] {
    margin: 0;
    color: var(--pathogen-primary-dark);
    font-size: 22px;
    font-weight: 950;
    letter-spacing: -0.04em;
}

.pathogen-hero p[b-s0gto5k24c] {
    margin: 4px 0 0;
    color: var(--pathogen-muted);
    font-size: 13px;
    font-weight: 650;
}

.pathogen-hero-actions[b-s0gto5k24c],
.pathogen-search-actions[b-s0gto5k24c],
.pathogen-tabs[b-s0gto5k24c],
.pathogen-side-tabs[b-s0gto5k24c] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.pathogen-btn[b-s0gto5k24c],
.pathogen-tab[b-s0gto5k24c],
.pathogen-pager button[b-s0gto5k24c] {
    height: 34px;
    border: 1px solid var(--pathogen-border);
    border-radius: 10px;
    background: #fff;
    color: var(--pathogen-primary);
    font-size: 12px;
    font-weight: 900;
    padding: 0 12px;
    white-space: nowrap;
}

.pathogen-btn-primary[b-s0gto5k24c],
.pathogen-tab.active[b-s0gto5k24c],
.pathogen-pager button.active[b-s0gto5k24c] {
    border-color: var(--pathogen-primary);
    background: var(--pathogen-primary);
    color: #fff;
}

.pathogen-btn-ghost:hover[b-s0gto5k24c],
.pathogen-tab:hover[b-s0gto5k24c],
.pathogen-pager button:hover:not(:disabled)[b-s0gto5k24c] {
    border-color: rgba(11, 69, 96, 0.35);
    background: var(--pathogen-soft);
}

.pathogen-kpi-strip[b-s0gto5k24c] {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    flex: 0 0 auto;
}

.pathogen-kpi-strip article[b-s0gto5k24c] {
    min-width: 0;
    padding: 10px 14px;
    border: 1px solid var(--pathogen-border);
    border-radius: 18px;
    background: linear-gradient(180deg, #fff, #f7fbfd);
    box-shadow: 0 12px 28px rgba(9, 70, 96, 0.06);
}

.pathogen-kpi-strip span[b-s0gto5k24c],
.pathogen-kpi-strip small[b-s0gto5k24c] {
    display: block;
    overflow: hidden;
    color: var(--pathogen-muted);
    font-size: 11px;
    font-weight: 850;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pathogen-kpi-strip strong[b-s0gto5k24c] {
    display: block;
    overflow: hidden;
    margin-top: 3px;
    color: var(--pathogen-primary-dark);
    font-size: 20px;
    font-weight: 950;
    line-height: 1.05;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pathogen-search-panel[b-s0gto5k24c] {
    display: grid;
    grid-template-columns: minmax(22%, 1.7fr) repeat(3, minmax(13%, 1fr)) auto;
    gap: 8px;
    align-items: end;
    flex: 0 0 auto;
    padding: 10px;
    border: 1px solid var(--pathogen-border);
    border-radius: 16px;
    background: #f8fbfd;
}

.pathogen-search-panel label[b-s0gto5k24c] {
    display: grid;
    gap: 4px;
    min-width: 0;
    margin: 0;
}

.pathogen-search-panel span[b-s0gto5k24c] {
    color: var(--pathogen-primary);
    font-size: 11px;
    font-weight: 900;
}

.pathogen-search-panel input[b-s0gto5k24c],
.pathogen-search-panel select[b-s0gto5k24c] {
    width: 100%;
    height: 34px;
    min-width: 0;
    border: 1px solid var(--pathogen-border);
    border-radius: 10px;
    background: #fff;
    color: var(--pathogen-text);
    font-size: 12px;
    font-weight: 750;
    outline: none;
    padding: 0 10px;
}

.pathogen-one-screen[b-s0gto5k24c] {
    display: grid;
    grid-template-columns: minmax(18%, 24%) minmax(42%, 1fr) minmax(22%, 27%);
    gap: 12px;
    align-items: stretch;
    min-height: 0;
    flex: 1 1 auto;
    overflow: hidden;
}

.pathogen-panel[b-s0gto5k24c] {
    min-width: 0;
    min-height: 0;
    border: 1px solid var(--pathogen-border);
    border-radius: 20px;
    background: var(--pathogen-card);
    box-shadow: 0 16px 32px rgba(9, 70, 96, 0.06);
}

.pathogen-tree-panel[b-s0gto5k24c],
.pathogen-detail-panel[b-s0gto5k24c] {
    height: 100%;
    overflow: auto;
    padding: 12px;
}

.pathogen-center-panel[b-s0gto5k24c] {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    padding: 12px;
}

.pathogen-panel-head[b-s0gto5k24c] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}

.pathogen-panel-head h2[b-s0gto5k24c] {
    margin: 0;
    color: var(--pathogen-primary-dark);
    font-size: 16px;
    font-weight: 950;
    letter-spacing: -0.02em;
}

.pathogen-panel-head p[b-s0gto5k24c] {
    margin: 3px 0 0;
    color: var(--pathogen-muted);
    font-size: 12px;
    font-weight: 650;
}

.pathogen-side-tabs[b-s0gto5k24c] {
    justify-content: stretch;
    margin-bottom: 10px;
}

.pathogen-side-tabs .pathogen-tab[b-s0gto5k24c] {
    flex: 1 1 0;
}

.pathogen-warning[b-s0gto5k24c],
.pathogen-rule-note[b-s0gto5k24c] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px 10px;
    margin-bottom: 10px;
    padding: 10px 12px;
    border: 1px solid #fde68a;
    border-radius: 14px;
    background: #fffbeb;
    color: #92400e;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.45;
}

.pathogen-rule-note[b-s0gto5k24c] {
    border-color: #dbeafe;
    background: #f8fbff;
    color: var(--pathogen-primary);
}

.pathogen-rule-note strong[b-s0gto5k24c] {
    color: var(--pathogen-primary-dark);
    font-weight: 950;
}

.pathogen-tree-scroll[b-s0gto5k24c] {
    display: grid;
    gap: 7px;
    min-height: 0;
}

.pathogen-tree-node[b-s0gto5k24c] {
    display: grid;
    gap: 5px;
}

.pathogen-tree-children[b-s0gto5k24c] {
    display: grid;
    gap: 5px;
    padding-left: 12px;
}

.pathogen-tree-button[b-s0gto5k24c] {
    width: 100%;
    min-height: 46px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #ffffff;
    color: var(--pathogen-primary-dark);
    padding: 8px 10px;
    text-align: left;
}

.pathogen-tree-button:hover[b-s0gto5k24c],
.pathogen-tree-button.active[b-s0gto5k24c] {
    border-color: #7dd3fc;
    background: #ecfeff;
    box-shadow: inset 3px 0 0 #0ea5e9;
}

.pathogen-tree-button span[b-s0gto5k24c] {
    min-width: 0;
    display: grid;
    gap: 2px;
}

.pathogen-tree-button strong[b-s0gto5k24c],
.pathogen-tree-button small[b-s0gto5k24c] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pathogen-tree-button strong[b-s0gto5k24c] {
    font-size: 13px;
    font-weight: 950;
}

.pathogen-tree-button small[b-s0gto5k24c] {
    color: var(--pathogen-muted);
    font-size: 11px;
    font-weight: 800;
}

.pathogen-tree-button em[b-s0gto5k24c] {
    min-width: 40px;
    border-radius: 999px;
    background: #eef2f7;
    color: #0f172a;
    font-size: 11px;
    font-style: normal;
    font-weight: 950;
    padding: 4px 7px;
    text-align: center;
}

.pathogen-table-shell[b-s0gto5k24c] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    border: 1px solid #d6e5f7;
    border-radius: 16px;
    background: #fff;
}

.pathogen-table[b-s0gto5k24c] {
    width: 100%;
    min-width: 840px;
    border-collapse: separate;
    border-spacing: 0;
    color: var(--pathogen-text);
    font-size: 12px;
}

.pathogen-table th[b-s0gto5k24c],
.pathogen-table td[b-s0gto5k24c] {
    padding: 11px 12px;
    border-bottom: 1px solid #e6eef7;
    vertical-align: middle;
    text-align: center;
}

.pathogen-table th[b-s0gto5k24c] {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #f8fbfd;
    color: var(--pathogen-primary-dark);
    font-size: 11px;
    font-weight: 950;
}

.pathogen-table tbody tr:hover[b-s0gto5k24c],
.pathogen-table tbody tr.active[b-s0gto5k24c] {
    background: #effafe;
}

.pathogen-table tbody tr.active[b-s0gto5k24c] {
    box-shadow: inset 4px 0 0 var(--pathogen-accent);
}

.pathogen-taxon-cell[b-s0gto5k24c] {
    text-align: left !important;
    min-width: 180px;
}

.pathogen-taxon-cell strong[b-s0gto5k24c],
.pathogen-taxon-cell small[b-s0gto5k24c] {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pathogen-taxon-cell strong[b-s0gto5k24c] {
    color: var(--pathogen-primary-dark);
    font-weight: 950;
}

.pathogen-taxon-cell small[b-s0gto5k24c] {
    color: var(--pathogen-muted);
    font-size: 11px;
    font-weight: 750;
}

.pathogen-click-row[b-s0gto5k24c] {
    cursor: pointer;
}

.pathogen-pager.oh-fixed-pager[b-s0gto5k24c],
.pathogen-pager[b-s0gto5k24c] {
    display: grid;
    grid-template-columns: minmax(120px, 1fr) auto minmax(120px, 1fr);
    align-items: center;
    justify-content: stretch;
    gap: 10px;
    flex: 0 0 auto;
    width: 100%;
    margin-top: 10px;
    padding: 8px 0 2px;
}

.pathogen-pager-spacer[b-s0gto5k24c] {
    grid-column: 1;
    min-width: 0;
}

.pathogen-pager-controls[b-s0gto5k24c] {
    grid-column: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
}

.pathogen-pager button[b-s0gto5k24c] {
    min-width: 34px;
    padding: 0 10px;
}

.pathogen-pager button:disabled[b-s0gto5k24c] {
    opacity: .45;
    cursor: not-allowed;
}

.pathogen-pager button.active[b-s0gto5k24c],
.pathogen-pager button.active:disabled[b-s0gto5k24c] {
    opacity: 1;
    cursor: default;
}

.pathogen-pager-info[b-s0gto5k24c] {
    grid-column: 3;
    justify-self: end;
    min-width: 0;
    color: var(--pathogen-muted);
    font-size: 12px;
    font-weight: 900;
    text-align: right;
    white-space: nowrap;
}

.pathogen-detail-title[b-s0gto5k24c] {
    border-radius: 18px;
    background: linear-gradient(135deg, #eff6ff, #ecfeff);
    padding: 14px;
}

.pathogen-detail-title span[b-s0gto5k24c] {
    display: block;
    color: #0f4c81;
    font-size: 12px;
    font-weight: 950;
    margin-bottom: 4px;
}

.pathogen-detail-title h2[b-s0gto5k24c] {
    margin: 0;
    color: var(--pathogen-primary-dark);
    font-size: 22px;
    font-weight: 950;
    letter-spacing: -0.04em;
}

.pathogen-detail-title p[b-s0gto5k24c] {
    margin: 4px 0 0;
    color: var(--pathogen-muted);
    font-size: 12px;
    font-weight: 850;
}

.pathogen-detail-section[b-s0gto5k24c] {
    margin-top: 16px;
}

.pathogen-detail-section h3[b-s0gto5k24c] {
    margin: 0 0 8px;
    color: var(--pathogen-primary-dark);
    font-size: 14px;
    font-weight: 950;
}

.pathogen-detail-list[b-s0gto5k24c] {
    display: grid;
    gap: 8px;
    margin: 0;
}

.pathogen-detail-list div[b-s0gto5k24c] {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    align-items: center;
    min-height: 34px;
    border-radius: 12px;
    background: #f8fbfd;
    padding: 7px 10px;
}

.pathogen-detail-list dt[b-s0gto5k24c],
.pathogen-detail-list dd[b-s0gto5k24c] {
    margin: 0;
    min-width: 0;
    overflow-wrap: anywhere;
    font-size: 12px;
    font-weight: 800;
}

.pathogen-detail-list dt[b-s0gto5k24c] {
    color: var(--pathogen-muted);
}

.pathogen-detail-list dd[b-s0gto5k24c] {
    color: var(--pathogen-text);
}

.pathogen-mini-stat-grid[b-s0gto5k24c] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.pathogen-mini-stat-grid div[b-s0gto5k24c] {
    min-width: 0;
    border: 1px solid #e5edf7;
    border-radius: 14px;
    background: #fff;
    padding: 10px;
}

.pathogen-mini-stat-grid span[b-s0gto5k24c],
.pathogen-mini-stat-grid strong[b-s0gto5k24c] {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pathogen-mini-stat-grid span[b-s0gto5k24c] {
    color: var(--pathogen-muted);
    font-size: 11px;
    font-weight: 850;
}

.pathogen-mini-stat-grid strong[b-s0gto5k24c] {
    margin-top: 3px;
    color: var(--pathogen-primary-dark);
    font-size: 16px;
    font-weight: 950;
}

.pathogen-empty[b-s0gto5k24c] {
    display: grid;
    place-items: center;
    min-height: 120px;
    border: 1px dashed #cbd5e1;
    border-radius: 16px;
    background: #f8fafc;
    color: var(--pathogen-muted);
    font-size: 13px;
    font-weight: 850;
    text-align: center;
    padding: 16px;
}

.pathogen-empty.compact[b-s0gto5k24c] {
    min-height: 74px;
}

@media (max-width: 1380px) {
    .pathogen-kpi-strip[b-s0gto5k24c] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .pathogen-one-screen[b-s0gto5k24c] {
        grid-template-columns: minmax(220px, 24%) minmax(460px, 1fr) minmax(260px, 27%);
    }
}

@media (max-width: 1100px) {
    .pathogen-workspace[b-s0gto5k24c] {
        height: auto;
        overflow: visible;
    }

    .pathogen-search-panel[b-s0gto5k24c],
    .pathogen-kpi-strip[b-s0gto5k24c],
    .pathogen-one-screen[b-s0gto5k24c] {
        grid-template-columns: 1fr;
    }

    .pathogen-tree-panel[b-s0gto5k24c],
    .pathogen-center-panel[b-s0gto5k24c],
    .pathogen-detail-panel[b-s0gto5k24c] {
        height: auto;
        max-height: none;
    }

    .pathogen-table-shell[b-s0gto5k24c] {
        max-height: 560px;
    }
}

.pathogen-row-actions[b-s0gto5k24c] {
    display: flex;
    gap: 0.35rem;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
}

.pathogen-row-action[b-s0gto5k24c] {
    border: 1px solid rgba(18, 73, 125, 0.28);
    background: #ffffff;
    color: #0b3b67;
    border-radius: 0.65rem;
    padding: 0.35rem 0.7rem;
    font-weight: 800;
    font-size: 0.78rem;
    line-height: 1;
}

.pathogen-row-action:hover[b-s0gto5k24c] {
    background: rgba(17, 86, 154, 0.08);
}

.pathogen-row-action.danger[b-s0gto5k24c] {
    border-color: rgba(220, 53, 69, 0.34);
    color: #b4232f;
}

.pathogen-row-action.danger:hover[b-s0gto5k24c] {
    background: rgba(220, 53, 69, 0.08);
}

.pathogen-modal-backdrop[b-s0gto5k24c] {
    position: fixed;
    inset: 0;
    z-index: 2500;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    background: rgba(5, 19, 32, 0.48);
    backdrop-filter: blur(2px);
}

.pathogen-modal[b-s0gto5k24c] {
    width: min(760px, calc(100vw - 2rem));
    max-height: calc(100vh - 3rem);
    overflow: auto;
    background: #ffffff;
    border-radius: 1.1rem;
    box-shadow: 0 22px 70px rgba(7, 32, 54, 0.28);
    border: 1px solid rgba(148, 163, 184, 0.3);
    padding: 1.1rem;
}

.pathogen-modal-small[b-s0gto5k24c] {
    width: min(520px, calc(100vw - 2rem));
}

.pathogen-modal-head[b-s0gto5k24c] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.pathogen-modal-head h3[b-s0gto5k24c] {
    margin: 0;
    color: #082f56;
    font-size: 1.08rem;
    font-weight: 900;
}

.pathogen-modal-head p[b-s0gto5k24c],
.pathogen-delete-note[b-s0gto5k24c] {
    margin: 0.25rem 0 0;
    color: #607087;
    font-weight: 700;
    font-size: 0.86rem;
}

.pathogen-modal-close[b-s0gto5k24c] {
    border: 0;
    background: #eef4fb;
    color: #0b3b67;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    font-weight: 900;
    font-size: 1.25rem;
    line-height: 1;
}

.pathogen-form-grid[b-s0gto5k24c] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.pathogen-form-grid label[b-s0gto5k24c] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    color: #0b3b67;
    font-size: 0.78rem;
    font-weight: 900;
}

.pathogen-form-grid label.wide[b-s0gto5k24c] {
    grid-column: 1 / -1;
}

.pathogen-form-grid input[b-s0gto5k24c],
.pathogen-form-grid textarea[b-s0gto5k24c] {
    width: 100%;
    border: 1px solid rgba(148, 163, 184, 0.5);
    border-radius: 0.75rem;
    padding: 0.65rem 0.75rem;
    color: #0f2841;
    font-weight: 700;
    background: #f8fbff;
}

.pathogen-modal-actions[b-s0gto5k24c] {
    display: flex;
    justify-content: flex-end;
    gap: 0.55rem;
    margin-top: 1rem;
}

.pathogen-btn-danger[b-s0gto5k24c] {
    border: 1px solid #dc3545;
    background: #dc3545;
    color: #ffffff;
}

.pathogen-modal-message[b-s0gto5k24c] {
    border-radius: 0.75rem;
    padding: 0.65rem 0.8rem;
    margin-bottom: 0.8rem;
    font-weight: 800;
}

.pathogen-modal-message.error[b-s0gto5k24c] {
    background: #fff1f2;
    color: #b4232f;
    border: 1px solid rgba(220, 53, 69, 0.25);
}

.pathogen-modal-message.success[b-s0gto5k24c] {
    background: #ecfdf3;
    color: #027a48;
    border: 1px solid rgba(2, 122, 72, 0.22);
}

@media (max-width: 900px) {
    .pathogen-form-grid[b-s0gto5k24c] {
        grid-template-columns: 1fr;
    }
}

.pathogen-row-hint[b-s0gto5k24c] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 1.75rem;
    padding: 0 0.6rem;
    border: 1px solid rgba(11, 55, 100, 0.16);
    border-radius: 999px;
    color: #536b84;
    background: #f7fbff;
    font-size: 0.78rem;
    font-weight: 800;
}

/* PATCH 20: taxonomy tree / panel scroll / detail card correction */
.pathogen-tree-panel[b-s0gto5k24c],
.pathogen-center-panel[b-s0gto5k24c],
.pathogen-detail-panel[b-s0gto5k24c] {
    max-height: calc(100vh - 245px);
}

.pathogen-tree-panel[b-s0gto5k24c],
.pathogen-detail-panel[b-s0gto5k24c],
.pathogen-table-shell[b-s0gto5k24c] {
    overflow-y: auto;
}

.pathogen-tree-scroll[b-s0gto5k24c] {
    align-content: start;
    max-height: calc(100vh - 355px);
    overflow-y: auto;
    padding-right: 4px;
}

.pathogen-tree-node[b-s0gto5k24c] {
    display: block;
    text-align: left;
}

.pathogen-tree-row[b-s0gto5k24c] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding-left: calc(var(--depth, 0) * 14px);
}

.pathogen-tree-expander[b-s0gto5k24c] {
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    border: 1px solid var(--pathogen-border);
    border-radius: 7px;
    background: #eef6ff;
    color: var(--pathogen-primary);
    font-size: 14px;
    font-weight: 950;
    line-height: 1;
}

.pathogen-tree-expander.placeholder[b-s0gto5k24c] {
    border-color: transparent;
    background: transparent;
}

.pathogen-tree-button[b-s0gto5k24c] {
    flex: 1 1 auto;
    justify-content: space-between;
    text-align: left;
    min-width: 0;
}

.pathogen-tree-button > span[b-s0gto5k24c] {
    min-width: 0;
    text-align: left;
}

.pathogen-tree-button strong[b-s0gto5k24c],
.pathogen-tree-button small[b-s0gto5k24c] {
    text-align: left;
}

.pathogen-detail-panel[b-s0gto5k24c] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.pathogen-detail-title[b-s0gto5k24c],
.pathogen-detail-section[b-s0gto5k24c] {
    border: 1px solid var(--pathogen-border);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 12px 26px rgba(9, 70, 96, 0.05);
}

.pathogen-detail-title[b-s0gto5k24c] {
    padding: 16px 18px;
    background: linear-gradient(135deg, #eef9ff, #f8ffff);
}

.pathogen-detail-section[b-s0gto5k24c] {
    padding: 14px 16px;
}

.pathogen-detail-list > div[b-s0gto5k24c],
.pathogen-mini-stat-grid > div[b-s0gto5k24c] {
    border-radius: 14px;
}

.pathogen-kpi-strip article[b-s0gto5k24c] {
    min-height: 78px;
}

.pathogen-kpi-strip strong[b-s0gto5k24c] {
    white-space: normal;
}

.pathogen-center-head-actions[b-s0gto5k24c] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
    min-width: min(100%, 360px);
}

.pathogen-add-btn[b-s0gto5k24c] {
    min-height: 34px;
    padding-inline: 14px;
    white-space: nowrap;
}

.pathogen-form-grid input[readonly][b-s0gto5k24c] {
    background: #eef6ff;
    color: var(--pathogen-primary-dark);
    font-weight: 900;
}

@media (max-width: 1100px) {
    .pathogen-center-head-actions[b-s0gto5k24c] {
        align-items: stretch;
        width: 100%;
    }
}


/* PATCH 32: restore single-scroll line tree layout after manual add/edit patch */
.pathogen-tree-panel[b-s0gto5k24c] {
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
    overflow: hidden !important;
}

.pathogen-tree-scroll[b-s0gto5k24c] {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 4px 6px 10px 2px !important;
    align-content: start !important;
}

.pathogen-tree-node[b-s0gto5k24c] {
    position: relative !important;
    display: block !important;
    text-align: left !important;
}

.pathogen-tree-children[b-s0gto5k24c] {
    position: relative !important;
    margin-left: 15px !important;
    padding-left: 15px !important;
    border-left: 1px solid rgba(96, 165, 250, 0.36) !important;
}

.pathogen-tree-row[b-s0gto5k24c] {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    min-width: 0 !important;
    padding-left: min(calc(var(--depth, 0) * 5px), 30px) !important;
    text-align: left !important;
}

.pathogen-tree-children > .pathogen-tree-node > .pathogen-tree-row[b-s0gto5k24c]::before {
    content: "";
    position: absolute;
    left: -15px;
    top: 50%;
    width: 15px;
    height: 1px;
    background: rgba(96, 165, 250, 0.42);
}

.pathogen-tree-expander[b-s0gto5k24c] {
    flex: 0 0 28px !important;
    width: 28px !important;
    height: 28px !important;
    border-radius: 10px !important;
    z-index: 1 !important;
}

.pathogen-tree-expander.placeholder[b-s0gto5k24c] {
    border-color: rgba(191, 219, 254, 0.65) !important;
    background: #fff !important;
    color: transparent !important;
}

.pathogen-tree-button[b-s0gto5k24c] {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto auto !important;
    align-items: center !important;
    gap: 7px !important;
    text-align: left !important;
    justify-content: stretch !important;
    padding: 7px 10px !important;
}

.pathogen-tree-button > span[b-s0gto5k24c],
.pathogen-tree-button strong[b-s0gto5k24c],
.pathogen-tree-button small[b-s0gto5k24c] {
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    text-align: left !important;
}

.pathogen-tree-rank[b-s0gto5k24c] {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 28px !important;
    height: 22px !important;
    padding: 0 7px !important;
    border: 1px solid rgba(14, 165, 233, 0.24) !important;
    border-radius: 999px !important;
    background: #ecfeff !important;
    color: #0369a1 !important;
    font-size: 0.72rem !important;
    font-weight: 950 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

.pathogen-tree-button em[b-s0gto5k24c] {
    flex: 0 0 auto !important;
    min-width: 46px !important;
    text-align: center !important;
}

.pathogen-center-head-actions[b-s0gto5k24c] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.pathogen-sequence-table th[b-s0gto5k24c],
.pathogen-sequence-table td[b-s0gto5k24c] {
    white-space: nowrap;
}

.pathogen-sequence-cell[b-s0gto5k24c] {
    min-width: 210px;
    white-space: normal !important;
}

.pathogen-sequence-cell strong[b-s0gto5k24c],
.pathogen-sequence-cell small[b-s0gto5k24c] {
    display: block;
}

/* PATCH 33: keep taxonomy as a navigation pane, not a data-eating panel */
.pathogen-one-screen[b-s0gto5k24c] {
    grid-template-columns: minmax(300px, 19%) minmax(720px, 1fr) minmax(320px, 23%) !important;
}

.pathogen-tree-panel[b-s0gto5k24c] {
    padding: 10px !important;
}

.pathogen-tree-scroll[b-s0gto5k24c] {
    scrollbar-gutter: stable;
}

.pathogen-tree-children[b-s0gto5k24c] {
    margin-left: 10px !important;
    padding-left: 10px !important;
}

.pathogen-tree-children > .pathogen-tree-node > .pathogen-tree-row[b-s0gto5k24c]::before {
    left: -10px !important;
    width: 10px !important;
}

.pathogen-tree-row[b-s0gto5k24c] {
    gap: 4px !important;
    padding-left: min(calc(var(--depth, 0) * 3px), 18px) !important;
}

.pathogen-tree-expander[b-s0gto5k24c] {
    flex-basis: 24px !important;
    width: 24px !important;
    height: 24px !important;
    border-radius: 8px !important;
    cursor: pointer;
}

.pathogen-tree-expander.placeholder[b-s0gto5k24c] {
    pointer-events: none !important;
    cursor: default !important;
    border-color: transparent !important;
    background: transparent !important;
    box-shadow: none !important;
}

.pathogen-tree-button[b-s0gto5k24c] {
    min-height: 38px !important;
    padding: 6px 8px !important;
    gap: 5px !important;
    grid-template-columns: minmax(0, 1fr) auto minmax(34px, auto) !important;
}

.pathogen-tree-button strong[b-s0gto5k24c] {
    font-size: 12px !important;
}

.pathogen-tree-button small[b-s0gto5k24c] {
    font-size: 10px !important;
}

.pathogen-tree-rank[b-s0gto5k24c] {
    min-width: 24px !important;
    height: 20px !important;
    padding: 0 5px !important;
    font-size: 0.66rem !important;
}

.pathogen-tree-button em[b-s0gto5k24c] {
    min-width: 34px !important;
    padding: 3px 5px !important;
    font-size: 10px !important;
}

.pathogen-center-head-actions[b-s0gto5k24c] {
    align-items: flex-end !important;
}

.pathogen-center-head-actions:has(.pathogen-tabs:only-child)[b-s0gto5k24c] {
    min-width: auto !important;
}

.pathogen-sequence-table[b-s0gto5k24c] {
    min-width: 980px;
}

@media (max-width: 1380px) {
    .pathogen-one-screen[b-s0gto5k24c] {
        grid-template-columns: minmax(260px, 22%) minmax(560px, 1fr) minmax(260px, 24%) !important;
    }
}

.pathogen-tree-more[b-s0gto5k24c] {
    margin: 4px 0 4px 36px;
    padding: 6px 8px;
    border: 1px dashed rgba(96, 165, 250, 0.55);
    border-radius: 10px;
    background: #f8fbff;
    color: #41627d;
    font-size: 10px;
    font-weight: 850;
    text-align: left;
}

/* PATCH: sequence linkage marker */
.pathogen-muted[b-s0gto5k24c] {
    color: var(--oh-text-muted, #6b7890);
    font-weight: 700;
}
/* /Components/Shared/AuthHeaderActions.razor.rz.scp.css */
.ke-auth-actions[b-qi7xk9vi1t] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    min-width: 0;
}

.ke-auth-account-link[b-qi7xk9vi1t] {
    min-height: 32px;
    max-width: 190px;
    display: inline-flex;
    align-items: center;
    gap: .42rem;
    padding: 0 .58rem 0 .48rem;
    border: 1px solid rgba(255, 255, 255, .26);
    border-radius: 999px;
    background: rgba(255, 255, 255, .10);
    color: #fff;
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
}

.ke-auth-account-link:hover[b-qi7xk9vi1t] {
    color: #fff;
    text-decoration: none;
    background: rgba(255, 255, 255, .18);
}

.ke-auth-dot[b-qi7xk9vi1t] {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    flex: 0 0 auto;
    background: #94a3b8;
    box-shadow: 0 0 0 3px rgba(148, 163, 184, .18);
}

.ke-auth-account-link-signed .ke-auth-dot[b-qi7xk9vi1t] {
    background: #22c55e;
    box-shadow: 0 0 0 3px rgba(34, 197, 94, .20);
}

.ke-auth-account-link-anonymous .ke-auth-dot[b-qi7xk9vi1t] {
    background: #f59e0b;
    box-shadow: 0 0 0 3px rgba(245, 158, 11, .20);
}

.ke-auth-text[b-qi7xk9vi1t] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    line-height: 1.02;
    overflow: hidden;
}

.ke-auth-main[b-qi7xk9vi1t],
.ke-auth-sub[b-qi7xk9vi1t] {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ke-auth-main[b-qi7xk9vi1t] {
    font-size: .74rem;
    font-weight: 950;
}

.ke-auth-sub[b-qi7xk9vi1t] {
    margin-top: .08rem;
    color: rgba(235, 247, 255, .78);
    font-size: .6rem;
    font-weight: 850;
}

.ke-auth-command[b-qi7xk9vi1t] {
    min-height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 .72rem;
    border-radius: 999px;
    font-size: .74rem;
    font-weight: 950;
    white-space: nowrap;
    cursor: pointer;
}

.ke-auth-login[b-qi7xk9vi1t] {
    border: 1px solid rgba(255, 255, 255, .32);
    background: rgba(255, 255, 255, .16);
    color: #fff;
}

.ke-auth-login:hover[b-qi7xk9vi1t] {
    background: rgba(255, 255, 255, .26);
}

.ke-auth-logout[b-qi7xk9vi1t] {
    border: 1px solid rgba(252, 165, 165, .64);
    background: rgba(255, 255, 255, .10);
    color: #fecaca;
}

.ke-auth-logout:hover[b-qi7xk9vi1t] {
    background: rgba(239, 68, 68, .18);
    color: #fff;
}

@media (max-width: 1500px) {
    .ke-auth-account-link[b-qi7xk9vi1t] { max-width: 150px; padding-inline: .42rem; }
    .ke-auth-command[b-qi7xk9vi1t] { padding-inline: .55rem; font-size: .7rem; }
}

@media (max-width: 1320px) {
    .ke-auth-account-link[b-qi7xk9vi1t] { max-width: 128px; }
}

@media (max-width: 680px) {
    .ke-auth-command[b-qi7xk9vi1t] { display: none; }
    .ke-auth-account-link[b-qi7xk9vi1t] { max-width: 150px; }
}
/* /Components/Shared/AuthStatusBadge.razor.rz.scp.css */
.ke-auth-status[b-n8f6n62uq4] {
    min-width: 116px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: 0 .55rem;
    border-radius: 999px;
    color: #fff;
    white-space: nowrap;
}

.ke-auth-dot[b-n8f6n62uq4] {
    width: 8px;
    height: 8px;
    flex: 0 0 auto;
    border-radius: 999px;
    background: #fbbf24;
    box-shadow: 0 0 0 3px rgba(251, 191, 36, .18);
}

.ke-auth-status-signed .ke-auth-dot[b-n8f6n62uq4] {
    background: #22c55e;
    box-shadow: 0 0 0 3px rgba(34, 197, 94, .18);
}

.ke-auth-status-anonymous .ke-auth-dot[b-n8f6n62uq4] {
    background: #f97316;
    box-shadow: 0 0 0 3px rgba(249, 115, 22, .18);
}

.ke-auth-text[b-n8f6n62uq4] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    line-height: 1.05;
}

.ke-auth-main[b-n8f6n62uq4] {
    max-width: 128px;
    overflow: hidden;
    font-size: .75rem;
    font-weight: 950;
    text-overflow: ellipsis;
}

.ke-auth-sub[b-n8f6n62uq4] {
    max-width: 128px;
    margin-top: .12rem;
    overflow: hidden;
    color: rgba(235, 247, 255, .72);
    font-size: .58rem;
    font-weight: 800;
    text-overflow: ellipsis;
}

@media (max-width: 1240px) {
    .ke-auth-status[b-n8f6n62uq4] { min-width: 92px; }
    .ke-auth-sub[b-n8f6n62uq4] { display: none; }
}
/* /Components/Shared/DataRecordActions.razor.rz.scp.css */
.oh-record-actions[b-766nnlz01d] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.oh-action-btn[b-766nnlz01d],
.oh-modal-btn[b-766nnlz01d] {
    border: 1px solid transparent;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    min-height: 30px;
    padding: 0 12px;
    cursor: pointer;
    box-shadow: 0 8px 16px rgba(15, 23, 42, .08);
}

.oh-action-btn-sm[b-766nnlz01d] {
    min-height: 26px;
    padding: 0 9px;
    font-size: 11px;
}

.oh-action-btn-edit[b-766nnlz01d],
.oh-modal-btn-primary[b-766nnlz01d] {
    background: #0f3b63 !important;
    border-color: #0f3b63 !important;
    color: #fff !important;
}

.oh-action-btn-edit:hover[b-766nnlz01d],
.oh-modal-btn-primary:hover:not(:disabled)[b-766nnlz01d] {
    background: #08233c !important;
    border-color: #08233c !important;
    color: #fff !important;
}

.oh-action-btn-danger[b-766nnlz01d],
.oh-modal-btn-danger[b-766nnlz01d] {
    background: #fff5f5 !important;
    border-color: #f4b6b6 !important;
    color: #b42318 !important;
}

.oh-action-btn-danger:hover[b-766nnlz01d],
.oh-modal-btn-danger:hover:not(:disabled)[b-766nnlz01d] {
    background: #dc2626 !important;
    border-color: #dc2626 !important;
    color: #fff !important;
}

.oh-modal-btn-outline[b-766nnlz01d] {
    background: #fff !important;
    border-color: #cbd5e1 !important;
    color: #0f172a !important;
}

.oh-modal-btn-outline:hover[b-766nnlz01d] {
    background: #f1f5f9 !important;
    border-color: #94a3b8 !important;
    color: #0f172a !important;
}

.oh-modal-btn:disabled[b-766nnlz01d] {
    opacity: .55;
    cursor: not-allowed;
    box-shadow: none;
}

.oh-modal-actions[b-766nnlz01d] {
    border-top: 1px solid #e2e8f0;
    padding-top: 12px;
}

/* hotfix_012: no white modal buttons on white modal surfaces. */
.oh-modal-btn-primary[b-766nnlz01d] {
    background: #0a2a62 !important;
    border-color: #06183f !important;
    color: #ffffff !important;
}

.oh-modal-btn-outline[b-766nnlz01d] {
    background: #334155 !important;
    border-color: #1e293b !important;
    color: #ffffff !important;
}

.oh-modal-btn-outline:hover:not(:disabled)[b-766nnlz01d] {
    background: #1e293b !important;
    border-color: #0f172a !important;
    color: #ffffff !important;
}

.oh-modal-btn-danger[b-766nnlz01d] {
    background: #dc2626 !important;
    border-color: #991b1b !important;
    color: #ffffff !important;
}

/* hotfix_020: record mutation actions should not be white/low-contrast. */
.oh-action-btn-edit[b-766nnlz01d],
.oh-modal-btn-primary[b-766nnlz01d] {
    background: #1d4ed8 !important;
    border-color: #1e40af !important;
    color: #ffffff !important;
}

.oh-action-btn-danger[b-766nnlz01d],
.oh-modal-btn-danger[b-766nnlz01d] {
    background: #dc2626 !important;
    border-color: #991b1b !important;
    color: #ffffff !important;
}

.oh-modal-btn-outline[b-766nnlz01d] {
    background: #334155 !important;
    border-color: #1e293b !important;
    color: #ffffff !important;
}
/* /Components/Shared/DataRecordCreateButton.razor.rz.scp.css */
.oh-action-btn-create[b-u7c7mnqzay] {
    background: #0f766e !important;
    border-color: #115e59 !important;
    color: #ffffff !important;
}

.oh-action-btn-create:hover:not(:disabled)[b-u7c7mnqzay] {
    background: #115e59 !important;
    border-color: #0f4f4a !important;
    color: #ffffff !important;
}

.oh-create-grid[b-u7c7mnqzay] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 10px;
}

.oh-create-help[b-u7c7mnqzay] {
    display: grid;
    gap: 4px;
    margin-top: 12px;
    border: 1px solid #bfdbfe;
    border-radius: 14px;
    background: #eff6ff;
    padding: 10px 12px;
    color: #1e3a8a;
    font-size: 12px;
    font-weight: 850;
}

.oh-create-help strong[b-u7c7mnqzay] {
    font-weight: 950;
}

@media (max-width: 760px) {
    .oh-create-grid[b-u7c7mnqzay] {
        grid-template-columns: 1fr;
    }
}


/* PATCH 08: data add/edit/delete is always performed inside a modal popup. */
.oh-data-popup[b-u7c7mnqzay] {
    width: min(720px, calc(100vw - 32px));
    max-height: calc(100vh - 48px);
    overflow: auto;
}

.oh-data-popup .oh-modal-header[b-u7c7mnqzay] {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #ffffff;
    border-bottom: 1px solid #dbeafe;
}

.oh-data-popup .oh-modal-actions[b-u7c7mnqzay] {
    position: sticky;
    bottom: 0;
    z-index: 2;
    background: #ffffff;
    border-top: 1px solid #dbeafe;
}
/* /Components/Shared/OhInitialPageGate.razor.rz.scp.css */
.oh-initial-page-state[b-f9j6rcgree] {
    min-height: clamp(420px, calc(100vh - 180px), 860px);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 1rem;
    padding: 2rem;
    text-align: center;
    color: var(--oh-text, #17324d);
    background: var(--oh-surface, #fff);
    border: 1px solid var(--oh-border, #d9e4ef);
    border-radius: 18px;
    box-shadow: 0 12px 30px rgba(23, 50, 77, .06);
}

.oh-initial-page-copy[b-f9j6rcgree] {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    max-width: 620px;
}

.oh-initial-page-copy strong[b-f9j6rcgree] {
    font-size: 1.08rem;
    font-weight: 750;
}

.oh-initial-page-copy span[b-f9j6rcgree] {
    color: var(--oh-muted, #63778b);
    line-height: 1.55;
}

.oh-initial-page-spinner[b-f9j6rcgree] {
    width: 42px;
    height: 42px;
    border: 4px solid rgba(37, 99, 235, .16);
    border-top-color: var(--oh-primary, #2563eb);
    border-radius: 50%;
    animation: oh-initial-page-spin-b-f9j6rcgree .8s linear infinite;
}

.oh-initial-page-state-error[b-f9j6rcgree] {
    border-color: rgba(190, 24, 93, .24);
    background: #fffafb;
}

.oh-initial-page-error-icon[b-f9j6rcgree] {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    font-size: 1.3rem;
    font-weight: 800;
    color: #be185d;
    background: rgba(190, 24, 93, .1);
}

@keyframes oh-initial-page-spin-b-f9j6rcgree {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .oh-initial-page-spinner[b-f9j6rcgree] {
        animation-duration: 1.8s;
    }
}
/* /Components/Shared/OhPager.razor.rz.scp.css */
.oh-pager[b-fhmfahiakj] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    margin-top: 0.75rem;
}

.oh-pager-controls[b-fhmfahiakj] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-width: 0;
}

.oh-pager-controls button[b-fhmfahiakj] {
    min-width: 2.1rem;
    min-height: 2.1rem;
    border: 1px solid rgba(33, 92, 156, 0.18);
    border-radius: 0.65rem;
    background: #fff;
    color: #0b3764;
    font-weight: 800;
    cursor: pointer;
}

.oh-pager-controls button.active[b-fhmfahiakj],
.oh-pager-controls button:disabled.active[b-fhmfahiakj] {
    background: #0b3764;
    border-color: #0b3764;
    color: #fff;
}

.oh-pager-controls button:disabled:not(.active)[b-fhmfahiakj] {
    color: rgba(11, 55, 100, 0.35);
    cursor: not-allowed;
}

.oh-pager-range[b-fhmfahiakj] {
    justify-self: end;
    color: #536b84;
    font-size: 0.9rem;
    font-weight: 800;
    white-space: nowrap;
}

@media (max-width: 900px) {
    .oh-pager[b-fhmfahiakj] {
        grid-template-columns: 1fr;
        justify-items: center;
    }

    .oh-pager-spacer[b-fhmfahiakj] {
        display: none;
    }

    .oh-pager-range[b-fhmfahiakj] {
        justify-self: center;
    }
}


/* patch_07 pager normalization: one pager shape across ecology/pathogen/alpha/acoustic/admin. */
.oh-pager[b-fhmfahiakj] {
    flex: 0 0 auto;
    min-height: 42px;
    margin-top: 8px;
    padding: 6px 8px;
    border-top: 1px solid #e5edf7;
}

.oh-pager-controls button[b-fhmfahiakj] {
    min-width: 34px !important;
    min-height: 30px !important;
    padding: 0 10px !important;
    border-radius: 10px !important;
    font-size: 12px !important;
    font-weight: 950 !important;
}

.oh-pager-range[b-fhmfahiakj] {
    font-size: 12px !important;
    font-weight: 900 !important;
}
