/* /Editors/BatchOverview/ProductTable.razor.rz.scp.css */
/* ============================================================================
   ProductTable — NexRx brand styling

   Tokens come from wwwroot/css/nexrx.tokens.css. Markup it styles:

     .product-details
       └ .table-responsive
           ├ <h6 class="ms-2">                            (section title)
           └ table.table.table-striped
               ├ tr.product   (main product row, bold)
               └ tr.product-details ( + .detail-collapsed when hidden)
                   └ td.batch  (LOT / SN / Expiry / Qty)
     .show-details / .hide-details                         (toggle chip)
   ============================================================================ */

/* ---------- Section title row ---------- */
.product-details h6[b-1cvgax62m0] {
    font-family: var(--font-display) !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    color: var(--navy-900) !important;
    margin-bottom: 12px !important;
}

.product-details > .table-responsive > .d-flex img[b-1cvgax62m0] {
    width: 22px;
    height: 22px;
    padding: 3px;
    background: var(--lime-200);
    border-radius: 6px;
    opacity: 1;
}

/* ---------- Table chrome ----------
   `arex.bs5.css * { font-size: 14px !important; color: rgb(0,30,75) !important }`
   intercepts every text rule in this isolation file. Until that legacy rule
   is retired we have to mirror its `!important` on every `font-size` and
   `color` declaration. */
.product-details .table[b-1cvgax62m0] {
    background: var(--white);
    border: 1px solid var(--ink-200);
    border-radius: var(--r-md);
    /* `overflow: visible` so the hover tooltip on the Active progress
       column can escape upward beyond the top row. The slight cost is
       that the first/last row's cell-bg corners are not clipped to the
       table's rounded outline; it's hardly perceptible against the
       white/ink-50 zebra pattern. */
    overflow: visible;
    margin-bottom: 0;
    font-size: 12.5px !important;
}

/* `.table-responsive` (Bootstrap default `overflow: auto`) and the
   col-qty / col-status `<td>` (DX `overflow: hidden` for cell-content
   clipping) both clip the hover tooltip — must be relaxed alongside
   `.table` so the popover can render outside its row. */
.product-details .table-responsive[b-1cvgax62m0] {
    overflow: visible !important;
}
.product-details .table td.col-qty[b-1cvgax62m0],
.product-details .table td.col-status[b-1cvgax62m0] {
    overflow: visible !important;
}

.product-details .table thead th[b-1cvgax62m0] {
    background: var(--ink-50) !important;
    color: var(--ink-500) !important;
    font-size: 10.5px !important;
    font-weight: 600 !important;
    text-transform: uppercase;
    letter-spacing: .07em;
    padding: 10px 14px !important;
    border-bottom: 1px solid var(--ink-200);
    border-top: none;
    font-family: var(--font-ui) !important;
}

.product-details .table tbody td[b-1cvgax62m0] {
    padding: 12px 14px !important;
    border-top: 1px solid var(--ink-100);
    vertical-align: middle;
    font-size: 12.5px !important;
    color: var(--ink-700) !important;
    font-weight: 400 !important;
}

/* Zebra — disable Bootstrap's `--bs-table-accent-bg` and paint product rows
   directly. White / #FAFBFE alternation matches the NexRx listview chrome
   (nexrx.listview.css zebra) so collapsed and expanded views look identical
   in cell shading. Batch detail rows below use `var(--ink-50)` and override
   via !important regardless of nth-of-type position. */
.product-details .table-striped > tbody > tr[b-1cvgax62m0] {
    --bs-table-accent-bg: transparent;
}

.product-details .table-striped > tbody > tr:nth-of-type(odd) > *[b-1cvgax62m0] {
    background-color: var(--white);
}

.product-details .table-striped > tbody > tr:nth-of-type(even) > *[b-1cvgax62m0] {
    background-color: #FAFBFE;
}

.product-details .table-striped > tbody > tr:hover > *[b-1cvgax62m0] {
    background-color: var(--teal-50);
}

/* ---------- Main product row ---------- */
tr.product td.product[b-1cvgax62m0] {
    font-family: var(--font-display) !important;
    font-weight: 600 !important;
    color: var(--navy-900) !important;
    font-size: 12.5px !important;
}

tr.product td.product:nth-child(2)[b-1cvgax62m0] {
    /* GTIN / product code in mono */
    font-family: var(--font-mono) !important;
    font-weight: 500 !important;
    color: var(--ink-700) !important;
    font-size: 12px !important;
}

tr.product td.product:last-child[b-1cvgax62m0] {
    /* Quantity column right-aligned like design */
    text-align: right;
    font-weight: 700 !important;
    font-size: 14px !important;
    color: var(--navy-900) !important;
}

/* ---------- Batch detail rows ---------- */
tr.product-details td.batch[b-1cvgax62m0] {
    background: var(--ink-50) !important;
    color: var(--ink-500) !important;
    font-family: var(--font-mono) !important;
    font-size: 11.5px !important;
    font-weight: 500 !important;
    padding: 7px 14px !important;
}

/* Right-align the quantity column (now the last cell — index varies
   because Status + Progress were inserted, so use the trailing class
   marker rather than a fragile :nth-child index). */
tr.product td.product:last-child[b-1cvgax62m0],
tr.product-details td.batch:last-child[b-1cvgax62m0] {
    text-align: right;
}
tr.product-details td.batch:last-child[b-1cvgax62m0] {
    color: var(--navy-900) !important;
    font-weight: 600 !important;
}

/* ---------- Status pill ----------
   Render the FMD state as a compact uppercase pill. Color tokens reuse
   the NexRx palette: lime for Active, teal for shipped-out states,
   ink for neutral non-action states, amber for alert states,
   ink-200 for Mixed / unknown. */
.status-pill[b-1cvgax62m0] {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 10px;
    border-radius: 999px;
    font-family: var(--font-ui) !important;
    font-size: 10.5px !important;
    font-weight: 600 !important;
    letter-spacing: .04em;
    text-transform: uppercase;
    line-height: 1;
    white-space: nowrap;
}
.status-pill.status-active[b-1cvgax62m0]   { background: var(--lime-200) !important; color: var(--lime-700) !important; }
.status-pill.status-shipped[b-1cvgax62m0]  { background: var(--teal-100) !important; color: var(--teal-700) !important; }
.status-pill.status-neutral[b-1cvgax62m0]  { background: var(--ink-100)  !important; color: var(--ink-700)  !important; }
.status-pill.status-alert[b-1cvgax62m0]    { background: #FEF1C7         !important; color: #92501C         !important; }
.status-pill.status-mixed[b-1cvgax62m0]    { background: var(--ink-200)  !important; color: var(--ink-700)  !important; }

/* ---------- Active progress line ----------
   Thin track with a lime-500 fill that visualizes share of Active packs
   in the row. Width is set inline via `style="width:N%"`. The bar lives
   inside the Quantity cell — the cell stacks the quantity value on
   top, progress bar + percent below, KPI-card style. */
.col-status[b-1cvgax62m0] { width: 110px; }
.col-qty[b-1cvgax62m0] {
    width: 156px;
    text-align: right;
    white-space: nowrap;
}
.product-details .table td.col-qty[b-1cvgax62m0] {
    text-align: right;
}
.qty-value[b-1cvgax62m0] {
    display: inline-block;
    margin-left: 10px;
    min-width: 28px;
    text-align: right;
    font-family: var(--font-display) !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    color: var(--navy-900) !important;
    line-height: 1;
    vertical-align: middle;
}
tr.product-details td.col-qty .qty-value[b-1cvgax62m0] {
    /* Batch row's qty is smaller / less prominent than the product row's */
    font-family: var(--font-mono) !important;
    font-weight: 600 !important;
    font-size: 12.5px !important;
    color: var(--navy-900) !important;
}

.progress-line[b-1cvgax62m0] {
    display: inline-block;
    width: 96px;
    height: 4px;
    background: var(--ink-100);
    border-radius: 999px;
    overflow: hidden;
    vertical-align: middle;
    margin-right: 8px;
}
.progress-line > span[b-1cvgax62m0] {
    display: block;
    height: 100%;
    background: var(--lime-500);
    border-radius: 999px;
    transition: width .25s ease;
}
.progress-pct[b-1cvgax62m0] {
    font-family: var(--font-mono) !important;
    font-size: 11.5px !important;
    font-weight: 600 !important;
    color: var(--ink-700) !important;
    vertical-align: middle;
}

/* ---------- Active progress tooltip ----------
   Hover-only popover above the progress strip showing per-state pack
   counts. Pure CSS, no JS — `.progress-wrap` is the hover anchor and
   the tooltip is positioned absolutely above it with a CSS arrow.
   `z-index` elevates the wrap's stacking context so the tooltip
   renders above adjacent cells / the row above (zebra/hover bg from
   neighbouring TDs would otherwise paint over the tooltip top edge). */
.progress-wrap[b-1cvgax62m0] {
    position: relative;
    display: inline-block;
    line-height: 1;
    z-index: 10;
}
.progress-wrap:hover[b-1cvgax62m0] {
    z-index: 60;
}
.progress-tooltip[b-1cvgax62m0] {
    position: absolute;
    bottom: calc(100% + 10px);
    left: 50%;
    transform: translateX(-50%);
    display: none;
    min-width: 160px;
    max-width: 240px;
    padding: 8px 10px;
    background: var(--white);
    border: 1px solid var(--ink-200);
    border-radius: var(--r-md);
    box-shadow: 0 10px 24px -8px rgba(15, 23, 48, .22), 0 4px 10px rgba(15, 23, 48, .08);
    z-index: 50;
    white-space: nowrap;
    text-align: left;
}
.progress-tooltip[b-1cvgax62m0]::before,
.progress-tooltip[b-1cvgax62m0]::after {
    content: '';
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 0; height: 0;
}
.progress-tooltip[b-1cvgax62m0]::before {
    /* arrow border (drawn first, ink-200) */
    top: 100%;
    border: 7px solid transparent;
    border-top-color: var(--ink-200);
}
.progress-tooltip[b-1cvgax62m0]::after {
    /* arrow fill (drawn on top, white) — 1px inset to cover the border */
    top: calc(100% - 1px);
    border: 6px solid transparent;
    border-top-color: var(--white);
}
.progress-wrap:hover .progress-tooltip[b-1cvgax62m0],
.progress-wrap:focus-within .progress-tooltip[b-1cvgax62m0] {
    display: block;
}
.tip-row[b-1cvgax62m0] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 2px 0;
    font-family: var(--font-ui) !important;
    font-size: 11.5px !important;
    color: var(--ink-700) !important;
    line-height: 1.5;
}
.tip-dot[b-1cvgax62m0] {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    flex-shrink: 0;
}
.tip-dot.status-active[b-1cvgax62m0]   { background: var(--lime-500); }
.tip-dot.status-shipped[b-1cvgax62m0]  { background: var(--teal-500); }
.tip-dot.status-neutral[b-1cvgax62m0]  { background: var(--ink-300); }
.tip-dot.status-alert[b-1cvgax62m0]    { background: #C99A2F; }
.tip-dot.status-mixed[b-1cvgax62m0]    { background: var(--ink-400); }
.tip-label[b-1cvgax62m0] {
    flex: 1;
    font-weight: 500 !important;
    color: var(--ink-700) !important;
}
.tip-count[b-1cvgax62m0] {
    font-family: var(--font-mono) !important;
    font-weight: 700 !important;
    color: var(--navy-900) !important;
    font-size: 11.5px !important;
}

/* ---------- LOT / EXP inline mini-label ----------
   Small uppercase tag rendered inline with the batch value to make the
   meaning of the cell obvious (LOT = batch number, EXP = expiry). */
.batch-label[b-1cvgax62m0] {
    display: inline-block;
    margin-right: 6px;
    padding: 1px 6px;
    background: var(--ink-100);
    color: var(--ink-500) !important;
    font-family: var(--font-ui) !important;
    font-size: 9.5px !important;
    font-weight: 600 !important;
    letter-spacing: .04em;
    border-radius: 4px;
    text-transform: uppercase;
    line-height: 1.4;
    vertical-align: middle;
}

.detail-collapsed[b-1cvgax62m0] {
    display: none;
}

/* ---------- Show / Hide details chip ----------
   Pill is inline-flex so it shrink-wraps the icon+label; centering comes
   from the .details-toggle-row flex parent (margin:auto is ignored on
   inline-level boxes). */
.details-toggle-row[b-1cvgax62m0] {
    display: flex;
    justify-content: center;
    margin-top: 12px;
}

.show-details[b-1cvgax62m0],
.hide-details[b-1cvgax62m0] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: var(--teal-50) !important;
    color: var(--teal-700);
    border: 1px solid var(--teal-100);
    border-radius: 999px;
    padding: 7px 14px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color .15s ease, border-color .15s ease;
}

.show-details:hover[b-1cvgax62m0],
.hide-details:hover[b-1cvgax62m0] {
    background: var(--teal-100) !important;
    border-color: var(--teal-300);
    box-shadow: none;
}

.show-details img[b-1cvgax62m0],
.hide-details img[b-1cvgax62m0] {
    width: 14px;
    height: 14px;
    opacity: .85;
}

/* ---------- Helpers (kept; harmless duplicates of parent component) ----------
   `overflow` was previously `hidden` to guard a height-collapse transition,
   but with `height: auto` that transition never fires. Relaxed to `visible`
   so the hover tooltip on the Active progress column can escape the
   wrapper upward (otherwise the tooltip is clipped to the wrapper's box
   and only a slim strip shows above the row). */
.product-details[b-1cvgax62m0] {
    margin-top: 20px;
    height: auto !important;
    overflow: visible !important;
    transition: height 0.5s ease-out !important;
}

.batch-header[b-1cvgax62m0] {
    font-weight: 500 !important;
}

.d-flex .ms-auto[b-1cvgax62m0] {
    white-space: nowrap;
}
/* /Editors/BatchOverview/ScanSessionListViewComponent.razor.rz.scp.css */
/* ============================================================================
   ScanSessionListViewComponent — NexRx brand styling

   Tokens come from wwwroot/css/nexrx.tokens.css (loaded earlier via
   ThemeSwitcher CustomUrls). This file uses --navy-* / --teal-* / --lime-* /
   --ink-* / --r-* / --shadow-* / --font-display.

   Markup it styles:
     .scan-session-list
       └ .list-group-item (session card; gets .selected when picked)
           └ .list-group-item-content
               ├ .card-header-style (h5 caption row, teal gradient)
               ├ .row > .col-custom > .card.kpi-speed{,-avg,-max,-total,-focus}
               │   └ .card-body > img + h6 + p.kpi-value
               ├ .row.header-row-2
               │   ├ .col-custom-4 > .card.kpi-speed-general-info
               │   └ .col-custom    > .card.kpi-total-qty
               └ ::deep <ProductTable />
   ============================================================================ */

/* ---------- Session card wrapper ----------
   Bootstrap p-4 (24 px all sides) + .list-group-item-content margin (10 px)
   left a 34 px white frame around the colored content. Override outer padding
   to 0 so the teal-gradient header sits flush with the card edge; add inner
   padding back on the content rows below. */
.scan-session-list .list-group-item[b-03vc88zuc8] {
    background: var(--white);
    border: 1px solid var(--ink-200);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow-card);
    margin-bottom: 1rem;
    overflow: hidden;
    padding: 0 !important;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.scan-session-list .list-group-item:hover[b-03vc88zuc8] {
    border-color: var(--teal-300);
    box-shadow: var(--shadow-pop);
    cursor: pointer;
}

.list-group-item-content[b-03vc88zuc8] {
    margin: 0;
    padding: 18px;
}

.selected[b-03vc88zuc8] {
    border-color: var(--teal-500) !important;
    box-shadow: 0 0 0 3px var(--teal-100), var(--shadow-card) !important;
}

/* ---------- Card head (teal gradient row with hex/cube icon + caption) ----------
   Escapes .list-group-item-content's 18 px padding via negative margin so the
   gradient sits flush with the card edge; .list-group-item has overflow:hidden
   to clip to the rounded corners.

   The header is a flex row clickable as a whole (toggles whole-card collapse):
     [icon] [title]  [status pill]  [counts]                   [spacer] [chevron] */
.card-header-style[b-03vc88zuc8] {
    display: flex;
    align-items: center;
    gap: 12px;
    background: linear-gradient(180deg, var(--teal-50), var(--white) 70%);
    border-bottom: 1px solid var(--teal-100);
    padding: 14px 18px;
    margin: -18px -18px 0 -18px;
    cursor: pointer;
    user-select: none;
    transition: background .15s ease;
}

.card-header-style:hover[b-03vc88zuc8] {
    background: linear-gradient(180deg, var(--teal-100), var(--teal-50) 70%, var(--white));
}

.card-header-style.is-expanded[b-03vc88zuc8] {
    margin-bottom: 18px;
}

.card-header-style.is-collapsed[b-03vc88zuc8] {
    margin-bottom: -18px;
    border-bottom-left-radius: var(--r-lg);
    border-bottom-right-radius: var(--r-lg);
    border-bottom-color: transparent;
}

/* Note on `!important`: `arex.bs5.css * { font-size: 14px !important;
   color: rgb(0,30,75) !important }` (legacy global) overrides every plain
   font-size / color in this isolation file. Until the legacy rule is
   retired, every typography declaration that needs to win must mirror
   `!important`. */
.card-header-style h5[b-03vc88zuc8] {
    font-family: var(--font-display) !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    color: var(--navy-900) !important;
    letter-spacing: -.01em;
    margin: 0;
    display: flex;
    align-items: baseline;
    gap: 8px;
    flex-wrap: wrap;
}

.card-header-title[b-03vc88zuc8] {
    line-height: 1.2;
}

.card-header-tags[b-03vc88zuc8] {
    font-family: var(--font-ui) !important;
    font-weight: 500 !important;
    font-size: 11.5px !important;
    color: var(--ink-500) !important;
    letter-spacing: 0;
}

.card-header-ico[b-03vc88zuc8] {
    display: grid;
    place-items: center;
    flex-shrink: 0;
}

.card-header-ico[b-03vc88zuc8] {
    width: 26px;
    height: 26px;
    padding: 4px;
    background: var(--white);
    color: var(--teal-600);
    border: 1px solid var(--teal-100);
    border-radius: 8px;
    box-sizing: border-box;
    display: grid;
    place-items: center;
}

.card-header-id[b-03vc88zuc8] {
    font-family: var(--font-mono) !important;
    font-size: 12.5px !important;
    font-weight: 500 !important;
    color: var(--ink-700) !important;
    letter-spacing: 0;
    background: var(--white);
    border: 1px solid var(--teal-100);
    padding: 1px 7px;
    border-radius: 999px;
    margin-left: 4px;
}

.card-header-when[b-03vc88zuc8] {
    font-family: var(--font-ui) !important;
    font-weight: 500 !important;
    font-size: 12.5px !important;
    color: var(--ink-500) !important;
    letter-spacing: 0;
}

.card-header-spacer[b-03vc88zuc8] {
    flex: 1;
}

.card-header-kebab[b-03vc88zuc8] {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    border: 0;
    background: transparent;
    color: var(--ink-500);
    cursor: pointer;
    padding: 0;
    transition: background-color .15s ease, color .15s ease;
}

.card-header-kebab:hover[b-03vc88zuc8] {
    background: rgba(255, 255, 255, .7);
    color: var(--navy-900);
}

.card-header-chev[b-03vc88zuc8] {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    color: var(--ink-500);
    transition: transform .2s ease, background-color .15s ease;
}

.card-header-style:hover .card-header-chev[b-03vc88zuc8] {
    background: rgba(255, 255, 255, .6);
    color: var(--navy-900);
}

.card-header-style.is-expanded .card-header-chev[b-03vc88zuc8] {
    transform: rotate(90deg);
}

.card-header-style.is-collapsed .card-header-chev[b-03vc88zuc8] {
    transform: rotate(0deg);
}

/* ---------- Status pill (live / completed) ---------- */
.session-pill[b-03vc88zuc8] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px;
    border-radius: 999px;
    font-family: var(--font-ui) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: .01em;
    flex-shrink: 0;
}

.session-pill.is-live[b-03vc88zuc8] {
    background: var(--white);
    color: var(--success) !important;
    border: 1px solid rgba(31, 157, 110, .3);
}

.session-pill.is-done[b-03vc88zuc8] {
    background: var(--ink-100);
    color: var(--ink-500) !important;
    border: 1px solid var(--ink-200);
}

.session-pill .live-dot[b-03vc88zuc8] {
    position: relative;
    width: 6px;
    height: 6px;
    background: var(--success);
    border-radius: 50%;
}

.session-pill .live-dot[b-03vc88zuc8]::after {
    content: "";
    position: absolute;
    inset: -3px;
    border: 2px solid var(--success);
    border-radius: 50%;
    opacity: .35;
    animation: session-pulse-b-03vc88zuc8 1.6s infinite;
}

@keyframes session-pulse-b-03vc88zuc8 {
    0%   { transform: scale(.8); opacity: .5; }
    100% { transform: scale(1.6); opacity: 0; }
}

/* ---------- Item / SKU counts ---------- */
.session-counts[b-03vc88zuc8] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-ui) !important;
    font-size: 12px !important;
    color: var(--ink-500) !important;
    flex-shrink: 0;
}

.session-counts strong[b-03vc88zuc8] {
    font-family: var(--font-display) !important;
    font-weight: 600 !important;
    color: var(--navy-900) !important;
    margin-right: 2px;
}

.session-counts .dot-sep[b-03vc88zuc8] {
    color: var(--ink-300);
    margin: 0 2px;
}

/* ---------- Inline SVG icons in user info row (replace nonfunctional FA) ----------
   The svg is rendered by NexRxIcon child component; CSS isolation puts the
   svg outside this component's scope, so reach across with ::deep. */
[b-03vc88zuc8] .info-ico {
    color: var(--teal-600);
    margin-right: 6px;
    vertical-align: -2px;
    flex-shrink: 0;
}

.info-cell h6[b-03vc88zuc8] {
    display: flex !important;
    align-items: center;
}

.kpi-total-qty h6[b-03vc88zuc8] {
    display: flex !important;
    align-items: center;
    justify-content: center;
}

/* ---------- Inner cards (KPI tiles + info row tiles) ---------- */
.scan-session-list .card[b-03vc88zuc8] {
    border: 1px solid var(--ink-200);
    border-radius: var(--r-md);
    background: var(--white);
    transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}

.scan-session-list .card:hover[b-03vc88zuc8] {
    border-color: var(--teal-300);
    transform: translateY(-1px);
    box-shadow: var(--shadow-card);
}

.card-body[b-03vc88zuc8] {
    text-align: left !important;
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* ---------- KPI tile inner structure ----------
   Markup:
     .card-body
       ├ .kpi-head            (icon-square + small ink-500 label)
       │   ├ .kpi-ico > img   (14×14 monochrome SVG, recolored teal-600)
       │   └ .kpi-label
       ├ .kpi-value-row       (big Lexend number + small unit + optional trend)
       │   ├ .kpi-value
       │   ├ .kpi-unit
       │   └ .kpi-trend{,.down}
       └ .kpi-bar > span      (optional progress bar; Focus tile)
   ============================================================================ */

.kpi-head[b-03vc88zuc8] {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--ink-500) !important;
    font-size: 11.5px !important;
    font-weight: 500 !important;
}

.kpi-ico[b-03vc88zuc8] {
    width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    background: var(--teal-50) !important;
    border-radius: 6px;
    flex-shrink: 0;
    color: var(--teal-600) !important;
}
/* SVG icons inside kpi-ico must follow `color` (line art uses stroke +
   currentColor; filled paths fall back to fill: currentColor). Without
   this the legacy `arex.bs5.css * { color: rgb(0,30,75) !important }`
   would force the icon to navy, killing the teal/lime accent. The icons
   are emitted by NexRxIcon.razor at Size="13" — too small to read on the
   highlighted accent tile. Force them up to 14×14 here so they fill the
   22-px badge a bit more, matching the design's perceived density. */
[b-03vc88zuc8] .kpi-ico svg,
[b-03vc88zuc8] .kpi-ico img {
    color: currentColor !important;
    stroke: currentColor !important;
    width: 14px !important;
    height: 14px !important;
}
[b-03vc88zuc8] .kpi-ico svg path[fill]:not([fill="none"]),
[b-03vc88zuc8] .kpi-ico svg [fill]:not([fill="none"]) {
    fill: currentColor !important;
}
/* The accent (Total Items Scanned) tile sits on a navy gradient. A 1.6-px
   line-art stroke gets eaten by the dark surround; bump stroke-width to 2
   so the lime icon reads cleanly. */
[b-03vc88zuc8] .kpi-speed-total .kpi-ico svg {
    stroke-width: 2 !important;
    width: 15px !important;
    height: 15px !important;
}

.kpi-label[b-03vc88zuc8] {
    letter-spacing: .01em;
    color: var(--ink-500) !important;
    font-size: 11.5px !important;
    font-weight: 500 !important;
}

.kpi-value-row[b-03vc88zuc8] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    margin-top: 4px;
}

.kpi-value[b-03vc88zuc8] {
    font-family: var(--font-display) !important;
    font-weight: 600 !important;
    font-size: 28px !important;
    color: var(--navy-900) !important;
    letter-spacing: -.02em;
    line-height: 1.1;
}

.kpi-unit[b-03vc88zuc8] {
    font-family: var(--font-ui) !important;
    color: var(--ink-400) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
}

.kpi-trend[b-03vc88zuc8] {
    display: inline-flex;
    align-items: center;
    margin-left: auto;
    font-size: 11px !important;
    font-weight: 600 !important;
    color: var(--success) !important;
}

.kpi-trend.down[b-03vc88zuc8] {
    color: var(--danger) !important;
}

.kpi-bar[b-03vc88zuc8] {
    margin-top: 8px;
    height: 4px;
    background: var(--ink-100);
    border-radius: 2px;
    overflow: hidden;
}

.kpi-bar > span[b-03vc88zuc8] {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--teal-500), var(--lime-500));
    border-radius: inherit;
}

/* ---------- Individual KPI tile tints (subtle, just hint at category) ---------- */
.kpi-speed[b-03vc88zuc8],
.kpi-speed-avg[b-03vc88zuc8],
.kpi-speed-max[b-03vc88zuc8] {
    background-color: var(--white) !important;
}

/* Accent tile: same light surface and border as the other KPI cards,
   distinguished only by a subtle ink tint background and the lime icon
   chip. Matches the design mock (Total Items Scanned sits subtly
   highlighted among the row, not framed by a green border). */
.kpi-speed-total[b-03vc88zuc8] {
    background: var(--ink-50) !important;
}

.kpi-speed-total .kpi-ico[b-03vc88zuc8] {
    background: var(--lime-500) !important;
    border: 0 !important;
    color: var(--navy-900) !important;
}

[b-03vc88zuc8] .kpi-speed-total .kpi-ico svg {
    stroke: var(--navy-900) !important;
    stroke-width: 1.8 !important;
    width: 14px !important;
    height: 14px !important;
}

.kpi-speed-total .kpi-bar > span[b-03vc88zuc8] {
    background: linear-gradient(90deg, var(--lime-500), var(--lime-400));
}

.kpi-speed-focus[b-03vc88zuc8] {
    background-color: var(--white) !important;
}

/* ---------- Meta strip (User / Session No. / Start / Device / Total Quantity) ----------
   Ported verbatim from design styles.css `.meta-strip`. NOT a card — sits flat
   inside the session card body, separated from the KPI grid above by a 1 px
   ink-100 horizontal rule. Five equal columns with vertical separators between. */
.meta-strip[b-03vc88zuc8] {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0;
    border-top: 1px solid var(--ink-100);
    margin-top: 14px;
    padding-top: 14px;
    margin-bottom: 14px;
}

.meta-cell[b-03vc88zuc8] {
    padding: 0 16px;
    border-right: 1px solid var(--ink-100);
}

.meta-cell:first-child[b-03vc88zuc8] {
    padding-left: 0;
}

.meta-cell:last-child[b-03vc88zuc8] {
    border-right: 0;
    padding-right: 0;
}

.meta-cell .label[b-03vc88zuc8] {
    font-size: 10.5px !important;
    color: var(--ink-400) !important;
    text-transform: uppercase;
    letter-spacing: .07em;
    font-weight: 600 !important;
    margin-bottom: 4px;
    display: flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-ui) !important;
}

.meta-cell .value[b-03vc88zuc8] {
    font-size: 13px !important;
    color: var(--navy-900) !important;
    font-weight: 600 !important;
    font-family: var(--font-display) !important;
}

.meta-cell .value.mono[b-03vc88zuc8] {
    font-family: var(--font-mono) !important;
    font-size: 12.5px !important;
    font-weight: 500 !important;
    color: var(--ink-700) !important;
}

.meta-cell .value.accent[b-03vc88zuc8] {
    font-size: 18px !important;
    color: var(--lime-700) !important;
    letter-spacing: -.01em;
}

.meta-cell .sub[b-03vc88zuc8] {
    font-size: 11px !important;
    color: var(--ink-500) !important;
    margin-top: 1px;
    font-weight: 500 !important;
    font-family: var(--font-ui) !important;
}

/* ---------- Helpers ---------- */
.scan-session-list h6[b-03vc88zuc8] {
    color: var(--ink-500);
    font-size: 0.875rem;
}

.scan-session-list .text-muted[b-03vc88zuc8] {
    color: var(--ink-500) !important;
}

.header-row-2[b-03vc88zuc8] {
    margin-top: 15px;
}

.col-custom[b-03vc88zuc8] {
    flex: 0 0 20%;
    max-width: 20%;
}

.col-custom-4[b-03vc88zuc8] {
    flex: 0 0 80%;
    max-width: 80%;
}

.product-details[b-03vc88zuc8] {
    margin-top: 20px;
}

.d-flex .ms-auto[b-03vc88zuc8] {
    white-space: nowrap;
}

[b-03vc88zuc8] .dxbl-pager {
    padding: 0.5rem 0;
}
/* /Editors/FMD/FmdButtonsComponent.razor.rz.scp.css */
/* Style for the card element within the scan-session-list class */
.scan-session-list .card[b-d3srar5es6] {
    transition: transform 0.2s; /* Smooth transition for transform property */
    border-radius: 8px; /* Rounded corners for the card */
}

/* Style for the list group item within the scan-session-list class */
.scan-session-list .list-group-item[b-d3srar5es6] {
    border-radius: 12px; /* Rounded corners for the list group item */
    margin-bottom: 1rem; /* Space below each list group item */
    border: 1px solid #e9ecef;
    background-color: #f8f9fa;
    padding: 1rem;
    transition: all 0.3s ease;
}

/* Hover effect for the list group item */
.scan-session-list .list-group-item:hover[b-d3srar5es6] {
    transform: translateY(-2px);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    background-color: #ffffff;
}

/* Style for the details section */
.details-section[b-d3srar5es6] {
    margin-top: 1rem;
    padding: 1rem;
    background-color: #ffffff;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

/* Style for the details container */
.details-container[b-d3srar5es6] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* Style for individual detail items */
.detail-item[b-d3srar5es6] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem;
    background-color: #f8f9fa;
    border-radius: 6px;
}

/* Style for detail labels */
.detail-label[b-d3srar5es6] {
    font-weight: 500;
    color: #6c757d;
}

/* Style for detail values */
.detail-value[b-d3srar5es6] {
    color: #212529;
}

/* Style for the show/hide details button */
.show-details[b-d3srar5es6] {
    width: 100%;
    padding: 0.5rem;
    margin-top: 0.5rem;
    border: none;
    background-color: #f8f9fa;
    color: #6c757d;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s ease;
}

/* Hover effect for the show/hide details button */
.show-details:hover[b-d3srar5es6] {
    background-color: #e9ecef;
    color: #495057;
}

/* Style for the status badge */
.status-badge[b-d3srar5es6] {
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.875rem;
    font-weight: 500;
}

/* Status badge colors */
.status-success[b-d3srar5es6] {
    background-color: #d1e7dd;
    color: #0f5132;
}

.status-warning[b-d3srar5es6] {
    background-color: #fff3cd;
    color: #664d03;
}

.status-error[b-d3srar5es6] {
    background-color: #f8d7da;
    color: #842029;
}

/* Style for the timestamp */
.timestamp[b-d3srar5es6] {
    font-size: 0.875rem;
    color: #6c757d;
}

/* Style for icons */
.icon[b-d3srar5es6] {
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.5rem;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .scan-session-list .list-group-item[b-d3srar5es6] {
        padding: 0.75rem;
    }

    .details-section[b-d3srar5es6] {
        padding: 0.75rem;
    }

    .detail-item[b-d3srar5es6] {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.25rem;
    }
}

/* Hide default checkbox from InputCheckbox component */
[b-d3srar5es6] input[type="checkbox"] {
    display: none !important;
}

/* Common styles for all buttons */
.action-btn-holders button[b-d3srar5es6] {
    display: block;
    min-height: 80px !important;
    align-items: center;
    justify-content: center;
}

/* Switch holder container */
.switch-holder[b-d3srar5es6] {
    display: flex;
    float: right;
    text-align: right;
    align-items: center;
}

/*
 * Big Status Checkbox (Single/Bulk switch)
 */
.big-custom-checkbox[b-d3srar5es6] {
    width: 200px;
    height: 50px;
}

.big-custom-checkbox input#status[b-d3srar5es6] {
    display: none;
}

.big-custom-checkbox input#status + label[b-d3srar5es6] {
    height: 100%;
    width: 100%;
}

.big-custom-checkbox input#status + label > .status-switch[b-d3srar5es6] {
    cursor: pointer;
    width: 100%;
    height: 100%;
    position: relative;
    background-color: white;
    border: 1px solid #001E4B;
    color: white;
    transition: all 0.5s ease;
    padding: 3px;
    border-radius: 5px;
}

.big-custom-checkbox input#status + label > .status-switch[b-d3srar5es6]:before,
.big-custom-checkbox input#status + label > .status-switch[b-d3srar5es6]:after {
    border-radius: 2px;
    height: calc(100% - 6px);
    width: calc(50% - 3px);
    display: flex;
    align-items: center;
    position: absolute;
    justify-content: center;
    transition: all 0.3s ease;
    color: #001E4B;
}

.big-custom-checkbox input#status + label > .status-switch[b-d3srar5es6]:before {
    background-color: #001E4B;
    color: white;
    left: 3px;
    z-index: 10;
    content: attr(data-unchecked);
}

.big-custom-checkbox input#status + label > .status-switch[b-d3srar5es6]:after {
    right: 0;
    content: attr(data-checked);
}

.big-custom-checkbox input#status:checked + label > .status-switch[b-d3srar5es6] {
    background-color: white;
    border: 1px solid #001E4B;
}

.big-custom-checkbox input#status:checked + label > .status-switch[b-d3srar5es6]:after {
    color: #001E4B;
    left: 0;
    content: attr(data-unchecked);
}

.big-custom-checkbox input#status:checked + label > .status-switch[b-d3srar5es6]:before {
    color: white;
    left: 50%;
    content: attr(data-checked);
}

/*
 * Small Autosend Checkbox
 */
.custom-checkbox[b-d3srar5es6] {
    width: 35px;
    height: 20px;
}

.custom-checkbox input#autosend[b-d3srar5es6] {
    display: none;
}

.custom-checkbox input#autosend + label[b-d3srar5es6] {
    height: 100%;
    width: 100%;
}

.custom-checkbox input#autosend + label > .autosend-switch[b-d3srar5es6] {
    cursor: pointer;
    width: 100%;
    height: 100%;
    position: relative;
    background-color: #dddddd;
    border-radius: 20px;
    transition: all 0.3s ease;
}

.custom-checkbox input#autosend + label > .autosend-switch[b-d3srar5es6]:before {
    content: '';
    position: absolute;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    top: 2px;
    left: 2px;
    background-color: white;
    box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
}

.custom-checkbox input#autosend:checked + label > .autosend-switch[b-d3srar5es6] {
    background-color: #001e4b;
}

.custom-checkbox input#autosend:checked + label > .autosend-switch[b-d3srar5es6]:before {
    transform: translateX(15px);
}

/* Style for selected button state */
button.dxbl-btn-secondary.selected[b-d3srar5es6],
button.dxbl-btn-secondary.selected:hover[b-d3srar5es6] {
    background-color: #001E4B !important;
    border-color: #001E4B !important;
}

button.dxbl-btn-secondary.selected > *:not(img)[b-d3srar5es6],
button.dxbl-btn-secondary.selected:hover > *:not(img)[b-d3srar5es6] {
    color: white !important;
}

button.dxbl-btn-secondary.selected img[b-d3srar5es6] {
    filter: brightness(0) invert(1);
}

/* Style for the decommission mode select */
.decommission-mode-select[b-d3srar5es6] {
    height: 80px;
    width: 100%;
    padding: 0.5rem;
    border: 1px solid rgba(0, 30, 75, 0.2);
    border-radius: 8px;
    background-color: white;
    color: #001E4B;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.decommission-mode-select:hover[b-d3srar5es6] {
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    transform: translateY(-1px);
}

.decommission-mode-select.selected[b-d3srar5es6] {
    background-color: #001E4B;
    color: white;
    border-color: #001E4B;
}

.decommission-mode-select:disabled[b-d3srar5es6] {
    background-color: #f5f5f5;
    cursor: not-allowed;
    opacity: 0.7;
    box-shadow: none;
    transform: none;
    border-color: rgba(0, 30, 75, 0.1);
}

/* Disabled button styles */
button.dxbl-btn-secondary:disabled[b-d3srar5es6] {
    background-color: #f5f5f5 !important;
    border-color: rgba(0, 30, 75, 0.1) !important;
    cursor: not-allowed !important;
    opacity: 0.7 !important;
    box-shadow: none !important;
    transform: none !important;
}

button.dxbl-btn-secondary:disabled > *:not(img)[b-d3srar5es6] {
    color: #6c757d !important;
}

button.dxbl-btn-secondary:disabled img[b-d3srar5es6] {
    filter: grayscale(1) opacity(0.5) !important;
}

button.dxbl-btn-secondary:disabled:hover[b-d3srar5es6] {
    background-color: #f5f5f5 !important;
    border-color: rgba(0, 30, 75, 0.1) !important;
    box-shadow: none !important;
    transform: none !important;
}

.decommission-mode-select option[b-d3srar5es6] {
    padding: 8px;
    background-color: white;
    color: #001E4B;
}

/* Common styles for buttons and select */
.dxbl-btn-secondary[b-d3srar5es6],
.decommission-mode-select[b-d3srar5es6] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 80px !important;
    text-align: center;
    transition: all 0.3s ease;
}
/* /Editors/FMD/FmdKpiComponent.razor.rz.scp.css */
/* Style for the card element within the scan-session-list class */
.scan-session-list .card[b-6835r6c1ji] {
    transition: transform 0.2s; /* Smooth transition for transform property */
    border-radius: 8px; /* Rounded corners for the card */
}

/* Style for the list group item within the scan-session-list class */
.scan-session-list .list-group-item[b-6835r6c1ji] {
    border-radius: 12px; /* Rounded corners for the list group item */
    margin-bottom: 1rem; /* Space below each list group item */
    border: 1px solid #e9ecef;
    background-color: #f8f9fa;
    padding: 1rem;
    transition: all 0.3s ease;
}

/* Hover effect for the list group item */
.scan-session-list .list-group-item:hover[b-6835r6c1ji] {
    transform: translateY(-2px);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    background-color: #ffffff;
}

/* Style for the details section */
.details-section[b-6835r6c1ji] {
    margin-top: 1rem;
    padding: 1rem;
    background-color: #ffffff;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

/* Style for the details container */
.details-container[b-6835r6c1ji] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* Style for individual detail items */
.detail-item[b-6835r6c1ji] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem;
    background-color: #f8f9fa;
    border-radius: 6px;
}

/* Style for detail labels */
.detail-label[b-6835r6c1ji] {
    font-weight: 500;
    color: #6c757d;
}

/* Style for detail values */
.detail-value[b-6835r6c1ji] {
    color: #212529;
}

/* Style for the show/hide details button */
.show-details[b-6835r6c1ji] {
    width: 100%;
    padding: 0.5rem;
    margin-top: 0.5rem;
    border: none;
    background-color: #f8f9fa;
    color: #6c757d;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s ease;
}

/* Hover effect for the show/hide details button */
.show-details:hover[b-6835r6c1ji] {
    background-color: #e9ecef;
    color: #495057;
}

/* Style for the status badge */
.status-badge[b-6835r6c1ji] {
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.875rem;
    font-weight: 500;
}

/* Status badge colors */
.status-success[b-6835r6c1ji] {
    background-color: #d1e7dd;
    color: #0f5132;
}

.status-warning[b-6835r6c1ji] {
    background-color: #fff3cd;
    color: #664d03;
}

.status-error[b-6835r6c1ji] {
    background-color: #f8d7da;
    color: #842029;
}

/* Style for the timestamp */
.timestamp[b-6835r6c1ji] {
    font-size: 0.875rem;
    color: #6c757d;
}

/* Style for icons */
.icon[b-6835r6c1ji] {
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.5rem;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .scan-session-list .list-group-item[b-6835r6c1ji] {
        padding: 0.75rem;
    }

    .details-section[b-6835r6c1ji] {
        padding: 0.75rem;
    }

    .detail-item[b-6835r6c1ji] {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.25rem;
    }
}
/* /Editors/FMD/InputComponent.razor.rz.scp.css */
/* Style for the card element within the scan-session-list class */
.scan-session-list .card[b-x27gfki0xg] {
    transition: transform 0.2s; /* Smooth transition for transform property */
    border-radius: 8px; /* Rounded corners for the card */
}

/* Style for the list group item within the scan-session-list class */
.scan-session-list .list-group-item[b-x27gfki0xg] {
    border-radius: 12px; /* Rounded corners for the list group item */
    margin-bottom: 1rem; /* Space below each list group item */
    border: 1px solid #e9ecef;
    background-color: #f8f9fa;
    padding: 1rem;
    transition: all 0.3s ease;
}

    /* Hover effect for the list group item */
    .scan-session-list .list-group-item:hover[b-x27gfki0xg] {
        transform: translateY(-2px);
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
        background-color: #ffffff;
    }

/* Style for the details section */
.details-section[b-x27gfki0xg] {
    margin-top: 1rem;
    padding: 1rem;
    background-color: #ffffff;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

/* Style for the details container */
.details-container[b-x27gfki0xg] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* Style for individual detail items */
.detail-item[b-x27gfki0xg] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem;
    background-color: #f8f9fa;
    border-radius: 6px;
}

/* Style for detail labels */
.detail-label[b-x27gfki0xg] {
    font-weight: 500;
    color: #6c757d;
}

/* Style for detail values */
.detail-value[b-x27gfki0xg] {
    color: #212529;
}

/* Style for the show/hide details button */
.show-details[b-x27gfki0xg] {
    width: 100%;
    padding: 0.5rem;
    margin-top: 0.5rem;
    border: none;
    background-color: #f8f9fa;
    color: #6c757d;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s ease;
}

    /* Hover effect for the show/hide details button */
    .show-details:hover[b-x27gfki0xg] {
        background-color: #e9ecef;
        color: #495057;
    }

/* Style for the status badge */
.status-badge[b-x27gfki0xg] {
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.875rem;
    font-weight: 500;
}

/* Status badge colors */
.status-success[b-x27gfki0xg] {
    background-color: #d1e7dd;
    color: #0f5132;
}

.status-warning[b-x27gfki0xg] {
    background-color: #fff3cd;
    color: #664d03;
}

.status-error[b-x27gfki0xg] {
    background-color: #f8d7da;
    color: #842029;
}

/* Style for the timestamp */
.timestamp[b-x27gfki0xg] {
    font-size: 0.875rem;
    color: #6c757d;
}

/* Style for icons */
.icon[b-x27gfki0xg] {
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.5rem;
}

/* Style for the input-scanbar-results container */
.input-scanbar-results[b-x27gfki0xg] {
    height: 400px; /* Fixed height restored */
    position: relative;
    overflow-y: auto; /* Enable vertical scrolling */
    padding-right: 5px; /* Add some padding for the scrollbar */
}

/* Style for the scrollbar */
.input-scanbar-results[b-x27gfki0xg]::-webkit-scrollbar {
    width: 8px;
}

.input-scanbar-results[b-x27gfki0xg]::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 4px;
}

.input-scanbar-results[b-x27gfki0xg]::-webkit-scrollbar-thumb {
    background: #888;
    border-radius: 4px;
}

.input-scanbar-results[b-x27gfki0xg]::-webkit-scrollbar-thumb:hover {
    background: #555;
}

/* Style for the processing indicator */
.processing-indicator[b-x27gfki0xg] {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    padding: 2rem;
    background-color: rgba(255, 255, 255, 0.9);
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    z-index: 1;
}

.processing-indicator .spinner-border[b-x27gfki0xg] {
    width: 3rem;
    height: 3rem;
    color: var(--primary);
}

.processing-indicator .mt-2[b-x27gfki0xg] {
    color: #666;
    font-size: 1rem;
}

/* Style for duplicate input indication */
.input-duplicate[b-x27gfki0xg] {
    background-color: #ffebee !important;
    border-color: #ef5350 !important;
}

.input-container[b-x27gfki0xg] {
    position: relative;
    display: inline-block;
    width: calc(100% - 150px);
}

.input-scanbar[b-x27gfki0xg] {
    display: block;
}

.show-importbtn[b-x27gfki0xg] {
    display: inline-block;
    margin-left: 5px;
}

.duplicate-tooltip[b-x27gfki0xg] {
    position: absolute;
    background-color: #ef5350;
    color: white;
    padding: 5px 10px;
    border-radius: 4px;
    font-size: 12px;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
    margin-bottom: 5px;
    display: none;
}

.input-duplicate:hover + .duplicate-tooltip[b-x27gfki0xg] {
    display: block;
}

/* Style for the FMD operation selector */
.fmd-operation-selector[b-x27gfki0xg] {
    position: absolute;
    top: 50%;
    right: 40px;
    transform: translateY(-50%);
    z-index: 2;
}

.fmd-operation-selector label[b-x27gfki0xg] {
    display: none; /* Hide the label to keep it subtle */
}

.fmd-operation-selector select[b-x27gfki0xg] {
    font-size: 0.75rem;
    padding: 0.25rem 0.5rem;
    border: 1px solid #dee2e6;
    border-radius: 4px;
    background-color: #f8f9fa;
    color: #6c757d;
    min-width: 120px;
    height: 28px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.fmd-operation-selector select:hover[b-x27gfki0xg] {
    background-color: #e9ecef;
    border-color: #adb5bd;
}

.fmd-operation-selector select:focus[b-x27gfki0xg] {
    outline: none;
    border-color: #86b7fe;
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);
    background-color: #ffffff;
}

/* Ensure the scan-input-info container has relative positioning */
.scan-input-info[b-x27gfki0xg] {
    position: relative;
    padding-right: 170px; /* Add padding to prevent overlap with selector */
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .scan-session-list .list-group-item[b-x27gfki0xg] {
        padding: 0.75rem;
    }

    .details-section[b-x27gfki0xg] {
        padding: 0.75rem;
    }

    .detail-item[b-x27gfki0xg] {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.25rem;
    }

    .fmd-operation-selector[b-x27gfki0xg] {
        position: static;
        transform: none;
        margin-top: 0.5rem;
        right: auto;
    }

    .fmd-operation-selector label[b-x27gfki0xg] {
        display: block;
        font-size: 0.75rem;
        color: #6c757d;
        margin-bottom: 0.25rem;
    }

    .scan-input-info[b-x27gfki0xg] {
        padding-right: 0;
    }
}
/* /Editors/FMD/OutputComponent.razor.rz.scp.css */
/* Style for the card element within the scan-session-list class */
.scan-session-list .card[b-1sw9e8cv32] {
    transition: transform 0.2s; /* Smooth transition for transform property */
    border-radius: 8px; /* Rounded corners for the card */
}

/* Style for the list group item within the scan-session-list class */
.scan-session-list .list-group-item[b-1sw9e8cv32] {
    border-radius: 12px; /* Rounded corners for the list group item */
    margin-bottom: 1rem; /* Space below each list group item */
    border: 1px solid #e9ecef;
    background-color: #f8f9fa;
    padding: 1rem;
    transition: all 0.3s ease;
}

/* Hover effect for the list group item */
.scan-session-list .list-group-item:hover[b-1sw9e8cv32] {
    transform: translateY(-2px);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    background-color: #ffffff;
}

/* Style for the details section */
.details-section[b-1sw9e8cv32] {
    margin-top: 1rem;
    padding: 1rem;
    background-color: #ffffff;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

/* Style for the details container */
.details-container[b-1sw9e8cv32] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* Style for individual detail items */
.detail-item[b-1sw9e8cv32] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem;
    background-color: #f8f9fa;
    border-radius: 6px;
}

/* Style for detail labels */
.detail-label[b-1sw9e8cv32] {
    font-weight: 500;
    color: #6c757d;
}

/* Style for detail values */
.detail-value[b-1sw9e8cv32] {
    color: #212529;
}

/* Style for the show/hide details button */
.show-details[b-1sw9e8cv32] {
    width: 100%;
    padding: 0.5rem;
    margin-top: 0.5rem;
    border: none;
    background-color: #f8f9fa;
    color: #6c757d;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s ease;
}

/* Hover effect for the show/hide details button */
.show-details:hover[b-1sw9e8cv32] {
    background-color: #e9ecef;
    color: #495057;
}

/* Style for the status badge */
.status-badge[b-1sw9e8cv32] {
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.875rem;
    font-weight: 500;
}

/* Status badge colors */
.status-success[b-1sw9e8cv32] {
    background-color: #d1e7dd;
    color: #0f5132;
}

.status-warning[b-1sw9e8cv32] {
    background-color: #fff3cd;
    color: #664d03;
}

.status-error[b-1sw9e8cv32] {
    background-color: #f8d7da;
    color: #842029;
}

/* Style for the timestamp */
.timestamp[b-1sw9e8cv32] {
    font-size: 0.875rem;
    color: #6c757d;
}

/* Style for icons */
.icon[b-1sw9e8cv32] {
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.5rem;
}

/* Style for the table container */
.table-container[b-1sw9e8cv32] {
    height: 455px;
    overflow-y: auto;
    padding-right: 5px;
}

/* Keep table header fixed */
.table thead th[b-1sw9e8cv32] {
    position: sticky;
    top: 0;
    background-color: white;
    z-index: 1;
}

/* Style for the scrollbar */
.table-container[b-1sw9e8cv32]::-webkit-scrollbar {
    width: 8px;
}

.table-container[b-1sw9e8cv32]::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 4px;
}

.table-container[b-1sw9e8cv32]::-webkit-scrollbar-thumb {
    background: #888;
    border-radius: 4px;
}

.table-container[b-1sw9e8cv32]::-webkit-scrollbar-thumb:hover {
    background: #555;
}

/* Color classes */
[b-1sw9e8cv32] .color-white { 
    background-color: white !important; 
}

[b-1sw9e8cv32] .color-green { 
    background-color: lightgreen !important; 
}

[b-1sw9e8cv32] .color-blue { 
    background-color: lightblue !important; 
}

[b-1sw9e8cv32] .color-amber { 
    background-color: orange !important; 
}

[b-1sw9e8cv32] .color-red { 
    background-color: lightcoral !important; 
    color: white !important;
}

[b-1sw9e8cv32] .color-red td { 
    color: white !important;
}

/* Override default table striping */
[b-1sw9e8cv32] .table tbody tr:nth-child(odd),
[b-1sw9e8cv32] .table tbody tr:nth-child(even) {
    background-color: transparent;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .scan-session-list .list-group-item[b-1sw9e8cv32] {
        padding: 0.75rem;
    }

    .details-section[b-1sw9e8cv32] {
        padding: 0.75rem;
    }

    .detail-item[b-1sw9e8cv32] {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.25rem;
    }
}
/* /Editors/FMD/TestRunnerComponent.razor.rz.scp.css */
/* Backdrop Overlay */
.test-runner-backdrop[b-uqtgrac07i] {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.5);
    z-index: 998;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

.test-runner-backdrop.visible[b-uqtgrac07i] {
    opacity: 1;
    pointer-events: auto;
}

/* Minimized Tab on Right Side - Tab/Bookmark Style */
.test-runner-tab[b-uqtgrac07i] {
    position: fixed;
    right: 0;
    top: 50px;
    background: rgba(255, 255, 255, 0.95);
    color: #0a2540;
    padding: 12px 16px;
    cursor: pointer;
    z-index: 999;
    transition: all 0.3s ease;
    border-radius: 8px 0 0 8px;
    box-shadow: -3px 3px 10px rgba(0, 0, 0, 0.15);
    clip-path: polygon(0 0, 100% 0, 100% 80%, 85% 100%, 0 100%);
    border: 1px solid #e0e0e0;
    border-right: none;
}

.test-runner-tab:hover[b-uqtgrac07i] {
    transform: translateX(-5px);
    box-shadow: -5px 5px 15px rgba(0, 0, 0, 0.25);
    background: rgba(255, 255, 255, 1);
}

.test-runner-tab.hidden[b-uqtgrac07i] {
    opacity: 0;
    pointer-events: none;
    transform: translateX(100%);
}

.tab-content[b-uqtgrac07i] {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

.tab-icon[b-uqtgrac07i] {
    font-size: 24px;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.2));
}

.tab-text[b-uqtgrac07i] {
    display: none;
}

/* Floating Panel */
.test-runner-floating-panel[b-uqtgrac07i] {
    position: fixed;
    right: 0;
    top: 0;
    width: 20%;
    min-width: 350px;
    max-width: 500px;
    height: 100vh;
    background: white;
    z-index: 1000;
    box-shadow: -4px 0 24px rgba(0, 0, 0, 0.3);
    overflow-y: auto;
    overflow-x: hidden;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.test-runner-floating-panel.collapsed[b-uqtgrac07i] {
    transform: translateX(100%);
}

.test-runner-floating-panel.expanded[b-uqtgrac07i] {
    transform: translateX(0);
}

/* Close Button */
.panel-close-btn[b-uqtgrac07i] {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.95);
    border: 2px solid #001E4B;
    border-radius: 50%;
    cursor: pointer;
    z-index: 1001;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.panel-close-btn:hover[b-uqtgrac07i] {
    background: #001E4B;
    transform: rotate(90deg);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
}

.panel-close-btn span[b-uqtgrac07i] {
    font-size: 28px;
    line-height: 1;
    color: #001E4B;
    transition: color 0.3s ease;
}

.panel-close-btn:hover span[b-uqtgrac07i] {
    color: white;
}

/* Main Container */
.test-runner-container[b-uqtgrac07i] {
    padding: 0;
    background-color: transparent;
    height: 100%;
}

/* Header Styles */
.test-runner-header[b-uqtgrac07i] {
    padding: 20px;
    background-color: #f8f9fa;
    color: #001E4B;
    border-radius: 0;
    box-shadow: none;
    margin-bottom: 0 !important;
    border-bottom: 2px solid #e9ecef;
}

.header-content[b-uqtgrac07i] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.header-left[b-uqtgrac07i] {
    flex: 1;
}

.header-right[b-uqtgrac07i] {
    flex-shrink: 0;
}

.test-runner-title[b-uqtgrac07i] {
    margin: 0;
    font-size: 20px;
    font-weight: 600;
    letter-spacing: 0;
    color: #001E4B;
}

.test-runner-subtitle[b-uqtgrac07i] {
    margin: 4px 0 0 0;
    font-size: 14px;
    font-weight: 400;
    color: #6c757d;
}

.test-stats[b-uqtgrac07i] {
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: space-between;
}

.stat-item[b-uqtgrac07i] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 8px 16px;
    border-radius: 6px;
    flex: 1;
    transition: all 0.2s ease;
}

.stat-item:hover[b-uqtgrac07i] {
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
}

.stat-item.stat-total[b-uqtgrac07i] {
    background: white;
    border: 1px solid #dee2e6;
}

.stat-item.stat-passed[b-uqtgrac07i] {
    background: #d4edda;
    border: 1px solid #c3e6cb;
}

.stat-item.stat-failed[b-uqtgrac07i] {
    background: #f8d7da;
    border: 1px solid #f5c6cb;
}

.stat-label[b-uqtgrac07i] {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 2px;
    display: block;
    color: #6c757d;
}

.stat-value[b-uqtgrac07i] {
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
    display: block;
}

.stat-total .stat-value[b-uqtgrac07i] {
    color: #001E4B;
}

.stat-passed .stat-value[b-uqtgrac07i] {
    color: #28a745;
}

.stat-failed .stat-value[b-uqtgrac07i] {
    color: #dc3545;
}

/* Filter Section */
.test-filter-section[b-uqtgrac07i] {
    padding: 12px;
    border-radius: 0;
    background-color: white;
    border-bottom: 1px solid #e5e7eb;
}

.filter-label[b-uqtgrac07i] {
    display: block;
    font-size: 10px;
    font-weight: 600;
    color: #6c757d;
    margin-bottom: 4px;
    text-transform: uppercase;
}

.test-category-select[b-uqtgrac07i],
.test-status-select[b-uqtgrac07i],
.test-search-input[b-uqtgrac07i] {
    height: 32px;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    padding: 4px 8px;
    transition: all 0.3s ease;
    font-size: 12px;
    width: 100%;
}

.test-category-select:focus[b-uqtgrac07i],
.test-status-select:focus[b-uqtgrac07i],
.test-search-input:focus[b-uqtgrac07i] {
    border-color: #001E4B;
    box-shadow: 0 0 0 0.15rem rgba(0, 30, 75, 0.15);
}

/* Test Group Styles */
.test-group[b-uqtgrac07i] {
    border-radius: 8px;
    overflow: hidden;
    transition: all 0.3s ease;
}

.test-group:hover[b-uqtgrac07i] {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.test-group-header[b-uqtgrac07i] {
    padding: 10px 12px;
    background-color: #f8f9fa;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.test-group-header:hover[b-uqtgrac07i] {
    background-color: #e9ecef;
}

.test-group-title[b-uqtgrac07i] {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    color: #001E4B;
    display: flex;
    align-items: center;
    gap: 6px;
}

.toggle-icon[b-uqtgrac07i] {
    display: inline-block;
    transition: transform 0.3s ease;
    font-size: 10px;
    flex-shrink: 0;
}

.toggle-icon.expanded[b-uqtgrac07i] {
    transform: rotate(90deg);
}

.test-group-description[b-uqtgrac07i] {
    margin: 3px 0 0 16px;
    font-size: 11px;
    color: #6c757d;
    display: none;
}

.test-group-stats[b-uqtgrac07i] {
    font-size: 11px;
    color: #6c757d;
    font-weight: 500;
}

.test-group-body[b-uqtgrac07i] {
    padding: 8px 10px 10px 10px;
}

/* Test Item Styles */
.test-item[b-uqtgrac07i] {
    padding: 8px 10px;
    margin-bottom: 6px;
    background-color: #ffffff;
    border: 1px solid #e9ecef;
    border-radius: 6px;
    transition: all 0.3s ease;
}

.test-item:hover[b-uqtgrac07i] {
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
    transform: translateY(-1px);
}

.test-item.test-passed[b-uqtgrac07i] {
    border-left: 3px solid #28a745;
}

.test-item.test-failed[b-uqtgrac07i] {
    border-left: 3px solid #dc3545;
}

.test-item.test-running[b-uqtgrac07i] {
    border-left: 3px solid #007bff;
    animation: pulse-b-uqtgrac07i 2s infinite;
}

@keyframes pulse-b-uqtgrac07i {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.7;
    }
}

/* Test Status Indicator */
.test-status-indicator[b-uqtgrac07i] {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: bold;
}

.test-status-indicator.passed[b-uqtgrac07i] {
    background-color: #d4edda;
    color: #28a745;
}

.test-status-indicator.failed[b-uqtgrac07i] {
    background-color: #f8d7da;
    color: #dc3545;
}

.test-status-indicator.running[b-uqtgrac07i] {
    background-color: #cce5ff;
    color: #007bff;
    animation: spin-b-uqtgrac07i 1s linear infinite;
}

.test-status-indicator.notrun[b-uqtgrac07i] {
    background-color: #e9ecef;
    color: #6c757d;
}

@keyframes spin-b-uqtgrac07i {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

/* Priority Badge */
.test-priority-badge[b-uqtgrac07i] {
    display: inline-block;
    width: 20px;
    height: 20px;
    border-radius: 4px;
    text-align: center;
    line-height: 20px;
    font-weight: 700;
    font-size: 10px;
}

.test-priority-badge.mandatory[b-uqtgrac07i] {
    background-color: #fff3cd;
    color: #856404;
    border: 2px solid #ffc107;
}

.test-priority-badge.optional[b-uqtgrac07i] {
    background-color: #d1ecf1;
    color: #0c5460;
    border: 2px solid #17a2b8;
}

/* Test Details */
.test-code[b-uqtgrac07i] {
    font-weight: 600;
    font-size: 12px;
    color: #001E4B;
    margin-bottom: 2px;
}

.test-description[b-uqtgrac07i] {
    font-size: 11px;
    color: #495057;
    margin-bottom: 2px;
    line-height: 1.3;
}

.test-data[b-uqtgrac07i] {
    font-size: 10px;
    color: #6c757d;
    font-style: italic;
}

.test-duration[b-uqtgrac07i] {
    font-size: 10px;
    color: #6c757d;
    padding: 2px 6px;
    background-color: #f8f9fa;
    border-radius: 3px;
}

/* Error Details */
.test-error-details[b-uqtgrac07i] {
    margin-top: 15px;
    padding: 15px;
    background-color: #f8d7da;
    border: 1px solid #f5c6cb;
    border-radius: 8px;
}

.error-title[b-uqtgrac07i] {
    font-weight: 600;
    color: #721c24;
    margin-bottom: 8px;
}

.error-message[b-uqtgrac07i] {
    font-size: 14px;
    color: #721c24;
    margin-bottom: 10px;
}

.error-stack[b-uqtgrac07i] {
    margin-top: 10px;
}

.error-stack summary[b-uqtgrac07i] {
    cursor: pointer;
    font-weight: 600;
    color: #721c24;
    margin-bottom: 5px;
}

.error-stack pre[b-uqtgrac07i] {
    background-color: #ffffff;
    padding: 10px;
    border-radius: 4px;
    font-size: 11px;
    overflow-x: auto;
    max-height: 200px;
}

/* Buttons */
.dxbl-btn-primary[b-uqtgrac07i],
.dxbl-btn-secondary[b-uqtgrac07i] {
    border-radius: 6px;
    font-weight: 600;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    font-size: 11px;
    padding: 4px 8px;
}

.dxbl-btn-primary[b-uqtgrac07i] {
    background-color: #001E4B;
    border-color: #001E4B;
    color: white;
}

.dxbl-btn-primary:hover[b-uqtgrac07i] {
    background-color: #003875;
    border-color: #003875;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 30, 75, 0.3);
}

.dxbl-btn-secondary[b-uqtgrac07i] {
    background-color: white;
    border: 1px solid #001E4B;
    color: #001E4B;
}

.dxbl-btn-secondary:hover[b-uqtgrac07i] {
    background-color: #001E4B;
    color: white;
}

.dxbl-btn-secondary:hover img[b-uqtgrac07i] {
    filter: brightness(0) invert(1);
}

.btn-sm[b-uqtgrac07i] {
    padding: 4px 8px;
    font-size: 10px;
}

.btn-icon[b-uqtgrac07i],
.btn-icon-sm[b-uqtgrac07i] {
    width: 12px;
    height: 12px;
}

.btn-icon-only[b-uqtgrac07i] {
    background: none;
    border: none;
    cursor: pointer;
    padding: 5px;
    transition: transform 0.2s ease;
}

.btn-icon-only:hover[b-uqtgrac07i] {
    transform: scale(1.2);
}

.fluid[b-uqtgrac07i] {
    width: 100%;
}

/* Results Panel */
.results-panel[b-uqtgrac07i] {
    position: fixed;
    bottom: 20px;
    right: 20px;
    width: 400px;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
    z-index: 1000;
}

.results-header[b-uqtgrac07i] {
    padding: 15px 20px;
    background-color: #001E4B;
    color: white;
    border-radius: 12px 12px 0 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.results-header h4[b-uqtgrac07i] {
    margin: 0;
    font-size: 16px;
}

.btn-close[b-uqtgrac07i] {
    background: none;
    border: none;
    color: white;
    font-size: 24px;
    cursor: pointer;
    padding: 0;
    width: 30px;
    height: 30px;
    line-height: 1;
}

.btn-close:hover[b-uqtgrac07i] {
    opacity: 0.8;
}

.results-body[b-uqtgrac07i] {
    padding: 20px;
}

.progress-section[b-uqtgrac07i] {
    margin-bottom: 20px;
}

.progress[b-uqtgrac07i] {
    height: 25px;
    border-radius: 8px;
    background-color: #e9ecef;
    overflow: hidden;
}

.progress-bar[b-uqtgrac07i] {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: 600;
    font-size: 12px;
    transition: width 0.3s ease;
}

.progress-text[b-uqtgrac07i] {
    margin-top: 10px;
    text-align: center;
    font-size: 14px;
    color: #6c757d;
}

.results-summary[b-uqtgrac07i] {
    display: flex;
    gap: 10px;
}

.result-card[b-uqtgrac07i] {
    flex: 1;
    padding: 15px;
    border-radius: 8px;
    text-align: center;
}

.result-card.success[b-uqtgrac07i] {
    background-color: #d4edda;
    border: 2px solid #28a745;
}

.result-card.failure[b-uqtgrac07i] {
    background-color: #f8d7da;
    border: 2px solid #dc3545;
}

.result-card.pending[b-uqtgrac07i] {
    background-color: #e9ecef;
    border: 2px solid #6c757d;
}

.result-icon[b-uqtgrac07i] {
    font-size: 24px;
    margin-bottom: 5px;
}

.result-count[b-uqtgrac07i] {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 5px;
}

.result-label[b-uqtgrac07i] {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 600;
}

/* Test List Container */
.test-list-container[b-uqtgrac07i] {
    background-color: #f8f9fa;
    padding: 12px;
}

/* Common Styles */
.white-card[b-uqtgrac07i] {
    background-color: white;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.text-right[b-uqtgrac07i] {
    text-align: right;
}

.text-center[b-uqtgrac07i] {
    text-align: center;
}

.text-success[b-uqtgrac07i] {
    color: #4ade80 !important;
}

.text-danger[b-uqtgrac07i] {
    color: #f87171 !important;
}

.mb-5[b-uqtgrac07i] {
    margin-bottom: 3px;
}

.mb-10[b-uqtgrac07i] {
    margin-bottom: 6px;
}

.mb-20[b-uqtgrac07i] {
    margin-bottom: 10px;
}

.ml-5[b-uqtgrac07i] {
    margin-left: 3px;
}

.ml-10[b-uqtgrac07i] {
    margin-left: 6px;
}

.mt-10[b-uqtgrac07i] {
    margin-top: 6px;
}

/* Responsive Design */
@media (max-width: 768px) {
    .test-runner-floating-panel[b-uqtgrac07i] {
        width: 90%;
        min-width: 300px;
    }

    .test-runner-tab[b-uqtgrac07i] {
        right: 0;
        top: 45px;
        padding: 10px 12px;
    }

    .tab-icon[b-uqtgrac07i] {
        font-size: 20px;
    }

    .panel-close-btn[b-uqtgrac07i] {
        top: 15px;
        right: 15px;
        width: 35px;
        height: 35px;
    }

    .panel-close-btn span[b-uqtgrac07i] {
        font-size: 24px;
    }

    .test-runner-container[b-uqtgrac07i] {
        padding: 0;
    }

    .test-runner-header[b-uqtgrac07i] {
        padding: 16px 20px;
    }

    .header-content[b-uqtgrac07i] {
        flex-direction: column;
        gap: 16px;
        align-items: flex-start;
    }

    .test-runner-title[b-uqtgrac07i] {
        font-size: 20px;
    }

    .test-runner-subtitle[b-uqtgrac07i] {
        font-size: 12px;
    }

    .test-stats[b-uqtgrac07i] {
        width: 100%;
        justify-content: space-between;
    }

    .stat-item[b-uqtgrac07i] {
        flex: 1;
        min-width: 0;
        padding: 10px 12px;
    }

    .stat-label[b-uqtgrac07i] {
        font-size: 10px;
    }

    .stat-value[b-uqtgrac07i] {
        font-size: 22px;
    }

    .results-panel[b-uqtgrac07i] {
        width: calc(100% - 40px);
        left: 20px;
    }

    .test-item .row[b-uqtgrac07i] {
        flex-direction: column;
    }

    .test-item .col-1[b-uqtgrac07i],
    .test-item .col-2[b-uqtgrac07i],
    .test-item .col-6[b-uqtgrac07i] {
        margin-bottom: 10px;
    }
}

/* Smooth scrollbar for floating panel */
.test-runner-floating-panel[b-uqtgrac07i]::-webkit-scrollbar {
    width: 8px;
}

.test-runner-floating-panel[b-uqtgrac07i]::-webkit-scrollbar-track {
    background: #f1f1f1;
}

.test-runner-floating-panel[b-uqtgrac07i]::-webkit-scrollbar-thumb {
    background: #888;
    border-radius: 4px;
}

.test-runner-floating-panel[b-uqtgrac07i]::-webkit-scrollbar-thumb:hover {
    background: #555;
}

/* Running Test Indicator (Bottom of screen) */
.running-test-indicator[b-uqtgrac07i] {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: #f8f9fa;
    color: #495057;
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.08);
    z-index: 900;
    animation: slideInUp-b-uqtgrac07i 0.3s ease;
    border-top: 1px solid #dee2e6;
}

@keyframes slideInUp-b-uqtgrac07i {
    from {
        transform: translateY(100%);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.running-test-content[b-uqtgrac07i] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 24px;
    max-width: 1400px;
    margin: 0 auto;
}

.running-test-spinner[b-uqtgrac07i] {
    flex-shrink: 0;
}

.running-test-spinner .spinner-border[b-uqtgrac07i] {
    width: 18px;
    height: 18px;
    border-width: 2px;
    color: #007bff;
}

.running-test-info[b-uqtgrac07i] {
    flex: 1;
    min-width: 0;
}

.running-test-code[b-uqtgrac07i] {
    font-size: 13px;
    font-weight: 600;
    color: #001E4B;
    margin-bottom: 2px;
}

.running-test-description[b-uqtgrac07i] {
    font-size: 12px;
    color: #6c757d;
}

.running-test-status[b-uqtgrac07i] {
    flex-shrink: 0;
    font-size: 11px;
    font-weight: 500;
    color: #6c757d;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

/* Screenshot Modal Styles */
.screenshot-modal-backdrop[b-uqtgrac07i] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.7);
    z-index: 10000;
    animation: fadeIn-b-uqtgrac07i 0.2s ease-out;
}

.screenshot-modal[b-uqtgrac07i] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: white;
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
    z-index: 10001;
    max-width: 90vw;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    animation: slideIn-b-uqtgrac07i 0.3s ease-out;
}

@keyframes fadeIn-b-uqtgrac07i {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes slideIn-b-uqtgrac07i {
    from {
        transform: translate(-50%, -50%) scale(0.9);
        opacity: 0;
    }
    to {
        transform: translate(-50%, -50%) scale(1);
        opacity: 1;
    }
}

.screenshot-modal-header[b-uqtgrac07i] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 24px;
    border-bottom: 1px solid #e0e0e0;
}

.screenshot-modal-header h4[b-uqtgrac07i] {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    color: #001E4B;
}

.screenshot-modal-header .btn-close[b-uqtgrac07i] {
    background: none;
    border: none;
    font-size: 32px;
    line-height: 1;
    color: #6c757d;
    cursor: pointer;
    padding: 0;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    transition: all 0.2s ease;
}

.screenshot-modal-header .btn-close:hover[b-uqtgrac07i] {
    background: #f0f0f0;
    color: #001E4B;
}

.screenshot-modal-body[b-uqtgrac07i] {
    flex: 1;
    overflow: auto;
    padding: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f8f9fa;
}

.screenshot-modal-body img[b-uqtgrac07i] {
    max-width: 100%;
    max-height: calc(90vh - 160px);
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.screenshot-modal-footer[b-uqtgrac07i] {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding: 16px 24px;
    border-top: 1px solid #e0e0e0;
}
/* /Editors/PurchaseOrderLinesEditor/PurchaseOrderLinesListViewComponent.razor.rz.scp.css */
/* ============================================================================
   PurchaseOrderLinesListViewComponent — NexRx brand styling

   Mirrors the .shr-table chrome from the NexRx design (see
   Documentation/2026-05-04_NexRxListViewRestyle.md) so the hand-built
   purchase-order table inherits the same look as XAF DxGrid list views,
   without touching the markup.

   Tokens come from wwwroot/css/nexrx.tokens.css.
   The legacy `arex.bs5.css *` rule forces font-size and color with
   !important — text rules below mirror that until that rule is retired.
   ============================================================================ */

.purchase-order-lines-grid[b-43rvfybqxn] {
    background: var(--white);
    border: 1px solid var(--ink-200);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow-card);
    overflow: hidden;
}

.purchase-order-lines-grid .table-responsive[b-43rvfybqxn] {
    margin: 0;
    overflow-x: auto;
}

.purchase-order-lines-grid .table[b-43rvfybqxn] {
    width: 100%;
    margin: 0;
    border-collapse: separate;
    border-spacing: 0;
    font-family: var(--font-ui) !important;
    font-size: 12px !important;
    color: var(--ink-700) !important;
}

/* ---------- Header ---------- */
.purchase-order-lines-grid .table > thead > tr > th[b-43rvfybqxn],
.purchase-order-lines-grid .table-light > tr > th[b-43rvfybqxn],
.purchase-order-lines-grid thead.table-light > tr > th[b-43rvfybqxn] {
    position: sticky;
    top: 0;
    z-index: 1;
    background: linear-gradient(180deg, var(--ink-50), #ECF0F7) !important;
    color: var(--ink-700) !important;
    font-size: 10.5px !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: .06em;
    padding: 9px 10px !important;
    border-top: 0;
    border-bottom: 1px solid var(--ink-200) !important;
    white-space: nowrap;
}

/* ---------- Body cells ---------- */
.purchase-order-lines-grid .table > tbody > tr > td[b-43rvfybqxn] {
    padding: 8px 10px !important;
    border-top: 0;
    border-bottom: 1px solid var(--ink-100);
    background: transparent;
    color: var(--ink-700) !important;
    font-size: 12px !important;
    vertical-align: middle;
}

/* ---------- Order line row (visual separator) ---------- */
.purchase-order-lines-grid .order-line-row[b-43rvfybqxn] {
    background: var(--white) !important;
    border-top: 1px solid var(--ink-200) !important;
    transition: background-color .08s ease;
}

.purchase-order-lines-grid .order-line-row td[b-43rvfybqxn] {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
}

.purchase-order-lines-grid .order-line-row td strong[b-43rvfybqxn] {
    font-family: var(--font-display) !important;
    font-weight: 600 !important;
    color: var(--navy-900) !important;
    font-size: 12.5px !important;
}

.purchase-order-lines-grid .order-line-row td small.text-muted[b-43rvfybqxn] {
    color: var(--ink-500) !important;
    font-size: 11px !important;
    font-family: var(--font-mono) !important;
}

/* ---------- Batch row (sub-row) ---------- */
.purchase-order-lines-grid .batch-row[b-43rvfybqxn] {
    background: var(--ink-50) !important;
    transition: background-color .08s ease;
}

.purchase-order-lines-grid .batch-row td[b-43rvfybqxn] {
    color: var(--ink-500) !important;
    font-family: var(--font-mono) !important;
    font-size: 11.5px !important;
    font-weight: 500 !important;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
}

.purchase-order-lines-grid .batch-row td.batch-cell[b-43rvfybqxn] {
    color: var(--navy-900) !important;
    font-weight: 600 !important;
}

.purchase-order-lines-grid .batch-row td.batch-cell strong[b-43rvfybqxn] {
    color: var(--navy-900) !important;
    font-weight: 700 !important;
}

/* ---------- Hover ---------- */
.purchase-order-lines-grid .table-hover > tbody > tr.order-line-row:hover > *[b-43rvfybqxn],
.purchase-order-lines-grid .table-hover > tbody > tr.batch-row:hover > *[b-43rvfybqxn] {
    background: var(--teal-50) !important;
    color: var(--ink-700) !important;
}

/* ---------- Selected (Bootstrap .table-primary) ---------- */
.purchase-order-lines-grid .table-primary[b-43rvfybqxn],
.purchase-order-lines-grid .table-primary > th[b-43rvfybqxn],
.purchase-order-lines-grid .table-primary > td[b-43rvfybqxn] {
    background: linear-gradient(90deg, var(--teal-100) 0%, var(--teal-50) 100%) !important;
    color: var(--navy-900) !important;
    --bs-table-accent-bg: transparent;
}

.purchase-order-lines-grid .order-line-row.table-primary > td:first-child[b-43rvfybqxn] {
    box-shadow: inset 3px 0 0 var(--teal-500);
}

/* ---------- Damage / deviation emphasis ---------- */
.purchase-order-lines-grid .text-danger[b-43rvfybqxn] {
    color: var(--danger) !important;
}

.purchase-order-lines-grid .text-muted[b-43rvfybqxn] {
    color: var(--ink-400) !important;
}
/* /Editors/UrlImagePropertyEditor/UrlImageComponent.razor.rz.scp.css */
.url-image[b-nd3trq4req] {
    display: block;
    margin: 4px 0;
    transition: box-shadow 0.2s ease;
    min-width: 400px;
    min-height: 400px;
    object-fit: contain;
    border: 1px solid #ddd;
    border-radius: 4px;
}

.url-image:hover[b-nd3trq4req] {
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.url-image-listview[b-nd3trq4req] {
    display: inline-block;
    vertical-align: middle;
    margin: 2px;
}

.url-image-error[b-nd3trq4req],
.url-image-placeholder[b-nd3trq4req] {
    color: #999;
    font-style: italic;
    padding: 8px;
    text-align: center;
    background-color: #f8f9fa;
    border: 1px dashed #dee2e6;
    border-radius: 4px;
    font-size: 12px;
    width: 400px;
    height: 400px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.url-image-listview + .url-image-error[b-nd3trq4req],
.url-image-listview + .url-image-placeholder[b-nd3trq4req] {
    padding: 4px;
    font-size: 10px;
    min-height: 40px;
    width: auto;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
}

.image-popup-overlay[b-nd3trq4req] {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.8);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2147483647;
    cursor: pointer;
    overflow: auto;
    isolation: isolate;
}

.image-popup-container[b-nd3trq4req] {
    position: relative;
    max-width: none;
    max-height: none;
    cursor: default;
    margin: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 100%;
    min-height: 100%;
    z-index: 2147483647;
}

.image-popup-image[b-nd3trq4req] {
    max-width: none;
    max-height: none;
    object-fit: contain;
    border-radius: 4px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
    transition: transform 0.2s ease;
    cursor: grab;
    user-select: none;
}

.image-popup-image:active[b-nd3trq4req] {
    cursor: grabbing;
}

.image-popup-controls[b-nd3trq4req] {
    position: absolute;
    top: 10px;
    left: 10px;
    display: flex;
    gap: 8px;
    z-index: 2147483647;
}

.image-popup-button[b-nd3trq4req] {
    background: rgba(255, 255, 255, 0.9);
    border: none;
    border-radius: 4px;
    width: 40px;
    height: 32px;
    font-size: 16px;
    font-weight: bold;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #333;
    transition: background-color 0.2s ease;
}

.image-popup-button:hover[b-nd3trq4req] {
    background: rgba(255, 255, 255, 1);
}

.image-popup-close[b-nd3trq4req] {
    position: absolute;
    top: 10px;
    right: 10px;
    background: rgba(255, 255, 255, 0.9);
    border: none;
    border-radius: 50%;
    width: 32px;
    height: 32px;
    font-size: 20px;
    font-weight: bold;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #333;
    transition: background-color 0.2s ease;
    z-index: 2147483647;
}

.image-popup-close:hover[b-nd3trq4req] {
    background: rgba(255, 255, 255, 1);
}

.url-image[b-nd3trq4req] {
    max-width: 100px;
    max-height: 100px;
    cursor: pointer;
    transition: opacity 0.3s ease;
}

.url-image:hover[b-nd3trq4req] {
    opacity: 0.8;
}

.url-image-overlay[b-nd3trq4req] {
    position: absolute;
    top: 2px;
    right: 2px;
    background: rgba(0,0,0,0.7);
    color: white;
    padding: 2px 4px;
    border-radius: 3px;
    font-size: 10px;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.url-image:hover + .url-image-overlay[b-nd3trq4req],
.url-image-overlay:hover[b-nd3trq4req] {
    opacity: 1;
}
/* /Pages/CreateNewTenant.razor.rz.scp.css */
.create-tenant-page[b-8oadh35abv] {
    min-height: 100vh;
}

.create-tenant-card[b-8oadh35abv] {
    width: 100%;
    max-width: 480px;
    padding: 40px 36px 36px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    color: #f2f4f8;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
    text-align: center;
}

    .create-tenant-card .header-logo[b-8oadh35abv] {
        height: 60px;
        width: 150px;
        margin-bottom: 24px;
    }

    .create-tenant-card .card-heading[b-8oadh35abv] {
        font-size: 1.35rem;
        font-weight: 600;
        margin-bottom: 20px;
        color: #ffffff;
    }

.waiting-panel[b-8oadh35abv] {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 10px;
    padding: 20px 22px;
    text-align: left;
}

    .waiting-panel p[b-8oadh35abv] {
        margin-bottom: 12px;
        color: #e8ecf5;
        line-height: 1.5;
    }

    .waiting-panel p:last-child[b-8oadh35abv] {
        margin-bottom: 0;
    }

.waiting-icon[b-8oadh35abv] {
    font-size: 28px;
    text-align: center;
    margin-bottom: 12px;
}

.text-muted-on-dark[b-8oadh35abv] {
    color: rgba(226, 232, 240, 0.65) !important;
    font-size: 0.875rem;
}

.create-tenant-card .ready-text[b-8oadh35abv] {
    color: #e8ecf5;
    margin-bottom: 20px;
}

.create-tenant-card .alert[b-8oadh35abv] {
    text-align: left;
    margin-bottom: 0;
}

.create-tenant-card .progress-container[b-8oadh35abv] {
    margin: 20px 0 12px;
}

.create-tenant-card .status-messages[b-8oadh35abv] {
    text-align: left;
    color: #e8ecf5;
}

.create-tenant-card .progress-step[b-8oadh35abv] {
    font-size: 0.85rem;
    opacity: 0.8;
    margin-top: 4px;
}
/* /Pages/Register.razor.rz.scp.css */
/* Registration Page Styles - Extends /nexrx/css/main.css */

/* Override default app styles for registration page */
[b-i5y3ncw3a6] .app-login {
    display: none;
}

/* ============================================
   BUTTON STYLES - Override any framework styles
   ============================================ */
.onboarding .btn[b-i5y3ncw3a6] {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    cursor: pointer;
    font-size: 1rem;
    font-weight: 600;
    font-family: "Hind Madurai", sans-serif;
    min-width: 210px;
    margin-bottom: 16px;
    text-decoration: none;
    border-radius: 9999px;
    transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.onboarding .btn .svgIcon[b-i5y3ncw3a6] {
    height: 15px;
    display: inline-block;
    position: relative;
    top: -2px;
}

/* Primary button - Black background, white text */
.onboarding .btn.btn-primary[b-i5y3ncw3a6] {
    background: #1D1D1B !important;
    color: #fff !important;
    border: 2px solid #1D1D1B !important;
}

.onboarding .btn.btn-primary .svgIcon svg path[b-i5y3ncw3a6] {
    stroke: #fff;
    transition: stroke 0.3s ease;
}

.onboarding .btn.btn-primary:hover[b-i5y3ncw3a6] {
    background: #fff !important;
    color: #1D1D1B !important;
}

.onboarding .btn.btn-primary:hover .svgIcon svg path[b-i5y3ncw3a6] {
    stroke: #1D1D1B;
}

.onboarding .btn.btn-primary:active[b-i5y3ncw3a6] {
    transform: scale(0.96);
}

/* Secondary button - White background, black text/border */
.onboarding .btn.btn-secondary[b-i5y3ncw3a6] {
    background: #fff !important;
    color: #1D1D1B !important;
    border: 2px solid #1D1D1B !important;
}

.onboarding .btn.btn-secondary .svgIcon svg path[b-i5y3ncw3a6] {
    stroke: #1D1D1B;
    transition: stroke 0.3s ease;
}

.onboarding .btn.btn-secondary:hover[b-i5y3ncw3a6] {
    background: #1D1D1B !important;
    color: #fff !important;
}

.onboarding .btn.btn-secondary:hover .svgIcon svg path[b-i5y3ncw3a6] {
    stroke: #fff;
}

.onboarding .btn.btn-secondary:active[b-i5y3ncw3a6] {
    transform: scale(0.96);
}

/* Registration progress overlay */
.registration-progress[b-i5y3ncw3a6] {
    text-align: center;
    padding: 40px 20px;
}

.registration-progress .progress-container[b-i5y3ncw3a6] {
    max-width: 400px;
    margin: 0 auto 30px;
}

.registration-progress .registration-message h1[b-i5y3ncw3a6] {
    margin-bottom: 16px;
}

.registration-progress .registration-message p[b-i5y3ncw3a6] {
    color: #666;
    margin-bottom: 24px;
}

.registration-progress .status-messages[b-i5y3ncw3a6] {
    margin-top: 20px;
}

.registration-progress .spinner-border[b-i5y3ncw3a6] {
    width: 1.5rem;
    height: 1.5rem;
    border-width: 0.2em;
    margin-right: 10px;
    display: inline-block;
    vertical-align: middle;
    border: 0.2em solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: spinner-border-b-i5y3ncw3a6 0.75s linear infinite;
}

@keyframes spinner-border-b-i5y3ncw3a6 {
    to {
        transform: rotate(360deg);
    }
}

.registration-progress .current-status[b-i5y3ncw3a6] {
    font-weight: 600;
    color: #1D1D1B;
}

.registration-progress .progress-step[b-i5y3ncw3a6] {
    font-size: 0.9rem;
    color: #666;
    margin-top: 8px;
}

/* Custom progress bar styling */
[b-i5y3ncw3a6] .custom-progress-bar {
    height: 8px;
    border-radius: 4px;
    background-color: #e9ecef;
}

[b-i5y3ncw3a6] .custom-progress-bar .dxbl-progressbar-indicator {
    background-color: #1D1D1B;
    border-radius: 4px;
}

/* Alert styles */
.alert[b-i5y3ncw3a6] {
    padding: 15px 20px;
    border-radius: 10px;
    margin-bottom: 20px;
    text-align: center;
}

.alert-danger[b-i5y3ncw3a6] {
    background-color: #f8d7da;
    border: 1px solid #f5c6cb;
    color: #721c24;
}

/* Form validation messages */
[b-i5y3ncw3a6] .validation-message {
    color: #dc3545;
    font-size: 0.85rem;
    margin-top: 5px;
    display: block;
    text-align: left;
    padding-left: 55px;
}

/* Back button styling */
.back[b-i5y3ncw3a6] {
    cursor: pointer;
    transition: transform 0.2s ease;
}

.back:hover[b-i5y3ncw3a6] {
    transform: translateX(-3px) translateY(-50%);
}

/* ============================================
   CUSTOM DROPDOWN - Country selector
   ============================================ */
.custom-dropdown-container[b-i5y3ncw3a6] {
    z-index: 100;
}

/* Ensure icon is visible above the dropdown */
.custom-dropdown-container .icon-holder[b-i5y3ncw3a6] {
    z-index: 2;
    pointer-events: none;
}

.custom-dropdown[b-i5y3ncw3a6] {
    padding: 10px 25px 10px 55px;
    background-color: #fff;
    border-radius: 9999px;
    border: 2px solid #ccc;
    font-size: 1rem;
    font-family: "Hind Madurai", sans-serif;
    box-shadow: 0 1px 9px rgba(0, 0, 0, 0.1);
    cursor: pointer;
    position: relative;
    user-select: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, border-radius 0.15s ease;
}

.custom-dropdown:hover[b-i5y3ncw3a6] {
    border-color: #1D1D1B;
}

.custom-dropdown.open[b-i5y3ncw3a6] {
    border-color: #1D1D1B;
    box-shadow: none;
    border-radius: 25px 25px 0 0;
}

.custom-dropdown-selected[b-i5y3ncw3a6] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #1D1D1B;
    min-height: 20px;
    line-height: 1.4;
}

.custom-dropdown-selected .dropdown-placeholder[b-i5y3ncw3a6] {
    color: #999 !important;
    font-size: 1rem;
    font-family: "Hind Madurai", sans-serif;
}

.custom-dropdown-selected .dropdown-value[b-i5y3ncw3a6] {
    color: #1D1D1B !important;
    font-size: 1rem;
    font-family: "Hind Madurai", sans-serif;
}

.custom-dropdown-selected .dropdown-arrow[b-i5y3ncw3a6] {
    display: flex;
    align-items: center;
    transition: transform 0.2s ease;
}

.custom-dropdown.open .dropdown-arrow[b-i5y3ncw3a6] {
    transform: rotate(180deg);
}

.custom-dropdown-options[b-i5y3ncw3a6] {
    position: absolute;
    top: calc(100% + 2px);
    left: -2px;
    right: -2px;
    background: #fff;
    border: 2px solid #1D1D1B;
    border-top: none;
    border-radius: 0 0 25px 25px;
    max-height: 250px;
    overflow-y: auto;
    overflow-x: hidden;
    z-index: 1000;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    margin-top: -2px;
}

.custom-dropdown-option[b-i5y3ncw3a6] {
    padding: 12px 25px;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
    color: #1D1D1B;
}

.custom-dropdown-option:first-child[b-i5y3ncw3a6] {
    border-top: none;
}

.custom-dropdown-option:hover[b-i5y3ncw3a6] {
    background-color: #f5f5f5;
}

.custom-dropdown-option.selected[b-i5y3ncw3a6] {
    background-color: #1D1D1B !important;
    color: #fff !important;
}

.custom-dropdown-option.selected:hover[b-i5y3ncw3a6] {
    background-color: #333 !important;
    color: #fff !important;
}

.custom-dropdown-option:last-child[b-i5y3ncw3a6] {
    border-radius: 0 0 23px 23px;
}

/* Scrollbar styling for dropdown */
.custom-dropdown-options[b-i5y3ncw3a6]::-webkit-scrollbar {
    width: 8px;
}

.custom-dropdown-options[b-i5y3ncw3a6]::-webkit-scrollbar-track {
    background: transparent;
}

.custom-dropdown-options[b-i5y3ncw3a6]::-webkit-scrollbar-thumb {
    background: #ccc;
    border-radius: 4px;
}

.custom-dropdown-options[b-i5y3ncw3a6]::-webkit-scrollbar-thumb:hover {
    background: #999;
}

/* Package selection */
.packages .package[b-i5y3ncw3a6] {
    cursor: pointer;
    transition: all 0.3s ease;
}

.packages .package:hover[b-i5y3ncw3a6] {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.packages .package.selected[b-i5y3ncw3a6] {
    background-color: #1D1D1B !important;
    color: #fff !important;
    border-color: #1D1D1B !important;
}

.packages .package.selected strong[b-i5y3ncw3a6],
.packages .package.selected .price[b-i5y3ncw3a6],
.packages .package.selected .duration[b-i5y3ncw3a6] {
    color: #fff !important;
}

/* Terms checkbox styling */
.terms-checkbox[b-i5y3ncw3a6] {
    margin-top: 20px;
    margin-bottom: 20px;
    text-align: center;
}

.terms-checkbox label[b-i5y3ncw3a6] {
    font-weight: 400;
}

.terms-checkbox a[b-i5y3ncw3a6] {
    color: #1D1D1B;
    text-decoration: underline;
}

.terms-checkbox a:hover[b-i5y3ncw3a6] {
    text-decoration: none;
}

/* Disabled button state */
.onboarding .btn:disabled[b-i5y3ncw3a6],
.onboarding .btn.btn-primary:disabled[b-i5y3ncw3a6] {
    opacity: 0.5;
    cursor: not-allowed;
    background: #1D1D1B !important;
    color: #fff !important;
}

.onboarding .btn:disabled:hover[b-i5y3ncw3a6] {
    background: #1D1D1B !important;
    color: #fff !important;
    transform: none;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .container.col[b-i5y3ncw3a6] {
        flex-direction: column !important;
    }

    .container .half[b-i5y3ncw3a6] {
        max-width: 100%;
    }

    .container .half:first-child[b-i5y3ncw3a6] {
        display: none;
    }

    .packages[b-i5y3ncw3a6] {
        flex-direction: column;
    }

    .packages .package[b-i5y3ncw3a6] {
        max-width: 100%;
        min-width: 100%;
    }
}

/* Fix for Blazor InputText components - override validation colors */
/* Keep default border color, don't show green for valid */
[b-i5y3ncw3a6] input.valid,
[b-i5y3ncw3a6] input.modified.valid,
[b-i5y3ncw3a6] select.valid,
[b-i5y3ncw3a6] select.modified.valid {
    border-color: #ccc !important;
}

/* Only show red border for invalid fields */
[b-i5y3ncw3a6] input.invalid,
[b-i5y3ncw3a6] input.modified.invalid,
[b-i5y3ncw3a6] select.invalid,
[b-i5y3ncw3a6] select.modified.invalid {
    border-color: #dc3545 !important;
}

/* Focus state - show dark border */
[b-i5y3ncw3a6] input:focus,
[b-i5y3ncw3a6] select:focus {
    border-color: #1D1D1B !important;
    box-shadow: 0 0 5px rgba(29, 29, 27, 0.3) !important;
}

/* Hide validation summary as we use inline validation */
[b-i5y3ncw3a6] .validation-summary-errors {
    display: none;
}

/* Gap utilities for older browsers */
.gap-50[b-i5y3ncw3a6] {
    gap: 50px !important;
}

/* Override container width on smaller screens */
@media (max-width: 1100px) {
    .w-max-1000[b-i5y3ncw3a6] {
        min-width: auto !important;
        max-width: 95% !important;
    }
}

/* Error message box in form */
.form-error-message[b-i5y3ncw3a6] {
    background-color: #f8d7da;
    border: 1px solid #f5c6cb;
    color: #721c24;
    padding: 10px 15px;
    border-radius: 10px;
    margin-bottom: 15px;
    font-size: 0.9rem;
}
