/* AMT Digital family texture — visual only; no application behaviour. */
:root {
  --amt-glass-bg: rgba(19, 29, 83, 0.66);
  --amt-glass-bg-strong: rgba(9, 23, 61, 0.88);
  --amt-glass-bg-soft: rgba(43, 47, 112, 0.48);
  --amt-glass-line: rgba(102, 224, 246, 0.42);
  --amt-glass-line-soft: rgba(121, 132, 231, 0.46);
  --amt-glass-highlight: rgba(255, 255, 255, 0.12);
  --amt-glass-shadow: 0 18px 54px rgba(0, 4, 28, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.08);
  --amt-glass-blur: 16px;
}

html { background: #050b2d; }

body {
  position: relative;
  isolation: isolate;
  min-height: 100vh;
  background:
    radial-gradient(circle at 10% 8%, rgba(51, 215, 244, 0.15), transparent 30rem),
    radial-gradient(circle at 92% 22%, rgba(105, 78, 224, 0.18), transparent 34rem),
    radial-gradient(circle at 35% 78%, rgba(17, 120, 194, 0.14), transparent 38rem),
    linear-gradient(145deg, #050b2d 0%, #0a1348 48%, #07142f 100%) fixed !important;
}

body::before {
  position: fixed;
  inset: -12%;
  z-index: -1;
  pointer-events: none;
  content: "";
  background:
    radial-gradient(ellipse at 16% 30%, rgba(49, 211, 241, 0.12) 0 10%, transparent 31%),
    radial-gradient(ellipse at 78% 18%, rgba(124, 87, 231, 0.17) 0 12%, transparent 34%),
    radial-gradient(ellipse at 70% 82%, rgba(33, 129, 210, 0.12) 0 13%, transparent 36%);
  filter: blur(14px);
  transform: rotate(-4deg) scale(1.04);
}

body::after {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  content: "";
  opacity: 0.14;
  background-image:
    repeating-linear-gradient(118deg, rgba(255, 255, 255, 0.024) 0 1px, transparent 1px 7px),
    repeating-linear-gradient(28deg, rgba(71, 223, 245, 0.018) 0 1px, transparent 1px 11px);
}

.amt-header,
.site-header {
  background: linear-gradient(135deg, rgba(5, 15, 50, 0.88), rgba(12, 25, 65, 0.78)) !important;
  border-bottom-color: rgba(66, 223, 244, 0.36) !important;
  box-shadow: 0 12px 34px rgba(0, 4, 25, 0.22), inset 0 1px 0 var(--amt-glass-highlight);
  -webkit-backdrop-filter: blur(var(--amt-glass-blur)) saturate(130%);
  backdrop-filter: blur(var(--amt-glass-blur)) saturate(130%);
}

/* Blur is limited to the major surfaces to protect mobile scrolling performance. */
:where(
  .linear-shell, .journey-progress, .amt-outputs, .dialog-card, .report-dialog,
  .amt-consent, .journey-status-panel, .pre-travel-checklist, .completion-screen,
  .auth-panel, .trend-dashboard, .country-panel, .country-detail, .travel-card,
  .wallet-card
) {
  background: linear-gradient(145deg, rgba(52, 58, 139, 0.38), rgba(8, 25, 67, 0.78)) !important;
  border-color: var(--amt-glass-line) !important;
  box-shadow: var(--amt-glass-shadow);
  -webkit-backdrop-filter: blur(var(--amt-glass-blur)) saturate(130%);
  backdrop-filter: blur(var(--amt-glass-blur)) saturate(130%);
}

/* Nested cards receive the texture without another expensive backdrop blur. */
:where(
  .workspace, .workspace-head, .live-result, .personal-result, .info-panel,
  .rating-card, .rating-grid > div, .check-row, details.assessment,
  .country-protection, .protect-row, .report-guidance, .privacy-before-health,
  .prep-summary, .card-gate, .card-recommendation, .report-summary,
  .clinical-detail, .yellow-fever-split, .return-review fieldset,
  .completion-screen dl, .status-card, .empty-state, .warning-state, .error-state
) {
  background: linear-gradient(145deg, rgba(48, 52, 122, 0.54), rgba(9, 27, 69, 0.82)) !important;
  border-color: var(--amt-glass-line-soft) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.045);
}

:where(
  .linear-shell, .amt-outputs, .journey-status-panel, .pre-travel-checklist,
  .completion-screen, .country-panel, .country-detail, .trend-dashboard,
  .travel-card, .wallet-card, .dialog-card, .report-dialog
) {
  position: relative;
  overflow: hidden;
}

:where(
  .linear-shell, .amt-outputs, .journey-status-panel, .pre-travel-checklist,
  .completion-screen, .country-panel, .country-detail, .trend-dashboard,
  .travel-card, .wallet-card, .dialog-card, .report-dialog
)::before {
  position: absolute;
  inset: 0 0 auto;
  height: 1px;
  pointer-events: none;
  content: "";
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.34), rgba(66, 223, 244, 0.28), transparent);
}

:where(input, select, textarea, .search-wrap) {
  background: rgba(5, 18, 53, 0.82) !important;
  color: var(--amt-text) !important;
  border-color: rgba(91, 209, 234, 0.52) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

:where(input, textarea)::placeholder { color: #b8c4dc !important; opacity: 1; }
option { background: #0a1738; color: var(--amt-text); }

:where(.linear-nav) {
  background: rgba(4, 12, 38, 0.82) !important;
  border-color: rgba(86, 202, 228, 0.24) !important;
}

:where(footer, .site-footer) {
  background: linear-gradient(90deg, transparent, rgba(21, 28, 79, 0.42), transparent) !important;
  border-color: rgba(86, 202, 228, 0.2) !important;
}

:where(.primary, .primary-action) {
  box-shadow: 0 8px 22px rgba(244, 195, 84, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.42);
}

:where(.amt-header nav .active, .site-nav .active, [aria-current="page"]) {
  border-color: var(--amt-cyan) !important;
  box-shadow: 0 0 0 1px rgba(66, 223, 244, 0.28), 0 15px 36px rgba(0, 4, 28, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.11);
}

/* Risk meaning remains explicit and is never conveyed by colour alone. */
.risk-low { --risk-color: var(--amt-success); }
.risk-moderate { --risk-color: var(--amt-warning); }
.risk-high { --risk-color: var(--amt-danger); }
.function-good { --risk-color: var(--amt-success); }
.function-moderate { --risk-color: var(--amt-warning); }
.function-poor { --risk-color: var(--amt-danger); }

@media (max-width: 760px) {
  :root { --amt-glass-blur: 12px; }
  body::before { inset: -8%; filter: blur(10px); transform: none; }
  :where(.linear-shell, .journey-status-panel, .pre-travel-checklist, .travel-card, .wallet-card) {
    box-shadow: 0 12px 34px rgba(0, 4, 28, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.08);
  }
}

@media (prefers-reduced-motion: reduce) {
  body::before { transform: none; }
}

@media (prefers-contrast: more) {
  :root { --amt-glass-line: rgba(111, 232, 251, 0.76); }
  :where(.linear-shell, .journey-status-panel, .pre-travel-checklist, .travel-card, .wallet-card, .dialog-card) {
    background: #09173f !important;
  }
}
