/*
  app.css — folha global do host web.

  ⚠ MUDANCA DE BASE (ciclo de consolidacao do design system MAIA):
  este arquivo NAO define mais um tema proprio. Antes ele publicava duas paletas completas
  (laranja/marrom claro em `.light-theme`, laranja escuro em `.dark-theme`) que competiam com
  os tokens MAIA de maia-design-system.css — duas verdades para a mesma tela.

  Agora existe UM sistema de tema: o MAIA. Os nomes legados (--primary-*, --text-*,
  --secoundary-*, --primary-brown-*, ...) continuam existindo, mas como ALIASES que apontam
  para o token MAIA equivalente POR PAPEL. Assim:
    · nenhuma pagina legada quebra (todo nome que ela consome continua resolvendo);
    · nenhuma tela cai no dark laranja antigo — o alias segue o tema MAIA ativo;
    · a rampa legada inverte junto com o tema (era isso que faltava: --primary-green-500 so
      existia em .light-theme e, no escuro, virava declaracao INVALIDA — foi o bug que apagou
      o fundo do CTA de cadastro).

  PLANO DE REMOCAO DOS ALIASES (nao deixar virar permanente):
    1. cada pagina migrada troca `var(--legado)` por `var(--ds-*)` no mesmo change;
    2. quando o grep de um nome legado zerar, a linha correspondente sai daqui;
    3. o bloco inteiro morre quando o inventario de paginas migradas fechar.
  Inventario de componentes, lacunas e divida: src/Web/DESIGN-SYSTEM.md.

  A ordem de carregamento em App.razor e: app.css -> bootstrap -> maia-design-system.css ->
  bundle de CSS isolado. Os aliases abaixo referenciam --ds-* que so e declarado depois; isso
  funciona porque var() resolve em computed-value time, nao na ordem de parse.
*/

/* ===================================================================
   PALETA CRUA LEGADA — fica em :root (independente de tema).
   Antes vivia so dentro de .light-theme: sob .dark-theme estas chaves ficavam UNDEFINED e
   qualquer `var()` que as usasse virava declaracao invalida, derrubando a propriedade toda.
   Mantidas porque paginas nao migradas ainda as consomem como valor literal.
   =================================================================== */
:root {
    --primary-brown-50: #FFF8F5;
    --primary-brown-100: #FFE1D6;
    --primary-brown-200: #F5BBA6;
    --primary-brown-300: #E09175;
    --primary-brown-400: #CC785A;
    --primary-brown-500: #B86142;
    --primary-brown-600: #A3573B;
    --primary-brown-700: #7A412C;
    --primary-brown-800: #522B1D;
    --primary-brown-900: #3D2016;
    --primary-brown-950: #29160F;

    --primary-green-50: #F5FFFC;
    --primary-green-100: #D6FFF1;
    --primary-green-200: #ADFFE4;
    --primary-green-300: #85FFD6;
    --primary-green-400: #3FE0AB;
    --primary-green-500: #08CC8B;
    --primary-green-600: #00A36D;
    --primary-green-700: #007A52;
    --primary-green-800: #005236;
    --primary-green-900: #003D29;
    --primary-green-950: #00291B;

    --secondary-orange-50: #FFF9F5;
    --secondary-orange-100: #FFE5D6;
    --secondary-orange-200: #FFB185;
    --secondary-orange-300: #E07A3F;
    --secondary-orange-400: #B85116;
    --secondary-orange-500: #A34814;
    --secondary-orange-600: #7A360F;
    --secondary-orange-700: #662D0C;
    --secondary-orange-800: #52240A;
    --secondary-orange-900: #3D1B07;
    --secondary-orange-950: #291205;

    --secondary-pink-50: #FFF5F7;
    --secondary-pink-100: #FFD6E0;
    --secondary-pink-200: #FFADC2;
    --secondary-pink-300: #E07590;
    --secondary-pink-400: #CC5A76;
    --secondary-pink-500: #B8425F;
    --secondary-pink-600: #A33B55;
    --secondary-pink-700: #7A2C40;
    --secondary-pink-800: #521D2A;
    --secondary-pink-900: #3D1620;
    --secondary-pink-950: #290F15;

    --secondary-blue-50: #F5FBFF;
    --secondary-blue-100: #D6EEFF;
    --secondary-blue-200: #ADDDFF;
    --secondary-blue-300: #85CCFF;
    --secondary-blue-400: #45ABF5;
    --secondary-blue-500: #0A93F5;
    --secondary-blue-600: #005FA3;
    --secondary-blue-700: #003C66;
    --secondary-blue-800: #00243D;
    --secondary-blue-900: #001829;
    --secondary-blue-950: #000C14;

    --secondary-red-50: #FFF5F5;
    --secondary-red-100: #FFD6D6;
    --secondary-red-200: #FFADAD;
    --secondary-red-300: #FF8585;
    --secondary-red-400: #FF5C5C;
    --secondary-red-500: #FF3333;
    --secondary-red-600: #B80000;
    --secondary-red-700: #7A0000;
    --secondary-red-800: #7A0000;
    --secondary-red-900: #3D0000;
    --secondary-red-950: #290000;

    --secondary-white-50: #FFFFFF;
    --secondary-white-100: #F7F7F7;
    --secondary-white-200: #E3E3E3;
    --secondary-white-300: #A3A3A3;
    --secondary-white-400: #737373;
    --secondary-white-500: #3A3A3A;
}

/* ===================================================================
   ALIASES LEGADO -> MAIA.
   Declarados em :root TAMBEM (nao so nas classes de tema) para que qualquer no fora de
   `.page` — body, portais, overlays — resolva os nomes legados em vez de herdar o vazio.
   Como os alvos --ds-* invertem por tema, o alias inverte junto: e isso que impede uma tela
   nao migrada de cair no laranja escuro antigo.

   Criterio do mapeamento e o PAPEL observado no consumidor, nao a posicao na rampa:
     · rampa de texto legada (10 claro -> 900 escuro) vira a rampa de foreground MAIA;
     · --text-10/-20 sao usados como FUNDO (SelectInput), entao viram superficie;
     · --primary-* e --primary-green-* eram a cor de ACAO (borda de switch, fundo de botao,
       link), entao viram a familia de acento;
     · --primary-brown-* era texto escuro sobre claro, entao vira foreground;
     · --secondary-red/pink -> perigo, --secondary-orange -> aviso, --secondary-blue -> info.
   =================================================================== */
:root,
.dark-theme,
.light-theme {
    /* --- foreground --- */
    --text-900: var(--ds-text-bright);
    --text-800: var(--ds-text-primary);
    --text-700: var(--ds-text-primary);
    --text-600: var(--ds-text-secondary);
    --text-500: var(--ds-text-secondary);
    --text-400: var(--ds-text-tertiary);
    --text-300: var(--ds-text-tertiary);
    --text-200: var(--ds-text-muted);
    --text-100: var(--ds-text-muted);
    --text-90: var(--ds-text-dim);
    --text-80: var(--ds-text-dim);
    --text-70: var(--ds-text-dim);
    --text-60: var(--ds-text-dim);
    --text-50: var(--ds-text-faint);
    --text-40: var(--ds-text-faint);
    --text-30: var(--ds-text-secondary); /* usado como cor de link/botao, nao como fundo */
    /* usados como FUNDO em SelectInput/SelectInputAuto */
    --text-20: var(--ds-surface);
    --text-10: var(--ds-surface);

    /* --- acao / acento (era a rampa laranja) --- */
    --primary-900: var(--ds-accent);
    --primary-800: var(--ds-accent);
    --primary-700: var(--ds-accent);
    --primary-600: var(--ds-accent);
    --primary-500: var(--ds-accent-hover);
    --primary-400: var(--ds-accent-hover);
    --primary-300: var(--ds-accent-hover);
    --primary-200: var(--ds-accent);
    --primary-100: var(--ds-accent-surface-strong);
    --primary-90: var(--ds-accent-surface-strong);
    --primary-80: var(--ds-accent-surface);
    --primary-70: var(--ds-accent-surface);
    --primary-60: var(--ds-accent-surface);
    --primary-50: var(--ds-accent-surface);
    --primary-40: var(--ds-accent-surface-soft);
    --primary-30: var(--ds-accent-surface-soft);
    --primary-20: var(--ds-accent-surface-soft);
    --primary-10: var(--ds-accent-surface-soft);

    /* --- secundaria (typo historica "secoundary", preservada: ha consumidores) --- */
    --secoundary-900: var(--ds-background);
    --secoundary-800: var(--ds-surface);
    --secoundary-700: var(--ds-surface);
    --secoundary-600: var(--ds-surface-sunken);
    --secoundary-500: var(--ds-surface-sunken);
    --secoundary-400: var(--ds-surface-elevated);
    --secoundary-300: var(--ds-surface-elevated);
    --secoundary-200: var(--ds-surface-row);
    --secoundary-100: var(--ds-surface-row);
    --secoundary-90: var(--ds-surface-row);
    --secoundary-80: var(--ds-surface-row);
    --secoundary-70: var(--ds-surface-sunken-soft);
    --secoundary-60: var(--ds-surface-sunken-soft);
    --secoundary-50: var(--ds-surface-sunken-soft);
    --secoundary-40: var(--ds-surface-sunken-faint);
    --secoundary-30: var(--ds-surface-sunken-faint);
    --secoundary-20: var(--ds-surface-sunken-faint);
    --secoundary-10: var(--ds-surface-sunken-faint);

    /* --- marrom: era texto escuro sobre fundo claro --- */
    --primary-brown-950: var(--ds-text-bright);
    --primary-brown-900: var(--ds-text-primary);
    --primary-brown-800: var(--ds-text-secondary);
    --primary-brown-700: var(--ds-text-secondary);
    --primary-brown-600: var(--ds-text-tertiary);
    --primary-brown-500: var(--ds-text-tertiary);
    --primary-brown-400: var(--ds-text-muted);
    --primary-brown-300: var(--ds-text-muted);
    --primary-brown-200: var(--ds-border-strong);
    --primary-brown-100: var(--ds-border);
    --primary-brown-50: var(--ds-surface);

    /* --- verde: era a cor de acao (link "esqueci minha senha", fundo de CTA) --- */
    --primary-green-950: var(--ds-accent-deep);
    --primary-green-900: var(--ds-accent-deep);
    --primary-green-800: var(--ds-accent);
    --primary-green-700: var(--ds-accent);
    --primary-green-600: var(--ds-accent);
    --primary-green-500: var(--ds-accent);
    --primary-green-400: var(--ds-accent-hover);
    --primary-green-300: var(--ds-accent-hover);
    --primary-green-200: var(--ds-accent-surface-strong);
    --primary-green-100: var(--ds-accent-surface);
    --primary-green-50: var(--ds-accent-surface-soft);

    /* --- semaforo --- */
    --red-300: var(--ds-danger-text);
    --border-color: var(--ds-border);
    --background-1: var(--ds-background);
}

/* ===================================================================
   BASE
   =================================================================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    /* Era 'Poppins' fixo. A familia agora vem do token — uma so fonte de verdade para toda a
       aplicacao, e o fallback do proprio token cobre o caso de a face nao carregar. */
    font-family: var(--ds-font-sans);
}

html, body {
    /* Sem isto o canvas do documento fica branco e aparece no overscroll, entre navegacoes e
       antes do CSS isolado do layout pintar — um flash claro no meio de uma UI escura. */
    background-color: var(--ds-background);
    color: var(--ds-text-primary);
    /* Repetido aqui de proposito: o seletor `*` acima tem especificidade ZERO e perde para o
       `body { font-family: var(--bs-body-font-family) }` do Bootstrap, que e (0,0,1). Sem esta
       linha o texto do proprio <body> caia em system-ui enquanto todo o resto usava a fonte
       MAIA. */
    font-family: var(--ds-font-sans);
}

fieldset {
    outline: none;
    border: none;
    appearance: none;
}

a, button {
    outline: none !important;
    text-decoration: none !important;
    color: var(--ds-text-secondary);
}

    a:hover, button:hover {
        cursor: pointer;
    }

h1:focus {
    outline: none;
}

/* Foco visivel para navegacao por teclado. O `outline: none !important` acima (herdado do
   codigo antigo) apaga o anel padrao do browser em TODO link e botao; sem esta regra o app
   fica inoperavel por teclado. :focus-visible so aparece em navegacao por teclado, entao nao
   volta a poluir o clique de mouse. */
a:focus-visible,
button:focus-visible {
    outline: 2px solid var(--ds-accent) !important;
    outline-offset: 2px;
}

.validation-message {
    color: var(--ds-danger-text);
    font-family: var(--ds-font-sans);
    font-size: var(--ds-font-size-body-small);
    font-style: normal;
    font-weight: var(--ds-font-weight-medium);
    line-height: var(--ds-line-height-snug);
}

/* ⚠ Removidas as regras globais `.valid.modified { outline: 1px solid #26b050 }` e
   `.invalid { outline: 1px solid #e50000 }`. O TextInput agora propaga as classes de
   validacao do Blazor para o <input>; com aquelas regras ainda vivas, todo campo tocado
   ganharia um contorno verde/vermelho de 1px por cima do desenho do design system. O estado
   invalido e desenhado pelo proprio componente (borda + aria-invalid). */

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: var(--ds-checkbox-border);
}

.leaflet-container {
    border-radius: var(--ds-radius-lg) !important;
}

.form input[disabled] {
    opacity: .5;
    cursor: not-allowed;
}

.container-informations {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    gap: var(--ds-space-8);
    min-width: 100%;
    width: 100%;
}

    .container-informations .box-inputs {
        align-items: flex-start;
        border-radius: var(--ds-radius-6xl);
        display: flex;
        flex-direction: column;
        gap: 1.5vw;
        height: min-content;
        justify-content: center;
        padding: var(--ds-space-8);
        width: 100%;
    }

.input-secondary {
    display: flex;
    width: 100%;
    align-content: center;
    align-items: center;
    justify-content: center;
}

.btn:hover {
    cursor: pointer !important;
    opacity: .5 !important;
}

.space-between-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-direction: column;
    height: 100%;
    width: 100%;
    gap: var(--ds-space-8);
    padding-bottom: var(--ds-space-10);
}
