/* Scoped shared UI. Colors, typography and spacing come from platform.css only. */
.orbit-ui { color: var(--text); font-size: var(--fs-md); }
.orbit-ui-page { display: grid; gap: var(--sp-4); max-width: 1060px; margin: 0 auto; padding: var(--sp-6); }
.orbit-ui-header { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: var(--sp-4); }
.orbit-ui-header h1 { font-size: var(--fs-2xl); }
.orbit-ui-header h2, .orbit-ui-section legend, .orbit-ui-state h2 { font-size: var(--fs-lg); font-weight: 600; }
.orbit-ui-header p { margin-top: var(--sp-2); }
.orbit-ui-muted { color: var(--muted); font-size: var(--fs-sm); }
.orbit-ui-actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-2); }
.orbit-ui-button { min-height: 44px; padding: var(--sp-2) var(--sp-3); border-radius: var(--radius-xs); white-space: nowrap; }
.orbit-ui-button:disabled { opacity: 1; color: var(--disabled-text); background: var(--disabled-bg); border-color: var(--line); }
.orbit-ui-toolbar { display: flex; align-items: end; flex-wrap: wrap; gap: var(--sp-3); padding-bottom: var(--sp-4); border-bottom: 1px solid var(--line); }
.orbit-ui-toolbar .orbit-ui-field:first-child { flex: 1 1 240px; }
.orbit-ui-field { display: grid; align-content: start; gap: var(--sp-2); min-width: 0; }
.orbit-ui-field label { font-weight: 500; }
.orbit-ui-field input, .orbit-ui-field select, .orbit-ui-field textarea { width: 100%; min-height: 44px; padding: var(--sp-2) var(--sp-3); border: 1px solid var(--line-strong); border-radius: var(--radius-xs); background: var(--panel); color: var(--text); }
.orbit-ui-field textarea { min-height: 100px; }
.orbit-ui-field [aria-invalid="true"] { border-color: var(--bad); }
.orbit-ui-error { color: var(--bad); font-size: var(--fs-sm); }
.orbit-ui-state { display: grid; gap: var(--sp-3); padding: var(--sp-8) var(--sp-4); text-align: center; justify-items: center; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.orbit-ui-state-error h2, .orbit-ui-state-forbidden h2 { color: var(--bad); }
.orbit-ui-table-wrap { overflow: auto; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.orbit-ui-table { width: 100%; min-width: 720px; border-collapse: collapse; font-size: var(--fs-base); }
.orbit-ui-table th, .orbit-ui-table td { padding: var(--sp-3); text-align: left; border-bottom: 1px solid var(--line); vertical-align: middle; }
.orbit-ui-table th { background: var(--head); color: var(--muted); font-weight: 500; white-space: nowrap; }
.orbit-ui-table tr:last-child td { border-bottom: 0; }
.orbit-ui-table tbody tr:hover { background: var(--hover-bg); }
.orbit-ui-table td { max-width: 320px; overflow-wrap: anywhere; }
.orbit-ui-table .orbit-ui-numeric { text-align: right; font-variant-numeric: tabular-nums; }
.orbit-ui-tag { display: inline-flex; padding: var(--sp-1) var(--sp-2); border-radius: var(--radius-xs); font-size: var(--fs-sm); background: var(--head); color: var(--muted); white-space: nowrap; }
.orbit-ui-tag-success { background: var(--ok-bg); color: var(--ok-text); }
.orbit-ui-tag-warning { background: var(--warn-bg); color: var(--warn); }
.orbit-ui-tag-error { background: var(--bad-bg); color: var(--bad); }
.orbit-ui-pagination { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: var(--sp-3); font-size: var(--fs-sm); color: var(--muted); }
.orbit-ui-form { max-width: 760px; display: grid; gap: var(--sp-6); }
.orbit-ui-section { margin: 0; padding: var(--sp-4) 0 0; border: 0; border-top: 1px solid var(--line); min-width: 0; }
.orbit-ui-section legend { padding-right: var(--sp-3); }
.orbit-ui-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-4); margin-top: var(--sp-4); }
.orbit-ui-full { grid-column: 1 / -1; }
.orbit-ui-form-actions { display: flex; gap: var(--sp-2); flex-wrap: wrap; padding-top: var(--sp-4); border-top: 1px solid var(--line); }
.orbit-ui-dialog { width: min(600px, calc(100% - var(--sp-7))); max-height: calc(100% - var(--sp-7)); overflow: auto; padding: var(--sp-6); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--panel); color: var(--text); }
.orbit-ui-dialog .orbit-ui-header { margin-bottom: var(--sp-4); }
.orbit-ui-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 768px) {
  .orbit-ui-page { padding: var(--sp-4); }
  .orbit-ui-fields { grid-template-columns: minmax(0, 1fr); }
  .orbit-ui-toolbar .orbit-ui-field { flex: 1 1 100%; }
}
.orbit-ui-results { display: grid; gap: var(--sp-4); min-width: 0; }
.orbit-ui-dialog dd { margin: var(--sp-1) 0 0; overflow-wrap: anywhere; }
