/* Argus command center. Shared tokens and responsive component treatments. */
:root {
  --ink:#1b2233;
  --muted:#727d91;
  --line:#e4e7ee;
  --surface:#fff;
  --canvas:#f5f6f9;
  --accent:#3849eb;
  --accent-soft:#eef0ff;
  --nav:#fffefa;
  --shadow-sm:0 2px 5px #172b4d04;
  --shadow-md:0 12px 32px #172b4d0a;
}

body {
  font-family:Helvetica,Arial,sans-serif;
  background:var(--canvas);
  color:var(--ink);
  font-size:14px;
  letter-spacing:-.015em;
}

button,input,select,textarea {
  font-family:inherit;
}

button {
  transition:background .16s,color .16s,box-shadow .16s;
}

button:disabled {
  transform:none;
  cursor:not-allowed;
}

button:focus-visible,a:focus-visible,[role=button]:focus-visible {
  outline:3px solid #91a8ff;
  outline-offset:3px;
}

::selection {
  background:#dce5ff;
}

.app {
  height:100dvh;
  min-height:640px;
  overflow:hidden;
}

.rail {
  width:232px;
}

.sidebar,.sidebar:hover {
  position:relative;
  width:232px;
  height:100%;
  padding:31px 16px 18px;
  background:var(--nav);
  border:0;
  border-right:1px solid var(--line);
  box-shadow:none;
  overflow-y:auto;
}

.sidebar .logo-word,.sidebar .nav-section,.sidebar .nav-label,.sidebar .who {
  opacity:1;
}

.logo {
  padding:0 14px 29px;
  gap:10px;
}

.logo-mark {
  height:33px;
}

.sidebar .logo-word {
  color:var(--ink);
  font-size:22px;
  letter-spacing:.15em;
}

.workspace-label {
  display:flex;
  align-items:center;
  gap:10px;
  padding:15px 10px;
  margin-bottom:24px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  color:#445168;
  font-size:11px;
  font-weight:550;
}

.workspace-label small {
  display:block;
  color:#8290a7;
  font-size:8px;
  letter-spacing:.12em;
  margin-top:5px;
}

.workspace-icon {
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  background:#f2f5fb;
  color:#6980a5;
  border:1px solid #e5eaf3;
  border-radius:7px;
}

.nav {
  padding:0;
}

.nav-section {
  padding:0 13px;
  margin:21px 0 9px;
  color:#75839a;
  font-size:9px;
  letter-spacing:.13em;
  font-weight:600;
}

.nav button {
  padding:12px 13px;
  margin:3px 0;
  border-radius:7px;
  gap:12px;
  font-size:12px;
  font-weight:450;
  color:#657187;
  min-height:42px;
}

.nav button:hover {
  background:#f5f7fb;
  color:var(--ink);
}

.nav button.active {
  color:#3f60c8;
  background:var(--accent-soft);
  box-shadow:none;
}

.nav button.active .nav-ico {
  color:#5575d5;
}

.nav-ico {
  width:18px;
  height:18px;
}

.nav-badge {
  font-size:9px;
  min-width:14px;
  height:14px;
  top:-6px;
  right:-6px;
  border:2px solid var(--nav);
}

.sidebar .sidebar-foot {
  margin:30px 3px 0;
  padding:19px 9px 0;
  border-color:var(--line);
  gap:10px;
}

.avatar,.top-avatar {
  background:#e3e9f8;
  color:#405686;
  width:31px;
  height:31px;
  font-size:11px;
  font-weight:600;
  border-radius:9px;
  display:grid;
  place-items:center;
  text-transform:uppercase;
}

.sidebar-foot .email {
  color:#445168;
  font-size:10px;
  font-weight:450;
  max-width:136px;
}

.sidebar-foot .link {
  color:#6d7c92;
  font-size:10px!important;
  text-decoration:none;
  margin-top:4px;
}

.workspace {
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
}

.topbar {
  height:70px;
  min-height:70px;
  background:#fff;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 34px;
}

.breadcrumb {
  display:flex;
  align-items:center;
  gap:15px;
  font-size:11px;
  color:var(--muted);
}

.breadcrumb strong {
  color:#414c5b;
  font-weight:550;
}

.crumb-slash {
  color:#c6ccd5;
}

.topbar-actions {
  display:flex;
  align-items:center;
  gap:21px;
}

.workspace-tag {
  display:flex;
  align-items:center;
  gap:6px;
  font-size:10px;
  color:#86909e;
}

.notification-button {
  position:relative;
  background:none;
  border:0;
  color:#69758a;
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-left:1px solid var(--line);
  padding-left:16px;
  box-sizing:content-box;
}

.notification-dot {
  position:absolute;
  right:2px;
  top:3px;
  width:5px;
  height:5px;
  border-radius:50%;
  background:#e36668;
  outline:2px solid white;
}

.top-avatar {
  width:29px;
  height:29px;
  border-radius:50%;
  font-size:10px;
}

.main {
  padding:34px clamp(22px,3vw,48px) 50px;
  min-width:0;
  flex:1;
  overflow-y:auto;
}

.main>div {
  max-width:1600px;
  margin:auto;
}

.eyebrow {
  font-size:9px;
  font-weight:650;
  letter-spacing:.15em;
  color:#8490a2;
  margin-bottom:12px;
}

.page-title {
  font-size:29px;
  font-weight:550;
  line-height:1.2;
  letter-spacing:-.045em;
  color:#202b3c;
  margin-bottom:7px;
}

.page-sub {
  font-size:12px;
  color:#7b8696;
  line-height:1.6;
  margin:9px 0 28px;
  max-width:740px;
}

.card,.alert-card,.stat {
  border:1px solid var(--line);
  border-radius:10px;
  box-shadow:var(--shadow-sm);
}

.card {
  padding:23px;
}

.btn {
  background:var(--accent);
  border:1px solid transparent;
  border-radius:6px;
  font-size:11px;
  font-weight:550;
  min-height:36px;
  padding:9px 14px;
  box-shadow:0 2px 3px #2c4ba015;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  line-height:1.4;
}

.btn:hover {
  background:#3557d0;
}

.btn-secondary {
  background:white;
  border-color:#dfe4ec;
  color:#566276;
  box-shadow:none;
}

.btn-secondary:hover {
  background:#f1f4fa;
  color:#344259;
}

.btn-sm {
  min-height:30px;
  padding:6px 10px;
  font-size:10px;
}

.btn-soft-red {
  background:#fff0f0;
  color:#bb4e53;
  border-color:#f5dfe0;
}

.btn-soft-red:hover {
  background:#fbe0e2;
}

.btn-soft-green {
  background:#ecf7f1;
  color:#398366;
  border-color:#d8ede1;
}

.btn-soft-green:hover {
  background:#dcf0e5;
}

.btn-soft-grey {
  background:#f3f5f7;
  color:#637085;
  border-color:#e5e9ee;
}

.btn-soft-grey:hover {
  background:#e9edf2;
}

.input,select,textarea {
  font-size:12px;
  border-color:#dfe4eb;
  border-radius:6px;
  padding:11px 12px;
  color:#354256;
  min-height:38px;
}

.input:focus,select:focus,textarea:focus {
  outline:none;
  border-color:#869de8;
  box-shadow:0 0 0 3px #4468e813;
}

label {
  font-size:11px;
  color:#586578;
  font-weight:500;
  margin:18px 0 8px;
}

.muted {
  color:#7b8696;
  font-size:12px;
  line-height:1.6;
}

.link {
  color:#4d6bd2;
  font-size:11px;
}

.pill,.conf-badge,.q-pill {
  font-size:9px;
  font-weight:550;
  letter-spacing:0;
}

.policy-tag {
  background:var(--accent-soft);
  color:#536fc5;
  font-size:10px;
  border-radius:4px;
  padding:4px 7px;
}

table {
  min-width:600px;
}

th {
  background:#f8f9fb;
  font-size:9px;
  font-weight:550;
  letter-spacing:.07em;
  color:#8791a0;
}

th,td {
  padding:15px 13px;
  border-color:#edf0f4;
}

td {
  font-size:11px;
  color:#546175;
}

tbody tr:hover {
  background:#fafbfe;
}

.card:has(>table) {
  overflow-x:auto;
}

.stat {
  padding:23px;
}

.stat-num {
  font-size:33px;
  font-weight:500;
  letter-spacing:-.045em;
  font-variant-numeric:tabular-nums;
}

.stat-label {
  font-size:10px;
  color:#8590a0;
  line-height:1.5;
  margin-top:10px;
}

.grid {
  gap:16px;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));
}

.modal-bg {
  background:#0f1d3266;
  backdrop-filter:blur(5px);
}

.modal {
  border:1px solid var(--line);
  border-radius:12px;
  box-shadow:0 30px 90px #09172b33;
  max-height:90dvh;
  overflow:auto;
}

/* Overview */
.map-main {
  flex:1;
  min-height:0;
  overflow:auto;
}

.operations-view {
  height:100%;
  min-height:640px;
  display:flex;
  flex-direction:column;
  padding:32px 34px 14px;
}

.operations-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}

.operations-heading .page-sub {
  margin-bottom:24px;
}

.operations-heading>.btn {
  flex-shrink:0;
  margin-bottom:24px;
}

.button-count {
  padding:1px 5px;
  background:#ffffff25;
  border-radius:3px;
  font-size:10px;
}

.overview-metrics {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border:1px solid var(--line);
  background:white;
  border-radius:10px;
  margin-bottom:24px;
  padding:20px 0;
}

.overview-metrics>div {
  position:relative;
  padding:0 24px;
  border-right:1px solid var(--line);
  min-height:66px;
}

.overview-metrics>div:last-child {
  border:0;
}

.overview-metrics>div>span:first-child {
  display:block;
  font-size:10px;
  color:#7b8697;
  margin-bottom:12px;
}

.overview-metrics strong {
  font-size:28px;
  font-weight:500;
  letter-spacing:-.04em;
  line-height:1;
  font-variant-numeric:tabular-nums;
}

.overview-metrics svg {
  position:absolute;
  right:24px;
  bottom:3px;
  color:#a6b6d2;
}

.metric-caption {
  margin-left:12px;
  color:#95a0af;
  font-size:9px;
}

.overview-metrics .link {
  margin-left:12px;
  text-decoration:none;
  font-size:9px;
}

.map-surface {
  position:relative;
  flex:1;
  min-height:320px;
  border:1px solid #dfe4eb;
  border-radius:10px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  background:#eef1f4;
}

.map-surface-heading {
  height:52px;
  min-height:52px;
  background:white;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 20px;
  z-index:8;
}

.map-surface-heading>div {
  display:flex;
  align-items:center;
  gap:9px;
}

.map-surface-heading svg {
  color:#7c8ba1;
}

.map-surface-heading strong {
  font-size:11px;
  font-weight:550;
}

.map-heading-note {
  font-size:9px;
  color:#939dab;
  margin-left:6px;
  padding-left:15px;
  border-left:1px solid var(--line);
}

.connection-state {
  display:flex;
  align-items:center;
  gap:6px;
  font-size:9px;
  color:#8893a3;
}

.connection-state i {
  width:5px;
  height:5px;
  border-radius:50%;
  background:#b79855;
}

.connection-state.connected i {
  background:#429f7a;
}

.connection-state.connected {
  color:#448169;
}

.map-wrap {
  position:relative;
  inset:auto;
  flex:1;
  min-height:0;
}

.map-toolbar {
  top:16px;
  left:16px;
  gap:5px;
}

.map-chip {
  font-size:10px;
  font-weight:500;
  border-radius:5px;
  padding:8px 10px;
  box-shadow:0 2px 4px #172b4d07;
  backdrop-filter:blur(10px);
}

.map-chip.off {
  background:#f9fafbe0;
  color:#8f99a8;
}

.map-chip.armed {
  background:var(--accent);
  border-color:var(--accent);
}

.legend {
  bottom:16px;
  left:16px;
  padding:12px 14px;
  font-size:9px;
  line-height:1.9;
  border-radius:7px;
  box-shadow:var(--shadow-sm);
  color:#778394;
}

.legend .dot {
  width:6px;
  height:6px;
  margin-right:8px;
}

.map-panel {
  width:min(380px,100%);
  padding:22px;
  box-shadow:-10px 0 35px #172b4d15;
}

.map-caption {
  font-size:9px;
  color:#8c97a6;
  display:flex;
  align-items:center;
  gap:6px;
  padding-top:12px;
}

.map-caption>span {
  margin-left:auto;
  font-size:8px;
  letter-spacing:.02em;
}

.map-unavailable {
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:radial-gradient(circle at 50% 50%,#fff 0%,#f1f4f8 72%);
  padding:55px 20px 110px;
}

.empty-state-icon {
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  background:#e7edf9;
  color:#6983bf;
  border:1px solid #dae3f3;
  border-radius:15px;
  margin-bottom:18px;
}

.map-unavailable h2 {
  font-size:19px;
  font-weight:500;
  letter-spacing:-.025em;
  margin-bottom:10px;
}

.map-unavailable p {
  font-size:11px;
  color:#8390a2;
  max-width:360px;
  line-height:1.6;
}

.map-unavailable code {
  font:9px Helvetica,Arial,sans-serif;
  color:#8b97a8;
  margin-top:13px;
}

.map-unavailable~.map-toolbar {
  display:none;
}

/* Triage */
.alert-summary {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin-bottom:28px;
}

.alert-summary>div {
  display:flex;
  align-items:center;
  gap:8px;
  border:1px solid var(--line);
  border-radius:8px;
  background:white;
  padding:17px;
  font-size:10px;
  color:#7c8798;
}

.alert-summary strong {
  margin-left:auto;
  font-size:23px;
  font-weight:500;
  color:var(--ink);
}

.summary-dot {
  width:6px;
  height:6px;
  border-radius:50%;
}

.blue {
  background:#6383e0;
}

.red {
  background:#d97478;
}

.green {
  background:#6ca58e;
}

.inbox {
  gap:22px;
}

.inbox-list {
  width:330px;
  gap:5px;
}

.queue-filters {
  display:flex;
  align-items:center;
  gap:4px;
  margin-bottom:12px;
  flex-wrap:wrap;
}

.queue-filters>button {
  font-size:10px!important;
  padding:7px 10px!important;
  border-radius:5px!important;
}

.inbox-row {
  padding:13px 10px;
  border-color:var(--line);
  border-left-width:3px;
  border-radius:7px;
  box-shadow:none;
  min-height:81px;
}

.inbox-row:hover {
  background:#f6f8ff;
  box-shadow:none;
}

.inbox-row.selected {
  background:#edf2ff;
  border-color:#dce4fa;
  border-left-color:var(--accent);
  box-shadow:none;
}

.inbox-thumb {
  width:74px;
  height:49px;
  background:#192637;
  border-radius:5px;
}

.inbox-row-title {
  font-size:11px;
  line-height:1.5;
}

.inbox-row-sub {
  font-size:9px;
  margin-top:5px;
}

.inbox-detail {
  min-width:0;
}

.alert-review-layout {
  display:flex;
  flex-direction:column;
  border:0;
  background:transparent;
  box-shadow:none;
  overflow:visible!important;
}

.review-actions {
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  padding:12px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  margin-bottom:12px;
  align-items:center;
}

.review-actions .link {
  margin-left:auto;
  text-decoration:none;
}

.clip-review {
  border:1px solid var(--line);
  border-radius:10px;
  box-shadow:var(--shadow-sm);
}

.clip-review-head {
  padding:19px 21px;
  background:white;
  border-bottom:1px solid var(--line);
}

.clip-review-kicker {
  font-size:8px;
  letter-spacing:.14em;
  color:#b66870;
  margin-bottom:6px;
}

.clip-review-title {
  font-size:16px;
  font-weight:550;
  letter-spacing:-.025em;
}

.clip-review-player,.clip-review-player video {
  background:#101b2b;
}

.clip-review-body {
  padding:21px;
}

.clip-review-facts {
  gap:0;
  margin-bottom:20px;
}

.clip-fact {
  border:0;
  border-right:1px solid var(--line);
  background:none;
  border-radius:0;
  padding:0 13px;
}

.clip-fact:first-child {
  padding-left:0;
}

.clip-fact:last-child {
  border:0;
}

.clip-fact-label {
  font-size:8px;
  color:#909bac;
  font-weight:500;
  margin-bottom:7px;
}

.clip-fact-value {
  font-size:10px;
  font-weight:500;
}

.clip-review-section {
  border-color:var(--line);
  padding-top:17px;
  margin-top:17px;
}

.clip-review-section-title {
  font-size:11px;
  font-weight:600;
  margin-bottom:7px;
}

.clip-review-copy {
  font-size:11px;
  color:#748095;
  line-height:1.75;
}

.clip-moment {
  border:1px solid #e1e7f6;
  background:#f5f7ff;
  color:#637ab5;
  border-radius:5px;
  font-size:9px;
  font-weight:500;
  padding:6px 9px;
}

.clip-review-foot {
  font-size:9px;
  color:#98a1af;
}

.dropzone {
  border:1px dashed #cbd5e9;
  border-radius:8px;
  background:#fafbfe;
  padding:50px 20px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  color:#8a96a7;
  font-size:12px;
}

.dropzone:hover,.dropzone.drag {
  background:#f0f4ff;
  border-color:#879fe5;
}

.dropzone strong {
  font-size:17px;
  font-weight:500;
  letter-spacing:-.025em;
  color:#354560;
}

.dropzone b {
  color:#5575d8;
  font-weight:500;
}

.dropzone small {
  font-size:9px;
  color:#a1aabc;
  margin-top:3px;
}

.upload-icon {
  width:58px;
  height:58px;
  border:1px solid #e1e7f1;
  border-radius:15px;
  display:grid;
  place-items:center;
  color:#7990c6;
  background:white;
  margin-bottom:4px;
}

.dropzone.loaded {
  border-color:#bdcbef;
  background:#f3f6ff;
  color:#5873b4;
}

/* Authentication */
.auth-layout {
  min-height:100dvh;
  display:grid;
  grid-template-columns:1.1fr 1fr;
  background:#fff;
}

.auth-story {
  position:relative;
  overflow:hidden;
  min-height:100dvh;
  background:#111e32;
  color:#fff;
  padding:50px 56px;
  display:flex;
  flex-direction:column;
}

.auth-brand {
  font:500 24px Helvetica,Arial,sans-serif;
  letter-spacing:.2em;
  z-index:1;
}

.auth-brand span {
  display:block;
  font:8px Inter,sans-serif;
  letter-spacing:.2em;
  color:#7d91b1;
  margin-top:11px;
}

.auth-story-copy {
  margin:auto 0;
  z-index:1;
  padding:100px 0;
}

.auth-story-copy .eyebrow {
  color:#95afe8;
  font-size:9px;
}

.auth-story h1 {
  font-size:clamp(36px,4.2vw,66px);
  font-weight:450;
  line-height:1.13;
  letter-spacing:-.05em;
  margin:22px 0;
}

.auth-story p {
  font-size:13px;
  line-height:1.9;
  color:#8e9eb8;
}

.auth-footer {
  font-size:8px;
  letter-spacing:.18em;
  color:#6c809f;
  z-index:1;
}

.orbital {
  position:absolute;
  width:760px;
  height:760px;
  left:16%;
  top:32%;
  border:1px solid #567bbb19;
  border-radius:50%;
  background:radial-gradient(circle,#36589114,transparent 60%);
  pointer-events:none;
}

.orbital i {
  position:absolute;
  inset:80px;
  border:1px solid #567bbb19;
  border-radius:50%;
}

.orbital i:nth-child(2) {
  inset:160px;
}

.orbital i:nth-child(3) {
  inset:240px;
}

.auth-form-wrap {
  display:flex;
  align-items:center;
  justify-content:center;
  padding:36px;
}

.auth-form.card {
  width:360px;
  max-width:100%;
  border:0;
  box-shadow:none;
  padding:0;
  margin:0;
}

.auth-form .logo {
  margin-bottom:38px;
}

.auth-form h2 {
  font-size:27px;
  font-weight:550;
  letter-spacing:-.04em;
  margin-bottom:12px;
}

.auth-form .muted {
  font-size:11px;
}

.auth-form input {
  min-height:44px;
}

.auth-form>.btn {
  min-height:44px;
  margin-top:24px!important;
}

.auth-form label {
  font-size:11px;
}

.auth-form .link {
  font-size:10px;
}

.skip-link {
  position:fixed;
  top:-100px;
  left:250px;
  z-index:100;
  background:#fff;
  padding:12px;
  color:var(--ink);
}

.skip-link:focus {
  top:8px;
}

.menu-toggle,.nav-scrim {
  display:none;
}

@media(min-width:1600px) {
  .rail,.sidebar,.sidebar:hover {
    width:248px;
  }

  .operations-view {
    padding:38px 44px 18px;
  }

  .inbox-list {
    width:370px;
  }

}

@media(max-width:1150px) {
  .rail,.sidebar,.sidebar:hover {
    width:200px;
  }

  .sidebar {
    padding-left:10px;
    padding-right:10px;
  }

  .operations-view {
    padding:26px 24px 14px;
  }

  .overview-metrics>div {
    padding:0 16px;
  }

  .metric-caption {
    display:none;
  }

  .inbox {
    flex-direction:column;
  }

  .inbox-list {
    width:100%;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .queue-filters {
    grid-column:1/-1;
  }

  .inbox-detail {
    width:100%;
    position:static;
  }

  .topbar {
    padding:0 24px;
  }

  .overview-metrics .link {
    display:block;
    margin:6px 0 0;
  }

  .overview-metrics svg {
    display:none;
  }

  .auth-story {
    padding:40px;
  }

}

@media(max-width:760px) {
  .app {
    min-height:0;
  }

  .rail {
    width:0;
    z-index:40;
  }

  .sidebar,.sidebar:hover {
    position:fixed;
    left:-250px;
    top:0;
    width:232px;
    transition:left .2s;
  }

  .nav-open .sidebar {
    left:0;
  }

  .nav-open .nav-scrim {
    display:block;
    position:fixed;
    inset:0;
    border:0;
    background:#0e1e3266;
    z-index:35;
  }

  .menu-toggle {
    display:block;
    background:none;
    border:0;
    color:#63718a;
    font-size:18px;
    padding:6px;
  }

  .topbar {
    height:58px;
    min-height:58px;
    padding:0 16px;
  }

  .breadcrumb {
    gap:10px;
  }

  .workspace-tag {
    display:none;
  }

  .topbar-actions {
    gap:14px;
  }

  .notification-button {
    padding:0;
    border:0;
  }

  .operations-view {
    padding:24px 16px 14px;
    height:auto;
    min-height:calc(100dvh - 58px);
  }

  .operations-heading {
    align-items:flex-start;
  }

  .operations-heading>.btn {
    font-size:0;
    padding:10px;
    margin-bottom:0;
  }

  .operations-heading>.btn .button-count {
    font-size:10px;
  }

  .page-title {
    font-size:25px;
  }

  .page-sub {
    font-size:11px;
  }

  .eyebrow {
    font-size:8px;
  }

  .overview-metrics {
    grid-template-columns:repeat(2,minmax(0,1fr));
    padding:0;
    margin-bottom:18px;
  }

  .overview-metrics>div {
    padding:17px;
    border-bottom:1px solid var(--line);
  }

  .overview-metrics>div:nth-child(2) {
    border-right:0;
  }

  .overview-metrics>div:nth-child(3) {
    border-bottom:0;
  }

  .overview-metrics strong {
    font-size:25px;
  }

  .overview-metrics .link {
    display:inline;
    margin-left:10px;
  }

  .map-surface {
    min-height:430px;
  }

  .map-heading-note {
    display:none;
  }

  .map-surface-heading {
    padding:0 12px;
  }

  .map-caption {
    font-size:8px;
    line-height:1.5;
  }

  .map-caption>span {
    display:none;
  }

  .main {
    padding:26px 16px;
  }

  .alert-summary {
    gap:7px;
  }

  .alert-summary>div {
    padding:12px 9px;
    flex-wrap:wrap;
    font-size:9px;
  }

  .alert-summary strong {
    width:100%;
    font-size:24px;
    margin-top:4px;
  }

  .alert-summary .summary-dot {
    display:none;
  }

  .inbox-list {
    display:flex;
  }

  .card {
    padding:16px;
  }

  .clip-review-facts {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:17px 0;
  }

  .clip-fact:nth-child(2) {
    border:0;
  }

  .clip-fact:nth-child(3) {
    padding-left:0;
  }

  .review-actions .link {
    margin-left:0;
  }

  .auth-layout {
    display:block;
  }

  .auth-story {
    display:none;
  }

  .auth-form-wrap {
    min-height:100dvh;
    padding:30px;
  }

  .skip-link {
    left:16px;
  }

  .map-unavailable h2 {
    font-size:16px;
  }

  .map-unavailable code {
    font-size:8px;
  }

  .map-toolbar {
    right:14px;
  }

  .toast-stack {
    max-width:calc(100% - 28px);
  }

}

@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition:none!important;
    scroll-behavior:auto!important;
  }

}

/* Legibility and small-screen spacing. */
.inbox-row-title {
  font-size: 12px;
}

.inbox-row-sub, .clip-fact-value, .clip-review-copy {
  font-size: 11px;
}

.clip-fact-label, .stat-label, .overview-metrics>div>span:first-child {
  color: #647186;
}

.inbox-row-sub, .page-sub, .muted {
  color: #67758a;
}

@media (max-width: 760px) {
  .sidebar {
    visibility: hidden;
  }

  .nav-open .sidebar {
    visibility: visible;
  }

  .inbox {
    gap: 18px;
  }

  .inbox-detail {
    margin-top: 18px;
  }

}

/* Consistent page rhythm and comfortable operator-facing type. */
.page-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
  margin-bottom: 28px;
}
.page-header .page-sub { margin-bottom: 0; }
.page-header-actions { display: flex; align-items: center; gap: 8px; padding-top: 18px; flex-shrink: 0; }
.page-title { font-size: 30px; font-weight: 550; }
.page-sub { font-size: 13px; max-width: 720px; }
.eyebrow { font-size: 10px; font-weight: 550; color: #7a879b; }
.nav button { font-size: 13px; }
.nav-section { font-size: 10px; }
.breadcrumb { font-size: 12px; }
.btn { min-height: 39px; font-size: 12px; border-radius: 7px; }
.btn-sm { min-height: 34px; font-size: 11px; }
.input, select, textarea { font-size: 13px; min-height: 41px; border-radius: 7px; }
label { font-size: 12px; }
.muted { font-size: 13px; }
.link { font-size: 12px; text-underline-offset: 3px; }
.card { padding: 24px; border-radius: 12px; }
.card:has(table) { overflow-x: auto; }
th { font-size: 10px; }
td { font-size: 12px; line-height: 1.6; }
.stat { position: relative; border-radius: 12px; }
.stat::before { content: ''; display: block; width: 22px; height: 3px; background: #dce5fa; border-radius: 2px; margin-bottom: 20px; }
.stat-label { font-size: 11px; }
.stat-num { font-size: 34px; }
.overview-metrics>div>span:first-child { font-size: 11px; }
.map-surface-heading strong { font-size: 12px; }
.map-chip { min-height: 34px; font-size: 11px; }
.map-heading-note, .connection-state { font-size: 10px; }
.legend { font-size: 10px; }
.btn:disabled { box-shadow: none; opacity: .65; }
.btn-secondary:disabled { background: #f4f6fa; color: #8e98a8; }
.link:disabled { opacity: .55; cursor: not-allowed; }
input[type=checkbox] { accent-color: var(--accent); }

/* Settings panels form a scannable grid instead of full-width text strips. */
.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 16px 0 30px; }
.settings-grid>.card { margin: 0; }
.attribute-card { background: #fbfcfe; }
.policy-grid>.card { display: flex; flex-direction: column; }

.settings-grid .card>div:first-child { gap: 15px; }
.settings-grid .card>div:first-child>div { font-size: 15px !important; font-weight: 550 !important; }
.settings-grid .card p { font-size: 13px !important; color: #69768a !important; }
.switch {
  appearance: none;
  width: 32px !important;
  min-width: 32px;
  height: 19px;
  border-radius: 20px;
  background: #cbd3df;
  position: relative;
  cursor: pointer;
  transition: background .15s ease;
}
.switch::after { content: ''; position: absolute; width: 13px; height: 13px; background: white; border-radius: 50%; left: 3px; top: 3px; box-shadow: 0 1px 3px #263d6025; transition: transform .15s ease; }
.switch:checked { background: #5277dc; }
.switch:checked::after { transform: translateX(13px); }
.switch:disabled { opacity: .6; cursor: wait; }
.switch:focus-visible { outline: 3px solid #91a8ff; outline-offset: 3px; }

/* Status has a consistent home. Empty states remain useful without sample data. */
.empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 230px; padding: 35px 24px; border: 1px solid var(--line); border-radius: 12px; background: #fff; text-align: center; }
.empty-state .empty-state-icon { width: 48px; height: 48px; border-radius: 13px; margin-bottom: 16px; background: #f1f5fc; }
.empty-state h2 { font-size: 17px; font-weight: 550; letter-spacing: -.025em; margin-bottom: 9px; }
.empty-state p { max-width: 360px; color: #758197; font-size: 12px; line-height: 1.7; }
.empty-state>.btn { margin-top: 18px; }
.loading-state { display: flex; justify-content: center; align-items: center; gap: 10px; min-height: 140px; color: #758197; font-size: 13px; }
.loading-state .spinner { border-color: #ccd7f3; border-top-color: #4e6dd1; }
.feedback { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 15px; border: 1px solid; border-radius: 8px; margin-bottom: 18px; font-size: 12px; line-height: 1.6; }
.feedback-error { color: #a5444c; background: #fff7f7; border-color: #f2d9dc; }
.feedback-success { color: #40775f; background: #f2faf6; border-color: #dceee3; }
.feedback .link { flex-shrink: 0; color: inherit; }
.modal-wide { width: min(920px, 94vw); max-width: 920px; }

/* Triage: readable evidence, quieter confidence tags, persistent decisions. */
.alert-summary>div { font-size: 12px; border-radius: 10px; padding: 19px; }
.inbox-list { width: 350px; }
.queue-filters { gap: 5px; }
.queue-filters>button { font-size: 11px !important; padding: 8px 11px !important; }
.filter-wrap { z-index: 16; }
.filter-wrap>button { min-height: 33px; }
.inbox-row { padding: 14px 11px; border-radius: 9px; }
.inbox-row-title { font-size: 13px; }
.inbox-row-sub { font-size: 11px; line-height: 1.6; }
.inbox-row.row-new .inbox-row-title { font-weight: 600; }
.inbox-thumbnail { flex-shrink: 0; }
.thumbnail-placeholder { display: grid; place-items: center; background: #e9eef6; color: #9aabc5; }
.review-actions { position: sticky; top: 0; z-index: 4; box-shadow: 0 3px 10px #223b5d06; border-radius: 9px; }
.review-actions-label { font-size: 10px; color: #8793a5; margin: 0 8px 0 2px; }
.clip-review { border-radius: 12px; }
.clip-review-title { font-size: 18px; }
.clip-review-empty { min-height: 280px; flex-direction: column; gap: 13px; background: radial-gradient(ellipse at center,#1b2b43,#101b2b); }
.clip-review-empty>svg { color: #60738f; }
.clip-review-empty>span { color: #bec9d8; font-size: 14px; }
.clip-review-empty>small { color: #8091aa; font-size: 11px; }
.clip-fact-label { font-size: 9px; }
.clip-fact-value, .clip-review-copy { font-size: 12px; }
.clip-review-section-title { font-size: 12px; }
.pill, .conf-badge { font-size: 10px; }
.conf-high { background: #f9eeee; color: #b5686d; }
.policy-tag { font-size: 11px; }
.dropzone { padding: 54px 20px; gap: 14px; font-size: 13px; }
.dropzone strong { font-size: 20px; }
.dropzone small { font-size: 11px; }
.q-row { padding: 20px 0; }
.main { scrollbar-gutter: stable; }
@media (max-width: 1150px) {
  .inbox-list { width: 100%; }
  .page-header-actions { flex-shrink: 1; flex-wrap: wrap; justify-content: flex-end; }
  .review-actions { position: static; }
}
@media (max-width: 760px) {
  .page-header { flex-direction: column; gap: 14px; margin-bottom: 24px; }
  .page-header-actions { padding: 0; justify-content: flex-start; }
  .page-title { font-size: 26px; }
  .page-sub { font-size: 12px; }
  .settings-grid { grid-template-columns: 1fr; }
  .card { padding: 18px; }
  .alert-summary>div { font-size: 10px; padding: 13px 10px; }
  .btn, .btn-sm { min-height: 40px; }
  .queue-filters>button { min-height: 38px; }
  .review-actions-label { width: 100%; padding: 3px 0; }
  .overview-metrics .link { margin: 8px 0 0; display: block; }
  .overview-metrics>div>span:first-child { font-size: 10px; }
  .input, select, textarea { font-size: 16px; }
  .feedback { align-items: flex-start; }
  .dropzone { padding: 34px 18px; }
}

/* Haven visual language, adapted to Argus's operational surfaces.
   Reference: Haven/web/style.css — warm white and electric cobalt. */
h1, h2, h3, .page-title, .logo-word, .stat-num, .overview-metrics strong,
.clip-review-title, .inbox-row-title, .policy-name { font-family:Helvetica,Arial,sans-serif; }
body { color: var(--ink); letter-spacing: -.01em; background: var(--canvas); }
.rail, .sidebar, .sidebar:hover { width: 226px; }
.sidebar { padding: 32px 18px 22px; background: var(--nav); border-right: 1px solid #e7e9ef; }
.logo { gap: 9px; padding: 0 12px 34px; }
.logo-mark { height: 35px; }
.logo-word, .sidebar .logo-word { font-family:Helvetica,Arial,sans-serif; text-transform: none; font-size: 33px; font-weight: 800; letter-spacing: -1.6px; color: #263047; }
.brand-period { color: var(--accent); }
.workspace-label { border: 1px solid #e6e9f0; background: #fff; border-radius: 13px; padding: 13px 11px; margin-bottom: 22px; color: #303a50; font-size: 12px; }
.workspace-label small { font-size: 10px; text-transform: none; letter-spacing: 0; color: #8490a3; }
.workspace-icon { width: 32px; height: 34px; border: 0; background: #f0f2fa; border-radius: 8px; }
.nav-section { font-size: 9px; letter-spacing: 1.8px; color: #939caf; margin: 19px 13px 9px; padding: 0; }
.nav button { min-height: 44px; padding: 12px 14px; margin: 4px 0; border-radius: 11px; color: #748098; font-size: 13px; font-weight: 500; gap: 12px; }
.nav button:hover { background: #f1f3fb; color: var(--accent); transform: translateX(2px); }
.nav button.active { background: #edf0ff; color: #3445d8; box-shadow: inset 0 0 0 1px #e5e9ff; font-weight: 600; }
.nav button.active .nav-ico { color: #3445d8; }
.nav-ico, .nav-ico svg { width: 19px; height: 19px; }
.nav-badge, .nav-badge.busy { position: static; margin-left: auto; min-width: 21px; height: 20px; padding: 2px 6px; background: #e0e6ff; color: #4556cd; border: 0; border-radius: 5px; font-size: 10px; font-weight: 600; }
.sidebar-note { margin: auto 2px 0; padding: 17px; border: 1px solid #e9edf7; border-radius: 14px; background: linear-gradient(135deg,#f4f6ff,#fafbff); }
.sidebar-note>svg { color: #7a8bd0; margin-bottom: 9px; }
.sidebar-note strong { display: block; color: #52607c; font-size: 11px; font-weight: 500; }
.sidebar-note p { margin-top: 6px; color: #8793a8; font-size: 10px; line-height: 1.7; }
.sidebar .sidebar-foot { margin: 18px 3px 0; padding: 17px 5px 0; }
.avatar, .top-avatar { border-radius: 50%; background: #e9edf9; color: #6a79ab; }
.top-avatar { width: 35px; height: 35px; border: 3px solid white; }
.topbar { height: 72px; min-height: 72px; background: var(--canvas); padding: 0 38px; }
.breadcrumb { font-size: 12px; color: #9298a3; }
.breadcrumb strong { color: #535a68; font-weight: 500; }
.notification-button { border: 0; padding: 0; color: #7c8493; }
.notification-dot { background: var(--accent); outline-color: var(--canvas); }
.main { padding: 37px 38px 30px; }
.page-header, .operations-heading { margin-bottom: 29px; align-items: center; }
.page-title { font-size: clamp(32px, 3.3vw, 49px); font-weight: 550; letter-spacing: -1.9px; line-height: 1.12; color: #1b2233; }
.page-sub { font-size: 14px; line-height: 1.65; color: #7c8799; margin-top: 14px; }
.eyebrow { font-size: 9px; letter-spacing: 2.1px; color: #7b8598; margin-bottom: 14px; }
.page-header-actions { padding: 0; }
.btn { border-radius: 11px; min-height: 44px; padding: 11px 17px; font-size: 12px; font-weight: 600; background: var(--accent); box-shadow: 0 4px 9px #293ed015; }
.btn:hover { background: #283bd7; transform: translateY(-1px); box-shadow: 0 6px 16px #293ed030; }
.btn-secondary { color: #555d6e; background: #fff; border-color: #dde2ed; box-shadow: 0 2px 4px #10234b03; }
.btn-secondary:hover { background: #f8f9fc; color: #394968; }
.btn-sm { min-height: 35px; padding: 8px 12px; font-size: 11px; border-radius: 9px; }
.btn-soft-green { color: #59856d; background: #ebf6f0; border-color: #dceee4; box-shadow: none; }
.btn-soft-green:hover { background: #deefe5; }
.btn-soft-red { color: #b36b76; background: #fcecef; border-color: #f4dde2; box-shadow: none; }
.btn-soft-red:hover { background: #f7dfe4; }
.btn-soft-grey { color: #75829a; background: #f0f2f7; border-color: #e5e9f0; box-shadow: none; }
.btn-soft-grey:hover { background: #e7ecf5; }
.input, input[type=number], select, textarea { background: #fcfdff; border-color: #e2e5ed; border-radius: 10px; font-size: 13px; min-height: 43px; }
.input:focus, select:focus, textarea:focus { border-color: #8b9aff; box-shadow: 0 0 0 3px #3849eb0c; }
.card, .alert-card, .stat, .clip-review, .empty-state { border-radius: 19px; border-color: #e5e8ef; box-shadow: 0 3px 9px -7px #182b5230; }
.card { padding: 26px; }
.stat { padding: 25px; }
.stat::before { height: 3px; background: #dee3ff; }
.stat-num { font-weight: 450; }
.stat-label { color: #8490a5; }
.pill, .policy-tag { border-radius: 6px; font-size: 10px; padding: 5px 8px; }
.policy-tag, .state-New { background: #eef0ff; color: #6678be; }
.empty-state { background: radial-gradient(ellipse at top,#f0f2ff,#fff 75%); padding: 44px 24px; }
.empty-state-icon { background: #f0f2fc; border-color: #e4e9fa; color: #8898cc; border-radius: 50%; }
.empty-state .empty-state-icon { width: 60px; height: 60px; border-radius: 50%; }
.empty-state h2 { font-size: 18px; font-weight: 600; }
.empty-state p { color: #8995aa; font-size: 13px; }

/* Haven's signature cobalt summary band keeps all four Argus metrics. */
.operations-view { padding: 37px 38px 20px; min-height: 740px; }
.operations-heading .page-sub, .operations-heading>.btn { margin-bottom: 0; }
.overview-band { display: flex; align-items: center; gap: 24px; padding: 28px; border-radius: 20px; margin-bottom: 30px; color: #fff; background: linear-gradient(110deg,#2739cf 0%,#4254ee 62%,#5366f6 100%); border: 1px solid #ffffff30; box-shadow: 0 14px 30px -18px #2739cf88; position: relative; overflow: hidden; flex-shrink: 0; }
.overview-band::before { content: ''; position: absolute; width: 510px; height: 510px; right: -175px; top: -338px; border: 1px solid #ffffff20; border-radius: 50%; box-shadow: 0 0 0 48px #ffffff04,0 0 0 96px #ffffff04; pointer-events: none; }
.overview-intro { display: flex; align-items: center; gap: 18px; flex: 1; min-width: 215px; position: relative; }
.shield-orbit { display: grid; place-items: center; width: 49px; height: 49px; flex-shrink: 0; color: #fff; border: 1px solid #ffffff28; border-radius: 50%; background: #ffffff12; box-shadow: 0 0 0 7px #ffffff05; }
.overview-intro h2 { font-size: 16px; letter-spacing: -.4px; font-weight: 600; }
.overview-intro p { color: #d1d7ff; font-size: 11px; line-height: 1.65; max-width: 245px; margin-top: 7px; }
.overview-metrics { flex: 1.8; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border: 0; border-radius: 0; background: none; padding: 0; margin: 0; position: relative; }
.overview-metrics>div, .overview-metrics>div:last-child { border: 0; border-left: 1px solid #ffffff26; padding: 0 17px; min-height: 64px; display: flex; flex-direction: column; justify-content: center; }
.overview-metrics>div>span:first-child { color: #d7ddff; font-size: 10px; margin: 9px 0 0; order: 2; line-height: 1.5; }
.overview-metrics strong { font-weight: 450; font-size: 31px; letter-spacing: -1px; color: #fff; }
.overview-metrics .metric-caption, .overview-metrics svg { display: none; }
.overview-metrics .link { font-size: 10px; color: #e1e5ff; margin: 6px 0 0; order: 3; text-align: left; }
.map-surface { border-radius: 20px; border-color: #e5e8ef; box-shadow: 0 3px 9px -7px #182b5230; min-height: 340px; }
.map-surface-heading { min-height: 58px; padding: 0 23px; }
.map-surface-heading strong { font-family:Helvetica,Arial,sans-serif; font-size: 14px; font-weight: 650; }
.map-unavailable { background: radial-gradient(ellipse at top,#f0f2ff,#fafbfe 72%); }
.map-unavailable h2 { font-family:Helvetica,Arial,sans-serif; font-size: 22px; letter-spacing: -.6px; }
.map-unavailable p { font-size: 12px; color: #8592aa; }
.map-chip { border-radius: 9px; }
.legend { border-radius: 12px; }
.map-panel { border-radius: 17px 0 0 17px; }

/* Triage remains a queue plus evidence pane, with Haven's quieter timeline treatment. */
.alert-summary { gap: 16px; margin-bottom: 28px; }
.alert-summary>div { border-radius: 16px; padding: 22px; background: linear-gradient(115deg,#f1f4ff,#fff 75%); border-color: #e0e6f6; color: #7e8aa0; font-size: 12px; }
.alert-summary strong { font-family:Helvetica,Arial,sans-serif; font-size: 29px; font-weight: 450; }
.inbox { gap: 24px; }
.inbox-list { width: 355px; gap: 12px; }
.queue-filters { padding: 5px; background: #e9edf4; border-radius: 12px; gap: 3px; margin-bottom: 8px; }
.queue-filters>button { background: transparent !important; border: 0 !important; color: #8591a8 !important; border-radius: 8px !important; padding: 9px 10px !important; font-size: 11px !important; }
.queue-filters>button[aria-pressed=true] { background: white !important; color: #4457c9 !important; box-shadow: 0 2px 6px #2036640b; }
.filter-wrap>button { background: transparent !important; border: 0 !important; color: #8492af !important; }
.inbox-row { border: 1px solid #e5e8ef; border-radius: 16px; padding: 17px 13px; min-height: 97px; background: #fafbfc; transition: border-color .2s,box-shadow .2s,transform .2s; }
.inbox-row.row-new { border-left-color: #e5e8ef; }
.inbox-row.row-escalated { border-left: 3px solid #ca858e; }
.inbox-row.selected { background: linear-gradient(115deg,#eef2ff,#fff 90%); border: 1px solid #cbd4ff; box-shadow: 0 5px 16px -12px #354bdc55; }
.inbox-row:hover { transform: translateY(-2px); border-color: #a5b3ed; box-shadow: 0 8px 22px -14px #2a3c9766; }
.inbox-row-title { font-size: 13px; font-weight: 550; color: #253454; }
.inbox-row.row-new .inbox-row-title { font-weight: 650; }
.inbox-thumb { width: 71px; height: 56px; border-radius: 10px; }
.thumbnail-placeholder { background: #e7ecf7; color: #9baaca; }
.inbox-row-sub { color: #929db0; font-size: 10px; }
.conf-badge { border-radius: 5px; font-size: 9px; font-weight: 500; padding: 4px 6px; }
.review-actions { border-radius: 13px; padding: 13px; gap: 7px; box-shadow: none; }
.clip-review-head { padding: 23px; }
.clip-review-title { font-weight: 600; font-size: 20px; }
.clip-review-kicker { font-size: 9px; color: #9099b1; letter-spacing: 1.5px; }
.clip-review-body { padding: 24px; }
.clip-review-copy { color: #75839b; line-height: 1.8; font-size: 13px; }
.clip-review-empty { background: radial-gradient(ellipse at center,#24354f,#152135); }

/* Haven-style policy cards and forms. */
.settings-grid { gap: 20px; }
.settings-grid>.card { border-radius: 19px; padding: 26px; }
.policy-card-top { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 21px; }
.policy-art { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 13px; background: #edf0fc; color: #7284be; }
.policy-grid>.card:nth-child(3n+2) .policy-art { background: #fff5e9; color: #bd965f; }
.policy-grid>.card:nth-child(3n+3) .policy-art { background: #f2edf9; color: #9a7cb6; }
.policy-name { font-size: 18px; font-weight: 650; letter-spacing: -.4px; }
.policy-grid>.card { transition: transform .2s,box-shadow .2s; }
.policy-grid>.card:hover { transform: translateY(-3px); box-shadow: 0 14px 26px -19px #18315b50; }

.policy-grid>.card>div:last-of-type label { margin-top: 0; }
.policy-grid .link { color: #7e8bae; font-size: 11px; text-decoration: none; }
.policy-grid .link:hover { color: var(--accent); }
.settings-grid .card p { font-size: 13px !important; line-height: 1.8 !important; }
.attribute-card { background: #fff; }
.switch:checked { background: var(--accent); }
.policy-explainer { display: flex; align-items: center; gap: 17px; border: 1px solid #e5eafb; border-radius: 16px; background: linear-gradient(110deg,#e9edff,#f1f3fe); padding: 24px; margin: 28px 0 23px; }
.explainer-icon { color: #7a8ace; }
.policy-explainer>div { flex: 1; }
.policy-explainer h2 { font-size: 15px; font-weight: 600; letter-spacing: -.3px; }
.policy-explainer p { font-size: 12px; color: #7584a1; margin-top: 7px; line-height: 1.65; }
.enabled-count { padding: 6px 9px; border-radius: 6px; color: #6777b6; background: #e0e6ff; font-size: 10px; white-space: nowrap; }
.dropzone { border-radius: 17px; background: radial-gradient(ellipse at top,#eff2ff,#fcfdff 78%); border-color: #d9dfef; padding: 58px 24px; }
.dropzone strong { font-family:Helvetica,Arial,sans-serif; font-size: 23px; font-weight: 550; color: #3c4963; letter-spacing: -.6px; }
.upload-icon { border-radius: 50%; background: #eaf0ff; border: 0; color: #7e91cf; width: 63px; height: 63px; }
.modal { border-radius: 24px; padding: 30px; box-shadow: 0 30px 120px #070e3650; }
.modal-bg { backdrop-filter: blur(9px); background: #0c152b80; }
.feedback { border-radius: 12px; }
.auth-story { background: linear-gradient(140deg,#2638c6,#4355ee 65%,#6a7cfa); }
.auth-brand { font-family:Helvetica,Arial,sans-serif; font-size: 39px; font-weight: 800; letter-spacing: -1.7px; }
.auth-brand span { color: #c6d0ff; font-family:Helvetica,Arial,sans-serif; letter-spacing: 2px; }
.auth-story-copy .eyebrow { color: #d1d7ff; }
.auth-story h1 { font-family:Helvetica,Arial,sans-serif; font-weight: 450; letter-spacing: -2.8px; }
.auth-story p, .auth-footer { color: #d1d7ff; }
.orbital, .orbital i { border-color: #ffffff1c; }
.auth-form h2 { font-family:Helvetica,Arial,sans-serif; font-size: 31px; font-weight: 600; letter-spacing: -1px; }
.auth-form .muted { font-size: 13px; }
.auth-form .logo { margin-bottom: 32px; }
.auth-form label { font-size: 13px; }
.auth-form .link { font-size: 12px; }
@media(max-height:900px) { .sidebar-note { display: none; } .sidebar .sidebar-foot { margin-top: auto; } }
@media(min-width:1600px) { .rail,.sidebar,.sidebar:hover { width: 240px; } .main { padding: 44px; } .inbox-list { width: 390px; } }
@media(max-width:1200px) {
  .rail,.sidebar,.sidebar:hover { width: 200px; }
  .sidebar { padding: 29px 14px 20px; }
  .main,.operations-view { padding: 30px 26px 22px; }
  .topbar { padding: 0 26px; }
  .overview-band { flex-wrap: wrap; gap: 25px; }
  .overview-intro { flex-basis: 100%; }
  .overview-intro p { max-width: none; }
  .overview-metrics { flex-basis: 100%; }
  .overview-metrics>div:first-child { border-left: 0; padding-left: 0; }
}
@media(max-width:1150px) { .inbox-list { width: 100%; } }
@media(max-width:760px) {
  .rail { width: 0; }
  .sidebar,.sidebar:hover { width: 240px; }
  .topbar { height: 62px; min-height: 62px; padding: 0 18px; }
  .main,.operations-view { padding: 28px 19px 20px; }
  .operations-view { height: auto; min-height: calc(100dvh - 62px); }
  .page-header,.operations-heading { align-items: flex-start; flex-wrap: wrap; gap: 17px; }
  .page-title { font-size: 36px; letter-spacing: -1.65px; }
  .page-sub { font-size: 13px; }
  .eyebrow { font-size: 9px; letter-spacing: 1.6px; }
  .operations-heading>.btn { font-size: 12px; }
  .overview-band { padding: 25px; gap: 26px; border-radius: 19px; }
  .overview-intro { min-width: 0; }
  .overview-intro h2 { font-size: 16px; }
  .overview-intro p { font-size: 11px; }
  .overview-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 23px 16px; }
  .overview-metrics>div,.overview-metrics>div:last-child { border: 0; padding: 0; }
  .overview-metrics>div>span:first-child { font-size: 10px; }
  .map-surface { min-height: 480px; }
  .map-unavailable h2 { font-size: 19px; }
  .map-unavailable { padding-left: 22px; padding-right: 22px; }
  .map-caption { margin-bottom: 4px; }
  .alert-summary { gap: 8px; }
  .alert-summary>div { padding: 14px 11px; font-size: 10px; }
  .alert-summary strong { font-size: 26px; }
  .policy-explainer { flex-wrap: wrap; padding: 20px; }
  .policy-explainer>div { min-width: 170px; }
  .enabled-count { margin-left: 43px; }
  .settings-grid>.card,.card { padding: 23px; }
  .input,select,textarea { font-size: 16px; }
  .modal { padding: 24px; border-radius: 21px; }
  .clip-review-title { font-size: 18px; }
  .dropzone { padding: 38px 22px; }
  .dropzone strong { font-size: 20px; }
}

/* Progressive disclosure: navigation, video evidence, and policy settings. */
@media (min-width: 761px) {
  .rail { width: 76px; flex: 0 0 76px; z-index: 45; }
  .sidebar { width: 76px; padding: 28px 14px 20px; transition: width .2s ease, box-shadow .2s ease; }
  .sidebar:hover, .sidebar:has(:focus-visible) { width: 240px; box-shadow: 14px 0 30px #26304712; }
  .sidebar .logo { min-width: 200px; }
  .sidebar .logo-word, .sidebar .nav-label, .sidebar .who, .sidebar .workspace-label { opacity: 0; transition: opacity .15s; }
  .sidebar:hover .logo-word, .sidebar:hover .nav-label, .sidebar:hover .who, .sidebar:hover .workspace-label,
  .sidebar:has(:focus-visible) .logo-word, .sidebar:has(:focus-visible) .nav-label, .sidebar:has(:focus-visible) .who, .sidebar:has(:focus-visible) .workspace-label { opacity: 1; }
  .sidebar .workspace-label { height: 42px; min-width: 200px; }
  .sidebar .nav-section { height: 12px; font-size: 0; margin: 15px 0 5px; }
  .sidebar:hover .nav-section, .sidebar:has(:focus-visible) .nav-section { font-size: 9px; opacity: 1; }
  .sidebar .nav button { position: relative; white-space: nowrap; }
  .sidebar .nav-ico { flex-shrink: 0; }
  .sidebar:not(:hover):not(:has(:focus-visible)) .nav-badge { position: absolute; right: 0; top: 0; font-size: 8px; padding: 2px 3px; min-width: 12px; }
  .sidebar .sidebar-foot { margin-top: auto; padding-left: 5px; min-width: 200px; }
  .sidebar .avatar { flex-shrink: 0; }
}
.page-header { margin-bottom: 26px; }
.library-grid { grid-template-columns: repeat(auto-fill,minmax(260px,1fr)); gap: 22px; }
.library-tile { padding: 0; text-align: left; border: 1px solid var(--line); border-radius: 18px; overflow: hidden; background: white; color: var(--ink); cursor: pointer; transition: box-shadow .2s, transform .2s; }
.library-tile:hover { transform: translateY(-2px); box-shadow: 0 10px 24px #24304715; }
.library-thumbnail { aspect-ratio: 16/9; position: relative; background: #182238; display: grid; place-items: center; color: #abb7d1; }
.library-thumbnail video { width: 100%; height: 100%; object-fit: cover; position: absolute; pointer-events: none; }
.library-play { position: absolute; display: grid; place-items: center; width: 44px; height: 44px; background: #ffffffed; color: var(--accent); border-radius: 50%; box-shadow: 0 3px 16px #0002; }
.library-status { position: absolute; bottom: 12px; left: 12px; background: #ffffffee; color: #536078; border-radius: 6px; font-size: 11px; padding: 5px 9px; }
.library-status.is-flagged { background: #eef0ff; color: #3849eb; }
.library-tile-body { padding: 18px; }
.library-tile-body h2 { font-size: 14px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-bottom: 9px; }
.library-tile-body>div { display: flex; flex-wrap: wrap; gap: 7px 12px; justify-content: space-between; font-size: 11px; color: #75839b; }
.modal-wide:has(.library-dialog-header) { width: min(1120px,96vw); max-width: 1120px; padding: 20px; }
.library-dialog-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; color: #75839b; font-size: 12px; }
.library-dialog-header + .clip-review .clip-review-player video { width: 100%; height: auto; max-height: 55vh; min-height: 0; background: #101827; }
.timeline-heading { display: flex; justify-content: space-between; font-size: 12px; margin-bottom: 14px; }
.timeline-heading>span { color: #75839b; font-variant-numeric: tabular-nums; }
.timeline-track { position: relative; margin: 12px 8px 22px; }
.timeline-track input { width: 100%; accent-color: var(--accent); padding: 0; display: block; }
.timeline-marker { position: absolute; top: 18px; width: 10px; height: 10px; border: 2px solid white; background: #3849eb; border-radius: 50%; padding: 0; transform: translateX(-50%); cursor: pointer; }
.timeline-events { display: flex; flex-wrap: wrap; gap: 8px; }
.timeline-events .clip-moment { display: flex; gap: 10px; align-items: center; }
.timeline-events .clip-moment span { font-variant-numeric: tabular-nums; color: var(--accent); }
.policy-grid { align-items: start; }
.policy-details { margin-top: 18px; border-top: 1px solid #edf0f5; padding-top: 15px; }
.policy-details summary { cursor: pointer; color: #6678a2; font-size: 12px; padding: 4px 0; }
.policy-details[open] summary { margin-bottom: 14px; }
.policy-grid>.card>.policy-card-top { border: 0; padding-top: 0; margin-top: 0 !important; }
@media(max-width:760px) { .library-grid { grid-template-columns: 1fr; } .modal-wide:has(.library-dialog-header) { padding: 10px; } }

/* Video review: footage first, with a separate findings panel. */
.modal.video-review-dialog {
  width: min(1240px, 96vw);
  max-width: 1240px;
  max-height: 92dvh;
  padding: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 18px;
  box-shadow: 0 32px 100px #10182755;
}
.video-review-dialog .library-dialog-header {
  flex: none;
  margin: 0;
  padding: 20px 24px;
  border-bottom: 1px solid var(--line);
}
.review-dialog-heading { display: flex; align-items: center; gap: 12px; }
.review-dialog-icon { width: 42px; height: 42px; display: grid; place-items: center; background: var(--accent-soft); color: var(--accent); border-radius: 12px; }
.review-dialog-heading h2 { margin: 0; color: var(--ink); font-size: 18px; letter-spacing: -.3px; }
.review-dialog-heading p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.review-close { width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 10px; background: white; color: #526079; cursor: pointer; font-size: 25px; line-height: 1; }
.review-close:hover { background: var(--canvas); color: var(--ink); }
.review-close:focus-visible, .review-analysis summary:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.review-dialog-content { overflow-y: auto; overscroll-behavior: contain; padding: 24px; min-height: 0; }
.clip-review-detailed { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(300px, 1fr); gap: 20px; border: 0; border-radius: 0; box-shadow: none; overflow: visible; }
.clip-review-detailed .clip-review-head { grid-column: 1 / -1; padding: 0; border: 0; gap: 16px; align-items: flex-start; }
.clip-review-detailed .clip-review-head > div:first-child { min-width: 0; }
.clip-review-detailed .clip-review-title { font-size: 14px; line-height: 1.5; color: #526079; overflow-wrap: anywhere; }
.clip-review-detailed .clip-review-media { min-width: 0; }
.clip-review-detailed .clip-review-player { border-radius: 12px; overflow: hidden; background: #101827; }
.video-review-dialog .clip-review-player video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; max-height: 58dvh; min-height: 0; object-fit: contain; }
.clip-review-detailed .clip-review-empty { min-height: 280px; flex-direction: column; gap: 12px; color: #c4cede; text-align: center; padding: 24px; }
.clip-review-detailed .clip-review-empty small { color: #94a3b8; }
.clip-review-detailed .event-timeline { border: 1px solid var(--line); padding: 18px; border-radius: 12px; margin-top: 14px; }
.clip-review-detailed .timeline-heading { margin-bottom: 18px; }
.clip-review-detailed .clip-moment { padding: 8px 10px; border-radius: 8px; text-align: left; line-height: 1.45; }
.clip-review-detailed .clip-review-body { padding: 20px; min-width: 0; background: #f8f9fc; border: 1px solid var(--line); border-radius: 12px; display: flex; flex-direction: column; align-self: start; }
.clip-review-detailed .clip-review-section-title { font-size: 13px; letter-spacing: 0; text-transform: none; color: var(--ink); display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.review-count { display: inline-grid; place-items: center; min-width: 21px; height: 21px; padding: 0 5px; background: #e9edf5; border-radius: 6px; color: #526079; font-size: 11px; }
.clip-review-detailed .policy-tag { white-space: normal; overflow-wrap: anywhere; padding: 6px 9px; line-height: 1.4; border: 1px solid #f2dab0; background: #fff7e9; color: #925710; }
.clip-review-detailed .clip-review-copy { line-height: 1.7; color: #46536b; overflow-wrap: anywhere; margin: 8px 0 0; }
.clip-review-detailed .clip-review-evidence { padding-top: 18px; margin-top: 18px; }
.clip-review-detailed .clip-review-facts { order: 2; grid-template-columns: 1fr 1fr; gap: 18px 12px; border-top: 1px solid var(--line); padding-top: 18px; margin: 18px 0 0; }
.clip-review-detailed .clip-fact { border: 0; background: none; padding: 0; }
.clip-review-detailed .clip-fact-label { font-size: 10px; letter-spacing: .6px; color: #758097; margin-bottom: 5px; }
.clip-review-detailed .clip-fact-value { font-size: 12px; line-height: 1.55; white-space: normal; overflow-wrap: anywhere; }
.clip-review-detailed .clip-review-foot { order: 3; padding-top: 16px; margin-top: 18px; border-top: 1px solid var(--line); line-height: 1.5; }
.review-analysis { border: 1px solid var(--line); border-radius: 12px; margin-top: 20px; overflow: hidden; }
.review-analysis summary { cursor: pointer; padding: 18px 20px; font-size: 13px; font-weight: 650; color: var(--ink); }
.review-analysis summary span { margin-left: 12px; color: var(--muted); font-size: 12px; font-weight: 400; }
.review-analysis[open] summary { border-bottom: 1px solid var(--line); background: #f8f9fc; }
.review-analysis-body { padding: 8px 20px 20px; overflow-wrap: anywhere; }
@media (max-width: 850px) {
  .clip-review-detailed { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .clip-review-detailed .clip-review-body { padding: 18px; }
}
@media (max-width: 520px) {
  .modal.video-review-dialog { width: 100%; max-height: 100dvh; height: 100dvh; border-radius: 0; }
  .video-review-dialog .library-dialog-header { padding: 16px; }
  .review-dialog-content { padding: 16px; }
  .review-analysis summary span { display: block; margin: 6px 0 0 16px; }
  .clip-review-detailed .clip-review-empty { min-height: 190px; }
}

/* Compact administration and incident-review workspace. */
.admin-sections { display:flex; gap:8px; border-bottom:1px solid var(--line); margin-bottom:24px; padding-bottom:12px; flex-wrap:wrap; }
.admin-sections button { display:flex; align-items:center; gap:8px; border:1px solid transparent; border-radius:8px; background:transparent; color:#58677e; padding:10px 14px; font:inherit; font-size:13px; cursor:pointer; }
.admin-sections button.active { background:#eaf0ff; color:#315ac5; border-color:#d5e0fa; }
.policy-grid { grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:12px; }
.policy-grid>.card { padding:16px 18px; border-radius:12px; }
.policy-grid>.card:hover { transform:none; }
.policy-grid>.card>.policy-card-top { margin-bottom:0; gap:12px; }
.policy-grid .policy-name { font-size:14px; line-height:1.5; letter-spacing:0; }
.policy-grid .policy-card-top label { flex-shrink:0; font-size:11px; }
.policy-grid .policy-details { margin-top:10px; padding-top:8px; }
.policy-grid .policy-details[open] summary { margin-bottom:8px; }
.alerts-workspace .alert-summary { display:flex; gap:0; background:white; border:1px solid #dfe5ef; border-radius:12px; margin-bottom:24px; overflow:hidden; }
.alerts-workspace .alert-summary>div { flex:1; border:0; border-right:1px solid #e8edf3; border-radius:0; background:transparent; padding:16px 20px; color:#526077; font-size:12px; }
.alerts-workspace .alert-summary>div:last-child { border-right:0; }
.alerts-workspace .alert-summary strong { font-size:24px; font-weight:650; }
.alerts-workspace .inbox { display:grid; grid-template-columns:minmax(300px,370px) minmax(0,1fr); gap:24px; align-items:start; }
.alerts-workspace .inbox-list { width:auto; min-width:0; padding:16px; background:#fff; border:1px solid #dfe5ef; border-radius:12px; gap:8px; }
.queue-heading { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:6px; }
.queue-heading h2 { font-size:15px; font-weight:650; }
.queue-heading>span { font-size:11px; color:#6c798c; }
.alerts-workspace .queue-search { font-size:12px; padding:11px; margin-bottom:6px; background:#f8fafc; }
.alerts-workspace .queue-filters { margin-bottom:6px; gap:4px; }
.alerts-workspace .inbox-row { padding:12px 10px; min-height:94px; border-radius:8px; border:1px solid #e8ecf2; border-left:3px solid #cad3df; background:white; }
.alerts-workspace .inbox-row.row-new { border-left-color:#4169e1; }
.alerts-workspace .inbox-row.row-escalated { border-left-color:#c84848; }
.alerts-workspace .inbox-row.selected { background:#edf3ff; border-color:#adc3f1; border-left-color:#4169e1; box-shadow:none; }
.alerts-workspace .inbox-row-title { font-size:13px; color:#1e2c42; }
.inbox-row-location { font-size:11px; color:#526077; margin-top:4px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.alerts-workspace .inbox-row-sub { font-size:10px; line-height:1.6; white-space:normal; color:#66758a; }
.alerts-workspace .inbox-thumb { width:64px; height:52px; border-radius:6px; }
.alerts-workspace .inbox-detail { position:static; width:auto; }
.review-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
.review-heading h2 { font-size:21px; margin-top:6px; letter-spacing:-.4px; }
.review-heading .eyebrow { font-size:10px; }
.alerts-workspace .review-actions { padding:14px; border-radius:10px; gap:8px; }
.alerts-workspace .review-actions-label { width:100%; color:#5d6b80; font-size:11px; margin-bottom:3px; }
.alerts-workspace .review-actions .btn { padding:9px 12px; }
.alerts-workspace .review-actions .btn-soft-green { background:#315dce; color:white; border-color:#315dce; }
.alerts-workspace .clip-review { border-radius:12px; overflow:hidden; }
@media (min-width:1200px) { .alerts-workspace .inbox-list { max-height:calc(100vh - 270px); overflow-y:auto; } }
@media (max-width:1000px) { .alerts-workspace .inbox { grid-template-columns:1fr; } .alerts-workspace .inbox-list { max-height:420px; overflow-y:auto; } }
@media (max-width:600px) { .alerts-workspace .alert-summary>div { flex-direction:column; align-items:flex-start; padding:12px 10px; font-size:10px; gap:6px; } .alerts-workspace .alert-summary strong { margin-left:0; } .alerts-workspace .alert-summary .summary-dot { display:none; } .review-heading { align-items:flex-start; flex-wrap:wrap; } .policy-grid { grid-template-columns:minmax(0,1fr); } }

.alerts-workspace .clip-review-head { display:none; }
.settings-grid>.attribute-card { padding:16px 18px; border-radius:12px; }
.attribute-card .policy-details { margin-top:10px; padding-top:8px; }

/* Leadership analytics: open work, period activity, and confirmed patterns. */
.analytics-page { max-width:1480px; margin:0 auto; }
.analytics-page .page-header { margin-bottom:24px; }
.analytics-range { display:flex; padding:4px; background:#e9edf5; border-radius:10px; gap:3px; }
.analytics-range button { font:inherit; font-size:12px; font-weight:600; padding:9px 13px; border:0; border-radius:7px; color:#66758b; background:transparent; cursor:pointer; }
.analytics-range button.active { color:#294dba; background:#fff; box-shadow:0 2px 5px #2039690c; }
.analytics-watch { display:grid; grid-template-columns:1.2fr 1fr 1fr auto; align-items:center; gap:28px; padding:28px 30px; border-radius:18px; background:linear-gradient(115deg,#182b51,#253c66); color:#fff; }
.analytics-kicker { font-size:10px; font-weight:700; letter-spacing:1.5px; color:#a9c0f4; }
.analytics-watch h2 { font-family:Helvetica,Arial,sans-serif; font-size:20px; letter-spacing:-.5px; margin:9px 0 6px; font-weight:600; }
.analytics-watch p { color:#a9b8d0; font-size:11px; }
.analytics-open-number { display:flex; flex-direction:column; gap:6px; padding-left:28px; border-left:1px solid #ffffff22; }
.analytics-open-number strong { font:500 42px/1.15 Helvetica,Arial,sans-serif; letter-spacing:-1.5px; font-variant-numeric:tabular-nums; }
.analytics-open-number span { font-size:12px; color:#c5d1e5; }
.analytics-watch-actions { display:flex; flex-direction:column; align-items:center; gap:13px; }
.analytics-watch-actions .btn { background:#fff; color:#233c70; white-space:nowrap; border:0; }
.analytics-watch-actions .btn:hover { background:#eaf0ff; }
.analytics-watch-actions .link { color:#c5d5f6; font-size:12px; text-decoration:none; }
.analytics-section-label { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:28px 0 14px; }
.analytics-section-label h2 { font-size:14px; font-weight:600; color:#3a485f; }
.analytics-section-label>span { font-size:11px; color:#748198; }
.analytics-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:20px; }
.analytics-metric { display:flex; flex-direction:column; padding:22px 25px; background:#fff; border:1px solid #e3e8f0; border-radius:14px; }
.analytics-metric>span { color:#56677e; font-size:12px; font-weight:500; }
.analytics-metric>strong { font:500 40px/1.3 Helvetica,Arial,sans-serif; color:#233450; letter-spacing:-1.5px; margin:10px 0 5px; font-variant-numeric:tabular-nums; }
.analytics-metric>small { color:#7c889b; font-size:11px; }
.analytics-chart-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); gap:20px; margin-bottom:20px; }
.analytics-bottom-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.analytics-panel { background:#fff; border:1px solid #e3e8f0; border-radius:14px; padding:22px 24px; min-width:0; }
.analytics-panel-head { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:22px; }
.analytics-panel-head h2 { font-size:14px; font-weight:650; color:#2b3b54; }
.analytics-panel-head>span { font-size:10px; color:#7b889c; }
.analytics-legend { display:flex; gap:14px; font-size:10px; color:#6b7890; }
.analytics-legend>span { display:flex; align-items:center; gap:5px; }
.analytics-legend i { width:8px; height:8px; border-radius:2px; background:#dce5fb; }
.analytics-legend .confirmed { background:#5277d5; }
.analytics-chart { height:170px; display:flex; gap:12px; }
.analytics-chart-scale { display:flex; flex-direction:column; justify-content:space-between; color:#8b96a8; font-size:10px; min-width:22px; text-align:right; }
.analytics-bars { flex:1; display:flex; gap:clamp(3px,1vw,14px); align-items:stretch; border-bottom:1px solid #e8edf5; background:repeating-linear-gradient(to top,transparent 0,transparent calc(50% - 1px),#f0f3f8 calc(50% - 1px),#f0f3f8 50%); }
.analytics-bar-column { flex:1; position:relative; min-width:0; }
.analytics-bar-total,.analytics-bar-confirmed { position:absolute; bottom:0; width:100%; border-radius:4px 4px 0 0; background:#dce5fb; max-width:50px; left:50%; transform:translateX(-50%); }
.analytics-bar-confirmed { background:#5277d5; }
.analytics-chart-dates { display:flex; justify-content:space-between; margin:10px 0 0 34px; font-size:10px; color:#7d8aa0; }
.analytics-data { margin:15px 0 0 34px; font-size:11px; color:#617594; }
.analytics-data summary { cursor:pointer; width:fit-content; }
.analytics-table-wrap { max-height:200px; overflow:auto; margin-top:10px; }
.analytics-data table { width:100%; border-collapse:collapse; text-align:left; font-size:11px; }
.analytics-data th,.analytics-data td { padding:7px; border-bottom:1px solid #eef1f6; }
.analytics-outcome-bar { display:flex; height:9px; border-radius:5px; overflow:hidden; background:#f1f4f8; margin-bottom:19px; }
.analytics-page .pending { background:#d3a550; }
.analytics-page .active { background:#5277d5; }
.analytics-page .resolved { background:#5a9b88; }
.analytics-page .dismissed { background:#a4b1c6; }
.analytics-page .duplicate { background:#dce3ee; }
.analytics-outcomes { display:flex; flex-direction:column; gap:14px; }
.analytics-outcomes>div { display:flex; justify-content:space-between; gap:12px; font-size:12px; color:#65758d; }
.analytics-outcomes span { display:flex; align-items:center; gap:9px; }
.analytics-outcomes i { width:7px; height:7px; border-radius:2px; }
.analytics-outcomes strong { color:#354862; font-size:12px; font-weight:600; }
.analytics-ranking { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:19px; }
.analytics-ranking li { display:flex; gap:14px; align-items:flex-start; }
.analytics-rank { font-size:10px; color:#9aa8bb; padding-top:2px; }
.analytics-ranked-item { flex:1; min-width:0; }
.analytics-ranked-item>div:first-child { display:flex; justify-content:space-between; gap:14px; font-size:12px; color:#4c5e79; }
.analytics-ranked-item span { overflow-wrap:anywhere; }
.analytics-ranked-item strong { font-weight:650; color:#334767; }
.analytics-meter { height:4px; background:#f0f3f9; margin-top:9px; border-radius:3px; overflow:hidden; }
.analytics-meter>span { display:block; height:100%; background:#96ade7; border-radius:3px; }
.analytics-bottom-grid>section:last-child .analytics-meter>span { background:#8eaaa8; }
.analytics-empty { min-height:150px; display:grid; place-items:center; text-align:center; font-size:12px; color:#8190a5; }
.analytics-foot { display:flex; justify-content:space-between; gap:10px; margin:20px 0 0; font-size:10px; color:#8290a5; flex-wrap:wrap; }
@media(max-width:1100px) { .analytics-watch { grid-template-columns:1fr 1fr; gap:22px; } .analytics-watch-actions { flex-direction:row; justify-content:flex-end; } .analytics-open-number { padding-left:0; border:0; } }
@media(max-width:760px) { .analytics-chart-grid,.analytics-bottom-grid { grid-template-columns:minmax(0,1fr); } .analytics-metrics { gap:8px; } .analytics-metric { padding:16px 12px; } .analytics-metric>strong { font-size:30px; } .analytics-metric>span,.analytics-metric>small { font-size:10px; } .analytics-watch { padding:22px; } .analytics-watch-title { grid-column:1/-1; } .analytics-watch-actions { grid-column:1/-1; justify-content:flex-start; } .analytics-open-number strong { font-size:36px; } .analytics-panel { padding:20px; } }
@media(prefers-reduced-motion:reduce) { .analytics-page * { transition:none !important; } }

/* Keep map controls compact and give the canvas the remaining viewport. */
.workspace-map .topbar { height:48px; min-height:48px; }
.workspace-map .operations-view { padding:14px 20px 10px; height:100%; min-height:0; }
.map-compact-header { display:flex; align-items:center; gap:22px; min-height:42px; margin-bottom:12px; flex-shrink:0; }
.map-compact-header h1 { font:650 21px/1.2 Helvetica,Arial,sans-serif; letter-spacing:-.5px; margin:0; }
.map-compact-metrics { display:flex; align-items:center; gap:22px; flex:1; }
.map-compact-metrics>span { display:flex; align-items:center; gap:5px; font-size:11px; color:#728198; white-space:nowrap; }
.map-compact-metrics strong { font-size:13px; color:#354662; font-weight:650; }
.map-live-dot { width:6px; height:6px; border-radius:50%; background:#679988; }
.map-compact-header .btn { display:flex; align-items:center; gap:7px; white-space:nowrap; margin-left:auto; }
.workspace-map .map-surface { min-height:300px; border-radius:12px; }
.workspace-map .map-surface-heading { min-height:38px; padding:0 16px; }
.workspace-map .map-surface-heading strong { font-size:12px; }
.workspace-map .map-caption { margin-top:8px; }
@media(max-width:760px) {
  .workspace-map .operations-view { padding:10px; }
  .map-compact-header { flex-wrap:wrap; gap:10px; margin-bottom:10px; }
  .map-compact-metrics { order:3; flex-basis:100%; gap:12px; justify-content:space-between; }
  .map-compact-metrics>span { font-size:10px; gap:4px; }
  .workspace-map .map-surface { min-height:360px; }
}

/* Analytics: full-width daily activity, explicit metrics, and all incident types. */
.analytics-watch { grid-template-columns:1.2fr 1fr 1fr; }
.analytics-chart-full { grid-template-columns:minmax(0,1fr); }
.analytics-chart-scroll { overflow-x:auto; padding-top:26px; }
.analytics-chart-full .analytics-chart { height:200px; min-width:660px; }
.analytics-chart-full .analytics-bars { gap:10px; }
.analytics-bar-count { position:absolute; left:50%; transform:translate(-50%,-7px); font-size:11px; font-weight:600; color:#526886; white-space:nowrap; }
.analytics-daily-labels { display:flex; gap:10px; margin:10px 0 0 34px; min-width:626px; }
.analytics-daily-labels>span { flex:1; min-width:0; text-align:center; font-size:10px; color:#8794a7; }
.analytics-metrics { grid-template-columns:repeat(4,minmax(0,1fr)); }
@media(max-width:760px) { .analytics-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.incident-accuracy-grid { display:grid; grid-template-columns:minmax(0,1fr) 78px; column-gap:18px; position:relative; }
.incident-accuracy-grid::before { content:''; grid-column:2; position:absolute; inset:0 0 0 auto; width:78px; background:#f0f4fc; border:1px solid #e5ebf6; border-radius:9px; pointer-events:none; }
.incident-accuracy-label { grid-column:2; position:relative; text-align:center; padding:11px 0 5px; font-size:10px; color:#7288ad; }
.incident-type-row { display:flex; align-items:center; gap:12px; padding:13px 0; min-width:0; }
.incident-accuracy-value { display:flex; align-items:center; justify-content:center; position:relative; font-size:13px; font-weight:650; color:#4f6f9b; }
@media(max-width:760px) { .analytics-watch { grid-template-columns:1fr 1fr; } .analytics-watch-title { grid-column:1/-1; } .incident-accuracy-grid { grid-template-columns:minmax(0,1fr) 64px; column-gap:12px; } .incident-accuracy-grid::before { width:64px; } }

/* Analytics visual direction: luminous indigo, generous type, soft surfaces. */
.analytics-page { --analytics-blue:#3e48f2; --analytics-ink:#1d2435; }
.analytics-dateline { color:#7f8aa1; text-transform:uppercase; letter-spacing:2.6px; font-size:10px; font-weight:750; margin:1px 0 14px; }
.analytics-page .page-header { margin-bottom:34px; gap:24px; }
.analytics-page .page-title { font:650 clamp(38px,4.2vw,62px)/1.1 Helvetica,Arial,sans-serif; letter-spacing:-2.8px; color:var(--analytics-ink); }
.analytics-page .page-header-actions { gap:12px; }
.analytics-page .analytics-range { border-radius:12px; padding:4px; background:#e9ecf6; }
.analytics-page .analytics-range button { border-radius:9px; padding:11px 14px; font-size:11px; color:#66779a; }
.analytics-page .analytics-range button.active { background:#fff; color:#3e48ed; box-shadow:0 3px 9px #233a7810; }
.analytics-page .page-header .btn { padding:14px 20px; border-radius:12px; border:1px solid #e0e5f1; font-size:12px; color:#66799c; background:#fff; }
.analytics-page .page-header .btn:hover { background:#eeefff; color:#3e48f2; }
.analytics-page .analytics-watch { position:relative; isolation:isolate; overflow:hidden; grid-template-columns:1.7fr 1fr 1fr; gap:28px; padding:32px; border-radius:26px; border:1px solid #8188fc; background:linear-gradient(112deg,#2935cf 0%,#3e4bef 60%,#5262fa 100%); box-shadow:0 19px 35px -25px #2935cf90; }
.analytics-watch::after { content:''; position:absolute; z-index:-1; width:600px; height:600px; border:1px solid #ffffff16; border-radius:50%; right:-230px; top:-460px; box-shadow:0 0 0 64px #ffffff03,0 0 0 128px #ffffff03,0 0 0 192px #ffffff03; pointer-events:none; }
.analytics-watch-intro { display:flex; align-items:center; gap:19px; min-width:0; }
.analytics-watch-symbol { display:grid; place-items:center; width:66px; height:66px; flex-shrink:0; border:1px solid #ffffff30; border-radius:50%; background:#ffffff0b; box-shadow:0 0 0 9px #ffffff04; color:white; }
.analytics-page .analytics-kicker { font-size:8px; letter-spacing:1.5px; color:#c8ceff; }
.analytics-page .analytics-watch h2 { font-size:21px; letter-spacing:-.8px; margin:7px 0; font-weight:600; color:#fff; }
.analytics-page .analytics-watch p { font-size:12px; color:#cbd2ff; }
.analytics-page .analytics-open-number { padding-left:28px; border-left:1px solid #ffffff26; gap:10px; position:relative; }
.analytics-page .analytics-open-number strong { font-size:46px; line-height:1.1; font-weight:450; letter-spacing:-1.5px; }
.analytics-page .analytics-open-number span { font-size:12px; color:#d7dcff; }
.analytics-page .analytics-section-label { margin:32px 0 17px; }
.analytics-page .analytics-section-label h2 { font:650 18px Helvetica,Arial,sans-serif; letter-spacing:-.5px; color:var(--analytics-ink); }
.analytics-page .analytics-section-label>span { color:#8b96ac; font-size:11px; }
.analytics-page .analytics-metrics { gap:18px; margin-bottom:24px; }
.analytics-page .analytics-metric { position:relative; overflow:hidden; padding:25px 24px 23px; border-radius:23px; border:1px solid #e3e7f1; background:linear-gradient(140deg,#f8f9ff,#fff 65%); box-shadow:0 5px 10px -10px #283c7950; }
.analytics-page .analytics-metric>.metric-symbol { display:grid; place-items:center; width:35px; height:35px; border-radius:11px; margin-bottom:18px; color:#7887d2; background:#edf0ff; }
.analytics-page .analytics-metric:nth-child(2)>.metric-symbol { color:#7c92b0; background:#edf3f9; }
.analytics-page .analytics-metric:nth-child(3)>.metric-symbol { color:#8d81b9; background:#f2effa; }
.analytics-page .analytics-metric:nth-child(4)>.metric-symbol { color:#ae9569; background:#fbf4e9; }
.analytics-page .analytics-metric>span:not(.metric-symbol) { font-size:12px; color:#71809d; font-weight:500; }
.analytics-page .analytics-metric>strong { font-size:44px; font-weight:500; letter-spacing:-1.8px; color:var(--analytics-ink); margin:9px 0 6px; }
.analytics-page .analytics-metric>small { color:#8592aa; font-size:10px; line-height:1.5; }
.analytics-page .analytics-panel { border-radius:24px; padding:28px; border-color:#e2e7f1; box-shadow:0 6px 14px -14px #34487845; }
.analytics-page .analytics-panel-head h2 { font:650 20px Helvetica,Arial,sans-serif; letter-spacing:-.65px; color:var(--analytics-ink); }
.analytics-page .analytics-panel-head>span { color:#7c8caa; font-size:10px; }
.activity-heading>span { display:block; font-size:11px; color:#8794ae; margin-top:7px; }
.analytics-page .analytics-panel-head { margin-bottom:21px; }
.analytics-page .analytics-legend { gap:20px; color:#8290ab; }
.analytics-page .analytics-legend i { background:#e4e7ff; border-radius:3px; }
.analytics-page .analytics-legend .confirmed { background:#6267f2; }
.analytics-page .analytics-chart-full .analytics-chart { min-width:0; height:210px; }
.analytics-page .analytics-bars { background:repeating-linear-gradient(to top,transparent 0,transparent calc(50% - 1px),#f3f4fa calc(50% - 1px),#f3f4fa 50%); border-color:#eef0f8; }
.analytics-page .analytics-bar-total,.analytics-page .analytics-bar-confirmed { max-width:62px; width:64%; border-radius:9px 9px 0 0; }
.analytics-page .analytics-bar-total { background:linear-gradient(180deg,#dce0ff,#f0f1ff); }
.analytics-page .analytics-bar-confirmed { background:linear-gradient(180deg,#6268fa,#9298fc); }
.analytics-page .analytics-bar-count { font-size:12px; font-weight:600; color:#7582ad; transform:translate(-50%,-11px); }
.analytics-page .analytics-chart-scale { font-size:10px; color:#a1abc0; }
.analytics-page .analytics-daily-labels { min-width:0; margin-top:13px; }
.analytics-page .analytics-daily-labels>span { font-size:11px; color:#7182a2; }
.analytics-daily-labels small { display:block; font-size:9px; color:#a0abc0; margin-top:4px; }
.analytics-page .analytics-month-view .analytics-chart { min-width:760px; }
.analytics-page .analytics-month-view .analytics-daily-labels { min-width:726px; }
.analytics-page .analytics-month-view .analytics-bar-count { font-size:10px; }
.analytics-page .analytics-month-view .analytics-bar-total,.analytics-page .analytics-month-view .analytics-bar-confirmed { width:85%; border-radius:5px 5px 0 0; }
.analytics-page .analytics-data { margin-top:20px; font-size:10px; color:#8c99b2; }
.analytics-page .analytics-bottom-grid { gap:24px; }
.analytics-page .analytics-chart-grid { margin-bottom:24px; }
.analytics-page .analytics-rank { color:#a8b2c6; font-size:10px; }
.analytics-page .analytics-ranked-item>div:first-child { font-size:12px; color:#657697; }
.analytics-page .analytics-ranked-item strong { color:#556789; font-weight:600; }
.analytics-page .analytics-meter { height:4px; margin-top:12px; background:#f0f2fa; }
.analytics-page .analytics-meter>span { background:linear-gradient(90deg,#9ba5ed,#c9cef5); }
.analytics-page .analytics-bottom-grid>section:last-child .analytics-meter>span { background:linear-gradient(90deg,#9dadce,#d0d9ed); }
.analytics-page .incident-accuracy-grid { column-gap:22px; }
.analytics-page .incident-accuracy-grid::before { background:linear-gradient(180deg,#eff0ff,#f6f7ff); border-color:#e9ebfc; border-radius:14px; }
.analytics-page .incident-accuracy-label { color:#8a94ba; padding-top:13px; font-size:9px; }
.analytics-page .incident-accuracy-value { color:#7483bd; font-weight:600; font-size:13px; }
.analytics-page .incident-type-row { padding:15px 0; }
.analytics-page .analytics-foot { font-size:9px; color:#929eb5; }
@media(max-width:1100px) {
 .analytics-page .analytics-watch { grid-template-columns:1.4fr 1fr 1fr; padding:25px; gap:18px; }
 .analytics-watch-symbol { display:none; }
 .analytics-page .analytics-watch h2 { font-size:18px; }
 .analytics-page .analytics-open-number { padding-left:18px; }
 .analytics-page .analytics-metric { padding:20px; }
 .analytics-page .analytics-metric>strong { font-size:38px; }
}
@media(max-width:760px) {
 .analytics-dateline { font-size:9px; letter-spacing:2px; margin-bottom:12px; }
 .analytics-page .page-title { font-size:39px; letter-spacing:-1.8px; }
 .analytics-page .page-header { margin-bottom:25px; gap:20px; }
 .analytics-page .page-header-actions { width:100%; }
 .analytics-page .analytics-range { flex:1; }
 .analytics-page .analytics-range button { flex:1; padding:10px; }
 .analytics-page .analytics-watch { grid-template-columns:1fr 1fr; border-radius:23px; padding:25px; gap:24px 16px; }
 .analytics-watch-intro { grid-column:1/-1; }
 .analytics-page .analytics-watch h2 { font-size:23px; }
 .analytics-page .analytics-open-number { padding-left:0; border-left:0; }
 .analytics-page .analytics-open-number strong { font-size:38px; }
 .analytics-page .analytics-open-number span { font-size:11px; }
 .analytics-page .analytics-metrics { gap:12px; }
 .analytics-page .analytics-metric { padding:19px; border-radius:20px; }
 .analytics-page .analytics-metric>.metric-symbol { width:30px; height:30px; margin-bottom:15px; }
 .analytics-page .analytics-metric>strong { font-size:36px; }
 .analytics-page .analytics-metric>span:not(.metric-symbol) { font-size:11px; }
 .analytics-page .analytics-panel { padding:21px; border-radius:22px; }
 .analytics-page .analytics-panel-head h2 { font-size:19px; }
 .analytics-page .analytics-legend { gap:12px; }
 .analytics-page .analytics-chart-full .analytics-chart { height:165px; }
 .analytics-page .analytics-bar-total,.analytics-page .analytics-bar-confirmed { width:80%; border-radius:5px 5px 0 0; }
 .analytics-page .analytics-bar-count { font-size:10px; }
 .analytics-page .analytics-daily-labels>span { font-size:9px; }
 .analytics-daily-labels small { font-size:8px; }
 .analytics-page .incident-accuracy-grid { column-gap:12px; }
}

.analytics-page .analytics-watch-title h2 { font-size:32px; letter-spacing:-1px; margin:0; }
@media(max-width:1100px) { .analytics-page .analytics-watch-title h2 { font-size:28px; } }
/* Keep uploaded search results focused on the footage and detected event. */
.search-result-meta { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 8px; color: #64748b; font-size: 12px; }
.search-result-events { display: flex; flex-wrap: wrap; gap: 8px; }
.search-result-events .clip-moment { padding: 10px 14px; min-height: 44px; font-size: 13px; }
.search-result-events .clip-moment:disabled { opacity: .55; cursor: default; }

/* Video analysis: a focused workspace for staging, progress, and review. */
.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; }
.video-analysis-page { --accent:#3c43f5; --ink:#202738; --muted:#6d7b95; max-width:1120px; margin:0 auto; padding:24px 12px 40px; color:var(--ink); }
.video-analysis-header { margin-bottom:28px; }
.video-analysis-header .page-header { margin-bottom:10px; }
.video-analysis-page .page-title { font-size:36px; font-weight:650; line-height:1.15; letter-spacing:-1.3px; margin:0; color:var(--ink); }
.video-analysis-intro { color:var(--muted); font-size:14px; line-height:1.6; }
.video-analysis-page .video-analysis-card { padding:26px 28px; margin-bottom:20px; border:1px solid #e0e5ed; border-radius:16px; background:#fff; box-shadow:0 3px 12px #1f315206; }
.video-analysis-page .video-analysis-card.is-dragging { border-color:var(--accent); box-shadow:0 0 0 3px #3c43f515; }
.video-analysis-page .btn { display:inline-flex; justify-content:center; align-items:center; gap:12px; min-height:42px; padding:10px 16px; border-radius:9px; font-size:13px; font-weight:600; background:var(--accent); color:#fff; border:1px solid transparent; transition:background .15s, box-shadow .15s; }
.video-analysis-page .btn:hover { background:#3036da; box-shadow:0 3px 10px #3c43f520; }
.video-analysis-page .btn-secondary { color:#3b4b65; background:#fff; border-color:#dce2ec; }
.video-analysis-page .btn-secondary:hover { background:#f5f7fb; border-color:#bdc9dd; }
.video-analysis-page .link { color:var(--accent); font-size:12px; font-weight:600; display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:32px; text-decoration:none; }
.video-analysis-page .link:hover { text-decoration:underline; }
.video-analysis-page select, .video-analysis-page .input { min-width:0; min-height:42px; border:1px solid #dce2ec; border-radius:8px; background:#fff; padding:10px 12px; font-size:13px; color:#3b4b65; }
.video-analysis-page select { width:100%; text-overflow:ellipsis; cursor:pointer; }
.video-analysis-page select:hover, .video-analysis-page .input:hover { border-color:#bbc7db; }
.video-analysis-page :is(select,.input):focus-visible { border-color:var(--accent); outline:2px solid #3c43f540; outline-offset:2px; }
.video-analysis-page button:focus-visible { outline:3px solid #3c43f550; outline-offset:3px; }
.video-file-picker { width:auto; margin:0; cursor:pointer; white-space:nowrap; }
.video-queue-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.video-queue-heading h2 { display:flex; align-items:center; gap:10px; font-size:18px; font-weight:650; line-height:1.3; letter-spacing:-.35px; color:var(--ink); }
.video-section-count { display:inline-grid; place-items:center; min-width:24px; height:24px; padding:0 7px; background:#f0f3f8; border-radius:7px; color:#637087; font-size:11px; font-weight:600; letter-spacing:0; }
.video-section-description { color:var(--muted); font-size:12px; line-height:1.6; margin-top:7px; }
.video-queue-summary { color:var(--muted); font-size:12px; line-height:1.5; }
.video-all-camera { display:grid; grid-template-columns:minmax(0,1fr) 300px; align-items:center; gap:20px; padding:16px 0; margin-top:14px; border-bottom:1px solid #edf0f5; }
.video-all-camera label { margin:0; color:#667287; font-size:12px; font-weight:500; }
.video-all-camera select { background:#f7f9fc; }
.video-staged-list { margin:0; }
.video-staged-row { display:grid; grid-template-columns:minmax(0,1fr) 300px; align-items:center; gap:24px; padding:20px 0; border-bottom:1px solid #edf0f5; }
.video-staged-row:last-child { border-bottom:0; }
.video-staged-details { display:flex; align-items:center; gap:12px; min-width:0; }
.video-staged-details>div { flex:1; min-width:0; }
.video-staged-details strong, .video-progress-heading strong, .video-history-summary strong { display:block; font-size:14px; font-weight:600; line-height:1.5; color:var(--ink); overflow-wrap:anywhere; }
.video-row-meta { margin-top:4px; color:var(--muted); font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
.video-staged-remove { display:inline-grid; place-items:center; flex:none; width:30px; height:30px; padding:0; border:0; border-radius:8px; background:#f4f6f9; color:#8190a5; font-size:21px; line-height:1; cursor:pointer; }
.video-staged-remove:hover { background:#fff0f1; color:#b64250; }
.video-staged-camera { min-width:0; }
.video-upload-footer { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-top:20px; margin-top:4px; border-top:1px solid #e8ecf3; }
.video-alert-option { display:flex; align-items:center; gap:12px; min-width:0; font-size:12px; line-height:1.6; color:#56647b; }
.video-alert-switch { position:relative; flex:none; width:38px; height:22px; padding:0; border:0; border-radius:20px; background:#bac3d1; cursor:pointer; transition:background .18s ease; }
.video-alert-switch.is-on { background:var(--accent); }
.video-alert-switch-thumb { position:absolute; top:3px; left:3px; width:16px; height:16px; border-radius:50%; background:#fff; box-shadow:0 1px 3px #0002; transition:transform .18s ease; }
.video-alert-switch.is-on .video-alert-switch-thumb { transform:translateX(16px); }
.video-analysis-page .video-analyze-button { min-height:44px; flex:none; padding:11px 18px; box-shadow:0 3px 8px #3c43f51a; }
.video-analyze-button>span { font-size:18px; }
.video-analysis-page .video-analysis-empty { padding:34px 24px; gap:10px; background:linear-gradient(155deg,#f6f8ff,#fcfdff); border:1px dashed #cbd5eb; border-radius:12px; color:var(--muted); font-size:13px; }
.video-analysis-empty .upload-icon { width:44px; height:44px; margin:0 0 4px; border-radius:12px; background:#eaf0ff; color:var(--accent); }
.video-analysis-page .video-analysis-empty strong { font-size:20px; font-weight:600; color:var(--ink); }
.video-analysis-empty small { margin-top:4px; color:var(--muted); text-align:center; line-height:1.7; }
.video-queue-list { margin-top:18px; }
.video-analysis-page .video-progress-row { padding:20px 0; border-top:1px solid #edf0f5; }
.video-analysis-page .video-progress-row:first-child { padding-top:18px; }
.video-analysis-page .video-progress-row:last-child { padding-bottom:0; }
.video-progress-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.video-analysis-page .q-pill { flex:none; border-radius:6px; padding:5px 8px; text-transform:none; letter-spacing:0; font-size:11px; font-weight:600; background:#f0f3f7; color:#667287; }
.video-analysis-page .q-busy { background:#edf2ff; color:#3c43f5; }
.video-analysis-page .q-error { background:#fff0f0; color:#b23c49; }
.video-analysis-page .q-bar { height:4px; border-radius:4px; margin-top:14px; background:#edf1f8; }
.video-analysis-page .q-bar-fill { background:var(--accent); border-radius:4px; }
.video-progress-footer { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:8px; }
.video-queue-detail { color:var(--muted); font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
.video-row-actions { display:flex; align-items:center; gap:12px; flex:none; }
.video-analysis-page .q-remove { border:0; background:none; padding:6px 0; color:var(--muted); font-size:12px; cursor:pointer; }
.video-analysis-page .q-remove:hover { color:#b64250; }
.video-analysis-page .video-history-search { display:block; width:100%; max-width:340px; margin-top:20px; background:#f8f9fc; }
.video-history-list { margin-top:18px; border-top:1px solid #edf0f5; }
.video-history-row { padding:20px 0; border-bottom:1px solid #edf0f5; }
.video-history-row:last-child { border-bottom:0; padding-bottom:0; }
.video-history-summary { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:24px; }
.video-history-summary>div { min-width:0; }
.video-history-finding { display:inline-block; max-width:240px; padding:5px 9px; border:1px solid #e7ecf3; background:#f8f9fc; border-radius:6px; font-size:11px; line-height:1.5; color:#667287; overflow-wrap:anywhere; }
.video-history-finding.has-findings { background:#fff8ed; border-color:#f1e3c9; color:#8a5b23; }
.video-history-review { margin-top:20px; }
.video-history-empty { padding:24px 0 8px; color:var(--muted); }
.video-history-more { margin-top:20px; }
/* Light Haven palette; the preparation workspace keeps its distinct layout. */
.main:has(.video-analysis-page) { background:#f5f6fb; }
.video-analysis-page, .video-analysis-page :is(button,input,select,textarea) { font-family:'DM Sans',Helvetica,Arial,sans-serif; }
.video-analysis-page :is(h1,h2,.page-title) { font-family:Manrope,Helvetica,Arial,sans-serif; }
.video-analysis-page { max-width:1180px; padding:28px 12px 48px; }
.video-analysis-studio { background:radial-gradient(ellipse at 95% 0%,#eef0ff 0%,transparent 58%),#fff; color:#202738; border:1px solid #e2e6f2; border-radius:28px; overflow:hidden; box-shadow:0 10px 30px #3c43f508; margin-bottom:40px; }
.video-analysis-studio .video-analysis-header { padding:40px 36px 28px; margin:0; }
.video-analysis-studio .page-title { color:#202738; font-size:clamp(36px,4vw,54px); font-weight:700; letter-spacing:-2px; }
.video-analysis-studio .video-analysis-intro { color:#6d7b95; max-width:560px; }
.video-analysis-studio .video-studio-upload { border:0; border-radius:0; padding:0 36px 30px; margin:0; background:transparent; box-shadow:none; }
.video-analysis-studio .video-studio-upload.is-dragging { background:#eef0ff; box-shadow:inset 0 0 0 2px #9097ff; }
.video-analysis-studio .video-queue-heading { border-top:1px solid #e7eaf5; padding-top:22px; }
.video-analysis-studio .video-queue-heading h2 { color:#303b53; font-size:16px; font-weight:650; }
.video-studio-step { color:#737fbc; font-size:12px; font-variant-numeric:tabular-nums; margin-right:8px; }
.video-analysis-studio .video-section-count { background:#eceef9; color:#7081a4; }
.video-analysis-studio .btn-secondary { background:#fff; border-color:#dfe3f3; color:#3c43f5; }
.video-analysis-studio .btn-secondary:hover { background:#f0f1ff; border-color:#c6cdf8; }
.video-analysis-studio .video-all-camera { border:0; padding:18px 18px 12px; margin-top:8px; grid-template-columns:minmax(0,1fr) 300px; }
.video-analysis-studio .video-all-camera label { color:#6d7b95; }
.video-analysis-studio select { background:#fff; border-color:#dce2f1; color:#43506b; color-scheme:light; }
.video-analysis-studio select:hover { border-color:#a7b2e1; }
.video-analysis-studio select:focus-visible { outline-color:#9299fb; border-color:#9299fb; }
.video-analysis-studio button:focus-visible { outline-color:#9299fb; }
.video-analysis-studio .video-staged-list { display:grid; gap:8px; }
.video-analysis-studio .video-staged-row { padding:18px; background:#f8f9ff; border:1px solid #e8ebf6; border-radius:18px; }
.video-analysis-studio .video-staged-details strong { color:#253049; font-size:15px; }
.video-analysis-studio .video-row-meta { color:#6d7b95; }
.video-analysis-studio .video-staged-remove { background:transparent; color:#8290ac; }
.video-analysis-studio .video-staged-remove:hover { background:#fff0f1; color:#b64250; }
.video-analysis-studio .video-upload-footer { margin-top:24px; padding-top:24px; border-color:#e7eaf5; }
.video-analysis-studio .video-alert-option { color:#63708b; max-width:400px; }
.video-analysis-studio .video-alert-switch { background:#bac4d8; }
.video-analysis-studio .video-alert-switch.is-on { background:#3c43f5; }
.video-analysis-studio .video-analyze-button, .video-analysis-studio .video-analysis-empty .btn { background:#3c43f5; min-height:48px; padding:12px 22px; border-radius:14px; box-shadow:0 6px 18px #3c43f51a; }
.video-analysis-studio .video-analyze-button:hover, .video-analysis-studio .video-analysis-empty .btn:hover { background:#3036da; }
.video-analysis-studio .video-analysis-empty { background:linear-gradient(145deg,#f1f3ff,#fff); border-color:#cfd6fa; padding:40px 24px; color:#6d7b95; }
.video-analysis-studio .video-analysis-empty strong { color:#253049; }
.video-analysis-studio .video-analysis-empty small { color:#6d7b95; }
.video-analysis-studio .upload-icon { color:#8293dc; background:#ecefff; }
.video-upload-notice { color:#946126; font-size:12px; line-height:1.6; margin-top:12px; }
.video-workflow-section { display:grid; grid-template-columns:210px minmax(0,1fr); gap:32px; margin-top:32px; padding-bottom:32px; border-bottom:1px solid #dce2eb; }
.video-workflow-section:last-child { border-bottom:0; padding-bottom:0; }
.video-section-head { min-width:0; }
.video-section-index { display:block; color:#8493aa; font-size:12px; font-weight:600; letter-spacing:.1em; font-variant-numeric:tabular-nums; margin:2px 0 12px; }
.video-section-head h2 { font-size:20px; letter-spacing:-.5px; }
.video-section-head .video-queue-summary { display:block; margin-top:12px; }
.video-section-head .video-section-description { margin-top:10px; line-height:1.8; }
.video-section-head>.link { margin-top:12px; }
.video-section-body { min-width:0; }
.video-workflow-section .video-queue-list { display:grid; gap:12px; margin:0; }
.video-workflow-section .video-progress-row { border:1px solid #dde5ef; border-radius:18px; padding:20px; background:#fff; }
.video-workflow-section .video-progress-row:first-child, .video-workflow-section .video-progress-row:last-child { padding:20px; }
.video-workflow-section .video-progress-row.is-analyzing, .video-workflow-section .video-progress-row.is-uploading { border-left:3px solid #3c43f5; padding-left:18px; }
.video-workflow-section .video-history-search { margin:0; max-width:none; background:#fff; height:44px; }
.video-workflow-section .video-history-list { margin-top:12px; border:1px solid #dde5ef; border-radius:18px; background:#fff; padding:0 20px; }
.video-workflow-section .video-history-row:last-child { padding-bottom:20px; }
.video-workflow-section .video-history-summary { grid-template-columns:minmax(0,1fr) auto; gap:8px 16px; }
.video-workflow-section .video-history-summary>div { grid-column:1/-1; }
.video-workflow-section .video-history-finding { justify-self:start; }
@media (max-width:760px) {
  .video-analysis-page { padding:14px 0 24px; }
  .video-analysis-page .page-title { font-size:36px; letter-spacing:-1.3px; }
  .video-analysis-studio { border-radius:18px; margin-bottom:28px; }
  .video-analysis-studio .video-analysis-header { padding:28px 22px 22px; }
  .video-analysis-page .video-analysis-studio .video-studio-upload { padding:0 22px 24px; border-radius:0; }
  .video-analysis-studio .video-all-camera { padding:16px 0 12px; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .video-analysis-studio .video-staged-row { padding:16px; }
  .video-workflow-section { grid-template-columns:minmax(0,1fr); gap:18px; margin-top:24px; padding-bottom:24px; }
  .video-section-index { margin-bottom:8px; }
  .video-section-head .video-section-description { max-width:460px; }
  .video-analysis-header { margin-bottom:22px; }
  .video-analysis-page .video-analysis-card { padding:20px; border-radius:12px; }
  .video-queue-heading { align-items:flex-start; flex-wrap:wrap; gap:12px; }
  .video-queue-heading h2 { font-size:17px; }
  .video-all-camera { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; }
  .video-staged-row { grid-template-columns:minmax(0,1fr); gap:12px; }
  .video-staged-camera { margin-left:42px; }
  .video-upload-footer { align-items:stretch; flex-direction:column; gap:20px; }
  .video-alert-option { align-items:flex-start; }
  .video-alert-switch { margin-top:1px; }
  .video-history-summary { grid-template-columns:minmax(0,1fr) auto; gap:8px 12px; }
  .video-history-summary>div { grid-column:1/-1; }
  .video-history-finding { justify-self:start; }
  .video-analysis-page .video-history-search { max-width:none; }
  .video-progress-heading { align-items:flex-start; gap:12px; }
  .video-analysis-page select, .video-analysis-page .input { font-size:16px; }
}
@media (max-width:420px) {
  .video-analysis-page .video-analysis-card { padding:16px; }
  .video-all-camera, .video-analysis-studio .video-all-camera { grid-template-columns:minmax(0,1fr); gap:8px; }
  .video-staged-camera { margin-left:0; }
}
@media (prefers-reduced-motion:reduce) {
  .video-analysis-page *, .video-analysis-page *::before, .video-analysis-page *::after { animation:none !important; transition:none !important; }
}

.map-location-panel h2 { font-size:20px; margin-bottom:16px; }
.map-location-panel p { margin:16px 0; line-height:1.5; }
.camera-view-handle {
  width:24px; height:24px; box-sizing:border-box; border:3px solid #004caa;
  border-radius:50%; background:#fff; box-shadow:0 1px 6px #18375888;
  cursor:grab; touch-action:none;
}
.camera-view-handle:active { cursor:grabbing; }
.camera-view-handle-direction {
  width:30px; height:30px; background:#004caa; border:3px solid #fff;
  display:grid; place-items:center;
}
.camera-view-handle-direction::after {
  content:'➤'; color:#fff; font-size:18px; line-height:1;
  transform:rotate(calc(var(--camera-handle-bearing, 0deg) - 90deg));
}

/* Keep the map available for pin placement beside the editor on small screens. */
@media (max-width: 700px) {
  .map-location-panel { top:auto; max-height:45%; width:100%; border-top:1px solid #e4e4e4; }
}

.camera-view-form { margin-top:16px; padding:16px; border:1px solid #d9e4f5; background:#f7faff; }
.camera-view-form p { margin:10px 0; }
.camera-view-form .row { gap:12px; margin-top:12px; flex-wrap:wrap; }
.camera-view-form .row > div { flex:1 1 150px; }
.camera-view-form .input { max-width:180px; }
.camera-view-form [role=alert] { color:#b42318; }
