/* Identidade visual Edita · Ateliê violeta (folhas, papel e vidro) */

:root {
  /* paleta */
  --noite: #1A0C30;
  --fundo-noite: #24123F;
  --ametista: #4A2A8A;
  --violeta: #6A3FD0;
  --violeta-claro: #8A5BF5;
  --lilas-forte: #A98BF5;
  --cursor: #C9B3FF;
  --perola: #E7DEFF;
  --nevoa-clara: #F5F2FC;
  --linha: #E2DAF5;

  /* nomes antigos apontando para a paleta (usados nas páginas) */
  --azul: var(--violeta);
  --azul-escuro: var(--ametista);
  --amarelo: var(--cursor);
  --laranja: var(--lilas-forte);
  --limao: var(--perola);
  --lilas: #EFEAFD;
  --tinta: var(--noite);
  --tinta-suave: #5E5480;
  --papel: var(--nevoa-clara);
  --branco: #FFFFFF;
  --erro: #B42318;
  --alerta: #F2C14E;

  --grad-destaque: linear-gradient(120deg, #E7DEFF 0%, #C9B3FF 45%, #A98BF5 100%);
  --grad-botao: linear-gradient(135deg, #8A5BF5 0%, #6A3FD0 100%);
  --grad-noite: linear-gradient(135deg, #33195F 0%, #1A0C30 100%);
  --nevoa: #140B26 url(/img/arte/folhas-suave.svg) center / cover no-repeat;
  --sombra: 0 10px 30px rgba(42, 20, 90, .08);
  --sombra-forte: 0 24px 60px rgba(26, 12, 48, .18);
  --vidro: rgba(255, 255, 255, .10);
  --borda-vidro: 1px solid rgba(255, 255, 255, .24);
  --desfoque: blur(20px) saturate(150%);

  --fonte-titulo: 'Libre Baskerville', Georgia, serif;
  --fonte-texto: 'Inter', system-ui, -apple-system, sans-serif;
  --raio: 20px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--fonte-texto);
  color: var(--tinta);
  background: var(--nevoa-clara);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: var(--violeta); }
a:hover { color: var(--ametista); }
::selection { background: var(--cursor); color: var(--noite); }

.container { max-width: 1220px; margin: 0 auto; padding: 0 24px; }
.titulo { font-family: var(--fonte-titulo); font-weight: 400; line-height: 1.12; letter-spacing: -0.01em; margin: 0; }
.vidro { background: var(--vidro); border: var(--borda-vidro); -webkit-backdrop-filter: var(--desfoque); backdrop-filter: var(--desfoque); }
.sobretitulo { font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--violeta); margin: 0; }

/* Cursor piscante da marca */
.cursor {
  display: inline-block; width: .09em; height: .85em; margin-left: .1em; border-radius: .05em;
  background: linear-gradient(180deg, #C9B3FF, #8A5BF5); vertical-align: -0.06em;
  animation: piscar 1.06s steps(1) infinite;
}
@keyframes piscar { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .cursor { animation: none; } }

/* Cabeçalho: barra escura de folhas com menu de vidro */
.topo { padding: 16px 0; background: var(--nevoa); color: var(--branco); }
.topo .container { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between; }
.marca { display: inline-flex; align-items: center; text-decoration: none; color: var(--branco); font-weight: 700; }
.marca img { height: 30px; width: auto; }
.menu { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-weight: 500; font-size: 15px; }
.menu a { color: rgba(255, 255, 255, .88); text-decoration: none; padding: 8px 12px; border-radius: 10px; }
.menu a:hover { color: var(--branco); background: rgba(255, 255, 255, .1); }
.menu a.ativo { background: rgba(255, 255, 255, .16); color: var(--branco); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .25); }
.menu a.botao { padding: 10px 18px; }
.topo .usuario-email { color: rgba(255, 255, 255, .78); font-size: 14px; }

/* Botões */
.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 46px; padding: 12px 22px; border-radius: 12px;
  font-family: var(--fonte-texto); font-weight: 600; font-size: 15.5px;
  text-decoration: none; cursor: pointer; border: 1px solid transparent;
  transition: transform .15s, box-shadow .15s, filter .15s, background .15s;
}
.botao:hover { transform: translateY(-1px); }
.botao-azul { background: var(--violeta-claro); color: var(--branco); box-shadow: 0 8px 20px rgba(106, 63, 208, .28); }
.botao-azul:hover { color: var(--branco); filter: brightness(1.08); }
.botao-amarelo { background: var(--noite); color: var(--branco); box-shadow: 0 8px 20px rgba(26, 12, 48, .22); }
.botao-amarelo:hover { color: var(--branco); filter: brightness(1.25); }
.botao-claro { background: var(--branco); color: var(--tinta); border-color: var(--linha); }
.botao-claro:hover { color: var(--tinta); border-color: var(--lilas-forte); }
.botao-pilula { padding: 9px 16px; min-height: 42px; font-size: 14.5px; }
.botao:disabled { opacity: .6; cursor: wait; transform: none; }
.topo .botao-claro { background: rgba(255, 255, 255, .1); color: var(--branco); border: var(--borda-vidro); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.link-sublinhado { font-size: 12.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: inherit; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 3px; }

.selo {
  display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px; border-radius: 999px;
  background: var(--vidro); border: var(--borda-vidro); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  font-weight: 500; font-size: 13px; color: var(--branco);
}

/* ---------- Página inicial ---------- */
.inicio .topo { background: transparent; position: absolute; left: 0; right: 0; top: 0; z-index: 3; padding-top: 20px; }
.inicio .topo .container { border-radius: 16px; padding: 10px 14px 10px 20px; max-width: 1172px; background: var(--vidro); border: var(--borda-vidro); -webkit-backdrop-filter: var(--desfoque); backdrop-filter: var(--desfoque); }
.hero { position: relative; overflow: hidden; color: var(--branco); background: #120A22 url(/img/arte/folhas.svg) center / cover no-repeat; min-height: 760px; padding: 150px 0 110px; }
.hero::after { content: ''; position: absolute; inset: 0; background: radial-gradient(60% 50% at 62% 32%, rgba(231, 222, 255, .10), transparent 70%); pointer-events: none; }
.hero .container { display: flex; flex-wrap: wrap; gap: 40px; align-items: center; position: relative; z-index: 1; }
.hero-texto { flex: 1 1 420px; min-width: 0; display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }
.hero-texto .sobretitulo { color: var(--cursor); }
.hero-texto h1 { font-size: clamp(2.4rem, 5vw, 3.6rem); }
.hero-texto p { margin: 0; font-size: 1.1rem; color: rgba(255, 255, 255, .86); max-width: 470px; }
.acoes { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; }
.hero .selos-hero { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.hero-arte { flex: 1 1 460px; min-width: 0; position: relative; }
.hero-arte img { width: 100%; height: auto; max-width: 620px; margin: 0 auto; filter: drop-shadow(0 30px 50px rgba(5, 2, 14, .45)); }
.hero-arte .arte { display: none; }
.hero-arte .arte.ativa { display: block; animation: surgir .5s ease; }
@keyframes surgir { from { opacity: 0; transform: translateY(10px) rotate(-1deg); } to { opacity: 1; transform: none; } }
.cartao-flutuante {
  position: absolute; right: 0; bottom: -10px; width: min(380px, 92%); z-index: 2; border-radius: 18px; overflow: hidden;
  box-shadow: 0 24px 50px rgba(5, 2, 14, .4);
}
.cartao-flutuante .cf-topo { padding: 18px 20px; background: rgba(247, 244, 255, .88); -webkit-backdrop-filter: blur(22px); backdrop-filter: blur(22px); color: var(--ametista); }
.cartao-flutuante b { display: block; font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 6px; }
.cartao-flutuante .cf-topo span { font-size: 14px; color: #33195F; line-height: 1.45; display: block; }
.cartao-flutuante .cf-base { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 13px 20px; background: rgba(106, 63, 208, .95); font-size: 13.5px; color: rgba(255, 255, 255, .88); }
.cartao-flutuante .cf-base a { color: var(--branco); font-weight: 600; letter-spacing: .06em; font-size: 12.5px; text-transform: uppercase; }

/* Abas Editais · Licitações · Pregões */
.abas { display: inline-flex; gap: 4px; padding: 4px; border-radius: 14px; background: var(--vidro); border: var(--borda-vidro); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.aba { font-family: var(--fonte-texto); font-size: 14px; font-weight: 500; color: rgba(255, 255, 255, .85); background: transparent; border: 0; border-radius: 10px; padding: 9px 16px; cursor: pointer; min-height: 40px; }
.aba[aria-selected="true"] { background: rgba(255, 255, 255, .18); color: var(--branco); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .28); }
.aba:focus-visible { outline: 2px solid var(--cursor); outline-offset: 2px; }
[data-frente] { display: none; }
[data-frente].ativa { display: block; }
.hero-texto [data-frente].ativa { display: flex; flex-direction: column; gap: 18px; align-items: flex-start; }

.secao { padding: 96px 0; position: relative; }
.secao-clara { background: var(--nevoa-clara); }
.inicio #frentes { margin-top: -34px; border-radius: 34px 34px 0 0; position: relative; z-index: 2; }
.secao-lilas, .secao-papel { background: var(--nevoa-clara); }
.secao h2 { font-family: var(--fonte-titulo); font-weight: 400; font-size: clamp(2rem, 4.4vw, 3.4rem); line-height: 1.08; margin: 10px 0 14px; letter-spacing: -0.015em; }
.secao .lead { margin: 0 0 34px; font-size: 1.1rem; color: var(--tinta-suave); max-width: 640px; }

.faixa-fontes { display: flex; align-items: center; border: 1px solid var(--linha); border-radius: 999px; background: rgba(255, 255, 255, .6); min-height: 60px; overflow: hidden; }
.faixa-fontes .rot { padding: 0 22px; font-size: 13.5px; color: var(--tinta-suave); border-right: 1px solid var(--linha); align-self: stretch; display: flex; align-items: center; white-space: nowrap; }
.faixa-fontes .nomes { flex: 1; display: flex; flex-wrap: wrap; justify-content: space-around; gap: 6px 20px; padding: 10px 18px; font-family: var(--fonte-titulo); font-size: 17px; color: #8C80B0; }

.frentes { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
.frente { border-radius: 24px; padding: 28px; background: var(--branco); border: 1px solid var(--linha); box-shadow: var(--sombra); display: flex; flex-direction: column; gap: 12px; }
.frente img { border-radius: 16px; background: #1C0F33 url(/img/arte/folhas-suave.svg) center / cover; padding: 14px; height: 210px; width: 100%; object-fit: contain; }
.frente h3 { font-family: var(--fonte-titulo); font-weight: 400; font-size: 1.6rem; margin: 6px 0 0; }
.frente p { margin: 0; color: var(--tinta-suave); }
.frente ul { margin: 4px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 6px; font-size: 14.5px; }
.frente li { display: flex; gap: 8px; align-items: flex-start; }
.frente li::before { content: ''; flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--violeta-claro); margin-top: .55em; }
.etiqueta-breve { align-self: flex-start; font-size: 12px; font-weight: 600; letter-spacing: .06em; padding: 4px 10px; border-radius: 999px; background: #EFEAFD; color: var(--ametista); }
.etiqueta-ja { background: var(--violeta-claro); color: var(--branco); }

.chips-areas { display: flex; flex-wrap: wrap; gap: 10px; margin: 26px 0 0; padding: 0; list-style: none; }
.chips-areas li { display: flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px; background: var(--branco); border: 1px solid var(--linha); font-size: 14.5px; }
.chips-areas li::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--violeta-claro); }

.duo { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); border-radius: 28px; overflow: hidden; margin-top: 46px; }
.duo > div { position: relative; padding: 28px 34px 34px; min-height: 320px; color: var(--branco); }
.duo .duo-a { background: var(--fundo-noite); }
.duo .duo-b { background: var(--violeta-claro); }
.duo .cab { text-align: center; font-size: 14px; opacity: .85; margin-bottom: 26px; }
.balao { display: inline-block; padding: 13px 17px; border-radius: 16px; font-size: 15px; line-height: 1.45; max-width: 440px; margin-bottom: 14px; }
.balao-ia { background: rgba(201, 179, 255, .18); color: var(--perola); font-size: 13.5px; }
.linhas-ia div { height: 12px; border-radius: 6px; background: rgba(255, 255, 255, .72); margin-bottom: 14px; }
.linhas-ia .t { width: 58%; height: 16px; background: var(--branco); }

.passos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.passos li { background: var(--branco); border: 1px solid var(--linha); border-radius: 22px; padding: 28px; box-shadow: var(--sombra); }
.passos .numero { font-family: var(--fonte-titulo); font-size: 1rem; color: var(--violeta-claro); display: block; margin-bottom: 30px; }
.passos b { display: block; font-size: 1.2rem; margin-bottom: 6px; font-weight: 600; }
.passos span.texto { color: var(--tinta-suave); }

.planos { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 22px; }
.plano { background: var(--branco); border: 1px solid var(--linha); border-radius: 24px; padding: 32px; display: flex; flex-direction: column; gap: 12px; align-items: flex-start; box-shadow: var(--sombra); }
.plano-destaque { background: var(--nevoa); color: var(--branco); border-color: rgba(255, 255, 255, .2); box-shadow: var(--sombra-forte); }
.plano .rotulo { font-weight: 600; text-transform: uppercase; letter-spacing: .14em; font-size: 12.5px; }
.plano-destaque .rotulo { color: var(--cursor); }
.plano .preco { font-family: var(--fonte-titulo); font-size: 3rem; line-height: 1; }
.plano .preco small { font-family: var(--fonte-texto); font-size: 1rem; font-weight: 500; }
.plano p { margin: 0; }
.plano-destaque p { color: rgba(255, 255, 255, .82); }
.etiqueta { background: var(--grad-destaque); color: var(--noite); font-weight: 600; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; padding: 5px 12px; border-radius: 999px; }
.garantia { margin-top: 24px; display: flex; flex-wrap: wrap; gap: 20px; align-items: center; background: var(--branco); border: 1px solid var(--linha); border-radius: 22px; padding: 22px 26px; }
.garantia b { font-weight: 600; font-size: 1.1rem; color: var(--violeta); display: block; }
.garantia div { flex: 1 1 300px; min-width: 0; }

.faixa-azulejo { background: #120A22 url(/img/arte/folhas.svg) center / cover; padding: 110px 24px; }
.chamada {
  max-width: 820px; margin: 0 auto; text-align: center; display: flex; flex-direction: column; gap: 18px; align-items: center;
  background: var(--vidro); border: var(--borda-vidro); -webkit-backdrop-filter: var(--desfoque); backdrop-filter: var(--desfoque);
  border-radius: 28px; padding: 54px 32px; color: var(--branco); box-shadow: 0 30px 70px rgba(10, 4, 24, .4);
}
.chamada h2 { font-family: var(--fonte-titulo); font-weight: 400; font-size: clamp(1.9rem, 4vw, 2.7rem); }
.chamada p { margin: 0; color: rgba(255, 255, 255, .82); font-size: 1.1rem; }
.chamada .botao-amarelo { background: var(--branco); color: var(--noite); }
.chamada .botao-amarelo:hover { color: var(--noite); filter: none; box-shadow: 0 12px 30px rgba(201, 179, 255, .45); }

.rodape { padding: 34px 0; font-size: 14px; background: var(--noite); color: #B9ADD6; }
.rodape .container { display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; align-items: center; }
.rodape .marca img { height: 24px; }

/* ---------- Formulários (entrar, cadastro) ---------- */
.pagina-form { min-height: 100vh; background: var(--nevoa-clara); display: flex; flex-direction: column; }
.caixa-form {
  width: 100%; max-width: 460px; margin: 48px auto; background: var(--branco); border: 1px solid var(--linha);
  border-radius: 24px; padding: 34px; box-shadow: var(--sombra-forte); display: flex; flex-direction: column; gap: 18px;
}
.caixa-form h1 { font-size: 2rem; }
.caixa-form p { margin: 0; color: var(--tinta-suave); }
.campo { display: flex; flex-direction: column; gap: 6px; }
.campo label { font-weight: 600; font-size: 14.5px; }
.campo input, .campo select {
  font-family: var(--fonte-texto); font-size: 16px; padding: 13px 15px; border: 1px solid #D6CCF2;
  border-radius: 12px; background: var(--branco); color: var(--tinta);
}
.campo input:focus, .campo select:focus { outline: 3px solid rgba(169, 139, 245, .45); outline-offset: 0; border-color: var(--violeta); }
.dica { font-size: 13px; color: var(--tinta-suave); }
.aviso { border-radius: 12px; padding: 12px 14px; font-weight: 500; display: none; }
.aviso.erro { display: block; background: #FDECEA; border: 1px solid var(--erro); color: var(--erro); }
.aviso.ok { display: block; background: #EFE9FE; border: 1px solid var(--violeta); color: var(--ametista); }
.links-form { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; font-size: 15px; }

.painel { max-width: 1000px; width: 100%; margin: 44px auto; padding: 0 24px; display: flex; flex-direction: column; gap: 24px; }
.painel-topo { display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; align-items: flex-end; }
.painel h1 { font-size: clamp(1.8rem, 4vw, 2.4rem); }
.vazio { background: var(--branco); border: 1.5px dashed var(--lilas-forte); border-radius: 24px; padding: 40px 32px; text-align: center; display: flex; flex-direction: column; gap: 14px; align-items: center; }
.vazio b { font-family: var(--fonte-titulo); font-weight: 400; font-size: 1.4rem; color: var(--violeta); }

/* ---------- Área logada com menu lateral (painel, editais, licitações, pregões) ---------- */
.app { min-height: 100vh; background: #140B26 url(/img/arte/folhas-suave.svg) center / cover fixed; color: #F4EFFF; display: grid; grid-template-columns: 252px 1fr; gap: 18px; padding: 16px; }
.lateral { position: sticky; top: 16px; height: calc(100vh - 32px); border-radius: 22px; padding: 22px 14px; display: flex; flex-direction: column; gap: 4px; }
.lateral .marca { margin: 2px 10px 22px; }
.lateral .marca img { height: 28px; }
.nav-item { display: flex; align-items: center; gap: 11px; padding: 10px 12px; border-radius: 11px; font-size: 14.5px; color: rgba(244, 239, 255, .76); text-decoration: none; min-height: 42px; }
.nav-item svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.nav-item:hover { background: rgba(255, 255, 255, .08); color: var(--branco); }
.nav-item.ativo { background: rgba(255, 255, 255, .14); color: var(--branco); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18); }
.nav-item .contagem { margin-left: auto; font-size: 11px; font-weight: 600; background: var(--violeta-claro); color: var(--branco); border-radius: 999px; padding: 2px 8px; }
.nav-item .breve { margin-left: auto; font-size: 10.5px; font-weight: 600; letter-spacing: .04em; color: var(--cursor); }
.nav-titulo { font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: rgba(201, 179, 255, .7); margin: 14px 12px 4px; }
.lateral-base { margin-top: auto; display: flex; flex-direction: column; gap: 10px; }
.cartao-plano { border-radius: 14px; padding: 14px; background: rgba(138, 91, 245, .18); border: 1px solid rgba(201, 179, 255, .25); font-size: 13px; }
.cartao-plano b { display: block; font-size: 13.5px; }
.cartao-plano span { color: rgba(244, 239, 255, .72); }
.usuario-lateral { display: flex; align-items: center; gap: 10px; padding: 6px 4px; min-width: 0; }
.avatar { width: 34px; height: 34px; border-radius: 50%; background: var(--cursor); color: var(--fundo-noite); display: flex; align-items: center; justify-content: center; font-weight: 700; flex: none; }
.usuario-lateral .nome { font-size: 13.5px; font-weight: 600; }
.usuario-lateral .usuario-email { font-size: 12px; color: rgba(244, 239, 255, .6); display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 150px; }
.sair { background: none; border: 0; color: rgba(244, 239, 255, .7); font-family: var(--fonte-texto); font-size: 13px; text-align: left; padding: 6px 12px; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; min-height: 36px; }
.sair:hover { color: var(--branco); }
.app-conteudo { min-width: 0; padding: 14px 10px 40px; display: flex; flex-direction: column; gap: 24px; }
.app .painel { margin: 0; max-width: none; padding: 0; }
.app .titulo { color: var(--branco); }
.app .saudacao, .app .lead-app { color: rgba(244, 239, 255, .72); }
.app .sobretitulo { color: var(--cursor); }
.app a:not(.botao):not(.nav-item):not(.link-edital):not(.link-interno) { color: var(--cursor); }
.app .vazio { background: rgba(255, 255, 255, .06); border-color: rgba(201, 179, 255, .4); color: #F4EFFF; }
.app .vazio b { color: var(--cursor); }
.app .aviso.erro { background: #FDECEA; }
.menu-celular { display: none; }

.filtros { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.filtro { font-family: var(--fonte-texto); font-size: 14px; font-weight: 500; padding: 8px 15px; min-height: 40px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .22); background: rgba(255, 255, 255, .06); color: #F4EFFF; cursor: pointer; }
.filtro[aria-pressed="true"] { background: var(--branco); color: var(--noite); border-color: var(--branco); }

.grade-frentes { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.cartao-frente { border-radius: 20px; padding: 20px; display: flex; flex-direction: column; gap: 8px; text-decoration: none; color: #F4EFFF; min-height: 150px; }
.cartao-frente:hover { background: rgba(255, 255, 255, .14); color: var(--branco); }
.cartao-frente b { font-family: var(--fonte-titulo); font-weight: 400; font-size: 1.35rem; }
.cartao-frente span { font-size: 13.5px; color: rgba(244, 239, 255, .72); }
.cartao-frente .numero-frente { font-size: 2rem; font-weight: 600; color: var(--branco); font-family: var(--fonte-texto); }

.em-breve { border-radius: 24px; padding: 34px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 340px); gap: 34px; align-items: center; }
.em-breve h2 { font-family: var(--fonte-titulo); font-weight: 400; font-size: clamp(1.6rem, 3vw, 2.2rem); margin: 8px 0 12px; color: var(--branco); }
.em-breve p { margin: 0 0 14px; color: rgba(244, 239, 255, .78); }
.em-breve ul { margin: 0 0 18px; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; }
.em-breve li { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; }
.em-breve li::before { content: '✓'; flex: none; width: 22px; height: 22px; border-radius: 50%; background: var(--cursor); color: var(--fundo-noite); font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin-top: 1px; }
.em-breve img { width: 100%; height: auto; filter: drop-shadow(0 24px 40px rgba(5, 2, 14, .45)); }
.form-espera { display: flex; flex-wrap: wrap; gap: 10px; }
.form-espera input { flex: 1 1 220px; min-width: 0; font-family: var(--fonte-texto); font-size: 15px; padding: 12px 14px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, .25); background: rgba(255, 255, 255, .08); color: var(--branco); }
.form-espera input::placeholder { color: rgba(244, 239, 255, .55); }

@media (max-width: 900px) {
  .app { grid-template-columns: 1fr; padding: 10px; }
  .lateral { position: static; height: auto; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 4px; padding: 12px; }
  .lateral .marca { margin: 0 10px 0 4px; }
  .nav-titulo, .lateral-base .cartao-plano, .usuario-lateral { display: none; }
  .lateral-base { margin-top: 0; margin-left: auto; }
  .nav-item { padding: 8px 10px; min-height: 40px; font-size: 13.5px; }
  .nav-item .contagem, .nav-item .breve { margin-left: 4px; }
  .em-breve { grid-template-columns: 1fr; padding: 24px; }
}
@media (max-width: 600px) {
  .menu { gap: 2px; font-size: 14px; }
  .menu a { padding: 8px 8px; }
  .caixa-form { margin: 24px 16px; padding: 24px; width: auto; }
  .inicio .topo { padding-top: 10px; }
  .inicio .menu a[href^="#"] { display: none; }
  .hero-arte img { max-width: 360px; }
  .inicio .topo .container { margin: 0 10px; padding: 10px 12px; }
  .hero { padding-top: 190px; min-height: 0; }
  .cartao-flutuante { position: relative; right: auto; bottom: auto; width: 100%; margin-top: -30px; }
  .marca img { height: 26px; }
  .faixa-fontes { border-radius: 20px; flex-direction: column; align-items: stretch; padding: 16px 14px 18px; gap: 12px; }
  .faixa-fontes .rot { border: 0; padding: 0; justify-content: center; font-size: 11.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
  .faixa-fontes .nomes { justify-content: center; gap: 8px; padding: 0; font-family: var(--fonte-texto); font-size: 13.5px; font-weight: 500; }
  .faixa-fontes .nomes span { padding: 6px 12px; border-radius: 999px; background: #fff; border: 1px solid var(--linha); color: #6E6396; white-space: nowrap; }
  .abas { display: flex; width: 100%; }
  .aba { flex: 1; padding: 9px 6px; font-size: 13.5px; }
  /* Topo da página inicial no celular: abas mais perto do menu e arte centralizada */
  .hero { padding: 100px 0 56px; }
  .hero .container { gap: 28px; }
  .hero-texto { gap: 16px; }
  .hero-texto .abas { margin-bottom: 6px; }
  .hero-texto .sobretitulo { font-size: 11.5px; letter-spacing: .12em; line-height: 1.6; }
  .hero-texto h1 { font-size: 2.15rem; }
  .hero-texto p { font-size: 1rem; }
  .hero .selos-hero .selo { font-size: 12px; padding: 6px 12px; }
  .hero-arte { display: flex; flex-direction: column; align-items: center; }
  .hero-arte img { max-width: 300px; margin: 0 auto; }
  .cartao-flutuante { width: calc(100% - 16px); margin: -48px auto 0; }
}

/* ---------- Entrevista, editais e projeto ---------- */
.passos-topo { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; font-weight: 500; font-size: 13.5px; }
.passos-topo li { border: 1px solid rgba(255, 255, 255, .24); color: rgba(255, 255, 255, .72); padding: 6px 14px; border-radius: 999px; background: rgba(255, 255, 255, .06); }
.passos-topo li.feito { border-color: var(--cursor); color: var(--cursor); }
.passos-topo li.atual { border-color: transparent; background: var(--branco); color: var(--noite); }
.lead-app { margin: 8px 0 0; font-size: 1.05rem; color: var(--tinta-suave); }
.painel-largo { max-width: 1200px; }
.saudacao { margin: 0; color: var(--tinta-suave); font-weight: 500; }
.usuario-email { color: var(--tinta-suave); font-weight: 500; overflow-wrap: anywhere; }

.grade-editais { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 18px; }
.cartao-edital {
  min-width: 0; text-align: left; font-family: var(--fonte-texto); font-size: 15px; color: var(--tinta);
  background: var(--branco); border: 1px solid var(--linha); border-radius: 22px; padding: 22px; box-shadow: var(--sombra);
  display: flex; flex-direction: column; gap: 10px; cursor: pointer; transition: transform .15s, box-shadow .15s;
}
button.cartao-edital:hover { box-shadow: var(--sombra-forte); transform: translateY(-2px); }
button.cartao-edital:disabled { opacity: .6; cursor: wait; }
.cartao-edital.cor-amarelo { background: var(--branco); }
.linha-etiquetas { display: flex; flex-wrap: wrap; gap: 6px; }
.etiqueta-edital { align-self: flex-start; background: var(--fundo-noite); color: var(--branco); font-weight: 600; font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; padding: 5px 10px; border-radius: 999px; }
.etiqueta-uf { align-self: flex-start; background: #EFEAFD; color: var(--ametista); font-weight: 600; font-size: 11.5px; letter-spacing: .06em; padding: 5px 10px; border-radius: 999px; }
.etiqueta-prazo { align-self: flex-start; background: #FFF1D2; color: #7A4F00; font-weight: 600; font-size: 11.5px; padding: 5px 10px; border-radius: 999px; }
.cor-lilas .etiqueta-edital { background: var(--violeta); }
.cor-limao .etiqueta-edital { background: var(--perola); color: var(--tinta); }
.cor-laranja .etiqueta-edital { background: var(--ametista); }
.nome-edital { font-family: var(--fonte-titulo); font-weight: 400; font-size: 1.25rem; line-height: 1.22; }
.cartao-pdf { border: 1.5px dashed var(--lilas-forte); cursor: default; box-shadow: none; background: rgba(255, 255, 255, .7); }
.app .cartao-pdf { background: rgba(255, 255, 255, .06); color: #F4EFFF; border-color: rgba(201, 179, 255, .4); }
.cartao-pdf .nome-edital { color: var(--violeta); }
.app .cartao-pdf .nome-edital { color: var(--cursor); }

.layout-entrevista { display: flex; flex-wrap: wrap; gap: 26px; align-items: flex-start; }
.cartao-pergunta {
  flex: 999 1 540px; min-width: 0; background: var(--branco); border: 1px solid var(--linha); border-radius: 24px;
  padding: 32px; box-shadow: var(--sombra-forte); display: flex; flex-direction: column; gap: 20px;
}
.cab-pergunta { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; align-items: center; }
.bloco-nome { font-weight: 600; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--violeta); }
.contador { font-size: 14px; font-weight: 500; color: var(--tinta-suave); }
.barra { height: 8px; border-radius: 999px; background: #ECE6FA; overflow: hidden; }
.barra-preench { height: 100%; border-radius: 999px; background: var(--grad-botao); transition: width .3s; }
.barra-pequena { height: 6px; max-width: 280px; }
.titulo-pergunta { font-size: clamp(1.45rem, 3.2vw, 1.85rem); line-height: 1.2; }
.selos { display: flex; flex-wrap: wrap; gap: 8px; }
.selo-mini { align-self: flex-start; font-size: 12.5px; font-weight: 600; padding: 4px 11px; border-radius: 999px; color: var(--tinta); }
.selo-lilas { background: #EFEAFD; }
.selo-amarelo { background: var(--perola); }
.dica-forte { font-size: 14px; font-weight: 600; color: var(--tinta-suave); }
.chips { display: flex; flex-wrap: wrap; gap: 10px; }
.chip {
  font-family: var(--fonte-texto); font-size: 15px; font-weight: 500; padding: 10px 16px; min-height: 44px;
  border-radius: 999px; border: 1px solid #D6CCF2; background: var(--branco); color: var(--tinta); cursor: pointer;
}
.chip:hover { border-color: var(--lilas-forte); }
.chip[aria-pressed="true"] { background: var(--violeta-claro); border-color: transparent; color: var(--branco); }
.chip:focus-visible, .botao:focus-visible, .cartao-edital:focus-visible, .bloco-item:focus-visible, .filtro:focus-visible, .nav-item:focus-visible { outline: 3px solid var(--lilas-forte); outline-offset: 2px; }
.campo textarea {
  font-family: var(--fonte-texto); font-size: 16px; line-height: 1.5; padding: 13px 15px; border: 1px solid #D6CCF2;
  border-radius: 12px; resize: vertical; color: var(--tinta);
}
.campo textarea:focus { outline: 3px solid rgba(169, 139, 245, .45); outline-offset: 0; border-color: var(--violeta); }
.campo input[type="range"] { width: 100%; accent-color: var(--violeta); }
.valor-destaque { font-family: var(--fonte-titulo); color: var(--violeta); }
.botao-audio { align-self: flex-start; background: var(--perola); color: var(--noite); }
.botao-audio.gravando { background: var(--grad-noite); color: var(--cursor); }
.botao-lilas { background: #EFEAFD; color: var(--tinta); }
.botao-limao { background: var(--perola); color: var(--tinta); }
.linha-campos { display: flex; flex-wrap: wrap; gap: 16px; }
.linha-campos .campo { flex: 1 1 200px; }
.linha-adicionar { display: flex; flex-wrap: wrap; gap: 10px; }
.linha-adicionar input { flex: 1 1 240px; min-width: 0; }
.lista-itens { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.lista-itens li { display: flex; justify-content: space-between; align-items: center; gap: 12px; background: var(--nevoa-clara); border: 1px solid var(--linha); border-radius: 12px; padding: 10px 14px; }
.remover { background: none; border: 0; color: var(--violeta); font-family: var(--fonte-texto); font-weight: 600; font-size: 14px; cursor: pointer; text-decoration: underline; min-height: 44px; padding: 0 4px; }
.acoes-pergunta { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; align-items: center; }
.acoes-esq { display: flex; flex-wrap: wrap; gap: 10px; }
.salvo { font-size: 13px; color: var(--tinta-suave); }
.lado-entrevista { flex: 1 1 280px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.caixa-lado { border: 1px solid var(--linha); border-radius: 22px; padding: 20px; background: var(--branco); box-shadow: var(--sombra); }
.caixa-lilas { background: var(--nevoa); color: var(--branco); border-color: transparent; display: flex; flex-direction: column; gap: 8px; }
.caixa-lilas p { margin: 0; color: rgba(255, 255, 255, .8); }
.titulo-lado { font-weight: 600; font-size: 15px; }
.nav-blocos { display: flex; flex-direction: column; gap: 4px; padding: 12px; }
.bloco-item {
  font-family: var(--fonte-texto); font-size: 14px; text-align: left; padding: 10px 12px; min-height: 44px; border-radius: 11px;
  border: 0; background: transparent; color: var(--tinta); display: flex; justify-content: space-between; gap: 8px; cursor: pointer;
}
.bloco-item:hover { background: #F2EDFD; }
.bloco-item.atual { background: var(--fundo-noite); color: var(--branco); font-weight: 600; }

.resumo { display: flex; flex-direction: column; gap: 22px; }
.resumo-bloco { background: var(--branco); border: 1px solid var(--linha); border-radius: 22px; padding: 24px; display: flex; flex-direction: column; gap: 4px; box-shadow: var(--sombra); }
.resumo-titulo { font-size: 1.2rem; margin-bottom: 8px; color: var(--violeta); }
.resumo-linha { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 10px 0; border-top: 1px solid #EEE9FA; }
.resumo-texto { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.resumo-pergunta { font-size: 14px; color: var(--tinta-suave); }
.resumo-resposta { font-weight: 500; overflow-wrap: anywhere; }
.resumo-vazio { color: var(--tinta-suave); font-style: italic; }

.lista-projetos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.projeto-item { background: var(--branco); color: var(--tinta); border: 1px solid var(--linha); border-radius: 22px; padding: 20px 24px; display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; align-items: center; box-shadow: var(--sombra); }
.projeto-info { display: flex; flex-direction: column; gap: 6px; min-width: 0; flex: 1 1 260px; }
.projeto-titulo { font-family: var(--fonte-titulo); font-size: 1.2rem; }
.projeto-edital { color: var(--tinta-suave); }
.projeto-status { font-size: 13.5px; font-weight: 500; color: var(--tinta-suave); }

@media (max-width: 600px) {
  .cartao-pergunta { padding: 22px; }
  .acoes-pergunta .botao { flex: 1 1 auto; }
  .passos-topo { font-size: 12px; }
}

/* Sinal de ajuda nas perguntas */
.linha-titulo { display: flex; align-items: flex-start; gap: 10px; }
.botao-ajuda {
  flex-shrink: 0; width: 28px; height: 28px; margin-top: 4px; border-radius: 50%;
  border: 1.5px solid var(--violeta); background: var(--branco); color: var(--violeta);
  font-family: var(--fonte-texto); font-weight: 700; font-size: 15px; line-height: 1;
  cursor: pointer; display: inline-flex; align-items: center; justify-content: center; position: relative;
}
.botao-ajuda::after { content: ''; position: absolute; inset: -9px; }
.botao-ajuda[aria-expanded="true"], .botao-ajuda:hover { background: var(--violeta); color: var(--branco); }
.botao-ajuda:focus-visible { outline: 3px solid var(--lilas-forte); outline-offset: 2px; }
.balao-ajuda {
  background: var(--noite); color: var(--branco); border-radius: 14px; padding: 14px 16px;
  font-size: 15px; line-height: 1.5; position: relative; margin-top: -6px;
}
.balao-ajuda::before {
  content: ''; position: absolute; top: -7px; width: 14px; height: 14px;
  background: var(--noite); transform: rotate(45deg); left: auto; right: 10px;
}

/* Cartão de edital com botão de escolha e link do edital oficial */
article.cartao-edital { cursor: default; }
h2.nome-edital { margin: 0; }
.acoes-edital { display: flex; flex-wrap: wrap; gap: 12px 18px; align-items: center; margin-top: 6px; }
.link-edital { font-weight: 600; color: var(--tinta); }
.link-edital::after { content: ' ↗'; }
.link-edital:hover { color: var(--violeta); }

/* Projeto gerado pela IA */
.painel-medio { max-width: 920px; }
.projeto-gerado { display: flex; flex-direction: column; gap: 22px; }
.nota-ia { background: var(--nevoa); color: var(--branco); border-radius: 22px; padding: 20px 24px; }
.nota-ia p { margin: 6px 0 0; color: rgba(255, 255, 255, .82); }
.cartao-secao { background: var(--branco); border: 1px solid var(--linha); border-radius: 22px; padding: 30px; display: flex; flex-direction: column; gap: 12px; box-shadow: var(--sombra); }
.cartao-avaliacao { background: #F4F0FE; border: 1.5px solid var(--lilas-forte); }
.titulo-secao { font-size: 1.3rem; color: var(--violeta); }
.status-secao { margin: 0; color: var(--tinta-suave); font-style: italic; }
.status-secao.gerando::after { content: ''; display: inline-block; width: 1.2em; text-align: left; animation: pontos 1.2s steps(4) infinite; }
@keyframes pontos { 0% { content: ''; } 25% { content: '.'; } 50% { content: '..'; } 75% { content: '...'; } }
.acoes-secao { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; border-top: 1px solid #EEE9FA; padding-top: 14px; }
.texto-ia { display: flex; flex-direction: column; gap: 10px; line-height: 1.65; overflow-wrap: anywhere; }
.texto-ia h3 { font-family: var(--fonte-texto); font-weight: 700; font-size: 1.05rem; margin: 8px 0 0; }
.texto-ia p { margin: 0; }
.texto-ia ul, .texto-ia ol { margin: 0; padding-left: 22px; display: flex; flex-direction: column; gap: 4px; }
.tabela-caixa { overflow-x: auto; border: 1px solid var(--linha); border-radius: 12px; }
.tabela-caixa table { border-collapse: collapse; width: 100%; font-size: 14px; min-width: 520px; }
.tabela-caixa th, .tabela-caixa td { text-align: left; vertical-align: top; padding: 8px 10px; border-bottom: 1px solid #EEE9FA; }
.tabela-caixa th { background: var(--nevoa-clara); font-weight: 700; }
.tabela-caixa tr:last-child td { border-bottom: 0; }
.marca-sugestao, .marca-estimativa { border-radius: 6px; padding: 1px 6px; font-size: .85em; font-weight: 700; white-space: nowrap; color: var(--tinta); }
.marca-sugestao { background: #DCD0FB; }
.marca-estimativa { background: #EFEAFD; border: 1px dashed var(--lilas-forte); }

@media print {
  .nao-imprimir, .topo, .lateral { display: none !important; }
  body, .pagina-form, .app { background: #fff; color: #000; display: block; padding: 0; }
  .painel { margin: 0; max-width: none; }
  .cartao-secao { border: 0; padding: 0 0 12px; break-inside: auto; box-shadow: none; }
  .nota-ia { background: #fff; color: #000; border: 1px solid #999; }
  .nota-ia p { color: #000; }
  .titulo-secao { color: #000; }
  .tabela-caixa { overflow: visible; border: 1px solid #999; }
  .tabela-caixa table { min-width: 0; }
  .marca-sugestao, .marca-estimativa { background: none; border: 1px solid #000; }
}
.link-interno { font-weight: 600; color: var(--tinta); }
.link-interno:hover { color: var(--violeta); }
.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; }
.app .busca-escura::placeholder, .app input[type="search"]::placeholder { color: rgba(244, 239, 255, .55); }
.app .caixa-form { color: var(--tinta); }
.app .caixa-form .titulo { color: var(--tinta); }

/* Licitações e pregões: barra de filtros e cartões de oportunidade */
.barra-filtros { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.campo-escuro { font-family: var(--fonte-texto); font-size: 14px; min-height: 42px; padding: 9px 14px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, .22); background: rgba(255, 255, 255, .08); color: #fff; }
.campo-escuro:focus { outline: 2px solid var(--cursor); outline-offset: 1px; }
.campo-escuro option { color: var(--noite); }
input.campo-escuro { flex: 1 1 240px; min-width: 0; }
select.campo-escuro { flex: 0 1 230px; min-width: 0; }
.check-escuro { display: inline-flex; gap: 8px; align-items: center; font-size: 14px; color: #F4EFFF; cursor: pointer; }
.check-escuro input { width: 18px; height: 18px; accent-color: var(--violeta-claro); }
.cartao-oportunidade .nome-edital { font-family: var(--fonte-texto); font-weight: 600; font-size: 1.02rem; line-height: 1.38; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.cartao-oportunidade .orgao-oportunidade { font-size: 13.5px; color: var(--tinta-suave); }
.info-oportunidade { display: flex; flex-direction: column; gap: 2px; font-size: 14px; font-weight: 600; }
.cartao-oportunidade .acoes-edital { margin-top: auto; padding-top: 6px; }
.etiqueta-combina { align-self: flex-start; background: var(--violeta-claro); color: var(--branco); font-weight: 600; font-size: 11.5px; padding: 5px 10px; border-radius: 999px; }
.botao-acompanhar[aria-pressed="true"] { background: var(--perola); border-color: var(--lilas-forte); color: var(--ametista); }

/* Leitura do edital */
.grade-leitura { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 18px; }
.painel-leitura { border-radius: 22px; padding: 24px; }
.titulo-leitura { font-family: var(--fonte-titulo); font-weight: 400; font-size: 1.35rem; margin: 0 0 14px; color: var(--branco); }
.linha-resumo { display: grid; grid-template-columns: 140px 1fr; gap: 12px; padding: 9px 0; border-top: 1px solid rgba(255, 255, 255, .1); font-size: 14.5px; }
.linha-resumo .rot { font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--cursor); padding-top: 2px; }
.lista-leitura { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 8px; font-size: 14.5px; }
.lista-leitura.escura { color: var(--tinta); }
.pagina-ref { display: inline-block; font-size: 11px; font-weight: 600; padding: 1px 7px; border-radius: 999px; background: rgba(201, 179, 255, .2); color: var(--cursor); white-space: nowrap; }
.caixa-form .pagina-ref { background: #EFEAFD; color: var(--ametista); }
.ponto-atencao { display: flex; flex-direction: column; gap: 3px; padding: 11px 13px; border-radius: 12px; margin-bottom: 8px; font-size: 13.5px; line-height: 1.45; }
.ponto-atencao.g-alta { background: rgba(242, 108, 108, .16); color: #FFD2D2; }
.ponto-atencao.g-media { background: rgba(242, 193, 78, .14); color: #F7D88A; }
.ponto-atencao.g-baixa { background: rgba(201, 179, 255, .12); color: var(--perola); }
.ponto-atencao b { color: inherit; }
.checklist-leitura { max-width: none; margin: 18px 0 0; }
.grupo-hab { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--violeta); margin: 14px 0 2px; }
.item-hab { display: flex; gap: 12px; align-items: flex-start; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--linha); cursor: pointer; }
.item-hab input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--violeta-claro); flex: none; }
.item-hab b { font-weight: 600; }
.detalhe-hab { display: block; font-size: 13.5px; color: var(--tinta-suave); margin-top: 2px; }
.rodape-leitura { font-size: 13px; margin-top: 16px; }
@media (max-width: 600px) { .linha-resumo { grid-template-columns: 1fr; gap: 2px; } }

/* Cofre de documentos */
.resumo-cofre { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; }
.cartao-resumo { border-radius: 18px; padding: 16px 18px; display: flex; flex-direction: column; gap: 2px; }
.cartao-resumo b { font-size: 1.9rem; line-height: 1.1; color: var(--branco); }
.cartao-resumo span { font-size: 13.5px; color: rgba(244, 239, 255, .75); }
.cartao-resumo.s-vence b { color: #F7D88A; }
.cartao-resumo.s-vencido b { color: #FFB4B4; }
.titulo-grupo-cofre { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--cursor); margin: 18px 0 10px; font-weight: 600; }
.grade-cofre { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.cartao-doc { background: var(--branco); color: var(--tinta); border: 1px solid var(--linha); border-radius: 18px; padding: 18px; display: flex; flex-direction: column; gap: 8px; box-shadow: var(--sombra); }
.cartao-doc.s-falta { background: rgba(255, 255, 255, .06); color: #F4EFFF; border: 1.5px dashed rgba(201, 179, 255, .4); box-shadow: none; }
.cartao-doc.s-antigo { opacity: .75; }
.nome-doc { font-size: 15.5px; font-weight: 600; margin: 0; line-height: 1.3; }
.arquivo-doc { font-size: 13px; color: var(--tinta-suave); overflow-wrap: anywhere; }
.cartao-doc.s-falta .arquivo-doc { color: rgba(244, 239, 255, .6); }
.etiqueta-doc { align-self: flex-start; font-size: 11.5px; font-weight: 600; padding: 4px 10px; border-radius: 999px; background: #E9E1FF; color: var(--violeta); }
.s-vence .etiqueta-doc { background: #FFF1D2; color: #7A4F00; }
.s-vencido .etiqueta-doc { background: #FDE2E2; color: #9B1C1C; }
.s-falta .etiqueta-doc { background: rgba(201, 179, 255, .18); color: var(--perola); }
.cartao-doc .acoes-edital { margin-top: auto; }
.cartao-doc.s-falta .remover { color: var(--cursor); }

/* Situação do cofre no checklist da leitura */
.status-cofre { display: inline-block; margin-top: 6px; font-size: 12px; font-weight: 600; padding: 3px 9px; border-radius: 999px; }
.status-cofre.s-ok { background: #E9E1FF; color: var(--violeta); }
.status-cofre.s-vence { background: #FFF1D2; color: #7A4F00; }
.status-cofre.s-vencido { background: #FDE2E2; color: #9B1C1C; }
.status-cofre.s-falta { background: #F3F0FA; color: var(--tinta-suave); }
.alerta-cofre { border-radius: 18px; padding: 16px 20px; display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: center; justify-content: space-between; background: rgba(242, 193, 78, .14); border: 1px solid rgba(242, 193, 78, .4); color: #F7D88A; }
.alerta-cofre b { color: #FFE3A6; }

/* Declarações */
.layout-declaracoes { display: grid; grid-template-columns: minmax(0, 420px) minmax(0, 1fr); gap: 20px; align-items: start; }
.form-declaracoes { max-width: none; margin: 0; gap: 14px; position: sticky; top: 16px; max-height: calc(100vh - 32px); overflow: auto; }
.titulo-form-decl { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--violeta); margin: 8px 0 0; }
.opcoes-decl { display: flex; flex-direction: column; gap: 8px; }
.opcao-decl { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--linha); border-radius: 12px; cursor: pointer; }
.opcao-decl input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--violeta-claro); flex: none; }
.opcao-decl b { display: block; font-size: 14px; font-weight: 600; }
.opcao-decl small { display: block; font-size: 12.5px; color: var(--tinta-suave); line-height: 1.4; margin-top: 2px; }
.opcao-decl.desativada { opacity: .45; cursor: not-allowed; }
.papel-decl { display: flex; flex-direction: column; gap: 18px; }
.declaracao { background: #fff; color: #111; border-radius: 6px; padding: 56px 60px; box-shadow: 0 20px 50px rgba(5, 2, 14, .35); font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.6; min-height: 560px; display: flex; flex-direction: column; }
.declaracao h3 { text-align: center; font-size: 14px; letter-spacing: .02em; margin: 0 0 22px; }
.declaracao p { text-align: justify; margin: 0 0 12px; }
.declaracao .ref-decl { text-align: center; font-size: 12.5px; color: #444; margin-top: -12px; margin-bottom: 22px; }
.declaracao .local-decl { margin-top: 26px; }
.assinatura-decl { margin-top: auto; padding-top: 56px; display: flex; flex-direction: column; align-items: center; gap: 2px; text-align: center; font-size: 13px; }
.linha-ass { display: block; width: 60%; border-top: 1px solid #111; margin-bottom: 6px; }
.vazio-decl { color: #F4EFFF; }
@media (max-width: 1000px) { .layout-declaracoes { grid-template-columns: minmax(0, 1fr); } .form-declaracoes { position: static; max-height: none; } .declaracao { padding: 32px 26px; } }
@media print {
  .pagina-declaracoes .app-conteudo { padding: 0; }
  .pagina-declaracoes .layout-declaracoes { display: block; }
  .pagina-declaracoes .declaracao { box-shadow: none; border-radius: 0; padding: 0; min-height: 0; page-break-after: always; break-after: page; height: calc(100vh - 2cm); }
  .pagina-declaracoes .papel-decl { gap: 0; }
}

/* Proposta de preços */
.caixa-itens { max-width: none; margin: 18px 0 0; gap: 12px; }
.topo-itens { display: flex; flex-wrap: wrap; gap: 12px 18px; align-items: center; }
.busca-item { flex: 1 1 200px; max-width: 320px; padding: 8px 12px; border: 1px solid var(--linha); border-radius: 999px; font: inherit; }
.so-cotar { display: flex; gap: 8px; align-items: center; font-size: 14px; color: var(--tinta-suave); margin-left: auto; cursor: pointer; }
.rolagem-tabela { overflow-x: auto; border: 1px solid var(--linha); border-radius: 12px; }
.tabela-itens { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 760px; }
.tabela-itens th { text-align: left; font-size: 12px; font-weight: 600; color: var(--tinta-suave); background: #F7F3FF; padding: 10px; border-bottom: 1px solid var(--linha); white-space: nowrap; }
.tabela-itens td { padding: 10px; border-bottom: 1px solid var(--linha); vertical-align: top; }
.tabela-itens tr:last-child td { border-bottom: 0; }
.tabela-itens tr.fora td { opacity: .5; }
.tabela-itens tr.fora td.col-cotar { opacity: 1; }
.col-cotar, .col-n { width: 44px; text-align: center; }
.col-cotar input { width: 18px; height: 18px; accent-color: var(--violeta-claro); }
.col-num { text-align: right; white-space: nowrap; }
.col-num b, .col-num small { display: block; }
.col-num small { font-size: 12px; color: var(--tinta-suave); }
.col-preco { width: 170px; }
.col-total { min-width: 110px; font-weight: 600; }
.desc-item { line-height: 1.45; }
.selo-item { display: inline-block; margin-top: 6px; font-size: 11.5px; font-weight: 600; color: var(--violeta); background: #EFE9FE; border-radius: 999px; padding: 2px 8px; }
.campo-tabela { width: 100%; padding: 7px 10px; border: 1px solid var(--linha); border-radius: 8px; font: inherit; font-size: 14px; color: var(--tinta); background: #fff; }
.campo-tabela:focus { outline: 2px solid var(--violeta-claro); outline-offset: 0; }
.campo-marca { margin-top: 8px; font-size: 13px; }
.campo-curto { width: 96px; margin-bottom: 6px; text-align: right; }
.col-preco .campo-tabela { text-align: right; }
.alerta-preco { display: block; font-size: 11.5px; line-height: 1.35; margin-top: 4px; }
.alerta-preco.acima { color: var(--erro); }
.alerta-preco.baixo { color: #9A6400; }
.remover-item { display: block; margin: 6px 0 0 auto; border: 0; background: none; font-size: 20px; line-height: 1; color: var(--tinta-suave); cursor: pointer; }
.barra-total { display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: baseline; padding-top: 12px; border-top: 1px solid var(--linha); font-size: 14px; color: var(--tinta-suave); }
.barra-total b { font-size: 20px; color: var(--tinta); margin-left: 6px; }
#comparacao { color: var(--violeta); font-weight: 600; }
#comparacao.acima { color: var(--erro); }
.proposta-doc { font-size: 12.5px; min-height: 0; }
.proposta-doc .bloco-prop { margin-bottom: 14px; }
.proposta-doc .bloco-prop p { margin: 0 0 3px; text-align: left; }
.tabela-prop { width: 100%; border-collapse: collapse; margin: 6px 0 16px; font-size: 11.5px; }
.tabela-prop th, .tabela-prop td { border: 1px solid #222; padding: 5px 6px; vertical-align: top; }
.tabela-prop th { background: #EEE; font-weight: 700; }
.tabela-prop .c { text-align: center; }
.tabela-prop .r { text-align: right; white-space: nowrap; }
.tabela-prop tfoot td { font-weight: 700; }
.proposta-doc .assinatura-decl { margin-top: 0; padding-top: 48px; }
@media print {
  .pagina-proposta .app-conteudo { padding: 0; }
  .pagina-proposta .layout-declaracoes { display: block; margin: 0 !important; }
  .pagina-proposta .declaracao { box-shadow: none; border-radius: 0; padding: 0; }
  .tabela-prop tr { break-inside: avoid; }
}
@media (max-width: 600px) { .proposta-doc { overflow-x: auto; padding: 24px 14px; } .tabela-prop { font-size: 10.5px; } .tabela-prop th, .tabela-prop td { padding: 4px; } }

/* Página da licitação: cabeçalho com etapas */
.cabecalho-licitacao { display: flex; flex-direction: column; gap: 6px; margin-bottom: 18px; }
.voltar-lista { color: rgba(244, 239, 255, .72); font-size: 14px; text-decoration: none; margin-bottom: 6px; align-self: flex-start; }
.voltar-lista:hover { color: #fff; }
.titulo-licitacao { margin: 4px 0 0; font-size: clamp(1.4rem, 2.6vw, 2rem); line-height: 1.25; }
.cabecalho-licitacao .link-edital { align-self: flex-start; }
.etapas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 16px 0 4px; counter-reset: etapa; }
.etapa { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 10px; align-items: center; padding: 12px 14px; border-radius: 14px; text-decoration: none; color: #F4EFFF; background: rgba(255, 255, 255, .06); border: 1px solid rgba(201, 179, 255, .22); transition: background .15s; }
.etapa:hover { background: rgba(255, 255, 255, .11); color: #fff; }
.etapa .num-etapa { grid-row: 1 / 3; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: 14px; background: rgba(201, 179, 255, .18); color: var(--cursor); }
.etapa b { font-size: 14.5px; font-weight: 600; }
.etapa .status-etapa { font-size: 12.5px; color: rgba(244, 239, 255, .62); min-height: 1em; }
.etapa.feita .num-etapa { background: #3FB37F; color: #fff; }
.etapa.feita .status-etapa { color: #8FE3BC; }
.etapa.atual { background: #fff; color: var(--tinta); border-color: #fff; box-shadow: 0 12px 30px rgba(5, 2, 14, .35); }
.etapa.atual .num-etapa { background: var(--violeta-claro); color: #fff; }
.etapa.atual .status-etapa { color: var(--tinta-suave); }
.etapa.atual.feita .status-etapa { color: #23845A; }
.proximo-passo { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; justify-content: space-between; padding-top: 16px; margin-top: 8px; border-top: 1px solid var(--linha); }
.proximo-passo p { margin: 0; flex: 1 1 260px; }
.avulso-link { color: rgba(244, 239, 255, .66); margin: 0 0 14px; }
.avulso-link a { color: var(--cursor); }
@media (max-width: 760px) { .etapas { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.etapa b { color: #F4EFFF; }
.etapa.atual b { color: var(--tinta); }
.cabecalho-licitacao .link-edital { color: var(--cursor); font-size: 14px; margin-top: 4px; }
.cabecalho-licitacao + .aviso:empty + * , .cabecalho-licitacao ~ .checklist-leitura { margin-top: 8px; }
.erro-pncp { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; max-width: 640px; }
.erro-pncp .dica { color: rgba(244, 239, 255, .5); font-size: 12px; }
.link-botao { background: none; border: 0; padding: 0; font: inherit; color: var(--violeta); text-decoration: underline; cursor: pointer; }
.preco-breve { font-size: 2.2rem !important; }
.filtros .filtro-estado { flex: 0 0 auto; width: 190px; min-height: 40px; border-radius: 999px; padding: 8px 14px; }
.filtro-estado.ativo { background: #fff; color: var(--noite); border-color: #fff; }
