@import '_content/Microsoft.FluentUI.AspNetCore.Components/Microsoft.FluentUI.AspNetCore.Components.84wtju4z0n.bundle.scp.css';

/* /Components/Layout/EmptyLayout.razor.rz.scp.css */
#blazor-error-ui[b-ou9jdk59iv] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-ou9jdk59iv] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/MainLayout.razor.rz.scp.css */
#blazor-error-ui[b-6ijz99py4b] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-6ijz99py4b] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }



/* Data Analysis Table Styles */
.nts-table th[b-6ijz99py4b] {
    @apply bg-gray-100 text-gray-600 font-semibold text-xs border border-gray-300 px-2 py-1 text-center whitespace-nowrap;
}

.nts-table td[b-6ijz99py4b] {
    @apply border border-gray-300 px-2 py-1 text-xs whitespace-nowrap text-center;
}

.nts-table tr:hover td[b-6ijz99py4b] {
    @apply bg-blue-50/50;
}

/* Attune Results Table Specific */
.attune-table th[b-6ijz99py4b] {
    @apply border border-gray-400 px-2 py-1 text-xs font-bold text-center whitespace-nowrap;
}

.attune-table td[b-6ijz99py4b] {
    @apply border border-gray-300 px-2 py-1 text-xs whitespace-nowrap text-center text-gray-800;
}

.attune-table .bg-yellow-highlight[b-6ijz99py4b] {
    background-color: #fef08a !important; /* Tailwind yellow-300 */
}

/* Fabric Pipeline Styles */
.pipeline-node[b-6ijz99py4b] {
    @apply flex items-center justify-center w-12 h-12 rounded-full border-2 border-gray-300 bg-white z-10 relative transition-colors duration-300;
}

    .pipeline-node.active[b-6ijz99py4b] {
        @apply border-blue-500 text-blue-500 shadow-[0_0_15px_rgba(59,130,246,0.5)];
    }

    .pipeline-node.success[b-6ijz99py4b] {
        @apply border-green-500 bg-green-50 text-green-600;
    }

.pipeline-line[b-6ijz99py4b] {
    @apply absolute top-6 left-6 right-[-24px] h-0.5 bg-gray-300 z-0 transition-colors duration-300;
}

    .pipeline-line.active[b-6ijz99py4b] {
        @apply bg-blue-500;
    }

    .pipeline-line.success[b-6ijz99py4b] {
        @apply bg-green-500;
    }

/* Fake Terminal */
.terminal[b-6ijz99py4b] {
    background-color: #1e1e1e;
    color: #d4d4d4;
    font-family: 'Courier New', Courier, monospace;
    padding: 1rem;
    border-radius: 0.5rem;
    height: 250px;
    overflow-y: auto;
    font-size: 0.8rem;
}

    .terminal .log-info[b-6ijz99py4b] {
        color: #569cd6;
    }

    .terminal .log-success[b-6ijz99py4b] {
        color: #4ec9b0;
    }

    .terminal .log-warn[b-6ijz99py4b] {
        color: #ce9178;
    }

/* Upload Area */
.upload-area.dragover[b-6ijz99py4b] {
    @apply border-blue-500 bg-blue-50;
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-6ud6qu4qwn],
.components-reconnect-repeated-attempt-visible[b-6ud6qu4qwn],
.components-reconnect-failed-visible[b-6ud6qu4qwn],
.components-pause-visible[b-6ud6qu4qwn],
.components-resume-failed-visible[b-6ud6qu4qwn],
.components-rejoining-animation[b-6ud6qu4qwn] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-6ud6qu4qwn],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-6ud6qu4qwn],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-6ud6qu4qwn],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-6ud6qu4qwn],
#components-reconnect-modal.components-reconnect-retrying[b-6ud6qu4qwn],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-6ud6qu4qwn],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-6ud6qu4qwn],
#components-reconnect-modal.components-reconnect-failed[b-6ud6qu4qwn],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-6ud6qu4qwn] {
    display: block;
}


#components-reconnect-modal[b-6ud6qu4qwn] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-6ud6qu4qwn 0.5s both;
}

#components-reconnect-modal[open][b-6ud6qu4qwn] {
    animation: components-reconnect-modal-slideUp-b-6ud6qu4qwn 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-6ud6qu4qwn 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

#components-reconnect-modal[b-6ud6qu4qwn]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-6ud6qu4qwn 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-6ud6qu4qwn {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-6ud6qu4qwn {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-6ud6qu4qwn {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-6ud6qu4qwn] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-6ud6qu4qwn] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-6ud6qu4qwn] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-6ud6qu4qwn] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-6ud6qu4qwn] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-6ud6qu4qwn] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-6ud6qu4qwn] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-6ud6qu4qwn 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-6ud6qu4qwn] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-6ud6qu4qwn {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/Compute/Dashboard.razor.rz.scp.css */
body[b-vwjhelb7nz] {
    /* Gebruikmakend van een cleane font die lijkt op de Azure portal */
    font-family: 'Segoe UI', 'Inter', system-ui, sans-serif;
    background-color: #f3f2f1; /* Zeer lichtgrijs, typisch voor portal achtergronden */
    overflow: hidden;
}

/* Custom scrollbar */
[b-vwjhelb7nz]::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

[b-vwjhelb7nz]::-webkit-scrollbar-track {
    background: transparent;
}

[b-vwjhelb7nz]::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 4px;
}

    [b-vwjhelb7nz]::-webkit-scrollbar-thumb:hover {
        background: #94a3b8;
    }

/* Azure-style Cards */
.az-card[b-vwjhelb7nz] {
    background-color: #ffffff;
    border: 1px solid #e1dfdd;
    box-shadow: 0 1.6px 3.6px 0 rgba(0,0,0,0.132), 0 0.3px 0.9px 0 rgba(0,0,0,0.108);
    border-radius: 2px;
}

.rdp-container[b-vwjhelb7nz] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #0078d4;
    font-size: 13px;
    cursor: pointer;
    padding: 16px;
    transition: background-color 0.2s;
}

    .rdp-container:hover[b-vwjhelb7nz] {
        background-color: #f8f8f8;
        text-decoration: underline;
    }

.rdp-icon[b-vwjhelb7nz] {
    font-size: 28px;
    color: #0078d4;
    margin-bottom: 8px;
}

/* SVG Graph Styles */
.chart-grid-line[b-vwjhelb7nz] {
    stroke: #edebe9;
    stroke-width: 1;
}

.chart-area-accumulated[b-vwjhelb7nz] {
    fill: #73c86b;
}
/* Donkergroen */
.chart-area-forecast[b-vwjhelb7nz] {
    fill: #cff0c6;
}
/* Lichtgroen */

/* Pattern for dashed legend dot */
.striped-bg[b-vwjhelb7nz] {
    background: repeating-linear-gradient( 45deg, #d13438, #d13438 2px, #ffffff 2px, #ffffff 4px );
    border: 1px solid #d13438;
}
/* /Components/Pages/Compute/Management.razor.rz.scp.css */
.az-card[b-623yv8i6tv] {
    background-color: #ffffff;
    border: 1px solid #e1dfdd;
    box-shadow: 0 1.6px 3.6px 0 rgba(0,0,0,0.132), 0 0.3px 0.9px 0 rgba(0,0,0,0.108);
    border-radius: 2px;
}

.compute-stat-card[b-623yv8i6tv] {
    background-color: #ffffff;
    border: 1px solid #e1dfdd;
    box-shadow: 0 1.6px 3.6px 0 rgba(0,0,0,0.08), 0 0.3px 0.9px 0 rgba(0,0,0,0.06);
    border-radius: 2px;
    padding: 1rem;
}

.rdp-container[b-623yv8i6tv] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #0078d4;
    font-size: 13px;
    padding: 16px;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
}

.rdp-container:hover[b-623yv8i6tv] {
    background-color: #f8f8f8;
    text-decoration: underline;
}

.rdp-icon[b-623yv8i6tv] {
    font-size: 28px;
    color: #0078d4;
    margin-bottom: 8px;
}

.chart-grid-line[b-623yv8i6tv] {
    stroke: #edebe9;
    stroke-width: 1;
}

.chart-area-accumulated[b-623yv8i6tv] {
    fill: #73c86b;
}

.chart-area-forecast[b-623yv8i6tv] {
    fill: #cff0c6;
}

.striped-bg[b-623yv8i6tv] {
    background: repeating-linear-gradient(45deg, #d13438, #d13438 2px, #ffffff 2px, #ffffff 4px);
    border: 1px solid #d13438;
}
/* /Components/Pages/LAB/FlowCytometry/FlowCytometryUpload.razor.rz.scp.css */
/* =========================================================
   Flowcytometrie Bulk Upload – scoped styles
   ========================================================= */

.fc-page[b-7jq27gk451] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 16px;
    max-width: 1400px;
}

/* -- Header ------------------------------------------------ */

.fc-header[b-7jq27gk451] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 12px;
}

.fc-title[b-7jq27gk451] {
    margin: 0 0 4px;
    font-size: 1.5rem;
    font-weight: 600;
}

.fc-subtitle[b-7jq27gk451] {
    margin: 0;
    color: var(--neutral-foreground-hint, #666);
    font-size: 0.875rem;
    line-height: 1.5;
}

.fc-location-badge[b-7jq27gk451] {
    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--accent-fill-rest, #0078d4);
    color: #fff;
    border-radius: 8px;
    padding: 10px 16px;
    min-width: 220px;
}

.fc-location-icon[b-7jq27gk451] {
    font-size: 1.4rem;
    line-height: 1;
}

.fc-location-label[b-7jq27gk451] {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    opacity: 0.85;
}

.fc-location-value[b-7jq27gk451] {
    font-weight: 600;
    font-size: 0.95rem;
}

/* -- Upload zone ------------------------------------------- */

.fc-upload-card[b-7jq27gk451] {
    padding: 0;
}

.fc-upload-zone[b-7jq27gk451] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 32px 24px;
    border: 2px dashed var(--neutral-stroke-rest, #ccc);
    border-radius: 8px;
    text-align: center;
}

.fc-upload-icon[b-7jq27gk451] {
    font-size: 2.5rem;
    line-height: 1;
    opacity: 0.5;
}

.fc-upload-hint[b-7jq27gk451] {
    margin: 0;
    color: var(--neutral-foreground-hint, #666);
}

.fc-file-input[b-7jq27gk451] {
    /* Visually hidden but accessible via label */
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.fc-upload-label[b-7jq27gk451] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 20px;
    border-radius: 4px;
    background: var(--accent-fill-rest, #0078d4);
    color: #fff;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}

.fc-upload-label:hover[b-7jq27gk451] {
    background: var(--accent-fill-hover, #106ebe);
}

/* -- Voortgangsbalk ---------------------------------------- */

.fc-progress-card[b-7jq27gk451] {
    padding: 16px;
}

.fc-progress-info[b-7jq27gk451] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
    font-size: 0.875rem;
}

.fc-progress-count[b-7jq27gk451] {
    font-weight: 600;
    color: var(--accent-fill-rest, #0078d4);
}

.fc-progress-file[b-7jq27gk451] {
    display: block;
    margin-top: 6px;
    color: var(--neutral-foreground-hint, #888);
    font-size: 0.8rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* -- Resultaten toolbar ------------------------------------ */

.fc-results-card[b-7jq27gk451] {
    padding: 0;
    overflow: hidden;
}

.fc-results-toolbar[b-7jq27gk451] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    padding: 16px 20px 12px;
    border-bottom: 1px solid var(--neutral-stroke-rest, #eee);
}

.fc-results-title[b-7jq27gk451] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.fc-results-title h2[b-7jq27gk451] {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
}

.fc-badges[b-7jq27gk451] {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.fc-badge[b-7jq27gk451] {
    display: inline-flex;
    align-items: center;
    padding: 2px 10px;
    border-radius: 12px;
    font-size: 0.78rem;
    font-weight: 600;
}

.fc-badge-total[b-7jq27gk451] {
    background: var(--neutral-fill-rest, #f3f3f3);
    color: var(--neutral-foreground-rest, #333);
}

.fc-badge-ok[b-7jq27gk451] {
    background: #dff6dd;
    color: #107c10;
}

.fc-badge-error[b-7jq27gk451] {
    background: #fde7e9;
    color: #a4262c;
}

.fc-results-actions[b-7jq27gk451] {
    display: flex;
    gap: 8px;
    align-items: center;
}

/* -- Export boodschap -------------------------------------- */

.fc-export-boodschap[b-7jq27gk451] {
    padding: 10px 20px;
    font-size: 0.875rem;
    font-weight: 500;
    border-bottom: 1px solid var(--neutral-stroke-rest, #eee);
}

.fc-export-ok[b-7jq27gk451] {
    background: #dff6dd;
    color: #107c10;
}

.fc-export-error[b-7jq27gk451] {
    background: #fff4ce;
    color: #7a5f00;
}

/* -- Data grid --------------------------------------------- */

.fc-grid-wrapper[b-7jq27gk451] {
    overflow: auto;
    max-height: 520px;
}

.fc-col-filename[b-7jq27gk451] {
    max-width: 240px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Status badges in de tabel */

.fc-status[b-7jq27gk451] {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 0.78rem;
    font-weight: 600;
}

.fc-status-ok[b-7jq27gk451] {
    background: #dff6dd;
    color: #107c10;
}

.fc-status-fout[b-7jq27gk451] {
    background: #fde7e9;
    color: #a4262c;
}

.fc-fout-hint[b-7jq27gk451] {
    margin-left: 4px;
    cursor: help;
    font-size: 0.9rem;
}
/* /Components/Pages/Wastewater/Dashboard.razor.rz.scp.css */
.ww-page[b-wmutsnvx14] {
    padding: 24px 32px;
    max-width: 1400px;
    margin: 0 auto;
}

.ww-header[b-wmutsnvx14] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 32px;
    gap: 16px;
    flex-wrap: wrap;
}

.ww-badge[b-wmutsnvx14] {
    font-size: 10px;
    letter-spacing: 0.15em;
    color: var(--accent-fill-rest);
    font-weight: 600;
    text-transform: uppercase;
    display: block;
    margin-bottom: 6px;
}

.ww-title[b-wmutsnvx14] {
    font-size: 26px;
    font-weight: 700;
    margin: 0 0 6px 0;
    color: var(--neutral-foreground-rest);
}

.ww-subtitle[b-wmutsnvx14] {
    color: var(--neutral-foreground-hint);
    font-size: 13px;
    margin: 0;
}

.ww-loading[b-wmutsnvx14] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 48px;
    color: var(--neutral-foreground-hint);
}

/* KPI Cards */
.ww-kpi-grid[b-wmutsnvx14] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 12px;
    margin-bottom: 32px;
}

.ww-kpi-card[b-wmutsnvx14] {
    background: var(--neutral-layer-2);
    border: 1px solid var(--neutral-stroke-rest);
    border-radius: 8px;
    padding: 16px 20px;
    border-left: 4px solid var(--neutral-stroke-strong-rest);
}

.ww-kpi-card.ww-kpi-blue[b-wmutsnvx14] { border-left-color: #2a7fd4; }
.ww-kpi-card.ww-kpi-orange[b-wmutsnvx14] { border-left-color: #c47d14; }
.ww-kpi-card.ww-kpi-red[b-wmutsnvx14] { border-left-color: #d44a4a; }
.ww-kpi-card.ww-kpi-green[b-wmutsnvx14] { border-left-color: #1d9e74; }

.ww-kpi-value[b-wmutsnvx14] {
    font-size: 28px;
    font-weight: 700;
    color: var(--neutral-foreground-rest);
    line-height: 1;
}

.ww-kpi-label[b-wmutsnvx14] {
    font-size: 12px;
    color: var(--neutral-foreground-hint);
    margin-top: 6px;
}

/* Sections */
.ww-section[b-wmutsnvx14] {
    margin-bottom: 32px;
}

.ww-section-header[b-wmutsnvx14] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.ww-section-title[b-wmutsnvx14] {
    font-size: 16px;
    font-weight: 600;
    margin: 0 0 16px 0;
    color: var(--neutral-foreground-rest);
}

.ww-link[b-wmutsnvx14] {
    font-size: 12px;
    color: var(--accent-fill-rest);
    text-decoration: none;
}

.ww-empty[b-wmutsnvx14] {
    padding: 32px;
    text-align: center;
    color: var(--neutral-foreground-hint);
    background: var(--neutral-layer-2);
    border: 1px dashed var(--neutral-stroke-rest);
    border-radius: 8px;
}

/* Source bars */
.ww-source-bars[b-wmutsnvx14] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-width: 600px;
}

.ww-source-row[b-wmutsnvx14] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.ww-source-label[b-wmutsnvx14] {
    font-size: 12px;
    min-width: 200px;
    color: var(--neutral-foreground-rest);
}

.ww-source-bar-track[b-wmutsnvx14] {
    flex: 1;
    height: 8px;
    background: var(--neutral-layer-3);
    border-radius: 4px;
    overflow: hidden;
}

.ww-source-bar[b-wmutsnvx14] {
    height: 100%;
    border-radius: 4px;
    transition: width 0.5s ease;
}

.ww-source-count[b-wmutsnvx14] {
    font-size: 12px;
    color: var(--neutral-foreground-hint);
    min-width: 60px;
    text-align: right;
}

/* Color classes for bars */
.color-blue .ww-source-bar[b-wmutsnvx14], .ww-source-bar.color-blue[b-wmutsnvx14] { background: #2a7fd4; }
.color-orange .ww-source-bar[b-wmutsnvx14], .ww-source-bar.color-orange[b-wmutsnvx14] { background: #c47d14; }
.color-red .ww-source-bar[b-wmutsnvx14], .ww-source-bar.color-red[b-wmutsnvx14] { background: #d44a4a; }
.color-green .ww-source-bar[b-wmutsnvx14], .ww-source-bar.color-green[b-wmutsnvx14] { background: #1d9e74; }
.color-purple .ww-source-bar[b-wmutsnvx14], .ww-source-bar.color-purple[b-wmutsnvx14] { background: #9b4dca; }
.color-gray .ww-source-bar[b-wmutsnvx14], .ww-source-bar.color-gray[b-wmutsnvx14] { background: var(--neutral-stroke-strong-rest); }

/* Table */
.ww-table-wrap[b-wmutsnvx14] {
    background: var(--neutral-layer-2);
    border: 1px solid var(--neutral-stroke-rest);
    border-radius: 8px;
    overflow: hidden;
}

/* Results grid */
.ww-results-grid[b-wmutsnvx14] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
}

.ww-result-card[b-wmutsnvx14] {
    background: var(--neutral-layer-2);
    border: 1px solid var(--neutral-stroke-rest);
    border-left: 4px solid var(--neutral-stroke-strong-rest);
    border-radius: 8px;
    padding: 16px 20px;
    cursor: pointer;
    transition: background 0.15s;
}

.ww-result-card:hover[b-wmutsnvx14] { background: var(--neutral-layer-3); }
.ww-result-card.color-blue[b-wmutsnvx14] { border-left-color: #2a7fd4; }
.ww-result-card.color-orange[b-wmutsnvx14] { border-left-color: #c47d14; }
.ww-result-card.color-red[b-wmutsnvx14] { border-left-color: #d44a4a; }
.ww-result-card.color-green[b-wmutsnvx14] { border-left-color: #1d9e74; }
.ww-result-card.color-purple[b-wmutsnvx14] { border-left-color: #9b4dca; }

.ww-result-source[b-wmutsnvx14] {
    font-weight: 600;
    font-size: 14px;
    margin-bottom: 10px;
    color: var(--neutral-foreground-rest);
}

.ww-result-confidence[b-wmutsnvx14] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
}

.ww-conf-bar[b-wmutsnvx14] {
    flex: 1;
    height: 6px;
    background: var(--neutral-layer-3);
    border-radius: 3px;
    overflow: hidden;
}

.ww-conf-fill[b-wmutsnvx14] {
    height: 100%;
    background: var(--accent-fill-rest);
    border-radius: 3px;
    transition: width 0.3s ease;
}

.ww-result-indicators[b-wmutsnvx14] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 8px;
}

.ww-chip[b-wmutsnvx14] {
    font-size: 10px;
    padding: 2px 8px;
    background: var(--neutral-layer-3);
    border: 1px solid var(--neutral-stroke-rest);
    border-radius: 12px;
    color: var(--neutral-foreground-hint);
}

.ww-anomaly-badge[b-wmutsnvx14] {
    margin-top: 8px;
    font-size: 11px;
    color: #d44a4a;
    font-weight: 600;
}
/* /Components/Pages/Wastewater/SampleDetail.razor.rz.scp.css */
.ww-page[b-uvhsoqi44r] {
    padding: 24px 32px;
    max-width: 1400px;
    margin: 0 auto;
}

.ww-loading[b-uvhsoqi44r], .ww-not-found[b-uvhsoqi44r] {
    padding: 48px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.ww-header[b-uvhsoqi44r] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 28px;
    gap: 16px;
    flex-wrap: wrap;
}

.ww-title-row[b-uvhsoqi44r] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 4px;
}

.ww-title[b-uvhsoqi44r] {
    font-size: 24px;
    font-weight: 700;
    margin: 0;
}

.ww-subtitle[b-uvhsoqi44r] {
    color: var(--neutral-foreground-hint);
    font-size: 13px;
    margin: 6px 0 0 0;
}

/* Status badges */
.ww-status-badge[b-uvhsoqi44r] {
    font-size: 11px;
    padding: 3px 10px;
    border-radius: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.status-green[b-uvhsoqi44r] { background: rgba(29,158,116,0.15); color: #1d9e74; }
.status-blue[b-uvhsoqi44r] { background: rgba(42,127,212,0.15); color: #2a7fd4; }
.status-red[b-uvhsoqi44r] { background: rgba(212,74,74,0.15); color: #d44a4a; }
.status-gray[b-uvhsoqi44r] { background: var(--neutral-layer-3); color: var(--neutral-foreground-hint); }

/* Layout */
.ww-detail-layout[b-uvhsoqi44r] {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 24px;
    align-items: start;
}

@media (max-width: 1100px) {
    .ww-detail-layout[b-uvhsoqi44r] { grid-template-columns: 1fr; }
}

.ww-main-col[b-uvhsoqi44r], .ww-side-col[b-uvhsoqi44r] {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* Result panel */
.ww-result-panel[b-uvhsoqi44r] {
    background: var(--neutral-layer-2);
    border: 1px solid var(--neutral-stroke-rest);
    border-left: 5px solid var(--neutral-stroke-strong-rest);
    border-radius: 8px;
    padding: 24px;
}

.ww-result-panel.color-blue[b-uvhsoqi44r] { border-left-color: #2a7fd4; }
.ww-result-panel.color-orange[b-uvhsoqi44r] { border-left-color: #c47d14; }
.ww-result-panel.color-red[b-uvhsoqi44r] { border-left-color: #d44a4a; }
.ww-result-panel.color-green[b-uvhsoqi44r] { border-left-color: #1d9e74; }
.ww-result-panel.color-purple[b-uvhsoqi44r] { border-left-color: #9b4dca; }

.ww-result-header[b-uvhsoqi44r] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
}

.ww-result-label[b-uvhsoqi44r] {
    font-size: 11px;
    color: var(--neutral-foreground-hint);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 4px;
}

.ww-result-source[b-uvhsoqi44r] {
    font-size: 22px;
    font-weight: 700;
    color: var(--neutral-foreground-rest);
}

/* Confidence donut */
.ww-confidence-circle[b-uvhsoqi44r] {
    position: relative;
    width: 72px;
    height: 72px;
    flex-shrink: 0;
}

.ww-donut[b-uvhsoqi44r] {
    width: 72px;
    height: 72px;
    transform: rotate(-90deg);
}

.ww-donut path[b-uvhsoqi44r] { stroke-linecap: round; }

.ww-confidence-label[b-uvhsoqi44r] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 700;
    color: var(--neutral-foreground-rest);
}

/* Probability bars */
.ww-prob-section[b-uvhsoqi44r] { margin-bottom: 20px; }

.ww-prob-title[b-uvhsoqi44r] {
    font-size: 12px;
    font-weight: 600;
    color: var(--neutral-foreground-hint);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 12px;
}

.ww-prob-row[b-uvhsoqi44r] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}

.ww-prob-label[b-uvhsoqi44r] {
    font-size: 12px;
    min-width: 180px;
    color: var(--neutral-foreground-rest);
}

.ww-prob-bar-track[b-uvhsoqi44r] {
    flex: 1;
    height: 8px;
    background: var(--neutral-layer-3);
    border-radius: 4px;
    overflow: hidden;
}

.ww-prob-bar[b-uvhsoqi44r] {
    height: 100%;
    border-radius: 4px;
    transition: width 0.5s ease;
    background: var(--accent-fill-rest);
}

.ww-prob-bar.color-blue[b-uvhsoqi44r] { background: #2a7fd4; }
.ww-prob-bar.color-orange[b-uvhsoqi44r] { background: #c47d14; }
.ww-prob-bar.color-red[b-uvhsoqi44r] { background: #d44a4a; }
.ww-prob-bar.color-green[b-uvhsoqi44r] { background: #1d9e74; }
.ww-prob-bar.color-purple[b-uvhsoqi44r] { background: #9b4dca; }

.ww-prob-pct[b-uvhsoqi44r] {
    font-size: 12px;
    color: var(--neutral-foreground-hint);
    min-width: 40px;
    text-align: right;
}

/* Indicators */
.ww-indicators[b-uvhsoqi44r] { margin-top: 4px; }
.ww-indicators-title[b-uvhsoqi44r] {
    font-size: 12px;
    font-weight: 600;
    color: var(--neutral-foreground-hint);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 8px;
}

.ww-chips[b-uvhsoqi44r] { display: flex; flex-wrap: wrap; gap: 6px; }

.ww-chip[b-uvhsoqi44r] {
    font-size: 11px;
    padding: 3px 10px;
    background: var(--neutral-layer-3);
    border: 1px solid var(--neutral-stroke-rest);
    border-radius: 12px;
    color: var(--neutral-foreground-rest);
}

/* Reasoning card */
.ww-reasoning-card[b-uvhsoqi44r] {
    background: var(--neutral-layer-2);
    border: 1px solid var(--neutral-stroke-rest);
    border-radius: 8px;
    padding: 20px 24px;
}

.ww-reasoning-meta[b-uvhsoqi44r] {
    display: flex;
    gap: 16px;
    font-size: 12px;
    color: var(--neutral-foreground-hint);
    margin-bottom: 12px;
    flex-wrap: wrap;
}

.ww-adj-pos[b-uvhsoqi44r] { color: #1d9e74; font-weight: 600; }
.ww-adj-neg[b-uvhsoqi44r] { color: #d44a4a; font-weight: 600; }

.ww-reasoning-text[b-uvhsoqi44r] {
    font-size: 14px;
    line-height: 1.7;
    color: var(--neutral-foreground-rest);
    margin: 0 0 16px 0;
}

.ww-followup-title[b-uvhsoqi44r] {
    font-size: 12px;
    font-weight: 600;
    color: var(--neutral-foreground-hint);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 8px;
}

.ww-followup-list[b-uvhsoqi44r] {
    margin: 0;
    padding-left: 20px;
    font-size: 13px;
    color: var(--neutral-foreground-rest);
    line-height: 1.8;
}

/* Anomalies */
.ww-anomalies-card[b-uvhsoqi44r] {
    background: var(--neutral-layer-2);
    border: 1px solid var(--neutral-stroke-rest);
    border-radius: 8px;
    padding: 20px 24px;
}

.ww-anomalies-list[b-uvhsoqi44r] { display: flex; flex-direction: column; gap: 10px; }

.ww-anomaly-item[b-uvhsoqi44r] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border-radius: 6px;
    border-left: 3px solid var(--neutral-stroke-rest);
}

.ww-anomaly-critical[b-uvhsoqi44r] { border-left-color: #d44a4a; background: rgba(212,74,74,0.06); }
.ww-anomaly-high[b-uvhsoqi44r] { border-left-color: #c47d14; background: rgba(196,125,20,0.06); }
.ww-anomaly-medium[b-uvhsoqi44r] { border-left-color: #2a7fd4; background: rgba(42,127,212,0.06); }
.ww-anomaly-low[b-uvhsoqi44r] { background: var(--neutral-layer-3); }

.ww-anomaly-param[b-uvhsoqi44r] {
    font-weight: 600;
    font-size: 13px;
    min-width: 140px;
    color: var(--neutral-foreground-rest);
}

.ww-anomaly-desc[b-uvhsoqi44r] {
    font-size: 12px;
    color: var(--neutral-foreground-hint);
    flex: 1;
}

.ww-anomaly-sev[b-uvhsoqi44r] {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    padding: 2px 8px;
    border-radius: 10px;
}

.ww-sev-critical[b-uvhsoqi44r] { background: rgba(212,74,74,0.2); color: #d44a4a; }
.ww-sev-high[b-uvhsoqi44r] { background: rgba(196,125,20,0.2); color: #c47d14; }
.ww-sev-medium[b-uvhsoqi44r] { background: rgba(42,127,212,0.2); color: #2a7fd4; }
.ww-sev-low[b-uvhsoqi44r] { background: var(--neutral-layer-4); color: var(--neutral-foreground-hint); }

/* Cards (side column) */
.ww-card[b-uvhsoqi44r] {
    background: var(--neutral-layer-2);
    border: 1px solid var(--neutral-stroke-rest);
    border-radius: 8px;
    padding: 16px 20px;
}

.ww-card-title[b-uvhsoqi44r] {
    font-size: 13px;
    font-weight: 600;
    margin: 0 0 14px 0;
    color: var(--neutral-foreground-rest);
}

/* Fingerprint ratio rows */
.ww-ratios[b-uvhsoqi44r] { display: flex; flex-direction: column; gap: 8px; }

.ww-ratio-row[b-uvhsoqi44r] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.ww-ratio-label[b-uvhsoqi44r] {
    font-size: 11px;
    min-width: 170px;
    color: var(--neutral-foreground-hint);
}

.ww-ratio-track[b-uvhsoqi44r] {
    flex: 1;
    height: 6px;
    background: var(--neutral-layer-3);
    border-radius: 3px;
    overflow: hidden;
}

.ww-ratio-fill[b-uvhsoqi44r] {
    height: 100%;
    background: var(--accent-fill-rest);
    border-radius: 3px;
}

.ww-ratio-value[b-uvhsoqi44r] {
    font-size: 11px;
    color: var(--neutral-foreground-rest);
    min-width: 50px;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

/* Measurement rows */
.ww-measurements[b-uvhsoqi44r] { display: flex; flex-direction: column; gap: 6px; }

.ww-meas-row[b-uvhsoqi44r] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 12px;
    padding: 2px 0;
    border-bottom: 1px solid var(--neutral-layer-3);
}

.ww-meas-label[b-uvhsoqi44r] { color: var(--neutral-foreground-hint); }
.ww-meas-value[b-uvhsoqi44r] { font-weight: 500; color: var(--neutral-foreground-rest); font-variant-numeric: tabular-nums; }
.ww-meas-unit[b-uvhsoqi44r] { color: var(--neutral-foreground-hint); font-size: 10px; margin-left: 2px; }

/* Pending/error states */
.ww-pending-card[b-uvhsoqi44r], .ww-error-card[b-uvhsoqi44r] {
    background: var(--neutral-layer-2);
    border: 1px solid var(--neutral-stroke-rest);
    border-radius: 8px;
    padding: 48px;
    text-align: center;
}

.ww-pending-icon[b-uvhsoqi44r] { font-size: 48px; margin-bottom: 16px; }
/* /Components/Pages/Wastewater/Upload.razor.rz.scp.css */
.ww-page[b-0bei629zc0] {
    padding: 24px 32px;
    max-width: 1400px;
    margin: 0 auto;
}

.ww-title[b-0bei629zc0] {
    font-size: 24px;
    font-weight: 700;
    margin: 8px 0 0 0;
    color: var(--neutral-foreground-rest);
}

.ww-success-banner[b-0bei629zc0] {
    display: flex;
    align-items: center;
    gap: 16px;
    background: rgba(29, 158, 116, 0.1);
    border: 1px solid #1d9e74;
    border-radius: 8px;
    padding: 16px 20px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}

.ww-success-icon[b-0bei629zc0] {
    width: 28px;
    height: 28px;
    background: #1d9e74;
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    flex-shrink: 0;
}

.ww-error-banner[b-0bei629zc0] {
    background: rgba(212, 74, 74, 0.1);
    border: 1px solid #d44a4a;
    border-radius: 8px;
    padding: 12px 16px;
    margin-bottom: 24px;
    color: #d44a4a;
    font-size: 13px;
}

.ww-form-layout[b-0bei629zc0] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-bottom: 24px;
}

@media (max-width: 1024px) {
    .ww-form-layout[b-0bei629zc0] { grid-template-columns: 1fr; }
}

.ww-form-col[b-0bei629zc0] {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.ww-card[b-0bei629zc0] {
    background: var(--neutral-layer-2);
    border: 1px solid var(--neutral-stroke-rest);
    border-radius: 8px;
    padding: 20px 24px;
}

.ww-card-title[b-0bei629zc0] {
    font-size: 15px;
    font-weight: 600;
    margin: 0 0 16px 0;
    color: var(--neutral-foreground-rest);
}

.ww-fields[b-0bei629zc0] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.ww-fields-2[b-0bei629zc0] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

@media (max-width: 600px) {
    .ww-fields-2[b-0bei629zc0] { grid-template-columns: 1fr; }
}

.ww-form-actions[b-0bei629zc0] {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding-top: 8px;
}
/* /Components/Shared/AcFluentNumberField.razor.rz.scp.css */
.ac-fluent-number-field[b-m03vjvqti5] {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.ac-fluent-number-field__label[b-m03vjvqti5] {
    color: var(--neutral-foreground-rest, #424242);
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.25rem;
}

.ac-fluent-number-field__input[b-m03vjvqti5] {
    appearance: textfield;
    background: var(--neutral-fill-input-rest, #fff);
    border: 1px solid var(--neutral-stroke-input-rest, #c8c6c4);
    border-radius: 0.375rem;
    color: var(--neutral-foreground-rest, #242424);
    font-size: 0.95rem;
    line-height: 1.25rem;
    min-height: 2.5rem;
    padding: 0.625rem 0.75rem;
    transition: border-color 120ms ease, box-shadow 120ms ease;
    width: 100%;
}

.ac-fluent-number-field__input:focus[b-m03vjvqti5] {
    border-color: var(--accent-fill-rest, #0f6cbd);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-fill-rest, #0f6cbd) 18%, transparent);
    outline: none;
}

.ac-fluent-number-field__input:disabled[b-m03vjvqti5] {
    background: #f3f2f1;
    color: #a19f9d;
    cursor: not-allowed;
}

.ac-fluent-number-field__input[b-m03vjvqti5]::-webkit-outer-spin-button,
.ac-fluent-number-field__input[b-m03vjvqti5]::-webkit-inner-spin-button {
    margin: 0;
}
/* /Components/Shared/AcStatusPill.razor.rz.scp.css */
.status-pill[b-1b2qiachoz] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.125rem 0.5rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1rem;
    white-space: nowrap;
}

.status-pill-success[b-1b2qiachoz] {
    background-color: #f0fdf4;
    color: #15803d;
}

.status-pill-warning[b-1b2qiachoz] {
    background-color: #fefce8;
    color: #a16207;
}

.status-pill-danger[b-1b2qiachoz] {
    background-color: #fef2f2;
    color: #b91c1c;
}

.status-pill-info[b-1b2qiachoz] {
    background-color: #eff6ff;
    color: #1d4ed8;
}

.status-pill-ai[b-1b2qiachoz] {
    background-color: #faf5ff;
    color: #7e22ce;
}

.status-pill-dot[b-1b2qiachoz] {
    width: 0.375rem;
    height: 0.375rem;
    border-radius: 9999px;
    flex: 0 0 auto;
}

.status-pill-dot-success[b-1b2qiachoz] {
    background-color: #22c55e;
}

.status-pill-dot-warning[b-1b2qiachoz] {
    background-color: #eab308;
}

.status-pill-dot-danger[b-1b2qiachoz] {
    background-color: #ef4444;
}

.status-pill-dot-info[b-1b2qiachoz] {
    background-color: #3b82f6;
}

.status-pill-dot-ai[b-1b2qiachoz] {
    background-color: #a855f7;
}

.status-pill-dot-pulse[b-1b2qiachoz] {
    animation: status-pill-pulse-b-1b2qiachoz 1.5s ease-in-out infinite;
}

@keyframes status-pill-pulse-b-1b2qiachoz {
    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.5;
    }
}
