/* Lustus — Portal do cliente (prefixo portal-) */
body.portal { background: var(--fundo); min-height: 100vh; display: flex; flex-direction: column; }
.texto-13 { font-size: 13px; } .mt16 { margin-top: 16px; }
.portal-largura { width: 100%; max-width: 1080px; margin: 0 auto; padding-left: 20px; padding-right: 20px; }
.portal-topo { background: var(--marinho); color: #fff; box-shadow: var(--sombra-1); }
.portal-topo-linha { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 68px; flex-wrap: wrap; }
.portal-marca { display: flex; align-items: center; gap: 12px; color: #fff; min-width: 0; }
.portal-marca:hover { text-decoration: none; }
.portal-marca img { height: 44px; max-width: 140px; object-fit: contain; background: #fff; border-radius: 8px; padding: 4px; }
.portal-marca b { display: block; font-size: 16px; line-height: 1.2; }
.portal-marca small { display: block; color: var(--dourado); font-size: 11.5px; text-transform: uppercase; letter-spacing: .08em; font-weight: 600; }
.portal-avatar { background: var(--dourado); color: var(--marinho); }
.portal-nav { display: flex; align-items: center; gap: 4px; }
.portal-nav a, .portal-nav .portal-tema { color: #C7D2E6; padding: 8px 12px; border-radius: 8px; display: inline-flex; align-items: center; gap: 6px; font-weight: 500; font-size: 13.5px; background: none; border: 0; cursor: pointer; }
.portal-nav a:hover, .portal-nav .portal-tema:hover { background: rgba(255,255,255,.08); color: #fff; text-decoration: none; }
.portal-nav a.ativa { background: rgba(255,255,255,.14); color: #fff; }
.portal-nav form .btn { color: #C7D2E6; }
.portal-nav form .btn:hover { color: #fff; background: rgba(255,255,255,.08); }
.portal-main { flex: 1; padding-top: 24px; padding-bottom: 40px; }
.portal-ola { color: var(--texto-2); margin: 0 0 18px; }
.portal-cabecalho { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.portal-cabecalho h1 { font-size: 22px; margin: 0; }
.portal-lista { display: grid; gap: 12px; }
.portal-processo { display: block; padding: 16px 20px; color: var(--texto); transition: box-shadow var(--transicao), border-color var(--transicao); }
.portal-processo:hover { text-decoration: none; box-shadow: var(--sombra-2); border-color: var(--primaria); }
.portal-processo h2 { font-size: 16px; margin: 8px 0 4px; }
.portal-processo-topo { display: flex; justify-content: space-between; gap: 10px; align-items: center; flex-wrap: wrap; }
.portal-processo-rodape { display: flex; justify-content: space-between; gap: 10px; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--borda); flex-wrap: wrap; }
.portal-grade { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 16px; align-items: start; }
.portal-dl { grid-template-columns: 120px 1fr; }
.portal-centro { display: grid; place-items: center; padding: 20px 0; }
.portal-cartao-login { width: 100%; max-width: 440px; padding: 32px; }
.portal-cartao-login h1 { font-size: 22px; margin: 0 0 6px; }
.portal-login-ajuda { margin-top: 22px; padding: 14px 16px; background: var(--superficie-2); border: 1px solid var(--borda); border-radius: var(--raio-p); color: var(--texto-2); }
.portal-login-ajuda p { margin: 0 0 8px; }
.portal-rodape { border-top: 1px solid var(--borda); background: var(--superficie); padding: 16px 0; color: var(--texto-suave); font-size: 13px; }
.portal-rodape .portal-largura { display: flex; flex-direction: column; gap: 4px; }
@media (max-width: 820px) {
  .portal-grade { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .portal-largura { padding-left: 16px; padding-right: 16px; }
  .portal-nav { width: 100%; justify-content: space-between; padding-bottom: 8px; }
  .portal-nav a span { display: none; }
  .portal-cartao-login { padding: 22px; }
  .linha-tempo li { grid-template-columns: 70px 28px 1fr; }
}
