/* Primitivas compartidas: controles, superficies y regiones desplazables. */
.portal-theme :focus-visible {outline: var(--focus-width) solid var(--brand-primary); outline-offset: var(--focus-offset);}
.portal-theme .btn {font-size: var(--text-body); font-weight: 700; min-height: var(--control-height); box-shadow: none; border-radius: var(--control-radius);}
.portal-theme .btn-outline-primary {color: var(--brand-primary); border-color: var(--color-line); background: var(--color-surface);}
.portal-theme .btn-outline-primary:hover {background: var(--color-active-bg);}
.portal-theme .form-control, .portal-theme select {background: var(--color-surface-soft); border: var(--border-width) solid var(--color-line); min-height: var(--control-height); border-radius: var(--control-radius);}
.portal-theme .field label {font-weight: 400; color: var(--color-text);}
.portal-theme .search-card, .portal-theme .status-card, .portal-theme .payment-card {background: var(--color-surface); border: 0; border-radius: var(--radius-lg); box-shadow: var(--portal-shadow);}
.portal-theme .btn-primary {--bs-btn-disabled-bg: var(--brand-primary); --bs-btn-disabled-border-color: var(--brand-primary); background-color: var(--brand-primary); border-color: var(--brand-primary);}
.portal-theme .btn-primary:hover {background-color: var(--brand-strong); border-color: var(--brand-strong);}
.portal-theme {line-height: var(--line-body);}
.portal-theme .field {min-width: 0; gap: var(--space-7);}
.portal-theme .field label {margin: 0; font-size: var(--text-body); line-height: var(--line-body);}
.portal-theme .form-control, .portal-theme select {min-height: var(--control-height); padding: var(--space-12) var(--space-16); line-height: var(--line-body); border-radius: var(--control-radius);}
.portal-theme .ui-surface {background: var(--color-surface); border: 0; border-radius: var(--panel-radius); box-shadow: var(--portal-shadow);}
.portal-theme .ui-scroll-region {position: relative; min-width: 0; min-height: 0; scrollbar-color: var(--brand-primary) var(--color-surface); scrollbar-width: thin; scroll-padding-block: var(--space-12);}
.portal-theme .ui-scroll-region:focus-visible {outline-offset: calc(-1 * var(--focus-width));}
.portal-theme .app-topbar__copy {display: flex; flex-direction: column; gap: var(--space-8);}
.portal-theme .app-topbar__copy .section-kicker, .portal-theme .app-topbar__copy .portal-intro {margin: 0;}

.portal-theme .ui-field-group {position: relative; min-width: 0; padding: var(--panel-padding);}
.portal-theme .ui-field-group__title {font-size: var(--text-section); font-weight: 700; line-height: var(--line-body); margin: 0; color: var(--color-text);}
.portal-theme .btn {display: inline-flex; align-items: center; justify-content: center; gap: var(--space-8);}
