:root {
  --rzt-blue-900: #0b2e4a;
  --rzt-blue-700: #0b3a78;
  --rzt-blue-600: #1e5bff;
  --rzt-gray-950: #0b1220;
  --rzt-gray-800: #1f2937;
  --rzt-gray-700: #374151;
  --rzt-gray-300: #d1d5db;
  --rzt-gray-200: #e5e7eb;
  --rzt-gray-100: #f3f4f6;
  --rzt-gray-050: #f8fafc;
  --rzt-white: #ffffff;
  --rzt-radius-sm: 8px;
  --rzt-radius-md: 12px;
  --rzt-radius-lg: 16px;
  --rzt-shadow-sm: 0 4px 12px rgba(15, 23, 42, 0.06);
  --rzt-shadow-md: 0 10px 25px rgba(15, 23, 42, 0.08);
}

html,
body {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  color: var(--rzt-gray-950);
}

body.rzt-portal {
  background: var(--rzt-gray-050);
}

body.rzt-portal .app-shell,
body.rzt-portal .contacts-app-shell {
  background: var(--rzt-gray-050) !important;
}

body.rzt-portal .topbar,
body.rzt-portal .contacts-toolbar {
  background: var(--rzt-blue-900) !important;
  color: var(--rzt-white) !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

body.rzt-portal .topbar h1,
body.rzt-portal .topbar p,
body.rzt-portal .topbar span,
body.rzt-portal .topbar .hint,
body.rzt-portal .contacts-toolbar,
body.rzt-portal .contacts-toolbar * {
  color: var(--rzt-white) !important;
}

body.rzt-portal .sidebar,
body.rzt-portal .contacts-sidebar {
  background: var(--rzt-gray-100) !important;
  color: var(--rzt-gray-800) !important;
  box-shadow: 8px 0 20px rgba(15, 23, 42, 0.08) !important;
}

body.rzt-portal .sidebar .brand-name,
body.rzt-portal .sidebar .brand-sub,
body.rzt-portal .contacts-brand-name,
body.rzt-portal .contacts-brand-sub,
body.rzt-portal .user-meta,
body.rzt-portal .user-meta *,
body.rzt-portal .contacts-user-meta,
body.rzt-portal .contacts-user-meta * {
  color: var(--rzt-gray-800) !important;
}

body.rzt-portal .nav a,
body.rzt-portal .nav-link,
body.rzt-portal .contacts-nav-menu button {
  border-radius: var(--rzt-radius-md) !important;
}

body.rzt-portal .nav a.active,
body.rzt-portal .nav-link.active,
body.rzt-portal .contacts-nav-menu button.active {
  background: var(--rzt-blue-600) !important;
  border-color: var(--rzt-blue-600) !important;
  color: var(--rzt-white) !important;
  box-shadow: none !important;
}

body.rzt-portal .nav a.active *,
body.rzt-portal .nav-link.active *,
body.rzt-portal .contacts-nav-menu button.active * {
  color: var(--rzt-white) !important;
}

body.rzt-portal .card,
body.rzt-portal .ui-card,
body.rzt-portal .table-wrap,
body.rzt-portal .table-wrapper {
  border-radius: var(--rzt-radius-md) !important;
  border: 1px solid var(--rzt-gray-200) !important;
  box-shadow: var(--rzt-shadow-sm) !important;
  background: var(--rzt-white) !important;
}

body.rzt-portal .btn,
body.rzt-portal button,
body.rzt-portal .ui-button--primary,
body.rzt-portal .btn-primary {
  border-radius: var(--rzt-radius-md) !important;
}

body.rzt-portal .btn-primary,
body.rzt-portal .ui-button--primary,
body.rzt-portal button.bg-primary-500 {
  background: var(--rzt-blue-600) !important;
  border-color: var(--rzt-blue-600) !important;
  color: var(--rzt-white) !important;
}

body.rzt-portal .btn-primary:hover,
body.rzt-portal .ui-button--primary:hover,
body.rzt-portal button.bg-primary-500:hover {
  background: var(--rzt-blue-700) !important;
  border-color: var(--rzt-blue-700) !important;
}

body.rzt-portal input,
body.rzt-portal select,
body.rzt-portal textarea,
body.rzt-portal .ui-input,
body.rzt-portal .ui-select,
body.rzt-portal .form-control,
body.rzt-portal .form-select {
  border-radius: var(--rzt-radius-sm) !important;
  border: 1px solid var(--rzt-gray-300) !important;
  background: var(--rzt-white) !important;
}

body.rzt-portal input:focus,
body.rzt-portal select:focus,
body.rzt-portal textarea:focus,
body.rzt-portal .ui-input:focus,
body.rzt-portal .ui-select:focus,
body.rzt-portal .form-control:focus,
body.rzt-portal .form-select:focus {
  border-color: rgba(30, 91, 255, 0.55) !important;
  box-shadow: 0 0 0 0.2rem rgba(30, 91, 255, 0.18) !important;
  outline: none !important;
}

body.rzt-portal table thead th {
  background: var(--rzt-gray-050) !important;
  border-color: var(--rzt-gray-200) !important;
}

body.rzt-portal table td,
body.rzt-portal table th {
  border-color: var(--rzt-gray-200) !important;
}

body.rzt-portal {
  --radius: 0.75rem;
  --sidebar-background: 220 20% 96%;
  --sidebar-foreground: 215 35% 15%;
  --sidebar-primary: 223 95% 55%;
  --sidebar-primary-foreground: 0 0% 100%;
  --sidebar-accent: 220 18% 92%;
  --sidebar-accent-foreground: 215 35% 15%;
  --sidebar-border: 220 16% 88%;
  --background: 210 20% 98%;
  --foreground: 215 35% 15%;
  --primary: 223 95% 55%;
  --primary-foreground: 0 0% 100%;
  --border: 220 16% 88%;
  --input: 220 16% 88%;
  --ring: 223 95% 55%;
  --color-primary-700: #0b3a78;
  --color-primary-500: #1e5bff;
  --color-primary-300: #89a8ff;
  --color-bg: #f8fafc;
  --color-bg-accent: #f3f4f6;
  --color-surface: #ffffff;
  --color-surface-soft: #f8fafc;
  --color-border: #e5e7eb;
  --color-text: #0b1220;
  --color-muted: #4b5563;
  --radius-lg: .75rem;
}

/* Unified HML overrides (all apps except RCO, which uses local styles) */
body.rzt-portal *,
body.rzt-portal *::before,
body.rzt-portal *::after {
  border-radius: 0 !important;
}

body.rzt-portal .sidebar,
body.rzt-portal .contacts-sidebar {
  background: #ffffff !important;
  box-shadow: none !important;
  border-right: 1px solid var(--rzt-gray-200) !important;
}

body.rzt-portal .nav,
body.rzt-portal .contacts-nav-menu {
  gap: 0 !important;
}

body.rzt-portal .nav a,
body.rzt-portal .nav-link,
body.rzt-portal .contacts-nav-menu button {
  min-height: 42px !important;
  padding: 0 16px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--rzt-gray-100) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--rzt-gray-800) !important;
  box-shadow: none !important;
}

body.rzt-portal .nav a:hover,
body.rzt-portal .nav-link:hover,
body.rzt-portal .contacts-nav-menu button:hover {
  background: var(--rzt-gray-050) !important;
}

body.rzt-portal .nav a.active,
body.rzt-portal .nav a[aria-current="page"],
body.rzt-portal .nav-link.active,
body.rzt-portal .nav-link[aria-current="page"],
body.rzt-portal .contacts-nav-menu button.active,
body.rzt-portal .contacts-nav-menu button[aria-current="page"] {
  background: #e3e3e3 !important;
  color: var(--rzt-gray-800) !important;
  border-color: var(--rzt-gray-200) !important;
  box-shadow: none !important;
}

body.rzt-portal .nav a svg,
body.rzt-portal .nav-link svg,
body.rzt-portal .contacts-nav-menu button svg,
body.rzt-portal .nav a i,
body.rzt-portal .nav-link i,
body.rzt-portal .contacts-nav-menu button i {
  color: #0a2a43 !important;
  fill: currentColor !important;
  stroke: currentColor !important;
}

body.rzt-portal button,
body.rzt-portal .btn,
body.rzt-portal .btn-primary,
body.rzt-portal .btn-secondary,
body.rzt-portal .btn-danger,
body.rzt-portal .ui-button,
body.rzt-portal .ui-button--primary,
body.rzt-portal .ui-button--secondary,
body.rzt-portal .ui-button--ghost,
body.rzt-portal .ui-button--danger,
body.rzt-portal .primary,
body.rzt-portal .ghost,
body.rzt-portal .danger,
body.rzt-portal [role="button"] {
  background: #0b2e4a !important;
  color: #ffffff !important;
  border-color: #0b2e4a !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

body.rzt-portal button:hover,
body.rzt-portal .btn:hover,
body.rzt-portal .btn-primary:hover,
body.rzt-portal .btn-secondary:hover,
body.rzt-portal .btn-danger:hover,
body.rzt-portal .ui-button:hover,
body.rzt-portal .ui-button--primary:hover,
body.rzt-portal .ui-button--secondary:hover,
body.rzt-portal .ui-button--ghost:hover,
body.rzt-portal .ui-button--danger:hover,
body.rzt-portal .primary:hover,
body.rzt-portal .ghost:hover,
body.rzt-portal .danger:hover,
body.rzt-portal [role="button"]:hover {
  background: #0b2e4a !important;
  color: #ffffff !important;
  border-color: #0b2e4a !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

/* Final RCO baseline normalization for all HML apps using this theme */
body.rzt-portal *,
body.rzt-portal *::before,
body.rzt-portal *::after {
  border-radius: 0 !important;
}

body.rzt-portal button,
body.rzt-portal .btn,
body.rzt-portal .btn-primary,
body.rzt-portal .btn-secondary,
body.rzt-portal .btn-danger,
body.rzt-portal .ui-button,
body.rzt-portal .ui-button--primary,
body.rzt-portal .ui-button--secondary,
body.rzt-portal .ui-button--ghost,
body.rzt-portal .ui-button--danger,
body.rzt-portal .primary,
body.rzt-portal .ghost,
body.rzt-portal .danger,
body.rzt-portal [role="button"],
body.rzt-portal [class*="button"],
body.rzt-portal [class*="btn-"],
body.rzt-portal .icon-button {
  background: #efefef !important;
  color: #4e4c4c !important;
  border-color: #d9d9d9 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

body.rzt-portal button:hover,
body.rzt-portal .btn:hover,
body.rzt-portal .btn-primary:hover,
body.rzt-portal .btn-secondary:hover,
body.rzt-portal .btn-danger:hover,
body.rzt-portal .ui-button:hover,
body.rzt-portal .ui-button--primary:hover,
body.rzt-portal .ui-button--secondary:hover,
body.rzt-portal .ui-button--ghost:hover,
body.rzt-portal .ui-button--danger:hover,
body.rzt-portal .primary:hover,
body.rzt-portal .ghost:hover,
body.rzt-portal .danger:hover,
body.rzt-portal [role="button"]:hover,
body.rzt-portal [class*="button"]:hover,
body.rzt-portal [class*="btn-"]:hover,
body.rzt-portal .icon-button:hover {
  background: #efefef !important;
  color: #4e4c4c !important;
  border-color: #d9d9d9 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

body.rzt-portal button svg,
body.rzt-portal .btn svg,
body.rzt-portal .ui-button svg,
body.rzt-portal [role="button"] svg,
body.rzt-portal [class*="button"] svg,
body.rzt-portal [class*="btn-"] svg {
  color: currentColor !important;
  stroke: currentColor !important;
  fill: none !important;
}

/* RCO-style sidebar normalization for Agent Factory and Governance (shadcn sidebar) */
body.rzt-agent,
body.rzt-gov {
  --sidebar-width: 280px !important;
  --sidebar-width-icon: 92px !important;
}

body.rzt-agent [data-sidebar="sidebar"],
body.rzt-gov [data-sidebar="sidebar"] {
  background: #ffffff !important;
  border-right: 1px solid #e5e7eb !important;
  box-shadow: none !important;
}

body.rzt-agent [data-sidebar="menu"],
body.rzt-gov [data-sidebar="menu"] {
  gap: 0 !important;
}

body.rzt-agent [data-sidebar="menu-button"],
body.rzt-gov [data-sidebar="menu-button"] {
  min-height: 42px !important;
  height: 42px !important;
  padding: 0 16px !important;
  border-radius: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid #f3f4f6 !important;
  background: transparent !important;
  color: #1f2937 !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  box-shadow: none !important;
}

body.rzt-agent [data-sidebar="menu-button"][data-active="true"],
body.rzt-gov [data-sidebar="menu-button"][data-active="true"],
body.rzt-agent [data-sidebar="menu-button"][aria-current="page"],
body.rzt-gov [data-sidebar="menu-button"][aria-current="page"] {
  background: #e3e3e3 !important;
  color: #1f2937 !important;
  font-weight: 600 !important;
}

body.rzt-agent [data-sidebar="menu-button"] svg,
body.rzt-gov [data-sidebar="menu-button"] svg {
  color: #0a2a43 !important;
  stroke: currentColor !important;
  fill: none !important;
}

/* Agent Factory (custom sidebar layout) */
body.rzt-agent aside {
  width: 280px !important;
  min-width: 280px !important;
  background: #ffffff !important;
  color: #1f2937 !important;
  border-right: 1px solid #e5e7eb !important;
  box-shadow: none !important;
  padding: 12px 0 !important;
}

body.rzt-agent aside nav {
  gap: 0 !important;
}

body.rzt-agent aside nav a {
  min-height: 42px !important;
  padding: 0 16px !important;
  border: 0 !important;
  border-bottom: 1px solid #f3f4f6 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #1f2937 !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  box-shadow: none !important;
}

body.rzt-agent aside nav a:hover {
  background: #f8fafc !important;
  color: #1f2937 !important;
}

body.rzt-agent aside nav a[class*="bg-[rgba(24,57,124,0.12)]"] {
  background: #e3e3e3 !important;
  color: #1f2937 !important;
  font-weight: 600 !important;
}

body.rzt-agent aside nav a svg {
  color: #0a2a43 !important;
  stroke: currentColor !important;
  fill: none !important;
}

body.rzt-agent aside [class*="rounded-2xl"][class*="border"] {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* Governance (custom sidebar layout) */
body.rzt-gov aside[class*="bg-primary-700"] {
  background: #ffffff !important;
  color: #1f2937 !important;
  border-right: 1px solid #e5e7eb !important;
  box-shadow: none !important;
}

body.rzt-gov aside[class*="bg-primary-700"] nav {
  gap: 0 !important;
  padding: 8px 0 !important;
}

body.rzt-gov aside[class*="bg-primary-700"] a {
  min-height: 42px !important;
  padding: 0 16px !important;
  border: 0 !important;
  border-bottom: 1px solid #f3f4f6 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #1f2937 !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  box-shadow: none !important;
}

body.rzt-gov aside[class*="bg-primary-700"] a,
body.rzt-gov aside[class*="bg-primary-700"] a * {
  color: #1f2937 !important;
}

body.rzt-gov aside[class*="bg-primary-700"] a:hover {
  background: #f8fafc !important;
  color: #1f2937 !important;
}

body.rzt-gov aside[class*="bg-primary-700"] a[class*="bg-primary-500"] {
  background: #e3e3e3 !important;
  color: #1f2937 !important;
  font-weight: 600 !important;
}

body.rzt-gov aside[class*="bg-primary-700"] a[class*="bg-primary-500"] * {
  color: #1f2937 !important;
}

body.rzt-gov aside[class*="bg-primary-700"] a svg,
body.rzt-gov aside[class*="bg-primary-700"] button svg {
  color: #0a2a43 !important;
  stroke: currentColor !important;
  fill: none !important;
}

body.rzt-gov aside[class*="bg-primary-700"] button {
  background: transparent !important;
  color: #1f2937 !important;
  border: 0 !important;
  box-shadow: none !important;
}
