/* /Components/Common/Chat/AiChatOverlay.razor.rz.scp.css */
.ai-chat-overlay[b-6x9tibcflq] {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 1000;
}

.mud-chat-bubble img[b-6x9tibcflq] {
    max-width: 100%;
    height: auto;
    border-radius: 4px;
}

.mud-chat-bubble pre[b-6x9tibcflq] {
    white-space: pre-wrap;
    word-wrap: break-word;
    background-color: #f0f0f0;
    padding: 8px;
    border-radius: 4px;
    overflow-x: auto;
    max-width: 100%;
}

.mud-chat-bubble code[b-6x9tibcflq] {
    font-family: monospace;
    white-space: pre-wrap;
    word-break: break-word;
}
/* /Components/Common/WellSelector.razor.rz.scp.css */
.well-selector[b-8k8kbcdzfy] {
    display: flex;
    align-items: center;
    min-width: 300px;
    max-width: 420px;
    flex: 0 1 380px;
}
/* /Components/Desktop/ActiveDataSourceChip.razor.rz.scp.css */
.active-data-source-command[b-k49cl3qzzc] {
    align-items: center;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 16px;
    color: var(--mud-palette-secondary);
    cursor: pointer;
    display: inline-flex;
    gap: 4px;
    height: 32px;
    max-width: 100%;
    min-width: 0;
    padding: 0 8px;
}

.active-data-source-command:hover[b-k49cl3qzzc],
.active-data-source-command:focus-visible[b-k49cl3qzzc] {
    background-color: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.3);
}

.active-data-source-command:focus-visible[b-k49cl3qzzc] {
    outline: 2px solid currentColor;
    outline-offset: 1px;
}

.active-data-source-command--warning[b-k49cl3qzzc] {
    color: var(--mud-palette-warning);
}

.active-data-source-label[b-k49cl3qzzc] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
#blazor-error-ui[b-2ov1456o8g] {
    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-2ov1456o8g] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Pages/DbMigrationsPage.razor.rz.scp.css */
.scalar-frame[b-rutwptki17] {
    border: 0;
    display: block;
    height: calc(100vh - 230px);
    min-height: 640px;
    width: 100%;
}
/* /Components/Panels/GasliftDesignPanel.razor.rz.scp.css */
/*
 * Scoped styles for the Gaslift Design panel (#8950 — MDI layout repair over #8948).
 *
 * Two problems are fixed here.
 *
 * 1. Clipping in MDI mode. The MDI body is `window-body-no-scroll`, so anything taller than the
 *    window was simply cut off and unreachable. The panel now owns its scrolling through the
 *    shared `mdi-resizable-panel` / `-workspace` regions, and every region reflows on its own
 *    intrinsic minimum: `xs`/`sm`/`md` follow the browser viewport, which stays large while an
 *    MDI window is small (webglue-ui-standards.md, "Viewport breakpoints are not panel-size
 *    reflow"). flex-wrap and `auto-fit` grids respond to the panel instead.
 *
 * 2. Contrast. The review found the panel too light. Notes, captions, section headings and
 *    disabled fields are lifted off MudBlazor's secondary text tone, and the legend swatch gets
 *    a visible minimum stroke — the approved hues are unchanged, only their rendered weight.
 *
 * ::deep is required on anything MudBlazor renders: MudText, MudPaper, MudTable and the unit-aware
 * input fields all emit elements from their own render tree, which never carry this component's
 * scope attribute. Elements authored in the .razor itself do carry it.
 */

/* ── Region layout ────────────────────────────────────────────────────────────
   Three regions on one wrapping row. Inputs and plot sit side by side while the
   panel is wide enough for both minimums and stack once it is not; the result
   table always claims a full row of its own. */
.gld-layout[b-gsjl9ghuuj] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 12px;
    min-width: 0;
    width: 100%;
}

.gld-inputs[b-gsjl9ghuuj] {
    flex: 1 1 320px;
    min-width: 300px;
}

.gld-plot[b-gsjl9ghuuj] {
    flex: 2 1 420px;
    min-width: 320px;
}

/* Full-row basis, so the 16-column mandrel grid never shares a row with the inputs. */
.gld-results[b-gsjl9ghuuj] {
    flex: 1 1 100%;
    min-width: 0;
    width: 100%;
}

/* Chart region and curve selector wrap on the same rule as the outer regions. */
.gld-plot-body[b-gsjl9ghuuj] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    min-width: 0;
}

.gld-plot-frame[b-gsjl9ghuuj] {
    flex: 2 1 300px;
    min-width: 260px;
}

.gld-curves[b-gsjl9ghuuj] {
    flex: 1 1 220px;
    min-width: 210px;
}

/* ── Fields ───────────────────────────────────────────────────────────────────
   Auto-fit columns give the input blocks true panel-size reflow: the row drops to
   a single column when the inputs region gets narrow, instead of crushing the
   unit-aware fields below their `ch` floor. */
.gld-field-grid[b-gsjl9ghuuj] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 4px 12px;
    min-width: 0;
}

/* ── Plot placeholder ─────────────────────────────────────────────────────────
   Reserves a readable chart region without dominating a short MDI window. The
   Plotly surface replaces this in the next slice and takes the flex region with
   FillAvailableHeight. */
.gaslift-design[b-gsjl9ghuuj]  .gld-plot-surface {
    min-height: 460px;
}

.gaslift-design.mdi-resizable-panel[b-gsjl9ghuuj]  .gld-plot-surface {
    min-height: 240px;
}

/* ── Result table ─────────────────────────────────────────────────────────────
   16 columns do not fit a narrow MDI window. Keep the cells at their natural width
   and let MudTable's own container scroll sideways, rather than compressing the
   numbers into unreadable wrapped stacks. */
.gaslift-design[b-gsjl9ghuuj]  .gld-result-table table {
    width: auto;
    min-width: 100%;
}

.gaslift-design[b-gsjl9ghuuj]  .gld-result-table th,
.gaslift-design[b-gsjl9ghuuj]  .gld-result-table td {
    white-space: nowrap;
}

/* ── Contrast ─────────────────────────────────────────────────────────────────
   Secondary text is expressed as the theme's primary text at reduced opacity, so
   it follows both light and dark palettes instead of a fixed light grey. */
.gaslift-design[b-gsjl9ghuuj]  .gld-note {
    color: var(--mud-palette-text-primary);
    opacity: 0.78;
}

.gaslift-design[b-gsjl9ghuuj]  .gld-section-title {
    color: var(--mud-palette-text-primary);
    font-weight: 600;
    opacity: 0.95;
}

/* A disabled field still has to be readable. Up to half the shared inputs are disabled by the
   active spacing / category choice, and app.css renders them as #6b6b6b text under an 0.65
   container opacity — around #a0a0a0 on white, which is what the review called too light. The
   overrides stay scoped to this panel and must carry !important because the global rules do. */
.gaslift-design[b-gsjl9ghuuj]  .compact-field.field-disabled {
    opacity: 0.85;
}

.gaslift-design[b-gsjl9ghuuj]  .compact-field.field-disabled input,
.gaslift-design[b-gsjl9ghuuj]  .compact-field.field-disabled .mud-input-slot,
.gaslift-design[b-gsjl9ghuuj]  .compact-field input:disabled {
    color: #4a4a4a !important;
}

.gaslift-design[b-gsjl9ghuuj]  .compact-field.mud-disabled .mud-input-label,
.gaslift-design[b-gsjl9ghuuj]  .compact-field .mud-disabled .mud-input-label {
    color: #6b6b6b !important;
}

/* ── Curve selector ───────────────────────────────────────────────────────────
   The swatch carries the same hue as the trace; only its rendered thickness is
   raised, so pale identities (lightgreen, #94A3B8) stay visible at a glance. */
.gld-swatch[b-gsjl9ghuuj] {
    flex: 0 0 auto;
}

/* MudStack renders the row, so this needs ::deep to reach it. */
.gaslift-design[b-gsjl9ghuuj]  .gld-curve-row {
    min-width: 0;
}
/* /Components/Panels/GasLiftDesignReportPanel.razor.rz.scp.css */
/*
 * Scoped styles for the gas-lift Final Design Report (#7389).
 *
 * Screen: the wide valve tables scroll horizontally inside their own container so the
 * page body never scrolls sideways.
 * Print: the Print button is removed, the tables are allowed to break across pages, and
 * every page repeats the column headers — the "continuation" behavior the ticket asks for.
 *
 * ::deep is required on anything MudBlazor renders (the <table> from MudSimpleTable, the
 * <td> from UnitConversionCell). Those elements belong to the child component's render
 * tree and never carry this component's scope attribute. Elements authored directly in
 * the .razor — including the <tr>/<th>/<td> passed as child content — do carry it, but
 * selecting through ::deep from the scoped root keeps one consistent rule.
 */

.design-report-actions[b-fd9i1yoflp] {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 0.5rem;
}

/* Wide valve tables scroll within the report, not the page. */
.design-report-scroll[b-fd9i1yoflp] {
    overflow-x: auto;
    max-width: 100%;
}

.design-report-heading[b-fd9i1yoflp] {
    margin-bottom: 0.5rem;
}

.design-report[b-fd9i1yoflp]  .design-report-table {
    width: 100%;
    font-size: 0.8rem;
}

.design-report[b-fd9i1yoflp]  .design-report-table th,
.design-report[b-fd9i1yoflp]  .design-report-table td {
    white-space: nowrap;
    text-align: right;
}

/* The valve description column is free text and reads better left-aligned. */
.design-report[b-fd9i1yoflp]  .design-report-table td:nth-child(7) {
    text-align: left;
    white-space: normal;
}

.design-report[b-fd9i1yoflp]  .design-report-header-table th,
.design-report[b-fd9i1yoflp]  .design-report-header-table td {
    text-align: left;
    white-space: normal;
}

.design-report[b-fd9i1yoflp]  .design-report-status {
    font-weight: 600;
}

/* WinGLUE highlights out-of-spec deviation and choke/port mismatch. Both tints stay light
   enough to remain legible when printed in grayscale. */
.design-report[b-fd9i1yoflp]  .design-report-error-cell {
    background-color: rgba(211, 47, 47, 0.18);
}

.design-report[b-fd9i1yoflp]  .design-report-ok-cell {
    background-color: rgba(56, 142, 60, 0.15);
}

@media print {
    /* The Print button itself must not reach the page. */
    .design-report .no-print[b-fd9i1yoflp],
    .design-report[b-fd9i1yoflp]  .no-print {
        display: none !important;
    }

    .design-report[b-fd9i1yoflp]  .design-report-sheet {
        border: none;
        box-shadow: none;
        padding: 0;
    }

    /* Let the table paginate instead of being clipped to one screen width. */
    .design-report-scroll[b-fd9i1yoflp] {
        overflow: visible;
        max-width: none;
    }

    .design-report[b-fd9i1yoflp]  .design-report-table {
        font-size: 8pt;
        width: 100%;
    }

    /* Repeat column headers on every printed page — the continuation behavior for a valve
       list longer than one page. */
    .design-report[b-fd9i1yoflp]  .design-report-table thead {
        display: table-header-group;
    }

    /* Never split a valve row across a page boundary. */
    .design-report[b-fd9i1yoflp]  .design-report-table tr {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    /* The continued table starts its own page, matching WinGLUE's separate sheet. */
    .design-report[b-fd9i1yoflp]  .design-report-break-before {
        break-before: page;
        page-break-before: always;
    }

    /* Keep the tinted status cells readable on a monochrome printer. */
    .design-report[b-fd9i1yoflp]  .design-report-error-cell,
    .design-report[b-fd9i1yoflp]  .design-report-ok-cell {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}
