/* Observers admin page. Was #observers-view-css, appended after section styles.
   Hashed into the shell by scripts/build.mjs (ensure, after views-admin).
   The view appends this link at render so it still follows sheets injected later. */
.obs-wrap{max-width:960px;margin:0 auto;padding:24px 16px 60px}
.obs-page-heading{margin:0}
.obs-intro{color:var(--text-2);font-size:13px;margin:8px 0 18px;line-height:1.5}
.obs-card{margin:var(--s4) 0}
.obs-card-title{margin:0 0 6px;font-size:15px;color:var(--text-1)}
.obs-hint{color:var(--text-muted);font-size:12px;line-height:1.5;margin:0 0 10px}
.obs-field{display:flex;flex-direction:column;gap:4px;margin:8px 0}
.obs-label{font-size:11px;color:var(--text-2)}
/* .obs-input / .obs-select: the platform field box, focus ring and chevron
   (base.css, components.css). Selects fit their longest option. */
.obs-row{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}
.obs-pickers{display:flex;gap:16px;flex-wrap:wrap}
.obs-status{font-size:12px;color:var(--text-muted)}
.obs-error{color:var(--danger);font-size:12px}
.obs-empty{color:var(--text-muted);font-style:italic;font-size:12px}
.obs-checkbox-row{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-1)}
.obs-table{border-collapse:collapse;margin-top:8px;font-size:12px}
.obs-table td{padding:4px 8px;border-bottom:1px solid var(--border-subtle);color:var(--text-2);vertical-align:middle}
.obs-table td .obs-input{margin-right:6px}
.obs-table td button{margin-right:6px}
