/* ARQUIVO GERADO por scripts/gerar-tokens.mjs a partir de tokens/tokens.json — NÃO EDITE À MÃO; edite o JSON e regenere */

/* ===========================================================================
   Shalom DS — tema: Capela Kyrios (Adoração perpétua e Vigília)

   A identidade da sala da Capela, aprovada pelo PO em 29/10/2026 e em uso nas
   telas da Capela do Portal. Diferente dos temas de evento, este não tem data
   para aposentar: vale enquanto a sala for esta.

   O que o tema faz:
     - primitivos próprios (prefixo --sh-ky-), todos aqui;
     - remapeia a camada semântica, inclusive a superfície inversa;
     - Fraunces nos títulos;
     - o grão do reboco no fundo da página (--sh-surface-page-texture).
   O que o tema não faz:
     - não muda forma, ritmo nem sombra: são as do sistema;
     - não tem regra de componente, hex fora dos primitivos nem !important.

   Uso:  <html data-sh-theme="kyrios">
         <main data-sh-theme="kyrios">   (escopo local também vale)
   =========================================================================== */

@layer sh.theme {
  [data-sh-theme="kyrios"] {
    /* ------------------------------------------------- primitivos do tema */
    /* A Capela vem da sala, não do vitral: parede de reboco areia e granulada,
       cadeiras e porta de nogueira, letras de latão. Paleta aprovada pelo PO em
       29/10/2026 e em uso nas telas da Capela do Portal desde 31/10. Todo hex do
       tema mora aqui. O latão claro nunca carrega texto: texto de acento é o
       latão escuro. Vago é o horário sem adorador, e também o destrutivo. */
    --sh-ky-reboco:          #F3EDE3;  /* a página: a parede da sala */
    --sh-ky-areia:           #E9E1D3;  /* rebaixado */
    --sh-ky-hover:           #EEE7DB;
    --sh-ky-ativo:           #E5DCCC;
    --sh-ky-creme:           #FBF8F2;  /* cartão e painel */
    --sh-ky-selecionado:     #ECE2D0;
    --sh-ky-tinta:           #2A1F17;  /* título; também a superfície inversa */
    --sh-ky-texto:           #3D3027;  /* texto corrido */
    --sh-ky-suave:           #6A5B4C;
    --sh-ky-linha:           #DDD3C2;  /* limite decorativo */
    --sh-ky-controle:        #857661;  /* limite de controle: 3,30:1 até no ponto mais escuro do grão (era #8C7D69, 2,99:1) */
    --sh-ky-veu-forte:       #CDBFA6;
    --sh-ky-nogueira:        #5D4129;  /* ação e marca */
    --sh-ky-nogueira-hover:  #4B3421;
    --sh-ky-nogueira-ativa:  #3B2919;
    --sh-ky-branco:          #FFFFFF;
    --sh-ky-latao:           #C9A75F;  /* acento: só preenchimento, nunca texto */
    --sh-ky-latao-hover:     #BC9A52;
    --sh-ky-latao-ativo:     #AE8D46;
    --sh-ky-latao-escuro:    #7A5C21;  /* texto e limite de acento */
    --sh-ky-latao-veu:       #F2E8D2;
    --sh-ky-vago:            #8C3B2A;  /* horário vago e destrutivo */
    --sh-ky-vago-hover:      #783224;
    --sh-ky-vago-ativo:      #652A1E;

    /* ------------------------------------------------- tipografia do tema */
    /* Fraunces nos títulos, como nas telas da Capela: a serifa macia das letras
       de latão. Já é a fonte de acento do sistema, auto-hospedada; o tema não
       baixa nada a mais. O texto segue na fonte do sistema. */
    --sh-font-display:         'Fraunces', 'Fraunces Fallback', Georgia, 'Times New Roman', serif;
    --sh-font-display-weight:  var(--sh-weight-medium);  /* Fraunces pesa mais que Montserrat no mesmo número */
    --sh-font-display-axes:    'SOFT' 60, 'WONK' 1, 'opsz' 48;

    /* ----------------------------------------------------------- elevação */
    /* Sombra ambiente do sistema, tingida de nogueira. */
    --sh-shadow-hue:     35;
    --sh-shadow-rgb:     42 31 23;
    --sh-shadow-sm:      0 1px 2px rgb(var(--sh-shadow-rgb) / 0.05);
    --sh-shadow-md:      0 1px 2px rgb(var(--sh-shadow-rgb) / 0.03),
                         0 12px 32px rgb(var(--sh-shadow-rgb) / 0.06);
    --sh-shadow-lg:      0 2px 4px rgb(var(--sh-shadow-rgb) / 0.03),
                         0 20px 48px rgb(var(--sh-shadow-rgb) / 0.08);
    --sh-shadow-xl:      0 4px 8px rgb(var(--sh-shadow-rgb) / 0.04),
                         0 32px 80px rgb(var(--sh-shadow-rgb) / 0.14);
    --sh-shadow-raised:  var(--sh-shadow-md);

    /* -------------------------------------------------------- véu e vidro */
    /* OBRIGATÓRIO escrever por extenso, mesmo que o valor pareça herdável.
       Substituição de custom property resolve no escopo de QUEM DECLARA: um
       rgb(var(--sh-shadow-rgb)) escrito em :root devolve a tinta da raiz
       quando o tema mora numa subárvore. E o vidro tem de ser a MESMA tinta
       do véu em todo cenário — o par claro está aqui, o par escuro está no
       bloco escuro, e o gerador emite os dois. Alfa do vidro = alfa do véu
       + 4 pontos (a margem que o texto pequeno precisa). */
    --sh-surface-scrim:      rgb(42 31 23 / 0.62);
    --sh-glass-veil:         rgb(42 31 23 / 0.66);
    --sh-glass-veil-hover:   rgb(42 31 23 / 0.74);
    --sh-glass-veil-active:  rgb(42 31 23 / 0.82);
    --sh-glass-solid:        rgb(42 31 23 / 1);

    /* ------------------------------------ semântica (claro) — superfícies */
    /* O grão do reboco entra só no fundo da página: pontos quase invisíveis. */
    --sh-surface-page:           var(--sh-ky-reboco);
    --sh-surface-sunken:         var(--sh-ky-areia);
    --sh-surface-default:        var(--sh-ky-creme);
    --sh-surface-raised:         var(--sh-ky-creme);
    --sh-surface-subtle:         var(--sh-ky-reboco);
    --sh-surface-inverse:        var(--sh-ky-tinta);
    --sh-surface-brand:          var(--sh-ky-nogueira);
    --sh-surface-brand-subtle:   var(--sh-ky-selecionado);
    --sh-surface-accent:         var(--sh-ky-latao);
    --sh-surface-accent-subtle:  var(--sh-ky-latao-veu);
    --sh-surface-accent-border:  var(--sh-ky-latao-escuro);
    --sh-surface-selected:       var(--sh-ky-selecionado);
    --sh-surface-hover:          var(--sh-ky-hover);
    --sh-surface-active:         var(--sh-ky-ativo);
    --sh-surface-sheen:          linear-gradient(100deg, transparent 0%, var(--sh-ky-latao-veu) 50%, transparent 100%);  /* a luz do esqueleto é a luz do tema */
    --sh-surface-disabled:       var(--sh-ky-areia);
    --sh-surface-page-texture:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .36 0 0 0 0 .27 0 0 0 0 .17 0 0 0 1.4 -.5'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='.1'/%3E%3C/svg%3E");

    /* ------------------------------------------ semântica (claro) — texto */
    --sh-text-strong:        var(--sh-ky-tinta);
    --sh-text-default:       var(--sh-ky-texto);
    --sh-text-muted:         var(--sh-ky-suave);
    --sh-text-placeholder:   var(--sh-ky-suave);
    --sh-text-inverse:       var(--sh-ky-creme);
    --sh-text-brand:         var(--sh-ky-nogueira);
    --sh-text-accent:        var(--sh-ky-latao-escuro);
    --sh-text-link:          var(--sh-ky-nogueira);
    --sh-text-link-hover:    var(--sh-ky-nogueira-hover);
    --sh-text-success:       var(--sh-text-success);
    --sh-text-warning:       var(--sh-text-warning);
    --sh-text-danger:        var(--sh-ky-vago);
    --sh-text-info:          var(--sh-ky-suave);  /* aviso informativo sem o azul do Portal */
    --sh-text-link-visited:  var(--sh-ky-nogueira);
    --sh-text-disabled:      var(--sh-ky-controle);

    /* -------------------- semântica (claro) — sobre a marca e sobre o véu */
    /* O conjunto on-brand existe porque --sh-surface-brand muda de claridade
       por tema e por esquema. Quem escreve sobre a marca acompanha.

       A família on-scrim NÃO tem par no bloco escuro, de propósito: a foto do
       herói não escurece quando a pessoa liga o modo escuro. Declarar véu ou
       ação sobre véu no bloco escuro é bug, não zelo. */
    --sh-text-on-brand:             var(--sh-ky-branco);
    --sh-text-on-brand-muted:       var(--sh-ky-areia);
    --sh-text-on-brand-link:        var(--sh-ky-latao-veu);
    --sh-text-on-brand-link-hover:  var(--sh-ky-branco);
    --sh-text-on-accent:            var(--sh-ky-tinta);
    --sh-text-on-scrim:             var(--sh-white);  /* troque só se o "branco" do tema não for branco */

    --sh-action-primary-fg-on-scrim:   var(--sh-ky-tinta);
    --sh-action-primary-bg-hover-on-scrim: var(--sh-white);
    --sh-action-primary-bg-active-on-scrim: var(--sh-ky-reboco);

    /* ----------------------------------------- semântica (claro) — bordas */
    --sh-border-subtle:           var(--sh-ky-linha);
    --sh-border-default:          var(--sh-ky-linha);
    --sh-border-control:          var(--sh-ky-controle);
    --sh-border-strong:           var(--sh-ky-suave);
    --sh-border-brand:            var(--sh-ky-nogueira);
    --sh-border-accent:           var(--sh-ky-latao-escuro);
    --sh-border-inverse:          var(--sh-ky-creme);
    --sh-border-on-brand:         var(--sh-ky-nogueira-hover);
    --sh-border-on-brand-strong:  var(--sh-ky-areia);
    --sh-border-indicator:        var(--sh-ky-suave);
    --sh-border-disabled:         var(--sh-ky-linha);

    /* ------------------------------------------ semântica (claro) — ações */
    --sh-action-primary-bg:         var(--sh-ky-nogueira);
    --sh-action-primary-bg-hover:   var(--sh-ky-nogueira-hover);
    --sh-action-primary-bg-active:  var(--sh-ky-nogueira-ativa);
    --sh-action-primary-fg:         var(--sh-ky-branco);
    --sh-action-primary-border:     var(--sh-ky-nogueira);

    --sh-action-secondary-bg:         var(--sh-ky-creme);
    --sh-action-secondary-bg-hover:   var(--sh-ky-selecionado);
    --sh-action-secondary-bg-active:  var(--sh-ky-ativo);
    --sh-action-secondary-fg:         var(--sh-ky-nogueira);
    --sh-action-secondary-border:     var(--sh-ky-nogueira);

    --sh-action-ghost-fg:         var(--sh-ky-nogueira);
    --sh-action-ghost-bg-hover:   var(--sh-ky-selecionado);
    --sh-action-ghost-bg-active:  var(--sh-ky-ativo);

    --sh-action-accent-bg:         var(--sh-ky-latao);
    --sh-action-accent-bg-hover:   var(--sh-ky-latao-hover);
    --sh-action-accent-bg-active:  var(--sh-ky-latao-ativo);
    --sh-action-accent-fg:         var(--sh-ky-tinta);
    --sh-action-accent-border:     var(--sh-ky-latao-escuro);

    --sh-action-danger-bg:         var(--sh-ky-vago);
    --sh-action-danger-bg-hover:   var(--sh-ky-vago-hover);
    --sh-action-danger-bg-active:  var(--sh-ky-vago-ativo);
    --sh-action-danger-fg:         var(--sh-white);
    --sh-action-danger-border:     var(--sh-ky-vago);

    --sh-action-disabled-bg:      var(--sh-ky-areia);
    --sh-action-disabled-fg:      var(--sh-ky-controle);
    --sh-action-disabled-border:  var(--sh-ky-linha);

    /* --------------------------------------- semântica (claro) — feedback */
    /* Sucesso, alerta e erro são do sistema. Só o informativo vem para a
       família da sala. */
    --sh-feedback-info-surface:  var(--sh-ky-selecionado);
    --sh-feedback-info-border:   var(--sh-ky-veu-forte);
    --sh-feedback-info-text:     var(--sh-ky-texto);
    --sh-feedback-info-solid:    var(--sh-ky-nogueira);

    /* ----------------------------------- semântica (claro) — foco e pomba */
    --sh-focus-halo:      var(--sh-ky-reboco);
    --sh-focus-color:     var(--sh-ky-nogueira);  /* >= 3:1 sobre a página */
    --sh-focus-on-brand:  var(--sh-ky-branco);  /* >= 3:1 sobre a marca */

    --sh-dove-ink:        var(--sh-ky-latao-escuro);  /* >= 3:1 sobre a página E sobre o cartão */
    --sh-dove-watermark:  var(--sh-ky-linha);
    --sh-dove-opacity:    0.12;
  }

  /* Dentro do cartão o fundo deixa de ser a página. Se a tinta de link, de
     acento ou o halo do foco dependem do canvas, é aqui que eles se
     corrigem — e o par escuro logo abaixo tem de cobrir a MESMA lista. */
  [data-sh-theme="kyrios"] [data-sh-surface="panel"],
  [data-sh-theme="kyrios"] [data-sh-surface="sunken"] {
    --sh-text-link:        var(--sh-ky-nogueira);
    --sh-text-link-hover:  var(--sh-ky-nogueira-hover);
    --sh-text-accent:      var(--sh-ky-latao-escuro);
    --sh-text-muted:       var(--sh-ky-suave);
    --sh-border-control:   var(--sh-ky-controle);
    --sh-focus-halo:       var(--sh-ky-creme);
  }

  /* A seção inversa é a nogueira escura. O sistema pinta o inverso com o azul e
     o laranja da marca; aqui tudo volta para a família da sala. */
  [data-sh-theme="kyrios"] [data-sh-surface="inverse"] {
    --sh-dove-ink:    var(--sh-ky-creme);
    --sh-focus-halo:  var(--sh-ky-tinta);

    --sh-text-strong:      var(--sh-ky-creme);
    --sh-text-default:     var(--sh-ky-areia);
    --sh-text-muted:       var(--sh-ky-veu-forte);
    --sh-text-link:        var(--sh-ky-latao);
    --sh-text-link-hover:  var(--sh-ky-latao-veu);
    --sh-text-brand:       var(--sh-ky-latao-veu);
    --sh-text-accent:      var(--sh-ky-latao);

    --sh-border-subtle:   var(--sh-ky-nogueira-ativa);
    --sh-border-default:  var(--sh-ky-nogueira);
    --sh-border-control:  var(--sh-ky-controle);
    --sh-border-strong:   var(--sh-ky-veu-forte);
    --sh-border-brand:    var(--sh-ky-latao);
    --sh-border-accent:   var(--sh-ky-latao);
    --sh-focus-color:     var(--sh-ky-latao);

    --sh-action-primary-bg:         var(--sh-ky-creme);
    --sh-action-primary-bg-hover:   var(--sh-ky-branco);
    --sh-action-primary-bg-active:  var(--sh-ky-areia);
    --sh-action-primary-fg:         var(--sh-ky-tinta);
    --sh-action-primary-border:     var(--sh-ky-creme);

    --sh-action-secondary-fg:      var(--sh-ky-creme);
    --sh-action-secondary-border:  var(--sh-ky-veu-forte);
    --sh-action-ghost-fg:          var(--sh-ky-areia);
    --sh-action-accent-border:     var(--sh-ky-latao);
  }

  /* --------------------------------------- 1. automático (o sistema pede) */
  @media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) [data-sh-theme="kyrios"],
    :root:not([data-theme="light"])[data-sh-theme="kyrios"] {
      /* --------------------------------------- primitivos escuros do tema */
      /* A Capela à noite: luz baixa sobre a madeira. O latão vira a ação. */
      --sh-ky-n-pagina:       #14110E;
      --sh-ky-n-afundado:     #0F0D0A;
      --sh-ky-n-superficie:   #1C1814;
      --sh-ky-n-hover:        #25201B;
      --sh-ky-n-ativo:        #2D2721;
      --sh-ky-n-selecionado:  #2B251D;
      --sh-ky-n-tinta:        #F2EADC;
      --sh-ky-n-texto:        #DDD3C3;
      --sh-ky-n-suave:        #ACA08E;
      --sh-ky-n-linha:        #372F27;
      --sh-ky-n-controle:     #7D6F5D;
      --sh-ky-n-veu-forte:    #4A3F33;
      --sh-ky-n-inerte:       #8E806C;
      --sh-ky-n-acao:         #D6BA85;  /* ação e marca no escuro */
      --sh-ky-n-acao-hover:   #E3CA9C;
      --sh-ky-n-acao-texto:   #1C140C;
      --sh-ky-n-latao:        #CDAE6E;
      --sh-ky-n-latao-veu:    #2C2518;
      --sh-ky-n-vago:         #E09A86;

      /* -------------------------------------------- véu e vidro no escuro */
      /* OBRIGATÓRIO. @layer sh.theme vem DEPOIS de sh.tokens, e camada vence
         especificidade: sem estas linhas, o véu claro do tema atravessa o modo
         escuro inteiro enquanto o resto já escureceu. Foi o defeito mais caro
         da história deste arquivo. Vidro e véu têm de ser a mesma tinta em
         todo cenário. */
      --sh-shadow-rgb:     4 3 2;
      --sh-surface-scrim:  rgb(15 13 10 / 0.72);

      --sh-glass-veil:         rgb(15 13 10 / 0.76);
      --sh-glass-veil-hover:   rgb(15 13 10 / 0.83);
      --sh-glass-veil-active:  rgb(15 13 10 / 0.90);
      --sh-glass-solid:        rgb(15 13 10 / 1);

      /* --------------------------------- semântica (escuro) — superfícies */
      --sh-surface-page:           var(--sh-ky-n-pagina);
      --sh-surface-sunken:         var(--sh-ky-n-afundado);
      --sh-surface-default:        var(--sh-ky-n-superficie);
      --sh-surface-raised:         var(--sh-ky-n-superficie);
      --sh-surface-subtle:         var(--sh-ky-n-superficie);
      --sh-surface-inverse:        var(--sh-ky-reboco);
      --sh-surface-brand:          var(--sh-ky-n-acao);
      --sh-surface-brand-subtle:   var(--sh-ky-n-selecionado);
      --sh-surface-accent:         var(--sh-ky-n-latao);
      --sh-surface-accent-subtle:  var(--sh-ky-n-latao-veu);
      --sh-surface-accent-border:  var(--sh-ky-n-latao);
      --sh-surface-selected:       var(--sh-ky-n-selecionado);
      --sh-surface-hover:          var(--sh-ky-n-hover);
      --sh-surface-active:         var(--sh-ky-n-ativo);
      --sh-surface-sheen:          linear-gradient(100deg, transparent 0%, var(--sh-ky-n-latao-veu) 50%, transparent 100%);
      --sh-surface-disabled:       var(--sh-ky-n-ativo);
      --sh-surface-page-texture:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .95 0 0 0 0 .9 0 0 0 0 .8 0 0 0 1.4 -.5'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='.05'/%3E%3C/svg%3E");

      /* --------------------------------------- semântica (escuro) — texto */
      --sh-text-strong:               var(--sh-ky-n-tinta);
      --sh-text-default:              var(--sh-ky-n-texto);
      --sh-text-muted:                var(--sh-ky-n-suave);
      --sh-text-placeholder:          var(--sh-ky-n-suave);
      --sh-text-inverse:              var(--sh-ky-tinta);
      --sh-text-brand:                var(--sh-ky-n-acao);
      --sh-text-accent:               var(--sh-ky-n-latao);
      --sh-text-link:                 var(--sh-ky-n-acao);
      --sh-text-link-hover:           var(--sh-ky-n-acao-hover);
      --sh-text-success:              var(--sh-success-300);
      --sh-text-warning:              var(--sh-warning-300);
      --sh-text-danger:               var(--sh-ky-n-vago);
      --sh-text-info:                 var(--sh-ky-n-suave);
      --sh-text-on-accent:            var(--sh-ky-tinta);
      --sh-text-on-brand-muted:       var(--sh-ky-texto);
      --sh-text-on-brand-link:        var(--sh-ky-nogueira-ativa);
      --sh-text-on-brand-link-hover:  var(--sh-ky-tinta);
      --sh-text-link-visited:         var(--sh-ky-n-acao);
      --sh-text-disabled:             var(--sh-ky-n-inerte);
      --sh-text-on-brand:             var(--sh-ky-n-acao-texto);  /* no escuro a marca é clara */

      /* -------------------------------------- semântica (escuro) — bordas */
      --sh-border-subtle:           var(--sh-ky-n-linha);
      --sh-border-default:          var(--sh-ky-n-linha);
      --sh-border-control:          var(--sh-ky-n-controle);
      --sh-border-strong:           var(--sh-ky-n-suave);
      --sh-border-brand:            var(--sh-ky-n-acao);
      --sh-border-accent:           var(--sh-ky-n-latao);
      --sh-border-inverse:          var(--sh-ky-tinta);
      --sh-border-on-brand:         var(--sh-ky-nogueira-hover);
      --sh-border-on-brand-strong:  var(--sh-ky-nogueira-ativa);
      --sh-border-indicator:        var(--sh-ky-n-suave);
      --sh-border-disabled:         var(--sh-ky-n-linha);

      /* --------------------------------------- semântica (escuro) — ações */
      /* Sobre fundo escuro o PREENCHIMENTO tem de ser claro: um botão escuro
         sobre painel escuro reprova 1.4.11 na silhueta. */
      --sh-action-primary-bg:         var(--sh-ky-n-acao);
      --sh-action-primary-bg-hover:   var(--sh-ky-n-acao-hover);
      --sh-action-primary-bg-active:  var(--sh-ky-n-latao);
      --sh-action-primary-fg:         var(--sh-ky-n-acao-texto);
      --sh-action-primary-border:     var(--sh-ky-n-acao);

      --sh-action-secondary-fg:      var(--sh-ky-n-acao);
      --sh-action-secondary-border:  var(--sh-ky-n-acao);
      --sh-action-ghost-fg:          var(--sh-ky-n-acao);

      --sh-action-accent-bg:         var(--sh-ky-n-latao);
      --sh-action-accent-bg-hover:   var(--sh-ky-n-acao-hover);
      --sh-action-accent-bg-active:  var(--sh-ky-n-acao);
      --sh-action-accent-fg:         var(--sh-ky-tinta);
      --sh-action-accent-border:     var(--sh-ky-n-latao);

      --sh-action-danger-bg:         var(--sh-danger-300);
      --sh-action-danger-bg-hover:   var(--sh-danger-200);
      --sh-action-danger-bg-active:  var(--sh-danger-100);
      --sh-action-danger-fg:         var(--sh-danger-950);
      --sh-action-danger-border:     var(--sh-danger-300);

      --sh-action-disabled-bg:      var(--sh-ky-n-ativo);
      --sh-action-disabled-fg:      var(--sh-ky-n-inerte);
      --sh-action-disabled-border:  var(--sh-ky-n-linha);

      --sh-action-secondary-bg:         var(--sh-ky-n-superficie);
      --sh-action-secondary-bg-hover:   var(--sh-ky-n-selecionado);
      --sh-action-secondary-bg-active:  var(--sh-ky-n-ativo);

      --sh-action-ghost-bg-hover:   var(--sh-ky-n-selecionado);
      --sh-action-ghost-bg-active:  var(--sh-ky-n-ativo);

      /* ------------------------------------ semântica (escuro) — feedback */
      /* Par escuro do informativo. Sucesso, alerta e erro herdam do sistema. */
      --sh-feedback-info-surface:  var(--sh-ky-n-selecionado);
      --sh-feedback-info-border:   var(--sh-ky-n-veu-forte);
      --sh-feedback-info-text:     var(--sh-ky-n-texto);
      --sh-feedback-info-solid:    var(--sh-ky-n-acao);

      /* ---------------------- semântica (escuro) — foco, elevação e pomba */
      --sh-focus-halo:      var(--sh-ky-n-pagina);
      --sh-focus-color:     var(--sh-ky-n-acao);
      --sh-focus-on-brand:  var(--sh-ky-n-pagina);
      --sh-shadow-raised:   none;  /* no escuro a profundidade vem de superfície + borda */

      --sh-dove-ink:        var(--sh-ky-n-latao);
      --sh-dove-watermark:  var(--sh-ky-n-linha);
      --sh-dove-opacity:    0.18;
    }

    /* Par escuro do bloco de painel acima. Mesma lista de propriedades,
       tintas do escuro. */
    :root:not([data-theme="light"]) [data-sh-theme="kyrios"] [data-sh-surface="panel"],
    :root:not([data-theme="light"]) [data-sh-theme="kyrios"] [data-sh-surface="sunken"],
    :root:not([data-theme="light"])[data-sh-theme="kyrios"] [data-sh-surface="panel"],
    :root:not([data-theme="light"])[data-sh-theme="kyrios"] [data-sh-surface="sunken"] {
      --sh-text-link:        var(--sh-ky-n-acao);
      --sh-text-link-hover:  var(--sh-ky-n-acao-hover);
      --sh-text-accent:      var(--sh-ky-n-latao);
      --sh-text-muted:       var(--sh-ky-n-suave);
      --sh-border-control:   var(--sh-ky-n-controle);
      --sh-focus-halo:       var(--sh-ky-n-superficie);
    }

    /* No escuro a superfície inversa é CLARA: as ações e a pomba voltam às
       tintas escuras do tema. */
    :root:not([data-theme="light"]) [data-sh-theme="kyrios"] [data-sh-surface="inverse"],
    :root:not([data-theme="light"])[data-sh-theme="kyrios"] [data-sh-surface="inverse"] {
      --sh-text-strong:      var(--sh-ky-tinta);
      --sh-text-default:     var(--sh-ky-tinta);
      --sh-text-muted:       var(--sh-ky-suave);
      --sh-text-link:        var(--sh-ky-nogueira);
      --sh-text-link-hover:  var(--sh-ky-nogueira-hover);
      --sh-text-accent:      var(--sh-ky-latao-escuro);
      --sh-border-control:   var(--sh-ky-suave);

      --sh-action-primary-bg:         var(--sh-ky-nogueira);
      --sh-action-primary-bg-hover:   var(--sh-ky-nogueira-hover);
      --sh-action-primary-bg-active:  var(--sh-ky-nogueira-ativa);
      --sh-action-primary-fg:         var(--sh-ky-branco);
      --sh-action-primary-border:     var(--sh-ky-nogueira);

      --sh-action-secondary-fg:      var(--sh-ky-nogueira);
      --sh-action-secondary-border:  var(--sh-ky-nogueira);
      --sh-action-ghost-fg:          var(--sh-ky-nogueira);

      --sh-focus-halo:   var(--sh-ky-reboco);
      --sh-focus-color:  var(--sh-ky-nogueira);
      --sh-dove-ink:     var(--sh-ky-latao-escuro);
    }
  }

  /* ---------------------------------------- 2. escolhido (a pessoa pediu) */
  [data-theme="dark"] [data-sh-theme="kyrios"],
  [data-theme="dark"][data-sh-theme="kyrios"] {
    /* ----------------------------------------- primitivos escuros do tema */
    /* A Capela à noite: luz baixa sobre a madeira. O latão vira a ação. */
    --sh-ky-n-pagina:       #14110E;
    --sh-ky-n-afundado:     #0F0D0A;
    --sh-ky-n-superficie:   #1C1814;
    --sh-ky-n-hover:        #25201B;
    --sh-ky-n-ativo:        #2D2721;
    --sh-ky-n-selecionado:  #2B251D;
    --sh-ky-n-tinta:        #F2EADC;
    --sh-ky-n-texto:        #DDD3C3;
    --sh-ky-n-suave:        #ACA08E;
    --sh-ky-n-linha:        #372F27;
    --sh-ky-n-controle:     #7D6F5D;
    --sh-ky-n-veu-forte:    #4A3F33;
    --sh-ky-n-inerte:       #8E806C;
    --sh-ky-n-acao:         #D6BA85;  /* ação e marca no escuro */
    --sh-ky-n-acao-hover:   #E3CA9C;
    --sh-ky-n-acao-texto:   #1C140C;
    --sh-ky-n-latao:        #CDAE6E;
    --sh-ky-n-latao-veu:    #2C2518;
    --sh-ky-n-vago:         #E09A86;

    /* ---------------------------------------------- véu e vidro no escuro */
    /* OBRIGATÓRIO. @layer sh.theme vem DEPOIS de sh.tokens, e camada vence
       especificidade: sem estas linhas, o véu claro do tema atravessa o modo
       escuro inteiro enquanto o resto já escureceu. Foi o defeito mais caro
       da história deste arquivo. Vidro e véu têm de ser a mesma tinta em
       todo cenário. */
    --sh-shadow-rgb:     4 3 2;
    --sh-surface-scrim:  rgb(15 13 10 / 0.72);

    --sh-glass-veil:         rgb(15 13 10 / 0.76);
    --sh-glass-veil-hover:   rgb(15 13 10 / 0.83);
    --sh-glass-veil-active:  rgb(15 13 10 / 0.90);
    --sh-glass-solid:        rgb(15 13 10 / 1);

    /* ----------------------------------- semântica (escuro) — superfícies */
    --sh-surface-page:           var(--sh-ky-n-pagina);
    --sh-surface-sunken:         var(--sh-ky-n-afundado);
    --sh-surface-default:        var(--sh-ky-n-superficie);
    --sh-surface-raised:         var(--sh-ky-n-superficie);
    --sh-surface-subtle:         var(--sh-ky-n-superficie);
    --sh-surface-inverse:        var(--sh-ky-reboco);
    --sh-surface-brand:          var(--sh-ky-n-acao);
    --sh-surface-brand-subtle:   var(--sh-ky-n-selecionado);
    --sh-surface-accent:         var(--sh-ky-n-latao);
    --sh-surface-accent-subtle:  var(--sh-ky-n-latao-veu);
    --sh-surface-accent-border:  var(--sh-ky-n-latao);
    --sh-surface-selected:       var(--sh-ky-n-selecionado);
    --sh-surface-hover:          var(--sh-ky-n-hover);
    --sh-surface-active:         var(--sh-ky-n-ativo);
    --sh-surface-sheen:          linear-gradient(100deg, transparent 0%, var(--sh-ky-n-latao-veu) 50%, transparent 100%);
    --sh-surface-disabled:       var(--sh-ky-n-ativo);
    --sh-surface-page-texture:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .95 0 0 0 0 .9 0 0 0 0 .8 0 0 0 1.4 -.5'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='.05'/%3E%3C/svg%3E");

    /* ----------------------------------------- semântica (escuro) — texto */
    --sh-text-strong:               var(--sh-ky-n-tinta);
    --sh-text-default:              var(--sh-ky-n-texto);
    --sh-text-muted:                var(--sh-ky-n-suave);
    --sh-text-placeholder:          var(--sh-ky-n-suave);
    --sh-text-inverse:              var(--sh-ky-tinta);
    --sh-text-brand:                var(--sh-ky-n-acao);
    --sh-text-accent:               var(--sh-ky-n-latao);
    --sh-text-link:                 var(--sh-ky-n-acao);
    --sh-text-link-hover:           var(--sh-ky-n-acao-hover);
    --sh-text-success:              var(--sh-success-300);
    --sh-text-warning:              var(--sh-warning-300);
    --sh-text-danger:               var(--sh-ky-n-vago);
    --sh-text-info:                 var(--sh-ky-n-suave);
    --sh-text-on-accent:            var(--sh-ky-tinta);
    --sh-text-on-brand-muted:       var(--sh-ky-texto);
    --sh-text-on-brand-link:        var(--sh-ky-nogueira-ativa);
    --sh-text-on-brand-link-hover:  var(--sh-ky-tinta);
    --sh-text-link-visited:         var(--sh-ky-n-acao);
    --sh-text-disabled:             var(--sh-ky-n-inerte);
    --sh-text-on-brand:             var(--sh-ky-n-acao-texto);  /* no escuro a marca é clara */

    /* ---------------------------------------- semântica (escuro) — bordas */
    --sh-border-subtle:           var(--sh-ky-n-linha);
    --sh-border-default:          var(--sh-ky-n-linha);
    --sh-border-control:          var(--sh-ky-n-controle);
    --sh-border-strong:           var(--sh-ky-n-suave);
    --sh-border-brand:            var(--sh-ky-n-acao);
    --sh-border-accent:           var(--sh-ky-n-latao);
    --sh-border-inverse:          var(--sh-ky-tinta);
    --sh-border-on-brand:         var(--sh-ky-nogueira-hover);
    --sh-border-on-brand-strong:  var(--sh-ky-nogueira-ativa);
    --sh-border-indicator:        var(--sh-ky-n-suave);
    --sh-border-disabled:         var(--sh-ky-n-linha);

    /* ----------------------------------------- semântica (escuro) — ações */
    /* Sobre fundo escuro o PREENCHIMENTO tem de ser claro: um botão escuro
       sobre painel escuro reprova 1.4.11 na silhueta. */
    --sh-action-primary-bg:         var(--sh-ky-n-acao);
    --sh-action-primary-bg-hover:   var(--sh-ky-n-acao-hover);
    --sh-action-primary-bg-active:  var(--sh-ky-n-latao);
    --sh-action-primary-fg:         var(--sh-ky-n-acao-texto);
    --sh-action-primary-border:     var(--sh-ky-n-acao);

    --sh-action-secondary-fg:      var(--sh-ky-n-acao);
    --sh-action-secondary-border:  var(--sh-ky-n-acao);
    --sh-action-ghost-fg:          var(--sh-ky-n-acao);

    --sh-action-accent-bg:         var(--sh-ky-n-latao);
    --sh-action-accent-bg-hover:   var(--sh-ky-n-acao-hover);
    --sh-action-accent-bg-active:  var(--sh-ky-n-acao);
    --sh-action-accent-fg:         var(--sh-ky-tinta);
    --sh-action-accent-border:     var(--sh-ky-n-latao);

    --sh-action-danger-bg:         var(--sh-danger-300);
    --sh-action-danger-bg-hover:   var(--sh-danger-200);
    --sh-action-danger-bg-active:  var(--sh-danger-100);
    --sh-action-danger-fg:         var(--sh-danger-950);
    --sh-action-danger-border:     var(--sh-danger-300);

    --sh-action-disabled-bg:      var(--sh-ky-n-ativo);
    --sh-action-disabled-fg:      var(--sh-ky-n-inerte);
    --sh-action-disabled-border:  var(--sh-ky-n-linha);

    --sh-action-secondary-bg:         var(--sh-ky-n-superficie);
    --sh-action-secondary-bg-hover:   var(--sh-ky-n-selecionado);
    --sh-action-secondary-bg-active:  var(--sh-ky-n-ativo);

    --sh-action-ghost-bg-hover:   var(--sh-ky-n-selecionado);
    --sh-action-ghost-bg-active:  var(--sh-ky-n-ativo);

    /* -------------------------------------- semântica (escuro) — feedback */
    /* Par escuro do informativo. Sucesso, alerta e erro herdam do sistema. */
    --sh-feedback-info-surface:  var(--sh-ky-n-selecionado);
    --sh-feedback-info-border:   var(--sh-ky-n-veu-forte);
    --sh-feedback-info-text:     var(--sh-ky-n-texto);
    --sh-feedback-info-solid:    var(--sh-ky-n-acao);

    /* ------------------------ semântica (escuro) — foco, elevação e pomba */
    --sh-focus-halo:      var(--sh-ky-n-pagina);
    --sh-focus-color:     var(--sh-ky-n-acao);
    --sh-focus-on-brand:  var(--sh-ky-n-pagina);
    --sh-shadow-raised:   none;  /* no escuro a profundidade vem de superfície + borda */

    --sh-dove-ink:        var(--sh-ky-n-latao);
    --sh-dove-watermark:  var(--sh-ky-n-linha);
    --sh-dove-opacity:    0.18;
  }

  /* Par escuro do bloco de painel acima. Mesma lista de propriedades, tintas
     do escuro. */
  [data-theme="dark"] [data-sh-theme="kyrios"] [data-sh-surface="panel"],
  [data-theme="dark"] [data-sh-theme="kyrios"] [data-sh-surface="sunken"],
  [data-theme="dark"][data-sh-theme="kyrios"] [data-sh-surface="panel"],
  [data-theme="dark"][data-sh-theme="kyrios"] [data-sh-surface="sunken"] {
    --sh-text-link:        var(--sh-ky-n-acao);
    --sh-text-link-hover:  var(--sh-ky-n-acao-hover);
    --sh-text-accent:      var(--sh-ky-n-latao);
    --sh-text-muted:       var(--sh-ky-n-suave);
    --sh-border-control:   var(--sh-ky-n-controle);
    --sh-focus-halo:       var(--sh-ky-n-superficie);
  }

  /* No escuro a superfície inversa é CLARA: as ações e a pomba voltam às
     tintas escuras do tema. */
  [data-theme="dark"] [data-sh-theme="kyrios"] [data-sh-surface="inverse"],
  [data-theme="dark"][data-sh-theme="kyrios"] [data-sh-surface="inverse"] {
    --sh-text-strong:      var(--sh-ky-tinta);
    --sh-text-default:     var(--sh-ky-tinta);
    --sh-text-muted:       var(--sh-ky-suave);
    --sh-text-link:        var(--sh-ky-nogueira);
    --sh-text-link-hover:  var(--sh-ky-nogueira-hover);
    --sh-text-accent:      var(--sh-ky-latao-escuro);
    --sh-border-control:   var(--sh-ky-suave);

    --sh-action-primary-bg:         var(--sh-ky-nogueira);
    --sh-action-primary-bg-hover:   var(--sh-ky-nogueira-hover);
    --sh-action-primary-bg-active:  var(--sh-ky-nogueira-ativa);
    --sh-action-primary-fg:         var(--sh-ky-branco);
    --sh-action-primary-border:     var(--sh-ky-nogueira);

    --sh-action-secondary-fg:      var(--sh-ky-nogueira);
    --sh-action-secondary-border:  var(--sh-ky-nogueira);
    --sh-action-ghost-fg:          var(--sh-ky-nogueira);

    --sh-focus-halo:   var(--sh-ky-reboco);
    --sh-focus-color:  var(--sh-ky-nogueira);
    --sh-dove-ink:     var(--sh-ky-latao-escuro);
  }
}

/* ===========================================================================
   Fonte do tema: nenhuma a mais. Fraunces já é a fonte de acento do sistema,
   auto-hospedada em assets/fonts/. Logo da Capela em assets/brand/kyrios/.
   =========================================================================== */
