:root { color-scheme: light; font-family: Inter, ui-sans-serif, system-ui, sans-serif; color: #172033; background: #f3f5f8; }
* { box-sizing: border-box; }
body { display: flex; flex-direction: column; margin: 0; min-height: 100vh; }
.deployment-footer { display: flex; justify-content: center; gap: .45rem; margin-top: auto; padding: .75rem 1rem; color: #647085; font-size: .72rem; }
.deployment-footer span::after { content: " ·"; }
.deployment-footer code { color: inherit; font: inherit; }
.auth-shell { min-height: 100vh; display: grid; place-items: center; padding: 2rem; background: radial-gradient(circle at top, #dce7f2, #f6f7f9 45%); }
.auth-card { width: min(100%, 28rem); padding: 2.5rem; border: 1px solid #d9dee7; border-radius: 1rem; background: #fff; box-shadow: 0 1.25rem 3rem rgba(20, 32, 52, .09); }
h1 { margin: .25rem 0 .5rem; font-size: clamp(2rem, 5vw, 2.7rem); letter-spacing: -.04em; }
h2 { margin-top: 0; }
.eyebrow { margin: 0; color: #275c8d; font-size: .75rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.muted, .empty-state p { color: #647085; line-height: 1.55; }
form { display: grid; gap: .6rem; margin-top: 1.5rem; }
label { margin-top: .6rem; font-size: .9rem; font-weight: 700; }
input { width: 100%; padding: .8rem .9rem; border: 1px solid #bdc6d3; border-radius: .5rem; font: inherit; }
input:focus { outline: 3px solid #b9d8f4; border-color: #286797; }
button { margin-top: 1rem; padding: .82rem 1rem; border: 0; border-radius: .5rem; background: #173f62; color: #fff; font: inherit; font-weight: 750; cursor: pointer; }
.flash { margin-top: 1.25rem; padding: .8rem; border-radius: .5rem; }
.flash-error { color: #7d2424; background: #fbe8e8; }
.flash-success { color: #235d39; background: #e3f4e9; }
.topbar { display: flex; justify-content: space-between; align-items: center; padding: 1rem 2rem; background: #fff; border-bottom: 1px solid #d9dee7; }
.brand { color: #173f62; font-size: 1.2rem; font-weight: 850; text-decoration: none; }
.account { display: flex; align-items: center; gap: 1rem; }
.account form { margin: 0; }
button.secondary { margin: 0; padding: .55rem .8rem; color: #173f62; background: #e7edf3; }
.dashboard { max-width: 72rem; margin: 0 auto; padding: 4rem 2rem; }
.empty-state { margin-top: 2rem; padding: 3rem; border: 1px dashed #aeb8c7; border-radius: 1rem; background: #fff; text-align: center; }
@media (max-width: 36rem) { .auth-card { padding: 1.5rem; } .topbar { padding: 1rem; } .account span { display: none; } }
.topbar nav a { color: #365570; font-weight: 700; text-decoration: none; }
.dashboard-home { width: 100%; max-width: none; }
.module-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(16rem, 100%), 1fr)); gap: 1rem; margin-top: 1.25rem; }
.module-card { display: flex; min-width: 0; gap: 1rem; align-items: center; padding: 1.25rem; border: 1px solid #d9dee7; border-radius: .8rem; background: #fff; color: inherit; text-decoration: none; }
.module-card > span:last-child { min-width: 0; overflow-wrap: anywhere; }
.module-card:hover, .entity-row:hover { border-color: #7d9bb5; box-shadow: 0 .5rem 1.5rem rgba(20, 32, 52, .08); }
.module-card small, .entity-row small { display: block; margin-top: .25rem; color: #647085; }
.module-icon { display: grid; flex: 0 0 auto; place-items: center; width: 2.8rem; height: 2.8rem; border-radius: .7rem; color: #fff; background: #275c8d; font-weight: 850; }
.dashboard-group { margin-top: 2rem; padding: 1.5rem; border: 1px solid #d9dee7; border-radius: 1rem; background: #f7f8fa; }
.dashboard-group:first-child { margin-top: 2rem; }
.dashboard-group h2 { display: flex; align-items: center; gap: .55rem; margin: 0; font-size: 1.15rem; }
.dashboard-group-icon { font-size: 1.3rem; }
.dashboard-group-search { border-color: #9dc6a9; background: #f3fbf5; }
.dashboard-group-casework { border-color: #a9c0e0; background: #eef3fb; }
.dashboard-group-activity { border-color: #e0c98a; background: #fdf8ec; }
.dashboard-group-system { border-color: #d9dee7; background: #f7f8fa; }
@media (max-width: 42rem) { .dashboard-home { padding: 2rem 1rem; } .dashboard-home .module-grid { grid-template-columns: minmax(0, 1fr); } .dashboard-group { padding: 1rem; } }
.page-heading { display: flex; justify-content: space-between; align-items: end; gap: 1rem; }
.actions, .form-actions { display: flex; align-items: center; justify-content: flex-end; gap: .75rem; }
.button { display: inline-block; padding: .72rem 1rem; border-radius: .5rem; color: #fff; background: #173f62; font-weight: 750; text-decoration: none; }
.button.secondary { color: #173f62; background: #e7edf3; }
.entity-list { display: grid; gap: .6rem; margin-top: 2rem; }
.entity-row { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.2rem; border: 1px solid #d9dee7; border-radius: .65rem; background: #fff; color: inherit; text-decoration: none; }
.entity-overview-link { display: flex; flex: 1; min-width: 0; justify-content: space-between; align-items: center; gap: 1rem; color: inherit; text-decoration: none; }
.entity-overview-row { gap: 1rem; }
.classification, .protected { padding: .2rem .45rem; border-radius: .3rem; color: #6b3c10; background: #fae9cf; font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.form-page, .detail-page { max-width: 58rem; margin: 0 auto; padding: 4rem 2rem; }
.record-form { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem 1rem; padding: 1.5rem; border: 1px solid #d9dee7; border-radius: .8rem; background: #fff; }
.record-form div { min-width: 0; }
.field-wide { grid-column: 1 / -1; }
select, textarea { width: 100%; padding: .8rem .9rem; border: 1px solid #bdc6d3; border-radius: .5rem; background: #fff; font: inherit; }
.form-actions a { color: #365570; }
.detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 2rem; }
.detail-grid div { padding: 1rem; border: 1px solid #d9dee7; border-radius: .65rem; background: #fff; }
.detail-grid dt { margin-bottom: .4rem; color: #647085; font-size: .8rem; font-weight: 750; text-transform: uppercase; }
.detail-grid dd { margin: 0; line-height: 1.5; white-space: pre-wrap; }
@media (max-width: 42rem) { .page-heading { align-items: stretch; flex-direction: column; } .actions { justify-content: stretch; } .actions .button { flex: 1; text-align: center; } .record-form, .detail-grid { grid-template-columns: 1fr; } .field-wide { grid-column: auto; } }
.narrow-page { max-width: 760px; }
.form-intro { color: #647085; line-height: 1.6; }
.single-column { grid-template-columns: 1fr; }
.registry-facts { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid #d9dee7; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.section-heading h2 { margin-top: 0; }
.section-heading small { color: #647085; }
.registry-facts h3 { margin: 1.5rem 0 .65rem; }
.fact-list { margin: 0; padding-left: 1.25rem; color: #334155; }
.fact-list.columns { columns: 2; column-gap: 2rem; }
.relationship-period { color: #647085; font-size: .82rem; text-align: right; }
.registry-review-page { max-width: 1500px; margin: 0 auto; padding: 3rem 2rem; }
.preview-legend { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; margin: 1rem 0; color: #647085; }
.table-wrap { overflow-x: auto; }
.registry-review-table { width: 100%; border-collapse: collapse; background: #fff; }
.registry-review-table th, .registry-review-table td { padding: .85rem; border: 1px solid #d9dee7; text-align: left; vertical-align: top; }
.registry-review-table select { min-width: 13rem; }
.registry-candidate-facts { min-width: 14rem; }
.state-badge { display: inline-block; border-radius: 999px; padding: .2rem .55rem; font-size: .75rem; font-weight: 750; text-transform: uppercase; }
.state-new { background: #dcfce7; color: #166534; }
.state-known { background: #dbeafe; color: #1d4ed8; }
.state-conflict { background: #fee2e2; color: #b91c1c; }
.root-label { margin-top: .35rem; color: #647085; font-size: .75rem; }
.review-actions { margin-top: 1rem; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.linked-records { margin-top: 2.5rem; }
.record-tabs { display: flex; gap: .25rem; border-bottom: 1px solid #bdc6d3; }
.record-tab { display: inline-flex; align-items: center; gap: .5rem; margin-bottom: -1px; padding: .8rem 1rem; border: 1px solid transparent; border-radius: .6rem .6rem 0 0; color: #365570; font-weight: 750; text-decoration: none; }
.record-tab span { min-width: 1.5rem; padding: .1rem .4rem; border-radius: 999px; background: #e7edf3; font-size: .75rem; text-align: center; }
.record-tab.active { border-color: #bdc6d3 #bdc6d3 #fff; color: #173f62; background: #fff; }
.linked-record-panel { padding-top: 1.5rem; }
.linked-organization-list { margin-top: 1rem; }
.linked-organization { align-items: flex-start; gap: 1.5rem; }
.organization-relationships { display: grid; gap: .65rem; text-align: right; }
.organization-relationship { display: block; }
.linked-record-empty { margin-top: 1rem; padding: 2rem; border: 1px dashed #aeb8c7; border-radius: .65rem; color: #647085; background: #fff; text-align: center; }
.linked-record-empty p { margin: 0; }
@media (max-width: 42rem) { .linked-organization { flex-direction: column; } .organization-relationships { text-align: left; } }
.enum-admin-page { max-width: 96rem; margin: 0 auto; padding: 3rem 2rem; }
.enum-create-panel, .enum-family { margin-top: 2rem; padding: 1.5rem; border: 1px solid #d9dee7; border-radius: .8rem; background: #fff; }
.enum-family.archived, .enum-table tr.archived { background: #f1f3f5; color: #647085; }
.enum-form { margin-top: 1rem; background: #f8fafc; }
.checkbox-field { display: flex; align-items: center; gap: .5rem; }
.checkbox-field input { width: auto; }
.enum-table { width: 100%; margin-top: 1.5rem; border-collapse: collapse; }
.enum-table th, .enum-table td { padding: .75rem; border: 1px solid #d9dee7; text-align: left; vertical-align: top; }
.enum-table small { display: block; margin-top: .3rem; color: #647085; }
.enum-row-form { display: contents; }
.enum-row-form label { display: block; margin: 0 0 .4rem; }
.enum-row-form input, .enum-row-form select, .enum-table input, .enum-table select { min-width: 8rem; padding: .55rem; }
.inline-form, .retire-family-form { margin: .5rem 0 0; }
.retire-family-form { display: flex; justify-content: flex-end; }
.activity-page { max-width: 76rem; margin: 0 auto; padding: 3rem 2rem; }
.activity-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 1.25rem; border: 1px solid #d9dee7; border-radius: .8rem; background: #fff; }
.activity-list { display: grid; gap: .8rem; margin: 2rem 0; }
.activity-card { padding: 1.25rem; border: 1px solid #d9dee7; border-radius: .8rem; background: #fff; }
.activity-card h2 { margin: .65rem 0 .25rem; }
.activity-card time, .activity-card small { color: #647085; }
.saved-filter-list { display: flex; flex-wrap: wrap; gap: .6rem; }
.saved-filter-list a { padding: .45rem .7rem; border-radius: 999px; background: #e7edf3; color: #173f62; text-decoration: none; }
.saved-filter-editor { margin-top: 2.5rem; max-width: 34rem; }
@media (max-width: 50rem) { .activity-filters { grid-template-columns: 1fr; } }
.search-page { max-width: 72rem; margin: 0 auto; padding: 3rem 2rem; }
.search-form { margin: 1.5rem 0 2rem; padding: 1.25rem; border: 1px solid #d9dee7; border-radius: .8rem; background: #fff; }
.search-controls { display: grid; grid-template-columns: 1fr auto; gap: .75rem; align-items: center; }
.search-controls button { margin: 0; }
.search-group { margin: 2rem 0; }
@media (max-width: 36rem) { .search-controls { grid-template-columns: 1fr; } }
.vehicle-registry-page { max-width: 88rem; width: 100%; margin: 0 auto; padding: 3rem 2rem; }
.tracked-badge { display: inline-block; padding: .25rem .55rem; border-radius: 999px; color: #166534; background: #dcfce7; font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.known-badge { display: inline-block; padding: .25rem .55rem; border-radius: 999px; color: #475569; background: #e2e8f0; font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.canonical-vehicle-card, .source-vehicle-card { margin-top: 2rem; padding: 1.5rem; border: 1px solid #d9dee7; border-radius: .8rem; background: #fff; }
.canonical-vehicle-card { border-color: #9dc6a9; background: #f3fbf5; }
.canonical-vehicle-card.muted-card { border-color: #d9dee7; background: #fff; }
.compact-detail-grid { margin-top: 1rem; }
.source-field-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin-top: 1.25rem; }
.source-field-grid div { min-width: 0; padding: .8rem; border: 1px solid #e3e7ed; border-radius: .55rem; background: #f8fafc; }
.source-field-grid dt { margin-bottom: .35rem; color: #647085; font-size: .72rem; font-weight: 750; text-transform: uppercase; }
.source-field-grid dd { margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
@media (max-width: 54rem) { .source-field-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 36rem) { .vehicle-registry-page { padding: 2rem 1rem; } .source-field-grid { grid-template-columns: 1fr; } }
.graph-page { max-width: 78rem; margin: 0 auto; padding: 3rem 2rem; }
.graph-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 2rem; }
.graph-form { align-content: start; }
.graph-form h2 { margin-bottom: 0; }
.graph-bound-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; }
.graph-suggestions { display: grid; gap: .3rem; }
.graph-suggestions button { margin: 0; padding: .6rem .75rem; text-align: left; background: #e7edf3; color: #173f62; }
.graph-results { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid #d9dee7; }
.graph-warning { padding: .8rem; border-radius: .5rem; color: #6b3c10; background: #fae9cf; }
.graph-edge-list { display: grid; gap: .6rem; padding: 0; list-style: none; }
.graph-edge-list li { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: 1rem; border: 1px solid #d9dee7; border-radius: .65rem; background: #fff; }
.graph-edge-list a { color: #173f62; font-weight: 750; }
.graph-edge-list strong { font-size: .82rem; font-weight: 700; }
.graph-edge-list small { color: #647085; }
@media (max-width: 48rem) { .graph-controls { grid-template-columns: 1fr; } .graph-bound-grid { grid-template-columns: 1fr; } }
.tag-tree,.tag-tree ul{list-style:none}.tag-tree ul{margin:.45rem 0 .45rem 1.25rem;border-left:1px solid var(--border);padding-left:1rem}.tag-tree-row,.tag-results li,.tag-chips,.tag-path{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.tag-color{width:1.8rem;height:1.5rem;padding:0;border:0;background:transparent}.tag-color:disabled{opacity:1}.tag-color-large{width:2.3rem;height:2rem;vertical-align:middle}.tag-chip{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--border);border-radius:999px;padding:.3rem .65rem;text-decoration:none}.metadata-json{white-space:pre-wrap;overflow-wrap:anywhere}.danger-zone{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border)}
.page-flash { max-width: 58rem; margin-right: auto; margin-left: auto; }
.staff-page { max-width: 72rem; }
.system-health-page { width: 100%; max-width: 80rem; margin: 0 auto; padding: 3rem 2rem; }
.job-console-page { width: 100%; max-width: 96rem; margin: 0 auto; padding: 3rem 2rem; }
.job-console-page > .card { margin: 1.25rem 0; padding: 1.25rem; }
.job-console-page table { width: 100%; border-collapse: collapse; }
.job-console-page th, .job-console-page td { padding: .7rem; border-bottom: 1px solid #e3e7ed; text-align: left; vertical-align: top; }
.job-console-page th { color: #647085; font-size: .72rem; text-transform: uppercase; }
.job-console-page .filter-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: .75rem; align-items: end; margin: 1rem 0; }
.job-console-page .filter-grid button { margin: 0; }
.entity-table td small { display: block; margin-top: .2rem; color: #647085; }
.entity-table td:nth-child(4) { max-width: 28rem; overflow-wrap: anywhere; }
.entity-type { display: inline-block; padding: .15rem .45rem; border-radius: .3rem; background: #e8eef6; color: #173f62; font-size: .75rem; font-weight: 800; text-decoration: none; white-space: nowrap; }
.health-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 2rem; }
.health-card { min-width: 0; padding: 1.3rem; }
.health-card .section-heading { align-items: start; }
.health-card .section-heading a { color: #173f62; font-weight: 750; }
.health-card dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr)); gap: .7rem; margin: 1rem 0; }
.health-card dl div { padding: .8rem; border-radius: .55rem; background: #f3f5f8; }
.health-card dt { color: #647085; font-size: .72rem; font-weight: 750; text-transform: uppercase; }
.health-card dd { margin: .25rem 0 0; font-size: 1.5rem; font-weight: 800; }
.health-limit-note { margin-top: 1rem; }
.storage-boundary { border-style: dashed; }
@media (max-width: 48rem) { .system-health-page, .job-console-page { padding: 2rem 1rem; } .health-card-grid { grid-template-columns: 1fr; } }
.staff-table-wrap { margin-top: 2rem; border: 1px solid #d9dee7; border-radius: .8rem; background: #fff; }
.staff-table { width: 100%; border-collapse: collapse; }
.staff-table th, .staff-table td { padding: .9rem 1rem; border-bottom: 1px solid #e3e7ed; text-align: left; vertical-align: top; }
.staff-table th { color: #647085; font-size: .75rem; text-transform: uppercase; }
.staff-table tr:last-child td { border-bottom: 0; }
.staff-table a { color: #173f62; text-decoration: none; }
.staff-table small { display: block; margin-top: .25rem; color: #647085; }
.management-card { margin-top: 2rem; padding: 1.5rem; border: 1px solid #d9dee7; border-radius: .8rem; background: #fff; }
.management-card .record-form { padding: 0; border: 0; }
.management-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.management-actions form, .management-card > form { margin: 0; }
.management-actions button { margin: 0; }
button.danger { background: #8b2c2c; }
.credential-card { margin: 2rem 0; padding: 1.5rem; border: 1px solid #e2c879; border-radius: .8rem; background: #fff9e8; }
.credential-card dl { display: grid; gap: .4rem; }
.credential-card dt { color: #647085; font-size: .8rem; font-weight: 750; text-transform: uppercase; }
.credential-card dd { margin: 0 0 1rem; overflow-wrap: anywhere; font-size: 1.15rem; }
.forced-password-notice { padding: 1rem; border-radius: .65rem; color: #7d2424; background: #fbe8e8; font-weight: 700; }
@media (max-width: 48rem) { .staff-table th:nth-child(2), .staff-table td:nth-child(2), .staff-table th:nth-child(3), .staff-table td:nth-child(3) { display: none; } }
.note-editor,.note-entry{margin:1.25rem 0;padding:1.25rem}.note-timeline{margin-top:2rem}.note-meta{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;color:#647085}.note-content{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55}.note-mentions,.note-provenance{color:#647085}.note-entry details{margin:1rem 0}.note-deleted{border-style:dashed}.tag-pill{display:inline-block;padding:.22rem .55rem;border-left:.35rem solid var(--tag-color);border-radius:.3rem;background:#eef2f6;font-size:.8rem;font-weight:750}
.form-divider {
  align-items: center;
  color: var(--muted);
  display: flex;
  gap: 0.75rem;
  margin: 1rem 0;
}

.geospatial-form, .result-card { display: grid; gap: 1rem; max-width: 58rem; }
.field-row { display: flex; flex-wrap: wrap; gap: 1rem; }
.field-row label { display: grid; gap: .35rem; flex: 1 1 12rem; }
.coordinate-grid { position: relative; min-height: 18rem; overflow: hidden; border: 2px solid var(--border, #46515c); border-radius: .5rem; background: repeating-linear-gradient(0deg, transparent 0 19%, rgba(127,127,127,.2) 20%), repeating-linear-gradient(90deg, transparent 0 19%, rgba(127,127,127,.2) 20%); cursor: crosshair; }
.coordinate-marker { position: absolute; width: 1rem; height: 1rem; border: 3px solid white; border-radius: 50%; background: #c52a36; box-shadow: 0 0 0 2px #c52a36; transform: translate(-50%, -50%); pointer-events: none; }
.grid-label { position: absolute; padding: .25rem; font-size: .8rem; background: rgba(255,255,255,.8); color: #111; }
.grid-north { top: 0; left: 50%; } .grid-south { bottom: 0; left: 50%; }
.grid-west { left: 0; top: 50%; } .grid-east { right: 0; top: 50%; }

.form-divider::before,
.form-divider::after {
  background: var(--border);
  content: "";
  flex: 1;
  height: 1px;
}

.stacked-records {
  display: grid;
  gap: 1rem;
  margin-bottom: 1rem;
}

.compact-card {
  margin: 0;
}
.honeypot {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.pre-wrap { white-space: pre-wrap; }
.camera-detections-table-wrap { margin-top: 1rem; }
.camera-detections-table { width: 100%; border-collapse: separate; border-spacing: 0 .65rem; }
.camera-detections-table th { padding: 0 .9rem .2rem; color: #647085; font-size: .72rem; letter-spacing: .06em; text-align: left; text-transform: uppercase; }
.camera-detections-table td { padding: 1rem .9rem; border-top: 1px solid #d9dee7; border-bottom: 1px solid #d9dee7; background: #fff; vertical-align: middle; }
.camera-detections-table td:first-child { border-left: 1px solid #d9dee7; border-radius: .7rem 0 0 .7rem; }
.camera-detections-table td:last-child { border-right: 1px solid #d9dee7; border-radius: 0 .7rem .7rem 0; }
.camera-detection-plate { display: block; color: #173f62; font-size: 2rem; letter-spacing: .08em; line-height: 1; white-space: nowrap; }
.camera-detection-time { display: grid; gap: .2rem; min-width: 7.5rem; white-space: nowrap; }
.camera-detection-time span:last-child { color: #647085; font-size: .84rem; }
.camera-snapshot-thumbnail { display: block; width: 18rem; max-width: none; max-height: 12rem; border-radius: .5rem; box-shadow: 0 .25rem .8rem rgba(20, 32, 52, .12); object-fit: contain; }
.camera-detection-confidence { font-size: 1.05rem; font-variant-numeric: tabular-nums; font-weight: 750; }
.camera-detection-filter { display: inline-block; padding: .3rem .6rem; border-radius: 999px; color: #173f62; background: #e7edf3; font-size: .78rem; font-weight: 750; text-transform: capitalize; white-space: nowrap; }
.camera-tabs { margin: 1rem 0; }
.camera-detections-page .filter-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: .75rem; align-items: end; margin: 1rem 0; }
.camera-detections-page .filter-grid button { margin: 0; }
.camera-detection-total { font-size: 1.05rem; font-variant-numeric: tabular-nums; font-weight: 750; }
.camera-remote-badge { display: inline-block; margin-top: .25rem; padding: .15rem .5rem; border-radius: 999px; color: #5a3b00; background: #fdf0d5; font-size: .75rem; font-weight: 700; white-space: nowrap; }
.camera-detection-location { font-variant-numeric: tabular-nums; white-space: nowrap; }
.plate-lookup-card { margin: 1rem 0; }
.plate-lookup-card h3 { margin-top: 1rem; }
@media (max-width: 48rem) { .camera-detection-plate { font-size: 1.6rem; } .camera-snapshot-thumbnail { width: 14rem; max-height: 9rem; } }
.staff-avatar { display: inline-block; width: 4rem; height: 4rem; border-radius: 50%; object-fit: cover; }
.staff-avatar-fallback { background: #d9dee7; color: #647085; font-size: 1.6rem; font-weight: 600; line-height: 4rem; text-align: center; }
.job-console-page tr.crash-row-fatal td:first-child { box-shadow: inset .25rem 0 #b42318; }
.job-console-page tr.crash-row-serious td:first-child { box-shadow: inset .25rem 0 #dc6803; }
.job-console-page tr.crash-row-injury td:first-child { box-shadow: inset .25rem 0 #eaaa08; }
.crash-severity { display: inline-block; padding: .25rem .55rem; border-radius: 999px; color: #344054; background: #eef2f6; font-size: .75rem; font-weight: 800; text-transform: uppercase; white-space: nowrap; }
.crash-severity-fatal { color: #fff; background: #b42318; }
.crash-severity-serious { color: #7a2e0e; background: #fde4cf; }
.crash-severity-injury { color: #713b12; background: #fef0c7; }
.crash-severity-damage { color: #166534; background: #dcfce7; }
.crash-source-link { color: #173f62; font-weight: 750; white-space: nowrap; }
.crash-source-callout { margin: .75rem 0 0; }
.crash-time-note { margin: .5rem 0; padding: .6rem .8rem; border-radius: .5rem; color: #6b3c10; background: #fae9cf; }
.crash-field-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.5rem; margin: 1rem 0 0; }
.crash-field-list div { display: grid; grid-template-columns: minmax(8rem, 40%) 1fr; gap: .75rem; padding: .45rem 0; border-bottom: 1px solid #eef1f5; }
.crash-field-list dt { color: #647085; font-size: .82rem; font-weight: 700; }
.crash-field-list dd { margin: 0; overflow-wrap: anywhere; }
.crash-vehicles { margin-top: 2rem; }
.crash-vehicle-card { margin-top: 1rem; padding: 1.25rem 1.5rem; border: 1px solid #d9dee7; border-left: .35rem solid #173f62; border-radius: .8rem; background: #fff; }
.crash-vehicle-card h3 { margin: 0; }
.crash-more { margin-top: 1rem; }
.crash-more summary { cursor: pointer; color: #173f62; font-weight: 750; }
.crash-person { margin-top: 1rem; padding: .9rem 1rem; border-radius: .6rem; background: #f8fafc; }
.crash-person h4 { margin: 0; }
.vehicle-crash-list { display: grid; gap: .7rem; margin: 1.25rem 0 1rem; padding: 0; list-style: none; }
.vehicle-crash-card { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; border: 1px solid #d9dee7; border-radius: .7rem; background: #f8fafc; }
.vehicle-crash-card p { margin: .35rem 0 0; }
.vehicle-crash-card-title { color: #173f62; font-weight: 800; }
.rsv-change-list { display: grid; gap: .7rem; margin: 1.25rem 0 1rem; padding: 0; list-style: none; }
.rsv-change-card { padding: 1rem 1.2rem; border: 1px solid #d9dee7; border-radius: .7rem; background: #f8fafc; }
.rsv-change-card p { margin: 0 0 .35rem; }
.rsv-change-fields { margin: 0; padding: 0; list-style: none; }
.rsv-change-fields li { margin: .2rem 0; overflow-wrap: anywhere; }
.rsv-change-label { color: #647085; font-size: .78rem; font-weight: 750; text-transform: uppercase; }
.rsv-change-old { text-decoration: line-through; color: #8a3b3b; }
.rsv-change-new { color: #166534; font-weight: 650; }
.rsv-change-kind { display: inline-block; padding: .15rem .5rem; border-radius: 999px; font-size: .72rem; font-weight: 800; text-transform: uppercase; color: #173f62; background: #e0ecf7; }
.rsv-change-kind.rsv-change-added { color: #166534; background: #dcfce7; }
.rsv-change-kind.rsv-change-removed { color: #991b1b; background: #fee2e2; }
.vehicle-crash-card-meta { display: flex; flex-direction: column; align-items: flex-end; gap: .35rem; text-align: right; }
.vehicle-crash-card-meta small { color: #647085; }
@media (max-width: 54rem) { .crash-field-list { grid-template-columns: 1fr; } }
@media (max-width: 36rem) { .vehicle-crash-card { flex-direction: column; } .vehicle-crash-card-meta { align-items: flex-start; text-align: left; } .crash-field-list div { grid-template-columns: 1fr; gap: .2rem; } }
/* Plate lookup request status (ADR 0117): completed = assigned to a VIN, invalid = cannot be. */
.lookup-status { display: inline-block; padding: .05rem .45rem; border: 1px solid #c7d0dc; border-radius: 999px; background: #eef2f6; color: #365570; font-size: .82rem; font-weight: 700; white-space: nowrap; }
.lookup-status-completed { border-color: #9fd0b1; background: #e3f4e9; color: #235d39; }
.lookup-status-invalid { border-color: #e2c48f; background: #fbf1df; color: #6e4a0e; }
.lookup-status-failed { border-color: #e6aaaa; background: #fbe8e8; color: #7d2424; }
.lookup-status-review_required { border-color: #b3c8e6; background: #e8f0fb; color: #1f4d80; }
.plate-status { display: inline-block; padding: .05rem .45rem; border: 1px solid #c7d0dc; border-radius: 999px; background: #eef2f6; color: #365570; font-size: .82rem; font-weight: 700; white-space: nowrap; }
.plate-status-current { border-color: #9fd0b1; background: #e3f4e9; color: #235d39; }
.plate-status-future { border-color: #b3c8e6; background: #e8f0fb; color: #1f4d80; }
.plate-former-note { color: #6e4a0e; }
.vehicle-plate-history-details summary h2 { display: inline; }
