/* /Components/Layout/DemoBanner.razor.rz.scp.css */
.demo-banner[b-fb1avx6xl3] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 8px 20px;
    background: rgba(251, 191, 36, 0.07);
    border-bottom: 1px solid rgba(251, 191, 36, 0.18);
    font-size: 0.82rem;
    flex-wrap: wrap;
}

.demo-banner__text[b-fb1avx6xl3] {
    color: #c9a84c;
    letter-spacing: 0.01em;
}

.demo-banner__cta[b-fb1avx6xl3] {
    background: none;
    border: 1px solid rgba(56, 189, 248, 0.4);
    color: #38bdf8;
    padding: 4px 14px;
    border-radius: 5px;
    font-size: 0.8rem;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
    white-space: nowrap;
}

.demo-banner__cta:hover[b-fb1avx6xl3] {
    background: rgba(56, 189, 248, 0.1);
    border-color: #38bdf8;
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════════════════
   RESPONSIVE LAYOUT — THREE TIERS
   ≥1024px  : full sidebar (250px) with text labels, always visible
   641-1023px: icon-only sidebar (72px), always visible, no hamburger
   ≤640px   : no sidebar; hamburger button opens an off-canvas drawer
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Shared base ─────────────────────────────────────────────────────── */
.page[b-r17h79c6sb] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-r17h79c6sb] {
    flex: 1;
    min-width: 0;
}

.sidebar[b-r17h79c6sb] {
    background-image: linear-gradient(180deg, var(--brand-slate) 0%, var(--brand-slate-dark) 100%);
    overflow: hidden;
    transition: width 0.2s ease;
    display: flex;
    flex-direction: column;
}

.top-row[b-r17h79c6sb] {
    background-color: var(--ui-topbar-bg);
    border-bottom: 1px solid var(--ui-topbar-border);
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

    .top-row[b-r17h79c6sb]  a, .top-row[b-r17h79c6sb]  .btn-link {
        white-space: nowrap;
        margin-left: 1.5rem;
        text-decoration: none;
        color: var(--ui-text);
    }

    .top-row[b-r17h79c6sb]  a:hover, .top-row[b-r17h79c6sb]  .btn-link:hover {
        text-decoration: underline;
    }

    .top-row[b-r17h79c6sb]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

/* ── Theme toggle button ─────────────────────────────────────────────── */
.theme-btn[b-r17h79c6sb] {
    background: none;
    border: 1px solid var(--ui-border);
    border-radius: 6px;
    color: var(--ui-text);
    cursor: pointer;
    font-size: 1rem;
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 0.75rem;
    padding: 0;
    flex-shrink: 0;
    transition: background 0.15s;
}

.theme-btn:hover[b-r17h79c6sb] {
    background-color: var(--ui-hover-bg);
}

/* Icon content is in app.css (global) so the html[data-theme] parent selector isn't scoped away */

/* ── Collapse toggle (manual sidebar collapse; shown on desktop only) ── */
.nav-collapse-toggle[b-r17h79c6sb] {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.5rem;
    margin-right: auto;
    display: none; /* shown only on desktop via media query */
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    width: 2.25rem;
    height: 2.25rem;
    flex-shrink: 0;
}

    .nav-collapse-toggle:hover[b-r17h79c6sb] {
        background-color: var(--ui-hover-bg);
    }

/* ── Hamburger button (hidden on tablet/desktop) ─────────────────────── */
.sidebar-toggle[b-r17h79c6sb] {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.5rem;
    margin-right: auto;
    display: none; /* shown only on mobile via media query */
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    width: 2.25rem;
    height: 2.25rem;
    flex-shrink: 0;
}

    .sidebar-toggle:hover[b-r17h79c6sb] {
        background-color: var(--ui-hover-bg);
    }

.hamburger-icon[b-r17h79c6sb] {
    display: block;
    width: 20px;
    height: 2px;
    background-color: var(--ui-icon);
    position: relative;
}

    .hamburger-icon[b-r17h79c6sb]::before,
    .hamburger-icon[b-r17h79c6sb]::after {
        content: '';
        display: block;
        width: 20px;
        height: 2px;
        background-color: var(--ui-icon);
        position: absolute;
        left: 0;
    }

    .hamburger-icon[b-r17h79c6sb]::before { top: -6px; }
    .hamburger-icon[b-r17h79c6sb]::after  { top:  6px; }

/* ── Mobile backdrop (hidden by default) ─────────────────────────────── */
.nav-backdrop[b-r17h79c6sb] {
    display: none;
}

/* ══ TIER 1 — DESKTOP (≥1024px): full sidebar with labels ════════════ */
@media (min-width: 1024px) {
    .page[b-r17h79c6sb] {
        flex-direction: row;
    }

    .sidebar[b-r17h79c6sb] {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
        flex-shrink: 0;
    }

    /* Controls moved into the sidebar; the header bar is empty on desktop/tablet. */
    .top-row[b-r17h79c6sb] {
        display: none;
    }

    .top-row[b-r17h79c6sb], article[b-r17h79c6sb] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }

    /* Show the manual collapse toggle (only meaningful when the sidebar is docked
       with labels — at narrower tiers the sidebar is already icon-only or a drawer). */
    .nav-collapse-toggle[b-r17h79c6sb] {
        display: flex;
    }

    /* Collapsed: shrink the docked sidebar to icon-only width (labels hidden by
       NavMenu's own html.nav-collapsed rules). */
    html.nav-collapsed .sidebar[b-r17h79c6sb] {
        width: 72px;
    }
}

/* ══ TIER 2 — TABLET (641px–1023px): icon-only sidebar, no hamburger ═ */
@media (min-width: 641px) and (max-width: 1023px) {
    .page[b-r17h79c6sb] {
        flex-direction: row;
    }

    .sidebar[b-r17h79c6sb] {
        width: 72px;
        height: 100vh;
        position: sticky;
        top: 0;
        flex-shrink: 0;
    }

    /* Controls moved into the sidebar; the header bar is empty on desktop/tablet. */
    .top-row[b-r17h79c6sb] {
        display: none;
    }

    .top-row[b-r17h79c6sb], article[b-r17h79c6sb] {
        padding-left: 1.25rem !important;
        padding-right: 1rem !important;
    }
}

/* ══ TIER 3 — MOBILE (≤640px): no sidebar, hamburger opens a drawer ═ */
@media (max-width: 640px) {
    .sidebar-toggle[b-r17h79c6sb] {
        display: flex;
    }

    .top-row[b-r17h79c6sb] {
        justify-content: space-between;
    }

    .top-row[b-r17h79c6sb]  a, .top-row[b-r17h79c6sb]  .btn-link {
        margin-left: 0;
    }

    .content[b-r17h79c6sb] {
        padding-left: 0.75rem !important;
        padding-right: 0.75rem !important;
    }

    /* Off-canvas drawer — slides in from the left */
    .sidebar[b-r17h79c6sb] {
        position: fixed;
        top: 0;
        left: 0;
        height: 100%;
        width: 250px;
        z-index: 1100;
        transform: translateX(-100%);
        transition: transform 0.25s ease;
    }

    .mobile-nav-open .sidebar[b-r17h79c6sb] {
        transform: translateX(0);
    }

    /* Semi-transparent backdrop — tap to close */
    .mobile-nav-open .nav-backdrop[b-r17h79c6sb] {
        display: block;
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.45);
        z-index: 1099;
        cursor: pointer;
    }
}

/* ── Error UI ─────────────────────────────────────────────────────────── */
#blazor-error-ui[b-r17h79c6sb] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-r17h79c6sb] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-4fikmfwemj] {
    display: none; /* the checkbox-based toggler is no longer used */
}

.top-row[b-4fikmfwemj] {
    min-height: 3.5rem;
}

.navbar-brand[b-4fikmfwemj] {
    font-size: 1.1rem;
    color: rgba(255, 255, 255, 0.9) !important; /* sidebar is always dark */
    white-space: nowrap;
    overflow: hidden;
}

.brand-logo[b-4fikmfwemj] {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
}

.brand-text[b-4fikmfwemj] {
    transition: opacity 0.2s ease;
}

.bi[b-4fikmfwemj] {
    display: inline-block;
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.75rem;
    top: -1px;
    background-size: cover;
    flex-shrink: 0;
}

.bi-house-door-fill-nav-menu[b-4fikmfwemj] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.bi-play-circle-fill-nav-menu[b-4fikmfwemj] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM6.79 5.093A.5.5 0 0 0 6 5.5v5a.5.5 0 0 0 .79.407l3.5-2.5a.5.5 0 0 0 0-.814l-3.5-2.5z'/%3E%3C/svg%3E");
}

.bi-plus-square-fill-nav-menu[b-4fikmfwemj] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
}

.bi-list-nested-nav-menu[b-4fikmfwemj] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
}

.bi-check-circle-fill-nav-menu[b-4fikmfwemj] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z'/%3E%3C/svg%3E");
}

.bi-box-seam-fill-nav-menu[b-4fikmfwemj] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M8.186 1.113a.5.5 0 0 0-.372 0L1.846 3.5l2.404.961L10.404 2l-2.218-.887zm3.564 1.426L5.596 5 8 5.961 14.154 3.5l-2.404-.961zm3.25 1.7-6.5 2.6v7.922l6.5-2.34V4.24zM7.5 14.762V6.838L1 4.239v7.923l6.5 2.6zM7.443.184a1.5 1.5 0 0 1 1.114 0l7.129 2.852A.5.5 0 0 1 16 3.5v8.662a1 1 0 0 1-.629.928l-7.185 2.581a.5.5 0 0 1-.372 0L.63 13.09a1 1 0 0 1-.63-.928V3.5a.5.5 0 0 1 .314-.464L7.443.184z'/%3E%3C/svg%3E");
}

.bi-question-circle-fill-nav-menu[b-4fikmfwemj] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM5.496 6.033h.825c.138 0 .248-.113.266-.25.09-.656.54-1.134 1.342-1.134.686 0 1.314.343 1.314 1.168 0 .635-.374.927-.965 1.371-.673.489-1.206 1.06-1.168 1.987l.003.217a.25.25 0 0 0 .25.246h.811a.25.25 0 0 0 .25-.25v-.105c0-.718.273-.927 1.01-1.486.609-.463 1.244-.977 1.244-2.056 0-1.511-1.276-2.241-2.673-2.241-1.267 0-2.655.59-2.75 2.286a.237.237 0 0 0 .241.247zm2.325 6.443c.61 0 1.029-.394 1.029-.927 0-.552-.42-.94-1.029-.94-.584 0-1.009.388-1.009.94 0 .533.425.927 1.01.927z'/%3E%3C/svg%3E");
}

.bi-bar-chart-fill-nav-menu[b-4fikmfwemj] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M1 11a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1v-3zm5-4a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V7zm5-5a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1V2z'/%3E%3C/svg%3E");
}

.bi-gear-fill-nav-menu[b-4fikmfwemj] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M9.405 1.05c-.413-1.4-2.397-1.4-2.81 0l-.1.34a1.464 1.464 0 0 1-2.105.872l-.31-.17c-1.283-.698-2.686.705-1.987 1.987l.169.311c.446.82.023 1.841-.872 2.105l-.34.1c-1.4.413-1.4 2.397 0 2.81l.34.1a1.464 1.464 0 0 1 .872 2.105l-.17.31c-.698 1.283.705 2.686 1.987 1.987l.311-.169a1.464 1.464 0 0 1 2.105.872l.1.34c.413 1.4 2.397 1.4 2.81 0l.1-.34a1.464 1.464 0 0 1 2.105-.872l.31.17c1.283.698 2.686-.705 1.987-1.987l-.169-.311a1.464 1.464 0 0 1 .872-2.105l.34-.1c1.4-.413 1.4-2.397 0-2.81l-.34-.1a1.464 1.464 0 0 1-.872-2.105l.17-.31c.698-1.283-.705-2.686-1.987-1.987l-.311.169a1.464 1.464 0 0 1-2.105-.872l-.1-.34zM8 10.93a2.929 2.929 0 1 1 0-5.86 2.929 2.929 0 0 1 0 5.86z'/%3E%3C/svg%3E");
}

.nav-item[b-4fikmfwemj] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

    .nav-item:first-of-type[b-4fikmfwemj] {
        padding-top: 1rem;
    }

    .nav-item:last-of-type[b-4fikmfwemj] {
        padding-bottom: 1rem;
    }

    .nav-item[b-4fikmfwemj]  .nav-link {
        color: #d7d7d7;
        background: none;
        border: none;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
        width: 100%;
        white-space: nowrap;
        overflow: hidden;
    }

.nav-item[b-4fikmfwemj]  a.active {
    background-color: var(--brand-red);
    color: white;
}

.nav-item[b-4fikmfwemj]  .nav-link:hover {
    background-color: var(--brand-slate-mid);
    color: white;
}

.nav-scrollable[b-4fikmfwemj] {
    display: block;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

/* ── Bottom action bar (theme toggle) — mirrors the dashboard side-nav ──── */
.nav-actions[b-4fikmfwemj] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    flex-shrink: 0;
}

.nav-actions .theme-btn[b-4fikmfwemj] {
    background: none;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 6px;
    color: rgba(255, 255, 255, 0.85);
    cursor: pointer;
    font-size: 1rem;
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex-shrink: 0;
    transition: background 0.15s ease, border-color 0.15s ease;
}

    .nav-actions .theme-btn:hover[b-4fikmfwemj] {
        background: rgba(255, 255, 255, 0.08);
        border-color: rgba(255, 255, 255, 0.5);
    }

.nav-actions .nav-collapse-btn[b-4fikmfwemj] {
    background: none;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 6px;
    color: rgba(255, 255, 255, 0.85);
    cursor: pointer;
    width: 2rem;
    height: 2rem;
    display: none; /* manual collapse only matters on the desktop docked sidebar */
    align-items: center;
    justify-content: center;
    padding: 0;
    flex-shrink: 0;
    transition: background 0.15s ease, border-color 0.15s ease;
}

    .nav-actions .nav-collapse-btn:hover[b-4fikmfwemj] {
        background: rgba(255, 255, 255, 0.08);
        border-color: rgba(255, 255, 255, 0.5);
    }

.nav-collapse-chevron[b-4fikmfwemj]::before { content: "«"; font-size: 1rem; line-height: 1; }
html.nav-collapsed .nav-collapse-chevron[b-4fikmfwemj]::before { content: "»"; }

/* ══ TIER 1 — DESKTOP (≥1024px): full labels visible ════════════════ */
@media (min-width: 1024px) {
    .brand-text[b-4fikmfwemj] {
        opacity: 1;
        width: auto;
    }

    .nav-label[b-4fikmfwemj] {
        opacity: 1;
        width: auto;
    }

    /* Manual collapse → icon-only (mirrors the tablet tier above) */
    html.nav-collapsed .brand-text[b-4fikmfwemj],
    html.nav-collapsed .nav-label[b-4fikmfwemj] {
        opacity: 0;
        width: 0;
        overflow: hidden;
        pointer-events: none;
    }

    html.nav-collapsed .nav-item[b-4fikmfwemj]  .nav-link {
        justify-content: center;
        padding-left: 0;
        padding-right: 0;
    }

    html.nav-collapsed .bi[b-4fikmfwemj] {
        margin-right: 0;
    }

    html.nav-collapsed .navbar-brand[b-4fikmfwemj] {
        justify-content: center;
    }
}

/* ══ TIER 2 — TABLET (641px–1023px): icon-only, no labels ═══════════ */
@media (min-width: 641px) and (max-width: 1023px) {
    .brand-text[b-4fikmfwemj] {
        opacity: 0;
        width: 0;
        overflow: hidden;
        pointer-events: none;
    }

    .nav-label[b-4fikmfwemj] {
        opacity: 0;
        width: 0;
        overflow: hidden;
        pointer-events: none;
    }

    /* Centre the icon when there's no label */
    .nav-item[b-4fikmfwemj]  .nav-link {
        justify-content: center;
        padding-left: 0;
        padding-right: 0;
    }

    .bi[b-4fikmfwemj] {
        margin-right: 0;
    }

    /* Centre the brand logo */
    .navbar-brand[b-4fikmfwemj] {
        justify-content: center;
    }
}

/* ══ TIER 3 — MOBILE (≤640px): drawer shows full labels ═════════════ */
@media (max-width: 640px) {
    .brand-text[b-4fikmfwemj] {
        opacity: 1;
        width: auto;
    }

    .nav-label[b-4fikmfwemj] {
        opacity: 1;
        width: auto;
    }
}

/* ── Icon-only rail: keep the 36px brand logo centred and uncut (the brand
      bar's padding otherwise squeezes it inside the 72px width and overflow:hidden
      clips it). Also centre the bottom action bar. ─────────────────────────── */
@media (min-width: 641px) and (max-width: 1023px) {
    .top-row[b-4fikmfwemj] { padding-left: 0 !important; padding-right: 0 !important; }
    .container-fluid[b-4fikmfwemj] { padding-left: 0; padding-right: 0; }
    .navbar-brand[b-4fikmfwemj] { width: 100%; justify-content: center; gap: 0; margin: 0; overflow: visible; }
    /* The logo art is left-heavy (figure ~42% from left, baton to the upper-right),
       so nudge it right to optically centre the figure over the icon column. */
    .brand-logo[b-4fikmfwemj] { transform: translateX(10%); }
    .nav-actions[b-4fikmfwemj] { flex-direction: column; align-items: center; gap: 0.5rem; padding-left: 0; padding-right: 0; }
}

@media (min-width: 1024px) {
    /* Collapse toggle is shown whenever the sidebar is docked with labels (desktop). */
    .nav-actions .nav-collapse-btn[b-4fikmfwemj] { display: inline-flex; }
    html.nav-collapsed .top-row[b-4fikmfwemj] { padding-left: 0 !important; padding-right: 0 !important; }
    html.nav-collapsed .container-fluid[b-4fikmfwemj] { padding-left: 0; padding-right: 0; }
    html.nav-collapsed .navbar-brand[b-4fikmfwemj] { width: 100%; justify-content: center; gap: 0; margin: 0; overflow: visible; }
    html.nav-collapsed .brand-logo[b-4fikmfwemj] { transform: translateX(10%); }
    html.nav-collapsed .nav-actions[b-4fikmfwemj] { flex-direction: column; align-items: center; gap: 0.5rem; padding-left: 0; padding-right: 0; }
}

/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-q0f1d25xq5],
.components-reconnect-repeated-attempt-visible[b-q0f1d25xq5],
.components-reconnect-failed-visible[b-q0f1d25xq5],
.components-pause-visible[b-q0f1d25xq5],
.components-resume-failed-visible[b-q0f1d25xq5],
.components-rejoining-animation[b-q0f1d25xq5] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-q0f1d25xq5],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-q0f1d25xq5],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-q0f1d25xq5],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-q0f1d25xq5],
#components-reconnect-modal.components-reconnect-retrying[b-q0f1d25xq5],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-q0f1d25xq5],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-q0f1d25xq5],
#components-reconnect-modal.components-reconnect-failed[b-q0f1d25xq5],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-q0f1d25xq5] {
    display: block;
}


#components-reconnect-modal[b-q0f1d25xq5] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-q0f1d25xq5 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-q0f1d25xq5 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-q0f1d25xq5 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-q0f1d25xq5]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-q0f1d25xq5 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-q0f1d25xq5 {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-q0f1d25xq5 {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-q0f1d25xq5 {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-q0f1d25xq5] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-q0f1d25xq5] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-q0f1d25xq5] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-q0f1d25xq5] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-q0f1d25xq5] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-q0f1d25xq5] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-q0f1d25xq5] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-q0f1d25xq5 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-q0f1d25xq5] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-q0f1d25xq5 {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/DocTree.razor.rz.scp.css */
.tree-dir-item[b-t254f8r3zg],
.tree-file-item[b-t254f8r3zg] {
    list-style: none;
    margin: 0;
    padding: 0;
}

details[b-t254f8r3zg] {
    margin: 0;
}

.tree-dir-label[b-t254f8r3zg] {
    display: flex;
    align-items: center;
    padding: 0.3rem 0.75rem;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--ui-text-muted);
    cursor: pointer;
    user-select: none;
    list-style: none;
    gap: 0.4rem;
}

.tree-dir-label[b-t254f8r3zg]::-webkit-details-marker,
.tree-dir-label[b-t254f8r3zg]::marker {
    display: none;
}

.tree-dir-label[b-t254f8r3zg]::before {
    content: "▶";
    font-size: 0.6rem;
    transition: transform 0.15s;
    flex-shrink: 0;
    opacity: 0.6;
}

details[open] > .tree-dir-label[b-t254f8r3zg]::before {
    transform: rotate(90deg);
}

.tree-dir-label:hover[b-t254f8r3zg] {
    color: var(--ui-text);
}

.tree-children[b-t254f8r3zg] {
    list-style: none;
    margin: 0;
    padding: 0 0 0 0.75rem;
}

.tree-file-link[b-t254f8r3zg] {
    display: block;
    padding: 0.28rem 0.75rem;
    font-size: 0.875rem;
    color: var(--ui-text);
    text-decoration: none;
    border-left: 2px solid transparent;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tree-file-link:hover[b-t254f8r3zg] {
    background-color: var(--ui-hover-bg);
    color: var(--ui-text);
    text-decoration: none;
}

.tree-file-link.active[b-t254f8r3zg] {
    background-color: rgba(96, 165, 250, 0.12);
    border-left-color: #60a5fa;
    color: #60a5fa;
    font-weight: 500;
}
/* /Components/Pages/Help.razor.rz.scp.css */
.help-page[b-0t7r6bd2po] {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 0;
    min-height: calc(100vh - 60px);
    align-items: start;
}

/* ── Sidebar ─────────────────────────────────────────────────────────────── */

.help-sidebar[b-0t7r6bd2po] {
    background: var(--ui-surface);
    border-right: 1px solid var(--ui-border);
    padding: 1rem 0;
    position: sticky;
    top: 0;
    max-height: 100vh;
    overflow-y: auto;
}

.sidebar-title[b-0t7r6bd2po] {
    display: block;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ui-text-muted);
    padding: 0 0.75rem 0.75rem;
    border-bottom: 1px solid var(--ui-border);
    margin-bottom: 0.5rem;
}

.sidebar-empty[b-0t7r6bd2po] {
    padding: 1rem 0.75rem;
    color: var(--ui-text-muted);
    font-size: 0.875rem;
}

.tree-root[b-0t7r6bd2po] {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* ── Content area ────────────────────────────────────────────────────────── */

.help-content[b-0t7r6bd2po] {
    padding: 2rem 2.5rem;
    max-width: 900px;
    min-width: 0;
}

.loading-hint[b-0t7r6bd2po] {
    color: var(--ui-text-muted);
    font-style: italic;
    margin-top: 2rem;
}

.help-not-found[b-0t7r6bd2po] {
    color: #f87171;
}

/* ── Markdown body ───────────────────────────────────────────────────────── */

.markdown-body h1[b-0t7r6bd2po] {
    font-size: 1.75rem;
    font-weight: 700;
    border-bottom: 2px solid var(--ui-border);
    padding-bottom: 0.4rem;
    margin-bottom: 1.25rem;
}

.markdown-body h2[b-0t7r6bd2po] {
    font-size: 1.3rem;
    font-weight: 600;
    margin-top: 2rem;
    margin-bottom: 0.75rem;
    border-bottom: 1px solid var(--ui-border);
    padding-bottom: 0.3rem;
}

.markdown-body h3[b-0t7r6bd2po] {
    font-size: 1.05rem;
    font-weight: 600;
    margin-top: 1.5rem;
    margin-bottom: 0.5rem;
}

.markdown-body p[b-0t7r6bd2po] {
    line-height: 1.7;
    margin-bottom: 1rem;
}

.markdown-body a[b-0t7r6bd2po] { color: var(--brand-red); }

.markdown-body table[b-0t7r6bd2po] {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 1.25rem;
    font-size: 0.9rem;
}

.markdown-body th[b-0t7r6bd2po] {
    background: var(--ui-surface-2);
    border: 1px solid var(--ui-border);
    padding: 0.5rem 0.75rem;
    text-align: left;
    font-weight: 600;
}

.markdown-body td[b-0t7r6bd2po] {
    border: 1px solid var(--ui-border);
    padding: 0.45rem 0.75rem;
    vertical-align: top;
}

.markdown-body tr:nth-child(even) td[b-0t7r6bd2po] { background: var(--ui-surface-2); }

.markdown-body code[b-0t7r6bd2po] {
    background: var(--ui-surface-2);
    border: 1px solid var(--ui-border);
    border-radius: 3px;
    padding: 0.1em 0.4em;
    font-size: 0.88em;
    font-family: 'Cascadia Code', 'Consolas', monospace;
}

.markdown-body pre[b-0t7r6bd2po] {
    background: #0d1117;
    color: #c9d1d9;
    border-radius: 6px;
    padding: 1rem 1.25rem;
    overflow-x: auto;
    margin-bottom: 1.25rem;
    font-size: 0.875rem;
    line-height: 1.6;
}

.markdown-body pre code[b-0t7r6bd2po] {
    background: transparent;
    border: none;
    padding: 0;
    font-size: inherit;
    color: inherit;
}

.markdown-body ul[b-0t7r6bd2po], .markdown-body ol[b-0t7r6bd2po] {
    padding-left: 1.5rem;
    margin-bottom: 1rem;
}

.markdown-body li[b-0t7r6bd2po] { line-height: 1.7; margin-bottom: 0.2rem; }

.markdown-body blockquote[b-0t7r6bd2po] {
    border-left: 4px solid var(--brand-red);
    background: var(--ui-surface-2);
    padding: 0.6rem 1rem;
    margin: 1rem 0;
    border-radius: 0 4px 4px 0;
}

.markdown-body blockquote p[b-0t7r6bd2po] { margin: 0; }

.markdown-body hr[b-0t7r6bd2po] {
    border: none;
    border-top: 1px solid var(--ui-border);
    margin: 2rem 0;
}

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

@media (max-width: 768px) {
    .help-page[b-0t7r6bd2po] { grid-template-columns: 1fr; }

    .help-sidebar[b-0t7r6bd2po] {
        position: static;
        max-height: 40vh;
        border-right: none;
        border-bottom: 1px solid var(--ui-border);
    }

    .help-content[b-0t7r6bd2po] { padding: 1.25rem 1rem; }
}
/* /Components/Pages/Home.razor.rz.scp.css */
.home-page[b-fah8ce4vjl] {
    padding: 2rem;
    max-width: 1200px;
    margin: 0 auto;
}

/* ── Header ───────────────────────────────────────────────────────────── */
.home-header[b-fah8ce4vjl] {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-bottom: 2.5rem;
}

.home-logo[b-fah8ce4vjl] {
    height: 72px;
    width: auto;
    object-fit: contain;
}

.home-header h1[b-fah8ce4vjl] {
    margin: 0 0 0.25rem 0;
    color: var(--brand-slate);
}

.lead[b-fah8ce4vjl] {
    font-size: 1.1rem;
    color: #6c757d;
    margin: 0;
}

/* ── Section titles ───────────────────────────────────────────────────── */
.section-title[b-fah8ce4vjl] {
    font-size: 1rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #6c757d;
    margin: 2rem 0 0.75rem 0;
    border-bottom: 1px solid #e9ecef;
    padding-bottom: 0.4rem;
}

/* ── Tile grid ────────────────────────────────────────────────────────── */
.tile-grid[b-fah8ce4vjl] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1rem;
    margin-bottom: 0.5rem;
}

/* ── Individual tile ──────────────────────────────────────────────────── */
.tile[b-fah8ce4vjl] {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 10px;
    padding: 1.1rem 1.25rem;
    text-decoration: none;
    color: inherit;
    transition: transform 0.15s, box-shadow 0.15s, border-color 0.15s;
    cursor: pointer;
}

.tile:hover[b-fah8ce4vjl] {
    transform: translateY(-3px);
    box-shadow: 0 6px 18px rgba(176, 23, 30, 0.12);
    border-color: var(--brand-red);
    text-decoration: none;
    color: inherit;
}

.tile-external:hover[b-fah8ce4vjl] {
    box-shadow: 0 6px 18px rgba(33, 37, 41, 0.12);
    border-color: #495057;
}

.tile-api:hover[b-fah8ce4vjl] {
    box-shadow: 0 6px 18px rgba(13, 110, 253, 0.12);
    border-color: #0d6efd;
}

.tile-icon[b-fah8ce4vjl] {
    height: 48px;
    width: 48px;
    object-fit: contain;
    flex-shrink: 0;
}

.tile-emoji[b-fah8ce4vjl] {
    font-size: 2.25rem;
    line-height: 1;
    flex-shrink: 0;
    width: 48px;
    text-align: center;
}

.tile-body[b-fah8ce4vjl] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.tile-title[b-fah8ce4vjl] {
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--brand-slate);
}

.tile-desc[b-fah8ce4vjl] {
    font-size: 0.8rem;
    color: #6c757d;
    line-height: 1.35;
}

.tile-url[b-fah8ce4vjl] {
    font-size: 0.72rem;
    color: #0d6efd;
    margin-top: 0.15rem;
}

.ext-badge[b-fah8ce4vjl] {
    font-size: 0.7rem;
    color: #6c757d;
    font-weight: 400;
}

/* ── MCP connect card ─────────────────────────────────────────────────── */
.mcp-connect-card[b-fah8ce4vjl] {
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 10px;
    padding: 1.25rem 1.5rem;
    margin-bottom: 1rem;
}

.mcp-connect-header[b-fah8ce4vjl] {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1rem;
}

.mcp-icon[b-fah8ce4vjl] {
    font-size: 2rem;
    line-height: 1;
    flex-shrink: 0;
}

.mcp-desc[b-fah8ce4vjl] {
    margin: 0.25rem 0 0 0;
    font-size: 0.9rem;
    color: #6c757d;
}

.mcp-command-row[b-fah8ce4vjl] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: #212529;
    border-radius: 6px;
    padding: 0.6rem 1rem;
}

.mcp-command[b-fah8ce4vjl] {
    flex: 1;
    color: #a8ff78;
    font-family: 'Consolas', 'Menlo', monospace;
    font-size: 0.9rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    background: transparent;
}

.mcp-copy-btn[b-fah8ce4vjl] {
    flex-shrink: 0;
    background: #343a40;
    color: #ced4da;
    border: 1px solid #495057;
    border-radius: 4px;
    padding: 0.25rem 0.75rem;
    font-size: 0.8rem;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
    white-space: nowrap;
}

.mcp-copy-btn:hover[b-fah8ce4vjl] {
    background: #495057;
    color: #fff;
}

.mcp-copy-btn--copied[b-fah8ce4vjl] {
    background: #198754;
    border-color: #198754;
    color: #fff;
}

.mcp-meta[b-fah8ce4vjl] {
    margin-top: 0.6rem;
    font-size: 0.82rem;
    color: #6c757d;
}

.mcp-meta a[b-fah8ce4vjl] {
    color: #0d6efd;
    text-decoration: none;
}

.mcp-meta a:hover[b-fah8ce4vjl] {
    text-decoration: underline;
}

/* ── MCP tabs ─────────────────────────────────────────────────────────── */
.mcp-tabs[b-fah8ce4vjl] {
    display: flex;
    border-bottom: 2px solid #dee2e6;
    margin: 0.5rem 0 1.25rem 0;
    gap: 0;
}

.mcp-tab[b-fah8ce4vjl] {
    background: none;
    border: none;
    border-bottom: 3px solid transparent;
    padding: 0.5rem 1.25rem;
    font-size: 0.88rem;
    font-weight: 500;
    cursor: pointer;
    color: #6c757d;
    margin-bottom: -2px;
    transition: color 0.15s, border-color 0.15s;
    white-space: nowrap;
}

.mcp-tab:hover[b-fah8ce4vjl] {
    color: var(--brand-slate);
}

.mcp-tab--active[b-fah8ce4vjl] {
    color: var(--brand-red);
    border-bottom-color: var(--brand-red);
    font-weight: 600;
}

/* ── MCP tab content helpers ──────────────────────────────────────────── */
.mcp-hint[b-fah8ce4vjl] {
    margin: 0 0 0.6rem 0;
    font-size: 0.88rem;
    color: #6c757d;
}

.mcp-client-section[b-fah8ce4vjl] {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid #e9ecef;
}

.mcp-client-section:first-child[b-fah8ce4vjl] {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}

.mcp-client-title[b-fah8ce4vjl] {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--brand-slate);
    margin: 0 0 0.6rem 0;
}

.mcp-option-label[b-fah8ce4vjl] {
    font-size: 0.75rem;
    font-weight: 700;
    color: #6c757d;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin: 1rem 0 0.4rem 0;
}

.mcp-option-label:first-child[b-fah8ce4vjl] {
    margin-top: 0;
}

.mcp-steps[b-fah8ce4vjl] {
    margin: 0 0 0.5rem 0;
    padding-left: 1.25rem;
    font-size: 0.88rem;
    color: #495057;
    line-height: 1.6;
}

.mcp-steps li[b-fah8ce4vjl] {
    margin-bottom: 0.2rem;
}

.mcp-steps--spaced li[b-fah8ce4vjl] {
    margin-bottom: 0.5rem;
}

.mcp-steps kbd[b-fah8ce4vjl] {
    display: inline-block;
    padding: 0.1rem 0.35rem;
    font-size: 0.8rem;
    font-family: 'Consolas', 'Menlo', monospace;
    background: #f1f3f5;
    border: 1px solid #ced4da;
    border-bottom-width: 2px;
    border-radius: 3px;
    color: #495057;
}

/* ── Multi-line code block variant ────────────────────────────────────── */
.mcp-command-row--pre[b-fah8ce4vjl] {
    align-items: flex-start;
}

.mcp-command--pre[b-fah8ce4vjl] {
    white-space: pre;
    overflow-x: auto;
}

/* ── M365 notice box ──────────────────────────────────────────────────── */
.mcp-notice[b-fah8ce4vjl] {
    display: flex;
    gap: 0.75rem;
    background: #fff3cd;
    border: 1px solid #ffc107;
    border-radius: 6px;
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
    font-size: 0.88rem;
    color: #664d03;
    line-height: 1.5;
}

.mcp-notice-icon[b-fah8ce4vjl] {
    font-size: 1rem;
    flex-shrink: 0;
    line-height: 1.5;
}

/* ── Responsive ─────────────────────────────────────────────────────── */
@media (max-width: 640.98px) {
    .home-page[b-fah8ce4vjl] {
        padding: 1rem;
    }

    .home-header[b-fah8ce4vjl] {
        gap: 0.75rem;
        margin-bottom: 1.5rem;
    }

    .home-logo[b-fah8ce4vjl] {
        height: 48px;
    }

    .home-header h1[b-fah8ce4vjl] {
        font-size: 1.4rem;
    }

    .tile-grid[b-fah8ce4vjl] {
        grid-template-columns: 1fr;
    }

    .mcp-command-row[b-fah8ce4vjl] {
        flex-wrap: wrap;
    }

    .mcp-command[b-fah8ce4vjl] {
        white-space: normal;
        word-break: break-all;
    }
}
/* /Components/Pages/NewPackage.razor.rz.scp.css */
.new-package-page[b-i8udojc9h8] {
    padding: 1.5rem;
    max-width: 800px;
}

/* ── Header ───────────────────────────────────────────────────────────────── */

.page-header[b-i8udojc9h8] {
    margin-bottom: 1.5rem;
}

.back-btn[b-i8udojc9h8] {
    margin-bottom: 0.75rem;
    display: inline-block;
}

.new-package-page h1[b-i8udojc9h8] {
    font-size: 1.6rem;
    margin-bottom: 0.25rem;
}

.page-subtitle[b-i8udojc9h8] {
    color: #6c757d;
    font-size: 0.9rem;
    margin: 0;
}

/* ── Form card ────────────────────────────────────────────────────────────── */

.form-card[b-i8udojc9h8] {
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    padding: 1.5rem;
}

/* ── Form rows ────────────────────────────────────────────────────────────── */

.form-row[b-i8udojc9h8] {
    margin-bottom: 1rem;
}

.form-row.two-col[b-i8udojc9h8] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.form-label[b-i8udojc9h8] {
    display: block;
    font-size: 0.875rem;
    font-weight: 600;
    margin-bottom: 0.3rem;
    color: #212529;
}

.form-label .req[b-i8udojc9h8] { color: #dc3545; }

.form-badge[b-i8udojc9h8] {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 500;
    padding: 0.1rem 0.45rem;
    border-radius: 3px;
    margin-left: 0.4rem;
    vertical-align: middle;
}

.badge-auto[b-i8udojc9h8] {
    background: #d1ecf1;
    color: #0c5460;
}

.badge-custom[b-i8udojc9h8] {
    background: #fff3cd;
    color: #856404;
}

.form-hint[b-i8udojc9h8] {
    display: block;
    font-size: 0.78rem;
    color: #6c757d;
    margin-top: 0.25rem;
}

.form-error[b-i8udojc9h8] {
    display: block;
    font-size: 0.78rem;
    color: #dc3545;
    margin-top: 0.2rem;
}

/* ── Form actions ─────────────────────────────────────────────────────────── */

.form-actions[b-i8udojc9h8] {
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
    padding-top: 1rem;
    border-top: 1px solid #dee2e6;
    margin-top: 1rem;
}

/* ── Progress log ─────────────────────────────────────────────────────────── */

.progress-log[b-i8udojc9h8] {
    border: 1px solid #dee2e6;
    border-radius: 6px;
    overflow: hidden;
    margin-bottom: 1rem;
}

.progress-log-header[b-i8udojc9h8] {
    padding: 0.4rem 0.8rem;
    background: #343a40;
    color: #f8f9fa;
    font-size: 0.85rem;
    font-weight: 600;
}

.progress-log-body[b-i8udojc9h8] {
    background: #1e1e1e;
    color: #d4d4d4;
    font-family: 'Consolas', 'Courier New', monospace;
    font-size: 0.78rem;
    padding: 0.6rem 0.8rem;
    max-height: 200px;
    overflow-y: auto;
}

.log-line[b-i8udojc9h8]  { line-height: 1.5; }
.log-error[b-i8udojc9h8] { color: #f48771; }

/* ── Success panel ────────────────────────────────────────────────────────── */

.success-panel[b-i8udojc9h8] {
    background: #f0fdf4;
    border: 1px solid #86efac;
    border-radius: 8px;
    padding: 2rem;
    text-align: center;
}

.success-icon[b-i8udojc9h8] {
    font-size: 3rem;
    color: #16a34a;
    line-height: 1;
    margin-bottom: 0.75rem;
}

.success-panel h2[b-i8udojc9h8] {
    font-size: 1.4rem;
    color: #14532d;
    margin-bottom: 0.5rem;
}

.clone-section[b-i8udojc9h8] {
    background: #fff;
    border: 1px solid #bbf7d0;
    border-radius: 6px;
    padding: 1rem;
    margin: 1rem auto;
    max-width: 600px;
    text-align: left;
}

.clone-label[b-i8udojc9h8] {
    display: block;
    font-size: 0.85rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
    color: #14532d;
}

.clone-row[b-i8udojc9h8] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.clone-url[b-i8udojc9h8] {
    flex: 1;
    display: block;
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 4px;
    padding: 0.4rem 0.6rem;
    font-size: 0.82rem;
    word-break: break-all;
}

.clone-hint[b-i8udojc9h8] {
    font-size: 0.8rem;
    color: #6c757d;
    margin: 0.5rem 0 0;
}

.success-actions[b-i8udojc9h8] {
    display: flex;
    gap: 0.75rem;
    justify-content: center;
    margin-top: 1.5rem;
}

@media (max-width: 600px) {
    .form-row.two-col[b-i8udojc9h8] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/PackageBrowser.razor.rz.scp.css */
.package-browser[b-xvtorospl0] {
    padding: 1.5rem;
    max-width: 1400px;
}

.package-browser h1[b-xvtorospl0] {
    margin-bottom: 1rem;
    font-size: 1.6rem;
    color: var(--ui-text);
}

/* ── Toolbar ─────────────────────────────────────────────────────────────── */

.toolbar[b-xvtorospl0] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.search-input[b-xvtorospl0] {
    max-width: 340px;
    min-width: 200px;
}

.error-banner[b-xvtorospl0] {
    color: #ef4444;
    font-size: 0.875rem;
}

/* ── Connection status ───────────────────────────────────────────────────── */

.connection-status[b-xvtorospl0] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8rem;
    margin-bottom: 1rem;
    padding: 0.3rem 0.6rem;
    border-radius: 4px;
    width: fit-content;
}

.connection-status.connected[b-xvtorospl0]    { background: rgba(25,135,84,0.15); color: #22c55e; }
.connection-status.disconnected[b-xvtorospl0] { background: rgba(220,53,69,0.15);  color: #ef4444; }

.status-dot[b-xvtorospl0] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
}

/* ── Package table ───────────────────────────────────────────────────────── */

.package-table[b-xvtorospl0] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
    margin-bottom: 1.5rem;
}

.package-table thead th[b-xvtorospl0] {
    text-align: left;
    padding: 0.6rem 0.7rem;
    background: var(--ui-surface-2);
    border-bottom: 2px solid var(--ui-border);
    font-weight: 600;
    color: var(--ui-text-muted);
    white-space: nowrap;
}

.package-table td[b-xvtorospl0] {
    padding: 0.55rem 0.7rem;
    border-bottom: 1px solid var(--ui-border);
    vertical-align: middle;
    color: var(--ui-text);
    background-color: transparent;
}

/* ── Group section headers ───────────────────────────────────────────────── */

.group-header-row[b-xvtorospl0] { cursor: pointer; user-select: none; }

.group-header-row:hover .group-header-cell[b-xvtorospl0] { background: var(--ui-hover-bg); }

.group-header-cell[b-xvtorospl0] {
    padding: 0.9rem 0.7rem 0.4rem !important;
    border-bottom: 2px solid var(--ui-border) !important;
    font-size: 0.82rem;
}

.pkg-group:first-child .group-header-cell[b-xvtorospl0] { padding-top: 0.4rem !important; }

.group-chevron[b-xvtorospl0] {
    display: inline-block;
    font-size: 1rem;
    line-height: 1;
    transition: transform 0.15s ease;
    color: var(--ui-text-muted);
    margin-right: 0.35rem;
    vertical-align: middle;
}
.group-chevron.expanded[b-xvtorospl0] { transform: rotate(90deg); }

.group-name[b-xvtorospl0] {
    font-weight: 700;
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    vertical-align: middle;
}

.group-name.lifecycle-released[b-xvtorospl0]    { color: #22c55e; }
.group-name.lifecycle-evaluation[b-xvtorospl0]  { color: #f59e0b; }
.group-name.lifecycle-notreleased[b-xvtorospl0] { color: #6366f1; }
.group-name.lifecycle-obsolete[b-xvtorospl0]    { color: #9ca3af; }

.group-meta[b-xvtorospl0] {
    margin-left: 0.75rem;
    display: inline-flex;
    gap: 0.5rem;
    align-items: center;
    vertical-align: middle;
}

.group-installed[b-xvtorospl0] {
    background: rgba(34,197,94,0.12);
    color: #22c55e;
    border: 1px solid rgba(34,197,94,0.3);
    border-radius: 10px;
    padding: 0.05rem 0.5rem;
    font-size: 0.72rem;
    font-weight: 600;
}

.group-count[b-xvtorospl0] {
    color: var(--ui-text-muted);
    font-size: 0.78rem;
}

/* ── Package rows ────────────────────────────────────────────────────────── */

.pkg-row[b-xvtorospl0] { cursor: pointer; user-select: none; }
.pkg-row:hover td[b-xvtorospl0] { background: var(--ui-hover-bg); }
.row-installed td[b-xvtorospl0] { background: rgba(25,135,84,0.05); }
.row-installed.pkg-row:hover td[b-xvtorospl0] { background: rgba(25,135,84,0.10); }
.row-obsolete td[b-xvtorospl0] { opacity: 0.55; text-decoration: line-through; }
.row-checking td[b-xvtorospl0] { background: rgba(13,202,240,0.06); }

@keyframes checking-pulse-b-xvtorospl0 {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.5; }
}
.row-checking td[b-xvtorospl0] { animation: checking-pulse-b-xvtorospl0 1.6s ease-in-out infinite; }

/* ── Expand toggle ───────────────────────────────────────────────────────── */

.col-toggle[b-xvtorospl0] {
    width: 28px;
    padding-right: 0 !important;
    color: var(--ui-text-muted);
}

.expand-chevron[b-xvtorospl0] {
    display: inline-block;
    font-size: 1.1rem;
    line-height: 1;
    transition: transform 0.15s ease;
}
.chevron-expanded[b-xvtorospl0] { transform: rotate(90deg); }

/* ── Detail panel ────────────────────────────────────────────────────────── */

.pkg-detail-row td[b-xvtorospl0] {
    background: var(--ui-surface-2);
    border-bottom: 2px solid var(--ui-border);
    padding: 0.75rem 1rem 0.75rem 2.5rem;
}

.pkg-detail-panel[b-xvtorospl0] { display: flex; flex-direction: column; gap: 0.5rem; }

.pkg-detail-meta[b-xvtorospl0] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.25rem;
    font-size: 0.82rem;
    color: var(--ui-text-muted);
}
.pkg-detail-meta strong[b-xvtorospl0] { color: var(--ui-text); margin-right: 0.25rem; }

.pkg-detail-desc[b-xvtorospl0] { font-size: 0.85rem; color: var(--ui-text-muted); }

.pkg-detail-actions[b-xvtorospl0] { display: flex; gap: 0.4rem; flex-wrap: wrap; margin-top: 0.25rem; }

.col-actions[b-xvtorospl0] { width: 1%; white-space: nowrap; }
.actions[b-xvtorospl0] { white-space: nowrap; display: flex; gap: 0.35rem; align-items: center; }

/* ── Lifecycle badge — outline only, theme-neutral ───────────────────────── */

.lifecycle-badge[b-xvtorospl0] {
    display: inline-block;
    font-size: 0.72rem;
    padding: 0.12rem 0.45rem;
    border-radius: 4px;
    border: 1.5px solid currentColor;
    font-weight: 600;
    white-space: nowrap;
    letter-spacing: 0.02em;
}

.lifecycle-released[b-xvtorospl0]    { color: #22c55e; }
.lifecycle-evaluation[b-xvtorospl0]  { color: #f59e0b; }
.lifecycle-notreleased[b-xvtorospl0] { color: #6366f1; }
.lifecycle-obsolete[b-xvtorospl0]    { color: #9ca3af; }

/* ── Status badge — dot indicator + text, theme-neutral ─────────────────── */

.status-badge[b-xvtorospl0] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8rem;
    font-weight: 500;
}

.status-badge[b-xvtorospl0]::before {
    content: '';
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}

.status-notinstalled[b-xvtorospl0]            { color: var(--ui-text-muted); }
.status-notinstalled[b-xvtorospl0]::before    { background: var(--ui-text-muted); opacity: 0.5; }
.status-downloading[b-xvtorospl0]             { color: #3b82f6; }
.status-downloading[b-xvtorospl0]::before     { background: #3b82f6; }
.status-installed[b-xvtorospl0]               { color: #22c55e; }
.status-installed[b-xvtorospl0]::before       { background: #22c55e; }
.status-updateavailable[b-xvtorospl0]         { color: #f59e0b; }
.status-updateavailable[b-xvtorospl0]::before { background: #f59e0b; }
.status-error[b-xvtorospl0]                   { color: #ef4444; }
.status-error[b-xvtorospl0]::before           { background: #ef4444; }

/* ── Progress / activity log ─────────────────────────────────────────────── */

.progress-log[b-xvtorospl0] {
    border: 1px solid var(--ui-border);
    border-radius: 6px;
    overflow: hidden;
}

.progress-log-header[b-xvtorospl0] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.4rem 0.8rem;
    background: var(--ui-surface-2);
    color: var(--ui-text);
    font-size: 0.85rem;
    font-weight: 600;
    border-bottom: 1px solid var(--ui-border);
}

.progress-log-body[b-xvtorospl0] {
    background: #0d1117;
    color: #c9d1d9;
    font-family: 'Consolas', 'Courier New', monospace;
    font-size: 0.78rem;
    padding: 0.6rem 0.8rem;
    max-height: 240px;
    overflow-y: auto;
}

.log-line[b-xvtorospl0]  { line-height: 1.5; }
.log-error[b-xvtorospl0] { color: #f48771; }

.loading-hint[b-xvtorospl0] { color: var(--ui-text-muted); font-style: italic; margin-top: 1rem; }

.btn-copied[b-xvtorospl0] { border-color: #22c55e !important; color: #22c55e !important; }

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .package-browser[b-xvtorospl0] { padding: 0.75rem; }
    .toolbar[b-xvtorospl0] { flex-direction: column; align-items: stretch; }
    .toolbar .btn[b-xvtorospl0] { width: 100%; text-align: center; }
    .search-input[b-xvtorospl0] { max-width: 100%; }
    .pkg-detail-row td[b-xvtorospl0] { padding-left: 0.75rem; }
}
/* /Components/Pages/StationConfig.razor.rz.scp.css */
/* Station Configuration Page */

.config-page[b-hpqersvp4l] {
    padding: 20px;
    max-width: 1600px;
    margin: 0 auto;
}

.config-page h1[b-hpqersvp4l] {
    margin-top: 0;
    margin-bottom: 20px;
    color: #333;
    font-size: 24px;
}

.loading[b-hpqersvp4l] {
    padding: 40px;
    text-align: center;
    color: #666;
    font-size: 16px;
}

/* ── Station Identity Card ──────────────────────────────────────── */

.station-identity-card[b-hpqersvp4l] {
    display: flex;
    align-items: baseline;
    gap: 12px;
    padding: 10px 16px;
    background: #e9f5fb;
    border: 1px solid #b8daff;
    border-radius: 6px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}

.station-identity-label[b-hpqersvp4l] {
    font-weight: 600;
    color: #004085;
    font-size: 13px;
    white-space: nowrap;
}

.station-identity-value[b-hpqersvp4l] {
    font-family: monospace;
    font-size: 15px;
    font-weight: 700;
    color: #004085;
}

.station-identity-hint[b-hpqersvp4l] {
    font-size: 12px;
    color: #6c757d;
}

/* ── Scope Selector ─────────────────────────────────────────────── */

.scope-selector[b-hpqersvp4l] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
    padding: 12px 16px;
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    flex-wrap: wrap;
}

.scope-selector label[b-hpqersvp4l] {
    font-weight: 600;
    color: #555;
    white-space: nowrap;
}

.scope-selector select[b-hpqersvp4l] {
    padding: 6px 12px;
    border: 1px solid #ced4da;
    border-radius: 4px;
    font-size: 14px;
    min-width: 240px;
    background: white;
}

.scope-hint[b-hpqersvp4l] {
    font-size: 12px;
    color: #28a745;
    font-style: italic;
}

/* ── Messages ───────────────────────────────────────────────────── */

.error-banner[b-hpqersvp4l] {
    padding: 10px 16px;
    background: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
    border-radius: 4px;
    margin-bottom: 16px;
    font-size: 14px;
}

.success-banner[b-hpqersvp4l] {
    padding: 10px 16px;
    background: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
    border-radius: 4px;
    margin-bottom: 16px;
    font-size: 14px;
}

/* ── Config Table ───────────────────────────────────────────────── */

.global-readonly-banner[b-hpqersvp4l] {
    padding: 10px 16px;
    background: #fff3cd;
    color: #856404;
    border: 1px solid #ffc107;
    border-radius: 4px;
    margin-bottom: 12px;
    font-size: 14px;
}

.config-table-container[b-hpqersvp4l] {
    background: white;
    border-radius: 8px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.08);
    overflow-x: auto;
}

.config-table[b-hpqersvp4l] {
    width: 100%;
    border-collapse: collapse;
}

.config-table thead[b-hpqersvp4l] {
    background: #343a40;
    color: white;
}

.config-table th[b-hpqersvp4l] {
    padding: 10px 14px;
    text-align: left;
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.config-table td[b-hpqersvp4l] {
    padding: 8px 14px;
    border-bottom: 1px solid #eee;
    font-size: 14px;
    vertical-align: middle;
}

.config-table tbody tr:hover[b-hpqersvp4l] {
    background-color: #f8f9fa;
}

.col-category[b-hpqersvp4l] { width: 14%; }
.col-key[b-hpqersvp4l] { width: 18%; }
.col-value[b-hpqersvp4l] { width: 22%; }
.col-description[b-hpqersvp4l] { width: 24%; }
.col-updated[b-hpqersvp4l] { width: 12%; }
.col-actions[b-hpqersvp4l] { width: 10%; text-align: center; }

.category-cell[b-hpqersvp4l] { color: #6c757d; font-size: 13px; }
.key-cell[b-hpqersvp4l] { font-family: 'Consolas', 'Courier New', monospace; font-weight: 600; }
.value-cell[b-hpqersvp4l] {
    font-family: 'Consolas', 'Courier New', monospace;
    max-width: 340px;
    overflow-wrap: break-word;
    word-break: break-all;
}
.description-cell[b-hpqersvp4l] { color: #555; font-size: 13px; }
.updated-cell[b-hpqersvp4l] { color: #888; font-size: 12px; white-space: nowrap; }

.empty-message[b-hpqersvp4l] {
    text-align: center;
    color: #999;
    padding: 30px !important;
    font-style: italic;
}

/* ── Inline Edit Row ────────────────────────────────────────────── */

.edit-row[b-hpqersvp4l] {
    background: #fffbe6;
}

.edit-row .form-input[b-hpqersvp4l] {
    width: 100%;
}

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

.actions-cell[b-hpqersvp4l] {
    text-align: center;
    white-space: nowrap;
}

.btn-edit[b-hpqersvp4l],
.btn-delete[b-hpqersvp4l],
.btn-save[b-hpqersvp4l],
.btn-cancel[b-hpqersvp4l] {
    background: none;
    border: 1px solid transparent;
    border-radius: 4px;
    cursor: pointer;
    font-size: 16px;
    padding: 4px 8px;
    line-height: 1;
}

.btn-edit:hover[b-hpqersvp4l] { background: #e9ecef; }
.btn-delete:hover[b-hpqersvp4l] { background: #f8d7da; }
.btn-save[b-hpqersvp4l] { color: #28a745; }
.btn-save:hover[b-hpqersvp4l] { background: #d4edda; }
.btn-cancel[b-hpqersvp4l] { color: #dc3545; }
.btn-cancel:hover[b-hpqersvp4l] { background: #f8d7da; }

/* ── Add Entry Form ─────────────────────────────────────────────── */

.add-entry-form[b-hpqersvp4l] {
    margin-top: 24px;
    padding: 16px;
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 8px;
}

.add-entry-form h3[b-hpqersvp4l] {
    margin: 0 0 12px;
    font-size: 15px;
    color: #333;
}

.form-row[b-hpqersvp4l] {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.form-input[b-hpqersvp4l] {
    padding: 6px 10px;
    border: 1px solid #ced4da;
    border-radius: 4px;
    font-size: 13px;
    min-width: 120px;
}

.form-input:focus[b-hpqersvp4l] {
    outline: none;
    border-color: #80bdff;
    box-shadow: 0 0 0 2px rgba(0,123,255,0.15);
}

.form-input.wide[b-hpqersvp4l] {
    flex: 1;
    min-width: 200px;
}

.btn-add[b-hpqersvp4l] {
    padding: 6px 16px;
    background: #007bff;
    color: white;
    border: none;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}

.btn-add:hover[b-hpqersvp4l] {
    background: #0069d9;
}

.btn-add:disabled[b-hpqersvp4l] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ── Package Registry Settings ──────────────────────────────────── */

.registry-settings[b-hpqersvp4l] {
    margin-top: 32px;
    padding: 20px;
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 8px;
}

.registry-settings h2[b-hpqersvp4l] {
    margin: 0 0 6px;
    font-size: 18px;
    color: #333;
}

.registry-hint[b-hpqersvp4l] {
    margin: 0 0 16px;
    font-size: 13px;
    color: #6c757d;
}

.registry-hint code[b-hpqersvp4l] {
    background: #e9ecef;
    padding: 1px 5px;
    border-radius: 3px;
    font-size: 12px;
}

.registry-form[b-hpqersvp4l] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    max-width: 600px;
}

.registry-field[b-hpqersvp4l] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.registry-field label[b-hpqersvp4l] {
    font-size: 13px;
    font-weight: 600;
    color: #495057;
}

.registry-field small[b-hpqersvp4l] {
    font-size: 12px;
    color: #6c757d;
}

.registry-actions[b-hpqersvp4l] {
    margin-top: 4px;
}

.btn-save-registry[b-hpqersvp4l] {
    padding: 8px 20px;
    background: #007bff;
    color: white;
    border: none;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

.btn-save-registry:hover[b-hpqersvp4l] {
    background: #0069d9;
}

.btn-save-registry:disabled[b-hpqersvp4l] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ── Display Mode Badges ─────────────────────────────────────────── */

.badge-secret[b-hpqersvp4l],
.badge-obfuscated[b-hpqersvp4l] {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    padding: 1px 6px;
    border-radius: 3px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    margin-right: 6px;
    vertical-align: middle;
}

.badge-secret[b-hpqersvp4l] {
    background: #f8d7da;
    color: #721c24;
}

.badge-obfuscated[b-hpqersvp4l] {
    background: #fff3cd;
    color: #856404;
}

.value-masked[b-hpqersvp4l] {
    color: #bbb;
    letter-spacing: 3px;
    font-size: 11px;
    vertical-align: middle;
}

.icon-readonly[b-hpqersvp4l] {
    margin-right: 4px;
    opacity: 0.65;
    font-size: 12px;
}

.readonly-hint[b-hpqersvp4l] {
    color: #aaa;
    font-size: 14px;
    cursor: default;
}

/* ── Flag Controls (edit row) ────────────────────────────────────── */

.flag-controls[b-hpqersvp4l] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 5px;
}

.flag-controls select[b-hpqersvp4l] {
    font-size: 12px;
    padding: 2px 6px;
    border: 1px solid #ced4da;
    border-radius: 3px;
    background: white;
    max-width: 130px;
}

.flag-controls label[b-hpqersvp4l] {
    font-size: 11px;
    color: #555;
    display: flex;
    align-items: center;
    gap: 5px;
    cursor: pointer;
}

/* ── Software Update Section ─────────────────────────────────────── */

.update-section[b-hpqersvp4l] {
    margin-top: 40px;
    padding: 24px;
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 8px;
}

.update-section h2[b-hpqersvp4l] {
    margin-top: 0;
    margin-bottom: 8px;
    font-size: 18px;
    color: #333;
}

.update-hint[b-hpqersvp4l] {
    margin: 0 0 16px 0;
    font-size: 13px;
    color: #6c757d;
}

.btn-trigger-update[b-hpqersvp4l] {
    padding: 10px 20px;
    font-size: 14px;
    font-weight: 500;
    border: none;
    border-radius: 6px;
    background: #0d6efd;
    color: white;
    cursor: pointer;
    transition: background 0.15s;
}

.btn-trigger-update:hover:not(:disabled)[b-hpqersvp4l] {
    background: #0b5ed7;
}

.btn-trigger-update:disabled[b-hpqersvp4l] {
    background: #6c757d;
    cursor: not-allowed;
}

.update-status[b-hpqersvp4l] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-radius: 6px;
    font-size: 13px;
    margin-bottom: 14px;
}

.update-status-icon[b-hpqersvp4l] {
    font-size: 16px;
}

.update-timestamp[b-hpqersvp4l] {
    margin-left: auto;
    color: #6c757d;
    font-size: 12px;
}

.update-status-idle[b-hpqersvp4l]      { background: #e9ecef; color: #495057; }
.update-status-inprogress[b-hpqersvp4l] { background: #fff3cd; color: #664d03; border: 1px solid #ffc107; }
.update-status-success[b-hpqersvp4l]   { background: #d1e7dd; color: #0a3622; border: 1px solid #a3cfbb; }
.update-status-failed[b-hpqersvp4l]    { background: #f8d7da; color: #58151c; border: 1px solid #f1aeb5; }

/* ── Responsive ─────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .config-page[b-hpqersvp4l] {
        padding: 12px;
    }

    .config-page h1[b-hpqersvp4l] {
        font-size: 1.3rem;
    }

    .scope-selector[b-hpqersvp4l] {
        flex-direction: column;
        align-items: stretch;
        gap: 6px;
    }

    .scope-selector select[b-hpqersvp4l] {
        min-width: unset;
        width: 100%;
    }

    /* Make config table scroll horizontally */
    .config-table-container[b-hpqersvp4l] {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Hide the less important columns on small screens */
    .config-table th.col-description[b-hpqersvp4l],
    .config-table td.col-description[b-hpqersvp4l],
    .config-table th.col-updated[b-hpqersvp4l],
    .config-table td.col-updated[b-hpqersvp4l] {
        display: none;
    }

    .form-row[b-hpqersvp4l] {
        flex-direction: column;
    }

    .form-input.wide[b-hpqersvp4l] {
        min-width: unset;
        width: 100%;
    }

    .registry-form[b-hpqersvp4l] {
        max-width: 100%;
    }

    .add-entry-form[b-hpqersvp4l] {
        padding: 12px;
    }

    .update-section[b-hpqersvp4l] {
        padding: 16px;
    }

    .update-timestamp[b-hpqersvp4l] {
        display: block;
        margin-left: 0;
        margin-top: 4px;
    }
}

/* Parallel testing setting (/config) */
.parallel-card[b-hpqersvp4l] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    background: var(--ui-surface-2);
    border: 1px solid var(--ui-border);
    border-radius: 8px;
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
    color: var(--ui-text);
}

.parallel-card__label[b-hpqersvp4l] {
    font-weight: 700;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--ui-text-muted);
}

.parallel-card__row[b-hpqersvp4l] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.parallel-card__input[b-hpqersvp4l] {
    width: 5rem;
    padding: 0.3rem 0.5rem;
    border: 1px solid var(--ui-input-border);
    border-radius: 6px;
    font-size: 0.9rem;
    background: var(--ui-input-bg);
    color: var(--ui-input-text);
}

.parallel-card__save[b-hpqersvp4l] {
    background: #2da44e;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 0.35rem 0.9rem;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
}

.parallel-card__save:disabled[b-hpqersvp4l] { background: #94d3a2; cursor: not-allowed; }

.parallel-card__effective[b-hpqersvp4l] {
    font-size: 0.85rem;
    color: var(--ui-text-muted);
}

.parallel-card__hint[b-hpqersvp4l] {
    font-size: 0.8rem;
    color: var(--ui-text-muted);
}
/* /Components/Pages/StationMonitor.razor.rz.scp.css */
.station-monitor[b-0j69gxw2mx] {
    padding: 1rem 1.5rem;
    color: var(--ui-text);
}

.station-monitor__header[b-0j69gxw2mx] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    margin-bottom: 0.75rem;
}

.station-monitor__header h1[b-0j69gxw2mx] {
    margin: 0;
    font-size: 1.5rem;
}

.station-monitor__meta[b-0j69gxw2mx] {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 0.85rem;
    color: var(--ui-text-muted);
}

.conn[b-0j69gxw2mx] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-weight: 600;
}

.conn__dot[b-0j69gxw2mx] {
    width: 0.6rem;
    height: 0.6rem;
    border-radius: 50%;
    background: var(--ui-text-muted);
}

.conn--ok[b-0j69gxw2mx] { color: #2da44e; }
.conn--ok .conn__dot[b-0j69gxw2mx] { background: #2da44e; }
.conn--down[b-0j69gxw2mx] { color: #d29922; }
.conn--down .conn__dot[b-0j69gxw2mx] { background: #d29922; }

.cap[b-0j69gxw2mx] {
    font-variant-numeric: tabular-nums;
}

.single-note[b-0j69gxw2mx] {
    background: var(--ui-surface-2);
    border: 1px solid var(--ui-border);
    border-radius: 8px;
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
    font-size: 0.9rem;
    color: var(--ui-text-muted);
}

.single-note code[b-0j69gxw2mx] {
    background: var(--ui-bg);
    padding: 0.1rem 0.35rem;
    border-radius: 4px;
}

.slot-grid[b-0j69gxw2mx] {
    display: grid;
    grid-template-columns: repeat(var(--cols, 2), minmax(260px, 1fr));
    gap: 1rem;
    align-items: start;
}

.slot-card[b-0j69gxw2mx] {
    border: 1px solid var(--ui-border);
    border-radius: 10px;
    background: var(--ui-surface);
    color: var(--ui-text);
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
}

.slot-card--empty[b-0j69gxw2mx] {
    border-style: dashed;
    background: var(--ui-bg);
}

.slot-card__head[b-0j69gxw2mx] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid var(--ui-border);
    background: var(--ui-surface-2);
}

.slot-card--empty .slot-card__head[b-0j69gxw2mx] {
    border-bottom: none;
    background: transparent;
}

.slot-no[b-0j69gxw2mx] {
    font-weight: 700;
    font-size: 0.8rem;
    letter-spacing: 0.03em;
    color: var(--ui-text-muted);
}

.slot-status[b-0j69gxw2mx] {
    font-weight: 700;
    font-size: 0.75rem;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    text-transform: uppercase;
}

/* Translucent tints work on both light and dark surfaces; dark overrides brighten the text. */
.status-running[b-0j69gxw2mx] { background: rgba(33, 150, 243, 0.15); color: #0969da; }
.status-pass[b-0j69gxw2mx] { background: rgba(40, 167, 69, 0.15); color: #1a7f37; }
.status-fail[b-0j69gxw2mx] { background: rgba(220, 53, 69, 0.15); color: #cf222e; }
.status-aborted[b-0j69gxw2mx] { background: rgba(188, 76, 0, 0.15); color: #bc4c00; }
.status-undetermined[b-0j69gxw2mx] { background: rgba(255, 193, 7, 0.18); color: #7d4e00; }
.status-completed[b-0j69gxw2mx] { background: rgba(127, 127, 127, 0.18); color: var(--ui-text-muted); }

.slot-empty[b-0j69gxw2mx] {
    padding: 1.5rem 0.75rem;
    text-align: center;
    color: var(--ui-text-muted);
    font-size: 0.85rem;
}

.slot-card__body[b-0j69gxw2mx] {
    padding: 0.6rem 0.75rem;
}

.slot-test[b-0j69gxw2mx] {
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.slot-serial[b-0j69gxw2mx] {
    font-size: 0.8rem;
    color: var(--ui-text-muted);
    margin-bottom: 0.5rem;
}

.slot-progress[b-0j69gxw2mx] {
    height: 6px;
    background: var(--ui-surface-2);
    border-radius: 999px;
    overflow: hidden;
    margin-bottom: 0.3rem;
}

.slot-progress__bar[b-0j69gxw2mx] {
    height: 100%;
    background: #2da44e;
    transition: width 0.3s ease;
}

.slot-step[b-0j69gxw2mx] {
    font-size: 0.75rem;
    color: var(--ui-text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.slot-prompt-badge[b-0j69gxw2mx] {
    margin-top: 0.5rem;
    background: rgba(255, 193, 7, 0.18);
    color: #9a6700;
    border: 1px solid rgba(234, 197, 79, 0.6);
    border-radius: 6px;
    padding: 0.3rem 0.5rem;
    font-size: 0.78rem;
    font-weight: 600;
}

.slot-expand[b-0j69gxw2mx] {
    margin-top: 0.6rem;
    background: none;
    border: 1px solid var(--ui-border);
    border-radius: 6px;
    padding: 0.25rem 0.6rem;
    font-size: 0.78rem;
    color: #2196f3;
    cursor: pointer;
}

.slot-expand:hover[b-0j69gxw2mx] {
    background: var(--ui-hover-bg);
}

.slot-detail[b-0j69gxw2mx] {
    border-top: 1px solid var(--ui-border);
    padding: 0.5rem 0.75rem 0.75rem;
}

/* When a slot's detail is open, give the card the full grid row so the detail has room,
   and stack the step tree / variables / log vertically — they don't fit side-by-side in a
   card, and the fixed-width log table needs the full width for its Message column. */
.slot-card--expanded[b-0j69gxw2mx] {
    grid-column: 1 / -1;
}

.slot-detail[b-0j69gxw2mx]  .data-panels {
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

/* Quick-start (staggered per-slot start) */
.qs[b-0j69gxw2mx] {
    margin-bottom: 1rem;
}

.qs-toggle[b-0j69gxw2mx] {
    background: #0969da;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 0.4rem 0.8rem;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
}

.qs-toggle:hover[b-0j69gxw2mx] { background: #0860ca; }

.qs-form[b-0j69gxw2mx] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    margin-top: 0.6rem;
    padding: 0.6rem 0.75rem;
    background: var(--ui-surface-2);
    border: 1px solid var(--ui-border);
    border-radius: 8px;
}

.qs-input[b-0j69gxw2mx] {
    padding: 0.35rem 0.5rem;
    border: 1px solid var(--ui-input-border);
    border-radius: 6px;
    font-size: 0.85rem;
    min-width: 180px;
    background: var(--ui-input-bg);
    color: var(--ui-input-text);
}

.qs-op[b-0j69gxw2mx] { min-width: 120px; }

.qs-go[b-0j69gxw2mx] {
    background: #2da44e;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 0.4rem 0.9rem;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
}

.qs-go:disabled[b-0j69gxw2mx] { background: #94d3a2; cursor: not-allowed; }

.qs-note[b-0j69gxw2mx] {
    margin-top: 0.4rem;
    font-size: 0.8rem;
    color: var(--ui-text-muted);
}

.qs-error[b-0j69gxw2mx] {
    margin-top: 0.4rem;
    font-size: 0.8rem;
    color: #cf222e;
}

/* ── Dark mode: brighten the saturated accent text for contrast on dark tints ── */
html[data-theme="dark"] .status-running[b-0j69gxw2mx] { color: #6cb6ff; }
html[data-theme="dark"] .status-pass[b-0j69gxw2mx] { color: #4ade80; }
html[data-theme="dark"] .status-fail[b-0j69gxw2mx] { color: #f87171; }
html[data-theme="dark"] .status-aborted[b-0j69gxw2mx] { color: #fdba74; }
html[data-theme="dark"] .status-undetermined[b-0j69gxw2mx] { color: #fbbf24; }
html[data-theme="dark"] .slot-prompt-badge[b-0j69gxw2mx] { color: #fbbf24; }
html[data-theme="dark"] .slot-expand[b-0j69gxw2mx] { color: #6cb6ff; }
html[data-theme="dark"] .qs-error[b-0j69gxw2mx] { color: #f87171; }
/* /Components/Pages/Statistics.razor.rz.scp.css */
.statistics-page[b-veb4lerb0o] {
    padding: 20px;
    max-width: 1600px;
    margin: 0 auto;
}

.statistics-page h1[b-veb4lerb0o] {
    margin-bottom: 20px;
    color: #333;
}

/* Filter Bar */
.filter-bar[b-veb4lerb0o] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 16px;
    background: #f8f9fa;
    padding: 16px 20px;
    border-radius: 8px;
    margin-bottom: 24px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.filter-field[b-veb4lerb0o] {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.filter-field label[b-veb4lerb0o] {
    font-weight: 600;
    font-size: 12px;
    color: #495057;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.filter-field input[type="number"][b-veb4lerb0o] {
    width: 100px;
    padding: 7px 10px;
    border: 1px solid #ced4da;
    border-radius: 4px;
    font-size: 14px;
}

.filter-field input[type="text"][b-veb4lerb0o] {
    width: 180px;
    padding: 7px 10px;
    border: 1px solid #ced4da;
    border-radius: 4px;
    font-size: 14px;
}

.btn-refresh[b-veb4lerb0o] {
    padding: 8px 20px;
    background-color: #007bff;
    color: white;
    border: none;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.2s;
    align-self: flex-end;
}

.btn-refresh:hover:not(:disabled)[b-veb4lerb0o] {
    background-color: #0056b3;
}

.btn-refresh:disabled[b-veb4lerb0o] {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Status messages */
.status-message[b-veb4lerb0o] {
    padding: 40px;
    text-align: center;
    color: #999;
    font-style: italic;
    font-size: 14px;
}

.status-message.error[b-veb4lerb0o] {
    color: #dc3545;
}

/* Summary line */
.results-summary[b-veb4lerb0o] {
    font-size: 14px;
    color: #555;
    margin-bottom: 10px;
}

.filtered-note[b-veb4lerb0o] {
    color: #999;
    font-style: italic;
}

/* Table wrapper */
.table-wrapper[b-veb4lerb0o] {
    overflow-x: auto;
}

/* Data table */
.data-table[b-veb4lerb0o] {
    width: 100%;
    border-collapse: collapse;
    background: white;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.data-table thead[b-veb4lerb0o] {
    background: #343a40;
    color: white;
}

.data-table th[b-veb4lerb0o] {
    padding: 11px 14px;
    text-align: left;
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap;
}

.data-table td[b-veb4lerb0o] {
    padding: 10px 14px;
    border-bottom: 1px solid #eee;
    font-size: 14px;
}

.data-table tbody tr.capability-row:hover[b-veb4lerb0o] {
    background-color: #f8f9fa;
}

/* Expand column */
.col-expand[b-veb4lerb0o] {
    width: 28px;
    text-align: center;
}

.expand-icon[b-veb4lerb0o] {
    display: inline-block;
    transition: transform 0.15s, color 0.15s;
    cursor: pointer;
    font-size: 11px;
    color: #aaa;
}

.expand-icon.expanded[b-veb4lerb0o] {
    transform: rotate(90deg);
    color: #007bff;
}

.capability-row[b-veb4lerb0o] {
    cursor: pointer;
}

.capability-row.row-expanded[b-veb4lerb0o] {
    background-color: #e9f0fb;
    font-weight: 600;
}

/* Column sizing */
.col-num[b-veb4lerb0o] {
    text-align: right;
    white-space: nowrap;
}

.col-name[b-veb4lerb0o] {
    font-family: 'Consolas', 'Courier New', monospace;
    font-size: 13px;
}

.col-step[b-veb4lerb0o],
.col-test[b-veb4lerb0o] {
    font-size: 13px;
    color: #555;
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Cpk badges */
.cpk-badge[b-veb4lerb0o] {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 12px;
    font-weight: 700;
    font-size: 13px;
    font-variant-numeric: tabular-nums;
    color: white;
}

.cpk-bad[b-veb4lerb0o]      { background-color: #dc3545; }
.cpk-marginal[b-veb4lerb0o] { background-color: #fd7e14; }
.cpk-good[b-veb4lerb0o]     { background-color: #28a745; }
.cpk-unknown[b-veb4lerb0o]  { background-color: #adb5bd; }

/* Expanded detail row */
.detail-row td[b-veb4lerb0o] {
    padding: 0;
    border-bottom: 2px solid #c8d6e8;
    background-color: #f4f8ff;
}

.detail-loading[b-veb4lerb0o] {
    padding: 16px 20px;
    font-style: italic;
    color: #888;
    font-size: 13px;
}

.detail-panel[b-veb4lerb0o] {
    padding: 16px 24px;
}

.detail-stats[b-veb4lerb0o] {
    display: flex;
    flex-wrap: wrap;
    gap: 20px 32px;
    margin-bottom: 10px;
}

.stat-item[b-veb4lerb0o] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.stat-label[b-veb4lerb0o] {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: #6c757d;
}

.stat-value[b-veb4lerb0o] {
    font-size: 15px;
    font-variant-numeric: tabular-nums;
    color: #212529;
}

.pass-count[b-veb4lerb0o] { color: #28a745; font-weight: 700; }
.fail-count[b-veb4lerb0o] { color: #dc3545; font-weight: 700; }
.separator[b-veb4lerb0o]  { color: #999; }

.limits-note[b-veb4lerb0o] {
    margin-top: 8px;
    padding: 8px 12px;
    background: #fff3cd;
    border-left: 3px solid #ffc107;
    border-radius: 3px;
    font-size: 13px;
    color: #856404;
}

/* Responsive */
@media (max-width: 768px) {
    .statistics-page[b-veb4lerb0o] {
        padding: 12px;
    }

    .filter-bar[b-veb4lerb0o] {
        flex-direction: column;
        align-items: stretch;
    }

    .filter-field input[type="text"][b-veb4lerb0o],
    .filter-field input[type="number"][b-veb4lerb0o] {
        width: 100%;
    }

    .col-step[b-veb4lerb0o],
    .col-test[b-veb4lerb0o] {
        display: none;
    }

    .data-table th.col-step[b-veb4lerb0o],
    .data-table th.col-test[b-veb4lerb0o] {
        display: none;
    }

    .detail-stats[b-veb4lerb0o] {
        gap: 16px 24px;
    }
}
/* /Components/Pages/TestMonitor.razor.rz.scp.css */
/* Test Monitor Styles */

.test-monitor[b-t4af1jk2nk] {
    padding: 20px;
    max-width: 1600px;
    margin: 0 auto;
}

.test-monitor h1[b-t4af1jk2nk] {
    margin-bottom: 20px;
    color: #333;
}

/* Connection Status */
.connection-status[b-t4af1jk2nk] {
    display: flex;
    align-items: center;
    padding: 10px 15px;
    border-radius: 4px;
    margin-bottom: 20px;
    font-size: 14px;
}

.connection-status.connected[b-t4af1jk2nk] {
    background-color: #d4edda;
    color: #155724;
}

.connection-status.disconnected[b-t4af1jk2nk] {
    background-color: #f8d7da;
    color: #721c24;
}

.status-indicator[b-t4af1jk2nk] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    margin-right: 10px;
    display: inline-block;
}

.connection-status.connected .status-indicator[b-t4af1jk2nk] {
    background-color: #28a745;
    box-shadow: 0 0 8px #28a745;
}

.connection-status.disconnected .status-indicator[b-t4af1jk2nk] {
    background-color: #dc3545;
    box-shadow: 0 0 8px #dc3545;
}

/* MES connectivity badge inside connection bar */
.mes-status-indicator[b-t4af1jk2nk] {
    margin-left: auto;
    font-size: 11px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 4px;
    letter-spacing: 0.5px;
}

.mes-status-indicator.mes-ok[b-t4af1jk2nk] {
    background-color: #28a745;
    color: #fff;
}

.mes-status-indicator.mes-down[b-t4af1jk2nk] {
    background-color: #dc3545;
    color: #fff;
    animation: pulse 2s infinite;
}

/* Execution Controls */
.execution-controls[b-t4af1jk2nk] {
    background: #f8f9fa;
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 30px;
}

.execution-controls h3[b-t4af1jk2nk] {
    margin-top: 0;
    margin-bottom: 15px;
}

.form-group[b-t4af1jk2nk] {
    margin-bottom: 15px;
}

.form-group label[b-t4af1jk2nk] {
    display: block;
    margin-bottom: 5px;
    font-weight: 600;
    color: #495057;
}

.form-control[b-t4af1jk2nk] {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #ced4da;
    border-radius: 4px;
    font-size: 14px;
}

.form-control-static[b-t4af1jk2nk] {
    display: block;
    width: 100%;
    padding: 8px 12px;
    border: 1px solid transparent;
    border-radius: 4px;
    font-size: 14px;
    background: #f8f9fa;
    color: #6c757d;
    font-family: monospace;
    cursor: default;
}

.form-group select.form-control[b-t4af1jk2nk] {
    appearance: auto;
}

.test-file-picker[b-t4af1jk2nk] {
    display: flex;
    gap: 8px;
    align-items: center;
}

.test-file-picker select.form-control[b-t4af1jk2nk] {
    flex: 1;
}

.btn-refresh-tests[b-t4af1jk2nk] {
    flex-shrink: 0;
    background: none;
    border: 1px solid #ced4da;
    border-radius: 4px;
    padding: 8px 10px;
    font-size: 16px;
    cursor: pointer;
    color: #495057;
    line-height: 1;
}

.btn-refresh-tests:hover:not(:disabled)[b-t4af1jk2nk] {
    background-color: #e9ecef;
    color: #212529;
}

.btn-refresh-tests:disabled[b-t4af1jk2nk] {
    opacity: 0.5;
    cursor: not-allowed;
}

.form-row[b-t4af1jk2nk] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

/* Required tags section — shown above the optional <details> when a test declares required_tags */
.required-tags-section[b-t4af1jk2nk] {
    margin-bottom: 15px;
    padding: 12px 15px;
    background: #fff8e1;
    border: 1px solid #ffc107;
    border-left: 4px solid #ffc107;
    border-radius: 4px;
}

.required-tags-heading[b-t4af1jk2nk] {
    margin: 0 0 10px 0;
    font-weight: 700;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: #856404;
}

.required-marker[b-t4af1jk2nk] {
    color: #dc3545;
    font-weight: 700;
}

.tags-section[b-t4af1jk2nk] {
    margin: 10px 0;
    padding: 8px 0;
}

.tags-section summary[b-t4af1jk2nk] {
    cursor: pointer;
    font-weight: 600;
    color: #555;
    margin-bottom: 8px;
}

.tags-section[open] summary[b-t4af1jk2nk] {
    margin-bottom: 12px;
}

.btn[b-t4af1jk2nk] {
    padding: 10px 20px;
    border: none;
    border-radius: 4px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
}

.btn-primary[b-t4af1jk2nk] {
    background-color: #007bff;
    color: white;
}

.btn-primary:hover:not(:disabled)[b-t4af1jk2nk] {
    background-color: #0056b3;
}

.btn:disabled[b-t4af1jk2nk] {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Data Panels Grid */
.data-panels[b-t4af1jk2nk] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 30px;
}

/* ::deep allows parent scoped styles to reach child component markup */
.data-panels[b-t4af1jk2nk]  .panel {
    background: white;
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.data-panels[b-t4af1jk2nk]  .panel h3 {
    margin-top: 0;
    margin-bottom: 15px;
    color: #333;
    border-bottom: 2px solid #007bff;
    padding-bottom: 10px;
}

.data-panels[b-t4af1jk2nk]  .log-table-panel {
    grid-column: span 2;
}

/* Variables panel: limit height and enable scroll */
.data-panels[b-t4af1jk2nk]  .variables-panel .table-scroll-wrapper {
    max-height: 300px;
    overflow-y: auto;
    overflow-x: auto;
}

/* Data Tables (used by VariablesPanel) */
.data-panels[b-t4af1jk2nk]  .data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.data-panels[b-t4af1jk2nk]  .variables-panel .data-table td {
    max-width: 400px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.data-panels[b-t4af1jk2nk]  .data-table thead {
    background-color: #f8f9fa;
}

.data-panels[b-t4af1jk2nk]  .data-table th {
    text-align: left;
    padding: 10px;
    font-weight: 600;
    color: #495057;
    border-bottom: 2px solid #dee2e6;
}

.data-panels[b-t4af1jk2nk]  .data-table td {
    padding: 10px;
    border-bottom: 1px solid #dee2e6;
}

.data-panels[b-t4af1jk2nk]  .data-table tbody tr:hover {
    background-color: #f8f9fa;
}

.data-panels[b-t4af1jk2nk]  .data-table code {
    background-color: #f1f3f5;
    padding: 2px 6px;
    border-radius: 3px;
    font-family: 'Courier New', monospace;
    font-size: 13px;
}

.data-panels[b-t4af1jk2nk]  .timestamp {
    color: #6c757d;
    font-size: 12px;
}

.data-panels[b-t4af1jk2nk]  .highlight-new {
    background-color: #fff3cd !important;
    animation: fadeHighlight-b-t4af1jk2nk 2s forwards;
}

@keyframes fadeHighlight-b-t4af1jk2nk {
    from { background-color: #fff3cd; }
    to { background-color: transparent; }
}

/* No Data State */
.data-panels[b-t4af1jk2nk]  .no-data {
    text-align: center;
    color: #6c757d;
    font-style: italic;
    padding: 40px;
}

.no-execution[b-t4af1jk2nk] {
    background: #f8f9fa;
    padding: 60px;
    text-align: center;
    border-radius: 8px;
    margin-top: 30px;
}

.no-execution p[b-t4af1jk2nk] {
    font-size: 16px;
    color: #6c757d;
}

/* Responsive Design */
@media (max-width: 1200px) {
    .data-panels[b-t4af1jk2nk] {
        grid-template-columns: 1fr;
    }

    .data-panels[b-t4af1jk2nk]  .log-table-panel {
        grid-column: span 1;
    }

    .data-panels[b-t4af1jk2nk]  .step-tree-panel {
        grid-column: span 1;
    }
}

@media (max-width: 768px) {
    .test-monitor[b-t4af1jk2nk] {
        padding: 12px;
    }

    .test-monitor h1[b-t4af1jk2nk] {
        font-size: 1.3rem;
    }

    .form-row[b-t4af1jk2nk] {
        grid-template-columns: 1fr;
    }

    .progress-info[b-t4af1jk2nk] {
        flex-direction: column;
        gap: 5px;
    }

    .execution-controls[b-t4af1jk2nk] {
        padding: 12px;
    }

    /* Stack the test-info-table cells vertically on mobile */
    .test-info-table table[b-t4af1jk2nk],
    .test-info-table tbody[b-t4af1jk2nk],
    .test-info-table tr[b-t4af1jk2nk],
    .test-info-table td[b-t4af1jk2nk] {
        display: block;
        width: 100%;
    }

    .test-info-table tr[b-t4af1jk2nk] {
        margin-bottom: 4px;
    }

    .test-info-table td.label[b-t4af1jk2nk] {
        text-align: left;
        width: 100%;
        padding-bottom: 1px;
        font-size: 11px;
        opacity: 0.7;
    }

    .test-info-table td.value[b-t4af1jk2nk] {
        width: 100%;
        padding-top: 1px;
    }

    .status-content h2[b-t4af1jk2nk] {
        font-size: 1.4rem;
    }

    .timestamp[b-t4af1jk2nk], .duration[b-t4af1jk2nk] {
        display: block;
        margin: 2px 0;
    }

    .no-execution[b-t4af1jk2nk] {
        padding: 30px 16px;
    }
}

/* ── MES Routing Panel ──────────────────────────────────────────────── */

.mes-panel[b-t4af1jk2nk] {
    padding: 10px 14px;
    border-radius: 6px;
    margin-bottom: 12px;
    font-size: 14px;
    border: 1px solid transparent;
}

.mes-loading[b-t4af1jk2nk] {
    background-color: #e8f4fd;
    color: #0c5460;
    border-color: #bee5eb;
    display: flex;
    align-items: center;
    gap: 8px;
}

.mes-spinner[b-t4af1jk2nk] {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid #0c5460;
    border-top-color: transparent;
    border-radius: 50%;
    animation: mes-spin-b-t4af1jk2nk 0.8s linear infinite;
}

@keyframes mes-spin-b-t4af1jk2nk {
    to { transform: rotate(360deg); }
}

.mes-warning[b-t4af1jk2nk] {
    background-color: #fff3cd;
    color: #856404;
    border-color: #ffeeba;
    display: flex;
    align-items: center;
    gap: 8px;
}

.mes-rejected[b-t4af1jk2nk] {
    background-color: #f8d7da;
    color: #721c24;
    border-color: #f5c6cb;
}

.mes-routing[b-t4af1jk2nk] {
    background-color: #f0f4ff;
    border-color: #c3d4f7;
}

.mes-header[b-t4af1jk2nk] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 8px;
    flex-wrap: wrap;
}

.mes-work-order[b-t4af1jk2nk],
.mes-operation[b-t4af1jk2nk] {
    font-size: 12px;
    background: #d6e4ff;
    color: #1a3a6e;
    padding: 2px 8px;
    border-radius: 4px;
}

.mes-options[b-t4af1jk2nk] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.mes-option[b-t4af1jk2nk] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border: 1px solid #ccc;
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
    text-align: left;
    transition: border-color 0.15s, background-color 0.15s;
}

.mes-option:hover:not(:disabled)[b-t4af1jk2nk] {
    border-color: #6c9bef;
    background-color: #f7faff;
}

.mes-option.selected[b-t4af1jk2nk] {
    border-color: #3b7ddd;
    background-color: #eaf1fb;
    box-shadow: 0 0 0 2px rgba(59, 125, 221, 0.25);
}

.mes-option:disabled[b-t4af1jk2nk] {
    opacity: 0.6;
    cursor: not-allowed;
}

.mes-badge[b-t4af1jk2nk] {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    padding: 2px 8px;
    border-radius: 4px;
    white-space: nowrap;
}

.mes-required .mes-badge[b-t4af1jk2nk] {
    background-color: #dc3545;
    color: #fff;
}

.mes-optional .mes-badge[b-t4af1jk2nk] {
    background-color: #ffc107;
    color: #333;
}

.mes-rerunnable .mes-badge[b-t4af1jk2nk] {
    background-color: #17a2b8;
    color: #fff;
}

.mes-option-name[b-t4af1jk2nk] {
    font-weight: 500;
}

.mes-option-desc[b-t4af1jk2nk] {
    color: #666;
    font-size: 12px;
    margin-left: auto;
}

.station-config-grid[b-t4af1jk2nk] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 2px 12px;
    font-size: 12px;
    font-family: monospace;
    padding: 6px 0;
}

.cfg-key[b-t4af1jk2nk] {
    color: #0077cc;
    white-space: nowrap;
}

.cfg-value[b-t4af1jk2nk] {
    color: #444;
    overflow-wrap: anywhere;
}

/* ── Completed-run artifact panel ──────────────────────────────────── */

.monitor-artifacts-section[b-t4af1jk2nk] {
    margin-top: 16px;
    border-top: 1px solid #dee2e6;
    padding-top: 8px;
}

.monitor-artifacts-section .config-snapshot-toggle[b-t4af1jk2nk] {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    color: #495057;
    padding: 4px 0;
    display: flex;
    align-items: center;
    gap: 6px;
}

.monitor-artifacts-section .config-snapshot-toggle:hover[b-t4af1jk2nk] {
    color: #007bff;
}

.monitor-artifacts-section .config-snapshot-table[b-t4af1jk2nk] {
    width: 100%;
    border-collapse: collapse;
    margin-top: 8px;
    font-size: 13px;
}

.monitor-artifacts-section .config-snapshot-table th[b-t4af1jk2nk] {
    text-align: left;
    padding: 6px 10px;
    background: #f1f3f5;
    border-bottom: 1px solid #dee2e6;
    font-weight: 600;
    color: #495057;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.monitor-artifacts-section .config-snapshot-table td[b-t4af1jk2nk] {
    padding: 5px 10px;
    border-bottom: 1px solid #eee;
}

.monitor-artifacts-section .config-key[b-t4af1jk2nk] {
    font-family: 'Consolas', 'Courier New', monospace;
    color: #495057;
    white-space: nowrap;
}

.monitor-artifacts-section .config-value[b-t4af1jk2nk] {
    font-family: 'Consolas', 'Courier New', monospace;
    color: #212529;
    word-break: break-all;
}

.monitor-artifacts-section .artifact-action-cell[b-t4af1jk2nk] {
    display: flex;
    gap: 4px;
    align-items: center;
    white-space: nowrap;
}

.monitor-artifacts-section .artifact-action-cell .btn[disabled][b-t4af1jk2nk] {
    opacity: 0.38;
    cursor: not-allowed;
}

/* ── Orchestra lock banner ────────────────────────────────────────────────── */

.station-lock-banner[b-t4af1jk2nk] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
    background: rgba(251, 191, 36, 0.12);
    border: 1px solid rgba(251, 191, 36, 0.4);
    border-radius: 6px;
    color: #92400e;
}

.station-lock-banner__icon[b-t4af1jk2nk] {
    font-size: 1.25rem;
    flex-shrink: 0;
}

.station-lock-banner__text[b-t4af1jk2nk] {
    font-size: 0.9rem;
}

.station-lock-banner__expiry[b-t4af1jk2nk] {
    font-size: 0.8rem;
    opacity: 0.75;
}
/* /Components/Pages/TestResultDetail.razor.rz.scp.css */
/* Test Result Detail Page Styles
 * Colors use the app's --ui-* semantic tokens (defined in wwwroot/app.css), which
 * flip automatically under html[data-theme="dark"] — so this page renders correctly
 * in both light and dark themes. Vivid verdict/status colors are kept literal because
 * they read well on both backgrounds; near-white tints are expressed as rgba overlays.
 */

.test-result-detail-page[b-px1qixr1zf] {
    padding: 20px;
    max-width: 1200px;
    margin: 0 auto;
}

.loading[b-px1qixr1zf] {
    padding: 60px;
    text-align: center;
    color: var(--ui-text-muted);
    font-size: 18px;
}

.error-message[b-px1qixr1zf] {
    padding: 40px;
    text-align: center;
    background: rgba(255, 193, 7, 0.15);
    border: 1px solid rgba(255, 193, 7, 0.5);
    border-radius: 8px;
}

.error-message h2[b-px1qixr1zf] {
    color: var(--ui-text);
    margin-bottom: 10px;
}

.error-message p[b-px1qixr1zf] {
    color: var(--ui-text);
    margin-bottom: 20px;
}

/* Report Actions */
.report-actions[b-px1qixr1zf] {
    margin-bottom: 20px;
}

.report-actions .btn-secondary[b-px1qixr1zf] {
    display: inline-block;
    padding: 8px 16px;
    background-color: #6c757d;
    color: white;
    border: none;
    border-radius: 4px;
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

.report-actions .btn-secondary:hover[b-px1qixr1zf] {
    background-color: #545b62;
}

.report-actions .btn-primary[b-px1qixr1zf] {
    display: inline-block;
    padding: 8px 16px;
    background-color: #007bff;
    color: white;
    border: none;
    border-radius: 4px;
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
}

/* Report Content */
.report-content[b-px1qixr1zf] {
    background: var(--ui-surface);
    border-radius: 8px;
    padding: 30px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.report-title[b-px1qixr1zf] {
    margin-top: 0;
    margin-bottom: 25px;
    color: var(--ui-text);
    font-size: 28px;
    border-bottom: 2px solid var(--ui-border);
    padding-bottom: 15px;
}

/*
 * Styles below target elements rendered by child components
 * (ReportHeader, StepResultsTable, NestedExecutionSection).
 * ::deep is required for Blazor CSS isolation to pierce child scope.
 */

/* Report Header */
[b-px1qixr1zf] .report-header {
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 25px;
    border: 1px solid var(--ui-border);
}

[b-px1qixr1zf] .report-header.verdict-pass { border-left: 4px solid #28a745; background: rgba(40, 167, 69, 0.1); }
[b-px1qixr1zf] .report-header.verdict-fail { border-left: 4px solid #dc3545; background: rgba(220, 53, 69, 0.1); }
[b-px1qixr1zf] .report-header.verdict-undetermined { border-left: 4px solid #ffc107; background: rgba(255, 193, 7, 0.1); }
[b-px1qixr1zf] .report-header.verdict-aborted { border-left: 4px solid #6c757d; background: rgba(108, 117, 125, 0.1); }

[b-px1qixr1zf] .verdict-badge {
    display: inline-block;
    padding: 6px 16px;
    border-radius: 20px;
    font-weight: 700;
    font-size: 16px;
    color: white;
    margin-bottom: 12px;
}

[b-px1qixr1zf] .verdict-badge.verdict-pass { background-color: #28a745; }
[b-px1qixr1zf] .verdict-badge.verdict-fail { background-color: #dc3545; }
[b-px1qixr1zf] .verdict-badge.verdict-undetermined { background-color: #ffc107; color: #333; }
[b-px1qixr1zf] .verdict-badge.verdict-aborted { background-color: #6c757d; }

[b-px1qixr1zf] .header-table {
    width: 100%;
    border-collapse: collapse;
}

[b-px1qixr1zf] .header-table td {
    padding: 5px 12px;
    font-size: 14px;
}

[b-px1qixr1zf] .header-table td.label {
    font-weight: 600;
    color: var(--ui-text-muted);
    width: 15%;
    white-space: nowrap;
}

[b-px1qixr1zf] .header-table td.value {
    color: var(--ui-text);
    width: 35%;
    font-family: 'Courier New', monospace;
    word-break: break-word;
}

[b-px1qixr1zf] .verdict-text-pass { color: #28a745; font-weight: 700; }
[b-px1qixr1zf] .verdict-text-fail { color: #dc3545; font-weight: 700; }
[b-px1qixr1zf] .verdict-text-undetermined { color: #ffc107; font-weight: 700; }
[b-px1qixr1zf] .verdict-text-aborted { color: #6c757d; font-weight: 700; }

/* Step Results Table */
[b-px1qixr1zf] .step-results-table {
    margin-top: 25px;
}

[b-px1qixr1zf] .step-results-table h4 {
    margin-bottom: 12px;
    color: var(--ui-text);
    font-size: 15px;
    font-weight: 600;
}

[b-px1qixr1zf] .data-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--ui-surface);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}

[b-px1qixr1zf] .data-table thead {
    background: #343a40;
    color: white;
}

[b-px1qixr1zf] .data-table th {
    padding: 12px 15px;
    text-align: left;
    font-weight: 600;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

[b-px1qixr1zf] .data-table td {
    padding: 10px 15px;
    border-bottom: 1px solid var(--ui-border);
    font-size: 14px;
    color: var(--ui-text);
}

[b-px1qixr1zf] .data-table tbody tr:hover {
    background-color: var(--ui-hover-bg);
}

/* Expand Icon */
[b-px1qixr1zf] .col-expand {
    width: 30px;
    text-align: center;
}

[b-px1qixr1zf] .expand-icon {
    display: inline-block;
    transition: transform 0.2s, color 0.2s;
    cursor: pointer;
    font-size: 12px;
    color: var(--ui-text-muted);
}

[b-px1qixr1zf] .expand-icon.expanded {
    transform: rotate(90deg);
    color: #007bff;
}

/* Step/Measurement Columns */
[b-px1qixr1zf] .step-row { cursor: pointer; }
[b-px1qixr1zf] .col-order { width: 50px; text-align: center; }
[b-px1qixr1zf] .col-name { min-width: 200px; }
[b-px1qixr1zf] .col-duration { width: 100px; }
[b-px1qixr1zf] .col-verdict { width: 100px; }
[b-px1qixr1zf] .col-error { max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Verdict Colors */
[b-px1qixr1zf] .verdict-pass { color: #28a745; font-weight: 600; }
[b-px1qixr1zf] .verdict-fail { color: #dc3545; font-weight: 600; }
[b-px1qixr1zf] .verdict-undetermined { color: #ffc107; font-weight: 600; }
[b-px1qixr1zf] .verdict-aborted { color: #6c757d; font-weight: 600; }

[b-px1qixr1zf] .verdict-row-pass { border-left: 3px solid #28a745; background-color: rgba(40, 167, 69, 0.06); }
[b-px1qixr1zf] .verdict-row-fail { border-left: 3px solid #dc3545; background-color: rgba(220, 53, 69, 0.06); }
[b-px1qixr1zf] .verdict-row-undetermined { border-left: 3px solid #ffc107; background-color: rgba(255, 193, 7, 0.06); }
[b-px1qixr1zf] .verdict-row-aborted { border-left: 3px solid #6c757d; background-color: rgba(108, 117, 125, 0.06); }

/* Measurement Rows */
[b-px1qixr1zf] .measurement-row {
    background: var(--ui-surface-2);
    font-size: 13px;
}

[b-px1qixr1zf] .measurement-row td {
    padding: 6px 15px;
}

[b-px1qixr1zf] .measurement-indent {
    padding-left: 40px !important;
}

[b-px1qixr1zf] .measurement-type-badge {
    display: inline-block;
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    margin-right: 6px;
    color: white;
}

[b-px1qixr1zf] .type-numeric { background-color: #007bff; }
[b-px1qixr1zf] .type-boolean { background-color: #17a2b8; }
[b-px1qixr1zf] .type-string { background-color: #6f42c1; }

[b-px1qixr1zf] .units {
    color: var(--ui-text-muted);
    font-size: 12px;
    margin-left: 2px;
}

[b-px1qixr1zf] .iteration-badge {
    display: inline-block;
    padding: 1px 6px;
    background: var(--ui-surface-2);
    border-radius: 10px;
    font-size: 11px;
    color: var(--ui-text-muted);
    margin-left: 6px;
}

[b-px1qixr1zf] .forced-badge {
    margin-left: 4px;
    color: #ffc107;
}

[b-px1qixr1zf] .measurement-count {
    font-size: 12px;
    color: var(--ui-text-muted);
    margin-left: 6px;
}

/* Nested Executions */
.nested-executions-section[b-px1qixr1zf] {
    margin-top: 30px;
}

.nested-executions-section h4[b-px1qixr1zf] {
    color: var(--ui-text);
    margin-bottom: 15px;
}

[b-px1qixr1zf] .nested-execution {
    border: 1px solid var(--ui-border);
    border-radius: 6px;
    margin-bottom: 10px;
    overflow: hidden;
}

[b-px1qixr1zf] .nested-header {
    padding: 10px 15px;
    background: var(--ui-surface-2);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 10px;
}

[b-px1qixr1zf] .nested-header:hover {
    background: var(--ui-hover-bg);
}

[b-px1qixr1zf] .nested-title {
    flex: 1;
    font-size: 14px;
    color: var(--ui-text);
}

[b-px1qixr1zf] .nested-verdict {
    font-weight: 600;
    font-size: 13px;
}

[b-px1qixr1zf] .nested-body {
    padding: 15px;
    border-top: 1px solid var(--ui-border);
}

[b-px1qixr1zf] .depth-1 { margin-left: 20px; }
[b-px1qixr1zf] .depth-2 { margin-left: 40px; }
[b-px1qixr1zf] .depth-3 { margin-left: 60px; }

/* ==================== Print Styles ==================== */
@media print {
    /* Hide non-printable elements */
    .no-print[b-px1qixr1zf],
    .report-actions[b-px1qixr1zf] {
        display: none !important;
    }

    /* Hide pagination controls — all steps are already loaded when printing */
    [b-px1qixr1zf] .print-hide {
        display: none !important;
    }

    /* Reset page layout */
    .test-result-detail-page[b-px1qixr1zf] {
        padding: 0;
        margin: 0;
        max-width: none;
    }

    .report-content[b-px1qixr1zf] {
        box-shadow: none;
        padding: 0;
    }

    .report-title[b-px1qixr1zf] {
        font-size: 22pt;
        margin-bottom: 15px;
    }

    /* Page settings */
    @page {
        size: A4;
        margin: 15mm 12mm;
    }

    /* Avoid page breaks inside key sections */
    [b-px1qixr1zf] .report-header,
    [b-px1qixr1zf] .step-row,
    [b-px1qixr1zf] .measurement-row {
        page-break-inside: avoid;
    }

    [b-px1qixr1zf] .step-results-table {
        page-break-before: auto;
    }

    [b-px1qixr1zf] .nested-execution {
        page-break-inside: avoid;
    }

    /* Force expand all nested sections for print */
    [b-px1qixr1zf] .nested-body {
        display: block !important;
    }

    [b-px1qixr1zf] .expand-icon {
        display: none;
    }

    /* Ensure backgrounds print */
    [b-px1qixr1zf] .verdict-badge {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    /* Hide Plotly charts — canvas doesn't print reliably */
    .artifact-charts-section[b-px1qixr1zf],
    .plotly-chart-wrapper[b-px1qixr1zf] { display: none !important; }

    [b-px1qixr1zf] .data-table thead {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    [b-px1qixr1zf] .measurement-type-badge {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    [b-px1qixr1zf] .verdict-row-pass,
    [b-px1qixr1zf] .verdict-row-fail,
    [b-px1qixr1zf] .verdict-row-undetermined,
    [b-px1qixr1zf] .verdict-row-aborted {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    /* Simplify data table for print */
    [b-px1qixr1zf] .data-table {
        box-shadow: none;
        font-size: 10pt;
    }

    [b-px1qixr1zf] .data-table th {
        font-size: 9pt;
        padding: 6px 8px;
    }

    [b-px1qixr1zf] .data-table td {
        padding: 5px 8px;
        font-size: 10pt;
    }

    /* Header table print adjustments */
    [b-px1qixr1zf] .header-table td {
        font-size: 10pt;
        padding: 3px 8px;
    }

    /* Nested execution depth - remove indentation for print */
    [b-px1qixr1zf] .depth-1,
    [b-px1qixr1zf] .depth-2,
    [b-px1qixr1zf] .depth-3 {
        margin-left: 10px;
    }

    [b-px1qixr1zf] .nested-header {
        background: #f0f0f0;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}

/* ── Artifacts Section ─────────────────────────────────────────────── */

.artifacts-section[b-px1qixr1zf] {
    margin-top: 24px;
    padding: 16px;
    background: var(--ui-surface-2);
    border: 1px solid var(--ui-border);
    border-radius: 8px;
}

.artifacts-section h4[b-px1qixr1zf] {
    margin: 0 0 12px;
    font-size: 16px;
    color: var(--ui-text);
}

.artifacts-table[b-px1qixr1zf] {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.artifacts-table th[b-px1qixr1zf] {
    text-align: left;
    padding: 8px 10px;
    background: var(--ui-hover-bg);
    border-bottom: 2px solid var(--ui-border);
    font-weight: 600;
    color: var(--ui-text);
}

.artifacts-table td[b-px1qixr1zf] {
    padding: 8px 10px;
    border-bottom: 1px solid var(--ui-border);
    vertical-align: middle;
    color: var(--ui-text);
}

.artifacts-table .file-name[b-px1qixr1zf] {
    font-family: 'Consolas', 'Courier New', monospace;
    font-weight: 600;
}

.btn-download[b-px1qixr1zf] {
    display: inline-block;
    padding: 4px 12px;
    background: #0d6efd;
    color: white;
    border-radius: 4px;
    text-decoration: none;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

.btn-download:hover[b-px1qixr1zf] {
    background: #0b5ed7;
}

/* ── Inline Images ───────────────────────────────────────────────────────── */

.artifact-images-section[b-px1qixr1zf],
.artifact-charts-section[b-px1qixr1zf] {
    padding: 14px 0 0;
}

.artifact-inline-heading[b-px1qixr1zf] {
    margin: 0 0 10px;
    font-size: 13px;
    font-weight: 600;
    color: var(--ui-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.artifact-image-grid[b-px1qixr1zf] {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.artifact-image-figure[b-px1qixr1zf] {
    margin: 0;
    background: var(--ui-surface);
    border: 1px solid var(--ui-border);
    border-radius: 6px;
    overflow: hidden;
    max-width: 480px;
}

.artifact-inline-img[b-px1qixr1zf] {
    display: block;
    max-width: 100%;
    height: auto;
}

.artifact-image-figure figcaption[b-px1qixr1zf] {
    padding: 6px 10px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.artifact-img-name[b-px1qixr1zf] {
    font-family: 'Consolas', 'Courier New', monospace;
    font-size: 12px;
    color: var(--ui-text-muted);
}

.artifact-img-desc[b-px1qixr1zf] {
    font-size: 12px;
    color: var(--ui-text);
}

/* ── Plotly Charts ───────────────────────────────────────────────────────── */

.plotly-chart-wrapper[b-px1qixr1zf] {
    background: var(--ui-surface);
    border: 1px solid var(--ui-border);
    border-radius: 6px;
    overflow: hidden;
    margin-bottom: 16px;
}

.plotly-chart-header[b-px1qixr1zf] {
    padding: 8px 14px;
    background: var(--ui-surface-2);
    border-bottom: 1px solid var(--ui-border);
    display: flex;
    align-items: center;
    gap: 12px;
}

.plotly-chart-name[b-px1qixr1zf] {
    font-family: 'Consolas', 'Courier New', monospace;
    font-size: 13px;
    font-weight: 600;
    color: var(--ui-text);
}

.plotly-chart-desc[b-px1qixr1zf] {
    font-size: 12px;
    color: var(--ui-text-muted);
}

.plotly-chart-container[b-px1qixr1zf] {
    width: 100%;
    min-height: 360px;
}

.plotly-chart-loading[b-px1qixr1zf],
.plotly-chart-error[b-px1qixr1zf] {
    padding: 24px;
    text-align: center;
    font-size: 13px;
    color: var(--ui-text-muted);
    font-style: italic;
}

.plotly-chart-error[b-px1qixr1zf] { color: #dc3545; }

/* ── Execution Logs Section (collapsible wrapper around LogTable) ──── */

[b-px1qixr1zf] .execution-logs-section {
    margin-top: 24px;
    border: 1px solid var(--ui-border);
    border-radius: 8px;
    overflow: hidden;
}

[b-px1qixr1zf] .logs-toggle {
    width: 100%;
    padding: 12px 16px;
    background: var(--ui-surface-2);
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 600;
    color: var(--ui-text);
    text-align: left;
}

[b-px1qixr1zf] .logs-toggle:hover {
    background: var(--ui-hover-bg);
}

[b-px1qixr1zf] .logs-toggle .toggle-icon {
    font-size: 12px;
    color: var(--ui-text-muted);
}

[b-px1qixr1zf] .logs-toggle .log-count {
    font-weight: 400;
    color: var(--ui-text-muted);
    font-size: 13px;
}

[b-px1qixr1zf] .logs-loading,
[b-px1qixr1zf] .logs-empty {
    padding: 20px 16px;
    color: var(--ui-text-muted);
    font-size: 14px;
    border-top: 1px solid var(--ui-border);
}

/* Override LogTable panel shadow inside the collapsible section */
[b-px1qixr1zf] .execution-logs-section .log-table-panel {
    box-shadow: none;
    border-radius: 0;
}

/* ── Print: Execution Logs ───────────────────────────────────────── */
@media print {
    [b-px1qixr1zf] .logs-toggle {
        font-size: 12pt;
        padding: 6px 8px;
    }
}
/* /Components/Pages/TestResults.razor.rz.scp.css */
/* Test Results Search Page Styles */

.test-results-page[b-fmq1lufn3e] {
    padding: 20px;
    max-width: 1600px;
    margin: 0 auto;
}

.test-results-page h1[b-fmq1lufn3e] {
    margin-bottom: 20px;
    color: #333;
}

/*
 * All styles below target elements rendered by child components
 * (SearchForm, ResultsTable, ReportHeader, StepResultsTable, NestedExecutionSection).
 * Blazor CSS isolation requires ::deep so these selectors pierce child scope boundaries.
 */

/* Search Form */
[b-fmq1lufn3e] .search-form {
    background: #f8f9fa;
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 30px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

[b-fmq1lufn3e] .search-form h3 {
    margin-top: 0;
    margin-bottom: 15px;
    color: #333;
}

[b-fmq1lufn3e] .search-fields {
    margin-bottom: 15px;
}

[b-fmq1lufn3e] .search-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 15px;
    margin-bottom: 12px;
}

[b-fmq1lufn3e] .search-row .field label {
    display: block;
    margin-bottom: 5px;
    font-weight: 600;
    color: #495057;
    font-size: 13px;
}

[b-fmq1lufn3e] .search-row .field .form-control {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #ced4da;
    border-radius: 4px;
    font-size: 14px;
}

[b-fmq1lufn3e] .search-actions {
    display: flex;
    gap: 10px;
}

[b-fmq1lufn3e] .search-actions .btn {
    padding: 8px 20px;
    border: none;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
}

[b-fmq1lufn3e] .search-actions .btn-primary {
    background-color: #007bff;
    color: white;
}

[b-fmq1lufn3e] .search-actions .btn-primary:hover:not(:disabled) {
    background-color: #0056b3;
}

[b-fmq1lufn3e] .search-actions .btn-secondary {
    background-color: #6c757d;
    color: white;
}

[b-fmq1lufn3e] .search-actions .btn-secondary:hover:not(:disabled) {
    background-color: #545b62;
}

[b-fmq1lufn3e] .search-actions .btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Results Table Container */
[b-fmq1lufn3e] .results-table-container {
    margin-top: 20px;
}

[b-fmq1lufn3e] .results-summary {
    font-size: 14px;
    color: #666;
    margin-bottom: 10px;
}

[b-fmq1lufn3e] .no-data {
    padding: 40px;
    text-align: center;
    color: #999;
    font-style: italic;
}

/* Data Table */
[b-fmq1lufn3e] .data-table {
    width: 100%;
    border-collapse: collapse;
    background: white;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

[b-fmq1lufn3e] .data-table thead {
    background: #343a40;
    color: white;
}

[b-fmq1lufn3e] .data-table th {
    padding: 12px 15px;
    text-align: left;
    font-weight: 600;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

[b-fmq1lufn3e] .data-table td {
    padding: 10px 15px;
    border-bottom: 1px solid #eee;
    font-size: 14px;
}

[b-fmq1lufn3e] .data-table tbody tr:hover {
    background-color: #f8f9fa;
}

/* Expand Icon */
[b-fmq1lufn3e] .col-expand {
    width: 30px;
    text-align: center;
}

[b-fmq1lufn3e] .expand-icon {
    display: inline-block;
    transition: transform 0.2s, color 0.2s;
    cursor: pointer;
    font-size: 12px;
    color: #aaa;
}

[b-fmq1lufn3e] .expand-icon.expanded {
    transform: rotate(90deg);
    color: #007bff;
}

/* Result Row */
[b-fmq1lufn3e] .result-row {
    cursor: pointer;
}

[b-fmq1lufn3e] .result-row.expanded {
    background-color: #e9ecef;
    font-weight: 600;
}

/* Verdict Colors */
[b-fmq1lufn3e] .verdict-pass { color: #28a745; font-weight: 600; }
[b-fmq1lufn3e] .verdict-fail { color: #dc3545; font-weight: 600; }
[b-fmq1lufn3e] .verdict-undetermined { color: #ffc107; font-weight: 600; }
[b-fmq1lufn3e] .verdict-aborted { color: #6c757d; font-weight: 600; }
[b-fmq1lufn3e] .verdict-error { color: #dc3545; font-weight: 600; }

[b-fmq1lufn3e] .verdict-row-pass { border-left: 3px solid #28a745; background-color: rgba(40, 167, 69, 0.06); }
[b-fmq1lufn3e] .verdict-row-fail { border-left: 3px solid #dc3545; background-color: rgba(220, 53, 69, 0.06); }
[b-fmq1lufn3e] .verdict-row-undetermined { border-left: 3px solid #ffc107; background-color: rgba(255, 193, 7, 0.06); }
[b-fmq1lufn3e] .verdict-row-aborted { border-left: 3px solid #6c757d; background-color: rgba(108, 117, 125, 0.06); }

/* Inline Detail */
[b-fmq1lufn3e] .inline-detail-row td {
    padding: 0;
    border-bottom: 2px solid #dee2e6;
}

[b-fmq1lufn3e] .inline-detail {
    padding: 20px;
    background: #fdfdfd;
}

[b-fmq1lufn3e] .loading-detail {
    padding: 20px;
    text-align: center;
    color: #666;
    font-style: italic;
}

/* Report Header */
[b-fmq1lufn3e] .report-header {
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 20px;
    border: 1px solid #dee2e6;
}

[b-fmq1lufn3e] .report-header.verdict-pass { border-left: 4px solid #28a745; background: #f8fff9; }
[b-fmq1lufn3e] .report-header.verdict-fail { border-left: 4px solid #dc3545; background: #fff8f8; }
[b-fmq1lufn3e] .report-header.verdict-undetermined { border-left: 4px solid #ffc107; background: #fffef8; }
[b-fmq1lufn3e] .report-header.verdict-aborted { border-left: 4px solid #6c757d; background: #f8f8f8; }

[b-fmq1lufn3e] .verdict-badge {
    display: inline-block;
    padding: 6px 16px;
    border-radius: 20px;
    font-weight: 700;
    font-size: 14px;
    color: white;
    margin-bottom: 12px;
}

[b-fmq1lufn3e] .verdict-badge.verdict-pass { background-color: #28a745; }
[b-fmq1lufn3e] .verdict-badge.verdict-fail { background-color: #dc3545; }
[b-fmq1lufn3e] .verdict-badge.verdict-undetermined { background-color: #ffc107; color: #333; }
[b-fmq1lufn3e] .verdict-badge.verdict-aborted { background-color: #6c757d; }

[b-fmq1lufn3e] .header-info {
    margin-top: 8px;
}

[b-fmq1lufn3e] .header-table {
    width: 100%;
    border-collapse: collapse;
}

[b-fmq1lufn3e] .header-table td {
    padding: 4px 10px;
    font-size: 13px;
}

[b-fmq1lufn3e] .header-table td.label {
    font-weight: 600;
    color: #555;
    width: 15%;
    white-space: nowrap;
}

[b-fmq1lufn3e] .header-table td.value {
    color: #333;
    width: 35%;
    font-family: 'Courier New', monospace;
    word-break: break-word;
}

[b-fmq1lufn3e] .verdict-text-pass { color: #28a745; font-weight: 700; }
[b-fmq1lufn3e] .verdict-text-fail { color: #dc3545; font-weight: 700; }
[b-fmq1lufn3e] .verdict-text-undetermined { color: #ffc107; font-weight: 700; }
[b-fmq1lufn3e] .verdict-text-aborted { color: #6c757d; font-weight: 700; }

/* Step Results Table */
[b-fmq1lufn3e] .step-results-table {
    margin-top: 20px;
}

[b-fmq1lufn3e] .step-results-table h4 {
    margin-bottom: 10px;
    color: #333;
    font-size: 15px;
    font-weight: 600;
}

[b-fmq1lufn3e] .step-row {
    cursor: pointer;
}

[b-fmq1lufn3e] .col-order { width: 50px; text-align: center; }
[b-fmq1lufn3e] .col-name { min-width: 200px; }
[b-fmq1lufn3e] .col-duration { width: 100px; }
[b-fmq1lufn3e] .col-verdict { width: 100px; }
[b-fmq1lufn3e] .col-error { max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

[b-fmq1lufn3e] .iteration-badge {
    display: inline-block;
    padding: 1px 6px;
    background: #e9ecef;
    border-radius: 10px;
    font-size: 11px;
    color: #666;
    margin-left: 6px;
}

[b-fmq1lufn3e] .forced-badge {
    margin-left: 4px;
    color: #ffc107;
}

[b-fmq1lufn3e] .measurement-count {
    font-size: 12px;
    color: #999;
    margin-left: 6px;
}

/* Measurement Rows */
[b-fmq1lufn3e] .measurement-row {
    background: #f9f9f9;
    font-size: 13px;
}

[b-fmq1lufn3e] .measurement-row td {
    padding: 6px 15px;
}

[b-fmq1lufn3e] .measurement-indent {
    padding-left: 40px !important;
}

[b-fmq1lufn3e] .measurement-type-badge {
    display: inline-block;
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    margin-right: 6px;
    color: white;
}

[b-fmq1lufn3e] .type-numeric { background-color: #007bff; }
[b-fmq1lufn3e] .type-boolean { background-color: #17a2b8; }
[b-fmq1lufn3e] .type-string { background-color: #6f42c1; }

[b-fmq1lufn3e] .units {
    color: #999;
    font-size: 12px;
    margin-left: 2px;
}

/* Nested Executions */
[b-fmq1lufn3e] .nested-executions-section {
    margin-top: 25px;
}

[b-fmq1lufn3e] .nested-execution {
    border: 1px solid #dee2e6;
    border-radius: 6px;
    margin-bottom: 10px;
    overflow: hidden;
}

[b-fmq1lufn3e] .nested-header {
    padding: 10px 15px;
    background: #f8f9fa;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 10px;
}

[b-fmq1lufn3e] .nested-header:hover {
    background: #e9ecef;
}

[b-fmq1lufn3e] .nested-title {
    flex: 1;
    font-size: 14px;
}

[b-fmq1lufn3e] .nested-verdict {
    font-weight: 600;
    font-size: 13px;
}

[b-fmq1lufn3e] .nested-body {
    padding: 15px;
    border-top: 1px solid #dee2e6;
}

[b-fmq1lufn3e] .depth-1 { margin-left: 20px; }
[b-fmq1lufn3e] .depth-2 { margin-left: 40px; }
[b-fmq1lufn3e] .depth-3 { margin-left: 60px; }

/* Pagination */
[b-fmq1lufn3e] .pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    margin-top: 20px;
    padding: 15px;
}

[b-fmq1lufn3e] .pagination .btn {
    padding: 6px 14px;
    border: 1px solid #dee2e6;
    border-radius: 4px;
    background: white;
    cursor: pointer;
    font-size: 13px;
}

[b-fmq1lufn3e] .pagination .btn:hover:not(:disabled) {
    background: #e9ecef;
}

[b-fmq1lufn3e] .pagination .btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

[b-fmq1lufn3e] .page-info {
    font-size: 14px;
    color: #666;
}

/* Button styles */
[b-fmq1lufn3e] .btn-sm {
    padding: 4px 10px;
    font-size: 12px;
}

[b-fmq1lufn3e] .btn-outline {
    background: transparent;
    border: 1px solid #007bff;
    color: #007bff;
    border-radius: 4px;
    cursor: pointer;
    text-decoration: none;
}

[b-fmq1lufn3e] .btn-outline:hover {
    background: #007bff;
    color: white;
}

/* Tag Badges */
[b-fmq1lufn3e] .tags-cell {
    max-width: 250px;
}

[b-fmq1lufn3e] .tag-badge {
    display: inline-block;
    padding: 2px 8px;
    margin: 2px 4px 2px 0;
    background: #e9ecef;
    border: 1px solid #ced4da;
    border-radius: 12px;
    font-size: 11px;
    color: #495057;
    white-space: nowrap;
}

/* Config Snapshot */
[b-fmq1lufn3e] .config-snapshot-section {
    margin-top: 12px;
    border-top: 1px solid #dee2e6;
    padding-top: 8px;
}

[b-fmq1lufn3e] .config-snapshot-toggle {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    color: #495057;
    padding: 4px 0;
    display: flex;
    align-items: center;
    gap: 6px;
}

[b-fmq1lufn3e] .config-snapshot-toggle:hover {
    color: #007bff;
}

[b-fmq1lufn3e] .toggle-icon {
    font-size: 11px;
    width: 12px;
    text-align: center;
}

[b-fmq1lufn3e] .config-snapshot-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 8px;
    font-size: 13px;
}

[b-fmq1lufn3e] .config-snapshot-table th {
    text-align: left;
    padding: 6px 10px;
    background: #f1f3f5;
    border-bottom: 1px solid #dee2e6;
    font-weight: 600;
    color: #495057;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

[b-fmq1lufn3e] .config-snapshot-table td {
    padding: 5px 10px;
    border-bottom: 1px solid #eee;
}

[b-fmq1lufn3e] .config-snapshot-table .config-key {
    font-family: 'Consolas', 'Courier New', monospace;
    color: #495057;
    white-space: nowrap;
    width: 30%;
}

[b-fmq1lufn3e] .config-snapshot-table .config-value {
    font-family: 'Consolas', 'Courier New', monospace;
    color: #212529;
    word-break: break-all;
}

[b-fmq1lufn3e] .artifact-action-cell {
    display: flex;
    gap: 4px;
    align-items: center;
    white-space: nowrap;
}

[b-fmq1lufn3e] .artifact-action-cell .btn[disabled] {
    opacity: 0.38;
    cursor: not-allowed;
}

/* ── Responsive ─────────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .test-results-page[b-fmq1lufn3e] {
        padding: 12px;
    }

    .test-results-page h1[b-fmq1lufn3e] {
        font-size: 1.3rem;
    }

    [b-fmq1lufn3e] .search-row {
        grid-template-columns: 1fr;
    }

    /* Wrap the results table in a scrollable container */
    [b-fmq1lufn3e] .results-table-container {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Hide less important columns on small screens */
    [b-fmq1lufn3e] .data-table th:nth-child(4),
    [b-fmq1lufn3e] .data-table td:nth-child(4),
    [b-fmq1lufn3e] .data-table th:nth-child(5),
    [b-fmq1lufn3e] .data-table td:nth-child(5) {
        display: none;
    }

    /* Stack the report header info table */
    [b-fmq1lufn3e] .header-table td.label {
        width: auto;
        display: block;
        padding-bottom: 1px;
        font-size: 11px;
    }

    [b-fmq1lufn3e] .header-table td.value {
        width: auto;
        display: block;
        padding-top: 1px;
    }

    /* Reduce nesting indents on mobile */
    [b-fmq1lufn3e] .depth-1 { margin-left: 10px; }
    [b-fmq1lufn3e] .depth-2 { margin-left: 20px; }
    [b-fmq1lufn3e] .depth-3 { margin-left: 30px; }

    [b-fmq1lufn3e] .pagination {
        flex-wrap: wrap;
        gap: 8px;
    }
}
/* /Components/Pages/YamlValidator.razor.rz.scp.css */
.yaml-validator[b-794b041ohr] {
    padding: 20px;
    max-width: 1400px;
    margin: 0 auto;
}

.lead[b-794b041ohr] {
    color: #6c757d;
    margin-bottom: 24px;
}

/* ── Two-column layout ──────────────────────────────────────────────────── */

.validator-layout[b-794b041ohr] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    align-items: start;
}

@media (max-width: 900px) {
    .validator-layout[b-794b041ohr] {
        grid-template-columns: 1fr;
    }
}

/* ── Shared panel styles ─────────────────────────────────────────────────── */

.input-panel[b-794b041ohr],
.results-panel[b-794b041ohr] {
    border: 1px solid #dee2e6;
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
    display: flex;
    flex-direction: column;
}

.panel-header[b-794b041ohr] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    background: #f8f9fa;
    border-bottom: 1px solid #dee2e6;
    gap: 8px;
}

.panel-title[b-794b041ohr] {
    font-weight: 600;
    font-size: 0.9rem;
    color: #343a40;
    margin: 0;
}

.header-actions[b-794b041ohr] {
    display: flex;
    gap: 6px;
    align-items: center;
}

/* ── Editor with line numbers ──────────────────────────────────────────────── */

.editor-wrapper[b-794b041ohr] {
    --line-height: 1.23rem;
    display: flex;
    position: relative;
    min-height: 520px;
    background: #1e1e1e;
    border-radius: 0;
    overflow: hidden;
}

.editor-wrapper.textarea-valid[b-794b041ohr] {
    box-shadow: inset 0 0 0 2px #28a745;
}

.editor-wrapper.textarea-invalid[b-794b041ohr] {
    box-shadow: inset 0 0 0 2px #dc3545;
}

.line-numbers[b-794b041ohr] {
    margin: 0;
    padding: 14px 10px 14px 8px;
    font-family: 'Cascadia Code', 'Consolas', 'Courier New', monospace;
    font-size: 0.82rem;
    line-height: var(--line-height);
    color: #6e7681;
    background: #1a1a1a;
    border-right: 1px solid #333;
    text-align: right;
    user-select: none;
    pointer-events: none;
    min-width: 40px;
    flex-shrink: 0;
    overflow: hidden;
}

.yaml-textarea[b-794b041ohr] {
    flex: 1;
    min-height: 520px;
    padding: 14px;
    font-family: 'Cascadia Code', 'Consolas', 'Courier New', monospace;
    font-size: 0.82rem;
    line-height: var(--line-height);
    border: none;
    outline: none;
    resize: vertical;
    background: #1e1e1e;
    color: #d4d4d4;
    box-sizing: border-box;
    white-space: pre;
    overflow-wrap: normal;
    overflow-x: auto;
}

.error-markers[b-794b041ohr] {
    position: absolute;
    left: 0;
    top: 14px;
    width: 3px;
    pointer-events: none;
}

.error-marker[b-794b041ohr] {
    position: absolute;
    left: 0;
    height: var(--line-height);
    width: 3px;
    background: #dc3545;
    border-radius: 0 2px 2px 0;
}

.char-count[b-794b041ohr] {
    padding: 4px 14px;
    font-size: 0.75rem;
    color: #868e96;
    background: #1e1e1e;
    color: #666;
    border-top: 1px solid #2d2d2d;
}

/* ── Results body ─────────────────────────────────────────────────────────── */

.results-body[b-794b041ohr] {
    padding: 16px;
    min-height: 200px;
}

.placeholder[b-794b041ohr] {
    color: #868e96;
    font-size: 0.9rem;
    padding: 40px 0;
    text-align: center;
}

/* ── Valid result ─────────────────────────────────────────────────────────── */

.result-valid[b-794b041ohr] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 16px;
    background: #d4edda;
    border: 1px solid #c3e6cb;
    border-radius: 6px;
    color: #155724;
}

.result-icon[b-794b041ohr] {
    font-size: 1.4rem;
    flex-shrink: 0;
}

.result-detail[b-794b041ohr] {
    font-size: 0.85rem;
    margin-top: 4px;
    color: #1e7e34;
}

/* ── Invalid result / errors ─────────────────────────────────────────────── */

.result-invalid[b-794b041ohr] {
    border: 1px solid #f5c6cb;
    border-radius: 6px;
    overflow: hidden;
}

.error-summary[b-794b041ohr] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    background: #f8d7da;
    color: #721c24;
    font-size: 0.9rem;
}

.error-list[b-794b041ohr] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.error-item[b-794b041ohr] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 8px 16px;
    border-top: 1px solid #f5c6cb;
    font-size: 0.85rem;
}

.error-item:nth-child(odd)[b-794b041ohr] {
    background: #fff5f5;
}

.error-location[b-794b041ohr] {
    flex-shrink: 0;
    min-width: 100px;
    font-family: 'Consolas', monospace;
    font-size: 0.78rem;
    color: #868e96;
    white-space: nowrap;
}

.error-location-link[b-794b041ohr] {
    background: none;
    border: 1px solid transparent;
    padding: 1px 4px;
    border-radius: 3px;
    cursor: pointer;
    color: #4a9eff;
    text-decoration: underline;
}

.error-location-link:hover[b-794b041ohr] {
    background: #e7f0ff;
    border-color: #a8d0ff;
    text-decoration: none;
}

.error-semantic[b-794b041ohr] {
    color: #e07b00;
}

.error-message[b-794b041ohr] {
    color: #343a40;
    line-height: 1.4;
}

/* ── API error banner ─────────────────────────────────────────────────────── */

.alert-error[b-794b041ohr] {
    padding: 12px 16px;
    background: #fff3cd;
    border: 1px solid #ffc107;
    border-radius: 6px;
    color: #856404;
    font-size: 0.875rem;
}

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

.btn[b-794b041ohr] {
    padding: 5px 12px;
    border-radius: 4px;
    border: 1px solid transparent;
    cursor: pointer;
    font-size: 0.82rem;
    font-weight: 500;
    white-space: nowrap;
}

.btn-sm[b-794b041ohr] {
    padding: 3px 10px;
    font-size: 0.78rem;
}

.btn-primary[b-794b041ohr] {
    background: #0d6efd;
    color: #fff;
    border-color: #0d6efd;
}

.btn-primary:hover:not(:disabled)[b-794b041ohr] {
    background: #0b5ed7;
}

.btn-secondary[b-794b041ohr] {
    background: #6c757d;
    color: #fff;
    border-color: #6c757d;
}

.btn-secondary:hover:not(:disabled)[b-794b041ohr] {
    background: #5c636a;
}

.btn:disabled[b-794b041ohr] {
    opacity: 0.55;
    cursor: not-allowed;
}

.visually-hidden[b-794b041ohr] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    border: 0;
}
/* /Components/Shared/LogTable.razor.rz.scp.css */
/* ── LogTable component (reusable across test-monitor & test-results) ──
 * Colors use the app's --ui-* semantic tokens (wwwroot/app.css) so the table renders
 * correctly in both light and dark themes. The dark slate column header is kept literal
 * (reads well on both backgrounds, matching the report's step table).
 */

.log-table-panel[b-60mp9uf8a8] {
    background: var(--ui-surface);
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    overflow: hidden;
}

.log-table-header[b-60mp9uf8a8] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px 0;
}

.log-table-header h3[b-60mp9uf8a8] {
    margin: 0 0 12px;
    color: var(--ui-text);
    border-bottom: 2px solid #007bff;
    padding-bottom: 10px;
}

.auto-scroll-toggle[b-60mp9uf8a8] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--ui-text-muted);
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
    margin-bottom: 12px;
}

.auto-scroll-toggle input[b-60mp9uf8a8] {
    accent-color: #007bff;
}

/* Scrollable container */
.log-table-scroll[b-60mp9uf8a8] {
    max-height: 420px;
    overflow-y: auto;
    overflow-x: auto;
}

/* Table */
.log-data-table[b-60mp9uf8a8] {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    table-layout: fixed;
}

.log-data-table thead[b-60mp9uf8a8] {
    position: sticky;
    top: 0;
    z-index: 1;
}

.log-column-headers th[b-60mp9uf8a8] {
    background: #343a40;
    color: white;
    padding: 8px 10px;
    text-align: left;
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.log-column-filters td[b-60mp9uf8a8] {
    background: var(--ui-surface-2);
    padding: 4px 6px;
    border-bottom: 2px solid var(--ui-border);
}

.log-column-filters input[b-60mp9uf8a8] {
    width: 100%;
    padding: 3px 6px;
    border: 1px solid var(--ui-input-border);
    border-radius: 3px;
    font-size: 12px;
    background: var(--ui-input-bg);
    color: var(--ui-input-text);
    box-sizing: border-box;
}

.log-column-filters input:focus[b-60mp9uf8a8] {
    outline: none;
    border-color: #007bff;
    box-shadow: 0 0 0 2px rgba(0,123,255,0.15);
}

/* Column widths */
.col-ts[b-60mp9uf8a8]   { width: 110px; }
.col-lvl[b-60mp9uf8a8]  { width: 110px; }
.col-src[b-60mp9uf8a8]  { width: 110px; }
.col-step[b-60mp9uf8a8] { width: 140px; }
.col-msg[b-60mp9uf8a8]  { min-width: 200px; }

/* Data rows */
.log-data-table tbody td[b-60mp9uf8a8] {
    padding: 4px 10px;
    border-bottom: 1px solid var(--ui-border);
    color: var(--ui-text);
    font-family: 'Consolas', 'Courier New', monospace;
    font-size: 12px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.log-data-table tbody td.col-msg[b-60mp9uf8a8] {
    white-space: pre-wrap;
    word-break: break-word;
}

.log-data-table tbody tr:hover[b-60mp9uf8a8] {
    background-color: var(--ui-hover-bg);
}

/* Level colouring */
.level-info[b-60mp9uf8a8]   { }
.level-warning[b-60mp9uf8a8] { background: rgba(255, 193, 7, 0.06); }
.level-error[b-60mp9uf8a8]   { background: rgba(220, 53, 69, 0.05); }

.level-warning td.col-msg[b-60mp9uf8a8] { color: #d39e00; }
.level-error   td.col-msg[b-60mp9uf8a8] { color: #dc3545; }

.level-icon[b-60mp9uf8a8] {
    margin-right: 4px;
}

/* Footer */
.log-table-footer[b-60mp9uf8a8] {
    padding: 6px 16px;
    background: var(--ui-surface-2);
    border-top: 1px solid var(--ui-border);
    font-size: 12px;
    color: var(--ui-text-muted);
}

/* No-data fallback */
.no-data[b-60mp9uf8a8] {
    text-align: center;
    color: var(--ui-text-muted);
    font-style: italic;
    padding: 40px;
}

/* ── Print ────────────────────────────────────────── */
@media print {
    .log-table-scroll[b-60mp9uf8a8] {
        max-height: none;
        overflow: visible;
    }

    .log-column-filters[b-60mp9uf8a8],
    .auto-scroll-toggle[b-60mp9uf8a8],
    .log-table-footer[b-60mp9uf8a8] {
        display: none;
    }

    .log-data-table[b-60mp9uf8a8] {
        font-size: 8pt;
    }

    .log-column-headers th[b-60mp9uf8a8] {
        background: #333;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
        padding: 4px 6px;
        font-size: 7pt;
    }

    .log-data-table tbody td[b-60mp9uf8a8] {
        padding: 2px 6px;
        font-size: 8pt;
    }
}
/* /Components/TestMonitor/ExecutionDetail.razor.rz.scp.css */
/* Detail styles shared with /test-monitor and the parallel grid. NOTE: copied from
   TestMonitor.razor.css to give ExecutionDetail its scoped styles; the now-dead detail
   rules (status-banner onward) can be pruned from TestMonitor.razor.css as cleanup. */
/* Test Monitor Styles */

.test-monitor[b-r8lt20c2et] {
    padding: 20px;
    max-width: 1600px;
    margin: 0 auto;
}

.test-monitor h1[b-r8lt20c2et] {
    margin-bottom: 20px;
    color: #333;
}

/* Connection Status */
.connection-status[b-r8lt20c2et] {
    display: flex;
    align-items: center;
    padding: 10px 15px;
    border-radius: 4px;
    margin-bottom: 20px;
    font-size: 14px;
}

.connection-status.connected[b-r8lt20c2et] {
    background-color: #d4edda;
    color: #155724;
}

.connection-status.disconnected[b-r8lt20c2et] {
    background-color: #f8d7da;
    color: #721c24;
}

.status-indicator[b-r8lt20c2et] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    margin-right: 10px;
    display: inline-block;
}

.connection-status.connected .status-indicator[b-r8lt20c2et] {
    background-color: #28a745;
    box-shadow: 0 0 8px #28a745;
}

.connection-status.disconnected .status-indicator[b-r8lt20c2et] {
    background-color: #dc3545;
    box-shadow: 0 0 8px #dc3545;
}

/* MES connectivity badge inside connection bar */
.mes-status-indicator[b-r8lt20c2et] {
    margin-left: auto;
    font-size: 11px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 4px;
    letter-spacing: 0.5px;
}

.mes-status-indicator.mes-ok[b-r8lt20c2et] {
    background-color: #28a745;
    color: #fff;
}

.mes-status-indicator.mes-down[b-r8lt20c2et] {
    background-color: #dc3545;
    color: #fff;
    animation: pulse-b-r8lt20c2et 2s infinite;
}

/* Execution Controls */
.execution-controls[b-r8lt20c2et] {
    background: #f8f9fa;
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 30px;
}

.execution-controls h3[b-r8lt20c2et] {
    margin-top: 0;
    margin-bottom: 15px;
}

.form-group[b-r8lt20c2et] {
    margin-bottom: 15px;
}

.form-group label[b-r8lt20c2et] {
    display: block;
    margin-bottom: 5px;
    font-weight: 600;
    color: #495057;
}

.form-control[b-r8lt20c2et] {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #ced4da;
    border-radius: 4px;
    font-size: 14px;
}

.form-control-static[b-r8lt20c2et] {
    display: block;
    width: 100%;
    padding: 8px 12px;
    border: 1px solid transparent;
    border-radius: 4px;
    font-size: 14px;
    background: #f8f9fa;
    color: #6c757d;
    font-family: monospace;
    cursor: default;
}

.form-group select.form-control[b-r8lt20c2et] {
    appearance: auto;
}

.test-file-picker[b-r8lt20c2et] {
    display: flex;
    gap: 8px;
    align-items: center;
}

.test-file-picker select.form-control[b-r8lt20c2et] {
    flex: 1;
}

.btn-refresh-tests[b-r8lt20c2et] {
    flex-shrink: 0;
    background: none;
    border: 1px solid #ced4da;
    border-radius: 4px;
    padding: 8px 10px;
    font-size: 16px;
    cursor: pointer;
    color: #495057;
    line-height: 1;
}

.btn-refresh-tests:hover:not(:disabled)[b-r8lt20c2et] {
    background-color: #e9ecef;
    color: #212529;
}

.btn-refresh-tests:disabled[b-r8lt20c2et] {
    opacity: 0.5;
    cursor: not-allowed;
}

.form-row[b-r8lt20c2et] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

/* Required tags section — shown above the optional <details> when a test declares required_tags */
.required-tags-section[b-r8lt20c2et] {
    margin-bottom: 15px;
    padding: 12px 15px;
    background: #fff8e1;
    border: 1px solid #ffc107;
    border-left: 4px solid #ffc107;
    border-radius: 4px;
}

.required-tags-heading[b-r8lt20c2et] {
    margin: 0 0 10px 0;
    font-weight: 700;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: #856404;
}

.required-marker[b-r8lt20c2et] {
    color: #dc3545;
    font-weight: 700;
}

.tags-section[b-r8lt20c2et] {
    margin: 10px 0;
    padding: 8px 0;
}

.tags-section summary[b-r8lt20c2et] {
    cursor: pointer;
    font-weight: 600;
    color: #555;
    margin-bottom: 8px;
}

.tags-section[open] summary[b-r8lt20c2et] {
    margin-bottom: 12px;
}

.btn[b-r8lt20c2et] {
    padding: 10px 20px;
    border: none;
    border-radius: 4px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
}

.btn-primary[b-r8lt20c2et] {
    background-color: #007bff;
    color: white;
}

.btn-primary:hover:not(:disabled)[b-r8lt20c2et] {
    background-color: #0056b3;
}

.btn:disabled[b-r8lt20c2et] {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Status Banner */
.status-banner[b-r8lt20c2et] {
    padding: 30px;
    border-radius: 8px;
    margin-bottom: 30px;
    color: white;
    font-weight: bold;
}

.status-banner.status-running[b-r8lt20c2et] {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    animation: pulse-b-r8lt20c2et 2s infinite;
}

.status-banner.status-pass[b-r8lt20c2et] {
    background: linear-gradient(135deg, #11998e 0%, #38ef7d 100%);
}

.status-banner.status-fail[b-r8lt20c2et] {
    background: linear-gradient(135deg, #eb3349 0%, #f45c43 100%);
}

.status-banner.status-undetermined[b-r8lt20c2et] {
    background: linear-gradient(135deg, #f2994a 0%, #f2c94c 100%);
}

.status-banner.status-aborted[b-r8lt20c2et] {
    background: linear-gradient(135deg, #636363 0%, #a2ab58 100%);
}

.status-banner.status-completed[b-r8lt20c2et] {
    background: linear-gradient(135deg, #4e54c8 0%, #8f94fb 100%);
}

.status-banner.status-pending[b-r8lt20c2et],
.status-banner.status-queued[b-r8lt20c2et] {
    background: linear-gradient(135deg, #374151 0%, #4b5563 100%);
}

.status-content h2[b-r8lt20c2et] {
    margin: 0 0 20px 0;
    font-size: 32px;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}

/* Test Information Table */
.test-info-table[b-r8lt20c2et] {
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(10px);
    border-radius: 8px;
    padding: 20px;
    margin-top: 15px;
}

.test-info-table table[b-r8lt20c2et] {
    width: 100%;
    border-collapse: collapse;
}

.test-info-table tr[b-r8lt20c2et] {
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.test-info-table tr:last-child[b-r8lt20c2et] {
    border-bottom: none;
}

.test-info-table td[b-r8lt20c2et] {
    padding: 8px 12px;
    font-size: 14px;
}

.test-info-table td.label[b-r8lt20c2et] {
    font-weight: 600;
    text-align: right;
    width: 15%;
    opacity: 0.9;
}

.test-info-table td.value[b-r8lt20c2et] {
    text-align: left;
    width: 35%;
    font-family: 'Courier New', monospace;
}

.test-info-table .status-text-pass[b-r8lt20c2et] {
    color: white;
    font-weight: bold;
    text-shadow: 1px 1px 3px rgba(0,0,0,0.5);
}

.test-info-table .status-text-fail[b-r8lt20c2et] {
    color: white;
    font-weight: bold;
    text-shadow: 1px 1px 3px rgba(0,0,0,0.5);
}

.test-info-table .status-text-running[b-r8lt20c2et] {
    color: white;
    font-weight: bold;
    text-shadow: 1px 1px 3px rgba(0,0,0,0.5);
}

.test-info-table .status-text-aborted[b-r8lt20c2et] {
    color: white;
    font-weight: bold;
    text-shadow: 1px 1px 3px rgba(0,0,0,0.5);
}

.timestamp[b-r8lt20c2et], .duration[b-r8lt20c2et] {
    display: inline-block;
    margin: 0 15px;
    font-size: 14px;
    opacity: 0.9;
}

@keyframes pulse-b-r8lt20c2et {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.85; }
}

/* Progress Section */
.progress-section[b-r8lt20c2et] {
    background: white;
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 30px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.progress-info[b-r8lt20c2et] {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
}

.step-counter[b-r8lt20c2et] {
    font-weight: 600;
    color: #007bff;
}

.step-name[b-r8lt20c2et] {
    color: #6c757d;
    font-style: italic;
}

.progress-bar-container[b-r8lt20c2et] {
    height: 30px;
    background-color: #e9ecef;
    border-radius: 15px;
    overflow: hidden;
    margin-bottom: 5px;
}

.progress-bar[b-r8lt20c2et] {
    height: 100%;
    background: linear-gradient(90deg, #007bff 0%, #0056b3 100%);
    transition: width 0.5s ease;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding-right: 10px;
    color: white;
    font-weight: bold;
}

.progress-percentage[b-r8lt20c2et] {
    text-align: right;
    font-size: 14px;
    color: #6c757d;
}

/* Data Panels Grid */
.data-panels[b-r8lt20c2et] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 30px;
}

/* ::deep allows parent scoped styles to reach child component markup */
.data-panels[b-r8lt20c2et]  .panel {
    background: white;
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.data-panels[b-r8lt20c2et]  .panel h3 {
    margin-top: 0;
    margin-bottom: 15px;
    color: #333;
    border-bottom: 2px solid #007bff;
    padding-bottom: 10px;
}

.data-panels[b-r8lt20c2et]  .log-table-panel {
    grid-column: span 2;
}

/* Variables panel: limit height and enable scroll */
.data-panels[b-r8lt20c2et]  .variables-panel .table-scroll-wrapper {
    max-height: 300px;
    overflow-y: auto;
    overflow-x: auto;
}

/* Data Tables (used by VariablesPanel) */
.data-panels[b-r8lt20c2et]  .data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.data-panels[b-r8lt20c2et]  .variables-panel .data-table td {
    max-width: 400px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.data-panels[b-r8lt20c2et]  .data-table thead {
    background-color: #f8f9fa;
}

.data-panels[b-r8lt20c2et]  .data-table th {
    text-align: left;
    padding: 10px;
    font-weight: 600;
    color: #495057;
    border-bottom: 2px solid #dee2e6;
}

.data-panels[b-r8lt20c2et]  .data-table td {
    padding: 10px;
    border-bottom: 1px solid #dee2e6;
}

.data-panels[b-r8lt20c2et]  .data-table tbody tr:hover {
    background-color: #f8f9fa;
}

.data-panels[b-r8lt20c2et]  .data-table code {
    background-color: #f1f3f5;
    padding: 2px 6px;
    border-radius: 3px;
    font-family: 'Courier New', monospace;
    font-size: 13px;
}

.data-panels[b-r8lt20c2et]  .timestamp {
    color: #6c757d;
    font-size: 12px;
}

.data-panels[b-r8lt20c2et]  .highlight-new {
    background-color: #fff3cd !important;
    animation: fadeHighlight-b-r8lt20c2et 2s forwards;
}

@keyframes fadeHighlight-b-r8lt20c2et {
    from { background-color: #fff3cd; }
    to { background-color: transparent; }
}

/* No Data State */
.data-panels[b-r8lt20c2et]  .no-data {
    text-align: center;
    color: #6c757d;
    font-style: italic;
    padding: 40px;
}

.no-execution[b-r8lt20c2et] {
    background: #f8f9fa;
    padding: 60px;
    text-align: center;
    border-radius: 8px;
    margin-top: 30px;
}

.no-execution p[b-r8lt20c2et] {
    font-size: 16px;
    color: #6c757d;
}

/* Responsive Design */
@media (max-width: 1200px) {
    .data-panels[b-r8lt20c2et] {
        grid-template-columns: 1fr;
    }

    .data-panels[b-r8lt20c2et]  .log-table-panel {
        grid-column: span 1;
    }

    .data-panels[b-r8lt20c2et]  .step-tree-panel {
        grid-column: span 1;
    }
}

@media (max-width: 768px) {
    .test-monitor[b-r8lt20c2et] {
        padding: 12px;
    }

    .test-monitor h1[b-r8lt20c2et] {
        font-size: 1.3rem;
    }

    .form-row[b-r8lt20c2et] {
        grid-template-columns: 1fr;
    }

    .progress-info[b-r8lt20c2et] {
        flex-direction: column;
        gap: 5px;
    }

    .execution-controls[b-r8lt20c2et] {
        padding: 12px;
    }

    /* Stack the test-info-table cells vertically on mobile */
    .test-info-table table[b-r8lt20c2et],
    .test-info-table tbody[b-r8lt20c2et],
    .test-info-table tr[b-r8lt20c2et],
    .test-info-table td[b-r8lt20c2et] {
        display: block;
        width: 100%;
    }

    .test-info-table tr[b-r8lt20c2et] {
        margin-bottom: 4px;
    }

    .test-info-table td.label[b-r8lt20c2et] {
        text-align: left;
        width: 100%;
        padding-bottom: 1px;
        font-size: 11px;
        opacity: 0.7;
    }

    .test-info-table td.value[b-r8lt20c2et] {
        width: 100%;
        padding-top: 1px;
    }

    .status-content h2[b-r8lt20c2et] {
        font-size: 1.4rem;
    }

    .timestamp[b-r8lt20c2et], .duration[b-r8lt20c2et] {
        display: block;
        margin: 2px 0;
    }

    .no-execution[b-r8lt20c2et] {
        padding: 30px 16px;
    }
}

/* ── MES Routing Panel ──────────────────────────────────────────────── */

.mes-panel[b-r8lt20c2et] {
    padding: 10px 14px;
    border-radius: 6px;
    margin-bottom: 12px;
    font-size: 14px;
    border: 1px solid transparent;
}

.mes-loading[b-r8lt20c2et] {
    background-color: #e8f4fd;
    color: #0c5460;
    border-color: #bee5eb;
    display: flex;
    align-items: center;
    gap: 8px;
}

.mes-spinner[b-r8lt20c2et] {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid #0c5460;
    border-top-color: transparent;
    border-radius: 50%;
    animation: mes-spin-b-r8lt20c2et 0.8s linear infinite;
}

@keyframes mes-spin-b-r8lt20c2et {
    to { transform: rotate(360deg); }
}

.mes-warning[b-r8lt20c2et] {
    background-color: #fff3cd;
    color: #856404;
    border-color: #ffeeba;
    display: flex;
    align-items: center;
    gap: 8px;
}

.mes-rejected[b-r8lt20c2et] {
    background-color: #f8d7da;
    color: #721c24;
    border-color: #f5c6cb;
}

.mes-routing[b-r8lt20c2et] {
    background-color: #f0f4ff;
    border-color: #c3d4f7;
}

.mes-header[b-r8lt20c2et] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 8px;
    flex-wrap: wrap;
}

.mes-work-order[b-r8lt20c2et],
.mes-operation[b-r8lt20c2et] {
    font-size: 12px;
    background: #d6e4ff;
    color: #1a3a6e;
    padding: 2px 8px;
    border-radius: 4px;
}

.mes-options[b-r8lt20c2et] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.mes-option[b-r8lt20c2et] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border: 1px solid #ccc;
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
    text-align: left;
    transition: border-color 0.15s, background-color 0.15s;
}

.mes-option:hover:not(:disabled)[b-r8lt20c2et] {
    border-color: #6c9bef;
    background-color: #f7faff;
}

.mes-option.selected[b-r8lt20c2et] {
    border-color: #3b7ddd;
    background-color: #eaf1fb;
    box-shadow: 0 0 0 2px rgba(59, 125, 221, 0.25);
}

.mes-option:disabled[b-r8lt20c2et] {
    opacity: 0.6;
    cursor: not-allowed;
}

.mes-badge[b-r8lt20c2et] {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    padding: 2px 8px;
    border-radius: 4px;
    white-space: nowrap;
}

.mes-required .mes-badge[b-r8lt20c2et] {
    background-color: #dc3545;
    color: #fff;
}

.mes-optional .mes-badge[b-r8lt20c2et] {
    background-color: #ffc107;
    color: #333;
}

.mes-rerunnable .mes-badge[b-r8lt20c2et] {
    background-color: #17a2b8;
    color: #fff;
}

.mes-option-name[b-r8lt20c2et] {
    font-weight: 500;
}

.mes-option-desc[b-r8lt20c2et] {
    color: #666;
    font-size: 12px;
    margin-left: auto;
}

.station-config-grid[b-r8lt20c2et] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 2px 12px;
    font-size: 12px;
    font-family: monospace;
    padding: 6px 0;
}

.cfg-key[b-r8lt20c2et] {
    color: #0077cc;
    white-space: nowrap;
}

.cfg-value[b-r8lt20c2et] {
    color: #444;
    overflow-wrap: anywhere;
}

/* ── Completed-run artifact panel ──────────────────────────────────── */

.monitor-artifacts-section[b-r8lt20c2et] {
    margin-top: 16px;
    border-top: 1px solid #dee2e6;
    padding-top: 8px;
}

.monitor-artifacts-section .config-snapshot-toggle[b-r8lt20c2et] {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    color: #495057;
    padding: 4px 0;
    display: flex;
    align-items: center;
    gap: 6px;
}

.monitor-artifacts-section .config-snapshot-toggle:hover[b-r8lt20c2et] {
    color: #007bff;
}

.monitor-artifacts-section .config-snapshot-table[b-r8lt20c2et] {
    width: 100%;
    border-collapse: collapse;
    margin-top: 8px;
    font-size: 13px;
}

.monitor-artifacts-section .config-snapshot-table th[b-r8lt20c2et] {
    text-align: left;
    padding: 6px 10px;
    background: #f1f3f5;
    border-bottom: 1px solid #dee2e6;
    font-weight: 600;
    color: #495057;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.monitor-artifacts-section .config-snapshot-table td[b-r8lt20c2et] {
    padding: 5px 10px;
    border-bottom: 1px solid #eee;
}

.monitor-artifacts-section .config-key[b-r8lt20c2et] {
    font-family: 'Consolas', 'Courier New', monospace;
    color: #495057;
    white-space: nowrap;
}

.monitor-artifacts-section .config-value[b-r8lt20c2et] {
    font-family: 'Consolas', 'Courier New', monospace;
    color: #212529;
    word-break: break-all;
}

.monitor-artifacts-section .artifact-action-cell[b-r8lt20c2et] {
    display: flex;
    gap: 4px;
    align-items: center;
    white-space: nowrap;
}

.monitor-artifacts-section .artifact-action-cell .btn[disabled][b-r8lt20c2et] {
    opacity: 0.38;
    cursor: not-allowed;
}

/* ── Orchestra lock banner ────────────────────────────────────────────────── */

.station-lock-banner[b-r8lt20c2et] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
    background: rgba(251, 191, 36, 0.12);
    border: 1px solid rgba(251, 191, 36, 0.4);
    border-radius: 6px;
    color: #92400e;
}

.station-lock-banner__icon[b-r8lt20c2et] {
    font-size: 1.25rem;
    flex-shrink: 0;
}

.station-lock-banner__text[b-r8lt20c2et] {
    font-size: 0.9rem;
}

.station-lock-banner__expiry[b-r8lt20c2et] {
    font-size: 0.8rem;
    opacity: 0.75;
}
/* /Components/TestMonitor/OperatorPromptDialog.razor.rz.scp.css */
/* Operator Prompt Dialog Styles */

.prompt-overlay[b-9uiuqv8kx9] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}

.prompt-dialog[b-9uiuqv8kx9] {
    background: #fff;
    border-radius: 12px;
    padding: 28px 32px;
    min-width: 380px;
    max-width: 560px;
    width: 90vw;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
    animation: prompt-slide-in-b-9uiuqv8kx9 0.2s ease-out;
}

@keyframes prompt-slide-in-b-9uiuqv8kx9 {
    from { opacity: 0; transform: translateY(-20px); }
    to   { opacity: 1; transform: translateY(0); }
}

.prompt-title[b-9uiuqv8kx9] {
    margin: 0 0 4px;
    font-size: 20px;
    color: #1a1a2e;
}

.prompt-step-name[b-9uiuqv8kx9] {
    margin: 0 0 16px;
    font-size: 13px;
    color: #6c757d;
}

.prompt-message[b-9uiuqv8kx9] {
    font-size: 15px;
    line-height: 1.6;
    color: #333;
    margin-bottom: 18px;
    white-space: pre-wrap;
}

.prompt-media[b-9uiuqv8kx9] {
    margin-bottom: 16px;
    text-align: center;
}

.prompt-media img[b-9uiuqv8kx9],
.prompt-media video[b-9uiuqv8kx9] {
    max-width: 100%;
    max-height: 280px;
    border-radius: 6px;
    border: 1px solid #dee2e6;
}

.prompt-timeout[b-9uiuqv8kx9] {
    text-align: center;
    font-size: 13px;
    color: #856404;
    background: #fff3cd;
    border: 1px solid #ffeeba;
    border-radius: 6px;
    padding: 6px 12px;
    margin-bottom: 16px;
}

.prompt-buttons[b-9uiuqv8kx9] {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    flex-wrap: wrap;
}

.prompt-btn[b-9uiuqv8kx9] {
    padding: 10px 24px;
    border: none;
    border-radius: 6px;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
}

.prompt-btn:hover[b-9uiuqv8kx9] {
    filter: brightness(0.9);
}

.prompt-btn-pass[b-9uiuqv8kx9] {
    background-color: #28a745;
    color: #fff;
}

.prompt-btn-fail[b-9uiuqv8kx9] {
    background-color: #dc3545;
    color: #fff;
}

.prompt-btn-abort[b-9uiuqv8kx9] {
    background-color: #6c757d;
    color: #fff;
}

.prompt-btn-default[b-9uiuqv8kx9] {
    background-color: #007bff;
    color: #fff;
}

/* ── Value-input section ───────────────────────────────────────────── */

.prompt-input-section[b-9uiuqv8kx9] {
    margin-bottom: 18px;
}

.prompt-input-row[b-9uiuqv8kx9] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.prompt-input-field[b-9uiuqv8kx9] {
    width: 100%;
    padding: 8px 12px;
    font-size: 15px;
    border: 1px solid #ced4da;
    border-radius: 6px;
    box-sizing: border-box;
    transition: border-color 0.15s;
}

.prompt-input-field:focus[b-9uiuqv8kx9] {
    outline: none;
    border-color: #007bff;
    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.15);
}

.prompt-input-select[b-9uiuqv8kx9] {
    cursor: pointer;
}

.prompt-input-unit[b-9uiuqv8kx9] {
    white-space: nowrap;
    font-size: 14px;
    color: #495057;
    font-weight: 500;
    min-width: 28px;
}

.prompt-input-hint[b-9uiuqv8kx9] {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    color: #6c757d;
}

/* Boolean toggle group */

.prompt-bool-group[b-9uiuqv8kx9] {
    display: flex;
    gap: 10px;
}

.prompt-bool-btn[b-9uiuqv8kx9] {
    flex: 1;
    padding: 9px 0;
    font-size: 14px;
    font-weight: 600;
    border: 2px solid #ced4da;
    border-radius: 6px;
    background: #f8f9fa;
    cursor: pointer;
    transition: all 0.15s;
    color: #495057;
}

.prompt-bool-btn:hover[b-9uiuqv8kx9] {
    border-color: #007bff;
    color: #007bff;
}

.prompt-bool-selected[b-9uiuqv8kx9] {
    border-color: #007bff;
    background: #007bff;
    color: #fff;
}

.prompt-bool-selected:hover[b-9uiuqv8kx9] {
    filter: brightness(0.92);
}

/* Disable submit buttons when input required but empty */

.prompt-btn:disabled[b-9uiuqv8kx9] {
    opacity: 0.45;
    cursor: not-allowed;
    filter: none;
}
/* /Components/TestMonitor/StepTreeView.razor.rz.scp.css */
/* Step TreeView Styles */

.step-tree-panel[b-iklxbaqafu] {
    min-width: 0; /* prevents grid blowout on wide tables */
}

.step-tree-table[b-iklxbaqafu] {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.step-tree-table thead[b-iklxbaqafu] {
    background-color: #f8f9fa;
}

.step-tree-table th[b-iklxbaqafu] {
    text-align: left;
    padding: 10px;
    font-weight: 600;
    color: #495057;
    border-bottom: 2px solid #dee2e6;
}

.step-tree-table td[b-iklxbaqafu] {
    padding: 10px;
    border-bottom: 1px solid #dee2e6;
}

/* Column widths */
.col-expand[b-iklxbaqafu] {
    width: 30px;
    text-align: center;
    cursor: pointer;
}

.col-status[b-iklxbaqafu] {
    width: 40px;
    text-align: center;
}

.col-name[b-iklxbaqafu] {
    min-width: 200px;
}

.col-detail[b-iklxbaqafu] {
    width: 200px;
    font-family: 'Courier New', monospace;
}

.col-verdict[b-iklxbaqafu] {
    width: 100px;
    text-align: center;
}

/* Expand icon */
.expand-icon[b-iklxbaqafu] {
    display: inline-block;
    transition: transform 0.2s ease;
    font-size: 10px;
    color: #6c757d;
    user-select: none;
}

.expand-icon.expanded[b-iklxbaqafu] {
    transform: rotate(90deg);
}

/* Step rows */
.step-row[b-iklxbaqafu] {
    cursor: pointer;
    transition: background-color 0.15s;
}

.step-row:hover[b-iklxbaqafu] {
    background-color: #f1f3f5;
}

.step-row.step-pending[b-iklxbaqafu] {
    color: #6c757d;
}

.step-row.step-running[b-iklxbaqafu] {
    background-color: #e7f1ff;
    border-left: 4px solid #007bff;
    font-weight: 600;
}

.step-row.step-completed[b-iklxbaqafu] {
    /* default — verdict classes below override */
}

/* Verdict-based row coloring for completed steps */
.step-row.step-verdict-pass[b-iklxbaqafu] {
    background-color: #d4edda;
    border-left: 4px solid #28a745;
}

.step-row.step-verdict-pass:hover[b-iklxbaqafu] {
    background-color: #c3e6cb;
}

.step-row.step-verdict-fail[b-iklxbaqafu] {
    background-color: #f8d7da;
    border-left: 4px solid #dc3545;
}

.step-row.step-verdict-fail:hover[b-iklxbaqafu] {
    background-color: #f1c1c6;
}

.step-row.step-verdict-undetermined[b-iklxbaqafu] {
    background-color: #fff3cd;
    border-left: 4px solid #ffc107;
}

.step-row.step-verdict-undetermined:hover[b-iklxbaqafu] {
    background-color: #ffe8a1;
}

.step-row.step-skipped[b-iklxbaqafu] {
    color: #6c757d;
    font-style: italic;
}

/* Status icons */
.status-icon[b-iklxbaqafu] {
    font-size: 16px;
}

.status-icon.completed[b-iklxbaqafu] {
    color: #28a745;
}

.status-icon.running[b-iklxbaqafu] {
    color: #007bff;
}

.status-icon.skipped[b-iklxbaqafu] {
    color: #adb5bd;
}

.status-icon.pending[b-iklxbaqafu] {
    color: #dee2e6;
}

.spinner[b-iklxbaqafu] {
    animation: spin-b-iklxbaqafu 1s linear infinite;
    display: inline-block;
}

@keyframes spin-b-iklxbaqafu {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* Measurement count badge */
.measurement-count[b-iklxbaqafu] {
    font-size: 11px;
    color: #6c757d;
    font-weight: normal;
    margin-left: 6px;
}

/* Measurement rows */
.measurement-row[b-iklxbaqafu] {
    font-size: 13px;
}

.measurement-row.measurement-pass[b-iklxbaqafu] {
    background-color: #d4edda;
}

.measurement-row.measurement-fail[b-iklxbaqafu] {
    background-color: #f8d7da;
}

.measurement-row:hover[b-iklxbaqafu] {
    filter: brightness(0.97);
}

.measurement-name[b-iklxbaqafu] {
    padding-left: 20px !important;
}

.tree-indent[b-iklxbaqafu] {
    color: #adb5bd;
    margin-right: 4px;
}

.measurement-value[b-iklxbaqafu] {
    font-family: 'Courier New', monospace;
}

.value-text[b-iklxbaqafu] {
    font-weight: 600;
}

.unit-text[b-iklxbaqafu] {
    color: #6c757d;
    margin-left: 4px;
}

.limits-text[b-iklxbaqafu] {
    font-size: 11px;
    color: #6c757d;
    margin-left: 6px;
}

/* Type badges */
.measurement-type-badge[b-iklxbaqafu] {
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    padding: 2px 5px;
    border-radius: 3px;
    letter-spacing: 0.5px;
}

.badge-numeric[b-iklxbaqafu] {
    background-color: #cce5ff;
    color: #004085;
}

.badge-boolean[b-iklxbaqafu] {
    background-color: #d4edda;
    color: #155724;
}

.badge-string[b-iklxbaqafu] {
    background-color: #fff3cd;
    color: #856404;
}

/* Verdicts */
.verdict-pass[b-iklxbaqafu] {
    color: #28a745;
}

.verdict-fail[b-iklxbaqafu] {
    color: #dc3545;
}

.verdict-undetermined[b-iklxbaqafu] {
    color: #ffc107;
}

.verdict-none[b-iklxbaqafu] {
    color: #6c757d;
}

.verdict-skipped[b-iklxbaqafu] {
    color: #adb5bd;
    font-style: italic;
    font-weight: normal;
}

.no-data[b-iklxbaqafu] {
    text-align: center;
    color: #6c757d;
    font-style: italic;
    padding: 40px;
}
/* /Components/TestResults/ArtifactViewer.razor.rz.scp.css */
.artifact-images-section[b-b6o4laezza],
.artifact-charts-section[b-b6o4laezza],
.artifact-csv-inline-section[b-b6o4laezza] {
    padding: 14px 0 0;
}

.artifact-inline-heading[b-b6o4laezza] {
    margin: 0 0 10px;
    font-size: 13px;
    font-weight: 600;
    color: var(--ui-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.artifact-csv-block[b-b6o4laezza] {
    margin-bottom: 20px;
    border: 1px solid var(--ui-border);
    border-radius: 6px;
    overflow: hidden;
}

.artifact-csv-title[b-b6o4laezza] {
    padding: 6px 12px;
    font-family: 'Consolas', 'Courier New', monospace;
    font-size: 12px;
    font-weight: 600;
    color: var(--ui-text);
    background: var(--ui-surface-2);
    border-bottom: 1px solid var(--ui-border);
}

.artifact-csv-scroll[b-b6o4laezza] {
    overflow-x: auto;
    max-height: 400px;
    overflow-y: auto;
}

.artifact-csv-table[b-b6o4laezza] {
    border-collapse: collapse;
    font-size: 13px;
    width: 100%;
    white-space: nowrap;
}

.artifact-csv-table th[b-b6o4laezza],
.artifact-csv-table td[b-b6o4laezza] {
    border: 1px solid var(--ui-border);
    padding: 4px 10px;
    text-align: left;
    color: var(--ui-text);
}

.artifact-csv-table th[b-b6o4laezza] {
    background: var(--ui-surface-2);
    font-weight: 600;
    position: sticky;
    top: 0;
    z-index: 1;
}

.artifact-csv-loading[b-b6o4laezza],
.artifact-csv-error[b-b6o4laezza] {
    padding: 12px;
    font-size: 13px;
    color: var(--ui-text-muted);
}

.artifact-csv-error[b-b6o4laezza] {
    color: #dc3545;
}
