/* Platform billing hub (`/system/payment-invoice/`) */
[data-pay-hub] .pay-hub-hero {
    background: linear-gradient(
        135deg,
        rgba(var(--color-primary-rgb), 0.08) 0%,
        var(--color-bg-elevated) 55%,
        rgba(22, 163, 74, 0.06) 100%
    );
    border: 1px solid var(--color-border);
    padding: var(--space-5);
}

[data-pay-hub] .pay-hub-hero__nav {
    margin-bottom: var(--space-3);
}

[data-pay-hub] .pay-hub-hero__row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    align-items: flex-start;
    justify-content: space-between;
}

[data-pay-hub] .pay-hub-hero__title {
    margin: 0 0 var(--space-2);
    font-size: var(--text-xl);
}

[data-pay-hub] .pay-hub-hero__lead {
    margin: 0;
    max-width: 56ch;
}

[data-pay-hub] .pay-hub-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

[data-pay-hub] .pay-hub-kpis {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: var(--space-3);
}

[data-pay-hub] .pay-hub-kpi {
    padding: var(--space-4);
    background: var(--color-bg-elevated);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    text-align: center;
    box-shadow: var(--shadow-sm);
}

[data-pay-hub] .pay-hub-kpi--primary .pay-hub-kpi__value {
    color: var(--color-primary);
}

[data-pay-hub] .pay-hub-kpi--ok .pay-hub-kpi__value {
    color: #047857;
}

[data-pay-hub] .pay-hub-kpi--warn .pay-hub-kpi__value {
    color: #b45309;
}

[data-pay-hub] .pay-hub-kpi--bad .pay-hub-kpi__value {
    color: #b91c1c;
}

[data-pay-hub] .pay-hub-kpi__value {
    display: block;
    font-size: var(--text-xl);
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    line-height: 1.15;
}

[data-pay-hub] .pay-hub-kpi__label {
    display: block;
    margin-top: var(--space-1);
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-tertiary);
}

[data-pay-hub] .pay-hub-kpi__sub {
    display: block;
    margin-top: 2px;
    font-size: 0.7rem;
    color: var(--color-text-tertiary);
}

[data-pay-hub] .pay-hub-actions {
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--color-border);
}

[data-pay-hub] .pay-hub-actions__row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    align-items: center;
}

[data-pay-hub] .pay-hub-toolbar {
    padding: var(--space-4);
    border: 1px solid var(--color-border);
}

[data-pay-hub] .pay-hub-toolbar__form {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: var(--space-3);
}

[data-pay-hub] .pay-hub-toolbar__grid {
    display: flex;
    flex: 1 1 100%;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: var(--space-3);
    min-width: 0;
}

[data-pay-hub] .pay-hub-field {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    flex: 1 1 9rem;
    min-width: 0;
}

[data-pay-hub] .pay-hub-field--search {
    flex: 2 1 12rem;
}

[data-pay-hub] .pay-hub-field--date {
    flex: 1 1 8.5rem;
}

[data-pay-hub] .pay-hub-field input,
[data-pay-hub] .pay-hub-field select {
    width: 100%;
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-md);
    font: inherit;
    background: var(--color-bg-base);
}

[data-pay-hub] .pay-hub-toolbar__actions {
    display: flex;
    flex-wrap: nowrap;
    flex-shrink: 0;
    gap: var(--space-2);
    margin-top: 0;
}

@media (min-width: 900px) {
    [data-pay-hub] .pay-hub-toolbar__form {
        flex-wrap: nowrap;
    }

    [data-pay-hub] .pay-hub-toolbar__grid {
        flex: 1 1 auto;
        flex-wrap: nowrap;
    }

    [data-pay-hub] .pay-hub-field {
        flex: 1 1 0;
        min-width: 6.5rem;
    }

    [data-pay-hub] .pay-hub-field--search {
        flex: 1.6 1 0;
        min-width: 9rem;
    }

    [data-pay-hub] .pay-hub-field--date {
        flex: 0.9 1 0;
        min-width: 7.5rem;
    }
}

[data-pay-hub] .pay-hub-lab-focus {
    padding: var(--space-4);
    border-left: 4px solid var(--color-primary);
}

[data-pay-hub] .pay-hub-lab-focus__head {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: var(--space-3);
}

[data-pay-hub] .pay-hub-lab-focus__head h3 {
    margin: 0;
}

[data-pay-hub] .pay-hub-lab-focus__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

[data-pay-hub] .pay-hub-lab-focus__meta {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: var(--space-3);
    margin: 0;
    font-size: var(--text-sm);
}

[data-pay-hub] .pay-hub-lab-focus__meta dt {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-tertiary);
}

[data-pay-hub] .pay-hub-lab-focus__meta dd {
    margin: var(--space-1) 0 0;
}

[data-pay-hub] .pay-hub-stack {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

[data-pay-hub] .pay-hub-panel {
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--color-border);
}

[data-pay-hub] .pay-hub-panel__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--color-border);
    background: var(--color-bg-subtle);
}

[data-pay-hub] .pay-hub-panel__title {
    margin: 0;
    font-size: var(--text-md);
}

[data-pay-hub] .pay-hub-table-wrap {
    max-height: min(62vh, 520px);
}

[data-pay-hub] .pay-hub-table-wrap.table-scroll {
    margin-top: 0;
    margin-left: 0;
    margin-right: 0;
}

[data-pay-hub] .pay-hub-table-wrap .data-table {
    width: 100%;
    min-width: 100%;
}

[data-pay-hub] .pay-hub-table.data-table thead tr:first-child th:first-child {
    border-top-left-radius: var(--radius-sm, 6px);
}

[data-pay-hub] .pay-hub-table.data-table thead tr:first-child th:last-child {
    border-top-right-radius: var(--radius-sm, 6px);
}

[data-pay-hub] .pay-hub-table .pay-hub-table__col-actions {
    width: 1%;
    min-width: 11.5rem;
    white-space: nowrap;
}

[data-pay-hub] .pay-hub-table .catalog-row-actions {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: var(--space-2);
}

[data-pay-hub] .pay-hub-table .numeric {
    text-align: right;
}

[data-pay-hub] .pay-hub-table__note {
    font-size: 0.72rem;
    margin-top: 2px;
}

[data-pay-hub] .pay-hub-table__row.is-selected {
    background: rgba(var(--color-primary-rgb), 0.06);
}

[data-pay-hub] .pay-pill {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border: 1px solid var(--color-border);
    background: var(--color-bg-subtle);
}

[data-pay-hub] .pay-pill--ok {
    background: #ecfdf5;
    border-color: #6ee7b7;
    color: #047857;
}

[data-pay-hub] .pay-pill--warn,
[data-pay-hub] .pay-pill--warm,
[data-pay-hub] .pay-pill--critical {
    background: #fffbeb;
    border-color: #fcd34d;
    color: #b45309;
}

[data-pay-hub] .pay-pill--expired {
    background: #fef2f2;
    border-color: #fca5a5;
    color: #b91c1c;
}

[data-pay-hub] .pay-pill--none {
    color: var(--color-text-tertiary);
}

[data-pay-hub] .pay-hub-pager {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    align-items: center;
    padding: var(--space-3) var(--space-4);
    border-top: 1px solid var(--color-border);
}

/* Unified billing compose (`/system/payment-invoice/new/`) */
[data-billing-compose] .billing-compose-card {
    padding: var(--space-4) var(--space-5);
}

[data-billing-compose] .billing-compose-prefill {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    align-items: flex-end;
    margin-bottom: var(--space-4);
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--color-border);
}

[data-billing-compose] .billing-compose-lab-panel {
    margin-bottom: var(--space-4);
    padding: var(--space-4);
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: linear-gradient(
        135deg,
        rgba(var(--color-primary-rgb), 0.06),
        var(--color-bg-subtle)
    );
}

[data-billing-compose] .billing-compose-lab-panel__dl {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: var(--space-3);
    margin: var(--space-3) 0 0;
    font-size: var(--text-sm);
}

[data-billing-compose] .billing-compose-lab-panel__dl dt {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-tertiary);
}

[data-billing-compose] .billing-compose-lab-panel__dl dd {
    margin: var(--space-1) 0 0;
    font-weight: 700;
}

[data-billing-compose] .billing-compose-lab-panel__hint {
    margin: var(--space-3) 0 0;
    font-size: var(--text-sm);
}

[data-billing-compose] .billing-compose-form {
    gap: var(--space-5);
}

[data-billing-compose] .billing-compose-section {
    padding-top: var(--space-1);
}

[data-billing-compose] .billing-compose-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: var(--space-3);
}

[data-billing-compose] .billing-compose-advance {
    margin-top: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    border: 1px dashed var(--color-border-strong);
    background: var(--color-bg-subtle);
}

[data-billing-compose] .billing-compose-divider {
    border: 0;
    border-top: 1px solid var(--color-border);
    margin: var(--space-3) 0;
}

[data-billing-compose] .billing-compose-calc-hint {
    margin: var(--space-2) 0 0;
    font-size: var(--text-sm);
}

[data-billing-compose] .billing-compose-pick-lab {
    margin: var(--space-4) 0 0;
    text-align: center;
    padding: var(--space-6);
}

/* Vendor operations console (`/system/vendor/`) */
[data-vendor-console].vendor-console {
    gap: var(--space-4);
}

[data-vendor-console] .vendor-console__alert {
    padding: var(--space-3) var(--space-4);
}

[data-vendor-console] .vendor-console__actions {
    padding: var(--space-3) var(--space-4);
}

[data-vendor-console] .vendor-console__actions-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}

[data-vendor-console] .vendor-console__actions-note,
[data-vendor-console] .vendor-console__aside-note {
    font-size: var(--text-sm);
}

[data-vendor-console] .vendor-console__inline-form {
    display: inline;
    margin: 0;
}

[data-vendor-console] .vendor-console__panel--license {
    width: 100%;
}

[data-vendor-console] .vendor-console__bottom {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

[data-vendor-console] .vendor-console__panel {
    padding: var(--space-4);
}

[data-vendor-console] .vendor-console__panel--compact {
    padding: var(--space-3) var(--space-4);
}

[data-vendor-console] .vendor-console__panel-head {
    margin-bottom: var(--space-3);
}

[data-vendor-console] .vendor-console__panel-title {
    margin: 0 0 var(--space-1);
    font-size: var(--text-md);
    font-weight: 700;
}

[data-vendor-console] .vendor-console__panel-lead {
    margin: 0;
    font-size: var(--text-sm);
    line-height: 1.45;
}

[data-vendor-console] .vendor-form-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}

@media (max-width: 1100px) {
    [data-vendor-console] .vendor-form-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    [data-vendor-console] .vendor-form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    [data-vendor-console] .vendor-form-grid {
        grid-template-columns: 1fr;
    }
}

[data-vendor-console] .vendor-form-field {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
}

[data-vendor-console] .vendor-form-field--wide {
    grid-column: 1 / -1;
}

[data-vendor-console] .vendor-form-pair {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    gap: var(--space-3);
    min-width: 0;
    grid-column: span 2;
}

@media (max-width: 820px) {
    [data-vendor-console] .vendor-form-pair {
        grid-column: span 2;
    }
}

@media (max-width: 560px) {
    [data-vendor-console] .vendor-form-pair {
        grid-column: 1 / -1;
        grid-template-columns: 1fr;
    }
}

[data-vendor-console] .vendor-form-field--hash {
    max-width: 100%;
}

[data-vendor-console] .vendor-form-field--check {
    justify-content: flex-end;
}

[data-vendor-console] .vendor-form-field input:not([type="checkbox"]),
[data-vendor-console] .vendor-form-field select,
[data-vendor-console] .vendor-form-field textarea {
    width: 100%;
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-md);
    font: inherit;
    background: var(--color-bg-base);
}

[data-vendor-console] .vendor-form-hint {
    font-size: 0.72rem;
    line-height: 1.35;
}

[data-vendor-console] .vendor-check {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    font-size: var(--text-sm);
    cursor: pointer;
}

[data-vendor-console] .vendor-module-section {
    border-top: 1px solid var(--color-border);
    padding-top: var(--space-4);
}

[data-vendor-console] .vendor-module-section__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-2);
    margin-bottom: var(--space-3);
}

[data-vendor-console] .vendor-module-section__title {
    margin: 0 0 var(--space-1);
    font-size: var(--text-sm);
    font-weight: 700;
}

[data-vendor-console] .vendor-module-section__hint {
    margin: 0;
    font-size: var(--text-sm);
}

[data-vendor-console] .vendor-module-section__tools {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1);
}

[data-vendor-console] .vendor-module-bands {
    gap: var(--space-3);
}

[data-vendor-console] .vendor-module-band__header {
    align-items: center;
}

[data-vendor-console] .vendor-module-band__actions {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--space-1);
    flex-shrink: 0;
}

[data-vendor-console] .vendor-module-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(13.5rem, 1fr));
    gap: var(--space-2);
}

@media (min-width: 900px) {
    [data-vendor-console] .vendor-module-grid {
        grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
    }
}

@media (min-width: 1200px) {
    [data-vendor-console] .vendor-module-grid {
        grid-template-columns: repeat(auto-fill, minmax(16.5rem, 1fr));
    }
}

@media (max-width: 560px) {
    [data-vendor-console] .vendor-module-grid {
        grid-template-columns: 1fr;
    }
}

[data-vendor-console] .vendor-module-chip {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    margin: 0;
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-bg-base);
    cursor: pointer;
    transition: border-color var(--transition), background var(--transition), box-shadow var(--transition);
}

[data-vendor-console] .vendor-module-chip:hover {
    border-color: var(--color-border-strong);
    background: var(--color-bg-elevated);
}

[data-vendor-console] .vendor-module-chip:has(input:checked) {
    border-color: rgba(var(--color-primary-rgb), 0.45);
    background: rgba(var(--color-primary-rgb), 0.06);
    box-shadow: inset 3px 0 0 var(--color-primary);
}

[data-vendor-console] .vendor-module-chip input {
    margin-top: 0.15rem;
    flex-shrink: 0;
}

[data-vendor-console] .vendor-module-chip__copy {
    display: grid;
    gap: 0.2rem;
    min-width: 0;
    flex: 1 1 auto;
}

[data-vendor-console] .vendor-module-chip__label {
    font-size: var(--text-sm);
    font-weight: 700;
    line-height: 1.3;
    overflow-wrap: break-word;
    word-break: break-word;
}

[data-vendor-console] .vendor-module-chip__desc {
    font-size: 0.68rem;
    line-height: 1.4;
    overflow-wrap: break-word;
    word-break: break-word;
}

[data-vendor-console] .role-access-band--enterprise {
    border-left: 4px solid #b45309;
}

[data-vendor-console] .role-access-band--enterprise .role-access-band__badge {
    color: #b45309;
}

[data-vendor-console] .vendor-license-form__submit {
    margin-top: var(--space-4);
}

[data-vendor-console] .vendor-issued-key {
    margin-top: var(--space-4);
    padding-top: var(--space-4);
    border-top: 1px solid var(--color-border);
}

[data-vendor-console] .vendor-issued-key__textarea {
    width: 100%;
    margin-top: var(--space-1);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.85rem;
    padding: var(--space-3);
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-md);
    background: var(--color-bg-subtle);
}

[data-vendor-console] .vendor-issued-key__copy {
    margin-top: var(--space-2);
}

[data-vendor-console] .vendor-console__path {
    margin: var(--space-2) 0;
    font-size: var(--text-sm);
}

[data-vendor-console] .vendor-console__path code {
    display: block;
    margin-top: var(--space-1);
    word-break: break-all;
}

[data-vendor-console] .vendor-console__cmd {
    margin: var(--space-3) 0 0;
    padding: var(--space-3);
    border-radius: var(--radius-md);
    background: var(--color-bg-subtle);
    border: 1px solid var(--color-border);
    font-size: 0.78rem;
    line-height: 1.45;
    overflow: auto;
    white-space: pre-wrap;
}

[data-vendor-console] .vendor-console__cmd-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-top: var(--space-3);
    align-items: center;
}

[data-vendor-console] .vendor-console__log {
    margin-top: var(--space-3);
}

[data-vendor-console] .vendor-console__log-body {
    margin-top: var(--space-2);
    max-height: 220px;
    overflow: auto;
    font-size: 0.72rem;
    line-height: 1.4;
    background: #111;
    color: #eee;
    padding: var(--space-3);
    border-radius: var(--radius-md);
}

[data-vendor-console] .vendor-console__cli > summary {
    cursor: pointer;
    list-style: none;
}

[data-vendor-console] .vendor-console__cli > summary::-webkit-details-marker {
    display: none;
}

[data-vendor-console] .vendor-cli-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3);
    margin: var(--space-3) 0 0;
    font-size: var(--text-sm);
}

@media (max-width: 720px) {
    [data-vendor-console] .vendor-cli-list {
        grid-template-columns: 1fr;
    }
}

[data-vendor-console] .vendor-cli-list dd {
    margin: var(--space-1) 0 0;
}

[data-vendor-console] .vendor-cli-list code {
    display: block;
    word-break: break-word;
    font-size: 0.78rem;
}
