/* Structural UI components. All colors come from the active platform theme. */
body .ui-page-header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: start; gap: 20px; margin: 0 0 24px; padding: 0; }
.ui-page-header__copy { min-width: 0; flex: 1 1 260px; }
.ui-page-header__eyebrow { display: block; margin: 0 0 8px; color: var(--text-muted); font-size: .75rem; font-weight: 650; }
.ui-page-header__title { margin: 0; color: var(--text-primary); font-size: clamp(24px, 2.5vw, 32px); line-height: 1.25; }
.ui-page-header__description { max-width: 680px; margin: 8px 0 0; color: var(--text-secondary); line-height: 1.65; }
body .ui-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.ui-actions > form { margin: 0; }
body .ui-badge { display: inline-flex; align-items: center; justify-content: center; width: fit-content; max-width: 100%; min-height: 26px; padding: 5px 10px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface-muted); color: var(--text-secondary); font-size: .75rem; font-weight: 650; line-height: 1.4; white-space: normal; overflow-wrap: anywhere; }
body .ui-badge:is(.is-success, .backoffice-badge-success, .backoffice-transaction-status-successful) { color: var(--success-text); background: var(--success-soft); border-color: var(--success-border); }
body .ui-badge:is(.is-warning, .backoffice-badge-warning, .backoffice-transaction-status-pending, .backoffice-transaction-status-processing) { color: var(--warning-text); background: var(--warning-soft); border-color: var(--warning-border); }
body .ui-badge:is(.is-danger, .backoffice-badge-danger, .backoffice-transaction-status-failed, .backoffice-transaction-status-reversed) { color: var(--danger-text); background: var(--danger-soft); border-color: var(--danger-border); }
body .ui-badge.is-info { color: var(--primary); background: var(--primary-soft); border-color: var(--border); }
body .ui-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 0; padding: clamp(24px, 4vw, 40px) var(--ui-card-padding); gap: 12px; text-align: center; }
.ui-empty__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--surface-muted); color: var(--text-muted); }
body .ui-empty :is(h2,h3,strong) { margin: 0; color: var(--text-primary); font-size: 1rem; }
body .ui-empty p { max-width: 480px; margin: 0; color: var(--text-secondary); line-height: 1.6; }
.ui-alert-stack { display: grid; gap: 12px; margin: 0 0 20px; }
body .ui-alert { display: flex; align-items: start; gap: 12px; margin: 0; padding: 16px 20px; border: 1px solid var(--border); border-radius: 12px; color: var(--text-secondary); background: var(--surface-soft); line-height: 1.6; }
body .ui-alert.is-danger { color: var(--danger-text); border-color: var(--danger-border); background: var(--danger-soft); }
body .ui-alert.is-success { color: var(--success-text); border-color: var(--success-border); background: var(--success-soft); }
body .ui-alert.is-warning { color: var(--warning-text); border-color: var(--warning-border); background: var(--warning-soft); }
.ui-alert__content { min-width: 0; flex: 1; overflow-wrap: anywhere; }
.ui-alert__content p { margin: 0; }
.ui-alert__dismiss { flex: 0 0 auto; }
body .ui-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding: var(--ui-card-padding); }
.ui-pagination__summary { color: var(--text-muted); font-size: .8125rem; }
.ui-pagination__controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
body .ui-pagination__link { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 8px 12px; border: 1px solid var(--border); border-radius: 10px; color: var(--text-secondary); background: var(--surface); text-decoration: none; }
body .ui-pagination__link[aria-current] { color: var(--primary); border-color: var(--primary); background: var(--primary-soft); }
.ui-pagination__link[aria-disabled] { opacity: .5; }
body .ui-field { min-width: 0; }
.ui-field > label, .ui-field__label { display: block; margin: 0 0 8px; color: var(--text-primary); font-size: .8125rem; font-weight: 600; }
.ui-field__hint { display: block; margin: 8px 0 0; color: var(--text-muted); font-size: .75rem; line-height: 1.6; }
.ui-field__errors { margin: 8px 0 0; padding-left: 18px; color: var(--danger-text); font-size: .8125rem; }
body .ui-field-error { display: block; margin-top: 6px; color: var(--danger-text); font-size: .8125rem; line-height: 1.5; }
body .ui-control:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) { box-sizing: border-box; width: 100%; min-height: 44px; padding: 11px 14px; border: 1px solid var(--border); border-radius: 12px; color: var(--text-primary); background: var(--surface); font: inherit; }
body .ui-control[aria-invalid="true"] { border-color: var(--danger-border); }
.ui-table-scroll { max-width: 100%; min-width: 0; overflow-x: auto; }
@media (max-width: 600px) {
    body .ui-page-header { gap: 16px; margin-bottom: 20px; }
    body .ui-alert { padding: 16px; }
    body .ui-pagination { align-items: start; flex-direction: column; }
    .ui-pagination__controls { gap: 6px; }
    .ui-actions > :is(a,button) { white-space: normal; }
    body .ui-control:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) { font-size: 16px; }
}
