/* ============================================================
   my bygga - stylesheet
   Identidade 2026, alinhada com o site público (bygga.pt).
   Fonte dos tokens: bygga - especificação de marca (v1.1).

   O vermelho nunca é fundo dominante. É o único ponto quente
   numa composição neutra: links ativos, sublinhados, filetes,
   numeração e estados de foco. O --cor-acento-tinte é o único
   uso do vermelho em área.

   Sem sombras, sem gradientes, sem cantos muito arredondados,
   sem animações decorativas.
   ============================================================ */

/* ---- Inter, servida pela própria página (400 e 600 apenas) ---- */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/inter-latin-400-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,
                 U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/inter-latin-ext-400-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
                 U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF,
                 U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/inter-latin-600-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,
                 U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/inter-latin-ext-600-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
                 U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF,
                 U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ============================================================
   TOKENS
   ============================================================ */
:root {
  /* base, comum às três marcas do sistema */
  --cor-base: #1D1F24;
  --cor-fundo: #F7F6F3;
  --cor-texto-secundario: #6B6E76;
  --cor-linha: #D9D9D6;

  /* acento bygga */
  --cor-acento: #CD001A;
  --cor-acento-tinte: #F8E6E8;   /* único uso do vermelho em área */

  /* Confirmação de envio, apenas na área reservada - não consta da
     especificação de marca (que só prevê o vermelho), carece de
     confirmação. O tinte do acento é vermelho e, numa mensagem de
     sucesso, lê-se como erro: daí um par próprio. */
  --cor-sucesso-tinte: #EAF1E7;
  --cor-sucesso-texto: #2C5435;

  /* Aviso e erro - decisão do Filipe (17/08/2026), fechando o ponto que a
     especificação deixava em aberto ("a definir com o utilizador").

     Aviso: o âmbar que já servia os prazos urgentes do monitor Participa,
     mantido tal e qual para não haver dois âmbares na plataforma. O tinte
     é mais claro do que o par de sucesso porque #B45309 sobre #FBF0E3 dava
     4,47:1 - a um fio dos 4,5:1 do AA; com #FCF3E9 passa a 4,58:1.

     Erro: o acento escurecido. Não se usa #CD001A tal e qual porque um
     alerta de falha ficaria com a cor da marca - e ao lado de um botão de
     acento deixa de se distinguir aviso de identidade. */
  --cor-aviso-tinte: #FCF3E9;
  --cor-aviso-texto: #B45309;   /* 4,58:1 sobre o tinte */
  --cor-erro-tinte: #FBEAEC;
  --cor-erro-texto: #8E0012;    /* 8,38:1 sobre o tinte */

  /* Sobre carvão usa-se o mesmo vermelho de marca, por decisão expressa do
     Filipe no site público. Nota: #CD001A dá 2,83:1 sobre #1D1F24, abaixo
     dos 4,5:1 que o texto corrente exige. Onde é rótulo, a leitura é
     assegurada pelo peso e pelo corpo; onde é anel de foco, a espessura
     sobe para 3px para compensar. Numa plataforma com tabelas e estados,
     não estender esta opção a valores negativos sem confirmar. */
  --cor-acento-sobre-carvao: #CD001A;

  /* escala neutra, para dados e hierarquia */
  --dados-1: #1D1F24;
  --dados-2: #43464D;
  --dados-3: #6B6E76;
  --dados-4: #A3A5AA;
  --dados-5: #D9D9D6;

  --fonte: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;

  --largura-max: 1200px;
  --goteira: 32px;
  --margem: 40px;
  --altura-header: 72px;

  --transicao: 160ms ease;
}

/* Algarismos tabulares: tabelas, valores monetários, percentagens e
   painéis de indicadores - para se comparar em coluna. */
.tabular-nums, .valor-monetario, .valor-percentagem,
table td, table th {
  font-variant-numeric: tabular-nums;
}

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

