/* /Components/Execution/LivePlayback.razor.rz.scp.css */
.live-player[b-zteglkkweb]
{
    border: 1px solid var(--qp-border);
    border-radius: 16px;
    overflow: hidden;
    background: var(--qp-surface);
    box-shadow: 0 8px 32px rgb(15 23 42 / 6%);
}
.live-player--expanded[b-zteglkkweb]
{
    position: fixed;
    inset: 20px;
    z-index: 1000;
    overflow: auto;
    background: var(--qp-surface);
    box-shadow: 0 0 0 100vmax rgb(0 0 0 / 65%);
}
.live-player__header[b-zteglkkweb], .live-player__heading[b-zteglkkweb], .live-player__actions[b-zteglkkweb], .live-player__chrome[b-zteglkkweb], .live-player__transport[b-zteglkkweb]
{
    display: flex;
    align-items: center;
    gap: 12px;
}
.live-player__header[b-zteglkkweb]
{
    padding: 20px 24px;
    justify-content: space-between;
    flex-wrap: wrap;
}
.live-player__icon[b-zteglkkweb]
{
    color: #6366f1;
    background: rgb(99 102 241 / 12%);
    border-radius: 12px;
    padding: 12px;
    display: flex;
}
.live-player h2[b-zteglkkweb]
{
    margin: 0;
    font-size: 17px;
    color: var(--qp-text-strong);
}
.live-player__heading p[b-zteglkkweb]
{
    margin: 3px 0 0;
    font-size: 12px;
    color: var(--qp-text-muted);
}
.live-player__badge[b-zteglkkweb]
{
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .1em;
    border-radius: 999px;
    padding: 6px 10px;
    background: rgb(100 116 139 / 12%);
    color: var(--qp-text-muted);
}
.live-player__badge[data-live="True"][b-zteglkkweb], .live-player__badge[data-live="true"][b-zteglkkweb]
{
    color: #059669;
    background: rgb(16 185 129 / 12%);
}
.live-player__body[b-zteglkkweb]
{
    display: grid;
    grid-template-columns: minmax(0, 1fr) 290px;
    border-top: 1px solid var(--qp-border);
}
.live-player__browser[b-zteglkkweb]
{
    min-width: 0;
    background: rgb(100 116 139 / 4%);
}
.live-player__chrome[b-zteglkkweb]
{
    padding: 12px 16px;
    font-size: 11px;
    color: var(--qp-text-muted);
    border-bottom: 1px solid var(--qp-border);
}
.live-player__dots[b-zteglkkweb]
{
    color: #94a3b8;
    white-space: nowrap;
    letter-spacing: 3px;
    font-size: 9px;
}
.live-player__address[b-zteglkkweb]
{
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    flex: 1;
    border: 1px solid var(--qp-border);
    border-radius: 6px;
    padding: 6px 10px;
    min-width: 0;
}
.live-player__browser-name[b-zteglkkweb]
{
    white-space: nowrap;
    font-weight: 600;
}
.live-player__viewport[b-zteglkkweb]
{
    aspect-ratio: 16 / 9;
    background: #111827;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.live-player__viewport img[b-zteglkkweb]
{
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.live-player__empty[b-zteglkkweb]
{
    color: #94a3b8;
    max-width: 380px;
    text-align: center;
    padding: 24px;
    font-size: 13px;
    line-height: 1.6;
}
.live-player__empty h3[b-zteglkkweb]
{
    color: #e2e8f0;
    margin: 12px 0 4px;
    font-size: 17px;
}
.live-player__paused[b-zteglkkweb]
{
    position: absolute;
    bottom: 16px;
    padding: 7px 12px;
    border-radius: 20px;
    background: rgb(15 23 42 / 85%);
    color: #fff;
    font-size: 11px;
}
.live-player__transport[b-zteglkkweb]
{
    padding: 12px;
    flex-wrap: wrap;
    border-top: 1px solid var(--qp-border);
}
.live-player__time[b-zteglkkweb]
{
    margin-left: auto;
    font-size: 11px;
    color: var(--qp-text-muted);
    font-variant-numeric: tabular-nums;
}
.live-player__steps[b-zteglkkweb]
{
    min-width: 0;
    border-left: 1px solid var(--qp-border);
    display: flex;
    flex-direction: column;
}
.live-player__step-heading[b-zteglkkweb]
{
    display: flex;
    justify-content: space-between;
    padding: 20px 16px 12px;
    font-size: 10px;
    letter-spacing: .08em;
    color: var(--qp-text-muted);
    font-weight: 700;
}
.live-player__test[b-zteglkkweb]
{
    padding: 0 16px 16px;
    display: grid;
    gap: 6px;
    font-size: 13px;
    overflow-wrap: anywhere;
}
.live-player__test span[b-zteglkkweb]
{
    color: var(--qp-text-muted);
    font-size: 11px;
}
.live-player__step-list[b-zteglkkweb]
{
    max-height: 280px;
    overflow: auto;
    padding: 0 8px;
}
.live-player__step[b-zteglkkweb]
{
    width: 100%;
    display: flex;
    align-items: flex-start;
    gap: 9px;
    text-align: left;
    background: transparent;
    color: var(--qp-text-strong);
    border: 1px solid transparent;
    border-radius: 8px;
    padding: 10px 8px;
    cursor: pointer;
    font: inherit;
}
.live-player__step:hover[b-zteglkkweb], .live-player__step[aria-pressed="true"][b-zteglkkweb]
{
    background: rgb(99 102 241 / 7%);
    border-color: rgb(99 102 241 / 16%);
}
.live-player__step strong[b-zteglkkweb]
{
    font-size: 12px;
    font-weight: 500;
    display: block;
    overflow-wrap: anywhere;
}
.live-player__step small[b-zteglkkweb]
{
    display: block;
    font-size: 10px;
    margin-top: 5px;
    color: var(--qp-text-muted);
    overflow-wrap: anywhere;
}
.live-player__step-marker[b-zteglkkweb]
{
    color: #6366f1;
    font-weight: 700;
}
.live-player__step[data-status="passed"] .live-player__step-marker[b-zteglkkweb]
{
    color: #10b981;
}
.live-player__step[data-status="failed"] .live-player__step-marker[b-zteglkkweb]
{
    color: #ef4444;
}
.live-player__error[b-zteglkkweb]
{
    margin: 0 12px 12px;
    border: 1px solid rgb(239 68 68 / 25%);
    border-radius: 8px;
    background: rgb(239 68 68 / 6%);
    padding: 12px;
    font-size: 12px;
    max-height: 170px;
    overflow: auto;
    overflow-wrap: anywhere;
}
.live-player__error strong[b-zteglkkweb]
{
    color: #dc2626;
}
.live-player__footnote[b-zteglkkweb], .live-player__notice[b-zteglkkweb]
{
    padding: 12px 16px;
    margin: 0;
    font-size: 11px;
    color: var(--qp-text-muted);
    line-height: 1.6;
}
.live-player__footnote[b-zteglkkweb]
{
    margin-top: auto;
}
@media (max-width: 1050px)
{
    .live-player__body[b-zteglkkweb]
    {
        grid-template-columns: minmax(0, 1fr);
    }
    .live-player__steps[b-zteglkkweb]
    {
        border-left: 0;
        border-top: 1px solid var(--qp-border);
    }
    .live-player__step-list[b-zteglkkweb]
    {
        max-height: 220px;
    }
}
@media (max-width: 600px)
{
    .live-player--expanded[b-zteglkkweb]
    {
        inset: 6px;
    }
    .live-player__header[b-zteglkkweb]
    {
        padding: 14px;
    }
    .live-player__dots[b-zteglkkweb], .live-player__browser-name[b-zteglkkweb]
    {
        display: none;
    }
}

.live-player__editor-link[b-zteglkkweb]
{
    padding: 0 12px 12px;
}
/* /Components/Execution/RunChecklist.razor.rz.scp.css */
.run-checklist[b-0aesxiwvph]
{
    display: grid;
    gap: 20px;
    min-width: 0;
}
.checklist-summary[b-0aesxiwvph], .checklist-panel[b-0aesxiwvph]
{
    background: var(--qp-surface);
    border: 1px solid var(--qp-border);
    border-radius: 16px;
    overflow: hidden;
}
.checklist-summary[b-0aesxiwvph]
{
    padding: 24px;
}
.checklist-summary__heading[b-0aesxiwvph], .checklist-toolbar[b-0aesxiwvph], .checklist-tools[b-0aesxiwvph], .checklist-counts[b-0aesxiwvph]
{
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.checklist-summary__heading[b-0aesxiwvph], .checklist-toolbar[b-0aesxiwvph]
{
    justify-content: space-between;
}
.checklist-eyebrow[b-0aesxiwvph]
{
    font-size: 10px;
    font-weight: 750;
    color: var(--qp-text-muted);
    letter-spacing: .12em;
}
h2[b-0aesxiwvph]
{
    margin: 6px 0 0;
    color: var(--qp-text-muted);
    font-size: 18px;
    font-weight: 450;
}
h2 strong[b-0aesxiwvph]
{
    color: var(--qp-text-strong);
    font-size: 30px;
    letter-spacing: -.04em;
    font-variant-numeric: tabular-nums;
}
.checklist-counts[b-0aesxiwvph]
{
    gap: 24px;
    margin: 20px 0 14px;
    font-size: 13px;
    color: var(--qp-text-muted);
}
.checklist-counts b[b-0aesxiwvph]
{
    font-size: 18px;
    font-variant-numeric: tabular-nums;
    margin-right: 4px;
}
[data-status][b-0aesxiwvph]
{
    --status-color: var(--qp-text-muted);
    --status-bg: rgb(100 116 139 / 8%);
}
[data-status="passed"][b-0aesxiwvph]
{
    --status-color: var(--qp-pass, #059669);
    --status-bg: rgb(16 185 129 / 10%);
}
[data-status="failed"][b-0aesxiwvph]
{
    --status-color: var(--qp-fail, #e34c63);
    --status-bg: rgb(244 63 94 / 10%);
}
[data-status="running"][b-0aesxiwvph], [data-status="retrying"][b-0aesxiwvph]
{
    --status-color: #818cf8;
    --status-bg: rgb(99 102 241 / 12%);
}
.checklist-counts [data-status][b-0aesxiwvph], .checklist-status[b-0aesxiwvph], .checklist-step__meta > span[b-0aesxiwvph], .checklist-attempt__label > span[b-0aesxiwvph]
{
    color: var(--status-color, var(--qp-text-muted));
}
.checklist-meter[b-0aesxiwvph]
{
    height: 7px;
    background: rgb(100 116 139 / 12%);
    border-radius: 8px;
    display: flex;
    overflow: hidden;
}
.checklist-meter span[b-0aesxiwvph]
{
    background: var(--status-color, #94a3b8);
    transition: width .3s ease;
}
.checklist-caption[b-0aesxiwvph]
{
    margin: 12px 0 0;
    font-size: 12px;
    color: var(--qp-text-muted);
}
.checklist-button[b-0aesxiwvph]
{
    border: 1px solid var(--qp-border);
    background: var(--qp-surface);
    color: var(--qp-text-strong);
    border-radius: 8px;
    min-height: 34px;
    padding: 7px 11px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font: inherit;
    font-size: 12px;
    cursor: pointer;
}
.checklist-button:hover[b-0aesxiwvph], .checklist-button[aria-pressed="true"][b-0aesxiwvph]
{
    background: rgb(99 102 241 / 10%);
    border-color: #818cf8;
}
button:focus-visible[b-0aesxiwvph], input:focus-visible[b-0aesxiwvph], summary:focus-visible[b-0aesxiwvph]
{
    outline: 2px solid #818cf8;
    outline-offset: 3px;
}
.checklist-browser[hidden][b-0aesxiwvph]
{
    display: none;
}
.checklist-toolbar[b-0aesxiwvph]
{
    padding: 18px 22px;
    border-bottom: 1px solid var(--qp-border);
}
h3[b-0aesxiwvph]
{
    margin: 0;
    font-size: 15px;
    color: var(--qp-text-strong);
}
h3 span[b-0aesxiwvph]
{
    font-size: 12px;
    margin-left: 6px;
    color: var(--qp-text-muted);
}
.checklist-tools[b-0aesxiwvph]
{
    gap: 8px;
}
.checklist-search[b-0aesxiwvph]
{
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--qp-text-muted);
    border: 1px solid var(--qp-border);
    border-radius: 8px;
    padding: 8px 10px;
}
.checklist-search input[b-0aesxiwvph]
{
    border: 0;
    background: transparent;
    color: var(--qp-text-strong);
    width: 145px;
    font: inherit;
    font-size: 12px;
    min-width: 0;
}
.checklist-test + .checklist-test[b-0aesxiwvph]
{
    border-top: 1px solid var(--qp-border);
}
.checklist-test__heading[b-0aesxiwvph]
{
    display: flex;
    align-items: center;
    width: 100%;
    gap: 14px;
    text-align: left;
    border: 0;
    padding: 19px 22px;
    background: transparent;
    color: var(--qp-text-strong);
    font: inherit;
    cursor: pointer;
}
.checklist-test__heading:hover[b-0aesxiwvph]
{
    background: rgb(100 116 139 / 4%);
}
.checklist-test__name[b-0aesxiwvph]
{
    flex: 1;
    min-width: 0;
}
.checklist-test__name strong[b-0aesxiwvph]
{
    font-size: 14px;
    display: block;
    overflow-wrap: anywhere;
}
.checklist-test__name small[b-0aesxiwvph]
{
    display: block;
    font-size: 11px;
    color: var(--qp-text-muted);
    margin-top: 4px;
}
.checklist-status[b-0aesxiwvph]
{
    border-radius: 6px;
    padding: 5px 9px;
    background: var(--status-bg, rgb(100 116 139 / 8%));
    font-size: 11px;
    font-weight: 650;
    white-space: nowrap;
}
.checklist-marker[b-0aesxiwvph]
{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 25px;
    width: 25px;
    height: 25px;
    border-radius: 50%;
    background: var(--status-bg, rgb(100 116 139 / 8%));
    color: var(--status-color, var(--qp-text-muted));
    font-weight: 750;
    font-size: 15px;
}
.checklist-marker[data-status="running"][b-0aesxiwvph], .checklist-marker[data-status="retrying"][b-0aesxiwvph]
{
    animation: progress-spin-b-0aesxiwvph 2s linear infinite;
}
.checklist-attempts[b-0aesxiwvph]
{
    padding: 0 22px 18px;
}
.checklist-attempt__label[b-0aesxiwvph]
{
    display: flex;
    gap: 8px;
    align-items: center;
    padding: 14px 4px;
    color: var(--qp-text-muted);
    font-size: 12px;
}
.checklist-attempt__label > span[b-0aesxiwvph]
{
    margin-left: auto;
}
.checklist-steps[b-0aesxiwvph]
{
    list-style: none;
    padding: 0;
    margin: 0;
}
.checklist-step[b-0aesxiwvph]
{
    margin-left: calc(var(--step-depth) * 16px);
    border-top: 1px solid var(--qp-border);
}
.checklist-step__row[b-0aesxiwvph]
{
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 12px 9px;
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
    color: var(--qp-text-strong);
    font: inherit;
    font-size: 13px;
}
.checklist-step__row:disabled[b-0aesxiwvph]
{
    opacity: 1;
    cursor: default;
}
.checklist-step__row:not(:disabled)[b-0aesxiwvph]
{
    cursor: pointer;
    background: rgb(244 63 94 / 4%);
    border-radius: 8px;
}
.checklist-step__number[b-0aesxiwvph]
{
    font-size: 10px;
    color: var(--qp-text-muted);
    width: 16px;
    flex-shrink: 0;
    font-variant-numeric: tabular-nums;
}
.checklist-step__title[b-0aesxiwvph]
{
    flex: 1;
    min-width: 0;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
}
.checklist-step__title small[b-0aesxiwvph]
{
    display: block;
    color: var(--status-color);
    margin-top: 5px;
    text-decoration: underline;
    font-size: 11px;
}
.checklist-step__meta[b-0aesxiwvph]
{
    text-align: right;
    font-size: 11px;
    white-space: nowrap;
}
.checklist-step__meta small[b-0aesxiwvph]
{
    display: block;
    color: var(--qp-text-muted);
    margin-top: 3px;
}
.checklist-error[b-0aesxiwvph]
{
    border: 1px solid rgb(244 63 94 / 22%);
    background: rgb(244 63 94 / 5%);
    padding: 14px 17px;
    border-radius: 10px;
    font-size: 12px;
    margin-bottom: 12px;
    color: var(--qp-text-strong);
}
.checklist-error p[b-0aesxiwvph]
{
    margin: 5px 0;
    overflow-wrap: anywhere;
}
.checklist-error--step[b-0aesxiwvph]
{
    margin: 2px 9px 14px 46px;
}
.checklist-error summary[b-0aesxiwvph], .checklist-retries > summary[b-0aesxiwvph]
{
    cursor: pointer;
    margin-top: 10px;
    color: var(--qp-text-muted);
    font-size: 12px;
}
.checklist-error pre[b-0aesxiwvph]
{
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    max-height: 280px;
    overflow: auto;
    line-height: 1.6;
}
.checklist-empty[b-0aesxiwvph], .checklist-excluded[b-0aesxiwvph]
{
    padding: 18px 22px;
    margin: 0;
    color: var(--qp-text-muted);
    font-size: 13px;
}
.checklist-notice[b-0aesxiwvph]
{
    color: var(--qp-text-muted);
    font-size: 12px;
}
@keyframes progress-spin-b-0aesxiwvph
{
    to
    {
        transform: rotate(360deg);
    }
}
@media (prefers-reduced-motion: reduce)
{
    .checklist-marker[b-0aesxiwvph]
    {
        animation: none !important;
    }
    .checklist-meter span[b-0aesxiwvph]
    {
        transition: none;
    }
}
@media (max-width: 640px)
{
    .checklist-summary[b-0aesxiwvph]
    {
        padding: 18px;
    }
    .checklist-counts[b-0aesxiwvph]
    {
        gap: 14px;
    }
    .checklist-toolbar[b-0aesxiwvph], .checklist-test__heading[b-0aesxiwvph]
    {
        padding: 14px;
    }
    .checklist-tools[b-0aesxiwvph]
    {
        width: 100%;
    }
    .checklist-search[b-0aesxiwvph]
    {
        flex: 1;
    }
    .checklist-search input[b-0aesxiwvph]
    {
        width: 100%;
    }
    .checklist-attempts[b-0aesxiwvph]
    {
        padding: 0 8px 14px;
    }
    .checklist-step[b-0aesxiwvph]
    {
        margin-left: calc(var(--step-depth) * 6px);
    }
    .checklist-step__row[b-0aesxiwvph]
    {
        gap: 7px;
        padding: 12px 5px;
    }
    .checklist-step__number[b-0aesxiwvph]
    {
        display: none;
    }
    .checklist-step__meta[b-0aesxiwvph]
    {
        font-size: 10px;
    }
    h2 strong[b-0aesxiwvph]
    {
        font-size: 26px;
    }
}
/* /Components/Execution/RunLauncher.razor.rz.scp.css */

.qp-playback-choices[b-odpb7vy6vj]
{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.qp-playback-choice[b-odpb7vy6vj]
{
    display: grid;
    gap: 8px;
    text-align: left;
    padding: 16px;
    border: 1px solid var(--qp-border);
    border-radius: 12px;
    background: transparent;
    color: var(--qp-text-muted);
    cursor: pointer;
    font: inherit;
}
.qp-playback-choice[aria-pressed="true"][b-odpb7vy6vj]
{
    border-color: #6366f1;
    background: rgb(99 102 241 / 7%);
    color: #6366f1;
    box-shadow: 0 0 0 1px rgb(99 102 241 / 12%);
}
.qp-playback-choice strong[b-odpb7vy6vj]
{
    font-size: 13px;
    color: var(--qp-text-strong);
}
.qp-playback-choice span[b-odpb7vy6vj]
{
    font-size: 11px;
    line-height: 1.5;
    color: var(--qp-text-muted);
}
/* /Components/Layout/AppFooter.razor.rz.scp.css */
.qp-footer[b-xsp5lop26t]
{
    display: flex;
    flex: none;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 24px;
    margin-inline: var(--qp-gutter);
    padding-block: 18px;
    border-top: 1px solid var(--qp-border-subtle);
    color: var(--qp-text-muted);
    font-size: 11px;
    line-height: 1.6;
}

.qp-footer__powered[b-xsp5lop26t],
.qp-footer a[b-xsp5lop26t]
{
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.qp-footer a[b-xsp5lop26t]
{
    border-radius: 3px;
    color: var(--qp-accent-text);
    font-weight: 600;
    text-decoration: none;
    text-underline-offset: 4px;
}

.qp-footer a:hover[b-xsp5lop26t]
{
    text-decoration: underline;
}

.qp-footer a:focus-visible[b-xsp5lop26t]
{
    outline: 2px solid currentColor;
    outline-offset: 4px;
}

.qp-footer--inverse[b-xsp5lop26t]
{
    width: 100%;
    max-width: 1280px;
    margin-inline: auto;
    padding: 20px 0 0;
    border-color: #c1c7e419;
    color: #a5adc5;
}

.qp-footer--inverse a[b-xsp5lop26t]
{
    color: #c8bcff;
}

@media (max-width: 600px)
{
    .qp-footer[b-xsp5lop26t]
    {
        flex-direction: column;
        justify-content: center;
        gap: 5px;
        text-align: center;
        font-size: 10px;
    }
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
/* Blazor reconnect UI in QuickPlay's language: a calm card in the corner, not an alarm.
   The framework toggles the classes on #components-reconnect-modal; every rule below is
   id-qualified so it beats the element rules regardless of source order. */

#components-reconnect-modal[b-m97oyfyfc3] {
    position: fixed;
    /* A non-modal <dialog> is not in the top layer, so it needs to out-rank the sticky top bar. */
    z-index: var(--qp-z-tooltip);
    /* Sits clear of the sticky top bar so it never overlaps the search field or the bell. */
    inset-block-start: calc(var(--qp-topbar-height) + var(--qp-space-3));
    inset-inline: auto var(--qp-space-5);
    width: min(360px, calc(100vw - 2 * var(--qp-space-5)));
    margin: 0;
    padding: var(--qp-space-4);
    background: var(--qp-surface-overlay);
    color: var(--qp-text);
    border: 1px solid var(--qp-border);
    border-radius: var(--qp-radius-lg);
    box-shadow: var(--qp-shadow-3);
}

#components-reconnect-modal[open][b-m97oyfyfc3] {
    animation: qp-reconnect-in-b-m97oyfyfc3 var(--qp-duration-slow) var(--qp-ease-out) both;
}

#components-reconnect-modal[b-m97oyfyfc3]::backdrop {
    background: transparent;
}

/* The dialog itself takes focus when it opens; that is not a user-driven focus. */
#components-reconnect-modal:focus[b-m97oyfyfc3],
#components-reconnect-modal:focus-visible[b-m97oyfyfc3] {
    outline: none;
}

@keyframes qp-reconnect-in-b-m97oyfyfc3 {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
}

.components-reconnect-container[b-m97oyfyfc3] {
    display: flex;
    align-items: flex-start;
    gap: var(--qp-space-3);
}

/* ---- Everything state-dependent is hidden until its state is active --------- */
#components-reconnect-modal .components-reconnect-first-attempt-visible[b-m97oyfyfc3],
#components-reconnect-modal .components-reconnect-repeated-attempt-visible[b-m97oyfyfc3],
#components-reconnect-modal .components-reconnect-failed-visible[b-m97oyfyfc3],
#components-reconnect-modal .components-pause-visible[b-m97oyfyfc3],
#components-reconnect-modal .components-resume-failed-visible[b-m97oyfyfc3],
#components-reconnect-modal .components-rejoining-animation[b-m97oyfyfc3],
#components-reconnect-modal .qp-reconnect-alert[b-m97oyfyfc3] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-m97oyfyfc3],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-m97oyfyfc3],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-m97oyfyfc3],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-m97oyfyfc3],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-m97oyfyfc3],
#components-reconnect-modal.components-reconnect-failed .qp-reconnect-alert[b-m97oyfyfc3],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-m97oyfyfc3],
#components-reconnect-modal.components-reconnect-paused .qp-reconnect-alert[b-m97oyfyfc3],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-m97oyfyfc3],
#components-reconnect-modal.components-reconnect-resume-failed .qp-reconnect-alert[b-m97oyfyfc3] {
    display: revert;
}

/* `revert` gives <span> inline and <button> inline-block; both need a box here. */
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-m97oyfyfc3],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-m97oyfyfc3],
#components-reconnect-modal.components-reconnect-failed .qp-reconnect-alert[b-m97oyfyfc3],
#components-reconnect-modal.components-reconnect-paused .qp-reconnect-alert[b-m97oyfyfc3],
#components-reconnect-modal.components-reconnect-resume-failed .qp-reconnect-alert[b-m97oyfyfc3] {
    display: block;
}

#components-reconnect-modal.components-reconnect-failed button.components-reconnect-failed-visible[b-m97oyfyfc3],
#components-reconnect-modal.components-reconnect-paused button.components-pause-visible[b-m97oyfyfc3],
#components-reconnect-modal.components-reconnect-resume-failed button.components-resume-failed-visible[b-m97oyfyfc3] {
    display: inline-flex;
}

/* ---- Card body -------------------------------------------------------------- */
.qp-reconnect-status[b-m97oyfyfc3] {
    flex: none;
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    margin-top: 2px;
}

.qp-reconnect-body[b-m97oyfyfc3] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--qp-space-2);
}

#components-reconnect-modal p[b-m97oyfyfc3] {
    margin: 0;
    font-size: var(--qp-text-sm);
    color: var(--qp-text-muted);
    line-height: var(--qp-leading-snug);
}

#components-reconnect-modal p strong[b-m97oyfyfc3] {
    display: block;
    color: var(--qp-text-strong);
    font-weight: var(--qp-weight-medium);
    margin-bottom: 2px;
}

#components-reconnect-modal button[b-m97oyfyfc3] {
    align-self: flex-start;
    align-items: center;
    justify-content: center;
    height: 28px;
    padding-inline: var(--qp-space-3);
    border: 0;
    border-radius: var(--qp-radius-sm);
    background: var(--qp-accent);
    color: var(--qp-text-on-accent);
    font-size: var(--qp-text-xs);
    font-weight: var(--qp-weight-medium);
    cursor: pointer;
}

#components-reconnect-modal button:hover[b-m97oyfyfc3] {
    background: var(--qp-accent-hover);
}

#components-reconnect-modal button:focus-visible[b-m97oyfyfc3] {
    outline: 2px solid var(--qp-focus-ring);
    outline-offset: 2px;
}

/* ---- Indicators -------------------------------------------------------------- */
.components-rejoining-animation[b-m97oyfyfc3] {
    position: relative;
    width: 22px;
    height: 22px;
}

.components-rejoining-animation span[b-m97oyfyfc3] {
    position: absolute;
    inset: 50% auto auto 50%;
    width: 0;
    height: 0;
    border: 2px solid var(--qp-accent);
    border-radius: 50%;
    opacity: 1;
    animation: qp-rejoining-b-m97oyfyfc3 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
}

.components-rejoining-animation span:nth-child(2)[b-m97oyfyfc3] {
    animation-delay: -0.5s;
}

@keyframes qp-rejoining-b-m97oyfyfc3 {
    from {
        inset: 50% auto auto 50%;
        width: 0;
        height: 0;
        opacity: 1;
    }

    to {
        inset: 0 auto auto 0;
        width: 22px;
        height: 22px;
        opacity: 0;
    }
}

.qp-reconnect-alert[b-m97oyfyfc3] {
    width: 22px;
    height: 22px;
    color: var(--qp-fail);
}

.qp-reconnect-alert svg[b-m97oyfyfc3] {
    width: 20px;
    height: 20px;
}

@media (prefers-reduced-motion: reduce) {
    .components-rejoining-animation span[b-m97oyfyfc3] {
        animation: none;
        inset: 0 auto auto 0;
        width: 22px;
        height: 22px;
        opacity: 0.5;
    }
}
/* /Components/Pages/Design/DesignGallery.razor.rz.scp.css */
/* Layout helpers for the component gallery only. Nothing here is part of the design system. */

.dg-section[b-3ih6f9ptz9] {
    display: flex;
    flex-direction: column;
    gap: var(--qp-space-4);
    padding-block: var(--qp-space-8);
    border-top: 1px solid var(--qp-border-subtle);
}

.dg-section:first-of-type[b-3ih6f9ptz9] {
    border-top: 0;
    padding-top: var(--qp-space-2);
}

.dg-head[b-3ih6f9ptz9] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.dg-head h2[b-3ih6f9ptz9] {
    font-size: var(--qp-text-lg);
    letter-spacing: var(--qp-tracking-tight);
}

.dg-head p[b-3ih6f9ptz9] {
    font-size: var(--qp-text-sm);
    color: var(--qp-text-muted);
    max-width: 72ch;
}

.dg-row[b-3ih6f9ptz9] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--qp-space-3);
}

.dg-grid[b-3ih6f9ptz9] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: var(--qp-space-4);
}

.dg-box[b-3ih6f9ptz9] {
    padding: var(--qp-space-5);
    border: 1px solid var(--qp-border-subtle);
    border-radius: var(--qp-radius-lg);
    background: var(--qp-surface);
}

.dg-label[b-3ih6f9ptz9] {
    font-size: var(--qp-text-2xs);
    font-weight: var(--qp-weight-semibold);
    letter-spacing: var(--qp-tracking-caps);
    text-transform: uppercase;
    color: var(--qp-text-faint);
}

/* colour tokens */
.dg-swatches[b-3ih6f9ptz9] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: var(--qp-space-3);
}

.dg-swatch[b-3ih6f9ptz9] {
    display: flex;
    flex-direction: column;
    gap: var(--qp-space-2);
}

.dg-chip[b-3ih6f9ptz9] {
    height: 46px;
    border-radius: var(--qp-radius-md);
    border: 1px solid var(--qp-border-subtle);
}

.dg-chip-name[b-3ih6f9ptz9] {
    font-family: var(--qp-font-mono);
    font-size: var(--qp-text-2xs);
    color: var(--qp-text-muted);
}

/* type scale */
.dg-type[b-3ih6f9ptz9] {
    display: flex;
    flex-direction: column;
    gap: var(--qp-space-3);
}

.dg-type-row[b-3ih6f9ptz9] {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    align-items: baseline;
    gap: var(--qp-space-4);
}

/* spacing + radius */
.dg-bar[b-3ih6f9ptz9] {
    height: 22px;
    background: var(--qp-accent-subtle);
    border: 1px solid var(--qp-accent-border);
    border-radius: var(--qp-radius-xs);
}

.dg-radius[b-3ih6f9ptz9] {
    width: 64px;
    height: 48px;
    background: var(--qp-surface-sunken);
    border: 1px solid var(--qp-border);
}

.dg-elev[b-3ih6f9ptz9] {
    display: grid;
    place-items: center;
    width: 128px;
    height: 72px;
    border-radius: var(--qp-radius-lg);
    background: var(--qp-surface);
    border: 1px solid var(--qp-border-subtle);
    font-size: var(--qp-text-xs);
    color: var(--qp-text-muted);
}

/* icons */
.dg-icons[b-3ih6f9ptz9] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(104px, 1fr));
    gap: var(--qp-space-1);
}

.dg-icon[b-3ih6f9ptz9] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--qp-space-2);
    padding: var(--qp-space-3) var(--qp-space-2);
    border-radius: var(--qp-radius-sm);
    color: var(--qp-text-muted);
}

.dg-icon:hover[b-3ih6f9ptz9] {
    background: var(--qp-surface-hover);
    color: var(--qp-text);
}

.dg-icon span[b-3ih6f9ptz9] {
    font-family: var(--qp-font-mono);
    font-size: var(--qp-text-3xs);
    color: var(--qp-text-faint);
    text-align: center;
    word-break: break-all;
}

.dg-stage[b-3ih6f9ptz9] {
    padding: var(--qp-space-6);
    border: 1px dashed var(--qp-border);
    border-radius: var(--qp-radius-xl);
    background: var(--qp-canvas);
}
/* /Components/Pages/Runs/Runs.razor.rz.scp.css */
.runs-cell[b-ck82gj80c4]
{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--qp-space-1);
}

.runs-cell__secondary[b-ck82gj80c4],
.runs-refresh-note[b-ck82gj80c4]
{
    color: var(--qp-text-muted);
    font-size: var(--qp-text-xs);
}

.runs-refresh-note[b-ck82gj80c4]
{
    white-space: nowrap;
}

.runs-cell--identity[b-ck82gj80c4]
{
    align-items: stretch;
}

@media (max-width: 700px)
{
    .runs-table[b-ck82gj80c4]  .qp-table,
    .runs-table[b-ck82gj80c4]  .qp-table tbody
    {
        display: block;
        width: 100%;
        min-width: 0;
    }

    .runs-table[b-ck82gj80c4]  .qp-table colgroup,
    .runs-table[b-ck82gj80c4]  .qp-table thead
    {
        display: none;
    }

    .runs-table[b-ck82gj80c4]  .qp-table tbody tr
    {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: var(--qp-space-3);
        gap: var(--qp-space-3);
        border-bottom: 1px solid var(--qp-border);
    }

    .runs-table[b-ck82gj80c4]  .qp-table td
    {
        max-width: none;
        min-width: 0;
        padding: 0;
        border: 0;
        white-space: normal;
        text-align: start;
    }

    .runs-table[b-ck82gj80c4]  .qp-table td:first-child,
    .runs-table[b-ck82gj80c4]  .qp-table td:last-child
    {
        grid-column: 1 / -1;
    }

    .runs-table[b-ck82gj80c4]  .qp-table td:last-child::before
    {
        content: "Time (UTC)";
        display: block;
        font-size: var(--qp-text-xs);
        color: var(--qp-text-muted);
        margin-bottom: var(--qp-space-1);
    }
}
