/* =====================================================================
   MHS — Design tokens
   Paleta extraída da identidade Moreira Health Systems.
   ===================================================================== */

:root {
  /* --- Marca --- */
  --navy-950: #04122B;
  --navy-900: #071B3A;
  --navy-800: #0B2A5B;
  --navy-700: #123A73;
  --navy-600: #1A4E96;
  --navy-500: #2A66B8;

  --teal-600: #0B8A8C;
  --teal-500: #0FA3A3;
  --teal-400: #17BEBB;
  --teal-300: #4FD6D2;
  --teal-200: #A6EBE8;

  --cinza-500: #9BA7B4;
  --cinza-400: #B7C1CC;
  --cinza-200: #DEE4EB;
  --cinza-100: #EEF2F7;

  --sucesso: #12A150;
  --alerta:  #D48806;
  --perigo:  #D93A3A;
  --info:    var(--teal-500);

  /* --- Tipografia --- */
  --fonte-titulo: 'Archivo', 'Archivo Black', 'Helvetica Neue', Arial, sans-serif;
  --fonte-texto:  'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --fonte-mono:   ui-monospace, 'SF Mono', 'JetBrains Mono', Menlo, monospace;

  --t-xs: clamp(.72rem, .70rem + .1vw, .78rem);
  --t-sm: clamp(.82rem, .80rem + .1vw, .90rem);
  --t-md: clamp(.95rem, .92rem + .15vw, 1.05rem);
  --t-lg: clamp(1.10rem, 1.0rem + .4vw, 1.35rem);
  --t-xl: clamp(1.45rem, 1.2rem + 1.1vw, 2.1rem);
  --t-2xl: clamp(1.9rem, 1.4rem + 2.2vw, 3.2rem);
  --t-3xl: clamp(2.4rem, 1.5rem + 3.8vw, 4.6rem);

  /* --- Espaçamento e formas --- */
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 22px;
  --r-xl: 32px;
  --r-full: 999px;

  --secao: clamp(72px, 9vw, 140px);
  --container: 1240px;
  --gutter: clamp(18px, 4vw, 40px);

  --transicao: 320ms cubic-bezier(.22, 1, .36, 1);
  --mola: 520ms cubic-bezier(.34, 1.56, .64, 1);
}

/* ---------------------------------------------------------------------
   Tema CLARO (padrão)
   --------------------------------------------------------------------- */
:root,
[data-tema="claro"] {
  --fundo:          #F6F8FC;
  --fundo-alt:      #FFFFFF;
  --fundo-elevado:  #FFFFFF;
  --fundo-sutil:    #EEF2F8;
  --fundo-inverso:  var(--navy-900);

  --texto:          #0C1B33;
  --texto-suave:    #4A5A72;
  --texto-fraco:    #7A8AA0;
  --texto-inverso:  #FFFFFF;

  --borda:          #DCE4EF;
  --borda-forte:    #C3CFDF;

  --marca:          var(--navy-800);
  --marca-contraste:#FFFFFF;
  --acento:         var(--teal-500);
  --acento-suave:   rgba(15, 163, 163, .12);

  --sombra-sm: 0 1px 2px rgba(11, 42, 91, .06), 0 2px 6px rgba(11, 42, 91, .05);
  --sombra-md: 0 4px 12px rgba(11, 42, 91, .08), 0 12px 28px rgba(11, 42, 91, .07);
  --sombra-lg: 0 18px 50px rgba(11, 42, 91, .14);
  --brilho:    0 0 0 1px rgba(15, 163, 163, .22), 0 8px 30px rgba(15, 163, 163, .18);

  --vidro:      rgba(255, 255, 255, .72);
  --vidro-borda:rgba(11, 42, 91, .10);

  --grade: rgba(11, 42, 91, .06);
  --logo-claro: none;
  --logo-escuro: block;
  color-scheme: light;
}

/* ---------------------------------------------------------------------
   Tema ESCURO
   --------------------------------------------------------------------- */
[data-tema="escuro"] {
  --fundo:          #061223;
  --fundo-alt:      #0A1C33;
  --fundo-elevado:  #0E2440;
  --fundo-sutil:    #0B1E38;
  --fundo-inverso:  #FFFFFF;

  --texto:          #E9F0FA;
  --texto-suave:    #A9BAD1;
  --texto-fraco:    #75879F;
  --texto-inverso:  var(--navy-900);

  --borda:          rgba(160, 190, 225, .14);
  --borda-forte:    rgba(160, 190, 225, .26);

  --marca:          #FFFFFF;
  --marca-contraste:var(--navy-900);
  --acento:         var(--teal-400);
  --acento-suave:   rgba(23, 190, 187, .14);

  --sombra-sm: 0 1px 2px rgba(0, 0, 0, .4);
  --sombra-md: 0 8px 24px rgba(0, 0, 0, .45);
  --sombra-lg: 0 24px 60px rgba(0, 0, 0, .55);
  --brilho:    0 0 0 1px rgba(23, 190, 187, .3), 0 10px 40px rgba(23, 190, 187, .22);

  --vidro:      rgba(10, 28, 51, .68);
  --vidro-borda:rgba(160, 190, 225, .14);

  --grade: rgba(160, 200, 240, .07);
  --logo-claro: block;
  --logo-escuro: none;
  color-scheme: dark;
}

/* Respeita a preferência do sistema quando o usuário não escolheu tema */
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="claro"]) {
    --fundo:          #061223;
    --fundo-alt:      #0A1C33;
    --fundo-elevado:  #0E2440;
    --fundo-sutil:    #0B1E38;
    --fundo-inverso:  #FFFFFF;
    --texto:          #E9F0FA;
    --texto-suave:    #A9BAD1;
    --texto-fraco:    #75879F;
    --texto-inverso:  var(--navy-900);
    --borda:          rgba(160, 190, 225, .14);
    --borda-forte:    rgba(160, 190, 225, .26);
    --marca:          #FFFFFF;
    --marca-contraste:var(--navy-900);
    --acento:         var(--teal-400);
    --acento-suave:   rgba(23, 190, 187, .14);
    --sombra-sm: 0 1px 2px rgba(0, 0, 0, .4);
    --sombra-md: 0 8px 24px rgba(0, 0, 0, .45);
    --sombra-lg: 0 24px 60px rgba(0, 0, 0, .55);
    --brilho:    0 0 0 1px rgba(23, 190, 187, .3), 0 10px 40px rgba(23, 190, 187, .22);
    --vidro:      rgba(10, 28, 51, .68);
    --vidro-borda:rgba(160, 190, 225, .14);
    --grade: rgba(160, 200, 240, .07);
    --logo-claro: block;
    --logo-escuro: none;
    color-scheme: dark;
  }
}

/* ---------------------------------------------------------------------
   Reset
   --------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--fonte-texto);
  font-size: var(--t-md);
  line-height: 1.65;
  color: var(--texto);
  background: var(--fundo);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

h1, h2, h3, h4, h5 {
  font-family: var(--fonte-titulo);
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -.022em;
  margin: 0 0 .5em;
  color: var(--texto);
}

p { margin: 0 0 1em; }
a { color: inherit; text-decoration: none; }
img, svg, video, canvas { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; color: inherit; }
ul, ol { margin: 0; padding: 0; list-style: none; }
table { border-collapse: collapse; width: 100%; }

::selection { background: var(--acento); color: #fff; }

:focus-visible {
  outline: 2px solid var(--acento);
  outline-offset: 3px;
  border-radius: 4px;
}

/* Barra de rolagem discreta */
* { scrollbar-width: thin; scrollbar-color: var(--borda-forte) transparent; }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb {
  background: var(--borda-forte);
  border-radius: var(--r-full);
  border: 3px solid var(--fundo);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Utilitários compartilhados */
.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.logo-claro  { display: var(--logo-claro); }
.logo-escuro { display: var(--logo-escuro); }
