@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap');

/* Global unified design system across site pages */
:root {
  --app-font-family: "Sora", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  --app-font-size: 14px;
  --app-line-height: 1.45;
  --app-text: #0f172a;
  --app-muted: #64748b;
  --app-bg: #f1f5f9;
  --app-surface: #ffffff;
  --app-border: #dbe4f0;
  --app-blue: #2563eb;
  --app-blue-dark: #1d4ed8;
  --app-blue-soft: #eff6ff;
  --app-input-bg: #f3f4f6;
  --app-input-border: #c5d0e0;
  --app-input-border-focus: #9db3d1;
}

html,
body {
  font-family: var(--app-font-family) !important;
  font-size: var(--app-font-size) !important;
  line-height: var(--app-line-height);
  color: var(--app-text);
}

body {
  background: var(--app-bg);
}

h1, h2, h3, h4, h5, h6,
p, span, label, th, td, li,
input, select, textarea, button, a {
  font-family: var(--app-font-family) !important;
}

p, span, label, th, td, li,
input, select, textarea, button, a {
  font-size: var(--app-font-size) !important;
}

a {
  color: var(--app-blue);
}

a:hover,
a:focus {
  color: var(--app-blue-dark);
}

.container-main {
  padding: 20px 20px 24px !important;
}

.glass-card {
  background: var(--app-surface) !important;
  border: 1px solid var(--app-border) !important;
  border-radius: 12px !important;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.06) !important;
}

.glass-card .card-header {
  border-bottom: 1px solid var(--app-border) !important;
  background: transparent !important;
  color: var(--app-text) !important;
  font-weight: 700 !important;
  padding: 12px 16px !important;
}

.glass-card .card-body {
  padding: 14px 16px !important;
}

.btn,
.btn:focus,
.btn:active {
  border-radius: 10px !important;
}

.btn-primary,
.btn-glass {
  background: linear-gradient(135deg, var(--app-blue), var(--app-blue-dark)) !important;
  border-color: var(--app-blue) !important;
  color: #fff !important;
}

.btn-primary:disabled,
.btn-glass:disabled,
#staffGroupOpenBtn:disabled {
  color: #ffffff !important;
  background: #7da4f2 !important;
  border-color: #7da4f2 !important;
  opacity: 1 !important;
}

.btn-primary:hover,
.btn-glass:hover,
.btn-primary:focus,
.btn-glass:focus {
  background: var(--app-blue-dark) !important;
  border-color: var(--app-blue-dark) !important;
}

.btn-outline-primary,
.btn-glass-secondary {
  color: var(--app-blue) !important;
  border-color: #bfd1f8 !important;
  background: #fff !important;
}

.btn-outline-primary:hover,
.btn-glass-secondary:hover,
.btn-outline-primary:focus,
.btn-glass-secondary:focus {
  color: var(--app-blue-dark) !important;
  border-color: #93b5f3 !important;
  background: var(--app-blue-soft) !important;
}

.badge.bg-primary,
.bg-primary {
  background-color: var(--app-blue) !important;
}

.text-primary {
  color: var(--app-blue) !important;
}

.table {
  border-color: var(--app-border) !important;
}

.table thead th {
  background: #f8fbff !important;
  color: #0b2c62 !important;
  border-bottom: 1px solid var(--app-border) !important;
  font-weight: 700 !important;
  font-family: var(--app-font-family) !important;
  font-size: var(--app-font-size) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

.table > :not(caption) > * > th {
  background: #f8fbff !important;
  color: #0b2c62 !important;
  border-bottom: 1px solid var(--app-border) !important;
  font-weight: 700 !important;
}

.table td,
.table th {
  padding: 10px 12px !important;
  vertical-align: middle !important;
  border-color: var(--app-border) !important;
}

.table-responsive {
  border: 1px solid var(--app-border);
  border-radius: 10px;
  background: #fff;
}

.form-control,
.form-select {
  border-color: var(--app-input-border) !important;
  border-radius: 10px !important;
  min-height: 40px;
  box-shadow: none !important;
  color: #000000 !important;
  background-color: var(--app-input-bg) !important;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--app-input-border-focus) !important;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.12) !important;
  outline: none !important;
  color: #000000 !important;
  background-color: var(--app-input-bg) !important;
}

select:focus,
select:focus-visible,
.form-select:focus-visible {
  outline: none !important;
  border-color: var(--app-input-border-focus) !important;
}

select,
.form-select,
select.form-select,
.searchable-select .form-select,
.searchable-select input.form-select {
  background-color: var(--app-input-bg) !important;
  border-color: var(--app-input-border) !important;
  color: #000000 !important;
}

select option,
select optgroup,
.form-select option,
.form-select optgroup {
  background: #ffffff !important;
  color: #0f172a !important;
}

.searchable-select .form-select,
.searchable-select input.form-select {
  background-color: var(--app-input-bg) !important;
  border-color: var(--app-input-border) !important;
}

.searchable-select .searchable-dropdown {
  background: var(--app-input-bg) !important;
  border: 1px solid var(--app-input-border) !important;
}

.searchable-select .searchable-item {
  color: #0f172a !important;
}

.searchable-select .searchable-item:hover {
  background: #e5e7eb !important;
}

/* Replace any purple-toned custom elements with blue accent */
[class*="purple"],
[style*="purple"],
[style*="violet"] {
  color: var(--app-blue) !important;
  border-color: #93b5f3 !important;
  background-color: var(--app-blue-soft) !important;
}

/* Keep right sidebar/timeline and sticky blocks visually aligned with unified spacing */
.timeline-layout {
  gap: 24px !important;
}

.timeline-step.active {
  background: var(--app-blue-soft) !important;
  color: #0b2c62 !important;
}

/* Standardize "Add New" buttons across portal pages */
button[onclick="showCreatePatient()"],
button[onclick="openProviderModal()"],
button[onclick="openFacilityModal()"],
button[onclick="openInsuranceModal()"],
button[onclick="openUserModal()"],
button[onclick="openProviderDetailsModal()"] {
  background: linear-gradient(135deg, var(--app-blue), var(--app-blue-dark)) !important;
  border-color: var(--app-blue) !important;
  color: #ffffff !important;
}

button[onclick="showCreatePatient()"]:hover,
button[onclick="openProviderModal()"]:hover,
button[onclick="openFacilityModal()"]:hover,
button[onclick="openInsuranceModal()"]:hover,
button[onclick="openUserModal()"]:hover,
button[onclick="openProviderDetailsModal()"]:hover,
button[onclick="showCreatePatient()"]:focus,
button[onclick="openProviderModal()"]:focus,
button[onclick="openFacilityModal()"]:focus,
button[onclick="openInsuranceModal()"]:focus,
button[onclick="openUserModal()"]:focus,
button[onclick="openProviderDetailsModal()"]:focus {
  background: var(--app-blue-dark) !important;
  border-color: var(--app-blue-dark) !important;
  color: #ffffff !important;
}

@media (max-width: 992px) {
  .container-main {
    padding: 14px 12px 18px !important;
  }
}
