/* =========================================================================
   imob-loteamento - tokens de design
   Única fonte de cor, tipografia, espacamento e elevação do projeto.
   Nenhum hex pode existir fora deste arquivo (exceto seeds e branding.css).
   A camada de marca (--brand-*, --accent) e sobrescrita por /branding.css,
   gerado por tenant a partir da logo.
   ========================================================================= */

:root {
  /* ---------- Neutros (fixos) ---------- */
  --n-canvas:       #EEF0EE;
  --n-surface:      #FFFFFF;
  --n-sunken:       #E4E7E4;
  --n-line:         #D3D8D4;
  --n-line-strong:  #B4BBB6;
  --n-ink:          #101418;
  --n-ink-2:        #4A5158;
  --n-ink-3:        #79818A;
  --n-inverse:      #FFFFFF;

  /* ---------- Situação do lote (fixos - convenção de planta) ---------- */
  --st-available:      #2E9E6B;
  --st-available-soft: #E6F4ED;
  --st-available-ink:  #1C6644;

  --st-reserved:       #D69A16;
  --st-reserved-soft:  #FBF1DC;
  --st-reserved-ink:   #8A6209;

  --st-proposal:       #7A5AF8;
  --st-proposal-soft:  #EEEAFE;
  --st-proposal-ink:   #4B33B8;

  --st-sold:           #C9453D;
  --st-sold-soft:      #FAE8E7;
  --st-sold-ink:       #8C2A24;

  --st-settled:        #17607A;
  --st-settled-soft:   #E1EFF3;
  --st-settled-ink:    #0E4053;

  --st-blocked:        #8A9299;
  --st-blocked-soft:   #EDEFF0;
  --st-blocked-ink:    #545C63;

  /* ---------- Marca (fallback da plataforma; sobrescrito por /branding.css) --- */
  --brand-50:  #EAF1F5;
  --brand-100: #CFE0E9;
  --brand-200: #A6C6D6;
  --brand-300: #7BA9BF;
  --brand-400: #4D8AA5;
  --brand-500: #2F6C88;
  --brand-600: #1F4E63;
  --brand-700: #17404F;
  --brand-800: #10303C;
  --brand-900: #0A2029;
  --brand:     var(--brand-600);
  /* Cor crua da logo; o /branding.css a sobrescreve por tenant. */
  --brand-seed: var(--brand-600);
  --logo-bg: var(--brand-600);
  --logo-bg-ink: var(--brand-ink);
  --brand-ink: #FFFFFF;
  --brand-soft: var(--brand-50);
  /* Cor de link e de texto de marca sobre fundo claro. Em marca clara (amarelo,
     lima, ciano-claro) o brand puro reprova no contraste; por isso este token
     existe separado e o /branding.css o aponta para o brand-800. */
  --brand-link: var(--brand-700);

  --accent:     #B08A3E;
  --accent-ink: #101418;

  /* ---------- Painel master (DF Marques) ----------
     Valores copiados do ORBI, que e a referência visual que o Fabinho passou.
     A DF Marques e administradora, não imobiliária: o painel master **não segue
     o rito de cor de nenhum cliente** e por isso estes tokens não são
     sobrescritos pelo /branding.css.

     Ficam aqui, e não no platform.css, pela regra do projeto: nenhum hex vive
     fora deste arquivo. */
  /* Tipografia do operador: Schibsted Grotesk nos títulos e nos números,
     Instrument Sans no texto, mono no dado técnico. Nenhuma das duas aparece
     no lado do cliente -- e essa e a intenção. */
  --mst-ff-display: "Schibsted Grotesk", "Archivo", system-ui, sans-serif;
  --mst-ff-body:    "Instrument Sans", system-ui, sans-serif;
  --mst-ff-data:    "IBM Plex Mono", ui-monospace, monospace;

  /* Azul da referência (ORBI), valor por valor. O painel do operador copia o
     ORBI porque foi essa a referência que o Fabinho passou. */
  --mst-primary-50:  #EFF6FF;
  --mst-primary-100: #DBEAFE;
  --mst-primary-500: #2563EB;
  --mst-primary-600: #1D4ED8;
  --mst-primary-700: #1E40AF;
  --mst-focus-ring:  rgb(37 99 235 / 0.12);

  /* Escala de cinza do ORBI (slate), inclusive a borda e a borda forte. */
  --mst-gray-50:  #F8FAFC;
  --mst-gray-100: #F1F5F9;
  --mst-gray-200: #E2E8F0;
  --mst-gray-300: #CBD5E1;
  --mst-gray-400: #94A3B8;
  --mst-gray-500: #64748B;
  --mst-gray-600: #475569;
  --mst-gray-700: #334155;
  --mst-gray-800: #1E293B;
  --mst-gray-900: #0F172A;

  /* Faixa escura: a mesma tinta da navegação, para a leitura do dia e o
     cabeçalho da imobiliária pertencerem ao mesmo instrumento. */
  --mst-nav-top:    #14262B;
  --mst-nav-bottom: #0A171A;
  --mst-nav-glow:   rgba(14, 110, 98, 0.28);
  --mst-nav-ink:    rgba(255, 255, 255, 0.64);
  --mst-nav-ink-icon: rgba(255, 255, 255, 0.42);
  --mst-nav-ink-hover: rgba(255, 255, 255, 0.92);
  --mst-nav-ink-label: rgba(255, 255, 255, 0.36);
  --mst-nav-hover:  rgba(255, 255, 255, 0.06);
  --mst-nav-active-from: rgba(45, 176, 156, 0.26);
  --mst-nav-active-to:   rgba(45, 176, 156, 0.06);
  --mst-nav-active-icon: #6FD3C0;
  --mst-nav-active-bar:  #2DB09C;
  --mst-nav-line:   rgba(255, 255, 255, 0.09);
  /* A faixa do conteúdo e tinta azul-escura, não a mesma do menu: o verde
     fica só na navegação, por pedido do Fabinho. */
  --mst-console-top:    #16203A;
  --mst-console-bottom: #0B1222;
  --mst-console-glow:   rgba(62, 91, 150, 0.30);
  --mst-console-line: rgba(255, 255, 255, 0.14);
  --mst-console-ink:  rgba(255, 255, 255, 0.56);
  --mst-console-mark: #9DB2E0;

  --mst-shadow-card: 0 1px 3px 0 rgb(0 0 0 / 0.08), 0 1px 2px -1px rgb(0 0 0 / 0.06);
  --mst-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --mst-radius-sm: 6px;
  --mst-radius-md: 10px;
  --mst-radius-lg: 14px;

  --mst-on-dark:  #FFFFFF;
  --mst-success:  #2563EB;
  --mst-success-ink: #1D4ED8;
  --mst-warning:  #B8730B;
  --mst-danger:   #B4291F;
  --mst-danger-ink: #A02219;
  --mst-purple:   #6B5BC7;
  --mst-serie-1:  #2563EB;
  --mst-serie-2:  #6B5BC7;
  --mst-serie-3:  #B8730B;
  --mst-serie-4:  #B4291F;
  --mst-serie-5:  #7C8AA8;
  --mst-serie-6:  #60A5FA;

  /* Etiqueta sem caixa: cor no ponto e no texto, fundo só onde precisa pesar. */
  --mst-tag-blue-bg:   #EEF1F7;  --mst-tag-blue-ink:   #24345C;  --mst-tag-blue-line:   #D5DDEB;
  --mst-tag-green-bg:  #EEF1F7;  --mst-tag-green-ink:  #2A3F6D;  --mst-tag-green-line:  #D5DDEB;
  --mst-tag-amber-bg:  #FBF3E6;  --mst-tag-amber-ink:  #8C5806;  --mst-tag-amber-line:  #F0DDBC;
  --mst-tag-purple-bg: #F1EFFB;  --mst-tag-purple-ink: #4A3BA8;  --mst-tag-purple-line: #DCD7F3;
  --mst-tag-red-bg:    #FAEDEC;  --mst-tag-red-ink:    #A02219;  --mst-tag-red-line:    #F0D3D0;

  /* ---------- Tipografia ---------- */
  /* Mesma tipografia da referência (ORBI) nos dois lados do sistema. O que
     separa o painel do operador da tela do cliente é a **cor**, que vem da
     logo de cada imobiliária -- não a fonte. */
  --ff-display: "Schibsted Grotesk", "Archivo", system-ui, sans-serif;
  --ff-body:    "Instrument Sans", "Inter", system-ui, sans-serif;
  --ff-data:    "IBM Plex Mono", ui-monospace, monospace;

  --fs-display: 2.25rem;
  --fs-h1:      1.625rem;
  --fs-h2:      1.25rem;
  --fs-h3:      1.0625rem;
  --fs-body:    0.9375rem;
  --fs-sm:      0.8125rem;
  --fs-xs:      0.6875rem;
  --fs-data:    0.875rem;

  --lh-tight:  1.15;
  --lh-normal: 1.55;

  --tracking-display: -0.03em;
  --tracking-label:    0.08em;

  /* ---------- Espacamento ---------- */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 24px;
  --sp-6: 32px;
  --sp-7: 48px;
  --sp-8: 64px;

  /* ---------- Raio ---------- */
  --r-xs:   2px;
  --r-sm:   4px;
  --r-md:   8px;
  --r-lg:  12px;
  --r-full: 999px;

  /* ---------- Elevação (borda antes de sombra) ---------- */
  --sh-1: 0 1px 2px rgba(16, 20, 24, .06);
  --sh-2: 0 4px 12px rgba(16, 20, 24, .08);
  --sh-3: 0 16px 40px rgba(16, 20, 24, .14);

  /* ---------- Layout ---------- */
  --sidebar-w:           248px;
  --sidebar-w-collapsed:  64px;
  --topbar-h:             56px;
  /* Faixa da logo na sidebar. Maior que a topbar: logo com assinatura embaixo
     não se lê em 56px de caixa. */
  --brand-band-h:         88px;
  /* Altura útil do cabeçalho de página: título, subtitulo e a margem
     abaixo dele. Quem preenche a viewport (a planta, o painel da spec
     12) precisa descontar isto, senao o rodapé do bloco cai abaixo da
     dobra e leva junto o que estiver ancorado nele. */
  --page-header-h:        84px;
  --content-max:        1440px;

  /* ---------- Movimento ---------- */
  --ease: cubic-bezier(.2, .8, .2, 1);
  --dur-fast:   120ms;
  --dur-normal: 200ms;
  --dur-slow:   320ms;

  /* ---------- Foco ---------- */
  --focus-ring: 2px solid var(--brand);
  --focus-offset: 2px;

  /* ---------- Camadas ---------- */
  --z-sticky:  100;
  /* O Leaflet desenha até 800 (panes até 700, controles em 800). A
     interface sobre a planta precisa ficar acima disso. */
  --z-map-ui:  900;
  --z-drawer:  200;
  --z-modal:   300;
  --z-toast:   400;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --dur-fast: 0ms;
    --dur-normal: 0ms;
    --dur-slow: 0ms;
  }
}
