/* Shared Bootstrap component treatments. Domain CSS owns layout, not theme. */
.rb-page :is(.card, .content-card), .rb-panel {
    --bs-card-spacer-x: var(--rb-panel-padding);
    --bs-card-spacer-y: var(--rb-panel-padding);
    --bs-card-cap-padding-x: var(--rb-panel-padding);
    --bs-card-cap-padding-y: 1rem;
    --bs-card-border-radius: var(--rb-panel-radius);
    border: 1px solid var(--rb-border);
    border-radius: var(--rb-panel-radius);
    background: var(--rb-surface);
    color: var(--rb-text);
    box-shadow: none;
}
[data-bs-theme="dark"] .rb-page :is(.card, .content-card),
[data-bs-theme="dark"] .rb-panel { box-shadow: none; }
.rb-page :is(.card-header, .rb-section-header) {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: 1rem var(--rb-panel-padding);
    border-bottom: 1px solid var(--rb-border-inner);
}
.rb-page :is(.card-header, .rb-section-header) :is(h2, h3, h4, h5, h6),
.rb-page .card-body > :is(h2, h3, h4, h5):first-child {
    margin: 0;
    font-size: 1rem;
    line-height: 1.4;
    font-weight: 600;
    letter-spacing: -.02em;
}
.rb-stack > * + * { margin-top: var(--rb-page-gap); }
.rb-page > .archive-panel + .archive-panel { margin-top: var(--rb-page-gap); }
.rb-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.rb-account-row { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; padding: var(--rb-panel-padding); }
.rb-account-row + .rb-account-row { border-top: 1px solid var(--rb-border-inner); }
.rb-page .rb-tabs { gap: 1rem; }
.rb-page .rb-tabs .nav-link {
    padding: .75rem .25rem;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    color: var(--bs-secondary-color);
    background: transparent;
}
.rb-page .rb-tabs .nav-link.active { border-bottom-color: var(--bs-primary); color: var(--bs-primary-text-emphasis); }
.rb-status { display: inline-flex; align-items: center; gap: .35rem; font-size: .8rem; font-weight: 500; }
.rb-status--success { color: var(--bs-success-text-emphasis); }
.rb-status--warning { color: var(--bs-warning-text-emphasis); }
.rb-status--danger { color: var(--bs-danger-text-emphasis); }
.rb-status--muted { color: var(--bs-secondary-color); }
.rb-empty { padding: 3rem 1rem; text-align: center; color: var(--bs-secondary-color); }
.rb-loading { min-height: 12rem; border-radius: var(--rb-panel-radius); background: var(--rb-surface-alt); }
.rb-page :is(.btn, .nav-link, summary, input, select, textarea):focus-visible { outline: 2px solid var(--bs-primary); outline-offset: 3px; }
.rb-page :is(.table, .rb-status) { font-variant-numeric: tabular-nums; }
/* Existing product primitives map to the same contract during migration. */
.rb-page .billing-panel, .rb-page .billing-plan-options,
.rb-page .automation-account-list, .rb-page .inv-controls, .rb-page .inv-table-shell {
    border-radius: var(--rb-panel-radius);
    border-color: var(--rb-border);
    background: var(--rb-surface);
}
.rb-page .billing-panel-header, .rb-page .billing-subscription { padding: var(--rb-panel-padding); }
.rb-page .billing-panel-header h2 { font-size: 1rem; }
.rb-page .inv-status-success { color: var(--bs-success-text-emphasis); background: var(--bs-success-bg-subtle); }
.rb-page .inv-status-danger { color: var(--bs-danger-text-emphasis); background: var(--bs-danger-bg-subtle); }
.rb-page .inv-status-info { color: var(--bs-info-text-emphasis); background: var(--bs-info-bg-subtle); }
.rb-page .archive-panel__body { padding: var(--rb-panel-padding); }
.rb-page .archive-lede { font-size: .9rem; line-height: 1.5; }
.rb-page .archive-button { font-family: inherit; font-size: .875rem; font-weight: 500; border-radius: var(--bs-border-radius); min-height: 2.375rem; padding: .375rem .75rem; }
.rb-page .archive-section__head { padding: 1rem var(--rb-panel-padding); }
.rb-page .archive-section__head h2 { font-size: 1rem; font-weight: 600; }
.rb-page .archive-kicker { font-weight: 500; letter-spacing: .04em; }
.rb-page .research-search { padding: var(--rb-panel-padding); }
.rb-page .research-button { min-height: 2.375rem; white-space: nowrap; }
.rb-page .research-tab { font-weight: 500; }
.rb-page .research-tab[aria-selected="true"] { box-shadow: none; }
.rb-page .research-field-label { font-weight: 500; font-size: .8rem; }
.rb-page .liveboost-panel { padding: var(--rb-panel-padding); }
.rb-page .connect-instructions-banner { margin-top: .75rem; padding: .65rem .75rem; background: var(--rb-surface-alt); border-color: var(--rb-border); }
.rb-page .connect-instructions-title { cursor: pointer; font-weight: 500; }
.rb-page details.connect-instructions-banner:not([open]) .connect-instructions-copy { display: none; }
.rb-page details.connect-instructions-banner[open] .connect-instructions-copy { margin-top: .75rem; }
@media (max-width: 767.98px) {
    .rb-page .rb-tabs { gap: .35rem; flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; }
    .rb-page .rb-tabs .nav-link { font-size: .8125rem; padding-inline: .125rem; white-space: nowrap; }
    .rb-page .rb-tabs .nav-item { flex: 0 0 auto; }
    .rb-page .rb-tabs .nav-link:focus-visible { outline-offset: -2px; }
    .rb-page .billing-subscription { padding: var(--rb-panel-padding); }
    .rb-page .btn { min-height: 2.5rem; }
}
@media (prefers-reduced-motion: reduce) {
    .rb-page *, .rb-page *::before, .rb-page *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

.rb-page .archive-queue-summary { margin-top: var(--rb-page-gap); }

.rb-page .liveboost-panel h2 { font-size: 1rem; font-weight: 600; }
