/* ==========================================================================
   Physician Lab Services — Design tokens, base, typography
   ========================================================================== */

@import url("https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=Inter:wght@400;500;600;700&display=swap");

:root,
[data-bs-theme="light"],
[data-bs-theme="dark"] {
  --pls-navy: #102d46;
  --pls-teal: #1aae9f;
  --pls-charcoal: #1f2933;
  --pls-warm-white: #f6f7f9;
  --pls-fog: #f1f3f5;
  --pls-white: #ffffff;
  --pls-sage: #2e7d5a;
  --pls-amber: #f5b942;

  --pls-text-primary: #18212f;
  --pls-text-secondary: #667085;
  --pls-text-muted: #98a2b3;

  --pls-border: #e3e8ef;
  --pls-border-strong: #d7dde5;

  --pls-surface: #ffffff;
  --pls-surface-subtle: #f8fafb;
  --pls-page-bg: #f6f7f9;
  --pls-sidebar-bg: #ffffff;
  --pls-icon-well: #f4f6f8;

  --pls-success: #2e7d5a;
  --pls-success-bg: #eaf5ef;
  --pls-warning: #b7791f;
  --pls-warning-bg: #fff4dc;
  --pls-danger: #c94a52;
  --pls-danger-bg: #fff0f1;
  --pls-info: #3e6fb4;
  --pls-info-bg: #eef4fb;

  --pls-sidebar-width: 220px;
  --pls-header-height: 64px;

  --pls-radius-sm: 6px;
  --pls-radius-md: 8px;
  --pls-radius-lg: 10px;
  --pls-radius-pill: 999px;

  --pls-shadow-xs: 0 1px 2px rgba(16, 24, 40, 0.03);
  --pls-shadow-sm: 0 2px 8px rgba(16, 24, 40, 0.05);
  --pls-shadow-md: 0 8px 24px rgba(16, 24, 40, 0.07);

  --pls-transition: 160ms ease;

  --pls-font: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --pls-font-display: "DM Serif Display", Georgia, "Times New Roman", serif;

  --pls-content-max: 1500px;

  /* Bootstrap / AspStudio bridges — navy, not saturated blue */
  --bs-theme: var(--pls-navy);
  --bs-theme-rgb: 16, 45, 70;
  --bs-theme-color: #ffffff;
  --bs-primary: var(--pls-navy);
  --bs-primary-rgb: 16, 45, 70;
  --bs-success: var(--pls-success);
  --bs-success-rgb: 46, 125, 90;
  --bs-info: var(--pls-info);
  --bs-warning: var(--pls-warning);
  --bs-danger: var(--pls-danger);
  --bs-body-bg: var(--pls-page-bg);
  --bs-body-color: var(--pls-text-primary);
  --bs-body-font-family: var(--pls-font);
  --bs-font-sans-serif: var(--pls-font);
  --bs-border-color: var(--pls-border);
  --bs-border-radius: var(--pls-radius-sm);
  --bs-border-radius-lg: var(--pls-radius-lg);
  --bs-border-radius-xl: 12px;
  --bs-link-color: var(--pls-navy);
  --bs-link-hover-color: #0b2238;
  --bs-secondary-color: var(--pls-text-secondary);

  --bs-app-sidebar-width: var(--pls-sidebar-width);
  --bs-app-header-brand-width: var(--pls-sidebar-width);
  --bs-app-header-height: var(--pls-header-height);
  --bs-app-header-bg: var(--pls-white);
  --bs-app-header-box-shadow: none;
  --bs-app-header-input-bg: #f7f9fb;
  --bs-app-header-input-border: #e7ebf0;
  --bs-app-sidebar-bg: var(--pls-sidebar-bg);
  --bs-app-sidebar-border-color: var(--pls-border);
  --bs-app-sidebar-menu-header-color: var(--pls-text-muted);
  --bs-app-sidebar-menu-link-color: #546176;
  --bs-app-sidebar-menu-link-hover-bg: #f5f7f8;
  --bs-app-sidebar-menu-link-hover-color: #18212f;
  --bs-app-sidebar-menu-link-active-bg: #f0f4f7;
  --bs-app-sidebar-menu-link-active-color: var(--pls-navy);
  --bs-app-sidebar-menu-link-border-radius: var(--pls-radius-md);
  --bs-app-sidebar-menu-link-padding-y: 0.55rem;
  --bs-app-sidebar-menu-link-padding-x: 0.75rem;
  --bs-app-sidebar-content-mobile-bg: var(--pls-sidebar-bg);
}

html,
body {
  font-family: var(--pls-font);
  background: var(--pls-page-bg);
  color: var(--pls-text-primary);
  font-size: 14px;
  line-height: 1.5;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
}

body.pls-nav-lock {
  overflow: hidden;
}

#app.app {
  background: var(--pls-page-bg);
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--pls-font);
  color: var(--pls-text-primary);
  font-weight: 600;
  letter-spacing: -0.015em;
}

.pls-page-title,
.page-header {
  font-family: var(--pls-font);
  font-size: 28px;
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.025em;
  color: var(--pls-text-primary);
  margin: 0 0 0.2rem;
  overflow-wrap: anywhere;
}

.pls-page-subtitle {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--pls-text-secondary);
  margin-bottom: 0;
}

.pls-section-title {
  font-size: 17px;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--pls-text-primary);
}

.pls-card-title {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--pls-text-primary);
}

.pls-label {
  font-size: 13px;
  font-weight: 500;
  color: var(--pls-text-secondary);
}

.pls-value {
  font-size: 14px;
  font-weight: 500;
  color: var(--pls-text-primary);
}

.pls-meta {
  font-size: 12.5px;
  font-weight: 400;
  color: var(--pls-text-secondary);
}

.pls-eyebrow {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--pls-teal);
  margin-bottom: 0.25rem;
}

.pls-page-heading {
  margin-bottom: 1.25rem;
}

.pls-page-heading-split {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.pls-page-heading-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-left: auto;
}

.pls-page-heading h1,
.pls-page-heading .page-header,
.pls-page-heading .pls-page-title {
  margin-bottom: 0.2rem;
}

/* Serif remains only for optional branded/marketing statements. */
.pls-display {
  font-family: var(--pls-font-display);
  font-weight: 400;
  letter-spacing: -0.02em;
  color: var(--pls-navy);
}

.app-content .fw-bold {
  font-weight: 600 !important;
}

.app-content .fw-semibold {
  font-weight: 500 !important;
}

a {
  color: var(--pls-navy);
}

a:hover {
  color: #0b2238;
}

:focus-visible {
  outline: 2px solid rgba(15, 42, 68, 0.45);
  outline-offset: 2px;
}

.text-muted,
.text-body.text-opacity-50,
.text-body.text-opacity-75 {
  color: var(--pls-text-secondary) !important;
}

.pls-muted {
  color: var(--pls-text-secondary) !important;
}

code {
  color: var(--pls-navy);
  background: var(--pls-surface-subtle);
  border-radius: 4px;
  padding: 0.1em 0.35em;
}

.theme-panel {
  display: none;
}
