/* NotaryStack — B2B app-theme override (login + dashboard only).
   Loaded ONLY when a route opts in via `nsAppTheme: true` in
   src/server.js (currently: /notary-login and /notary-dashboard).
   Every rule here is scoped under `body.ns-app-theme` so it can never
   affect any other page (session room, device check, waiting room,
   document editor, participant flow, or the marketing homepage) — those
   continue to use the existing shared styles.css untouched (it still
   carries legacy NotaryMelon-named `--nm-*` color tokens, left as-is). */

body.ns-app-theme {
  --bg: #F7F9FC;
  --panel: #FFFFFF;
  --panel-soft: #F1F5F9;
  --primary: #1E3A8A;
  --primary-dark: #0B1D3A;
  --primary-light: #E6EBF1;
  --primary-soft: #E6EBF1;
  --primary-contrast: #FFFFFF;
  --text: #0B1D3A;
  --muted: #64748B;
  --border: #DCE3ED;
  --success: #00A3B8;
  --shadow: 0 18px 48px rgba(11, 29, 58, 0.12);

  background: linear-gradient(180deg, #FFFFFF 0%, #F7F9FC 100%);
}

body.ns-app-theme .ns-app-logo-img {
  height: 34px;
  width: auto;
  display: block;
}

/* Component rules below use hardcoded brand-pink literals in the base
   styles.css instead of the custom properties above, so they need
   direct, scoped overrides to fully re-theme. */

body.ns-app-theme .topbar {
  border-bottom-color: rgba(11, 29, 58, 0.10);
}

body.ns-app-theme .btn.primary {
  box-shadow: 0 12px 24px rgba(30, 58, 138, 0.30);
}

body.ns-app-theme .sidebar-item:hover {
  background: rgba(30, 58, 138, 0.08);
  border-color: rgba(30, 58, 138, 0.18);
}

body.ns-app-theme .sidebar-item.active {
  border-color: rgba(30, 58, 138, 0.18);
}

body.ns-app-theme .icon-btn:hover {
  background: rgba(30, 58, 138, 0.08);
}

body.ns-app-theme .contact-badge {
  background: rgba(30, 58, 138, 0.10);
}

body.ns-app-theme .identity-option-icon {
  background: rgba(30, 58, 138, 0.10);
}

body.ns-app-theme .identity-option input[type="radio"]:checked + .identity-option-card {
  background: rgba(30, 58, 138, 0.08);
  border-color: rgba(30, 58, 138, 0.30);
  box-shadow: inset 0 0 0 1px rgba(30, 58, 138, 0.18);
}

body.ns-app-theme .identity-mode-pill:hover {
  border-color: rgba(30, 58, 138, 0.35);
}

body.ns-app-theme .upload-drop-zone:hover,
body.ns-app-theme .upload-drop-zone.is-dragging {
  box-shadow: inset 0 0 0 2px rgba(30, 58, 138, 0.14);
}

body.ns-app-theme .featured-plan {
  border-color: rgba(30, 58, 138, 0.25);
  box-shadow: 0 18px 36px rgba(30, 58, 138, 0.18);
}

body.ns-app-theme .status-badge.online,
body.ns-app-theme .status-badge.live {
  background: rgba(0, 163, 184, 0.14);
}

body.ns-app-theme .status-dot.ready {
  background: #00A3B8;
}
